{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
module Affection.Subsystems.Class where

import Affection.Types

import qualified SDL

-- | This class denotes a Subsystem to be part of SDL
class SDLSubsystem s us where
  -- | Consume the given 'SDL.EventPayload's and return only those not
  -- recognised
  consumeSDLEvents :: s -> [SDL.EventPayload] -> Affection us [SDL.EventPayload]