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, OrigName, 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
32 class Uniquable a where
33 uniqueOf :: a -> Unique
35 -- SPECIALIZing in FiniteMap
43 instance Eq (GenClass a b)
52 instance Ord (GenId a)
54 instance Ord (GenClass a b)
58 -- SPECIALIZing in UniqFM, UniqSet
59 instance Uniquable OrigName
60 instance Uniquable (GenId a)
61 instance Uniquable TyCon
62 instance Uniquable (GenClass a b)
63 instance Uniquable Unique
64 instance Uniquable Name
66 -- SPECIALIZing in Name