thih-1.0: Typing Haskell In Haskell
Pred
data Qual t Source
Constructors
Instances
data Pred Source
predHead :: Pred -> IdSource
type Class = ([Tyvar], [Pred], [Inst])Source
type Inst = Qual PredSource
data ClassEnv Source
Fields
sig :: ClassEnv -> Id -> [Tyvar]Source
super :: ClassEnv -> Id -> [Pred]Source
insts :: ClassEnv -> Id -> [Inst]Source
defined :: Maybe a -> BoolSource
modify :: ClassEnv -> Id -> Class -> ClassEnvSource
initialEnv :: ClassEnvSource
type EnvTransformer = ClassEnv -> Maybe ClassEnvSource
(<:>) :: EnvTransformer -> EnvTransformer -> EnvTransformerSource
addClass :: Id -> [Tyvar] -> [Pred] -> EnvTransformerSource
addPreludeClasses :: EnvTransformerSource
addCoreClasses :: EnvTransformerSource
addNumClasses :: EnvTransformerSource
addInst :: [Pred] -> Pred -> EnvTransformerSource
overlap :: Pred -> Pred -> BoolSource
exampleInsts :: EnvTransformerSource
bySuper :: ClassEnv -> Pred -> [Pred]Source
byInst :: ClassEnv -> Pred -> Maybe [Pred]Source
entail :: ClassEnv -> [Pred] -> Pred -> BoolSource
simplify :: ([Pred] -> Pred -> Bool) -> [Pred] -> [Pred]Source
reduce :: ClassEnv -> [Pred] -> [Pred]Source
elimTauts :: ClassEnv -> [Pred] -> [Pred]Source
scEntail :: ClassEnv -> [Pred] -> Pred -> BoolSource