diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.1.2.1
+
+Improved documentation based on suggestions by Alexander Kjeldaas
+
 # 0.1.2
 
 Fixed bug in `Monoid` instance of `Frame` (@dalejordan)
diff --git a/Frames.cabal b/Frames.cabal
--- a/Frames.cabal
+++ b/Frames.cabal
@@ -1,5 +1,5 @@
 name:                Frames
-version:             0.1.2
+version:             0.1.2.1
 synopsis:            Data frames For working with tabular data files
 description:         User-friendly, type safe, runtime efficient tooling for
                      working with tabular data deserialized from
diff --git a/src/Frames/CoRec.hs b/src/Frames/CoRec.hs
--- a/src/Frames/CoRec.hs
+++ b/src/Frames/CoRec.hs
@@ -10,7 +10,15 @@
              ScopedTypeVariables,
              TypeOperators,
              UndecidableInstances #-}
--- | Co-records: a flexible approach to sum types.
+-- | Co-records: a flexible approach to sum types. 'Frames.Melt.melt'
+-- is a good example of how such a facility is useful in @Frames@
+-- usage scenarios.
+--
+-- Consider a record with three fields @A@, @B@, and @C@. A record is
+-- a product of its fields; that is, it contains all of them: @A@,
+-- @B@, /and/ @C@. If we want to talk about a value whose type is one
+-- of those three types, it is /any one/ of type @A@, @B@, /or/
+-- @C@. The type @CoRec '[A,B,C]@ corresponds to this sum type.
 module Frames.CoRec where
 import Data.Maybe(fromJust)
 import Data.Proxy
diff --git a/src/Frames/ColumnUniverse.hs b/src/Frames/ColumnUniverse.hs
--- a/src/Frames/ColumnUniverse.hs
+++ b/src/Frames/ColumnUniverse.hs
@@ -148,5 +148,8 @@
 -- | Define a set of variants that captures all possible column types.
 type ColumnUniverse = CoRec ColInfo
 
--- | A universe of common column variants.
+-- | A universe of common column variants. These are the default
+-- column types that @Frames@ can infer. See the
+-- <http://acowley.github.io/Frames/#sec-4 Tutorial> for an example of
+-- extending the default types with your own.
 type Columns = ColumnUniverse CommonColumns
diff --git a/src/Frames/Exploration.hs b/src/Frames/Exploration.hs
--- a/src/Frames/Exploration.hs
+++ b/src/Frames/Exploration.hs
@@ -42,9 +42,12 @@
 
 -- * Proxy Syntax
 
--- | A proxy value quasiquoter. @[pr|T|]@ will splice an expression
--- @Proxy::Proxy T@, while @[pr|A,B,C|]@ will splice in a value of
--- @Proxy :: Proxy [A,B,C]@.
+-- | A proxy value quasiquoter; a way of passing types as
+-- values. @[pr|T|]@ will splice an expression @Proxy::Proxy T@, while
+-- @[pr|A,B,C|]@ will splice in a value of @Proxy :: Proxy
+-- [A,B,C]@. If we have a record type with @Name@ and @Age@ among
+-- other fields, we can write @select @[pr|Name,Age|]@ for a function
+-- that extracts those fields from a larger record.
 pr :: QuasiQuoter
 pr = QuasiQuoter mkProxy undefined undefined undefined
   where mkProxy s = let ts = map strip $ splitOn ',' s
diff --git a/src/Frames/Rec.hs b/src/Frames/Rec.hs
--- a/src/Frames/Rec.hs
+++ b/src/Frames/Rec.hs
@@ -22,7 +22,9 @@
 import Frames.Col
 import Frames.RecF
 
--- | A record with unadorned values.
+-- | A record with unadorned values. This is @Vinyl@'s 'Rec'
+-- 'Identity'. We give this type a name as it is used pervasively for
+-- records in 'Frames'.
 type Record = Rec Identity
 
 -- | A @cons@ function for building 'Record' values.
