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 )
14 import UniqFM ( Uniquable(..) )
15 import MachRegs ( Reg )
16 import CLabel ( CLabel )
21 data GenId a -- NB: fails the optimisation criterion
22 data GenTyVar a -- NB: fails the optimisation criterion
31 class Uniquable a where
32 uniqueOf :: a -> Unique
34 -- SPECIALIZing in FiniteMap
41 instance Eq (GenClass a b)
49 instance Ord (GenId a)
51 instance Ord (GenClass a b)
55 -- SPECIALIZing in UniqFM, UniqSet
56 instance Uniquable (GenId a)
57 instance Uniquable TyCon
58 instance Uniquable (GenClass a b)
59 instance Uniquable Unique
60 instance Uniquable Name
62 -- SPECIALIZing in Name