flaw-input/Flaw/Input.hs
{-|
Module: Flaw.Input
Description: User input base definitions.
License: MIT
-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Flaw.Input
( InputState(..)
, InputDevice(..)
, InputManager(..)
) where
import Control.Concurrent.STM
class InputState s where
initialInputState :: STM s
class InputState s => InputDevice s e where
applyInputEvent :: s -> e -> STM ()
class InputManager m e where
chanInputEvents :: m -> STM (TChan e)