While core.typed is very accurate, it is very picky. Sometimes we don't care about accuracy enough to have to please core.typed.

Having a middle ground between fully checked and untyped code would be useful, preferably one that requires no annotations, but could be made more accurate with annotations.


Implement a new "sanity check" mode. It should check things like arity mismatches

The type checking level should be configurable per-namespace (per def?)

We can use existing annotations, but perhaps strip information like generics and polymorphic binders.

nil might need to be a subtype of everything in this mode.



Progressive Types