CurryInfo: call-analysis-3.2.0 / Analysis.runFixpoint

definition: Info
 
runFixpoint :: Eq a => ADom a
            -> (SemEq a -> SemInt a -> SemInt a)
            -> [Rule] -> [(String,[a])] -> Bool
            -> ([SemEq a] -> [SemEq a] -> Bool)
            -> IO (SemInt a)
runFixpoint adom insertsem rules mainacalls withprint semeq = do
  let trm = transformInt adom insertsem rules
                         (foldr insertsem [] (map main2int mainacalls))
  --printProgram rules maincalls
  if withprint then return () else putStr "Iterating:"
  garbageCollect
  pi1 <- getProcessInfos
  fpsem <- computeFixpoint withprint 0 (showSemInt adom) semeq trm []
  getProcessInfos >>= printTiming pi1
  return fpsem
 where
  -- map a main call into an abstract equation
  main2int (f,aterms) = Eq f aterms (adomBottom adom)
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
---------------------------------------------------------------------------
Runs a simple fixpoint computation w.r.t. a set of abstract initial calls.
failfree: Info
 (_, _, _, _, _, _, _)
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,_,_,_,_,_) |-> _}
name: Info
 runFixpoint
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 Prelude.Eq a => ADom a -> (SemEq a -> [SemEq a] -> [SemEq a]) -> [TRS.Rule]
-> [(String, [a])] -> Prelude.Bool -> ([SemEq a] -> [SemEq a] -> Prelude.Bool)
-> Prelude.IO [SemEq a]
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term