Îõ³h$/ó.±:      !"#$%&'()*+,-./0123456789(c) OleksandrZhabenko 2020MITolexandr543@yahoo.com Experimental Safe-Inferred>ÀÁÂlsubGSome extension to the : and ; classes.subG Inspired by:  Òhttps://hackage.haskell.org/package/base-4.14.0.0/docs/src/Data.OldList.html#wordsÑ and: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdf. Is similar to the <Á but operates on more general structures an allows more control.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdf.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdf.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdf.subGÄPrepends and appends the given two first arguments to the third one.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfÞ. Takes the first argument quantity from the right end of the structure preserving the order. subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfá. Takes the specified quantity from the right end of the structure and then reverses the result. subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdf·. Is analogous to the taking the specified quantity from the structure and then reversing the result. Uses strict variant of the foldl, so is not suitable for large amounts of data. subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfÎ. Uses strict variant of the foldl, so is strict and the data must be finite. subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfµ. Is analogous to the dropping the specified quantity from the structure and then reversing the result. Uses strict variant of the foldl, so is strict and the data must be finite. subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfõ. Drops the first argument quantity from the right end of the structure and returns the result preserving the order.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfá. Drops the specified quantity from the right end of the structure and then reverses the result.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfÎ. Uses strict variant of the foldl, so is strict and the data must be finite.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfÎ. Uses strict variant of the foldl, so is strict and the data must be finite.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdfÅ. Splits the structure starting from the end and preserves the order.subG&If a structure is empty, just returns =.subGüIf the structure is empty, just returns itself. Uses strict variant of the foldl, so is strict and the data must be finite.subG/If the structure is empty, just returns itself.subG(If the structure is empty, just returns =.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdf. Acts similarly to the > function from Prelude.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdf. Acts similarly to ? function from Prelude.subG×Inspired by: Graham Hutton. A tutorial on the universality and expressiveness of fold. J. Functional Programming; 9 (4): 355“@372, July 1999. that is available at the URL:  *https://www.cs.nott.ac.uk/~pszgmh/fold.pdf. Acts similarly to  partitionè function from Data.List. Practically is a rewritten for more general variants function partition from Öhttps://hackage.haskell.org/package/base-4.14.0.0/docs/src/Data.OldList.html#partition    11(c) OleksandrZhabenko 2020MITolexandr543@yahoo.com Experimental Safe-Inferred~subGÁGiven a finite structure returns a tuple with two minimum elements and three maximum elements. Uses just two passes through the structure, so may be more efficient than some other approaches.subGA variant of the 4 where you can specify your own comparison function.subGÀGiven a finite structure returns a tuple with three minimum elements and two maximum elements. Uses just two passes through the structure, so may be more efficient than some other approaches.subGA variant of the 4 where you can specify your own comparison function.subGÂGiven a finite structure returns a tuple with three minimum elements and three maximum elements. Uses just two passes through the structure, so may be more efficient than some other approaches.subGA variant of the 4 where you can specify your own comparison function.(c) OleksandrZhabenko 2020MITolexandr543@yahoo.com Experimental Safe-Inferred!d subGÃGiven a finite structure returns a tuple with two minimum elements and three maximum elements. Uses just three passes through the structure, so may be more efficient than some other approaches.!subGA variant of the  4 where you can specify your own comparison function."subGÂGiven a finite structure returns a tuple with three minimum elements and two maximum elements. Uses just three passes through the structure, so may be more efficient than some other approaches.#subGA variant of the "4 where you can specify your own comparison function.$subGÄGiven a finite structure returns a tuple with three minimum elements and three maximum elements. Uses just three passes through the structure, so may be more efficient than some other approaches.%subGA variant of the $4 where you can specify your own comparison function. !"#$% !"#$%(c) OleksandrZhabenko 2020MITolexandr543@yahoo.com Experimental Safe-Inferred&v&subGåFinds out the minimum and maximum values of the finite structure that has not less than two elements.'subGA generalized variant of the minMax4 where you can specify your own comparison function.(subGóGiven a finite structure returns a tuple with the two most minimum elements (the first one is less than the second one) and the maximum element. Uses just two passes through the structure, so may be more efficient than some other approaches.)subGA variant of the (4 where you can specify your own comparison function.*subGêGiven a finite structure returns a tuple with the minimum element and two maximum elements (the first one is less than the second one). Uses just two passes through the structure, so may be more efficient than some other approaches.+subGA variant of the *4 where you can specify your own comparison function.,subG¾Given a finite structure returns a tuple with two minimum elements and two maximum elements. Uses just two passes through the structure, so may be more efficient than some other approaches.-subGA variant of the ,4 where you can specify your own comparison function.&'()*+,-&'()*+,-(c) OleksandrZhabenko 2020MITolexandr543@yahoo.com Experimental Safe-Inferred.• .subG¼Returns a pair where the first element is the minimum element from the two given ones and the second one is the maximum. If the arguments are equal then the tuple contains equal elements./subGA variant of the .4 where you can specify your own comparison function.0subGþA ternary predicate to check whether the third argument lies between the first two unequal ones or whether they are all equal.1subGA variant of the 04 where you can specify your own comparison function.2subGøFinds out the minimum and maximum values of the finite structure that has not less than two elements. Otherwise returns =.3subGA generalized variant of the 24 where you can specify your own comparison function.4subG×Given a finite structure with at least 3 elements returns a tuple with the two most minimum elements (the first one is less than the second one) and the maximum element. If the structure has less elements, returns =å. Uses just three passes through the structure, so may be more efficient than some other approaches.5subGA variant of the 44 where you can specify your own comparison function.6subGÎGiven a finite structure with at least 3 elements returns a tuple with the minimum element and two maximum elements (the first one is less than the second one). If the structure has less elements, returns =å. Uses just three passes through the structure, so may be more efficient than some other approaches.7subGA variant of the 64 where you can specify your own comparison function.8subG£Given a finite structure with at least 4 elements returns a tuple with two minimum elements and two maximum elements. If the structure has less elements, returns =å. Uses just three passes through the structure, so may be more efficient than some other approaches.9subGA variant of the 84 where you can specify your own comparison function. ./0123456789 ./0123456789À      !"#$%&'()*+,-./0123456789:;<=>?@AB@CD@EF@GH@CI@JKÌ#subG-0.4.2.0-3UJ3imaAimzI1CQytNVtWt Data.SubGData.MinMax3Plus.PreconditionsData.MinMax3PlusData.MinMax.Preconditions Data.MinMax InsertLeft%@%^subG dropWhilespan takeWhile preAppend takeFromEndGreverseTakeFromEndG reverseTakeGtakeG reverseDropG dropFromEndGreverseDropFromEndGdropGsplitAtG splitAtEndG safeHeadG safeTailG safeInitG safeLastGmapGfilterG partitionG$fInsertLeft[]a minMax23C minMax23ByC minMax32C minMax32ByC minMax33C minMax33ByCminMax23 minMax23ByminMax32 minMax32ByminMax33 minMax33By minMax11C minMax11ByC minMax21C minMax21ByC minMax12C minMax12ByC minMax22C minMax22ByCminmaxP minmaxPBy betweenNX betweenNXByminMax11 minMax11ByminMax21 minMax21ByminMax12 minMax12ByminMax22 minMax22Bybase Data.FoldableFoldableGHC.BaseMonoid Data.OldListwords GHC.MaybeNothingmapGHC.Listfilter