Choice (aka. either) type.
Print inferred constraint.
Mapping and folding for the typ datastructure.
Unary (for recursive definitions -- preconditions) and binary (for existential types -- postconditions) predicate variables.
Constraint generation initial commit.