1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface InstEnv where
3 import BasicLit(BasicLit)
4 import Class(Class, ClassOp)
5 import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr)
6 import CostCentre(CostCentre)
8 import HsExpr(ArithSeqInfo, Expr, Qual)
10 import HsMatches(Match)
11 import HsPat(InPat, TypecheckedPat)
12 import HsTypes(PolyType)
14 import IdInfo(SpecEnv, SpecInfo)
15 import Inst(Inst, InstOrigin, OverloadedLit)
16 import Maybes(Labda, MaybeErr)
18 import PreludePS(_PackedString)
19 import PrimOps(PrimOp)
20 import SplitUniq(SplitUniqSupply)
23 import TyVar(TyVar, TyVarTemplate)
24 import UniType(UniType)
27 type ClassInstEnv = [(UniType, InstTemplate)]
36 type InstanceMapper = Class -> ([(UniType, InstTemplate)], ClassOp -> SpecEnv)
38 type MatchEnv a b = [(a, b)]
40 type MethodInstInfo = (Id, [UniType], InstTemplate)
47 addClassInst :: Class -> [(UniType, InstTemplate)] -> UniType -> Id -> [TyVarTemplate] -> [(Class, UniType)] -> SrcLoc -> MaybeErr [(UniType, InstTemplate)] (Class, (UniType, SrcLoc), (UniType, SrcLoc))
48 lookupClassInstAtSimpleType :: Class -> UniType -> Labda Id
49 lookupInst :: SplitUniqSupply -> Inst -> Labda (Expr Id TypecheckedPat, [Inst])
50 lookupNoBindInst :: SplitUniqSupply -> Inst -> Labda [Inst]