Safe Haskell | None |
---|

The Apply class represents a type of atom the only supports predicate application.

- class Predicate p => Apply atom p term | atom -> p term where
- class (Arity p, Constants p, Eq p, Ord p, Data p, Pretty p) => Predicate p
- apply :: Apply atom p term => p -> [term] -> atom
- zipApplys :: Apply atom p term => (p -> [term] -> p -> [term] -> Maybe r) -> (Bool -> Bool -> Maybe r) -> atom -> atom -> Maybe r
- apply0 :: Apply atom p term => p -> atom
- apply1 :: Apply atom p term => p -> term -> atom
- apply2 :: Apply atom p term => p -> term -> term -> atom
- apply3 :: Apply atom p term => p -> term -> term -> term -> atom
- apply4 :: Apply atom p term => p -> term -> term -> term -> term -> atom
- apply5 :: Apply atom p term => p -> term -> term -> term -> term -> term -> atom
- apply6 :: Apply atom p term => p -> term -> term -> term -> term -> term -> term -> atom
- apply7 :: Apply atom p term => p -> term -> term -> term -> term -> term -> term -> term -> atom
- showApply :: (Apply atom p term, Term term v f, Show v, Show p, Show f) => atom -> String
- prettyApply :: (Apply atom p term, Term term v f) => (v -> Doc) -> (p -> Doc) -> (f -> Doc) -> Int -> atom -> Doc
- varApply :: (Apply atom p term, Term term v f) => atom -> Set v
- substApply :: (Apply atom p term, Constants atom, Term term v f) => Map v term -> atom -> atom

# Documentation

class Predicate p => Apply atom p term | atom -> p term whereSource

apply :: Apply atom p term => p -> [term] -> atomSource

apply' with an arity check - clients should always call this.

zipApplys :: Apply atom p term => (p -> [term] -> p -> [term] -> Maybe r) -> (Bool -> Bool -> Maybe r) -> atom -> atom -> Maybe rSource

apply7 :: Apply atom p term => p -> term -> term -> term -> term -> term -> term -> term -> atomSource

prettyApply :: (Apply atom p term, Term term v f) => (v -> Doc) -> (p -> Doc) -> (f -> Doc) -> Int -> atom -> DocSource