|
definition: |
countResOps :: String -> IO [String]
countResOps mname = do
resinfo <- residuationInfoOf mname
let (nonresops,resops,unknowns) = foldr select ([],[],[]) resinfo
return $ mname : map (show . length) [nonresops,resops,unknowns]
where
select (f,i) (nrs,res,unk) = case i of
NoResiduateIf _ -> (f:nrs,res,unk)
MayResiduate -> (nrs,f:res,unk)
NoResInfo -> (nrs,res,f:unk)
|
|
demand: |
no demanded arguments |
|
deterministic: |
deterministic operation |
|
documentation: |
Counts all possibly residuating and non-residuating operations. |
|
indeterministic: |
might be indeterministic |
|
infix: |
no fixity defined |
|
iotype: |
{(_) |-> _}
|
|
name: |
countResOps |
|
precedence: |
no precedence defined |
|
result-values: |
_ |
|
signature: |
String -> Prelude.IO [String] |
|
solution-complete: |
operation might suspend on free variables |
|
terminating: |
possibly non-terminating |
|
totally-defined: |
possibly non-reducible on same data term |