-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Solving simple games -- -- The solve package implements a basic Haskell library for solving and -- analyzing simple games (e.g., Fox & Hounds). @package solve @version 1.0 module Solve.Util find :: (a -> Bool) -> [a] -> Maybe ([a], a, [a]) mapLR :: (s -> a -> (b, s)) -> s -> [a] -> ([b], s) mapRL :: (a -> s -> (s, b)) -> [a] -> s -> (s, [b]) orderBy :: (a -> a -> Ordering) -> [a] -> [(Int, a)] reorder :: [(Int, a)] -> [a] nthRoot :: Integer -> Integer -> Integer updateSet :: Ord a => (a -> [a]) -> Set a -> [Set a] module Solve.Game data Game p e Game :: p -> [p] -> p -> Either e ([e] -> Bool -> e) -> Game p e [move] :: Game p e -> p -> [p] [eval] :: Game p e -> p -> Either e ([e] -> Bool -> e) solve :: Ord p => Game p e -> p -> (e, Map p e) module Solve.FoxHounds boardSize :: Int data Coord Coord :: Int -> Int -> Coord onBoard :: Coord -> Bool rankAdjacent :: Int -> Int -> [Coord] foxAdjacent :: Coord -> [Coord] houndAdjacent :: Coord -> [Coord] data Pos Pos :: Bool -> Coord -> Set Coord -> Pos [foxOnMove] :: Pos -> Bool [fox] :: Pos -> Coord [hounds] :: Pos -> Set Coord initial :: Pos occupied :: Pos -> Coord -> Bool empty :: Pos -> Coord -> Bool foxMove :: Pos -> [Pos] houndsMove :: Pos -> [Pos] move :: Pos -> [Pos] gameOver :: Pos -> Bool data Eval FoxEscape :: Int -> Eval FoxCapture :: Int -> Eval foxWin :: Eval houndsWin :: Eval delay :: Eval -> Eval eval :: Pos -> Either Eval ([Eval] -> Bool -> Eval) game :: Game Pos Eval instance GHC.Show.Show Solve.FoxHounds.Eval instance GHC.Classes.Eq Solve.FoxHounds.Eval instance GHC.Show.Show Solve.FoxHounds.Pos instance GHC.Classes.Ord Solve.FoxHounds.Pos instance GHC.Classes.Eq Solve.FoxHounds.Pos instance GHC.Classes.Ord Solve.FoxHounds.Coord instance GHC.Classes.Eq Solve.FoxHounds.Coord instance GHC.Classes.Ord Solve.FoxHounds.Eval instance GHC.Show.Show Solve.FoxHounds.Coord