Safe Haskell | None |
---|---|
Language | Haskell98 |
- type Path = [String]
- impossible :: a
- field :: Path -> Value -> Parser Value
- parseFrom :: Path -> (Value -> Parser b) -> Value -> Parser b
- chars :: [Char] -> Char -> Parser Char
- char :: Char -> Char -> Parser Char
- class FromChar a where
- class FromString a where
- parseStringJSON :: FromString a => Value -> Parser a
- parseLine :: FromChar a => String -> Parser [a]
- newtype Alpha = Alpha {}
- newtype IntString = IntString {}
- data Rect a = Rect !Int !Int [[a]]
- data Border a = Border [a] [a] [a] [a]
- data BorderedRect a b = BorderedRect !Int !Int [[a]] (Border b)
- parseBorderedRect :: (Char -> Parser a) -> (Char -> Parser b) -> Value -> Parser (BorderedRect a b)
- newtype SpacedRect a = SpacedRect {}
- data Space = Space
- data Blank = Blank
- data Blank' = Blank'
- data Blank'' = Blank''
- data Empty = Empty
- parseCharJSON :: FromChar a => Value -> Parser a
- newtype Either' a b = Either' {}
- listListToMap :: [[a]] -> Grid Coord a
- rectToCoordGrid :: Rect a -> Grid Coord a
- blankToMaybe :: Either Blank a -> Maybe a
- blankToMaybe' :: Either Blank' a -> Maybe a
- blankToMaybe'' :: Either Blank'' a -> Maybe a
- rectToIrregGrid :: Rect (Either Empty a) -> Grid Coord a
- newtype Shaded = Shaded {}
- parseShadedGrid :: Key k => Value -> Parser (Grid k Bool)
- parseCoordGrid :: FromChar a => Value -> Parser (Grid Coord a)
- parseGrid :: (Key k, FromChar a) => Value -> Parser (Grid k a)
- parseGridWith :: Key k => (Char -> Parser a) -> Value -> Parser (Grid k a)
- parseWithReplacement :: FromChar a => (Char -> Maybe a) -> Char -> Parser a
- parseSpacedGrid :: (Key k, FromString a) => Value -> Parser (Grid k a)
- parseCharMap :: FromJSON a => Value -> Parser (Map Char a)
- parseExtGrid' :: (Key k, FromJSON a, FromChar b) => (a -> b) -> Value -> Parser (Grid k b)
- parseExtGrid :: (Key k, FromChar a, FromJSON a) => Value -> Parser (Grid k a)
- parseExtClueGrid :: (Key k, FromChar a, FromJSON a) => Value -> Parser (Grid k (Maybe a))
- fromCoordGrid :: Key k => Grid Coord a -> Grid k a
- fromCoordEdge :: Key k => Edge Coord -> Edge k
- fromCoordEdges :: Key k => [Edge Coord] -> [Edge k]
- parseClueGrid :: (FromChar a, Key k) => Value -> Parser (Grid k (Maybe a))
- parseClueGrid' :: (FromChar a, Key k) => Value -> Parser (Grid k (Maybe a))
- parseSpacedClueGrid :: (Key k, FromString a) => Value -> Parser (Grid k (Maybe a))
- parseIrregGrid :: (Key k, FromChar a) => Value -> Parser (Grid k a)
- parsePlainEdges :: Key k => Value -> Parser [Edge k]
- filterPlainEdges :: Map (Edge k) Char -> [Edge k]
- parseAnnotatedEdges :: (Key k, FromChar a) => Value -> Parser (Map (Edge k) a)
- readEdges :: Grid Coord Char -> Map (Edge Coord) Char
- parseGridChars :: FromChar a => Grid k Char -> Parser (Grid k a)
- parseEdgeGrid :: (FromChar a, FromChar b, FromChar c) => Value -> Parser (Grid N a, Grid C b, Map (Edge N) c)
- parsePlainEdgeGrid :: (FromChar a, FromChar b) => Value -> Parser (Grid N a, Grid C b, [Edge N])
- parseNodeEdges :: FromChar a => Value -> Parser (Grid N a, [Edge N])
- parseCellEdges :: FromChar a => Value -> Parser (Grid C a, [Edge N])
- data HalfDirs = HalfDirs {
- unHalfDirs :: [Dir]
- parseEdges :: Key k => Value -> Parser [Edge k]
- newtype Dirs' = Dirs' {}
- parseEdgesFull :: Key k => Value -> Parser [Edge k]
- type ThermoRect = Rect (Either Blank (Either Int Alpha))
- partitionEithers :: Ord k => Map k (Either a b) -> (Map k a, Map k b)
- parseThermos :: Grid C Alpha -> Parser [Thermometer]
- parseThermoGrid :: ThermoRect -> Parser (Grid C (Maybe Int), [Thermometer])
- parseOutsideGrid :: Key k => (Char -> Parser a) -> (Char -> Parser b) -> Value -> Parser (OutsideClues k b, Grid k a)
- parseOutsideGridMap :: (Key k, FromChar a, FromChar b) => (a -> c) -> (b -> d) -> Value -> Parser (OutsideClues k d, Grid k c)
- newtype Tight = Tight {}
- parseTightOutside :: Value -> Parser (OutsideClues C (Maybe Int), Grid C (Tightfit ()))
- newtype PMarkedWord = PMW {
- unPMW :: MarkedWord
- parseNWords :: Int -> String -> Parser [String]
- parseDoublePair :: FromString a => Value -> Parser ((a, a), (a, a))
- parseMarkedLine :: FromCoord a => Value -> Parser (MarkedLine a)
- newtype PMarkedLine a = PML {
- unPML :: MarkedLine a
- newtype PCompassC = PCC {}
- newtype PSlovakClue = PSlovakClue {}
- newtype RefGrid k a = RefGrid {}
- hashmaptomap :: Ord a => HashMap a b -> Map a b
- compose :: Ord b => Map a b -> Map b c -> Maybe (Map a c)
- newtype MaybeMap k a = MM {
- unMaybeMap :: Map k (Maybe a)
- compose' :: Ord b => Map a (Maybe b) -> Map b c -> Maybe (Map a (Maybe c))
- parseAfternoonGrid :: Value -> Parser (Grid C Shade)
- newtype ParseTapaClue = ParseTapaClue {}
- reorientOutside :: OutsideClues k a -> OutsideClues k a
- parseCharOutside :: FromChar a => Value -> Parser (OutsideClues k a)
- parseOutside :: FromJSON a => Value -> Parser (OutsideClues k a)
- parseMultiOutsideClues :: FromJSON a => Value -> Parser (OutsideClues k [a])
- parseCoordLoop :: Value -> Parser VertexLoop
- newtype PFraction = PFraction {}
- parseGreaterClues :: Value -> Parser [GreaterClue]
- parseGreaterClue :: [Char] -> Parser GreaterClue
Documentation
impossible :: a Source #
class FromChar a where Source #
class FromString a where Source #
parseString :: String -> Parser a Source #
FromString Int Source # | |
FromString DigitRange Source # | |
FromString Blank Source # | |
FromChar a => FromString (Tightfit a) Source # | |
(FromString a, FromString b) => FromString (Either a b) Source # | |
parseStringJSON :: FromString a => Value -> Parser a Source #
Helper to parse strings from number-formatted YAML fields. Somewhat dodgy.
A rectangle. Each row has length w
.
Border [a] [a] [a] [a] |
data BorderedRect a b Source #
BorderedRect !Int !Int [[a]] (Border b) |
parseBorderedRect :: (Char -> Parser a) -> (Char -> Parser b) -> Value -> Parser (BorderedRect a b) Source #
listListToMap :: [[a]] -> Grid Coord a Source #
parseSpacedGrid :: (Key k, FromString a) => Value -> Parser (Grid k a) Source #
parseSpacedClueGrid :: (Key k, FromString a) => Value -> Parser (Grid k (Maybe a)) Source #
parseEdgeGrid :: (FromChar a, FromChar b, FromChar c) => Value -> Parser (Grid N a, Grid C b, Map (Edge N) c) Source #
Parse a grid with edges and values at nodes and in cells.
E.g. o-*-*-o |1|2 3 *-o to a grid of masyu pearls, a grid of integers, and some annotated edges.
parsePlainEdgeGrid :: (FromChar a, FromChar b) => Value -> Parser (Grid N a, Grid C b, [Edge N]) Source #
parseNodeEdges :: FromChar a => Value -> Parser (Grid N a, [Edge N]) Source #
Parse a grid of edges with values at the nodes.
E.g. o-*-*-o | | *-o to a grid of masyu pearls and some edges.
parseThermos :: Grid C Alpha -> Parser [Thermometer] Source #
parseThermoGrid :: ThermoRect -> Parser (Grid C (Maybe Int), [Thermometer]) Source #
parseOutsideGrid :: Key k => (Char -> Parser a) -> (Char -> Parser b) -> Value -> Parser (OutsideClues k b, Grid k a) Source #
parseOutsideGridMap :: (Key k, FromChar a, FromChar b) => (a -> c) -> (b -> d) -> Value -> Parser (OutsideClues k d, Grid k c) Source #
parseDoublePair :: FromString a => Value -> Parser ((a, a), (a, a)) Source #
parseMarkedLine :: FromCoord a => Value -> Parser (MarkedLine a) Source #
newtype PMarkedLine a Source #
PML | |
|
FromCoord a => FromJSON (PMarkedLine a) Source # | |
MM | |
|
newtype ParseTapaClue Source #
reorientOutside :: OutsideClues k a -> OutsideClues k a Source #
parseCharOutside :: FromChar a => Value -> Parser (OutsideClues k a) Source #
parseOutside :: FromJSON a => Value -> Parser (OutsideClues k a) Source #
parseMultiOutsideClues :: FromJSON a => Value -> Parser (OutsideClues k [a]) Source #
parseCoordLoop :: Value -> Parser VertexLoop Source #
parseGreaterClues :: Value -> Parser [GreaterClue] Source #
parseGreaterClue :: [Char] -> Parser GreaterClue Source #