diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# quickcheck-combinators
+
+Simply wrap the type you want to generate (assuming it satisfies all the necessary constraints) to refine the terms generated:
+
+
+```haskell
+{-# LANGUAGE DataKinds #-}
+
+import Data.Set (Set)
+import Test.QuickCheck
+import Test.QuickCheck.Instances
+import GHC.TypeLits
+
+instance Arbitrary LinearEquation where
+  arbitrary = do
+    vars <- arbitrary :: Gen (AtLeast 3 Set String)
+    -- ...
+```
diff --git a/quickcheck-combinators.cabal b/quickcheck-combinators.cabal
--- a/quickcheck-combinators.cabal
+++ b/quickcheck-combinators.cabal
@@ -1,43 +1,40 @@
-Name:                   quickcheck-combinators
-Version:                0.0.4
-Author:                 Athan Clark <athan.clark@gmail.com>
-Maintainer:             Athan Clark <athan.clark@gmail.com>
-License:                BSD3
-License-File:           LICENSE
-Synopsis:               Simple type-level combinators for augmenting
-                        QuickCheck instances.
-Category:               Testing
-Description:
-  Simply wrap the type you want to generate (assuming it satisfies
-  all the necessary constraints) to refine the terms generated:
-  .
-  @
-    &#123;-&#35; LANGUAGE DataKinds &#35;-&#125;
-    &#13; 
-    import Data.Set (Set)
-    import Test.QuickCheck
-    import Test.QuickCheck.Instances
-    import GHC.TypeLits
-    &#13;
-    instance Arbitrary LinearEquation where
-    &#32;&#32;arbitrary = do
-    &#32;&#32;&#32;&#32;vars <- arbitrary :: Gen (AtLeast 3 Set String)
-    &#32;&#32;&#32;&#32;&#45;&#45; ...
-  @
-  .
-Cabal-Version:          >= 1.10
-Build-Type:             Simple
-Extra-Source-Files:     ChangeLog.md
-                        
-Library
-  Default-Language:     Haskell2010
-  HS-Source-Dirs:       src
-  GHC-Options:          -Wall
-  Exposed-Modules:      Test.QuickCheck.Combinators
-  Build-Depends:        base >= 4.8 && < 5
-                      , QuickCheck
-                      , unfoldable-restricted >= 0.0.1
+-- This file has been generated from package.yaml by hpack version 0.21.2.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 95aa2f2c9903df88bd3133ecbf961b597fef510715549892576747518c4c658a
 
-Source-Repository head
-  Type:                 git
-  Location:             git@github.com:athanclark/quickcheck-combinators.git
+name:           quickcheck-combinators
+version:        0.0.5
+description:    Please see the README on GitHub at <https://github.com/githubuser/template-dictionary#readme>
+homepage:       https://github.com/athanclark/quickcheck-combinators#readme
+bug-reports:    https://github.com/athanclark/quickcheck-combinators/issues
+author:         Athan Clark
+maintainer:     athan.clark@localcooking.com
+copyright:      2018 (c) Local Cooking Inc.
+license:        BSD3
+license-file:   LICENSE
+build-type:     Simple
+cabal-version:  >= 1.10
+
+extra-source-files:
+    ChangeLog.md
+    README.md
+
+source-repository head
+  type: git
+  location: https://github.com/athanclark/quickcheck-combinators
+
+library
+  exposed-modules:
+      Test.QuickCheck.Combinators
+  other-modules:
+      Paths_quickcheck_combinators
+  hs-source-dirs:
+      src
+  ghc-options: -Wall
+  build-depends:
+      QuickCheck
+    , base >=4.11 && <5
+    , unfoldable-restricted >=0.0.1
+  default-language: Haskell2010
diff --git a/src/Test/QuickCheck/Combinators.hs b/src/Test/QuickCheck/Combinators.hs
--- a/src/Test/QuickCheck/Combinators.hs
+++ b/src/Test/QuickCheck/Combinators.hs
@@ -36,7 +36,7 @@
 newtype AtLeast (n :: Nat) t a = AtLeast
   { getAtLeast :: t a
   } deriving (Show, Read, Eq, Ord, Enum, Data, Typeable, Generic, Functor
-             , Applicative, Monad, Foldable, Traversable, Monoid)
+             , Applicative, Monad, Foldable, Traversable, Semigroup, Monoid)
 
 instance
          ( UnfoldableR p t
@@ -68,7 +68,7 @@
 newtype AtMost (n :: Nat) t a = AtMost
   { getAtMost :: t a
   } deriving (Show, Read, Eq, Ord, Enum, Data, Typeable, Generic, Functor
-             , Applicative, Monad, Foldable, Traversable, Monoid)
+             , Applicative, Monad, Foldable, Traversable, Semigroup, Monoid)
 
 instance ( UnfoldableR p t
          , Monoid (t a)
@@ -99,7 +99,7 @@
 newtype Between (n :: Nat) (m :: Nat) t a = Between
   { getBetween :: t a
   } deriving (Show, Read, Eq, Ord, Enum, Data, Typeable, Generic, Functor
-             , Applicative, Monad, Foldable, Traversable, Monoid)
+             , Applicative, Monad, Foldable, Traversable, Semigroup, Monoid)
 
 instance ( UnfoldableR p t
          , Monoid (t a)
