packages feed

event-monad-0.0.0.2: src/Control/Monad/Event/Classes.hs-boot

{-
 -      ``Control/Monad/Event/Classes''
 -      (c) 2008 Cook, J. MR  SSD, Inc.
 -}
{-# LANGUAGE
        MultiParamTypeClasses,
        FunctionalDependencies,
        KindSignatures
  #-}

module Control.Monad.Event.Classes where

import Control.Monad.Event.Internal.EventID

class MonadTime (m :: * -> *) t | m -> t
class MonadEvent (m :: * -> *) e | e -> m
class (MonadEvent m e, MonadTime m t) => ScheduleEvent m t e | m -> t, e -> m
    where
        scheduleEventIn :: t -> e -> m EventID
        doNext :: e -> m ()