definition: |
daFunc :: FuncDecl -> [(QName,DemandedArgs)] -> DemandedArgs daFunc (Func (m,f) _ _ _ rule) calledFuncs | m == prelude && f `elem` prelude2s = [1,2] | m == prelude && f `elem` prelude1s = [1] | otherwise = daFuncRule calledFuncs rule where prelude2s = ["==","=:=","compare","<=","$#","$##","$!","$!!", "+","-","*","div","mod","divMod","quot","rem","quotRem"] prelude1s = ["seq","ensureNotFree","apply","cond","=:<=","negateFloat"] |
demand: |
argument 1 |
deterministic: |
deterministic operation |
documentation: |
-- We define the demanded arguments of some primitive prelude operations. -- Otherwise, we analyse the right-hand sides of the rule. |
failfree: |
(_, _) |
indeterministic: |
referentially transparent operation |
infix: |
no fixity defined |
iotype: |
{({Func},_) |-> {:,[]}} |
name: |
daFunc |
precedence: |
no precedence defined |
result-values: |
{:,[]} |
signature: |
FlatCurry.Types.FuncDecl -> [((String, String), [Prelude.Int])] -> [Prelude.Int] |
solution-complete: |
operation might suspend on free variables |
terminating: |
possibly non-terminating |
totally-defined: |
possibly non-reducible on same data term |