diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,24 +1,32 @@
 language: c
 
 sudo: false
-cache:
-  directories:
-  - $HOME/.stack/
 
-matrix:
-  include:
-    - env: CABALVER=1.22 GHCVER=7.10.3
-      addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3],sources: [hvr-ghc]}}
+addons:
+  apt:
+    sources:
+    - hvr-ghc
+    packages:
+    - ghc-8.2.2
+    - genisoimage
 
 before_install:
-  - mkdir -p ~/.local/bin
-  - export PATH=~/.local/bin:$PATH
-  - travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar -xzO --wildcards '*/stack' > ~/.local/bin/stack
-  - chmod a+x ~/.local/bin/stack
+ - mkdir -p ~/.local/bin
+ - travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
+ - export PATH=~/.local/bin:/opt/ghc/$GHCVER/bin:$PATH
+ - chmod a+x ~/.local/bin/stack
 
 install:
-  - stack -j 2 setup --no-terminal
-  - stack -j 2 build --only-snapshot --no-terminal
+  - stack --no-terminal --skip-ghc-check setup
 
 script:
-  - stack -j 2 build --no-terminal
+  - stack --no-terminal --skip-ghc-check build
+  - stack --no-terminal --skip-ghc-check test
+  - stack --no-terminal --skip-ghc-check haddock
+
+cache:
+  directories:
+  - ~/.stack
+  - ~/.local
+  - ~/.stack-work-cache
+  apt: true
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # B9 - A Benign VM-Build Tool
 
-[![Build Status](https://travis-ci.org/sheyll/b9-vm-image-builder.svg?branch=0.5)](https://travis-ci.org/sheyll/b9-vm-image-builder) [![Hackage](https://img.shields.io/badge/hackage-B9-green.svg?style=flat)](http://hackage.haskell.org/package/b9) [![b9 LTS](http://stackage.org/package/b9/badge/lts)](http://stackage.org/lts/package/b9) [![b9 LTS 6](http://stackage.org/package/b9/badge/lts-6)](http://stackage.org/lts-6/package/b9) [![b9 LTS 5](http://stackage.org/package/b9/badge/lts-5)](http://stackage.org/lts-5/package/b9)
+[![Build Status](https://travis-ci.org/sheyll/b9-vm-image-builder.svg?branch=0.5)](https://travis-ci.org/sheyll/b9-vm-image-builder) [![Hackage](https://img.shields.io/badge/hackage-B9-green.svg?style=flat)](http://hackage.haskell.org/package/b9) [![b9 LTS](http://stackage.org/package/b9/badge/lts)](http://stackage.org/lts/package/b9)
 
 Use B9 to compile your software into a deployable set of Linux-VM- or
 configuration images, from a set of scripts and input files and templates
@@ -39,7 +39,7 @@
 B9 creates bootable virtual machine images, without necessarily using
 virtualization itself.
 
-In essence B9 is a tool for *creation*, *configuration* and *sharing* of VM images and
+In essence B9 is a tool for _creation_, _configuration_ and _sharing_ of VM images and
 all peripheral artifacts, it creates:
 
 * VMDK/QCOW2/Raw VM images
@@ -91,8 +91,8 @@
 
 To build B9 first install:
 
-*  `ghc` version 7.6 or higher
-*  `cabal-install` version 1.16 or higher
+* `ghc` version 7.6 or higher
+* `cabal-install` version 1.16 or higher
 
 B9 uses stackage and cabal sandboxes. The build result can be found in
 `.cabal-sandbox/bin/`. To run a complete fresh build, execute:
@@ -112,7 +112,6 @@
 
     ./build_and_test.sh
 
-
 ## Installation
 
 To be able to use B9 install
@@ -165,7 +164,6 @@
 
     b9c <global-options> <command> <command-options> -- <build-script-extra-args>
 
-
 To enable B9 to work correctly on your machine edit the config file and make
 necessary adaptions.
 
@@ -221,21 +219,20 @@
 ## Creating artifacts
 
 To get any _real_ artifact out of an artifact generator use the `Artifact`
-constructor. It takes *2* parameters an arbitrary id and a describtion of what
+constructor. It takes _2_ parameters an arbitrary id and a describtion of what
 the artifact consists of:
 
      Artifact (IID "some_instance_id")
               (VmImages ... | CloudInit ...)
 
 An artifact can either be a (set of) VM-disk-image(s) likely in combination
-with some shell script to install software, etc *or* a static collection of
+with some shell script to install software, etc _or_ a static collection of
 files put on a cloud-init image(VFAT or ISO or directory).
 
 ### Defining artifact generators that produce vm image files
 
 To produce vm image files, e.g. with some software installed use the `VmImages`
-artifact generator. It has only *2* parameters:
-
+artifact generator. It has only _2_ parameters:
 
      VmImages
         [ ... disk image targets ... ]
@@ -265,6 +262,7 @@
 
 B9 supports `$varnam` variable interpolation in all strings anywhere in an
 `ArtifactGenerator`:
+
 * All filenames and paths
 * All id strings and names
 * Template files included via e.g. `Template`
@@ -280,7 +278,7 @@
     b9c -v build -f file1.b9 .. -- arg_1 arg_2 ...
 
 The parameters are bound to `${arg_1}`, `${arg_2}`, that is variables indicating
-the corresponding *position* on the command line.
+the corresponding _position_ on the command line.
 
 To define variables using `Let`, write:
 
@@ -294,9 +292,9 @@
 on parens seperated by a `,` (comma). The left string is the key, and the right
 string is the value.
 
-This `("webserver", "www.${domainname}")` is an example to show that the *value*
+This `("webserver", "www.${domainname}")` is an example to show that the _value_
 may also contain a variable reference. (Of course, only to variabled defined
-*before*)
+_before_)
 
 ## Anger-Management
 
@@ -325,7 +323,6 @@
 B9 code loaded and try to paste the contents of the config file to see if ghci
 accepts it. Use the ghci macros `:{` and `:}` to begin and end a multi-line input
 and paste the raw contents of the config file in question in between.
-
 
     $ cabal install
     $ cabal repl
diff --git a/b9.cabal b/b9.cabal
--- a/b9.cabal
+++ b/b9.cabal
@@ -1,5 +1,5 @@
 name:                b9
-version:             0.5.35
+version:             0.5.41
 
 synopsis:            A tool and library for building virtual machine images.
 
@@ -45,12 +45,10 @@
 maintainer:          svh@posteo.de
 homepage:            https://github.com/sheyll/b9-vm-image-builder
 bug-reports:         https://github.com/sheyll/b9-vm-image-builder/issues
-copyright:           2015, 2016, 2017 Sven Heyll <svh@posteo.de>
+copyright:           2015, 2016, 2017, 2018 Sven Heyll <svh@posteo.de>
 category:            Development
 build-type:          Simple
 extra-source-files:  README.md
-                   , build_and_test.sh
-                   , build_haddock.sh
                    , LICENSE
                    , TODO.org
                    , Setup.hs
@@ -58,7 +56,9 @@
                    , .gitignore
                    , prepare_release.sh
                    , stack.yaml
-                   , stack-lts-5.14.yaml
+                   , stack-lts-9.4.yaml
+                   , stack-lts-11.0.yaml
+                   , stack-nightly-2018-03-16.yaml
                    , .travis.yml
                    , CONTRIBUTORS
 cabal-version:       >=1.22
@@ -96,7 +96,7 @@
                    , B9.DSL
   other-modules:   Paths_b9
   -- other-extensions:
-  build-depends:     ConfigFile >= 1.1
+  build-depends:     ConfigFile >= 1.1.4
                    , QuickCheck >= 2.5
                    , aeson >= 1.0
                    , async >= 2.1
@@ -116,7 +116,6 @@
                    , pretty >= 1.1
                    , process >= 1.4
                    , random >= 1.1
-                   , semigroups >= 0.18
                    , syb >= 0.6
                    , template >= 0.2
                    , text >= 1.2
@@ -127,6 +126,9 @@
                    , bifunctors >= 5.4
                    , free >= 4.12
                    , boxes >= 0.1.4
+  if !impl(ghc >= 8.0)
+    build-depends: semigroups >= 0.18
+
   default-extensions: TupleSections
                     , GeneralizedNewtypeDeriving
                     , DeriveDataTypeable
@@ -145,12 +147,10 @@
   default-language:  Haskell2010
   ghc-options:       -Wall
                      -fwarn-unused-binds -fno-warn-unused-do-bind
-  if impl(ghc >= 7.8.2) && impl(ghc <= 7.10)
-     ghc-options: -fno-warn-amp
 
 executable b9c
   main-is:           Main.hs
-  -- other-modules:
+  other-modules:     Paths_b9
   -- other-extensions:
   build-depends:     b9
                    , base >= 4.8 && < 5
@@ -173,8 +173,6 @@
                     , CPP
   ghc-options:       -threaded -with-rtsopts=-N -Wall
                      -fwarn-unused-binds -fno-warn-unused-do-bind
-  if impl(ghc >= 7.8.2) && impl(ghc <= 7.10)
-     ghc-options: -fno-warn-amp
 
 test-suite spec
   type:              exitcode-stdio-1.0
@@ -187,9 +185,10 @@
                    , B9.Content.YamlObjectSpec
                    , B9.ArtifactGeneratorImplSpec
                    , B9.DiskImagesSpec
+                   , Paths_b9
   build-depends:     base >= 4.8 && < 5
                    , b9
-                   , hspec 
+                   , hspec
                    , hspec-expectations
                    , QuickCheck >= 2.5
                    , aeson >= 1.0
@@ -198,7 +197,8 @@
                    , unordered-containers >= 0.2
                    , bytestring >= 0.10
                    , text >= 1.2
-                   , semigroups
+  if !impl(ghc >= 8.0)
+    build-depends: semigroups >= 0.18
   default-extensions: TupleSections
                     , GeneralizedNewtypeDeriving
                     , DeriveDataTypeable
@@ -211,5 +211,3 @@
                     , DeriveFunctor
                     , TemplateHaskell
                     , CPP
-  if impl(ghc >= 7.8.2) && impl(ghc <= 7.10)
-     ghc-options: -fno-warn-amp -fno-warn-unused-do-bind
diff --git a/build_and_test.sh b/build_and_test.sh
deleted file mode 100644
--- a/build_and_test.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-#
-# Install dependencies and enable test compilation, then rebuild the sources and
-# run all tests.
-#
-set -exu
-
-cabal install -j --enable-tests --dependencies-only
-cabal configure --enable-tests --disable-optimization
-cabal build
-./dist/build/spec/spec
diff --git a/build_haddock.sh b/build_haddock.sh
deleted file mode 100644
--- a/build_haddock.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-#
-# Create a HTML version of B9 code documentation using haddock.
-#
-set -xeu
-
-cabal haddock
diff --git a/src/cli/Main.hs b/src/cli/Main.hs
--- a/src/cli/Main.hs
+++ b/src/cli/Main.hs
@@ -10,10 +10,6 @@
 import Paths_b9
 import System.Directory
 import System.IO.Error                 hiding (isDoesNotExistErrorType)
-#if !MIN_VERSION_base(4,8,0)
-import System.IO.Error                 hiding (catch)
-import Prelude                         hiding (catch)
-#endif
 import B9
 
 main :: IO ()
diff --git a/src/lib/B9/ArtifactGenerator.hs b/src/lib/B9/ArtifactGenerator.hs
--- a/src/lib/B9/ArtifactGenerator.hs
+++ b/src/lib/B9/ArtifactGenerator.hs
@@ -15,10 +15,7 @@
 import Data.Data
 import Data.Hashable
 import GHC.Generics (Generic)
-#if !MIN_VERSION_base(4,8,0)
-import Data.Monoid
-import Control.Applicative
-#endif
+import Data.Semigroup as Sem
 import System.FilePath ((<.>), (</>))
 
 import B9.DiskImages
@@ -126,11 +123,14 @@
 instance Binary ArtifactGenerator
 instance NFData ArtifactGenerator
 
+instance Sem.Semigroup ArtifactGenerator where
+    (Let [] []) <> x = x
+    x <> (Let [] []) = x
+    x <> y = Let [] [x, y]
+
 instance Monoid ArtifactGenerator where
     mempty = Let [] []
-    (Let [] []) `mappend` x = x
-    x `mappend` (Let [] []) = x
-    x `mappend` y = Let [] [x, y]
+    mappend = (Sem.<>)
 
 -- | Describe how input files for artifacts to build are obtained.  The general
 --   structure of each constructor is __FromXXX__ /destination/ /source/
diff --git a/src/lib/B9/B9Config.hs b/src/lib/B9/B9Config.hs
--- a/src/lib/B9/B9Config.hs
+++ b/src/lib/B9/B9Config.hs
@@ -23,9 +23,7 @@
 import Control.Monad.IO.Class
 import System.Directory
 import Text.Printf
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative
-#endif
+import qualified Data.Semigroup as Sem
 import Data.Monoid
 
 import B9.ConfigUtils
@@ -50,23 +48,25 @@
                          , interactive :: Bool
                          } deriving (Show)
 
+instance Sem.Semigroup B9Config where
+  c <> c' =
+      B9Config { verbosity = getLast $ on mappend (Last . verbosity) c c'
+      , logFile = getLast $ on mappend (Last . logFile) c c'
+      , buildDirRoot = getLast $ on mappend (Last . buildDirRoot) c c'
+      , keepTempDirs = getAny $ on mappend (Any . keepTempDirs) c c'
+      , execEnvType = LibVirtLXC
+      , profileFile = getLast $ on mappend (Last . profileFile) c c'
+      , envVars = on mappend envVars c c'
+      , uniqueBuildDirs = getAll ((mappend `on` (All . uniqueBuildDirs)) c c')
+      , repositoryCache = getLast $ on mappend (Last . repositoryCache) c c'
+      , repository = getLast ((mappend `on` (Last . repository)) c c')
+      , interactive = getAny ((mappend `on` (Any . interactive)) c c')
+      }
 
 instance Monoid B9Config where
+  mappend = (Sem.<>)
   mempty = B9Config Nothing Nothing Nothing False LibVirtLXC Nothing [] True
                     Nothing Nothing False
-  mappend c c' =
-    B9Config { verbosity = getLast $ on mappend (Last . verbosity) c c'
-             , logFile = getLast $ on mappend (Last . logFile) c c'
-             , buildDirRoot = getLast $ on mappend (Last . buildDirRoot) c c'
-             , keepTempDirs = getAny $ on mappend (Any . keepTempDirs) c c'
-             , execEnvType = LibVirtLXC
-             , profileFile = getLast $ on mappend (Last . profileFile) c c'
-             , envVars = on mappend envVars c c'
-             , uniqueBuildDirs = getAll ((mappend `on` (All . uniqueBuildDirs)) c c')
-             , repositoryCache = getLast $ on mappend (Last . repositoryCache) c c'
-             , repository = getLast ((mappend `on` (Last . repository)) c c')
-             , interactive = getAny ((mappend `on` (Any . interactive)) c c')
-             }
 
 defaultB9Config :: B9Config
 defaultB9Config = B9Config { verbosity = Just LogInfo
diff --git a/src/lib/B9/Builder.hs b/src/lib/B9/Builder.hs
--- a/src/lib/B9/Builder.hs
+++ b/src/lib/B9/Builder.hs
@@ -24,7 +24,7 @@
 import B9.Content.YamlObject as X
 import B9.Content.Generator as X
 
-import Data.Monoid
+import Data.Semigroup as Sem
 import Text.Printf ( printf )
 import Text.Show.Pretty (ppShow)
 import Control.Monad.IO.Class
@@ -51,5 +51,5 @@
       putStrLn (printf "B9 Failed to start: %s" e)
       return False
     Right parsedCfg ->
-      let cfg = defaultB9Config <> parsedCfg <> cliCfg
+      let cfg = defaultB9Config Sem.<> parsedCfg Sem.<> cliCfg
           in f cfg
diff --git a/src/lib/B9/Content/AST.hs b/src/lib/B9/Content/AST.hs
--- a/src/lib/B9/Content/AST.hs
+++ b/src/lib/B9/Content/AST.hs
@@ -27,23 +27,17 @@
 import qualified Data.ByteString as B
 import           Data.Data
 import           Data.Hashable
-import           Data.Semigroup
+import           Data.Semigroup as Sem
 import           GHC.Generics (Generic)
-#if !MIN_VERSION_base(4,8,0)
-import           Control.Applicative
-#endif
-
 import           Control.Monad.Reader
-
 import           B9.Content.StringTemplate
 import           B9.B9Monad(B9)
-
 import           Test.QuickCheck
 import           B9.QCUtil
 
 -- | Types of values that can be parsed/rendered from/to 'ByteString's. This
 -- class is used as basis for the 'ASTish' class.
-class (Semigroup a) => ConcatableSyntax a  where
+class (Sem.Semigroup a) => ConcatableSyntax a  where
     -- Parse a bytestring into an 'a', and return @Left errorMessage@ or @Right a@
     decodeSyntax
         :: FilePath -- ^ An arbitrary string for error messages that
diff --git a/src/lib/B9/Content/ErlangPropList.hs b/src/lib/B9/Content/ErlangPropList.hs
--- a/src/lib/B9/Content/ErlangPropList.hs
+++ b/src/lib/B9/Content/ErlangPropList.hs
@@ -9,13 +9,12 @@
 import           Data.Function
 import           Data.Hashable
 import           Data.List (partition,sortBy)
+#if !MIN_VERSION_base(4,11,0)
 import           Data.Semigroup
+#endif
 import qualified Data.Text as T
 import qualified Data.Text.Encoding as E
 import           GHC.Generics (Generic)
-#if !MIN_VERSION_base(4,8,0)
-import           Control.Applicative
-#endif
 import           Text.Printf
 
 import           B9.Content.ErlTerms
@@ -39,7 +38,6 @@
   arbitrary = ErlangPropList <$> arbitrary
 
 instance Semigroup ErlangPropList where
-
   (ErlangPropList v1) <> (ErlangPropList v2) = ErlangPropList (combine v1 v2)
     where
       combine (ErlList l1) (ErlList l2) =
diff --git a/src/lib/B9/Content/YamlObject.hs b/src/lib/B9/Content/YamlObject.hs
--- a/src/lib/B9/Content/YamlObject.hs
+++ b/src/lib/B9/Content/YamlObject.hs
@@ -129,3 +129,4 @@
 
 
 instance Arbitrary YamlObject where
+  arbitrary = pure (YamlObject Null)
diff --git a/src/lib/B9/DiskImages.hs b/src/lib/B9/DiskImages.hs
--- a/src/lib/B9/DiskImages.hs
+++ b/src/lib/B9/DiskImages.hs
@@ -4,15 +4,12 @@
 
 import           B9.QCUtil
 import           GHC.Generics (Generic)
-#if !MIN_VERSION_base(4,8,0)
-import           Control.Applicative
-#endif
 import           Control.Parallel.Strategies
 import           Data.Binary
 import           Data.Data
 import           Data.Hashable
 import           Data.Maybe
-import           Data.Semigroup
+import           Data.Semigroup as Sem
 import           System.FilePath
 import           Test.QuickCheck
 import qualified Text.PrettyPrint.Boxes as Boxes
@@ -200,7 +197,7 @@
 -- | Shared images are orderd by name, build date and build id
 instance Ord SharedImage where
   compare (SharedImage n d b _ _) (SharedImage n' d' b' _ _) =
-    compare n n' <> compare d d' <> compare b b'
+    compare n n' Sem.<> compare d d' Sem.<> compare b b'
 
 -- * Constroctor and accessors for 'Image' 'ImageTarget' 'ImageSource'
 -- 'ImageDestination' and 'SharedImage'
diff --git a/src/lib/B9/ExecEnv.hs b/src/lib/B9/ExecEnv.hs
--- a/src/lib/B9/ExecEnv.hs
+++ b/src/lib/B9/ExecEnv.hs
@@ -18,8 +18,7 @@
 import Data.Binary
 import Data.Data
 import Data.Hashable
-import Data.Monoid
-
+import Data.Semigroup as Sem
 import B9.DiskImages
 import GHC.Generics (Generic)
 
@@ -57,10 +56,12 @@
 instance Binary Resources
 instance NFData Resources
 
+instance Sem.Semigroup Resources where
+  (<>) (Resources m c a) (Resources m' c' a') = Resources (m <> m') (max c c') (a <> a')
+
 instance Monoid Resources where
     mempty = Resources mempty 1 mempty
-    mappend (Resources m c a) (Resources m' c' a') =
-        Resources (m <> m') (max c c') (a <> a')
+    mappend  = (Sem.<>)
 
 noResources :: Resources
 noResources = mempty
@@ -74,10 +75,13 @@
 instance Binary CPUArch
 instance NFData CPUArch
 
+instance Sem.Semigroup CPUArch where
+    I386 <> x = x
+    X86_64 <> _ = X86_64
+
 instance Monoid CPUArch where
     mempty = I386
-    I386 `mappend` x = x
-    X86_64 `mappend` _ = X86_64
+    mappend = (Sem.<>)
 
 data RamSize
     = RamSize Int
@@ -89,8 +93,11 @@
 instance Binary RamSize
 instance NFData RamSize
 
+instance Sem.Semigroup RamSize where
+    AutomaticRamSize <> x = x
+    x <> AutomaticRamSize = x
+    r <> r' = max r r'
+
 instance Monoid RamSize where
     mempty = AutomaticRamSize
-    AutomaticRamSize `mappend` x = x
-    x `mappend` AutomaticRamSize = x
-    r `mappend` r' = max r r'
+    mappend = (Sem.<>)
diff --git a/src/lib/B9/ShellScript.hs b/src/lib/B9/ShellScript.hs
--- a/src/lib/B9/ShellScript.hs
+++ b/src/lib/B9/ShellScript.hs
@@ -11,10 +11,7 @@
                       ) where
 
 import Data.Data
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative
-import Data.Monoid
-#endif
+import Data.Semigroup as Sem
 import Control.Parallel.Strategies
 import Data.Binary
 import Data.Hashable
@@ -44,14 +41,17 @@
 instance Binary Script
 instance NFData Script
 
+instance Sem.Semigroup Script where
+    NoOP <> s = s
+    s <> NoOP = s
+    (Begin ss) <> (Begin ss') = Begin (ss ++ ss')
+    (Begin ss) <> s' = Begin (ss ++ [s'])
+    s <> (Begin ss') = Begin (s : ss')
+    s <> s' = Begin [s, s']
+
 instance Monoid Script where
     mempty = NoOP
-    NoOP `mappend` s = s
-    s `mappend` NoOP = s
-    (Begin ss) `mappend` (Begin ss') = Begin (ss ++ ss')
-    (Begin ss) `mappend` s' = Begin (ss ++ [s'])
-    s `mappend` (Begin ss') = Begin (s : ss')
-    s `mappend` s' = Begin [s, s']
+    mappend = (Sem.<>)
 
 data Cmd =
     Cmd String
diff --git a/src/tests/B9/Content/ErlTermsSpec.hs b/src/tests/B9/Content/ErlTermsSpec.hs
--- a/src/tests/B9/Content/ErlTermsSpec.hs
+++ b/src/tests/B9/Content/ErlTermsSpec.hs
@@ -1,7 +1,6 @@
 {-# LANGUAGE OverloadedStrings #-}
 module B9.Content.ErlTermsSpec (spec) where
 
-import Control.Applicative
 import Data.List
 import Test.Hspec
 import Test.QuickCheck
diff --git a/src/tests/B9/Content/ErlangPropListSpec.hs b/src/tests/B9/Content/ErlangPropListSpec.hs
--- a/src/tests/B9/Content/ErlangPropListSpec.hs
+++ b/src/tests/B9/Content/ErlangPropListSpec.hs
@@ -1,13 +1,12 @@
 {-# LANGUAGE OverloadedStrings #-}
 module B9.Content.ErlangPropListSpec (spec) where
 
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative
-#endif
 import Data.List
 import Test.Hspec
 import Test.QuickCheck
+#if !MIN_VERSION_base(4,11,0)
 import Data.Semigroup
+#endif
 import Data.Text ()
 
 import B9.Content.ErlTerms
diff --git a/src/tests/B9/Content/YamlObjectSpec.hs b/src/tests/B9/Content/YamlObjectSpec.hs
--- a/src/tests/B9/Content/YamlObjectSpec.hs
+++ b/src/tests/B9/Content/YamlObjectSpec.hs
@@ -2,7 +2,9 @@
 module B9.Content.YamlObjectSpec (spec) where
 
 import Test.Hspec
+#if !MIN_VERSION_base(4,11,0)
 import Data.Semigroup
+#endif
 import Data.Text ()
 import Data.Yaml
 
diff --git a/stack-lts-11.0.yaml b/stack-lts-11.0.yaml
new file mode 100644
--- /dev/null
+++ b/stack-lts-11.0.yaml
@@ -0,0 +1,7 @@
+flags: {}
+packages:
+- '.'
+extra-deps: []
+resolver: lts-11.0
+allow-newer: true
+# pvp-bounds: lower
diff --git a/stack-lts-5.14.yaml b/stack-lts-5.14.yaml
deleted file mode 100644
--- a/stack-lts-5.14.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-flags: {}
-packages:
-- '.'
-extra-deps: []
-resolver: lts-5.14
diff --git a/stack-lts-9.4.yaml b/stack-lts-9.4.yaml
new file mode 100644
--- /dev/null
+++ b/stack-lts-9.4.yaml
@@ -0,0 +1,6 @@
+flags: {}
+packages:
+- '.'
+extra-deps: []
+resolver: lts-9.4
+# pvp-bounds: lower
diff --git a/stack-nightly-2018-03-16.yaml b/stack-nightly-2018-03-16.yaml
new file mode 100644
--- /dev/null
+++ b/stack-nightly-2018-03-16.yaml
@@ -0,0 +1,10 @@
+flags: {}
+packages:
+- '.'
+extra-deps:
+- ConfigFile-1.1.4
+- template-0.2.0.10
+
+resolver: nightly-2018-03-16
+allow-newer: true
+# pvp-bounds: lower
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -2,5 +2,6 @@
 packages:
 - '.'
 extra-deps: []
-resolver: lts-9.4
+resolver: lts-11.0
+allow-newer: true
 # pvp-bounds: lower
