diff --git a/git-mediate.cabal b/git-mediate.cabal
--- a/git-mediate.cabal
+++ b/git-mediate.cabal
@@ -2,7 +2,7 @@
 -- further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                git-mediate
-version:             1.0.8
+version:             1.0.8.1
 synopsis:            Tool to help resolving git conflicts
 description:         Git conflict resolution has never been easier
                      .
@@ -72,7 +72,7 @@
   ghc-options:         -O2 -Wall
   -- other-extensions:
   build-depends:       base >=4.8 && <5
-                     , base-compat >= 0.8.2 && < 0.11
+                     , base-compat >= 0.8.2
                      , mtl >=2.1
                      , directory >=1.2
                      , process >=1.2
@@ -80,6 +80,6 @@
                      , unix-compat >=0.4.2.0
                      , Diff >=0.4
                      , ansi-terminal >=0.6.2
-                     , optparse-applicative >=0.11 && <0.15
+                     , optparse-applicative >=0.11
   hs-source-dirs:      src
   default-language:    Haskell2010
diff --git a/src/Conflict.hs b/src/Conflict.hs
--- a/src/Conflict.hs
+++ b/src/Conflict.hs
@@ -2,7 +2,7 @@
 
 module Conflict
     ( Conflict(..), LineNo
-    , bodyStrings, setBodyStrings
+    , bodies, setBodies, bodyStrings, setBodyStrings
     , pretty, prettyLines
     , parse
     , markerPrefix
@@ -28,14 +28,20 @@
     } deriving (Show)
 
 -- traversal
-bodyStrings :: Applicative f => (String -> f String) -> Conflict -> f Conflict
-bodyStrings f c@Conflict{..} =
-    mk <$> traverse f cBodyA <*> traverse f cBodyBase <*> traverse f cBodyB
+bodies :: Applicative f => ([String] -> f [String]) -> Conflict -> f Conflict
+bodies f c@Conflict{..} =
+    mk <$> f cBodyA <*> f cBodyBase <*> f cBodyB
     where
         mk bodyA bodyBase bodyB =
             c{cBodyA=bodyA, cBodyBase=bodyBase, cBodyB=bodyB}
 
+bodyStrings :: Applicative f => (String -> f String) -> Conflict -> f Conflict
+bodyStrings = bodies . traverse
+
 -- setter:
+setBodies :: ([String] -> [String]) -> Conflict -> Conflict
+setBodies f = runIdentity . bodies (Identity . f)
+
 setBodyStrings :: (String -> String) -> Conflict -> Conflict
 setBodyStrings f = runIdentity . bodyStrings (Identity . f)
 
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -1,9 +1,9 @@
-{-# LANGUAGE NoImplicitPrelude, LambdaCase #-}
+{-# LANGUAGE NoImplicitPrelude #-}
 
 module Main (main) where
 
 import           Conflict (Conflict(..))
-import qualified Conflict as Conflict
+import qualified Conflict
 import qualified Control.Exception as E
 import           Control.Monad (when, unless, filterM)
 import           Data.Foldable (asum, traverse_)
@@ -14,7 +14,7 @@
 import           Opts (Options(..))
 import           PPDiff (ppDiff, ColorEnable(..))
 import           Resolution (Result(..), NewContent(..), Untabify(..))
-import qualified Resolution as Resolution
+import qualified Resolution
 import           SideDiff (getConflictDiffs, getConflictDiff2s)
 import           StrUtils (ensureNewline, stripNewline, unprefix)
 import           System.Directory (renameFile, removeFile, getCurrentDirectory)
@@ -243,10 +243,7 @@
 main :: IO ()
 main =
   do  opts <- Opts.getOpts
-      colorEnable <-
-          case shouldUseColor opts of
-              Nothing -> shouldUseColorByTerminal
-              Just colorEnable -> return colorEnable
+      colorEnable <- maybe shouldUseColorByTerminal return (shouldUseColor opts)
       checkConflictStyle opts
       case mergeSpecificFile opts of
           Nothing -> mediateAll colorEnable opts
diff --git a/src/Opts.hs b/src/Opts.hs
--- a/src/Opts.hs
+++ b/src/Opts.hs
@@ -7,7 +7,6 @@
     ) where
 
 import           Control.Applicative (Alternative(..))
-import           Data.Monoid ((<>))
 import qualified Options.Applicative as O
 import           PPDiff (ColorEnable(..))
 import           System.Exit (exitSuccess)
diff --git a/src/Resolution.hs b/src/Resolution.hs
--- a/src/Resolution.hs
+++ b/src/Resolution.hs
@@ -9,8 +9,7 @@
     ) where
 
 import           Conflict (Conflict(..))
-import qualified Conflict as Conflict
-import qualified Data.Monoid as Monoid
+import qualified Conflict
 
 import           Prelude.Compat
 
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,6 +1,4 @@
 flags: {}
 packages:
 - '.'
-extra-deps:
-- Diff-0.4.0
-resolver: lts-14.6
+resolver: lts-16.0
