CurryInfo: nonstrictunif-optimize-3.0.0 / CurryBrowseAnalysis.Dependency.analyseWithDependencies

definition: Info
 
analyseWithDependencies :: (FuncDecl->a) -> ([a]->a) -> [FuncDecl] -> [(QName,a)]
analyseWithDependencies funproperty combine funs = map anaFun alldeps
  where
    anaFun (name,depfuns) = (name, combine (map (lookupProp funprops) (name:depfuns)))

    funprops = map (\f->(funcName f, funproperty f)) funs

    alldeps = indirectlyDependent funs

    lookupProp :: [(QName,a)] -> QName -> a
    lookupProp fprops fun = fromJust (lookup fun fprops)

    funcName (Func fname _ _ _ _) = fname
demand: Info
 argument 3
deterministic: Info
 deterministic operation
documentation: Info
 
Generic global function analysis where the property of each function is a combination
of a property of the function and all its dependent functions.
1. parameter: a function that associates a property to each function declaration
2. parameter: an operation to combine the properties of function/dependent functions
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,_) |-> {:,[]}}
name: Info
 analyseWithDependencies
precedence: Info
 no precedence defined
result-values: Info
 {:,[]}
signature: Info
 (FlatCurry.Types.FuncDecl -> a) -> ([a] -> a) -> [FlatCurry.Types.FuncDecl]
-> [((String, String), a)]
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term