schedule-0.1.0.0: test/Data/Rsv/Example.hs
{-# OPTIONS_GHC -fno-warn-type-defaults #-}
{-| Examples for various "Data.Rsv" structures. -}
module Data.Rsv.Example where
-- external
import Control.Monad.Trans.State.Strict (evalStateT, state)
import Data.Functor.Identity (runIdentity)
import Data.Maybe (isJust)
-- internal
import qualified Data.Rsv.RMMap as RM
-- | Basic usage example for 'RMMap'
--
-- >>> rMMapExample0
-- True
rMMapExample0 :: Bool
rMMapExample0 = runIdentity $ (`evalStateT` RM.empty) $ do
sDelete <- state $ RM.enqueue (1000, const "my callback")
notAlreadyRemoved <- state $ RM.unqueue sDelete
return $ isJust notAlreadyRemoved