CurryInfo: call-analysis-3.2.0 / Overlapping.orInExpr

definition: Info
 
orInExpr :: Expr -> Bool
orInExpr (Var _) = False
orInExpr (Lit _) = False
orInExpr (Comb _ f es) = f==("Prelude","?") || foldr (||) False (map orInExpr es)
orInExpr (Free _ e) = orInExpr e
orInExpr (Let bs e) = any orInExpr (map snd bs) || orInExpr e
orInExpr (Or _ _) = True
orInExpr (Case _ e bs) = orInExpr e || any orInBranch bs
                   where orInBranch (Branch _ be) = orInExpr be
demand: Info
 argument 1
deterministic: Info
 deterministic operation
documentation: Info
 
-----------------------------------------------------------------------
Check an expression for occurrences of OR:
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {({Var}) |-> {False} || ({Lit}) |-> {False} || ({Comb}) |-> _ || ({Free}) |-> _ || ({Let}) |-> _ || ({Or}) |-> {True} || ({Case}) |-> _}
name: Info
 orInExpr
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 FlatCurry.Types.Expr -> Prelude.Bool
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term