Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- matchGlobalInst :: DynFlags -> Bool -> Class -> [Type] -> TcM ClsInstResult
- data ClsInstResult
- = NoInstance
- | OneInst {
- cir_new_theta :: [TcPredType]
- cir_mk_ev :: [EvExpr] -> EvTerm
- cir_what :: InstanceWhat
- | NotSure
- data InstanceWhat
- = BuiltinInstance
- | LocalInstance
- | TopLevInstance {
- iw_dfun_id :: DFunId
- iw_safe_over :: SafeOverlapping
- safeOverlap :: InstanceWhat -> Bool
- data AssocInstInfo
- = NotAssociated
- | InClsInst { }
- isNotAssociated :: AssocInstInfo -> Bool
Documentation
matchGlobalInst :: DynFlags -> Bool -> Class -> [Type] -> TcM ClsInstResult Source #
data ClsInstResult Source #
NoInstance | |
OneInst | |
| |
NotSure |
Instances
Outputable ClsInstResult Source # | |
Defined in ClsInst ppr :: ClsInstResult -> SDoc # pprPrec :: Rational -> ClsInstResult -> SDoc # |
data InstanceWhat Source #
BuiltinInstance | |
LocalInstance | |
TopLevInstance | |
|
Instances
Outputable InstanceWhat Source # | |
Defined in ClsInst ppr :: InstanceWhat -> SDoc # pprPrec :: Rational -> InstanceWhat -> SDoc # |
safeOverlap :: InstanceWhat -> Bool Source #
data AssocInstInfo Source #
Extra information about the parent instance declaration, needed
when type-checking associated types. The Class
is the enclosing
class, the [TyVar] are the scoped type variable of the instance decl.
The VarEnv Type
maps class variables to their instance types.
isNotAssociated :: AssocInstInfo -> Bool Source #