diff options
author | Christian Barcenas <christian@cbarcenas.com> | 2018-02-11 03:22:28 -0800 |
---|---|---|
committer | Jasper Van der Jeugt <jaspervdj@gmail.com> | 2018-03-13 15:17:22 +0100 |
commit | 000627c94a4d4aedb0a4216e781f6af65936ef9c (patch) | |
tree | 5e450aa70633a37b3fda41cf8aa3d0c77379b790 /lib/Hakyll/Web | |
parent | 157fef58b97527b05b0400ad98d9cbdd2a33a0f4 (diff) | |
download | hakyll-000627c94a4d4aedb0a4216e781f6af65936ef9c.tar.gz |
Add Semigroup instances for existing Monoids
Ensures forwards compatibility with future Haskell/GHC releases
as the Semigroup/Monoid Proposal is gradually implemented.
Closes #525 and #536.
Diffstat (limited to 'lib/Hakyll/Web')
-rw-r--r-- | lib/Hakyll/Web/Template/Context.hs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Hakyll/Web/Template/Context.hs b/lib/Hakyll/Web/Template/Context.hs index b6c7994..d570506 100644 --- a/lib/Hakyll/Web/Template/Context.hs +++ b/lib/Hakyll/Web/Template/Context.hs @@ -35,6 +35,9 @@ module Hakyll.Web.Template.Context import Control.Applicative (Alternative (..)) import Control.Monad (msum) import Data.List (intercalate) +#if MIN_VERSION_base(4,9,0) +import Data.Semigroup (Semigroup (..)) +#endif import Data.Time.Clock (UTCTime (..)) import Data.Time.Format (formatTime) import qualified Data.Time.Format as TF @@ -78,9 +81,18 @@ newtype Context a = Context -------------------------------------------------------------------------------- +#if MIN_VERSION_base(4,9,0) +instance Semigroup (Context a) where + (<>) (Context f) (Context g) = Context $ \k a i -> f k a i <|> g k a i + +instance Monoid (Context a) where + mempty = missingField + mappend = (<>) +#else instance Monoid (Context a) where mempty = missingField mappend (Context f) (Context g) = Context $ \k a i -> f k a i <|> g k a i +#endif -------------------------------------------------------------------------------- |