CurryInfo: verify-non-fail-2.0.0 / Main.showFunctionInfo

definition:
showFunctionInfo :: TermDomain a => Options -> String -> VerifyState a -> IO ()
showFunctionInfo opts mname vst = do
  let f = optFunction opts
      qf = (mname, f)
  fdecls <- currentFuncDecls vst
  if qf `notElem` map funcName fdecls
    then printInfoLine $ "Function '" ++ snd qf ++ "' not defined!"
    else do
      let iot   = maybe (trivialInOutType 0) id (Map.lookup qf (vstIOTypes vst))
          ctype = maybe (Just [anyType]) id (Map.lookup qf (vstCallTypes vst))
      printInfoLine $ "Function '" ++ f ++ "':"
      printInfoLine $ "In/out type: " ++ showIOT iot
      printInfoLine $ "Call type  : " ++ prettyFunCallAType ctype
      maybe (return ())
            (\nfc -> printInfoLine $ showConditions fdecls [(qf,nfc)])
            (lookup qf (vstFunConds vst))
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
-- Shows the call and in/out type of a given function defined in the module.
indeterministic:
referentially transparent operation
infix:
no fixity defined
name:
showFunctionInfo
precedence:
no precedence defined
result-values:
_
signature:
Analysis.TermDomain.TermDomain a => Verify.Options.Options -> String
-> VerifyState a -> Prelude.IO ()
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term