CurryInfo: verify-non-fail-2.0.0 / Verify.Helpers.funcsInExpr

definition:
 
funcsInExpr :: Expr -> [QName]
funcsInExpr e =
  trExpr (const id) (const id) comb lt fr (.) cas branch const e []
 where
  comb ct qn = foldr (.) (combtype ct qn)
  combtype ct qn = case ct of FuncCall       -> (qn:)
                              FuncPartCall _ -> (qn:)
                              _              -> id
  lt bs exp = exp . foldr (.) id (map (\ (_,ns) -> ns) bs)
  fr _ exp = exp
  cas _ exp bs = exp . foldr (.) id bs
  branch _ exp = exp
demand:
 argument 1
deterministic:
 deterministic operation
documentation:
 
---------------------------------------------------------------------------
Returns the qualified names of all functions occurring in an expression.
failfree:
 _
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_) |-> _}
name:
 funcsInExpr
precedence:
 no precedence defined
result-values:
 _
signature:
 FlatCurry.Types.Expr -> [(String, String)]
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 reducible on all ground data terms