Îõ³h&=¿Å      !"#$%&'()*+,-./0123456789:;<=>?@ABCDSafeÙÚB Trustworthy 05ÁÃÌÑÙÚÜ‹Efoldable1-classes-compat"Used to implement intercalate1/MapFfoldable1-classes-compat7Strict maybe, used to implement default foldlMap1' etc.Gfoldable1-classes-compat,Used for foldrMap1 and foldlMap1 definitionsHfoldable1-classes-compat+Used for default toNonEmpty implementation. foldable1-classes-compat-Non-empty data structures that can be folded. foldable1-classes-compat6Combine the elements of a structure using a semigroup. foldable1-classes-compatËMap each element of the structure to a semigroup, and combine the results.foldMap1 Sum (1 :| [2, 3, 4])Sum {getSum = 10}foldable1-classes-compat A variant of  # that is strict in the accumulator.foldMap1' Sum (1 :| [2, 3, 4])Sum {getSum = 10}foldable1-classes-compat4List of elements of a structure, from left to right.toNonEmpty (Identity 2)2 :| []foldable1-classes-compat-The largest element of a non-empty structure. maximum (32 :| [64, 8, 128, 16])128foldable1-classes-compat+The least element of a non-empty structure. minimum (32 :| [64, 8, 128, 16])8foldable1-classes-compat+The first element of a non-empty structure.head (1 :| [2, 3, 4])1foldable1-classes-compat*The last element of a non-empty structure.last (1 :| [2, 3, 4])4foldable1-classes-compat Generalized .foldable1-classes-compat Generalized .foldable1-classes-compat Generalized .foldable1-classes-compat Generalized .foldable1-classes-compat&Right-associative fold of a structure.In the case of lists, ò, when applied to a binary operator, and a list, reduces the list using the binary operator, from right to left: Âfoldr1 f [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn1 `f` xn )...)ˆNote that, since the head of the resulting expression is produced by an application of the operator to the first element of the list, < can produce a terminating expression from an infinite list.For a general  5 structure this should be semantically identical to, foldr1 f = foldr1 f . foldable1-classes-compatÔRight-associative fold of a structure, but with strict application of the operator.foldable1-classes-compat%Left-associative fold of a structure.In the case of lists, ò, when applied to a binary operator, and a list, reduces the list using the binary operator, from left to right: =foldl1 f [x1, x2, ..., xn] == (...((x1 `f` x2) `f`...) `f` xnùNote that to produce the outermost application of the operator the entire input list must be traversed. This means that ) will diverge if given an infinite list.ÍAlso note that if you want an efficient left-fold, you probably want to use  instead of Ï. The reason for this is that latter does not force the "inner" results (e.g.  x1 `f` x2Æ in the above example) before applying them to the operator (e.g. to (`f` x3)"). This results in a thunk chain \mathcal{O}(n) elements long, which then must be evaluated from the outside-in.For a general  5 structure this should be semantically identical to, foldl1 f z = foldl1 f . foldable1-classes-compatÒLeft-associative fold of a structure but with strict application of the operator.„This ensures that each step of the fold is forced to weak head normal form before being applied, avoiding the collection of thunks that would otherwise occur. This is often what you want to strictly reduce a finite list to a single, monolithic result (e.g. length).For a general  5 structure this should be semantically identical to, foldl1' f z = foldl1 f . foldable1-classes-compat Insert an m between each pair of t m.4intercalate1 ", " $ "hello" :| ["how", "are", "you"]"hello, how, are, you"!intercalate1 ", " $ "hello" :| []"hello"3intercalate1 mempty $ "I" :| ["Am", "Fine", "You?"] "IAmFineYou?"foldable1-classes-compatìMonadic fold over the elements of a non-empty structure, associating to the right, i.e. from right to left.foldable1-classes-compatMap variant of .foldable1-classes-compatëMonadic fold over the elements of a non-empty structure, associating to the left, i.e. from left to right. foldable1-classes-compatMap variant of .!foldable1-classes-compatÜThe largest element of a non-empty structure with respect to the given comparison function."foldable1-classes-compatÚThe least element of a non-empty structure with respect to the given comparison function.Ifoldable1-classes-compat"Create dlist with a single elementJfoldable1-classes-compat#Convert a dlist to a non-empty list-foldable1-classes-compat6It would be enough for either half of a product to be  . Other could be K.    !"    !"Ì      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPÑ3foldable1-classes-compat-0.1-I5d6Ph3TiNZ22HBHJqCFAIData.Bifoldable1Data.Foldable1 Bifoldable1bifold1 bifoldMap1$fBifoldable1Tagged$fBifoldable1Const$fBifoldable1(,,,,)$fBifoldable1(,,,)$fBifoldable1(,,)$fBifoldable1(,)$fBifoldable1Either$fBifoldable1Arg Foldable1fold1foldMap1 foldMap1' toNonEmptymaximumminimumheadlast foldrMap1 foldlMap1' foldlMap1 foldrMap1'foldr1foldr1'foldl1foldl1' intercalate1foldrM1 foldrMapM1foldlM1 foldlMapM1 maximumBy minimumBy$fSemigroupNonEmptyDList$fSemigroupFromMaybe$fFoldable1Solo$fFoldable1Tagged$fFoldable1Lift$fFoldable1Backwards$fFoldable1Reverse$fFoldable1Tree$fFoldable1Compose$fFoldable1Sum$fFoldable1Product$fFoldable1Identity$fFoldable1:.:$fFoldable1:*:$fFoldable1:+:$fFoldable1Par1 $fFoldable1V1$fFoldable1Last$fFoldable1First$fFoldable1Max$fFoldable1Min$fFoldable1Product0$fFoldable1Sum0$fFoldable1Dual$fFoldable1(,)$fFoldable1Complex$fFoldable1Down$fFoldable1NonEmpty$fSemigroupJoinWith$fFoldable1IdentityT $fFoldable1M1$fFoldable1Rec1 $fFoldable1Ap$fFoldable1AltJoinWithSMaybe FromMaybe NonEmptyDList singletonrunNonEmptyDListbase Data.FoldableFoldable