CurryInfo: residuation-analysis-3.0.0 / AnalyzeResiduation.countResOps

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