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