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

definition:
setNewFunCondition :: TermDomain a => QName -> NonFailCond -> VerifyStateM a ()
setNewFunCondition qf newcond = do
  st <- get
  maybe (put $ st { vstNewFunConds = (qf,newcond) : (vstNewFunConds st) } )
        (\prevcond -> do
          let newct = combineNonFailConds prevcond newcond
          put $ st { vstNewFunConds = unionBy (\x y -> fst x == fst y)
                                        [(qf,newct)] (vstNewFunConds st) })
        (lookup qf (vstNewFunConds st))
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
--- Sets a new non-fail condition for a function.
--- If the function has already a new non-fail condition, they will be combined.
indeterministic:
referentially transparent operation
infix:
no fixity defined
name:
setNewFunCondition
precedence:
no precedence defined
result-values:
_
signature:
Analysis.TermDomain.TermDomain a => (String, String)
-> ([(Prelude.Int, FlatCurry.Types.TypeExpr)], FlatCurry.Types.Expr)
-> Control.Monad.Trans.State.StateT (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