hedn-0.3.0.1: EDN parsing and encoding

Safe HaskellSafe
LanguageHaskell2010

Data.EDN.Class.Parser

Description

Generic continuation-based parser

Synopsis

Documentation

parseEither :: (a -> Parser b) -> a -> Either String b Source #

Run a Parser reporting to an Either.

parseM :: MonadFail m => (a -> Parser b) -> a -> m b Source #

Run a Parser reporting to arbitrary Monad with fail.

newtype Parser a Source #

A continuation-based parser type.

Constructors

Parser 

Fields

Instances
Monad Parser Source # 
Instance details

Defined in Data.EDN.Class.Parser

Methods

(>>=) :: Parser a -> (a -> Parser b) -> Parser b #

(>>) :: Parser a -> Parser b -> Parser b #

return :: a -> Parser a #

fail :: String -> Parser a #

Functor Parser Source # 
Instance details

Defined in Data.EDN.Class.Parser

Methods

fmap :: (a -> b) -> Parser a -> Parser b #

(<$) :: a -> Parser b -> Parser a #

MonadFail Parser Source # 
Instance details

Defined in Data.EDN.Class.Parser

Methods

fail :: String -> Parser a #

Applicative Parser Source # 
Instance details

Defined in Data.EDN.Class.Parser

Methods

pure :: a -> Parser a #

(<*>) :: Parser (a -> b) -> Parser a -> Parser b #

liftA2 :: (a -> b -> c) -> Parser a -> Parser b -> Parser c #

(*>) :: Parser a -> Parser b -> Parser b #

(<*) :: Parser a -> Parser b -> Parser a #

Alternative Parser Source # 
Instance details

Defined in Data.EDN.Class.Parser

Methods

empty :: Parser a #

(<|>) :: Parser a -> Parser a -> Parser a #

some :: Parser a -> Parser [a] #

many :: Parser a -> Parser [a] #

MonadPlus Parser Source # 
Instance details

Defined in Data.EDN.Class.Parser

Methods

mzero :: Parser a #

mplus :: Parser a -> Parser a -> Parser a #

Semigroup (Parser a) Source # 
Instance details

Defined in Data.EDN.Class.Parser

Methods

(<>) :: Parser a -> Parser a -> Parser a #

sconcat :: NonEmpty (Parser a) -> Parser a #

stimes :: Integral b => b -> Parser a -> Parser a #

Monoid (Parser a) Source # 
Instance details

Defined in Data.EDN.Class.Parser

Methods

mempty :: Parser a #

mappend :: Parser a -> Parser a -> Parser a #

mconcat :: [Parser a] -> Parser a #

type Success a f r = a -> f r Source #

Success continuation.

type Failure f r = Expected -> String -> f r Source #

Failure continuation.

type Expected = [Label] Source #

Megaparsec-style collection of elements expected by combined parser alternatives.

type Label = String Source #

Single element expected by a parser. String because MonadFail method.