úÎ;g5¼      Trustworthy Lift a  into a . 'This acts like a generalized notion of " costrength",  when applied to a , causing it to return the 7 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 efficient , leaky   ! "#$%&'()*+,   !  "#$%&'()*+, Trustworthy strict left folds - efficient , leaky  ./012 3456789:;<=-  .0/12 3456789:;<=- Trustworthy>The shape of a ? @ A reified A. A ? caught in amber. B efficient  , efficient  >CDE@FGHIJKLMNOPQRSTUVWB>EDC@FGHIJKLMNOPQRSTUVWB TrustworthyXleaky  , efficient  YZ[\]^_`abcdX YZ[\]^_`abcdX non-portable experimentalEdward Kmett <ekmett@gmail.com> Safe-Inferred 4 is a folding homomorphism to a strict left folding    xs ( Æ) "a  xs Æ   xs ( Æ) "a  ( xs Æ)   l xs ( Æ) "a  ( l xs Æ)   ( Æ) xs "a  ( Æ xs)   l ( Æ) xs "a  ( l Æ xs)  left' ( Æ) "a  (left' Æ)  right' ( Æ) "a  (right' Æ)  dimap l r ( Æ) "a  (dimap l r Æ)  extract ( Æ) "a extract Æ  extend h ( Æ) "a  (extend (h . ) Æ)  pure a "a  (pure a)   Æ <*>  È "a  (Æ <*> È)  e a "a  (e a)   Æ f  . k "a  (Æ f k) 1 is a folding homomorphism to a monoidal folding    xs ( Æ) "a  xs Æ   xs ( Æ) "a  ( xs Æ)   l xs ( Æ) "a  ( l xs Æ)   ( Æ) xs "a  ( Æ xs)   l ( Æ) xs "a  ( l Æ xs)  left' ( Æ) "a  (left' Æ)  right' ( Æ) "a  (right' Æ)  dimap l r ( Æ) "a  (dimap l r Æ)  extract ( Æ) "a extract Æ  extend h ( Æ) "a  (extend (h . ) Æ)  pure a "a  (pure a)   Æ <*>  È "a  (Æ <*> È)  e a "a  (e a)   Æ f  . k "a  (Æ f k) . is a folding homomorphism to a right folding    xs ( Æ) "a  xs Æ   xs ( Æ) "a  ( xs Æ)   l xs ( Æ) "a  ( l xs Æ)   ( Æ) xs "a  ( Æ xs)   l ( Æ) xs "a  ( l Æ xs)  left' ( Æ) "a  (left' Æ)  right' ( Æ) "a  (right' Æ)  dimap l r ( Æ) "a  (dimap l r Æ)  extract ( Æ) "a extract Æ  extend h ( Æ) "a  (extend (h . ) Æ)  pure a "a  (pure a)   Æ <*>  È "a  (Æ <*> È)  e a "a  (e a)   Æ f  . k "a  (Æ f k) gBWe can convert from a lazy left folding to a strict left folding. h%We can convert a lazy fold to itself iFWe can convert from a strict left folding to a right or monoidal fold jDWe can convert from a lazy left folding to a right or monoidal fold k9We can convert from a monoidal fold to a lazy right fold l9We can convert from a lazy right fold to a monoidal fold mnghijkl    mnghijklo      !"#$$%&'()*+,-./0!"#$$%123456789:;<=>?<@ABCD?E$$FGHIJKLMNOPQRST$$UVWXYZ[\]^<_`<_abcdefghhi folds-0.1Data.Fold.Class Data.Fold.L Data.Fold.L' Data.Fold.M Data.Fold.R Data.FoldFoldingprefixprefix1prefixOfpostfixpostfix1 postfixOfrunrun1runOfbeneathLL'MRAsL'asL'AsRMasMasR lens-3.9.0.3Control.Lens.TypePrismOne $fFoldableOne $fFoldingLSnocListNilSnocPair$fFoldableSnocList$fComonadApplyL$fApplyL $fExtendL$fMonadL$fBindL$fApplicativeL $fComonadL $fFunctorL $fChoiceL $fProfunctorL $fFoldingL'$fComonadApplyL' $fApplyL' $fExtendL' $fMonadL'$fBindL'$fApplicativeL' $fComonadL' $fFunctorL' $fChoiceL'$fProfunctorL'Treebase Data.FoldablefoldMapN Data.MonoidMonoid $fFoldingMTwoZerorunN$fTraversableTree$fFoldableTree $fFunctorTree $fMonoidN$fComonadApplyM$fApplyM $fExtendM$fMonadM$fBindM$fApplicativeM $fComonadM $fFunctorM $fChoiceM $fProfunctorM $fFoldingR$fComonadApplyR$fApplyR $fExtendR$fApplicativeR$fMonadR$fBindR $fComonadR $fFunctorR $fChoiceR $fProfunctorRGHC.Basereturn>>=$fAsL'L$fAsL'L'$fAsRML'$fAsRML$fAsRMM$fAsRMRBox