diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,8 @@
+1.7.6
+=====
+
+* Upgrade `universum` to version `0.9.1`. Add `Semigroup` instances.
+
 1.7.5
 =====
 
diff --git a/examples/HowTo.lhs b/examples/HowTo.lhs
--- a/examples/HowTo.lhs
+++ b/examples/HowTo.lhs
@@ -57,16 +57,16 @@
 There are two ways of configuring the logger you creating. One option
 is to configure everything directly in the code, which will make the process
 of writing code less convenient. Here we will use another configuration possibility
-— we will write configurations in special `.yaml` file.
+-- we will write configurations in special `.yaml` file.
 In our example we will use very simple one with the minimal settings needed for the file to work.
 You can have a look at [`how-to-log-config.yaml`](https://github.com/serokell/log-warper/blob/master/examples/how-to-log-config.yaml),
 it contains the following lines:
 
 ```yaml
 loggerTree:
-    severity: Warning+    # severities for «root» logger
-    new-logger:           # logger named «new-logger»
-        severity: Debug+  # severities for logger «new-logger»
+    severity: Warning+    # severities for "root" logger
+    new-logger:           # logger named "new-logger"
+        severity: Debug+  # severities for logger "new-logger"
 ```
 You don't need to worry about root logger for now. This part is explained in section devoted to hierarchical logging.
 
diff --git a/examples/HowTo.md b/examples/HowTo.md
--- a/examples/HowTo.md
+++ b/examples/HowTo.md
@@ -57,16 +57,16 @@
 There are two ways of configuring the logger you creating. One option
 is to configure everything directly in the code, which will make the process
 of writing code less convenient. Here we will use another configuration possibility
-— we will write configurations in special `.yaml` file.
+-- we will write configurations in special `.yaml` file.
 In our example we will use very simple one with the minimal settings needed for the file to work.
 You can have a look at [`how-to-log-config.yaml`](https://github.com/serokell/log-warper/blob/master/examples/how-to-log-config.yaml),
 it contains the following lines:
 
 ```yaml
 loggerTree:
-    severity: Warning+    # severities for «root» logger
-    new-logger:           # logger named «new-logger»
-        severity: Debug+  # severities for logger «new-logger»
+    severity: Warning+    # severities for "root" logger
+    new-logger:           # logger named "new-logger"
+        severity: Debug+  # severities for logger "new-logger"
 ```
 You don't need to worry about root logger for now. This part is explained in section devoted to hierarchical logging.
 
diff --git a/examples/Playground.hs b/examples/Playground.hs
--- a/examples/Playground.hs
+++ b/examples/Playground.hs
@@ -4,7 +4,6 @@
 
 import Universum
 
-import Data.Monoid ((<>))
 import Data.Yaml.Pretty (defConfig, encodePretty)
 
 import System.Wlog (CanLog, defaultConfig, launchFromFile, launchSimpleLogging, logDebug, logError,
diff --git a/log-warper.cabal b/log-warper.cabal
--- a/log-warper.cabal
+++ b/log-warper.cabal
@@ -1,5 +1,5 @@
 name:                log-warper
-version:             1.7.5
+version:             1.7.6
 synopsis:            Flexible, configurable, monadic and pretty logging
 homepage:            https://github.com/serokell/log-warper
 license:             MIT
diff --git a/src/System/Wlog/LoggerConfig.hs b/src/System/Wlog/LoggerConfig.hs
--- a/src/System/Wlog/LoggerConfig.hs
+++ b/src/System/Wlog/LoggerConfig.hs
@@ -129,6 +129,16 @@
 
 makeLenses ''LoggerTree
 
+instance Semigroup LoggerTree where
+    lt1 <> lt2 = LoggerTree
+        { _ltFiles      = andCombiner _ltFiles
+        , _ltSeverity   = orCombiner  _ltSeverity
+        , _ltSubloggers = andCombiner _ltSubloggers
+        }
+      where
+        orCombiner  field = field lt1 <|> field lt2
+        andCombiner field = field lt1  <> field lt2
+
 -- TODO: QuickCheck tests on monoid laws
 instance Monoid LoggerTree where
     mempty = LoggerTree
@@ -137,11 +147,7 @@
         , _ltSubloggers = mempty
         }
 
-    lt1 `mappend` lt2 = LoggerTree
-        { _ltFiles      = _ltFiles      lt1 <>  _ltFiles      lt2
-        , _ltSeverity   = _ltSeverity   lt1 <|> _ltSeverity   lt2
-        , _ltSubloggers = _ltSubloggers lt1 <>  _ltSubloggers lt2
-        }
+    mappend = (<>)
 
 instance ToJSON HandlerWrap
 instance FromJSON HandlerWrap where
@@ -241,6 +247,22 @@
 
 makeLenses ''LoggerConfig
 
+instance Semigroup LoggerConfig where
+    lc1 <> lc2 = LoggerConfig
+        { _lcRotation        = orCombiner  _lcRotation
+        , _lcTermSeverityOut = orCombiner  _lcTermSeverityOut
+        , _lcTermSeverityErr = orCombiner  _lcTermSeverityErr
+        , _lcShowTime        = andCombiner _lcShowTime
+        , _lcShowTid         = andCombiner _lcShowTid
+        , _lcConsoleAction   = andCombiner _lcConsoleAction
+        , _lcMapper          = andCombiner _lcMapper
+        , _lcTree            = andCombiner _lcTree
+        }
+      where
+        orCombiner  field = field lc1 <|> field lc2
+        andCombiner field = field lc1  <> field lc2
+
+
 -- TODO: QuickCheck tests on monoid laws
 instance Monoid LoggerConfig where
     mempty = LoggerConfig
@@ -254,19 +276,7 @@
         , _lcTree            = mempty
         }
 
-    lc1 `mappend` lc2 = LoggerConfig
-        { _lcRotation        = orCombiner  _lcRotation
-        , _lcTermSeverityOut = orCombiner  _lcTermSeverityOut
-        , _lcTermSeverityErr = orCombiner  _lcTermSeverityErr
-        , _lcShowTime        = andCombiner _lcShowTime
-        , _lcShowTid         = andCombiner _lcShowTid
-        , _lcConsoleAction   = andCombiner _lcConsoleAction
-        , _lcMapper          = andCombiner _lcMapper
-        , _lcTree            = andCombiner _lcTree
-        }
-      where
-        orCombiner  field = field lc1 <|> field lc2
-        andCombiner field = field lc1  <> field lc2
+    mappend = (<>)
 
 instance FromJSON LoggerConfig where
     parseJSON = withObject "rotation params" $ \o -> do
