Module AbstractCurry.Transform

This library provides transformation and update operations on AbstractCurry programs. Since the transformations are defined recursively on structured types, they are useful to construct specific transformations on AbstractCurry programs. In particular, this library contains the transformation renameCurryModule to rename an AbstractCurry module.

Author: Michael Hanus

Version: October 2016

Summary of exported operations:

trCProg :: (String -> [String] -> Maybe CDefaultDecl -> [CClassDecl] -> [CInstanceDecl] -> [CTypeDecl] -> [CFuncDecl] -> [COpDecl] -> a) -> CurryProg -> a   
Transforms an AbstractCurry program.
updCProg :: (String -> String) -> ([String] -> [String]) -> (Maybe CDefaultDecl -> Maybe CDefaultDecl) -> ([CClassDecl] -> [CClassDecl]) -> ([CInstanceDecl] -> [CInstanceDecl]) -> ([CTypeDecl] -> [CTypeDecl]) -> ([CFuncDecl] -> [CFuncDecl]) -> ([COpDecl] -> [COpDecl]) -> CurryProg -> CurryProg   
Updates an AbstractCurry program.
updCProgName :: (String -> String) -> CurryProg -> CurryProg   
Updates the name of a Curry program.
trCDefaultDecl :: ([CTypeExpr] -> a) -> CDefaultDecl -> a   
Transforms a default declaration.
updCDefaultDecl :: ([CTypeExpr] -> [CTypeExpr]) -> CDefaultDecl -> CDefaultDecl   
Updates a default declaration.
trCContext :: ([((String,String),CTypeExpr)] -> a) -> CContext -> a   
Transforms a class context.
updCContext :: ([((String,String),CTypeExpr)] -> [((String,String),CTypeExpr)]) -> CContext -> CContext   
Updates a class context.
trCClassDecl :: ((String,String) -> CVisibility -> CContext -> (Int,String) -> [CFuncDecl] -> a) -> CClassDecl -> a   
Transforms a class declaration.
updCClassDecl :: ((String,String) -> (String,String)) -> (CVisibility -> CVisibility) -> (CContext -> CContext) -> ((Int,String) -> (Int,String)) -> ([CFuncDecl] -> [CFuncDecl]) -> CClassDecl -> CClassDecl   
Updates an AbstractCurry program.
trCInstanceDecl :: ((String,String) -> CContext -> CTypeExpr -> [CFuncDecl] -> a) -> CInstanceDecl -> a   
Transforms a class declaration.
updCInstanceDecl :: ((String,String) -> (String,String)) -> (CContext -> CContext) -> (CTypeExpr -> CTypeExpr) -> ([CFuncDecl] -> [CFuncDecl]) -> CInstanceDecl -> CInstanceDecl   
Updates an AbstractCurry program.
trCTypeDecl :: ((String,String) -> CVisibility -> [(Int,String)] -> [CConsDecl] -> [(String,String)] -> a) -> ((String,String) -> CVisibility -> [(Int,String)] -> CTypeExpr -> a) -> ((String,String) -> CVisibility -> [(Int,String)] -> CConsDecl -> [(String,String)] -> a) -> CTypeDecl -> a   
Transforms a type declaration.
updCTypeDecl :: ((String,String) -> (String,String)) -> (CVisibility -> CVisibility) -> ([(Int,String)] -> [(Int,String)]) -> ([CConsDecl] -> [CConsDecl]) -> (CTypeExpr -> CTypeExpr) -> (CConsDecl -> CConsDecl) -> ([(String,String)] -> [(String,String)]) -> CTypeDecl -> CTypeDecl   
update type declaration
updCTypeDeclName :: ((String,String) -> (String,String)) -> CTypeDecl -> CTypeDecl   
Updates the name of a type declaration.
trCConsDecl :: ([(Int,String)] -> CContext -> (String,String) -> CVisibility -> [CTypeExpr] -> a) -> ([(Int,String)] -> CContext -> (String,String) -> CVisibility -> [CFieldDecl] -> a) -> CConsDecl -> a   
Transforms a constructor declaration.
updCConsDecl :: ([(Int,String)] -> [(Int,String)]) -> (CContext -> CContext) -> ((String,String) -> (String,String)) -> (CVisibility -> CVisibility) -> ([CTypeExpr] -> [CTypeExpr]) -> ([CFieldDecl] -> [CFieldDecl]) -> CConsDecl -> CConsDecl   
Updates a constructor declaration.
updCConsDeclName :: ((String,String) -> (String,String)) -> CConsDecl -> CConsDecl   
Updates the name of a constructor declaration.
trCFieldDecl :: ((String,String) -> CVisibility -> CTypeExpr -> a) -> CFieldDecl -> a   
Transforms a constructor declaration.
updCFieldDecl :: ((String,String) -> (String,String)) -> (CVisibility -> CVisibility) -> (CTypeExpr -> CTypeExpr) -> CFieldDecl -> CFieldDecl   
update constructor declaration
updCFieldDeclName :: ((String,String) -> (String,String)) -> CFieldDecl -> CFieldDecl   
Updates the name of a constructor declaration.
trCQualTypeExpr :: (CContext -> CTypeExpr -> a) -> CQualTypeExpr -> a   
Transforms a default declaration.
updCQualTypeExpr :: (CContext -> CContext) -> (CTypeExpr -> CTypeExpr) -> CQualTypeExpr -> CQualTypeExpr   
Updates a default declaration.
trCTypeExpr :: ((Int,String) -> a) -> ((String,String) -> a) -> (a -> a -> a) -> (a -> a -> a) -> CTypeExpr -> a   
Transforms a type expression.
updTConsApp :: ((String,String) -> CTypeExpr) -> CTypeExpr -> CTypeExpr   
Updates all type constructors in a type expression.
trCOpDecl :: ((String,String) -> CFixity -> Int -> a) -> COpDecl -> a   
Transforms an operator declaration.
updCOpDecl :: ((String,String) -> (String,String)) -> (CFixity -> CFixity) -> (Int -> Int) -> COpDecl -> COpDecl   
Updates an operator declaration.
updCOpName :: ((String,String) -> (String,String)) -> COpDecl -> COpDecl   
Updates the name of an operator declaration.
trCFuncDecl :: (String -> (String,String) -> Int -> CVisibility -> CQualTypeExpr -> [CRule] -> a) -> CFuncDecl -> a   
Transforms a function declaration
updCFuncDecl :: (String -> String) -> ((String,String) -> (String,String)) -> (Int -> Int) -> (CVisibility -> CVisibility) -> (CQualTypeExpr -> CQualTypeExpr) -> ([CRule] -> [CRule]) -> CFuncDecl -> CFuncDecl   
Updates a function declaration.
trCRule :: ([CPattern] -> CRhs -> a) -> CRule -> a   
Transform a rule.
updCRule :: ([CPattern] -> [CPattern]) -> (CRhs -> CRhs) -> CRule -> CRule   
Update a rule.
trCRhs :: (CExpr -> [CLocalDecl] -> a) -> ([(CExpr,CExpr)] -> [CLocalDecl] -> a) -> CRhs -> a   
Transforms a right-hand side (of a rule or case expression).
updCRhs :: (CExpr -> CExpr) -> ([(CExpr,CExpr)] -> [(CExpr,CExpr)]) -> ([CLocalDecl] -> [CLocalDecl]) -> CRhs -> CRhs   
Updates right-hand side.
trCLocalDecl :: (CFuncDecl -> a) -> (CPattern -> CRhs -> a) -> ([(Int,String)] -> a) -> CLocalDecl -> a   
Transforms a local declaration.
updCLocalDecl :: (CFuncDecl -> CFuncDecl) -> (CPattern -> CPattern) -> (CRhs -> CRhs) -> ([(Int,String)] -> [(Int,String)]) -> CLocalDecl -> CLocalDecl   
Updates a local declaration.
trCPattern :: ((Int,String) -> a) -> (CLiteral -> a) -> ((String,String) -> [a] -> a) -> ((Int,String) -> a -> a) -> ((String,String) -> [a] -> a) -> ((String,String) -> [((String,String),a)] -> a) -> CPattern -> a   
Transforms a pattern.
updCPattern :: ((Int,String) -> (Int,String)) -> (CLiteral -> CLiteral) -> ((String,String) -> (String,String)) -> CPattern -> CPattern   
Updates a pattern.
trExpr :: ((Int,String) -> a) -> (CLiteral -> a) -> ((String,String) -> a) -> (a -> a -> a) -> ([CPattern] -> a -> a) -> ([CLocalDecl] -> a -> a) -> ([CStatement] -> a) -> (a -> [CStatement] -> a) -> (CCaseType -> a -> [(CPattern,CRhs)] -> a) -> (a -> CQualTypeExpr -> a) -> ((String,String) -> [((String,String),a)] -> a) -> (a -> [((String,String),a)] -> a) -> CExpr -> a   
Transforms an expression.
trCStatement :: (CExpr -> a) -> (CPattern -> CExpr -> a) -> ([CLocalDecl] -> a) -> CStatement -> a   
Transforms a statement (occuring in do expressions or list comprehensions).
updCStatement :: (CExpr -> CExpr) -> (CPattern -> CPattern) -> (CLocalDecl -> CLocalDecl) -> CStatement -> CStatement   
Updates a statement (occuring in do expressions or list comprehensions).
renameCurryModule :: String -> CurryProg -> CurryProg   
Renames a Curry module, i.e., updates the module name and all qualified names in a program.
updQNamesInCProg :: ((String,String) -> (String,String)) -> CurryProg -> CurryProg   
Updates all qualified names in a Curry program.
updQNamesInCDefaultDecl :: ((String,String) -> (String,String)) -> Maybe CDefaultDecl -> Maybe CDefaultDecl   
Updates all qualified names in a default declaration.
updQNamesInCClassDecl :: ((String,String) -> (String,String)) -> CClassDecl -> CClassDecl   
Updates all qualified names in a class declaration.
updQNamesInCInstanceDecl :: ((String,String) -> (String,String)) -> CInstanceDecl -> CInstanceDecl   
Updates all qualified names in an instance declaration.
updQNamesInCTypeDecl :: ((String,String) -> (String,String)) -> CTypeDecl -> CTypeDecl   
Updates all qualified names in a type declaration.
updQNamesInCConsDecl :: ((String,String) -> (String,String)) -> CConsDecl -> CConsDecl   
Updates all qualified names in a constructor declaration.
updQNamesInCContext :: ((String,String) -> (String,String)) -> CContext -> CContext   
Updates all qualified names in a constructor declaration.
updQNamesInCFieldDecl :: ((String,String) -> (String,String)) -> CFieldDecl -> CFieldDecl   
Updates all qualified names in a record field declaration.
updQNamesInCQualTypeExpr :: ((String,String) -> (String,String)) -> CQualTypeExpr -> CQualTypeExpr   
Updates all qualified names in a type expression.
updQNamesInCTypeExpr :: ((String,String) -> (String,String)) -> CTypeExpr -> CTypeExpr   
Updates all qualified names in a type expression.
updQNamesInCFuncDecl :: ((String,String) -> (String,String)) -> CFuncDecl -> CFuncDecl   
Updates all qualified names in a function declaration.
updQNamesInCRule :: ((String,String) -> (String,String)) -> CRule -> CRule   
Updates all qualified names in a function declaration.
updQNamesInCRhs :: ((String,String) -> (String,String)) -> CRhs -> CRhs   
Updates all qualified names in a function declaration.
updQNamesInCLocalDecl :: ((String,String) -> (String,String)) -> CLocalDecl -> CLocalDecl   
Updates all qualified names in a function declaration.
updQNamesInCPattern :: ((String,String) -> (String,String)) -> CPattern -> CPattern   
Updates all qualified names in a function declaration.
updQNamesInCStatement :: ((String,String) -> (String,String)) -> CStatement -> CStatement   
Updates all qualified names in a statement.
updQNamesInCExpr :: ((String,String) -> (String,String)) -> CExpr -> CExpr   
typesOfCurryProg :: CurryProg -> [(String,String)]   
Extracts all type names occurring in a program.
typesOfCClassDecl :: CClassDecl -> [(String,String)]   
Extracts all type names occurring in a class declaration.
typesOfCInstanceDecl :: CInstanceDecl -> [(String,String)]   
Extracts all type names occurring in a class declaration.
typesOfCTypeDecl :: CTypeDecl -> [(String,String)]   
Extracts all type names occurring in a type declaration.
typesOfConsDecl :: CConsDecl -> [(String,String)]   
typesOfFieldDecl :: CFieldDecl -> [(String,String)]   
typesOfContext :: CContext -> [(String,String)]   
typesOfTypeExpr :: CTypeExpr -> [(String,String)]   
typesOfQualTypeExpr :: CQualTypeExpr -> [(String,String)]   
typesOfCFuncDecl :: CFuncDecl -> [(String,String)]   
unionMap :: Eq a => (b -> [a]) -> [b] -> [a]   
funcsOfCurryProg :: CurryProg -> [(String,String)]   
Extracts all function (and constructor) names occurring in a program.
funcsOfCClassDecl :: CClassDecl -> [(String,String)]   
funcsOfCInstanceDecl :: CInstanceDecl -> [(String,String)]   
funcsOfCTypeDecl :: CTypeDecl -> [(String,String)]   
funcsOfConsDecl :: CConsDecl -> [(String,String)]   
funcsOfFieldDecl :: CFieldDecl -> [(String,String)]   
funcsOfCFuncDecl :: CFuncDecl -> [(String,String)]   
Extracts all function (and constructor) names occurring in a function declaration.
funcsOfCRule :: CRule -> [(String,String)]   
funcsOfCRhs :: CRhs -> [(String,String)]   
funcsOfLDecl :: CLocalDecl -> [(String,String)]   
funcsOfExpr :: CExpr -> [(String,String)]   
funcsOfStat :: CStatement -> [(String,String)]   

Exported datatypes:


Update

This type synonym is useful to denote the type of an update, where the first argument is the type of values which are updated by the local update (which acts on types described by the second argument).

Type synonym: Update a b = (b -> b) -> a -> a


Exported operations:

trCProg :: (String -> [String] -> Maybe CDefaultDecl -> [CClassDecl] -> [CInstanceDecl] -> [CTypeDecl] -> [CFuncDecl] -> [COpDecl] -> a) -> CurryProg -> a   

Transforms an AbstractCurry program.

updCProg :: (String -> String) -> ([String] -> [String]) -> (Maybe CDefaultDecl -> Maybe CDefaultDecl) -> ([CClassDecl] -> [CClassDecl]) -> ([CInstanceDecl] -> [CInstanceDecl]) -> ([CTypeDecl] -> [CTypeDecl]) -> ([CFuncDecl] -> [CFuncDecl]) -> ([COpDecl] -> [COpDecl]) -> CurryProg -> CurryProg   

Updates an AbstractCurry program.

updCProgName :: (String -> String) -> CurryProg -> CurryProg   

Updates the name of a Curry program.

trCDefaultDecl :: ([CTypeExpr] -> a) -> CDefaultDecl -> a   

Transforms a default declaration.

updCDefaultDecl :: ([CTypeExpr] -> [CTypeExpr]) -> CDefaultDecl -> CDefaultDecl   

Updates a default declaration.

trCContext :: ([((String,String),CTypeExpr)] -> a) -> CContext -> a   

Transforms a class context.

updCContext :: ([((String,String),CTypeExpr)] -> [((String,String),CTypeExpr)]) -> CContext -> CContext   

Updates a class context.

trCClassDecl :: ((String,String) -> CVisibility -> CContext -> (Int,String) -> [CFuncDecl] -> a) -> CClassDecl -> a   

Transforms a class declaration.

updCClassDecl :: ((String,String) -> (String,String)) -> (CVisibility -> CVisibility) -> (CContext -> CContext) -> ((Int,String) -> (Int,String)) -> ([CFuncDecl] -> [CFuncDecl]) -> CClassDecl -> CClassDecl   

Updates an AbstractCurry program.

trCInstanceDecl :: ((String,String) -> CContext -> CTypeExpr -> [CFuncDecl] -> a) -> CInstanceDecl -> a   

Transforms a class declaration.

updCInstanceDecl :: ((String,String) -> (String,String)) -> (CContext -> CContext) -> (CTypeExpr -> CTypeExpr) -> ([CFuncDecl] -> [CFuncDecl]) -> CInstanceDecl -> CInstanceDecl   

Updates an AbstractCurry program.

trCTypeDecl :: ((String,String) -> CVisibility -> [(Int,String)] -> [CConsDecl] -> [(String,String)] -> a) -> ((String,String) -> CVisibility -> [(Int,String)] -> CTypeExpr -> a) -> ((String,String) -> CVisibility -> [(Int,String)] -> CConsDecl -> [(String,String)] -> a) -> CTypeDecl -> a   

Transforms a type declaration.

updCTypeDecl :: ((String,String) -> (String,String)) -> (CVisibility -> CVisibility) -> ([(Int,String)] -> [(Int,String)]) -> ([CConsDecl] -> [CConsDecl]) -> (CTypeExpr -> CTypeExpr) -> (CConsDecl -> CConsDecl) -> ([(String,String)] -> [(String,String)]) -> CTypeDecl -> CTypeDecl   

update type declaration

updCTypeDeclName :: ((String,String) -> (String,String)) -> CTypeDecl -> CTypeDecl   

Updates the name of a type declaration.

trCConsDecl :: ([(Int,String)] -> CContext -> (String,String) -> CVisibility -> [CTypeExpr] -> a) -> ([(Int,String)] -> CContext -> (String,String) -> CVisibility -> [CFieldDecl] -> a) -> CConsDecl -> a   

Transforms a constructor declaration.

updCConsDecl :: ([(Int,String)] -> [(Int,String)]) -> (CContext -> CContext) -> ((String,String) -> (String,String)) -> (CVisibility -> CVisibility) -> ([CTypeExpr] -> [CTypeExpr]) -> ([CFieldDecl] -> [CFieldDecl]) -> CConsDecl -> CConsDecl   

Updates a constructor declaration.

updCConsDeclName :: ((String,String) -> (String,String)) -> CConsDecl -> CConsDecl   

Updates the name of a constructor declaration.

trCFieldDecl :: ((String,String) -> CVisibility -> CTypeExpr -> a) -> CFieldDecl -> a   

Transforms a constructor declaration.

updCFieldDecl :: ((String,String) -> (String,String)) -> (CVisibility -> CVisibility) -> (CTypeExpr -> CTypeExpr) -> CFieldDecl -> CFieldDecl   

update constructor declaration

updCFieldDeclName :: ((String,String) -> (String,String)) -> CFieldDecl -> CFieldDecl   

Updates the name of a constructor declaration.

trCQualTypeExpr :: (CContext -> CTypeExpr -> a) -> CQualTypeExpr -> a   

Transforms a default declaration.

updCQualTypeExpr :: (CContext -> CContext) -> (CTypeExpr -> CTypeExpr) -> CQualTypeExpr -> CQualTypeExpr   

Updates a default declaration.

trCTypeExpr :: ((Int,String) -> a) -> ((String,String) -> a) -> (a -> a -> a) -> (a -> a -> a) -> CTypeExpr -> a   

Transforms a type expression.

updTConsApp :: ((String,String) -> CTypeExpr) -> CTypeExpr -> CTypeExpr   

Updates all type constructors in a type expression.

trCOpDecl :: ((String,String) -> CFixity -> Int -> a) -> COpDecl -> a   

Transforms an operator declaration.

updCOpDecl :: ((String,String) -> (String,String)) -> (CFixity -> CFixity) -> (Int -> Int) -> COpDecl -> COpDecl   

Updates an operator declaration.

updCOpName :: ((String,String) -> (String,String)) -> COpDecl -> COpDecl   

Updates the name of an operator declaration.

trCFuncDecl :: (String -> (String,String) -> Int -> CVisibility -> CQualTypeExpr -> [CRule] -> a) -> CFuncDecl -> a   

Transforms a function declaration

updCFuncDecl :: (String -> String) -> ((String,String) -> (String,String)) -> (Int -> Int) -> (CVisibility -> CVisibility) -> (CQualTypeExpr -> CQualTypeExpr) -> ([CRule] -> [CRule]) -> CFuncDecl -> CFuncDecl   

Updates a function declaration.

trCRule :: ([CPattern] -> CRhs -> a) -> CRule -> a   

Transform a rule.

updCRule :: ([CPattern] -> [CPattern]) -> (CRhs -> CRhs) -> CRule -> CRule   

Update a rule.

trCRhs :: (CExpr -> [CLocalDecl] -> a) -> ([(CExpr,CExpr)] -> [CLocalDecl] -> a) -> CRhs -> a   

Transforms a right-hand side (of a rule or case expression).

updCRhs :: (CExpr -> CExpr) -> ([(CExpr,CExpr)] -> [(CExpr,CExpr)]) -> ([CLocalDecl] -> [CLocalDecl]) -> CRhs -> CRhs   

Updates right-hand side.

trCLocalDecl :: (CFuncDecl -> a) -> (CPattern -> CRhs -> a) -> ([(Int,String)] -> a) -> CLocalDecl -> a   

Transforms a local declaration.

updCLocalDecl :: (CFuncDecl -> CFuncDecl) -> (CPattern -> CPattern) -> (CRhs -> CRhs) -> ([(Int,String)] -> [(Int,String)]) -> CLocalDecl -> CLocalDecl   

Updates a local declaration.

trCPattern :: ((Int,String) -> a) -> (CLiteral -> a) -> ((String,String) -> [a] -> a) -> ((Int,String) -> a -> a) -> ((String,String) -> [a] -> a) -> ((String,String) -> [((String,String),a)] -> a) -> CPattern -> a   

Transforms a pattern.

updCPattern :: ((Int,String) -> (Int,String)) -> (CLiteral -> CLiteral) -> ((String,String) -> (String,String)) -> CPattern -> CPattern   

Updates a pattern.

trExpr :: ((Int,String) -> a) -> (CLiteral -> a) -> ((String,String) -> a) -> (a -> a -> a) -> ([CPattern] -> a -> a) -> ([CLocalDecl] -> a -> a) -> ([CStatement] -> a) -> (a -> [CStatement] -> a) -> (CCaseType -> a -> [(CPattern,CRhs)] -> a) -> (a -> CQualTypeExpr -> a) -> ((String,String) -> [((String,String),a)] -> a) -> (a -> [((String,String),a)] -> a) -> CExpr -> a   

Transforms an expression.

trCStatement :: (CExpr -> a) -> (CPattern -> CExpr -> a) -> ([CLocalDecl] -> a) -> CStatement -> a   

Transforms a statement (occuring in do expressions or list comprehensions).

updCStatement :: (CExpr -> CExpr) -> (CPattern -> CPattern) -> (CLocalDecl -> CLocalDecl) -> CStatement -> CStatement   

Updates a statement (occuring in do expressions or list comprehensions).

renameCurryModule :: String -> CurryProg -> CurryProg   

Renames a Curry module, i.e., updates the module name and all qualified names in a program.

updQNamesInCProg :: ((String,String) -> (String,String)) -> CurryProg -> CurryProg   

Updates all qualified names in a Curry program.

updQNamesInCDefaultDecl :: ((String,String) -> (String,String)) -> Maybe CDefaultDecl -> Maybe CDefaultDecl   

Updates all qualified names in a default declaration.

updQNamesInCClassDecl :: ((String,String) -> (String,String)) -> CClassDecl -> CClassDecl   

Updates all qualified names in a class declaration.

updQNamesInCInstanceDecl :: ((String,String) -> (String,String)) -> CInstanceDecl -> CInstanceDecl   

Updates all qualified names in an instance declaration.

updQNamesInCTypeDecl :: ((String,String) -> (String,String)) -> CTypeDecl -> CTypeDecl   

Updates all qualified names in a type declaration.

updQNamesInCConsDecl :: ((String,String) -> (String,String)) -> CConsDecl -> CConsDecl   

Updates all qualified names in a constructor declaration.

updQNamesInCContext :: ((String,String) -> (String,String)) -> CContext -> CContext   

Updates all qualified names in a constructor declaration.

updQNamesInCFieldDecl :: ((String,String) -> (String,String)) -> CFieldDecl -> CFieldDecl   

Updates all qualified names in a record field declaration.

updQNamesInCQualTypeExpr :: ((String,String) -> (String,String)) -> CQualTypeExpr -> CQualTypeExpr   

Updates all qualified names in a type expression.

updQNamesInCTypeExpr :: ((String,String) -> (String,String)) -> CTypeExpr -> CTypeExpr   

Updates all qualified names in a type expression.

updQNamesInCFuncDecl :: ((String,String) -> (String,String)) -> CFuncDecl -> CFuncDecl   

Updates all qualified names in a function declaration.

updQNamesInCRule :: ((String,String) -> (String,String)) -> CRule -> CRule   

Updates all qualified names in a function declaration.

updQNamesInCRhs :: ((String,String) -> (String,String)) -> CRhs -> CRhs   

Updates all qualified names in a function declaration.

updQNamesInCLocalDecl :: ((String,String) -> (String,String)) -> CLocalDecl -> CLocalDecl   

Updates all qualified names in a function declaration.

updQNamesInCPattern :: ((String,String) -> (String,String)) -> CPattern -> CPattern   

Updates all qualified names in a function declaration.

updQNamesInCStatement :: ((String,String) -> (String,String)) -> CStatement -> CStatement   

Updates all qualified names in a statement.

updQNamesInCExpr :: ((String,String) -> (String,String)) -> CExpr -> CExpr   

typesOfCurryProg :: CurryProg -> [(String,String)]   

Extracts all type names occurring in a program.

typesOfCClassDecl :: CClassDecl -> [(String,String)]   

Extracts all type names occurring in a class declaration. Class names are ignored.

typesOfCInstanceDecl :: CInstanceDecl -> [(String,String)]   

Extracts all type names occurring in a class declaration. Class names are ignored.

typesOfCTypeDecl :: CTypeDecl -> [(String,String)]   

Extracts all type names occurring in a type declaration. Class names are ignored.

typesOfConsDecl :: CConsDecl -> [(String,String)]   

typesOfFieldDecl :: CFieldDecl -> [(String,String)]   

typesOfContext :: CContext -> [(String,String)]   

typesOfTypeExpr :: CTypeExpr -> [(String,String)]   

typesOfQualTypeExpr :: CQualTypeExpr -> [(String,String)]   

typesOfCFuncDecl :: CFuncDecl -> [(String,String)]   

unionMap :: Eq a => (b -> [a]) -> [b] -> [a]   

funcsOfCurryProg :: CurryProg -> [(String,String)]   

Extracts all function (and constructor) names occurring in a program.

funcsOfCClassDecl :: CClassDecl -> [(String,String)]   

funcsOfCInstanceDecl :: CInstanceDecl -> [(String,String)]   

funcsOfCTypeDecl :: CTypeDecl -> [(String,String)]   

funcsOfConsDecl :: CConsDecl -> [(String,String)]   

funcsOfFieldDecl :: CFieldDecl -> [(String,String)]   

funcsOfCFuncDecl :: CFuncDecl -> [(String,String)]   

Extracts all function (and constructor) names occurring in a function declaration.

funcsOfCRule :: CRule -> [(String,String)]   

funcsOfCRhs :: CRhs -> [(String,String)]   

funcsOfLDecl :: CLocalDecl -> [(String,String)]   

funcsOfExpr :: CExpr -> [(String,String)]   

funcsOfStat :: CStatement -> [(String,String)]