> Building a type checker is hard. Here are some tricks that Ezno uses to keep the codebase small and simple ### Specialising/substituting generics Finding the values for generics is done during subtype checking #TODO ## Internal #TODO - `Environment::parents_iter` - `get_on_ctx!` - `Logical`