Craft3e-0.2.0.1: Code for Haskell: the Craft of Functional Programming, 3rd ed.
Safe HaskellSafe-Inferred
LanguageHaskell2010

ParseLib

Documentation

type Parse a b = [a] -> [(b, [a])] Source #

succeed :: b -> Parse a b Source #

token :: Eq a => a -> Parse a a Source #

spot :: (a -> Bool) -> Parse a a Source #

endOfInput :: b -> Parse a b Source #

alt :: Parse a b -> Parse a b -> Parse a b Source #

exam1 :: [(Char, [Char])] Source #

(>*>) :: Parse a b -> Parse a c -> Parse a (b, c) infixr 5 Source #

build :: Parse a b -> (b -> c) -> Parse a c Source #

list :: Parse a b -> Parse a [b] Source #

neList :: Parse a b -> Parse a [b] Source #

optional :: Parse a b -> Parse a [b] Source #

nTimes :: Int -> Parse a b -> Parse a [b] Source #

data SParse a b Source #

Constructors

SParse (Parse a b) 

Instances

Instances details
Applicative (SParse a) Source # 
Instance details

Defined in ParseLib

Methods

pure :: a0 -> SParse a a0 #

(<*>) :: SParse a (a0 -> b) -> SParse a a0 -> SParse a b #

liftA2 :: (a0 -> b -> c) -> SParse a a0 -> SParse a b -> SParse a c #

(*>) :: SParse a a0 -> SParse a b -> SParse a b #

(<*) :: SParse a a0 -> SParse a b -> SParse a a0 #

Functor (SParse a) Source # 
Instance details

Defined in ParseLib

Methods

fmap :: (a0 -> b) -> SParse a a0 -> SParse a b #

(<$) :: a0 -> SParse a b -> SParse a a0 #

Monad (SParse a) Source # 
Instance details

Defined in ParseLib

Methods

(>>=) :: SParse a a0 -> (a0 -> SParse a b) -> SParse a b #

(>>) :: SParse a a0 -> SParse a b -> SParse a b #

return :: a0 -> SParse a a0 #

sparse :: SParse a b -> Parse a b Source #