hets -- a heterogenous Specification (CASL) tool setContentsIndex
HasCASL.TypeCheck
Portability portable
Stability experimental
Maintainer hets@tzi.de
Description
type inference
Synopsis
aVar :: Id
aType :: Type
bindA :: Type -> TypeScheme
eqType :: TypeScheme
logType :: TypeScheme
defType :: TypeScheme
notType :: TypeScheme
ifType :: TypeScheme
whenType :: TypeScheme
bList :: [(Id, TypeScheme)]
addUnit :: TypeMap -> TypeMap
addOps :: Assumps -> Assumps
resolveTerm :: GlobalAnnos -> Maybe Type -> Term -> State Env (Maybe Term)
checkPattern :: GlobalAnnos -> Pattern -> State Env (Maybe Pattern)
instantiate :: OpInfo -> State Env (Type, OpInfo)
lookupError :: Type -> [OpInfo] -> String
checkList :: (Maybe Type -> a -> State Env [(Subst, Type, a)]) -> [Maybe Type] -> [a] -> State Env [(Subst, [Type], [a])]
typeCheck :: (PosItem a, PrettyPrint a) => (Maybe Type -> a -> State Env [(Subst, Type, a)]) -> Maybe Type -> a -> State Env (Maybe a)
freshTypeVar :: State Env Type
freshVars :: [a] -> State Env [Type]
inferAppl :: (PosItem a, PrettyPrint a) => (Maybe Type -> a -> State Env [(Subst, Type, a)]) -> (a -> a -> a) -> Maybe Type -> a -> a -> State Env [(Subst, Type, a)]
infer :: Maybe Type -> Term -> State Env [(Subst, Type, Term)]
inferLetEq :: Maybe Type -> ProgEq -> State Env [(Subst, Type, ProgEq)]
inferPat :: Maybe Type -> Pattern -> State Env [(Subst, Type, Pattern)]
inferCaseEq :: Type -> Type -> ProgEq -> State Env [(Subst, Type, Type, ProgEq)]
inferCaseEqs :: Type -> Type -> [ProgEq] -> State Env [(Subst, Type, Type, [ProgEq])]
Documentation
aVar :: Id
aType :: Type
bindA :: Type -> TypeScheme
eqType :: TypeScheme
logType :: TypeScheme
defType :: TypeScheme
notType :: TypeScheme
ifType :: TypeScheme
whenType :: TypeScheme
bList :: [(Id, TypeScheme)]
addUnit :: TypeMap -> TypeMap
addOps :: Assumps -> Assumps
resolveTerm :: GlobalAnnos -> Maybe Type -> Term -> State Env (Maybe Term)
checkPattern :: GlobalAnnos -> Pattern -> State Env (Maybe Pattern)
instantiate :: OpInfo -> State Env (Type, OpInfo)
lookupError :: Type -> [OpInfo] -> String
checkList :: (Maybe Type -> a -> State Env [(Subst, Type, a)]) -> [Maybe Type] -> [a] -> State Env [(Subst, [Type], [a])]
typeCheck :: (PosItem a, PrettyPrint a) => (Maybe Type -> a -> State Env [(Subst, Type, a)]) -> Maybe Type -> a -> State Env (Maybe a)
freshTypeVar :: State Env Type
freshVars :: [a] -> State Env [Type]
inferAppl :: (PosItem a, PrettyPrint a) => (Maybe Type -> a -> State Env [(Subst, Type, a)]) -> (a -> a -> a) -> Maybe Type -> a -> a -> State Env [(Subst, Type, a)]
infer :: Maybe Type -> Term -> State Env [(Subst, Type, Term)]
inferLetEq :: Maybe Type -> ProgEq -> State Env [(Subst, Type, ProgEq)]
inferPat :: Maybe Type -> Pattern -> State Env [(Subst, Type, Pattern)]
type check patterns
inferCaseEq :: Type -> Type -> ProgEq -> State Env [(Subst, Type, Type, ProgEq)]
inferCaseEqs :: Type -> Type -> [ProgEq] -> State Env [(Subst, Type, Type, [ProgEq])]
Produced by Haddock version 0.6