diff --git a/examples/deploy/Deploy/Cmd.hs b/examples/deploy/Deploy/Cmd.hs
--- a/examples/deploy/Deploy/Cmd.hs
+++ b/examples/deploy/Deploy/Cmd.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE OverloadedStrings          #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 
 module Deploy.Cmd
     ( CtxCmd(..)
diff --git a/keystore.cabal b/keystore.cabal
--- a/keystore.cabal
+++ b/keystore.cabal
@@ -1,5 +1,5 @@
 Name:                   keystore
-Version:                0.8.1.0
+Version:                0.8.1.1
 Synopsis:               Managing stores of secret things
 Homepage:               http://github.com/cdornan/keystore
 Author:                 Chris Dornan
@@ -121,24 +121,18 @@
   See the bottom <https://github.com/cdornan/keystore#launch-instructions README>
   on GitHub home page for launch instructions for the deploy example.
 Data-files:
-    keystore.manifest
-    keystore783.manifest
+    stack.yaml
+    stack-8.6.yaml
     examples/deploy/zshenv/.zshrc
     examples/deploy/example-pwstore.dat
 
 
 Extra-source-files:     changelog
-Cabal-version:          >= 1.14
+Cabal-version:          >= 1.10
 
 Source-repository head
     type:               git
     location:           https://github.com/cdornan/keystore
-
-flag hpc
-    default: False
-
-flag stacktrace
-    default: False
 
 Library
     Hs-Source-Dirs:     src
diff --git a/keystore.manifest b/keystore.manifest
deleted file mode 100644
--- a/keystore.manifest
+++ /dev/null
@@ -1,73 +0,0 @@
-^=7.6.3
-Cabal-1.20.0.2
-MonadCatchIO-transformers-0.3.0.0
-QuickCheck-2.7.3
-aeson-0.6.2.1
-aeson-pretty-0.7
-ansi-terminal-0.6.1.1
-ansi-wl-pprint-0.6.7.1
-api-tools-0.4
-api-tools-0.4.0.1
-asn1-encoding-0.8.1.3
-asn1-types-0.2.3
-attoparsec-0.11.2.1
-base64-bytestring-1.0.0.1
-bifunctors-4.1.1.1
-blaze-builder-0.3.3.2
-byteable-0.1.1
-bytedump-1.0
-case-insensitive-1.1.0.3
-cereal-0.4.0.1
-cipher-aes-0.2.6
-cmdargs-0.10.7
-comonad-4.2
-contravariant-0.6
-crypto-cipher-types-0.0.9
-crypto-numbers-0.2.3
-crypto-pubkey-0.2.4
-crypto-pubkey-types-0.4.1
-crypto-random-0.0.7
-cryptohash-0.11.2
-distributive-0.4.4
-dlist-0.6.0.1
-extensible-exceptions-0.1.1.4
-generic-deriving-1.6.2
-hashable-1.2.1.0
-keystore-0.5.0.2
-keystore-0.5.0.3
-keystore-0.5.1.0
-lens-3.10.2
-mtl-2.1.3.1
-nats-0.1.2
-optparse-applicative-0.9.0
-optparse-applicative-0.9.1.1
-parallel-3.2.0.4
-parsec-3.1.5
-pbkdf-1.1.1.1
-primitive-0.5.2.1
-process-1.2.0.0
-profunctors-4.0.4
-random-1.0.1.1
-raw-strings-qq-1.0.2
-reflection-1.3.2
-regex-base-0.93.2
-regex-compat-tdfa-0.95.1.4
-regex-tdfa-1.2.0
-safe-0.3.3
-safecopy-0.8.2
-scientific-0.2.0.2
-securemem-0.1.3
-semigroupoids-4.0.2.1
-semigroups-0.12.2
-setenv-0.1.1.1
-split-0.2.2
-syb-0.4.1
-tagged-0.7
-text-1.1.0.1
-tf-random-0.4
-transformers-0.3.0.0
-transformers-compat-0.3.3.4
-unordered-containers-0.2.3.3
-utf8-string-0.3.7
-vector-0.10.9.1
-void-0.6.1
diff --git a/keystore783.manifest b/keystore783.manifest
deleted file mode 100644
--- a/keystore783.manifest
+++ /dev/null
@@ -1,67 +0,0 @@
-^=7.8.3
-QuickCheck-2.7.6
-aeson-0.8.0.0
-aeson-pretty-0.7.1
-ansi-terminal-0.6.1.1
-ansi-wl-pprint-0.6.7.1
-api-tools-0.4.0.1
-asn1-encoding-0.8.1.3
-asn1-types-0.2.3
-attoparsec-0.12.1.1
-base64-bytestring-1.0.0.1
-bifunctors-4.1.1.1
-byteable-0.1.1
-bytedump-1.0
-case-insensitive-1.2.0.0
-cereal-0.4.0.1
-cipher-aes-0.2.8
-cmdargs-0.10.9
-comonad-4.2.2
-contravariant-1.2
-crypto-cipher-types-0.0.9
-crypto-numbers-0.2.3
-crypto-pubkey-0.2.4
-crypto-pubkey-types-0.4.2.2
-crypto-random-0.0.8
-cryptohash-0.11.6
-distributive-0.4.4
-dlist-0.7.1
-exceptions-0.6.1
-free-4.9
-hashable-1.2.2.0
-keystore-0.5.1.0
-lens-4.3.3
-mtl-2.2.1
-nats-0.2
-optparse-applicative-0.9.1.1
-parallel-3.2.0.4
-parsec-3.1.5
-pbkdf-1.1.1.1
-prelude-extras-0.4
-primitive-0.5.3.0
-profunctors-4.2.0.1
-random-1.0.1.3
-raw-strings-qq-1.0.2
-reflection-1.5.1
-regex-base-0.93.2
-regex-compat-tdfa-0.95.1.4
-regex-tdfa-1.2.0
-safe-0.3.8
-safecopy-0.8.3
-scientific-0.3.3.0
-securemem-0.1.3
-semigroupoids-4.2
-semigroups-0.15.2
-setenv-0.1.1.1
-split-0.2.2
-syb-0.4.2
-tagged-0.7.2
-text-1.1.1.3
-tf-random-0.5
-transformers-0.4.1.0
-transformers-compat-0.3.3.4
-unordered-containers-0.2.5.0
-utf8-string-0.3.8
-vector-0.10.11.0
-void-0.6.1
-zlib-0.5.4.1
diff --git a/src/Data/KeyStore/CLI/Command.hs b/src/Data/KeyStore/CLI/Command.hs
--- a/src/Data/KeyStore/CLI/Command.hs
+++ b/src/Data/KeyStore/CLI/Command.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE OverloadedStrings          #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 
 module Data.KeyStore.CLI.Command
     ( CLI(..)
diff --git a/src/Data/KeyStore/KS/Opt.hs b/src/Data/KeyStore/KS/Opt.hs
--- a/src/Data/KeyStore/KS/Opt.hs
+++ b/src/Data/KeyStore/KS/Opt.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE ExistentialQuantification  #-}
 {-# LANGUAGE RecordWildCards            #-}
 {-# LANGUAGE OverloadedStrings          #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 
 module Data.KeyStore.KS.Opt
     ( Opt
diff --git a/src/Data/KeyStore/PasswordManager.hs b/src/Data/KeyStore/PasswordManager.hs
--- a/src/Data/KeyStore/PasswordManager.hs
+++ b/src/Data/KeyStore/PasswordManager.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE RecordWildCards            #-}
 {-# LANGUAGE OverloadedStrings          #-}
 {-# LANGUAGE ScopedTypeVariables        #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 
 module Data.KeyStore.PasswordManager
     ( PMConfig(..)
diff --git a/src/Data/KeyStore/Sections.hs b/src/Data/KeyStore/Sections.hs
--- a/src/Data/KeyStore/Sections.hs
+++ b/src/Data/KeyStore/Sections.hs
@@ -3,6 +3,7 @@
 {-# LANGUAGE MultiParamTypeClasses      #-}
 {-# LANGUAGE FunctionalDependencies     #-}
 {-# LANGUAGE ScopedTypeVariables        #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 
 module Data.KeyStore.Sections
   ( SECTIONS(..)
diff --git a/src/Data/KeyStore/Types.hs b/src/Data/KeyStore/Types.hs
--- a/src/Data/KeyStore/Types.hs
+++ b/src/Data/KeyStore/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                        #-}
 {-# LANGUAGE QuasiQuotes                #-}
 {-# LANGUAGE RecordWildCards            #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
@@ -17,7 +18,7 @@
 {-# LANGUAGE FlexibleInstances          #-}
 {-# OPTIONS_GHC -fno-warn-orphans       #-}
 {-# OPTIONS_GHC -fno-warn-unused-binds  #-}
-
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 
 
 -- | The KeyStore and Associated Types
@@ -119,16 +120,23 @@
 defaultSettings = mempty
 
 
+#if __GLASGOW_HASKELL__ >= 804
+instance Semigroup Settings where
+  (<>) = mappendSettings
+#endif
+
 instance Monoid Settings where
-  mempty = Settings HM.empty
+  mempty  = Settings HM.empty
+  mappend = mappendSettings
 
-  mappend (Settings fm_0) (Settings fm_1) =
-              Settings $ HM.unionWith cmb fm_0 fm_1
-    where
-      cmb v0 v1 =
-        case (v0,v1) of
-          (Array v_0,Array v_1) -> Array $ v_0 V.++ v_1
-          _                   -> marker
+mappendSettings :: Settings -> Settings -> Settings
+mappendSettings (Settings fm_0) (Settings fm_1) =
+    Settings $ HM.unionWith cmb fm_0 fm_1
+  where
+    cmb v0 v1 =
+      case (v0,v1) of
+        (Array v_0,Array v_1) -> Array $ v_0 V.++ v_1
+        _                   -> marker
 
 checkSettingsCollisions :: Settings -> [SettingID]
 checkSettingsCollisions (Settings hm) =
diff --git a/stack-8.6.yaml b/stack-8.6.yaml
new file mode 100644
--- /dev/null
+++ b/stack-8.6.yaml
@@ -0,0 +1,12 @@
+resolver: nightly-2018-12-19
+install-ghc: true
+flags: {}
+packages:
+- '.'
+system-ghc: false
+extra-deps:
+  - api-tools-0.8.0.2
+  - crypto-numbers-0.2.7
+  - crypto-pubkey-0.2.8
+  - serialise-0.2.1.0
+  - pbkdf-1.1.1.0
diff --git a/stack.yaml b/stack.yaml
new file mode 100644
--- /dev/null
+++ b/stack.yaml
@@ -0,0 +1,13 @@
+resolver: lts-12.22
+install-ghc: true
+ghc-options:
+    "$locals": -Werror
+flags: {}
+packages:
+- '.'
+system-ghc: false
+extra-deps:
+  - api-tools-0.8.0.2
+  - serialise-0.2.1.0
+  - pbkdf-1.1.1.0
+  - regex-1.0.2.0
