eternity-0.1: library/Eternity/Foldl/General.hs
module Eternity.Foldl.General
where
import Eternity.Prelude hiding (maximum)
import Control.Foldl
import qualified Data.Attoparsec.Text as B
parsing :: B.Parser parsed -> Fold (Either Text parsed) folded -> Fold Text folded
parsing parser =
premap (bimap fromString id . B.parseOnly parser)
ignoringLeft :: Fold right folded -> Fold (Either left right) folded
ignoringLeft (Fold rightProgress rightStart rightStop) =
Fold progress rightStart rightStop
where
progress !state =
\ case
Right right -> rightProgress state right
Left _ -> state