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



harder, better, faster, stronger...



data It r a Source


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


Profunctor It 
Monad (It r) 
Functor (It r) 
Applicative (It r) 
Comonad (It r)

It is a cofree comonad

Extend (It r) 
Zip (It r) 
Indexable (It r) 
Lookup (It r) 
Apply (It r) 
Bind (It r) 
Show a => Show (It r a) 

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

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

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

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

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

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

stepIt :: It Rope a -> Step e aSource