diff --git a/Sample.hs b/Sample.hs
--- a/Sample.hs
+++ b/Sample.hs
@@ -1,8 +1,9 @@
 {-# LANGUAGE Haskell2010
     , TemplateHaskell
     , FlexibleContexts
+    , TypeOperators
  #-}
-{-# OPTIONS -ddump-splices #-}
+-- {-# OPTIONS -ddump-splices #-}
 
 module Main where
 
diff --git a/named-records.cabal b/named-records.cabal
--- a/named-records.cabal
+++ b/named-records.cabal
@@ -1,5 +1,5 @@
 Name:           named-records
-Version:        0.3.1
+Version:        0.3.2
 Synopsis:       Flexible records with named fields.
 Description:    Flexible records with named fields.
                 .
@@ -20,6 +20,8 @@
                 .
                 [@v0.3.1@] Added sample files to cabal package,
                     requirements bumped for names-v0.3
+                .
+                [@v0.3.2@] Added @new@.
                 
 License:        MIT
 License-File:   LICENSE
@@ -39,7 +41,7 @@
 Source-Repository head
     type: darcs
     location: hub.darcs.net:names
-    tag: v0.3.1
+    tag: v0.3.2
 
 
 
diff --git a/src/Data/NamedRecord.hs b/src/Data/NamedRecord.hs
--- a/src/Data/NamedRecord.hs
+++ b/src/Data/NamedRecord.hs
@@ -148,6 +148,7 @@
 -}
 module Data.NamedRecord (
     Property (get, set),
+    New (new),
     add,
 
     (:=) (..),
@@ -193,6 +194,12 @@
 infixr 2 :+
 
 
+add :: b -> a -> a :+ b
+add = flip (:+)
+
+infixl 1 `add`
+
+
 class Property o n v | o n -> v where
     get :: o -> n -> v
     set :: o -> n := v -> o
@@ -201,12 +208,6 @@
 infixl 1 `get`
 
 
-add :: b -> a -> a :+ b
-add = flip (:+)
-
-infixl 1 `add`
-
-
 instance Property (n := v) n v where
     get (_ := v) _ = v
     set _ v = v
@@ -220,6 +221,16 @@
     set (a :+ b) p = a :+ (set b p)
 
 
+class New o where
+    new :: o
+
+instance New (a := b) where
+    new = _type := _value
+
+instance (New a, New b) => New (a :+ b) where
+    new = new :+ new
+
+
 class ToExp a where
     toExp' :: a -> Q Exp
 
@@ -305,7 +316,7 @@
     Record name xs ~> fs = do
         let typeD typ = TySynD (mkName name) [] typ
 
-            noValue = VarE 'value
+            noValue = VarE '_value
 
             normalize (n, v, d) = do
                 v' <- v
@@ -359,7 +370,7 @@
     ++ " You should never see this."
     ++ " Srsly, what did you do?"
 
-value = error "Data.NameRecord.undefined: No value set."
+_value = error "Data.NameRecord.undefined: No value set."
 
 has :: RecordTemplate a b c => a -> b -> c
 has = (~>)
