narc-0.1.3: Query SQL databases using Nested Relational Calculus embedded in Haskell.




type QType = ([TyVar], Type)Source

type TySubst = [(Int, Type)]Source

type TyEnv = [(VarName, QType)]Source

applyTySubst :: TySubst -> Type -> TypeSource

ftvs: free type variables

ftvsSubst: the free type variables of a type substitution--that is, the type variables free in the types in the range of the substitution.

occurs x ty: does variable x appear in type ty? (Note there are no type-variable binders).

normalizeType :: Type -> State (Int, [(Int, Int)]) TypeSource

normalizeType: Renumber all the type variables in a normal way to allow comparing types.

instanceOf :: Type -> Type -> Failure ()Source

unify :: Type -> Type -> Failure TySubstSource

unifyAll :: [Type] -> Failure TySubstSource