@@ -180,6 +180,7 @@ data PatternCtorArg =
180180
181181
182182data Annotation = Forall FreeVars Type
183+ deriving (Eq)
183184
184185
185186type FreeVars = Map.Map Name ()
@@ -193,15 +194,17 @@ data Type
193194 | TUnit
194195 | TTuple Type Type (Maybe Type)
195196 | TAlias ModuleName.Canonical Name [(Name, Type)] AliasType
197+ deriving (Eq)
196198
197199
198200data AliasType
199201 = Holey Type
200202 | Filled Type
203+ deriving (Eq)
201204
202205
203−data FieldType =
204− FieldType {-# UNPACK #-} !Word16 Type
206+data FieldType = FieldType {-# UNPACK #-} !Word16 Type
207+ deriving (Eq)
205208
206209
207210-- NOTE: The Word16 marks the source order, but it may not be available
@@ -237,7 +240,11 @@ data Module =
237240
238241
239242data Alias = Alias [Name] Type
243+ deriving (Eq)
244+
245+
240246data Binop = Binop_ Binop.Associativity Binop.Precedence Name
247+ deriving (Eq)
241248
242249
243250data Union =
@@ -247,6 +254,7 @@ data Union =
247254 , _u_numAlts :: Int -- CACHE numAlts for exhaustiveness checking
248255 , _u_opts :: CtorOpts -- CACHE which optimizations are available
249256 }
257+ deriving (Eq)
250258
251259
252260data CtorOpts
@@ -256,8 +264,8 @@ data CtorOpts
256264 deriving (Eq, Ord)
257265
258266
259−data Ctor =
260− Ctor Name Index.ZeroBased Int [Type] -- CACHE length args
267+data Ctor = Ctor Name Index.ZeroBased Int [Type] -- CACHE length args
268+ deriving (Eq)
261269
262270
263271