module Control.Monad.Event.Internal.Types
( module Control.Monad.Event.Internal.Types
, module Control.Monad.Event.Internal.EventID
) where
import Control.Monad.Event.Classes
import Control.Monad.Event.Internal.EventID
import Text.Printf
import Data.Typeable
data EventDescriptor (m :: * -> *) t =
forall e. ScheduleEvent m t e
=> EventDescriptor
{ eventId :: EventID
, eventTime :: t
, event :: e
}
tyCon_EventDescriptor = mkTyCon "Control.Monad.Event.Internal.Types.EventDescriptor"
instance Typeable1 m => Typeable1 (EventDescriptor m) where
typeOf1 y = mkTyConApp tyCon_EventDescriptor [typeOf1 ((undefined :: EventDescriptor m t -> m ()) y)]