on master help sign in
simplify the Semigroup instance of MaybeDefault
commit000f901a9389fb4038475730066cc681b080e48e authorWillem Van Onsem <vanonsem.willem@gmail.com> dateThu 10 Jun 2021, 22:52 (5 years ago) parentfa74b0a
2 files changed+30−9
src/Graphics/Vty/Attributes.hs+4−9 vty.cabal+26
src/Graphics/Vty/Attributes.hs+4−9
@@ -152,15 +152,10 @@ instance (NFData v) => NFData (MaybeDefault v) where
152152 rnf (SetTo v) = rnf v
153153
154154instance Eq v => Semigroup (MaybeDefault v) where
155− Default <> Default = Default
156− Default <> KeepCurrent = Default
157− Default <> SetTo v = SetTo v
158− KeepCurrent <> Default = Default
159− KeepCurrent <> KeepCurrent = KeepCurrent
160− KeepCurrent <> SetTo v = SetTo v
161− SetTo _v <> Default = Default
162− SetTo v <> KeepCurrent = SetTo v
163− SetTo _ <> SetTo v = SetTo v
155+ _ <> v@(SetTo _) = v
156+ x <> KeepCurrent = x
157+ Default <> _ = Default
158+ _ <> Default = Default
164159
165160instance Eq v => Monoid ( MaybeDefault v ) where
166161 mempty = KeepCurrent
vty.cabal+26
@@ -554,6 +554,32 @@ test-suite verify-color-mapping
554554 utf8-string >= 0.3 && < 1.1,
555555 vector >= 0.7
556556
557+test-suite verify-semigroup-maybedefault
558+ default-language: Haskell2010
559+ default-extensions: ScopedTypeVariables
560+
561+ type: detailed-0.9
562+
563+ hs-source-dirs: test
564+
565+ test-module: VerifyAttributes
566+
567+ other-modules: Verify
568+
569+ build-depends: vty,
570+ Cabal >= 1.20,
571+ QuickCheck >= 2.7,
572+ random >= 1.0 && < 1.3,
573+ base >= 4.8 && < 5,
574+ bytestring,
575+ containers,
576+ deepseq >= 1.1 && < 1.5,
577+ mtl >= 1.1.1.0 && < 2.3,
578+ text >= 0.11.3,
579+ unix,
580+ utf8-string >= 0.3 && < 1.1,
581+ vector >= 0.7
582+
557583
558584test-suite verify-utf8-width
559585 default-language: Haskell2010