fudgets-0.18.3: hsrc/sp/SPstateMonad.hs
module SPstateMonad where
import SP(SP)
import Spops
import StateMonads(Mk(..),Ms(..),toMs,toMsc,loadMs,storeMs)
type SPms i o s ans = Ms (SP i o) s ans
putsSPms :: [o] -> SPms i o s ()
putSPms :: o -> SPms i o s ()
getSPms :: SPms i o s i
nullSPms :: SPms i o s ()
loadSPms :: SPms i o s s
storeSPms :: s -> SPms i o s ()
stateMonadSP :: s -> SPms i o s ans -> (ans -> SP i o) -> SP i o
putsSPms = toMsc . putsSP
putSPms = toMsc . putSP
getSPms = toMs getSP
nullSPms = return ()
loadSPms = loadMs
storeSPms = storeMs
stateMonadSP s0 (Mk spm) sp = spm (\ans state->sp ans) s0