eve-0.1.1: src/Eve/Internal/AppState.hs
{-# language TemplateHaskell #-}
module Eve.Internal.AppState
( AppState(..)
, App
, Action
) where
import Eve.Internal.Actions
import Eve.Internal.States
import Control.Lens
import Data.Default
data AppState = AppState
{ _baseStates :: States
}
makeLenses ''AppState
instance Default AppState where
def = AppState mempty
instance HasStates AppState where
states = baseStates
instance HasEvents AppState where
type App a = AppT AppState IO a
type Action s a = ActionT AppState s IO a