summaryrefslogtreecommitdiff
path: root/lib/Hakyll/Core/Compiler
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Hakyll/Core/Compiler')
-rw-r--r--lib/Hakyll/Core/Compiler/Internal.hs14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/Hakyll/Core/Compiler/Internal.hs b/lib/Hakyll/Core/Compiler/Internal.hs
index 7b1df83..5b6d1aa 100644
--- a/lib/Hakyll/Core/Compiler/Internal.hs
+++ b/lib/Hakyll/Core/Compiler/Internal.hs
@@ -1,5 +1,6 @@
--------------------------------------------------------------------------------
-- | Internally used compiler module
+{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
@@ -32,6 +33,9 @@ import Control.Applicative (Alternative (..))
import Control.Exception (SomeException, handle)
import Control.Monad (forM_)
import Control.Monad.Except (MonadError (..))
+#if MIN_VERSION_base(4,9,0)
+import Data.Semigroup (Semigroup (..))
+#endif
import Data.Set (Set)
import qualified Data.Set as S
@@ -83,10 +87,20 @@ data CompilerWrite = CompilerWrite
--------------------------------------------------------------------------------
+#if MIN_VERSION_base(4,9,0)
+instance Semigroup CompilerWrite where
+ (<>) (CompilerWrite d1 h1) (CompilerWrite d2 h2) =
+ CompilerWrite (d1 ++ d2) (h1 + h2)
+
+instance Monoid CompilerWrite where
+ mempty = CompilerWrite [] 0
+ mappend = (<>)
+#else
instance Monoid CompilerWrite where
mempty = CompilerWrite [] 0
mappend (CompilerWrite d1 h1) (CompilerWrite d2 h2) =
CompilerWrite (d1 ++ d2) (h1 + h2)
+#endif
--------------------------------------------------------------------------------