CurryInfo: abstract-curry-4.0.0 / AbstractCurry.Build.guardedRule

definition:
 
guardedRule :: [CPattern] -> [(CExpr,CExpr)] -> [CLocalDecl] -> CRule
guardedRule pats gs ldecls
  | length gs == 1 && fst (head gs) == CSymbol (pre "True")
              = CRule pats (CSimpleRhs (snd (head gs)) ldecls)
  | otherwise = CRule pats (CGuardedRhs gs ldecls)
demand:
 no demanded arguments
deterministic:
 deterministic operation
documentation:
 
Constructs a rule with a possibly guarded right-hand side
and local declarations.
A simple right-hand side is constructed if there is only one
`True` condition.
failfree:
 (_, {:}, _)
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_,_,_) |-> {CRule}}
name:
 guardedRule
precedence:
 no precedence defined
result-values:
 {CRule}
signature:
 [AbstractCurry.Types.CPattern]
-> [(AbstractCurry.Types.CExpr, AbstractCurry.Types.CExpr)]
-> [AbstractCurry.Types.CLocalDecl] -> AbstractCurry.Types.CRule
solution-complete:
 operation might suspend on free variables
terminating:
 possibly non-terminating
totally-defined:
 possibly non-reducible on same data term