1 This loop-breaking module is used solely to braek the loops caused by
5 interface SpecLoop where
7 import RdrHsSyn ( RdrName )
8 import Name ( Name, OccName )
9 import TyVar ( GenTyVar )
10 import TyCon ( TyCon )
11 import Class ( GenClass, GenClassOp )
13 import Unique ( Unique, Uniquable(..) )
14 import MachRegs ( Reg )
15 import CLabel ( CLabel )
20 data GenId a -- NB: fails the optimisation criterion
21 data GenTyVar a -- NB: fails the optimisation criterion
30 class Uniquable a where
31 uniqueOf :: a -> Unique
33 -- SPECIALIZing in FiniteMap
40 instance Eq (GenClass a b)
48 instance Ord (GenId a)
50 instance Ord (GenClass a b)
54 -- SPECIALIZing in UniqFM, UniqSet
55 instance Uniquable (GenId a)
56 instance Uniquable TyCon
57 instance Uniquable (GenClass a b)
58 instance Uniquable Unique
59 instance Uniquable Name
61 -- SPECIALIZing in Name