trifecta-1.6.1: A modern parser combinator library with convenient diagnostics

Copyright(C) 2011-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe
LanguageHaskell2010

Text.Trifecta.Util.It

Description

harder, better, faster, stronger...

Synopsis

Documentation

data It r a Source #

Constructors

Pure a 
It a (r -> It r a) 

Instances

Profunctor It Source # 

Methods

dimap :: (a -> b) -> (c -> d) -> It b c -> It a d #

lmap :: (a -> b) -> It b c -> It a c #

rmap :: (b -> c) -> It a b -> It a c #

(#.) :: Coercible * c b => (b -> c) -> It a b -> It a c #

(.#) :: Coercible * b a => It b c -> (a -> b) -> It a c #

Monad (It r) Source # 

Methods

(>>=) :: It r a -> (a -> It r b) -> It r b #

(>>) :: It r a -> It r b -> It r b #

return :: a -> It r a #

fail :: String -> It r a #

Functor (It r) Source # 

Methods

fmap :: (a -> b) -> It r a -> It r b #

(<$) :: a -> It r b -> It r a #

Applicative (It r) Source # 

Methods

pure :: a -> It r a #

(<*>) :: It r (a -> b) -> It r a -> It r b #

(*>) :: It r a -> It r b -> It r b #

(<*) :: It r a -> It r b -> It r a #

Comonad (It r) Source #

It is a cofree comonad

Methods

extract :: It r a -> a #

duplicate :: It r a -> It r (It r a) #

extend :: (It r a -> b) -> It r a -> It r b #

ComonadApply (It r) Source # 

Methods

(<@>) :: It r (a -> b) -> It r a -> It r b #

(@>) :: It r a -> It r b -> It r b #

(<@) :: It r a -> It r b -> It r a #

Show a => Show (It r a) Source # 

Methods

showsPrec :: Int -> It r a -> ShowS #

show :: It r a -> String #

showList :: [It r a] -> ShowS #

needIt :: a -> (r -> Maybe a) -> It r a Source #

wantIt :: a -> (r -> (#Bool, a#)) -> It r a Source #

simplifyIt :: It r a -> r -> It r a Source #

runIt :: (a -> o) -> (a -> (r -> It r a) -> o) -> It r a -> o Source #

fillIt :: r -> (Delta -> ByteString -> r) -> Delta -> It Rope r Source #

Given a position, go there, and grab the text forward from that point

rewindIt :: Delta -> It Rope (Maybe ByteString) Source #

Return the text of the line that contains a given position