diff --git a/Crypto/Classical/Cipher/Affine.hs b/Crypto/Classical/Cipher/Affine.hs
--- a/Crypto/Classical/Cipher/Affine.hs
+++ b/Crypto/Classical/Cipher/Affine.hs
@@ -14,6 +14,7 @@
 
 module Crypto.Classical.Cipher.Affine where
 
+import           Control.Applicative
 import           Control.Lens
 import           Crypto.Classical.Types
 import           Crypto.Classical.Util
diff --git a/Crypto/Classical/Cipher/Caesar.hs b/Crypto/Classical/Cipher/Caesar.hs
--- a/Crypto/Classical/Cipher/Caesar.hs
+++ b/Crypto/Classical/Cipher/Caesar.hs
@@ -14,6 +14,7 @@
 
 module Crypto.Classical.Cipher.Caesar where
 
+import           Control.Applicative
 import           Control.Lens
 import           Crypto.Classical.Types
 import           Crypto.Classical.Util
diff --git a/Crypto/Classical/Cipher/Enigma.hs b/Crypto/Classical/Cipher/Enigma.hs
--- a/Crypto/Classical/Cipher/Enigma.hs
+++ b/Crypto/Classical/Cipher/Enigma.hs
@@ -12,6 +12,7 @@
 
 module Crypto.Classical.Cipher.Enigma where
 
+import           Control.Applicative
 import           Control.Lens
 import           Control.Monad.Trans.State.Lazy
 import           Crypto.Classical.Types
diff --git a/Crypto/Classical/Cipher/Stream.hs b/Crypto/Classical/Cipher/Stream.hs
--- a/Crypto/Classical/Cipher/Stream.hs
+++ b/Crypto/Classical/Cipher/Stream.hs
@@ -14,6 +14,7 @@
 
 module Crypto.Classical.Cipher.Stream where
 
+import           Control.Applicative
 import           Control.Lens
 import           Crypto.Classical.Types
 import           Crypto.Classical.Util
diff --git a/Crypto/Classical/Cipher/Substitution.hs b/Crypto/Classical/Cipher/Substitution.hs
--- a/Crypto/Classical/Cipher/Substitution.hs
+++ b/Crypto/Classical/Cipher/Substitution.hs
@@ -12,6 +12,7 @@
 
 module Crypto.Classical.Cipher.Substitution where
 
+import           Control.Applicative
 import           Control.Lens
 import           Crypto.Classical.Types
 import           Crypto.Classical.Util
diff --git a/Crypto/Classical/Cipher/Vigenere.hs b/Crypto/Classical/Cipher/Vigenere.hs
--- a/Crypto/Classical/Cipher/Vigenere.hs
+++ b/Crypto/Classical/Cipher/Vigenere.hs
@@ -13,6 +13,7 @@
 
 module Crypto.Classical.Cipher.Vigenere where
 
+import           Control.Applicative
 import           Control.Lens
 import           Crypto.Classical.Cipher.Stream
 import           Crypto.Classical.Types
diff --git a/Crypto/Classical/Letter.hs b/Crypto/Classical/Letter.hs
--- a/Crypto/Classical/Letter.hs
+++ b/Crypto/Classical/Letter.hs
@@ -1,10 +1,10 @@
-module Crypto.Classical.Letter where
-
 -- |
 -- Module    : Crypto.Classical.Letter
 -- Copyright : (c) Colin Woodbury, 2015
 -- License   : BSD3
 -- Maintainer: Colin Woodbury <colingw@gmail.com>
+
+module Crypto.Classical.Letter where
 
 import Data.Char
 import Test.QuickCheck
diff --git a/crypto-classical.cabal b/crypto-classical.cabal
--- a/crypto-classical.cabal
+++ b/crypto-classical.cabal
@@ -1,13 +1,37 @@
--- The name of the package.
 name:                crypto-classical
 
-version:             0.0.1
+version:             0.0.2
 
 synopsis:            An educational tool for studying classical cryptography schemes.
 
 description:         An educational tool for studying classical cryptography
                      schemes. Do not encrypt anything of worth with this
                      library.
+                     .
+                     /Included Ciphers:/
+                     .
+                     * Caesar
+                     .
+                     * Affine (Linear)
+                     .
+                     * Substitution
+                     .
+                     * Stream
+                     .
+                     * Vigenere
+                     .
+                     * Enigma (Wehrmacht Enigma I)
+                     .
+                     Thanks to polymorphism, we can generate keys and encrypt
+                     ByteStrings without worrying much about types:
+                     .
+                     > > import Crypto.Classical
+                     > > import Control.Lens
+                     > > :set -XOverloadedStrings
+                     > > (key <$> prng) >>= \k -> return (encrypt k "What a great day for an attack!" ^. enigma)
+                     > "PXQS D KXSGB CFC AYK XJ DEGMON!"
+                     > > (key <$> prng) >>= \k -> return (encrypt k "What a great day for an attack!" ^. caesar)
+                     > "RCVO V BMZVO YVT AJM VI VOOVXF!"
 
 homepage:            https://github.com/fosskers/crypto-classical
 
