diff --git a/src/Data/Time/TimeSpan.hs b/src/Data/Time/TimeSpan.hs
--- a/src/Data/Time/TimeSpan.hs
+++ b/src/Data/Time/TimeSpan.hs
@@ -23,6 +23,9 @@
   = TimeSpan { unTimeSpan :: Double } -- as milliseconds
   deriving (Show, Eq, Ord)
 
+instance Semigroup TimeSpan where
+    (<>) = mappend
+
 -- | An empty `TimeSpan` is 0, and `mappend` is defined as addition
 instance Monoid TimeSpan where
     mempty = TimeSpan 0
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,66 +1,4 @@
-# This file was automatically generated by 'stack init'
-# 
-# Some commonly used options have been documented as comments in this file.
-# For advanced use and comprehensive documentation of the format, please see:
-# http://docs.haskellstack.org/en/stable/yaml_configuration/
-
-# Resolver to choose a 'specific' stackage snapshot or a compiler version.
-# A snapshot resolver dictates the compiler version and the set of packages
-# to be used for project dependencies. For example:
-# 
-# resolver: lts-3.5
-# resolver: nightly-2015-09-21
-# resolver: ghc-7.10.2
-# resolver: ghcjs-0.1.0_ghc-7.10.2
-# resolver:
-#  name: custom-snapshot
-#  location: "./custom-snapshot.yaml"
-resolver: lts-6.16
-
-# User packages to be built.
-# Various formats can be used as shown in the example below.
-# 
-# packages:
-# - some-directory
-# - https://example.com/foo/bar/baz-0.0.2.tar.gz
-# - location:
-#    git: https://github.com/commercialhaskell/stack.git
-#    commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
-# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a
-#   extra-dep: true
-#  subdirs:
-#  - auto-update
-#  - wai
-# 
-# A package marked 'extra-dep: true' will only be built if demanded by a
-# non-dependency (i.e. a user package), and its test suites and benchmarks
-# will not be run. This is useful for tweaking upstream packages.
+resolver: lts-15.13
 packages:
-- '.'
-# Dependency packages to be pulled from upstream that are not in the resolver
-# (e.g., acme-missiles-0.3)
+  - '.'
 extra-deps: []
-
-# Override default flag values for local packages and extra-deps
-flags: {}
-
-# Extra package databases containing global packages
-extra-package-dbs: []
-
-# Control whether we use the GHC we find on the path
-# system-ghc: true
-# 
-# Require a specific version of stack, using version ranges
-# require-stack-version: -any # Default
-# require-stack-version: ">=1.1"
-# 
-# Override the architecture used by stack, especially useful on Windows
-# arch: i386
-# arch: x86_64
-# 
-# Extra directories used by stack for building
-# extra-include-dirs: [/path/to/dir]
-# extra-lib-dirs: [/path/to/dir]
-# 
-# Allow a newer minor version of GHC than the snapshot specifies
-# compiler-check: newer-minor
diff --git a/timespan.cabal b/timespan.cabal
--- a/timespan.cabal
+++ b/timespan.cabal
@@ -1,5 +1,5 @@
 name:                timespan
-version:             0.3.0.0
+version:             0.4.0.0
 synopsis:            Useful timespan datatype and functions
 description:         A data type for time spans with some useful utility functions
 homepage:            https://github.com/agrafix/timespan#readme
@@ -18,7 +18,7 @@
 library
   hs-source-dirs:      src
   exposed-modules:     Data.Time.TimeSpan
-  build-depends:       base >= 4.7 && < 5,
+  build-depends:       base >= 4.9 && < 5,
                        time >= 1.2
   default-language:    Haskell2010
 
