summaryrefslogtreecommitdiff
path: root/ghc/compiler/utils/SpecLoop.lhi
diff options
context:
space:
mode:
authorsimonpj <unknown>1996-12-19 18:36:20 +0000
committersimonpj <unknown>1996-12-19 18:36:20 +0000
commitbb521c6bba76f19474f12195b990b29eda66a4e8 (patch)
treefecb11771c7d9f25634e6bd5857c991686707b8d /ghc/compiler/utils/SpecLoop.lhi
parentc3e7e772db4fbc7171de7b7e98d578ab9cff167c (diff)
downloadhaskell-bb521c6bba76f19474f12195b990b29eda66a4e8.tar.gz
[project @ 1996-12-19 18:35:23 by simonpj]
Adding and removing files
Diffstat (limited to 'ghc/compiler/utils/SpecLoop.lhi')
-rw-r--r--ghc/compiler/utils/SpecLoop.lhi67
1 files changed, 67 insertions, 0 deletions
diff --git a/ghc/compiler/utils/SpecLoop.lhi b/ghc/compiler/utils/SpecLoop.lhi
new file mode 100644
index 0000000000..74e3f2cb7b
--- /dev/null
+++ b/ghc/compiler/utils/SpecLoop.lhi
@@ -0,0 +1,67 @@
+This loop-breaking module is used solely to braek the loops caused by
+SPECIALIZE pragmas.
+
+\begin{code}
+interface SpecLoop where
+
+import RdrHsSyn ( RdrName )
+import Name ( Name, OrigName, OccName )
+import TyVar ( GenTyVar )
+import TyCon ( TyCon )
+import Class ( GenClass, GenClassOp )
+import Id ( GenId )
+import Unique ( Unique )
+import UniqFM ( Uniquable(..) )
+import MachRegs ( Reg )
+import CLabel ( CLabel )
+
+data RdrName
+data GenClass a b
+data GenClassOp a
+data GenId a -- NB: fails the optimisation criterion
+data GenTyVar a -- NB: fails the optimisation criterion
+data Name
+data OrigName
+data OccName
+data TyCon
+data Unique
+data Reg
+data CLabel
+
+
+class Uniquable a where
+ uniqueOf :: a -> Unique
+
+-- SPECIALIZing in FiniteMap
+instance Eq Reg
+instance Eq CLabel
+instance Eq OccName
+instance Eq RdrName
+instance Eq OrigName
+instance Eq (GenId a)
+instance Eq TyCon
+instance Eq (GenClass a b)
+instance Eq Unique
+instance Eq Name
+
+instance Ord Reg
+instance Ord CLabel
+instance Ord OccName
+instance Ord RdrName
+instance Ord OrigName
+instance Ord (GenId a)
+instance Ord TyCon
+instance Ord (GenClass a b)
+instance Ord Unique
+instance Ord Name
+
+-- SPECIALIZing in UniqFM, UniqSet
+instance Uniquable OrigName
+instance Uniquable (GenId a)
+instance Uniquable TyCon
+instance Uniquable (GenClass a b)
+instance Uniquable Unique
+instance Uniquable Name
+
+-- SPECIALIZing in Name
+\end{code}