fclabels-monadlib-0.1.0: src/Data/Label/MonadLib.hs
module Data.Label.MonadLib
( module L
, modM
, setM
, getM
) where
import Data.Label ((:->))
import MonadLib.Monads
import qualified Data.Label as L
modM :: StateM m f => (f :-> a) -> (a -> a) -> m ()
modM l f = liftM (L.modify l f) get >>= set
setM :: StateM m f => (f :-> a) -> a -> m ()
setM l a = liftM (L.set l a) get >>= set
getM :: StateM m f => (f :-> a) -> m a
getM l = liftM (L.get l) get