úÎ'%     SafeINA 5 is an action that reads from and writes to a stored %Draw one element from the underlying  , returning  if the  is empty%Skip one element from the underlying  , returning  if successful or  if the  is empty skip = fmap isJust draw&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.'Drain all elements from the underlying )Push back an element onto the underlying 2 checks the first element of the stream, but uses C to push the element back so that it is available for the next  command. kpeek = do x <- draw case x of Nothing -> return () Just a -> unDraw a return xCheck if the underlying  is empty "isEndOfInput = fmap isNothing peekFold all input values CControl.Foldl.purely foldAll :: Monad m => Fold a b -> Parser a m b !Fold all input values monadically IControl.Foldl.impurely foldAllM :: Monad m => FoldM a m b -> Parser a m b  % is an improper lens that splits the  into two s, where the outer L is the longest consecutive group of elements that satisfy the predicate  # is an improper lens that splits a  into two &s after a fixed number of elements   splits a  into two [s after the first group of elements that are equal according to the equality predicate Like  #, where the equality predicate is () Convert a  to a  signifies end of inputConvert a never-ending  to a Run a  repeatedly on a , ing each `Right resultReturns the remainder of the  when the  returns Run a  repeatedly on a ,  ing each  resultReturns the remainder of the  when the  returns  Convert a  to a & by running it repeatedly on the input Variant of 7 for parsers which return a Maybe instead of an Either Step functionInitial accumulatorExtraction function  Step functionInitial accumulatorExtraction function   !"#$%&    Safe'      !"#$%&'()*+,-.,/0,/0,/1,/2,/3$45pipes_IfXNXDqmZaD9WtnEqnGM3P Pipes.ParsePipes.Parse.TutorialParserdrawskipdrawAllskipAllunDrawpeek isEndOfInputfoldAllfoldAllMspansplitAtgroupBygrouptoParser toParser_parsedparsed_ parseForever parseForever_pipes_BuPv5OpHkYKJdGg885pSs7 Pipes.CoreProducerbaseGHC.BaseNothingghc-prim GHC.TypesTrueFalse GHC.Classes==ConsumerPipesyield Data.EitherLeftJustPipeLens'^.trans_GZTjP9K5WFq01xC9BAGQpFControl.Monad.Trans.Classlift Control.Monad.Trans.State.StrictStateT runStateT evalStateT execStateTnext