Add Semigroup instance for 'Max' monoid

Otherwise ghc 8.4 will complain since Semigroup became a superclass
of Monoid.
pull/132/head
Sergey Vinokurov 2018-03-30 11:19:08 +01:00
parent b43ee43220
commit e9689394b1
No known key found for this signature in database
GPG Key ID: D6CD29530F98D6B8
3 changed files with 10 additions and 4 deletions

View File

@ -11,6 +11,7 @@ import qualified Language.Haskell.GHC.ExactPrint.Annotate as ExactPrint.Annotate
import qualified Language.Haskell.GHC.ExactPrint.Types as ExactPrint.Types import qualified Language.Haskell.GHC.ExactPrint.Types as ExactPrint.Types
import qualified Language.Haskell.GHC.ExactPrint.Parsers as ExactPrint.Parsers import qualified Language.Haskell.GHC.ExactPrint.Parsers as ExactPrint.Parsers
import qualified Data.Map as Map import qualified Data.Map as Map
import qualified Data.Monoid
import Text.Read (Read(..)) import Text.Read (Read(..))
import qualified Text.ParserCombinators.ReadP as ReadP import qualified Text.ParserCombinators.ReadP as ReadP
@ -148,7 +149,7 @@ mainCmdParser helpDesc = do
, PP.text "inplace: override respective input file (without backup!)" , PP.text "inplace: override respective input file (without backup!)"
] ]
) )
<> flagDefault Display Data.Monoid.<> flagDefault Display
) )
inputParams <- addParamNoFlagStrings "PATH" (paramHelpStr "paths to input/inout haskell source files") inputParams <- addParamNoFlagStrings "PATH" (paramHelpStr "paths to input/inout haskell source files")
reorderStop reorderStop

View File

@ -255,14 +255,16 @@ import Debug.Trace as E ( trace
import Foreign.ForeignPtr as E ( ForeignPtr import Foreign.ForeignPtr as E ( ForeignPtr
) )
import Data.Monoid as E ( (<>) import Data.Monoid as E ( mconcat
, mconcat
, Monoid (..) , Monoid (..)
) )
import Data.Bifunctor as E ( bimap ) import Data.Bifunctor as E ( bimap )
import Data.Functor as E ( (<$), ($>) ) import Data.Functor as E ( (<$), ($>) )
import Data.Function as E ( (&) ) import Data.Function as E ( (&) )
import Data.Semigroup as E ( (<>)
, Semigroup(..)
)
import System.IO as E ( hFlush import System.IO as E ( hFlush
, stdout , stdout
) )

View File

@ -84,9 +84,12 @@ fromOptionIdentity x y =
newtype Max a = Max { getMax :: a } newtype Max a = Max { getMax :: a }
deriving (Eq, Ord, Show, Bounded, Num) deriving (Eq, Ord, Show, Bounded, Num)
instance (Num a, Ord a) => Semigroup (Max a) where
(<>) = Data.Coerce.coerce (max :: a -> a -> a)
instance (Num a, Ord a) => Monoid (Max a) where instance (Num a, Ord a) => Monoid (Max a) where
mempty = Max 0 mempty = Max 0
mappend = Data.Coerce.coerce (max :: a -> a -> a) mappend = (<>)
newtype ShowIsId = ShowIsId String deriving Data newtype ShowIsId = ShowIsId String deriving Data