CurryInfo: cass-4.1.0 / CASS.WorkerFunctions.getInterfaceInfosWS

definition:
getInterfaceInfosWS :: (Read a, ReadWrite a) => CConfig
                    -> IORef (ProgInfoStore a) -> String
                    -> [String] -> IO (ProgInfo a)
getInterfaceInfosWS _  _     _       []         = return emptyProgInfo
getInterfaceInfosWS cc store anaName (mod:mods) = do
  loadinfos <- readIORef store
  modInfo <- maybe (loadAndStoreAnalysis loadinfos) return
                   (Prelude.lookup mod loadinfos)
  modsInfo <- getInterfaceInfosWS cc store anaName mods
  return (combineProgInfo modInfo modsInfo)
 where
  loadAndStoreAnalysis loadinfos = do
    info <- loadPublicAnalysis (debugLevel cc) anaName mod
    writeIORef store ((mod,info):loadinfos)
    return info
demand:
argument 6
deterministic:
deterministic operation
documentation:
-- Loads analysis results for a list of modules where already read results
-- are stored in an IORef.
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_,_,_,_,{[]}) |-> _ || (_,_,_,_,_,{:}) |-> _}
name:
getInterfaceInfosWS
precedence:
no precedence defined
result-values:
_
signature:
(Prelude.Read a, RW.Base.ReadWrite a) => CASS.Configuration.CConfig
-> Data.IORef.IORef [(String, Analysis.ProgInfo.ProgInfo a)] -> String
-> [String] -> Prelude.IO (Analysis.ProgInfo.ProgInfo a)
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term