{-# LANGUAGE MultiParamTypeClasses #-} module Affection.StateMachine where import Affection.Types import qualified SDL -- | Typeclass for simple scaffolding of a state machine class StateMachine a us where -- | State load routine smLoad :: a -> Affection us () -- | state update routine smUpdate :: a -> Double -> Affection us () -- | State event handler routine smEvent :: a -> [SDL.EventPayload] -> Affection us () -- | State draw routine smDraw :: a -> Affection us () -- | State clean routine smClean :: a -> Affection us ()