-- | Eventable type class. module Data.CQRS.Eventable ( Eventable(..) ) where -- | Type class for applying events to aggregates. class Eventable a e | a -> e where -- | Apply an event to the aggregate and return the updated aggregate. applyEvent :: e -> a -> a