merge_maybes (Just _) (Just y) = Just y
--- | The Monoid instance for these lets us "combine" two
+-- | The Semigroup instance for these lets us "combine" two
-- OptionalConfigurations. The "combine" operation that we'd like to
-- perform is, essentially, to mash them together. So if we have two
-- OptionalConfigurations, each half full, we could combine them
--
-- This is used to merge command-line and config-file settings.
--
-instance Monoid OptionalConfiguration where
- -- | An empty OptionalConfiguration.
- mempty = OptionalConfiguration
- Nothing
- Nothing
- (MxList [])
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
+instance Semigroup OptionalConfiguration where
-- | Combine @cfg1@ and @cfg2@, giving precedence to @cfg2@.
- cfg1 `mappend` cfg2 =
+ cfg1 <> cfg2 =
OptionalConfiguration
(merge_maybes (database cfg1) (database cfg2))
(merge_maybes (domain_query cfg1) (domain_query cfg2))
then cfg1
else cfg2
+-- | The Monoid instance essentially only provides the "empty
+-- configuration."
+instance Monoid OptionalConfiguration where
+ -- | An empty OptionalConfiguration.
+ mempty = OptionalConfiguration
+ Nothing
+ Nothing
+ (MxList [])
+ Nothing
+ Nothing
+ Nothing
+ Nothing
+ Nothing
+ mappend = (<>)
+
-- | Obtain an OptionalConfiguration from list-remote-forwardsrc in
-- either the global configuration directory or the user's home