h$'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                           None-3567?folds Strict Pairfolds A reified .foldsThe shape of a folds A reified .foldsStrict "folds Reversed '[]'( ! "$#%&'("$#! % &' Trustworthy9 !foldsPartially apply a # to some initial input on the left.foldsApply a  to a container full of input:$run ["hello","world"] $ L id (++) [] "helloworld"run [1,2,3] $ L id (+) 06foldsApply a  to a single element of inputfoldsLift a  into a .This acts like a generalized notion of "costrength", when applied to a , causing it to return the left-most value that fails to match the Prism, or the result of accumulating rewrapped in the  if everything matches.9run [Left 1, Left 2, Left 3] $ beneath _Left $ R id (+) 0Left 6;run [Left 1, Right 2, Right 3] $ beneath _Left $ R id (+) 0Right 2 beneath :: Prism s t a b -> p a b -> p s t beneath :: Iso s t a b -> p a b -> p s t  Trustworthy ? ZfoldsA Moore MachinefoldsConstruct a Moore machine from a state valuation and transition functionfoldscosieve (L id (+) 0) [1,2,3]6folds efficient , leaky  Trustworthy ? \folds)A strict left fold / strict Moore machinefoldsConstruct a strict Moore machine from a state valuation and transition functionfolds efficient , leaky  Trustworthy foldsA Mealy Machine TrustworthyfoldsA strict Mealy Machine Trustworthy ?foldsA + caught in amber. a.k.a. a monoidal reducerfolds efficient  , efficient  Trustworthy  foldsA semigroup reducer  Trustworthy ?folds&right folds / a reversed Moore machinefoldsleaky  , efficient   Trustworthy!foldsA reversed Mealy machine (C) 2009-2013 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  experimental non-portableNone9r folds3 is a folding homomorphism to a strict left folding  xs ( ) D  xs   xs ( ) D  ( xs )  l xs ( ) D  ( l xs )  ( ) xs D  (  xs)  l ( ) xs D  ( l  xs) left' ( ) D  (left' ) right' ( ) D  (right' ) dimap l r ( ) D  (dimap l r ) extract ( ) D extract   a D  ( a)      D  (  )  a D  ( a)     . k D  (  k)  p ( ) D  ( p )  a ( ) D  ( a ) folds+Scan homomorphism to a strict Mealy machinefolds0 is a folding homomorphism to a monoidal folding  xs ( ) D  xs   xs ( ) D  ( xs )  l xs ( ) D  ( l xs )  ( ) xs D  (  xs)  l ( ) xs D  ( l  xs) left' ( ) D  (left' ) right' ( ) D  (right' ) dimap l r ( ) D  (dimap l r ) extract ( ) D extract   a D  ( a)      D  (  )  a D  ( a)     . k D  (  k)  p ( ) D  ( p )  a ( ) D  ( a ) folds- is a folding homomorphism to a right folding  xs ( ) D  xs   xs ( ) D  ( xs )  l xs ( ) D  ( l xs )  ( ) xs D  (  xs)  l ( ) xs D  ( l  xs) left' ( ) D  (left' ) right' ( ) D  (right' ) dimap l r ( ) D  (dimap l r ) extract ( ) D extract   a D  ( a)      D  (  )  a D  ( a)     . k D  (  k)  p ( ) D  ( p )  a ( ) D  ( a ) folds. is a scan homomorphism to a semigroup reducerfolds' is a scan homomorphism to a right scanfoldsWe can convert from a strict left folding to a right or monoidal foldfoldsWe can convert from a lazy left folding to a right or monoidal foldfolds8We can convert from a monoidal fold to a lazy right foldfolds8We can convert from a lazy right fold to a monoidal foldfoldsWe can convert from a lazy left folding to a strict left folding.folds$We can convert a lazy fold to itself((    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                           "folds-0.7.6-LtqFccbjfUzLezN7EFiWb6Data.Fold.InternalData.Fold.Class Data.Fold.L Data.Fold.L' Data.Fold.L1 Data.Fold.L1' Data.Fold.M Data.Fold.M1 Data.Fold.R Data.Fold.R1 Data.Fold FreeSemigrouprunFreeSemigroup FreeMonoid runFreeMonoidTree1Bin1Tip1List1Cons1LastBoxAnPair'SrunSTreeZeroOneTwoNrunNMaybe'Nothing'Just' SnocList1Snoc1FirstSnocListSnocNilmaybe' foldDeRef foldDeRef1$fTraversableSnocList$fFoldableSnocList$fFunctorSnocList$fTraversableSnocList1$fFoldableSnocList1$fFunctorSnocList1$fFoldableMaybe' $fMonoidN $fSemigroupN$fTraversableTree$fFoldableTree $fFunctorTree $fSemigroupS $fMonoidPair'$fSemigroupPair'$fTraversableAn $fFoldableAn $fFunctorAn$fTraversableBox $fFoldableBox $fFunctorBox$fTraversableList1$fFoldableList1$fFunctorList1$fTraversableTree1$fFoldableTree1$fFunctorTree1$fFoldableFreeMonoid$fFoldable1FreeSemigroup$fFoldableFreeSemigroup$fBitraversableT $fBifoldableT $fBifunctorT $fMuRefTree $fMuRef1Tree$fBitraversable1T1$fBifoldable1T1$fBitraversableT1$fBifoldableT1 $fBifunctorT1 $fMuRef1Tree1 $fMuRefTree1 $fFunctorT1 $fFoldableT1$fTraversableT1 $fFunctorT $fFoldableT$fTraversableT$fFunctorFreeSemigroup$fFunctorFreeMonoid$fEqBox$fOrdBox $fShowBox $fReadBox $fDataBox$fEqAn$fOrdAn$fShowAn$fReadAn$fDataAn $fEqPair' $fOrdPair' $fShowPair' $fReadPair' $fDataPair'$fEqS$fOrdS$fShowS$fReadS$fDataS$fEqTree $fOrdTree $fShowTree $fReadTree $fDataTree$fEqN$fOrdN$fShowN$fReadN$fDataN $fEqMaybe' $fOrdMaybe' $fShowMaybe' $fReadMaybe' $fDataMaybe' $fEqSnocList1$fOrdSnocList1$fShowSnocList1$fReadSnocList1$fDataSnocList1 $fEqSnocList $fOrdSnocList$fShowSnocList$fReadSnocList$fDataSnocListFoldingprefixprefixOfpostfix postfixOfrunrunOf filteringScanprefix1postfix1run1 interspersingbeneathLunfoldL $fMonadFixL$fCorepresentableL $fClosedL $fCosieveL[] $fCostrongL$fMonadReader[]L$fRepresentableL$fDistributiveL$fComonadApplyL$fApplyL $fExtendL $fMonadZipL$fMonadL$fBindL$fApplicativeL $fComonadL $fFunctorL $fChoiceL $fProfunctorL $fFoldingL$fScanLL'unfoldL' $fMonadFixL'$fMonadReader[]L' $fCosieveL'[]$fCorepresentableL' $fClosedL' $fCostrongL'$fRepresentableL'$fDistributiveL'$fComonadApplyL' $fApplyL' $fExtendL' $fMonadZipL' $fMonadL'$fBindL'$fApplicativeL' $fComonadL' $fFunctorL' $fChoiceL'$fProfunctorL' $fFoldingL'$fScanL'L1 $fMonadFixL1$fMonadReaderNonEmptyL1 $fClosedL1$fRepresentableL1$fDistributiveL1$fCorepresentableL1 $fCostrongL1$fCosieveL1NonEmpty$fArrowChoiceL1 $fChoiceL1 $fStrongL1$fProfunctorL1 $fArrowL1$fCategoryTYPEL1$fSemigroupoidTYPEL1 $fMonadZipL1 $fMonadL1$fApplicativeL1 $fApplyL1 $fPointedL1 $fFunctorL1$fScanL1L1' $fMonadFixL1'$fMonadReaderNonEmptyL1' $fClosedL1'$fRepresentableL1'$fDistributiveL1'$fCorepresentableL1' $fCostrongL1'$fCosieveL1'NonEmpty$fArrowChoiceL1' $fChoiceL1' $fStrongL1'$fProfunctorL1' $fArrowL1'$fCategoryTYPEL1'$fSemigroupoidTYPEL1' $fMonadL1'$fApplicativeL1' $fApplyL1' $fPointedL1' $fFunctorL1' $fScanL1'M $fMonadFixM $fCostrongM$fRepresentableM$fMonadReaderFreeMonoidM$fCorepresentableM$fCosieveMFreeMonoid $fClosedM$fDistributiveM$fComonadApplyM$fApplyM $fExtendM $fMonadZipM$fMonadM$fBindM$fApplicativeM $fComonadM $fFunctorM $fChoiceM $fProfunctorM $fFoldingM$fScanMM1runM1 $fMonadFixM1$fMonadReaderFreeSemigroupM1 $fCostrongM1$fRepresentableM1$fCorepresentableM1$fCosieveM1FreeSemigroup$fDistributiveM1 $fClosedM1$fArrowChoiceM1 $fChoiceM1 $fStrongM1$fProfunctorM1 $fArrowM1$fCategoryTYPEM1$fSemigroupoidTYPEM1 $fMonadZipM1 $fMonadM1$fApplicativeM1 $fApplyM1 $fPointedM1 $fFunctorM1$fScanM1R $fMonadFixR $fClosedR$fMonadReader[]R $fCosieveR[]$fCorepresentableR $fCostrongR$fRepresentableR$fDistributiveR$fComonadApplyR$fApplyR $fExtendR$fApplicativeR $fMonadZipR$fMonadR$fBindR $fComonadR $fFunctorR $fChoiceR $fProfunctorR $fFoldingR$fScanRR1 $fMonadFixR1$fMonadReaderNonEmptyR1$fRepresentableR1$fDistributiveR1$fCorepresentableR1 $fCostrongR1$fCosieveR1NonEmpty $fClosedR1$fArrowChoiceR1 $fChoiceR1 $fStrongR1$fProfunctorR1 $fArrowR1$fCategoryTYPER1$fSemigroupoidTYPER1 $fMonadZipR1 $fMonadR1$fApplicativeR1 $fApplyR1 $fPointedR1 $fFunctorR1$fScanR1AsL'asL'AsL1'asL1'AsRMasMasRAsRM1asM1asR1 $fAsRM1R1$fAsRM1R $fAsRM1M1$fAsRM1M $fAsRM1L1' $fAsRM1L1 $fAsRM1L'$fAsRM1L$fAsRML'$fAsRML$fAsRMM$fAsRMR$fAsL'L$fAsL'L' $fAsL1'L'$fAsL1'L $fAsL1'L1 $fAsL1'L1'baseGHC.Base Semigroup Data.FoldablefoldMapMonoid GHC.MaybeMaybelens-5-5j2zKMfPN5sFcKSepNZdISControl.Lens.TypePrismpure<*>return>>=