Correctly shift the type in assume
Allow underscore in a product type
Fancy printing of products and lambdas
Occur checks