CurryInfo: currydoc-4.0.0 / CurryDoc.Main.readAnaInfo

definition:
readAnaInfo :: String -> IO AnaInfo
readAnaInfo modname = do
  initializeAnalysisSystem
  nondet   <- analyzeAndCheck nondetAnalysis
  complete <- analyzeAndCheck patCompAnalysis
  indet    <- analyzeAndCheck indetAnalysis
  solcomp  <- analyzeAndCheck solcompAnalysis
  return (AnaInfo (\qn -> nondet qn == NDet) complete indet solcomp)
 where
   analyzeAndCheck ana =
     analyzeInterface ana modname >>= either
       (\results ->
           return (\qn -> maybe (error $ "No '" ++ analysisName ana ++
                                 "' analysis result for function " ++ show qn)
                                id
                                (lookup qn results)))
       (\err -> error $ "Analysis error: " ++ err)
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
-- read and generate all analysis infos:
indeterministic:
might be indeterministic
infix:
no fixity defined
iotype:
{(_) |-> _}
name:
readAnaInfo
precedence:
no precedence defined
result-values:
_
signature:
String -> Prelude.IO CurryDoc.AnaInfo.AnaInfo
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term