[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / prelude / PrimKind.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface PrimKind where
3 import Class(Class)
4 import Id(DataCon(..), Id, IdDetails)
5 import IdInfo(IdInfo)
6 import Maybes(Labda)
7 import NameTypes(FullName)
8 import Outputable(Outputable)
9 import TyCon(TyCon)
10 import TyVar(TyVar, TyVarTemplate)
11 import UniType(UniType)
12 import Unique(Unique)
13 type DataCon = Id
14 data Id         {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
15 data PrimKind   = PtrKind | CodePtrKind | DataPtrKind | RetKind | InfoPtrKind | CostCentreKind | CharKind | IntKind | WordKind | AddrKind | FloatKind | DoubleKind | MallocPtrKind | StablePtrKind | ArrayKind | ByteArrayKind | VoidKind
16 data TyCon      {-# GHC_PRAGMA SynonymTyCon Unique FullName Int [TyVarTemplate] UniType Bool | DataTyCon Unique FullName Int [TyVarTemplate] [Id] [Class] Bool | TupleTyCon Int | PrimTyCon Unique FullName Int ([PrimKind] -> PrimKind) | SpecTyCon TyCon [Labda UniType] #-}
17 data UniType    {-# GHC_PRAGMA UniTyVar TyVar | UniFun UniType UniType | UniData TyCon [UniType] | UniSyn TyCon [UniType] UniType | UniDict Class UniType | UniTyVarTemplate TyVarTemplate | UniForall TyVarTemplate UniType #-}
18 getKindInfo :: PrimKind -> ([Char], UniType, TyCon)
19         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
20 getKindSize :: PrimKind -> Int
21         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
22 guessPrimKind :: [Char] -> PrimKind
23         {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _S_ "S" _N_ _N_ #-}
24 isFloatingKind :: PrimKind -> Bool
25         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _F_ _IF_ARGS_ 0 1 C 20 \ (u0 :: PrimKind) -> case u0 of { _ALG_ _ORIG_ PrimKind DoubleKind  -> _!_ True [] []; _ORIG_ PrimKind FloatKind  -> _!_ True [] []; (u1 :: PrimKind) -> _!_ False [] [] } _N_ #-}
26 isFollowableKind :: PrimKind -> Bool
27         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
28 retKindSize :: Int
29         {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
30 separateByPtrFollowness :: (a -> PrimKind) -> [a] -> ([a], [a])
31         {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "LS" _N_ _N_ #-}
32 showPrimKind :: PrimKind -> [Char]
33         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "E" _N_ _N_ #-}
34 instance Eq PrimKind
35         {-# GHC_PRAGMA _M_ PrimKind {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(PrimKind -> PrimKind -> Bool), (PrimKind -> PrimKind -> Bool)] [_CONSTM_ Eq (==) (PrimKind), _CONSTM_ Eq (/=) (PrimKind)] _N_
36          (==) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
37          (/=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
38 instance Ord PrimKind
39         {-# GHC_PRAGMA _M_ PrimKind {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq PrimKind}}, (PrimKind -> PrimKind -> Bool), (PrimKind -> PrimKind -> Bool), (PrimKind -> PrimKind -> Bool), (PrimKind -> PrimKind -> Bool), (PrimKind -> PrimKind -> PrimKind), (PrimKind -> PrimKind -> PrimKind), (PrimKind -> PrimKind -> _CMP_TAG)] [_DFUN_ Eq (PrimKind), _CONSTM_ Ord (<) (PrimKind), _CONSTM_ Ord (<=) (PrimKind), _CONSTM_ Ord (>=) (PrimKind), _CONSTM_ Ord (>) (PrimKind), _CONSTM_ Ord max (PrimKind), _CONSTM_ Ord min (PrimKind), _CONSTM_ Ord _tagCmp (PrimKind)] _N_
40          (<) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
41          (<=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
42          (>=) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
43          (>) = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_,
44          max = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
45          min = _A_ 2 _U_ 22 _N_ _S_ "EE" _N_ _N_,
46          _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "EE" _N_ _N_ #-}
47 instance Outputable PrimKind
48         {-# GHC_PRAGMA _M_ PrimKind {-dfun-} _A_ 2 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 1 _CONSTM_ Outputable ppr (PrimKind) _N_
49          ppr = _A_ 2 _U_ 0120 _N_ _S_ "AL" {_A_ 1 _U_ 120 _N_ _N_ _N_ _N_} _N_ _N_ #-}
50