{-# LANGUAGE MultiParamTypeClasses #-} module Affection.StateMachine where import Affection.Types import qualified SDL class StateMachine a us where smLoad :: a -> Affection us () smUpdate :: a -> Double -> Affection us () smEvent :: a -> [SDL.EventPayload] -> Affection us () smDraw :: a -> Affection us () smClean :: a -> Affection us ()