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
|