fannkuch-redux: Implement Semigroup along with Monoid
authorJoachim Breitner <mail@joachim-breitner.de>
Thu, 14 Sep 2017 20:41:58 +0000 (16:41 -0400)
committerJoachim Breitner <mail@joachim-breitner.de>
Thu, 14 Sep 2017 20:41:58 +0000 (16:41 -0400)
so that it builds with GHC-8.3 post 8ae263c.

shootout/fannkuch-redux/Main.hs

index d115350..b920e9f 100644 (file)
@@ -12,15 +12,17 @@ import Control.Concurrent
 import Control.Monad
 import System.Environment
 import Foreign hiding (rotate)
-import Data.Monoid
+import Data.Semigroup
 
 type Perm = Ptr Word8
 
 data F = F {-# UNPACK #-} !Int {-# UNPACK #-} !Int
 
+instance Semigroup F where
+       F s1 m1 <> F s2 m2 = F (s1 + s2) (max m1 m2)
+
 instance Monoid F where
        mempty = F 0 0
-       F s1 m1 `mappend` F s2 m2 = F (s1 + s2) (max m1 m2)
 
 incPtr = (`advancePtr` 1)
 decPtr = (`advancePtr` (-1))