merge_maybes (Just _) (Just y) = Just y
--- | The Monoid 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
+-- | The Semigroup instance for these lets us "combine" two
+-- configurations. 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
-- into one big one.
--
-- This is used to merge command-line and config-file settings.
--
-instance Monoid OptionalConfiguration where
- -- | An empty OptionalConfiguration.
- mempty = OptionalConfiguration
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
-
instance Semigroup OptionalConfiguration where
-- | Combine @cfg1@ and @cfg2@, giving precedence to @cfg2@.
cfg1 <> cfg2 =
(merge_maybes (username cfg1) (username cfg2))
+-- | The Monoid instance essentially only provides the "empty
+-- configuration."
+instance Monoid OptionalConfiguration where
+ -- | An empty OptionalConfiguration.
+ mempty = OptionalConfiguration
+ Nothing
+ Nothing
+ Nothing
+ Nothing
+ Nothing
+ Nothing
+ Nothing
+ Nothing
+ mappend = (<>)
+
+
-- | Obtain an OptionalConfiguration from mailbox-countrc in either
-- the global configuration directory or the user's home
-- directory. The one in $HOME is prefixed by a dot so that it is