curry-base-0.2.2: Functions for manipulating Curry programs

Curry.ExtendedFlat.Goodies

Documentation

type Update a b = (b -> b) -> a -> aSource

trProg :: (String -> [String] -> [TypeDecl] -> [FuncDecl] -> [OpDecl] -> a) -> Prog -> aSource

updProg :: (String -> String) -> ([String] -> [String]) -> ([TypeDecl] -> [TypeDecl]) -> ([FuncDecl] -> [FuncDecl]) -> ([OpDecl] -> [OpDecl]) -> Prog -> ProgSource

trType :: (QName -> Visibility -> [TVarIndex] -> [ConsDecl] -> a) -> (QName -> Visibility -> [TVarIndex] -> TypeExpr -> a) -> TypeDecl -> aSource

trCons :: (QName -> Int -> Visibility -> [TypeExpr] -> a) -> ConsDecl -> aSource

trTypeExpr :: (TVarIndex -> a) -> (QName -> [a] -> a) -> (a -> a -> a) -> TypeExpr -> aSource

trOp :: (QName -> Fixity -> Integer -> a) -> OpDecl -> aSource

trFunc :: (QName -> Int -> Visibility -> TypeExpr -> Rule -> a) -> FuncDecl -> aSource

trRule :: ([VarIndex] -> Expr -> a) -> (String -> a) -> Rule -> aSource

updRule :: ([VarIndex] -> [VarIndex]) -> (Expr -> Expr) -> (String -> String) -> Rule -> RuleSource

trCombType :: a -> (Int -> a) -> a -> (Int -> a) -> CombType -> aSource

trExpr :: (VarIndex -> a) -> (Literal -> a) -> (CombType -> QName -> [a] -> a) -> ([(VarIndex, a)] -> a -> a) -> ([VarIndex] -> a -> a) -> (a -> a -> a) -> (SrcRef -> CaseType -> a -> [b] -> a) -> (Pattern -> a -> b) -> Expr -> aSource

updLets :: ([(VarIndex, Expr)] -> Expr -> Expr) -> Expr -> ExprSource

updOrs :: (Expr -> Expr -> Expr) -> Expr -> ExprSource

trBranch :: (Pattern -> Expr -> a) -> BranchExpr -> aSource

trPattern :: (QName -> [VarIndex] -> a) -> (Literal -> a) -> Pattern -> aSource