Text.Trifecta.Util.It

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

Copyright | (C) 2011-2014 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | experimental
Portability | non-portable
Safe Haskell | Safe
Language | Haskell2010

Text.Trifecta.Util.It

Description

harder, better, faster, stronger...

Synopsis

- data It r a
  - = Pure a
  - | It a (r -> It r a)
- needIt :: a -> (r -> Maybe a) -> It r a
- wantIt :: a -> (r -> (#Bool, a#)) -> It r a
- simplifyIt :: It r a -> r -> It r a
- runIt :: (a -> o) -> (a -> (r -> It r a) -> o) -> It r a -> o
- fillIt :: r -> (Delta -> ByteString -> r) -> Delta -> It Rope r
- rewindIt :: Delta -> It Rope (Maybe ByteString)
- sliceIt :: Delta -> Delta -> It Rope ByteString

# Documentation

data It r a

Constructors

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

Instances

Profunctor It |
Monad (It r) |
Functor (It r) |
Applicative (It r) |
Comonad (It r) | It is a cofree comonad
ComonadApply (It r) |
Show a => Show (It r a) |

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

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

simplifyIt :: It r a -> r -> It r a

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

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

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

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

Return the text of the line that contains a given position

sliceIt :: Delta -> Delta -> It Rope ByteString