Fix pretty printing of types

Use type_scheme instead of type_expr, use generic level for printing.
Temporary: fix locations in optarg desugaring
vim: refactor and adjust typing heuristics