module Mischief.ECS.EventDef where

import Data.Data

-- | @Event@ typeclass.
class (Typeable e) => Event e where
  eraseEvent :: e -> ErasedEvent
  eraseEvent = e -> ErasedEvent
forall e. Typeable e => e -> ErasedEvent
ErasedEvent

data ErasedEvent where
  ErasedEvent :: (Typeable e) => e -> ErasedEvent