Îõ³h$ ç -      Safe-InferredÔÙ É  pipes-parseA  5 is an action that reads from and writes to a stored   pipes-parse%Draw one element from the underlying  , returning  if the  is empty  pipes-parse%Skip one element from the underlying  , returning  if successful or  if the  is empty skip = fmap isJust draw  pipes-parse&Draw all elements from the underlying  Note that   is not an idiomatic use of  pipes-parse?, but I provide it for simple testing purposes. Idiomatic  pipes-parseŽ style consumes the elements immediately as they are generated instead of loading all elements into memory. For example, you can use  or  for this purpose.  pipes-parse'Drain all elements from the underlying  pipes-parse)Push back an element onto the underlying  pipes-parse2 checks the first element of the stream, but uses à to push the element back so that it is available for the next   command. ëpeek = do x <- draw case x of Nothing -> return () Just a -> unDraw a return x pipes-parseCheck if the underlying  is empty "isEndOfInput = fmap isNothing peek pipes-parseFold all input values ÃControl.Foldl.purely foldAll :: Monad m => Fold a b -> Parser a m b pipes-parse!Fold all input values monadically ÉControl.Foldl.impurely foldAllM :: Monad m => FoldM a m b -> Parser a m b pipes-parse% is an improper lens that splits the  into two s, where the outer Ì is the longest consecutive group of elements that satisfy the predicate pipes-parse# is an improper lens that splits a  into two &s after a fixed number of elements pipes-parse splits a  into two Ûs after the first group of elements that are equal according to the equality predicate pipes-parseLike #, where the equality predicate is ( ) pipes-parse Convert a ! to a   signifies end of input pipes-parseConvert a never-ending ! to a   pipes-parseRun a   repeatedly on a , ing each `Right resultReturns the remainder of the  when the   returns " pipes-parseRun a   repeatedly on a ,  ing each # resultReturns the remainder of the  when the   returns  pipes-parse Convert a   to a $& by running it repeatedly on the input pipes-parse Variant of 7 for parsers which return a Maybe instead of an Either pipes-parse Step function pipes-parseInitial accumulator pipes-parseExtraction function pipes-parse Step function pipes-parseInitial accumulator pipes-parseExtraction function   Safe-Inferred )%    !"#$%&'()*()+(,- .%/0%&1 23(pipes-parse-3.0.9-Jz89vHjxyW159q1CVH2Bnt Pipes.ParsePipes.Parse.Tutorialtransformers-0.5.6.2Control.Monad.Trans.Classlift Control.Monad.Trans.State.StrictStateT runStateT evalStateT execStateT#pipes-4.3.15-CnC7kpHGEPQLm0eq2iHdaPPipesnextyield Pipes.CoreProducerParserdrawskipdrawAllskipAllunDrawpeek isEndOfInputfoldAllfoldAllMspansplitAtgroupBygrouptoParser toParser_parsedparsed_ parseForever parseForever_base GHC.MaybeNothingghc-prim GHC.TypesTrueFalse GHC.Classes==Consumer Data.EitherLeftJustPipe