1{-# LANGUAGE CPP, NoImplicitPrelude #-}
2-- | This backports the modern "Data.Semigroup" interface back to
3-- @base-4.9@/GHC 8.0.
4module Data.Semigroup.Compat (
5#if MIN_VERSION_base(4,9,0)
6    Semigroup(..)
7  , stimesMonoid
8  , stimesIdempotent
9  , stimesIdempotentMonoid
10  , mtimesDefault
11  -- * Semigroups
12  , Min(..)
13  , Max(..)
14  , First(..)
15  , Last(..)
16  , WrappedMonoid(..)
17  -- * Re-exported monoids from Data.Monoid
18  , Dual(..)
19  , Endo(..)
20  , All(..)
21  , Any(..)
22  , Sum(..)
23  , Product(..)
24  -- * A better monoid for Maybe
25  , Option(..)
26  , option
27  -- * Difference lists of a semigroup
28  , diff
29  , cycle1
30  -- * ArgMin, ArgMax
31  , Arg(..)
32  , ArgMin
33  , ArgMax
34#endif
35  ) where
36
37#if MIN_VERSION_base(4,9,0)
38import Data.Semigroup
39#endif
40