diff --git a/Data/Vinyl/Derived.hs b/Data/Vinyl/Derived.hs
new file mode 100644
--- /dev/null
+++ b/Data/Vinyl/Derived.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PolyKinds  #-}
+{-# LANGUAGE RankNTypes #-}
+
+module Data.Vinyl.Derived where
+
+import Data.Vinyl.Core
+import qualified Data.Vinyl.Idiom.Identity as I
+import qualified Data.Vinyl.Idiom.Thunk as I
+import qualified Data.Vinyl.Universe as U
+
+import Control.Applicative
+
+type PlainRec el = Rec el I.Identity
+type LazyPlainRec el = Rec el I.Thunk
+type FieldRec = Rec U.ElField
+type PlainFieldRec = Rec U.ElField I.Identity
+type HList = Rec U.Id I.Identity
+type LazyHList = Rec U.Id I.Thunk
+
+-- | Fixes a polymorphic record into the 'Identity' functor.
+toPlainRec :: (forall f. Applicative f => Rec el f rs) -> PlainRec el rs
+toPlainRec xs = xs
+
+toLazyPlainRec :: (forall f. Applicative f => Rec el f rs) -> LazyPlainRec el rs
+toLazyPlainRec xs = xs
+
diff --git a/vinyl.cabal b/vinyl.cabal
--- a/vinyl.cabal
+++ b/vinyl.cabal
@@ -1,11 +1,11 @@
 name:                vinyl
-version:             0.4
+version:             0.4.1
 synopsis:            Extensible Records
 -- description:
 license:             MIT
 license-file:        LICENSE
 author:              Jonathan Sterling
-maintainer:          jonsterling@me.com
+maintainer:          jon@jonmsterling.com
 -- copyright:
 category:            Records
 stability:           Experimental
@@ -23,6 +23,7 @@
                      , Data.Vinyl.Core
                      , Data.Vinyl.Operators
                      , Data.Vinyl.Lens
+                     , Data.Vinyl.Derived
                      , Data.Vinyl.Witnesses
                      , Data.Vinyl.Constraint
                      , Data.Vinyl.Idiom.Validation
