diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2014 Oleg Kiselyov, Amr Sabry, Cameron Swords, Ben Foppa
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,25 @@
+extensible-effects is based on the work
+[Extensible Effects: An Alternative to Monad Transformers](http://okmij.org/ftp/Haskell/extensible/).
+Please read the [paper](http://okmij.org/ftp/Haskell/extensible/exteff.pdf) for details.
+
+## Advantages
+
+  * Effects can be added, removed, and interwoven without changes to code not
+    dealing with those effects.
+
+## Disadvantages
+
+  * Common functions can't be grouped using typeclasses, e.g.
+    the `ask` and `getState` functions can't be grouped with some
+
+        class Get t a where
+          ask :: Member (t a) r => Eff r a
+
+    `ask` is inherently ambiguous, since the type signature only provides
+    a constraint on `t`, and nothing more. To specify fully, a parameter
+    involving the type `t` would need to be added, which would defeat the point
+    of having the grouping in the first place.
+
+  * Requires a `Typeable` instance on the return type.
+  * Neither `Eff` nor `(:>)` has a `Typeable` instance, and can thus often not
+    be used as a return type (e.g. `State` type) for other `Eff`s.
diff --git a/extensible-effects.cabal b/extensible-effects.cabal
--- a/extensible-effects.cabal
+++ b/extensible-effects.cabal
@@ -1,28 +1,64 @@
-Name:                extensible-effects
-Version:             1.7.1.1
-Synopsis:            An Alternative to Monad Transformers
-Description:         This package introduces datatypes for typeclass-constrained effects,
+name:                extensible-effects
+
+-- The package version.  See the Haskell package versioning policy (PVP)
+-- for standards guiding when and how versions should be incremented.
+-- http://www.haskell.org/haskellwiki/Package_versioning_policy
+-- PVP summary:      +-+------- breaking API changes
+--                   | | +----- non-breaking API additions
+--                   | | | +--- code changes with no API change
+version:             1.7.1.2
+
+-- A short (one-line) description of the package.
+synopsis:            An Alternative to Monad Transformers
+
+-- A longer description of the package.
+description:         This package introduces datatypes for typeclass-constrained effects,
                      as an alternative to monad-transformer based (datatype-constrained)
                      approach of multi-layered effects.
                      For more information, see the original paper at
                      <http://okmij.org/ftp/Haskell/extensible/exteff.pdf>.
 
                      Any help is appreciated!
-Category:            Control, Effect
-Author:              Oleg Kiselyov, Amr Sabry, Cameron Swords, Ben Foppa
-Stability:           Experimental
-Homepage:            https://github.com/RobotGymnast/extensible-effects
-Maintainer:          suhailshergill@gmail.com
-License:             MIT
-Tested-With:         GHC==7.8.2
-Build-Type:          Simple
-Cabal-Version:       >= 1.9.2
 
+stability:           Experimental
+
+-- URL for the project homepage or repository.
+homepage:            https://github.com/RobotGymnast/extensible-effects
+
+-- The license under which the package is released.
+license:             MIT
+
+-- The file containing the license text.
+license-file:        LICENSE
+
+-- The package author(s).
+author:              Oleg Kiselyov, Amr Sabry, Cameron Swords, Ben Foppa
+
+-- An email address to which users can send suggestions, bug reports, and
+-- patches.
+maintainer:          suhailshergill@gmail.com
+
+-- A copyright notice.
+-- copyright:
+
+category:            Control, Effect
+
+tested-with:         GHC==7.8.2
+
+build-type:          Simple
+
+-- Extra files to be distributed with the package, such as examples or a
+-- README.
+extra-source-files:  README.md
+
+-- Constraint on the version of Cabal needed to build this package.
+cabal-version:       >=1.10
+
+
 library
-    hs-source-dirs:    src/
-    ghc-options:       -Wall
-    extensions:        Trustworthy
-    exposed-modules:   Control.Eff
+  ghc-options:         -Wall
+  -- Modules exported by the library.
+  exposed-modules:     Control.Eff
                        Control.Eff.Choose
                        Control.Eff.Coroutine
                        Control.Eff.Cut
@@ -38,12 +74,45 @@
                        Control.Eff.Trace
                        Data.OpenUnion1
 
-    build-depends: 
-                    base >= 4.6 && < 5
-                    -- For MonadIO instance
-                  , transformers >= 0.3 && < 0.5
-                    -- For MonadBase instance
-                  , transformers-base == 0.4.*
+  -- Modules included in this library but not exported.
+  -- other-modules:
+
+  default-extensions:  Trustworthy
+  -- LANGUAGE extensions used by modules in this package.
+  other-extensions:    BangPatterns
+                       , CPP
+                       , DeriveDataTypeable
+                       , DeriveFunctor
+                       , EmptyDataDecls
+                       , ExistentialQuantification
+                       , FlexibleContexts
+                       , FlexibleInstances
+                       , FunctionalDependencies
+                       , GeneralizedNewtypeDeriving
+                       , KindSignatures
+                       , MultiParamTypeClasses
+                       , NoMonomorphismRestriction
+                       , OverlappingInstances
+                       , PatternGuards
+                       , PolyKinds
+                       , RankNTypes
+                       , ScopedTypeVariables
+                       , TupleSections
+                       , TypeOperators
+                       , UndecidableInstances
+
+  -- Other library packages from which modules are imported.
+  build-depends:       base >= 4.6 && < 5
+                       -- For MonadIO instance
+                       , transformers >= 0.3 && < 0.5
+                       -- For MonadBase instance
+                       , transformers-base == 0.4.*
+
+  -- Directories containing source files.
+  hs-source-dirs:      src
+
+  -- Base language which the package is written in.
+  default-language:    Haskell2010
 
 test-suite extensible-effects-tests
   type: exitcode-stdio-1.0
