if we use a lowercase type variable name in a type, it should implicitly put a forall on the outermost position relative to the parent pattern, e.g. forall a -> forall b -> ([a], a -> b) -> [b] could just be written ([a], a -> b) -> [b].
typfuns should also be elidable if you are analyzing underneath
if we use a lowercase type variable name in a type, it should implicitly put a forall on the outermost position relative to the parent pattern, e.g.
forall a -> forall b -> ([a], a -> b) -> [b]
could just be written([a], a -> b) -> [b]
.typfuns should also be elidable if you are analyzing underneath