UMinho Haskell Libraries (1.0)ContentsIndex
Data.Unification
Synopsis
class HasVariables a where
isVar :: a -> Bool
type Subst a = [(a, a)]
empty :: Subst a
unit :: a -> a -> Subst a
vars :: (HasVariables a, Data a) => a -> [a]
apply :: (HasVariables a, Eq a, Data a, Data b) => Subst a -> b -> b
(@@) :: (HasVariables a, Eq a, Data a) => Subst a -> Subst a -> Subst a
unify :: (HasVariables a, Eq a, Data a) => a -> a -> Maybe (Subst a)
unif :: (HasVariables a, Eq a, Data a) => a -> a -> Maybe (Subst a)
aux :: (HasVariables a, Eq a, Data a) => a -> a -> StateT (Subst a) Maybe a
tmapM' :: (Data a, Data b, Monad m) => (b -> b -> m b) -> a -> a -> m a
mkMM :: (Typeable a, Typeable b, Typeable c, Typeable d, Monad m) => (a -> b -> m b) -> c -> d -> m d
unifyVar :: (Data a, HasVariables b, Eq b, Data b, Data c) => a -> b -> Maybe (Subst c)
data E
= V Int
| A
| B E E
| C Int
Produced by Haddock version 0.6