honestly i don't know how i didn't catch that sooner
- The statement ["x", "x"] no longer typechecks in the empty context - The statement ["ident": {"x": "x"}] now correctly generalizes - The statement ["compose", "compose", "compose"] no longer goes into an infinite loop