module SPmonad where
import SP(SP)
import ParSP(seqSP)
import Spops
import StateMonads(Mk(..),toMkc) --,bmk,toMs
type SPm i o ans = Mk (SP i o) ans
putsSPm :: [o] -> SPm i o ()
putsSPm = toMkc . putsSP
putSPm :: o -> SPm i o ()
putSPm = toMkc . putSP
getSPm :: SPm i o i
getSPm = Mk getSP
nullSPm :: SPm i o ()
nullSPm = return ()
monadSP :: (SPm i o ()) -> SP i o
monadSP (Mk spm) = spm (const nullSP)
toSPm :: (SP i o) -> SPm i o ()
toSPm sp = toMkc (seqSP sp)