44f6c54f5fb91fca9982522826322d6415c67a8d
[ghc-hetmet.git] / ghc / compiler / specialise / SpecTyFuns.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface SpecTyFuns where
3 import Bag(Bag)
4 import Class(Class)
5 import Id(Id)
6 import Maybes(Labda(..))
7 import Pretty(PprStyle, Pretty(..), PrettyRep)
8 import TyCon(TyCon)
9 import TyVar(TyVar, TyVarTemplate)
10 import UniType(UniType)
11 type ConstraintVector = [Bool]
12 data Labda a   = Hamna | Ni a
13 type Pretty = Int -> Bool -> PrettyRep
14 data UniType    {-# GHC_PRAGMA UniTyVar TyVar | UniFun UniType UniType | UniData TyCon [UniType] | UniSyn TyCon [UniType] UniType | UniDict Class UniType | UniTyVarTemplate TyVarTemplate | UniForall TyVarTemplate UniType #-}
15 argTysMatchSpecTys_error :: [Labda UniType] -> [UniType] -> Labda (Int -> Bool -> PrettyRep)
16         {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
17 isUnboxedSpecialisation :: [Labda UniType] -> Bool
18         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
19 mkConstraintVector :: [TyVarTemplate] -> [(Class, TyVarTemplate)] -> [Bool]
20         {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SL" _N_ _N_ #-}
21 mkSpecialisedCon :: Id -> [UniType] -> Id
22         {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LLLL)S" {_A_ 5 _U_ 22221 _N_ _N_ _N_ _N_} _N_ _N_ #-}
23 pprSpecErrs :: PprStyle -> Bag (Id, [Labda UniType]) -> Bag (Id, [Labda UniType]) -> Bag (TyCon, [Labda UniType]) -> Int -> Bool -> PrettyRep
24         {-# GHC_PRAGMA _A_ 4 _U_ 222222 _N_ _S_ "LSLL" _N_ _N_ #-}
25 specialiseCallTys :: Bool -> Bool -> Bool -> [Bool] -> [UniType] -> [Labda UniType]
26         {-# GHC_PRAGMA _A_ 5 _U_ 12211 _N_ _S_ "ELLLL" _N_ _N_ #-}
27 specialiseConstrTys :: [UniType] -> [Labda UniType]
28         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
29