working on alg W
[fp.git] / src / HM / Term.hs
index 0a686f9..cf4cf36 100644 (file)
@@ -23,8 +23,8 @@ type VarName = String
 type TypeVarName = String
 type TypeName = String
 
 type TypeVarName = String
 type TypeName = String
 
-data Type = Primitive TypeName | TypeVar TypeVarName | TypeFunction Type Type 
-data TypeScheme = TScheme Type | TSForAll TypeVarName TypeScheme
+data Type = Primitive TypeName | TypeVar TypeVarName | TypeFunction Type Type deriving (Eq)
+data TypeScheme = TScheme Type | TSForAll TypeVarName TypeScheme deriving (Eq)
 
 data Term = Var VarName | Lam VarName TypedTerm | App TypedTerm TypedTerm | Let VarName TypedTerm TypedTerm
 data TypedTerm = NTTerm Term | TTerm Term TypeScheme
 
 data Term = Var VarName | Lam VarName TypedTerm | App TypedTerm TypedTerm | Let VarName TypedTerm TypedTerm
 data TypedTerm = NTTerm Term | TTerm Term TypeScheme