definition: |
trExpr :: (Int -> a) -> (Literal -> a) -> (CombType -> QName -> [a] -> a) -> ([(Int,a)] -> a -> a) -> ([Int] -> a -> a) -> (a -> a -> a) -> (CaseType -> a -> [b] -> a) -> (Pattern -> a -> b) -> (a -> TypeExpr -> a) -> Expr -> a trExpr var _ _ _ _ _ _ _ _ (Var n) = var n trExpr _ lit _ _ _ _ _ _ _ (Lit l) = lit l trExpr var lit comb lt fr or cas branch typed (Comb ct name args) = comb ct name (map (trExpr var lit comb lt fr or cas branch typed) args) trExpr var lit comb lt fr or cas branch typed (Let bs e) = lt (map (\ (n,exp) -> (n,f exp)) bs) (f e) where f = trExpr var lit comb lt fr or cas branch typed trExpr var lit comb lt fr or cas branch typed (Free vs e) = fr vs (trExpr var lit comb lt fr or cas branch typed e) trExpr var lit comb lt fr or cas branch typed (Or e1 e2) = or (f e1) (f e2) where f = trExpr var lit comb lt fr or cas branch typed trExpr var lit comb lt fr or cas branch typed (Case ct e bs) = cas ct (f e) (map (\ (Branch pat exp) -> branch pat (f exp)) bs) where f = trExpr var lit comb lt fr or cas branch typed trExpr var lit comb lt fr or cas branch typed (Typed e ty) = typed (trExpr var lit comb lt fr or cas branch typed e) ty |
demand: |
argument 10 |
deterministic: |
deterministic operation |
documentation: |
--- transform expression |
failfree: |
(_, _, _, _, _, _, _, _, _, _) |
indeterministic: |
referentially transparent operation |
infix: |
no fixity defined |
iotype: |
{(_,_,_,_,_,_,_,_,_,{Var}) |-> _ || (_,_,_,_,_,_,_,_,_,{Lit}) |-> _ || (_,_,_,_,_,_,_,_,_,{Comb}) |-> _ || (_,_,_,_,_,_,_,_,_,{Let}) |-> _ || (_,_,_,_,_,_,_,_,_,{Free}) |-> _ || (_,_,_,_,_,_,_,_,_,{Or}) |-> _ || (_,_,_,_,_,_,_,_,_,{Case}) |-> _ || (_,_,_,_,_,_,_,_,_,{Typed}) |-> _} |
name: |
trExpr |
precedence: |
no precedence defined |
result-values: |
_ |
signature: |
(Prelude.Int -> a) -> (FlatCurry.Types.Literal -> a) -> (FlatCurry.Types.CombType -> (String, String) -> [a] -> a) -> ([(Prelude.Int, a)] -> a -> a) -> ([Prelude.Int] -> a -> a) -> (a -> a -> a) -> (FlatCurry.Types.CaseType -> a -> [b] -> a) -> (FlatCurry.Types.Pattern -> a -> b) -> (a -> FlatCurry.Types.TypeExpr -> a) -> FlatCurry.Types.Expr -> a |
solution-complete: |
operation might suspend on free variables |
terminating: |
possibly non-terminating |
totally-defined: |
reducible on all ground data terms |