CurryInfo: residuation-analysis-3.0.0 / AnalyzeResiduation.genResInfo

definition:
genResInfo :: Options -> String -> IO ()
genResInfo opts mname =
  lookupModuleSourceInLoadPath mname >>=
  maybe (error $ "Source of module '" ++ mname ++ "' not found!")
    (\_ -> do
      printWhenStatus opts $ "Analyzing module " ++ mname ++ "..."
      resinfos <- residuationInfoOf mname
      when (optShow opts) $ putStrLn $
        "Analysis results (non-residuating if arguments...):\n" ++
        unlines (map showFunRI resinfos)
      when (optShowResOpts opts) $ putStrLn $
        "Possibly residuating operations: " ++ unwords (allResOps resinfos)
      unless (null (optOutput opts)) (writeResInfoFile opts resinfos)
    )
 where
  showFunRI (qn,ri) = snd qn ++ " " ++ showRI ri

  showRI MayResiduate       = "residuate"
  showRI NoResInfo          = "residuate"
  showRI (NoResiduateIf xs) = intercalate "," (map show xs)
demand:
no demanded arguments
deterministic:
deterministic operation
indeterministic:
might be indeterministic
infix:
no fixity defined
iotype:
{(_,_) |-> _}
name:
genResInfo
precedence:
no precedence defined
result-values:
_
signature:
ToolOptions.Options -> String -> Prelude.IO ()
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term