diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,14 @@
+# RAWR! An Extensible Record Library
+
+This library provides anonymous extensible records using GHC 8.0 features, with the following goals/features:
+
+* The syntax should be very close to that of Haskell's record system.
+* The library should be simple to use and requires no extra boilerplate to setup.
+* There should be minimal runtime overhead and memory footprint.
+* The library does not require TemplateHaskell to use.
+* It should produce good error messages.
+* Minimal dependencies. Currently, it only depends on packages that comes with GHC.
+
+## Documentation
+
+See the [Haddock documentation](https://hackage.haskell.org/package/rawr/docs/Data-Rawr.html) of `Data.Rawr` on Hackage for a detailed tutorial of this library.
diff --git a/rawr.cabal b/rawr.cabal
--- a/rawr.cabal
+++ b/rawr.cabal
@@ -3,9 +3,23 @@
 -- see: https://github.com/sol/hpack
 
 name:           rawr
-version:        0.0.0.0
-synopsis:       Anonymous extensible records and variant types
-description:    See "Data.Rawr" for a tutorial of this library.
+version:        0.0.0.1
+synopsis:       Anonymous extensible records
+description:    This library provides anonymous extensible records using GHC 8.0 features, with the following goals/features:
+                .
+                    * The syntax should be very close to that of Haskell's record system.
+                .
+                    * The library should be simple to use and requires no extra boilerplate to setup.
+                .
+                    * There should be minimal runtime overhead and memory footprint.
+                .
+                    * The library does not require @TemplateHaskell@ to use.
+                .
+                    * It should produce good error messages.
+                .
+                    * Minimal dependencies. Currently, it only depends on packages that comes with GHC.
+                .
+                See @<https://hackage.haskell.org/package/rawr/docs/Data-Rawr.html Data.Rawr>@ for a tutorial of this library.
 category:       Records
 homepage:       https://github.com/pkmx/rawr
 author:         PkmX
@@ -15,6 +29,9 @@
 license-file:   LICENSE
 build-type:     Simple
 cabal-version:  >= 1.10
+
+extra-source-files:
+    README.md
 
 library
   hs-source-dirs:
diff --git a/src/Data/Rawr.hs b/src/Data/Rawr.hs
--- a/src/Data/Rawr.hs
+++ b/src/Data/Rawr.hs
@@ -22,16 +22,7 @@
 {-# LANGUAGE UndecidableInstances #-}
 {-# LANGUAGE ViewPatterns #-}
 
--- | This package provides anonymous extensible records. The major features and goals of this library are:
---
---       * The syntax should be very close to that of Haskell's record system.
---       * The library should be simple to use and requires no extra boilerplate to setup.
---       * There should be minimal runtime overhead and memory footprint.
---       * The library does not require @TemplateHaskell@ to use.
---       * It should produce good error messages.
---       * Minimal dependencies. Currently, it only depends on packages that comes with GHC.
---
---   == Prerequisite
+-- | == Prerequisite
 --
 --   You need GHC >= 8.0 and the following extensions in order to use this library:
 --
@@ -1246,9 +1237,9 @@
 --   = Rec
 --       '[Field 'Lazy ('Just "bar") Bool, Field 'Lazy ('Just "foo") Int]
 --
---   >>> :kind! R ( Field 'Lazy 'Nothing Int ) :*: ( Field 'Strict 'Nothing Bool )
---   R ( Field 'Lazy 'Nothing Int ) :*: ( Field 'Strict 'Nothing Bool ) :: GHC.Types.*
---   = Rec '[Field 'Lazy 'Nothing Int] :*: Field 'Strict 'Nothing Bool
+--   >>> :kind! R ( Field 'Lazy 'Nothing Int ) :*: R ( Field 'Strict 'Nothing Bool )
+--   R ( Field 'Lazy 'Nothing Int ) :*: R ( Field 'Strict 'Nothing Bool ) :: *
+--   = Rec '[Field 'Lazy 'Nothing Int, Field 'Strict 'Nothing Bool]
 type (:*:) x y = x `RecMerge` y
 infixr 1 :*:
 
