-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simple deterministic game engine -- @package deterministic-game-engine @version 0.1.0.0 module GameEngine type Symbol = Char data GameState a GameState :: a -> GameState a data Player Player :: Char -> Player data Move a Move :: a -> Move a data GameActions a b GameActions :: (GameState a -> Player) -> (GameState a -> [Move b]) -> (GameState a -> Move b -> GameState a) -> (GameState a -> Bool) -> (GameState a -> Player -> Int) -> GameActions a b getPlayer :: GameActions a b -> GameState a -> Player getMoves :: GameActions a b -> GameState a -> [Move b] getResult :: GameActions a b -> GameState a -> Move b -> GameState a isTerminal :: GameActions a b -> GameState a -> Bool getScore :: GameActions a b -> GameState a -> Player -> Int data GameEngine a b GameEngine :: GameActions a b -> GameState a -> GameEngine a b gameActions :: GameEngine a b -> GameActions a b state :: GameEngine a b -> GameState a play :: GameEngine a b -> Int