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

definition:
 
localDependencyGraphs :: [FuncDecl] -> [(QName,[(QName,[QName])])]
localDependencyGraphs funs =
  let directdeps = map directlyDependent funs
   in map (\(f,ds) -> (f,map (\g->(g,if fst f == fst g
                                     then toList (fromJust (lookup g directdeps))
                                     else []))
                             (toList (insert f ds))))
          (localDepsClosure directdeps)
demand:
 argument 1
deterministic:
 deterministic operation
documentation:
 
Computes for all functions the list of all direct local dependencies, i.e.,
dependencies occurring in the module where the function is defined.
Thus, dependencies outside the module are not represented.
This is useful to represent the local dependency graph for each function.
Argument: a list of function declarations
Result: a list of pairs of qualified functions names and the corresponding list of
        direct local dependencies for all functions on which this functions depend
failfree:
 <FAILING>
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_) |-> {:,[]}}
name:
 localDependencyGraphs
precedence:
 no precedence defined
result-values:
 {:,[]}
signature:
 [FlatCurry.Types.FuncDecl]
-> [((String, String), [((String, String), [(String, String)])])]
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 possibly non-reducible on same data term