Safe Haskell | None |
---|

# Documentation

class (Ord term, Variable v, Function f v) => Term term v f | term -> v f whereSource

Build a term which is a variable reference.

fApp :: f -> [term] -> termSource

Build a term by applying terms to an atomic function. `f`

(atomic function) is one of the type parameters, this package
is mostly indifferent to its internal structure.

foldTerm :: (v -> r) -> (f -> [term] -> r) -> term -> rSource

A fold for the term data type, which understands terms built from a variable and a term built from the application of a primitive function to other terms.

zipTerms :: (v -> v -> Maybe r) -> (f -> [term] -> f -> [term] -> Maybe r) -> term -> term -> Maybe rSource

convertTerm :: forall term1 v1 f1 term2 v2 f2. (Term term1 v1 f1, Term term2 v2 f2) => (v1 -> v2) -> (f1 -> f2) -> term1 -> term2Source