Hets - the Heterogeneous Tool Set

Copyright(c) Christian Maeder, DFKI Bremen 2008
LicenseGPLv2 or higher, see LICENSE.txt
MaintainerChristian.Maeder@dfki.de
Stabilityprovisional
Portabilityportable
Safe HaskellNone

VSE.Fold

Description

folding functions for VSE progams

Synopsis

Documentation

data FoldRec a

fold record

Constructors

FoldRec 

Fields

foldAbort :: Program -> a
 
foldSkip :: Program -> a
 
foldAssign :: Program -> VAR -> TERM () -> a
 
foldCall :: Program -> FORMULA () -> a
 
foldReturn :: Program -> TERM () -> a
 
foldBlock :: Program -> [VAR_DECL] -> a -> a
 
foldSeq :: Program -> a -> a -> a
 
foldIf :: Program -> FORMULA () -> a -> a -> a
 
foldWhile :: Program -> FORMULA () -> a -> a
 

foldProg :: FoldRec a -> Program -> a

fold function

mapProg :: (TERM () -> TERM ()) -> (FORMULA () -> FORMULA ()) -> FoldRec Program

constProg :: (TERM () -> a) -> (FORMULA () -> a) -> ([a] -> a) -> a -> FoldRec a

collect i.e. variables to be universally bound on the top level

progToSetRec :: Ord a => (TERM () -> Set a) -> (FORMULA () -> Set a) -> FoldRec (Set a)