CurryInfo: rewriting-3.0.0 / Rewriting.Unification.unify

definition:
unify :: Eq f => TermEqs f -> Either (UnificationError f) (Subst f)
unify eqs = let (rt, reqs) = termEqsToREqs eqs
             in either Left
                       (\(rt', reqs') -> Right (eqsToSubst rt' reqs'))
                       (unify' rt [] reqs)
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
--- Unifies a list of term equations. Returns either a unification error or a
--- substitution.
failfree:
(_, _)
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_) |-> _}
name:
unify
precedence:
no precedence defined
result-values:
_
signature:
Prelude.Eq a => [(Rewriting.Term.Term a, Rewriting.Term.Term a)]
-> Prelude.Either (Rewriting.UnificationSpec.UnificationError a) (Data.Map.Map Prelude.Int (Rewriting.Term.Term a))
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term