From 0fb7730b0c540c1be28cc18601a39cea50677eb7 Mon Sep 17 00:00:00 2001 From: Stephen Diehl Date: Mon, 12 Dec 2016 16:30:52 +0000 Subject: [PATCH] expand semigroup --- docs/Monoid.md | 14 ++++++++++++++ src/Protolude.hs | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/docs/Monoid.md b/docs/Monoid.md index 41c362487..c9aa00622 100644 --- a/docs/Monoid.md +++ b/docs/Monoid.md @@ -29,6 +29,17 @@ mconcat :: Monoid a => [a] -> a Semigroup --------- +```haskell +(<>) :: Semigroup a => a -> a -> a +``` + +```haskell +sconcat :: Semigroup a => NonEmpty a -> a +``` + +```haskell +stimes :: (Semigroup a, Integral b) => b -> a -> a +``` ```haskell option :: b -> (a -> b) -> Option a -> b @@ -57,3 +68,6 @@ stimesIdempotentMonoid :: (Integral b, Monoid a) => b -> a -> a ```haskell mtimesDefault :: (Integral b, Monoid a) => b -> a -> a ``` + +NonEmpty +--------- diff --git a/src/Protolude.hs b/src/Protolude.hs index 8f2805523..1cb87e2ad 100644 --- a/src/Protolude.hs +++ b/src/Protolude.hs @@ -103,6 +103,10 @@ import Data.Functor.Identity as X #if ( __GLASGOW_HASKELL__ >= 800 ) import Data.Monoid as X +import Data.List.NonEmpty as X ( + NonEmpty(..) + , nonEmpty + ) import Data.Semigroup as X ( Semigroup(sconcat, stimes) , WrappedMonoid