In this assignment you will implement a type inference pass for MinHS. The language used in this
ers from the language of the first assignment in two respects: it has a polymorphic
type system, and it has aggregate data structures.
The assignment involves:
implement type synthesis for polymorphic MinHS with sum and product data types.
adjust the type inference pass to allow optional type annotations provided
by the user.
Each of these parts is explained in detail below.
The front end, typechecker, and an interpreter backend are provided for you. You do not have
to change anything in any module other than
[url removed, login to view] (even for the bonus part).
Your type inference pass should annotate the abstract syntax with type information, where it
is missing. The resulting abstract syntax should be fully annotated and correctly typed.
Details of the project attached