Hets - the Heterogeneous Tool Set

Copyright(c) Christian Maeder, Uni Bremen 2005
LicenseGPLv2 or higher, see LICENSE.txt
MaintainerChristian.Maeder@dfki.de
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred

CASL.Fold

Description

folding functions for CASL terms and formulas

Documentation

data Record f a b

Constructors

Record 

Fields

foldQuantification :: FORMULA f -> QUANTIFIER -> [VAR_DECL] -> a -> Range -> a
 
foldJunction :: FORMULA f -> Junctor -> [a] -> Range -> a
 
foldRelation :: FORMULA f -> a -> Relation -> a -> Range -> a
 
foldNegation :: FORMULA f -> a -> Range -> a
 
foldAtom :: FORMULA f -> Bool -> Range -> a
 
foldPredication :: FORMULA f -> PRED_SYMB -> [b] -> Range -> a
 
foldDefinedness :: FORMULA f -> b -> Range -> a
 
foldEquation :: FORMULA f -> b -> Equality -> b -> Range -> a
 
foldMembership :: FORMULA f -> b -> SORT -> Range -> a
 
foldMixfix_formula :: FORMULA f -> b -> a
 
foldSort_gen_ax :: FORMULA f -> [Constraint] -> Bool -> a
 
foldQuantOp :: FORMULA f -> OP_NAME -> OP_TYPE -> a -> a
 
foldQuantPred :: FORMULA f -> PRED_NAME -> PRED_TYPE -> a -> a
 
foldExtFORMULA :: FORMULA f -> f -> a
 
foldQual_var :: TERM f -> VAR -> SORT -> Range -> b
 
foldApplication :: TERM f -> OP_SYMB -> [b] -> Range -> b
 
foldSorted_term :: TERM f -> b -> SORT -> Range -> b
 
foldCast :: TERM f -> b -> SORT -> Range -> b
 
foldConditional :: TERM f -> b -> a -> b -> Range -> b
 
foldMixfix_qual_pred :: TERM f -> PRED_SYMB -> b
 
foldMixfix_term :: TERM f -> [b] -> b
 
foldMixfix_token :: TERM f -> Token -> b
 
foldMixfix_sorted_term :: TERM f -> SORT -> Range -> b
 
foldMixfix_cast :: TERM f -> SORT -> Range -> b
 
foldMixfix_parenthesized :: TERM f -> [b] -> Range -> b
 
foldMixfix_bracketed :: TERM f -> [b] -> Range -> b
 
foldMixfix_braced :: TERM f -> [b] -> Range -> b
 
foldExtTERM :: TERM f -> f -> b
 

mapRecord :: (f -> g) -> Record f (FORMULA g) (TERM g)

constRecord :: (f -> a) -> ([a] -> a) -> a -> Record f a a

foldFormula :: Record f a b -> FORMULA f -> a

foldTerm :: Record f a b -> TERM f -> b

foldOnlyTerm :: (FORMULA f -> a) -> Record f a b -> TERM f -> b