module Data.EventList.Absolute.TimeBodyPrivate where
import qualified Data.AlternatingList.List.Disparate as Disp
import qualified Control.Monad as Monad
newtype T time body = Cons {decons :: Disp.T time body}
deriving (Eq, Ord, Show)
infixl 5 $~
($~) :: (Disp.T time body -> a) -> (T time body -> a)
($~) f = f . decons
lift ::
(Disp.T time0 body0 -> Disp.T time1 body1) ->
(T time0 body0 -> T time1 body1)
lift f = Cons . f . decons
liftM :: Monad m =>
(Disp.T time0 body0 -> m (Disp.T time1 body1)) ->
(T time0 body0 -> m (T time1 body1))
liftM f = Monad.liftM Cons . f . decons