[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / abstractSyn / HsTypes.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface HsTypes where
3 import Name(Name)
4 import Outputable(Outputable)
5 import Pretty(PprStyle, PrettyRep)
6 import ProtoName(ProtoName)
7 type ClassAssertion a = (a, a)
8 type Context a = [(a, a)]
9 data MonoType a   = MonoTyVar a | MonoTyCon a [MonoType a] | FunMonoTy (MonoType a) (MonoType a) | ListMonoTy (MonoType a) | TupleMonoTy [PolyType a] | MonoTyVarTemplate a | MonoDict a (MonoType a)
10 data PolyType a   = UnoverloadedTy (MonoType a) | OverloadedTy [(a, a)] (MonoType a) | ForAllTy [a] (MonoType a)
11 type ProtoNameContext = [(ProtoName, ProtoName)]
12 type ProtoNameMonoType = MonoType ProtoName
13 type ProtoNamePolyType = PolyType ProtoName
14 type RenamedContext = [(Name, Name)]
15 type RenamedMonoType = MonoType Name
16 type RenamedPolyType = PolyType Name
17 cmpList :: (a -> a -> Int#) -> [a] -> [a] -> Int#
18         {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "LSS" _N_ _N_ #-}
19 cmpMonoType :: (a -> a -> Int#) -> MonoType a -> MonoType a -> Int#
20         {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSS" _N_ _N_ #-}
21 cmpPolyType :: (a -> a -> Int#) -> PolyType a -> PolyType a -> Int#
22         {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "LSS" _N_ _N_ #-}
23 eqMonoType :: MonoType ProtoName -> MonoType ProtoName -> Bool
24         {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
25 pprContext :: Outputable a => PprStyle -> [(a, a)] -> Int -> Bool -> PrettyRep
26         {-# GHC_PRAGMA _A_ 3 _U_ 22122 _N_ _S_ "LLS" _N_ _N_ #-}
27 pprParendMonoType :: Outputable a => PprStyle -> MonoType a -> Int -> Bool -> PrettyRep
28         {-# GHC_PRAGMA _A_ 1 _U_ 22122 _N_ _N_ _N_ _N_ #-}
29 instance Outputable a => Outputable (MonoType a)
30         {-# GHC_PRAGMA _M_ HsTypes {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
31 instance Outputable a => Outputable (PolyType a)
32         {-# GHC_PRAGMA _M_ HsTypes {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
33