tyConTheta,
tyConPrimRep,
tyConArity,
- tyConClass_maybe,
+ isClassTyCon,
getSynTyConDefn,
maybeTyConSingleCon,
algTyConRec :: RecFlag, -- Tells whether the data type is part of
-- a mutually-recursive group or not
- algTyConClass_maybe :: Maybe Class -- Nothing for ordinary types;
- -- Just c for the type constructor
- -- for dictionaries of class c.
-
+ algTyConClass :: Bool -- True if this tycon comes from a class declaration
}
| PrimTyCon { -- Primitive types; cannot be defined in Haskell
dataCons = cons,
noOfDataCons = ncons,
algTyConDerivings = derivs,
- algTyConClass_maybe = Nothing,
+ algTyConClass = False,
algTyConFlavour = flavour,
algTyConRec = rec
}
dataCons = [con],
noOfDataCons = 1,
algTyConDerivings = [],
- algTyConClass_maybe = Just clas,
+ algTyConClass = True,
algTyConFlavour = flavour,
algTyConRec = NonRecursive
}
\end{code}
\begin{code}
-tyConClass_maybe :: TyCon -> Maybe Class
-tyConClass_maybe (AlgTyCon {algTyConClass_maybe = maybe_cls}) = maybe_cls
-tyConClass_maybe other_tycon = Nothing
+isClassTyCon :: TyCon -> Bool
+isClassTyCon (AlgTyCon {algTyConClass = is_class_tycon}) = is_class_tycon
+isClassTyCon other_tycon = False
\end{code}