diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2015, Athan Clark
+Copyright (c) 2015, 2016, 2017, 2018, 2019, 2020 Athan Clark
 
 All rights reserved.
 
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+[![Stories in Ready](https://badge.waffle.io/athanclark/rose-trees.png?label=ready&title=Ready)](https://waffle.io/athanclark/rose-trees)
+rose-trees
+==========
+
+A simple class for making the construction of rose trees look prettier. I've also
+made an implementation of a left-child right-sibling binary tree-based rose tree,
+and one that uses `Data.Set` internally as a forest.
diff --git a/rose-trees.cabal b/rose-trees.cabal
--- a/rose-trees.cabal
+++ b/rose-trees.cabal
@@ -1,97 +1,111 @@
-Name:                   rose-trees
-Version:                0.0.4.4
-Author:                 Athan Clark <athan.clark@gmail.com>
-Maintainer:             Athan Clark <athan.clark@gmail.com>
-License:                BSD3
-License-File:           LICENSE
-Synopsis:               A collection of rose tree structures.
--- Description:
-Cabal-Version:          >= 1.10
-Build-Type:             Simple
-Category:               Data, Tree
+cabal-version: 1.12
 
-Library
-  Default-Language:     Haskell2010
-  HS-Source-Dirs:       src
-  GHC-Options:          -Wall
-  Exposed-Modules:      Data.Tree.Rose
-                        Data.Tree.Knuth
-                        Data.Tree.Knuth.Forest
-                        Data.Tree.Set
-                        Data.Tree.Hash
-  Build-Depends:        base >= 4.8 && < 5
-                      , containers
-                      , deepseq
-                      , hashable
-                      , mtl
-                      , semigroups
-                      , semigroupoids
-                      , sets >= 0.0.5
-                      , unordered-containers
-                      , witherable >= 0.2
-                      , QuickCheck
-                      , quickcheck-instances
+-- This file has been generated from package.yaml by hpack version 0.31.2.
+--
+-- see: https://github.com/sol/hpack
+--
+-- hash: 58e9f4952789e58b7d6ed474e966ba2561af901c13d01a930f58e6c6c67ae4e8
 
-Test-Suite spec
-  Type:                 exitcode-stdio-1.0
-  Default-Language:     Haskell2010
-  Hs-Source-Dirs:       src
-                      , test
-  Ghc-Options:          -Wall -threaded
-  Main-Is:              Spec.hs
-  Other-Modules:        Data.Tree.Knuth
-                        Data.Tree.Knuth.Forest
-                        Data.Tree.Hash
-                        Data.Tree.Rose
-                        Data.Tree.Set
-                        Data.Tree.RoseSpec
-  Build-Depends:        base
-                      , deepseq
-                      , rose-trees
-                      , containers
-                      , hashable
-                      , semigroups
-                      , semigroupoids
-                      , sets
-                      , tasty
-                      , tasty-quickcheck
-                      , unordered-containers
-                      , witherable
-                      , QuickCheck
-                      , quickcheck-instances
+name:           rose-trees
+version:        0.0.4.5
+synopsis:       Various trie implementations in Haskell
+description:    Please see the README on Github at <https://github.com/athanclark/rose-trees#readme>
+category:       Data, Tree
+homepage:       https://github.com/athanclark/rose-trees#readme
+bug-reports:    https://github.com/athanclark/rose-trees/issues
+author:         Athan Clark
+maintainer:     athan.clark@gmail.com
+copyright:      2015, 2016, 2017, 2018, 2019, 2020 Athan Clark
+license:        BSD3
+license-file:   LICENSE
+build-type:     Simple
+extra-source-files:
+    README.md
 
-Benchmark bench
-  Type:                 exitcode-stdio-1.0
-  Default-Language:     Haskell2010
-  Hs-Source-Dirs:       src
-                      , bench
-  Ghc-Options:          -Wall -threaded
-  Main-Is:              Bench.hs
-  Other-Modules:        Data.Tree.Knuth
-                        Data.Tree.Knuth.Forest
-                        Data.Tree.Rose
-                        Data.Tree.Set
-                        Data.Tree.Hash
-                        Data.TreeBench
-                        Data.Tree.SetBench
-                        Data.Tree.KnuthBench
-                        Data.Tree.HashBench
-                        Data.Build
-  Build-Depends:        base
-                      , deepseq
-                      , rose-trees
-                      , containers
-                      , hashable
-                      , mtl
-                      , semigroups
-                      , semigroupoids
-                      , sets
-                      , unordered-containers
-                      , witherable
-                      , QuickCheck
-                      , quickcheck-instances
-                      , criterion
+source-repository head
+  type: git
+  location: https://github.com/athanclark/rose-trees
 
-Source-Repository head
-  Type:                 git
-  Location:             https://github.com/athanclark/rose-trees.git
+library
+  exposed-modules:
+      Data.Tree.Hash
+      Data.Tree.Knuth
+      Data.Tree.Knuth.Forest
+      Data.Tree.Rose
+      Data.Tree.Set
+  other-modules:
+      Paths_rose_trees
+  hs-source-dirs:
+      src
+  ghc-options: -Wall
+  build-depends:
+      QuickCheck >=2.9.2
+    , base >=4.11 && <5.0
+    , containers
+    , deepseq
+    , hashable
+    , mtl
+    , quickcheck-instances
+    , semigroupoids
+    , semigroups
+    , sets >=0.0.5
+    , unordered-containers
+    , witherable >=0.2
+  default-language: Haskell2010
+
+test-suite rose-trees-test
+  type: exitcode-stdio-1.0
+  main-is: Spec.hs
+  other-modules:
+      Data.Tree.RoseSpec
+      Paths_rose_trees
+  hs-source-dirs:
+      test
+  ghc-options: -Wall -threaded -rtsopts -Wall -with-rtsopts=-N
+  build-depends:
+      QuickCheck
+    , base >=4.11 && <5.0
+    , containers
+    , deepseq
+    , hashable
+    , mtl
+    , quickcheck-instances
+    , rose-trees
+    , semigroupoids
+    , semigroups
+    , sets >=0.0.5
+    , tasty
+    , tasty-quickcheck
+    , unordered-containers
+    , witherable >=0.2
+  default-language: Haskell2010
+
+benchmark rose-trees-bench
+  type: exitcode-stdio-1.0
+  main-is: Bench.hs
+  other-modules:
+      Data.Build
+      Data.Tree.HashBench
+      Data.Tree.KnuthBench
+      Data.Tree.SetBench
+      Data.TreeBench
+      Paths_rose_trees
+  hs-source-dirs:
+      bench
+  ghc-options: -Wall -threaded -rtsopts -Wall -with-rtsopts=-N
+  build-depends:
+      QuickCheck >=2.9.2
+    , base >=4.11 && <5.0
+    , containers
+    , criterion
+    , deepseq
+    , hashable
+    , mtl
+    , quickcheck-instances
+    , rose-trees
+    , semigroupoids
+    , semigroups
+    , sets >=0.0.5
+    , unordered-containers
+    , witherable >=0.2
+  default-language: Haskell2010
