@@ -419,45 +419,80 @@ unzip =
419419
420420main :: IO ()
421421main = hspec $
422− describe "Fold s" $ do
423− prop "RollingHashFirstN" rollingHashFirstN
424− prop "Index" index
425− prop "Head" head
426− prop "Last" last
427− prop "Length" Main.length
428− prop "Sum" sum
429− prop "Product" product
430− prop "MaximumBy" $ maximumBy intMin compare
431− prop "Maximum" $ maximum intMin
432− prop "MinimumBy" $ minimumBy intMax compare
433− prop "Minimum" $ minimum intMax
434− prop "ToList" toList
435− prop "Find" $ find predicate
436− prop "FindIndex" $ findIndex predicate
437− prop "ElemIndex" $ elemIndex 10
438− prop "Null" null
439− prop "Elem" $ elem 10
440− prop "NotElem" $ notElem 10
441− prop "All" $ Main.all predicate
442− prop "Any" $ Main.any predicate
443− prop "And" Main.and
444− prop "Or" Main.or
445− prop "mapMaybe" mapMaybe
446− prop "take" take
447− prop "takeEndBy_" takeEndBy_
448− prop "takeEndByOrMax" takeEndByOrMax
422+ describe "Fold" $ do
423+ -- Folds
424+ -- Accumulators
425+ prop "mconcat" Main.mconcat
426+ prop "foldMap" Main.foldMap
427+ prop "foldMapM" Main.foldMapM
428+
449429 prop "drain" Main.drain
450430 prop "drainBy" Main.drainBy
431+ prop "last" last
432+ prop "length" Main.length
433+ prop "sum" sum
434+ prop "product" product
435+ prop "maximumBy" $ maximumBy intMin compare
436+ prop "maximum" $ maximum intMin
437+ prop "minimumBy" $ minimumBy intMax compare
438+ prop "minimum" $ minimum intMax
451439 prop "mean" Main.mean
452440 prop "stdDev" Main.stdDev
453441 prop "variance" Main.variance
454− prop "mconcat" Main.mconcat
455− prop "foldMap" Main.foldMap
456− prop "foldMapM" Main.foldMapM
442+ prop "rollingHashFirstN" rollingHashFirstN
443+
444+ prop "toList" toList
445+
446+ -- Terminating folds
447+ prop "index" index
448+ prop "head" head
449+ prop "find" $ find predicate
457450 prop "lookup" Main.lookup
451+ prop "findIndex" $ findIndex predicate
452+ prop "elemIndex" $ elemIndex 10
453+ prop "null" null
454+ prop "elem" $ elem 10
455+ prop "notElem" $ notElem 10
456+ prop "all" $ Main.all predicate
457+ prop "any" $ Main.any predicate
458+ prop "and" Main.and
459+ prop "or" Main.or
460+
461+ -- Combinators
462+
463+ -- Transformation
464+ -- rsequence
465+ -- Functor instance
458466 prop "rmapM" Main.rmapM
467+ -- lmap/lmapM
468+
469+ -- Filtering
470+ -- filter/filterM
471+ -- catMaybes
472+ prop "mapMaybe" mapMaybe
473+
474+ -- Trimming
475+ prop "take" take
476+ -- takeEndBy
477+ prop "takeEndBy_" takeEndBy_
478+ prop "takeEndByOrMax" takeEndByOrMax
479+
480+ -- Appending
481+ -- serialWith
482+
483+ -- Distributing
484+ -- tee
459485 prop "teeWithLength" Main.teeWithLength
460486 prop "teeWithMax" Main.teeWithMax
461487 prop "distribute" Main.distribute
488+
489+ -- Partitioning
462490 prop "partition" Main.partition
491+
492+ -- Unzipping
463493 prop "unzip" Main.unzip
494+
495+ -- Nesting
496+ -- many
497+ -- concatMap
498+ -- chunksOf