3 -- Copyright : Tomáš Musil 2014
6 -- Maintainer : tomik.musil@gmail.com
7 -- Stability : experimental
9 -- Data types for Hindley-Milner terms.
23 type TypeVarName = String
24 type TypeName = String
26 data Type = Primitive TypeName | TypeVar TypeVarName | TypeFunction Type Type
27 data TypeScheme = TScheme Type | TSForAll TypeVarName TypeScheme
29 data Term = Var VarName | Lam VarName TypedTerm | App TypedTerm TypedTerm | Let VarName TypedTerm TypedTerm
30 data TypedTerm = NTTerm Term | TTerm Term TypeScheme