diff --git a/Data/HList/GhcExperiments.hs b/Data/HList/GhcExperiments.hs
--- a/Data/HList/GhcExperiments.hs
+++ b/Data/HList/GhcExperiments.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE KindSignatures,MultiParamTypeClasses,FunctionalDependencies,FlexibleInstances, FlexibleContexts, UndecidableInstances #-}
+{-# LANGUAGE KindSignatures,MultiParamTypeClasses,FunctionalDependencies,FlexibleInstances, FlexibleContexts, UndecidableInstances, OverlappingInstances #-}
 
 {-
    (C) 2004, Oleg Kiselyov, Ralf Laemmel, Keean Schupke
diff --git a/Data/HList/GhcRecord.hs b/Data/HList/GhcRecord.hs
--- a/Data/HList/GhcRecord.hs
+++ b/Data/HList/GhcRecord.hs
@@ -1,7 +1,11 @@
 {-# OPTIONS_GHC -fno-warn-missing-signatures #-}
-{-# LANGUAGE ScopedTypeVariables, EmptyDataDecls, FunctionalDependencies, 
-  MultiParamTypeClasses, UndecidableInstances, PatternSignatures,
-  FlexibleInstances, FlexibleContexts #-}
+{-# LANGUAGE EmptyDataDecls #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FunctionalDependencies #-}
 
 {-
    The HList library
@@ -261,14 +265,14 @@
 hConsTcName = mkTyCon "HList.HCons"
 instance (Typeable x, Typeable y) => Typeable (HCons x y)
  where
-  typeOf (HCons x y)
+  typeOf ~(HCons x y)
    = mkTyConApp hConsTcName [ typeOf x, typeOf y ]
 
 recordTcName :: TyCon
 recordTcName = mkTyCon "HList.Record"
 instance Typeable x => Typeable (Record x)
  where
-  typeOf (Record x)
+  typeOf ~(Record x)
    = mkTyConApp recordTcName [ typeOf x ]
 
 hFieldTcName :: TyCon
diff --git a/Data/HList/GhcSyntax.hs b/Data/HList/GhcSyntax.hs
--- a/Data/HList/GhcSyntax.hs
+++ b/Data/HList/GhcSyntax.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE TypeOperators #-}
 {-# OPTIONS_GHC -fno-warn-missing-signatures #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-
@@ -8,14 +9,10 @@
 
 module Data.HList.GhcSyntax where
 
-import Data.HList.HArray (HUpdateAtHNat())
 import Data.HList.FakePrelude
 import Data.HList.HListPrelude
-import Data.HList.HOccurs
 import Data.HList.Record
 import Data.HList.GhcRecord
-import Data.HList.TIP
-import Data.HList.TIC
 
 
 {-----------------------------------------------------------------------------}
@@ -99,22 +96,17 @@
 --}
 r .-. l =  hDeleteAtLabel l r
 
-infixl 2 .@.
+infixr 2 .@.
 {-|
-  (.@.) -- Update a field with a particular value. Another record-level
-           operation, so it has the same fixity as (.*.) and (.-.). No
-           real list analogue, since there is no Prelude defined
+  (.@.) -- Update a field with a particular value.
+           Same fixity as (.*.) so that extensions and updates can be chained.
+           There is no real list analogue, since there is no Prelude defined
            update.
 
-  record1 .@. label1 .=. value1
-
-  record1 .@. label1 .=. record2 .!. label1
+  label1 .=. value1 .@. record1 
 
-  record1 .*. label1 .=. record2 .!. label1
-          .*. label2 .=. record2 .!. label2 
-          .@. label1 .=. value2
 -}
-r .@. f@(LVPair v) =  hUpdateAtLabel (labelLVPair f) v r
+f@(LVPair v) .@. r  =  hUpdateAtLabel (labelLVPair f) v r
 
 infixr 2 .^.
 {-|
@@ -131,12 +123,12 @@
 -}
 f@(LVPair v) .<. r = hTPupdateAtLabel (labelLVPair f) v r
 
-infixl 2 .<++.
+infixl 1 .<++.
 {-|
   (.<++.) -- Similar to list append, so give this slightly lower fixity than
              (.*.), so we can write:
 
-   record1 .*. field1 .<++. record2 .*. field2
+   field1 .=. value .*. record1 .<++. record2
 -}
 r .<++. r' = hLeftUnion r r'
 
diff --git a/Data/HList/HOccurs.hs b/Data/HList/HOccurs.hs
--- a/Data/HList/HOccurs.hs
+++ b/Data/HList/HOccurs.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE EmptyDataDecls, MultiParamTypeClasses, FlexibleInstances,
-  FlexibleContexts, UndecidableInstances #-}
+  FlexibleContexts, OverlappingInstances, UndecidableInstances #-}
 
 {-
    The HList library
diff --git a/Data/HList/Label2.hs b/Data/HList/Label2.hs
--- a/Data/HList/Label2.hs
+++ b/Data/HList/Label2.hs
@@ -33,7 +33,7 @@
 
 -- Labels are type-level naturals
 
-data HNat x => Label x ns desc  -- labels are exclusively type-level entities
+data Label x ns desc  -- labels are exclusively type-level entities
 
 
 -- Construct the first label
diff --git a/Data/HList/Label3.hs b/Data/HList/Label3.hs
--- a/Data/HList/Label3.hs
+++ b/Data/HList/Label3.hs
@@ -34,7 +34,7 @@
 
 
 -- Labels are type-level naturals
-data HNat x => Label x ns desc  -- labels are exclusively type-level entities
+data Label x ns desc  -- labels are exclusively type-level entities
 
 
 -- Public constructors for labels
diff --git a/Data/HList/TypeEqGeneric2.hs b/Data/HList/TypeEqGeneric2.hs
--- a/Data/HList/TypeEqGeneric2.hs
+++ b/Data/HList/TypeEqGeneric2.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleContexts, FlexibleInstances, UndecidableInstances #-}
+{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleContexts, FlexibleInstances, UndecidableInstances, OverlappingInstances #-}
 
 {-
    The HList library
diff --git a/HList.cabal b/HList.cabal
--- a/HList.cabal
+++ b/HList.cabal
@@ -1,5 +1,5 @@
 Name:                HList
-Version:             0.2
+Version:             0.2.1
 Category:            Data
 Synopsis:            Heterogeneous lists
 Description:         HList is a record system providing strongly typed heterogenous lists, records,
diff --git a/README b/README
--- a/README
+++ b/README
@@ -1,6 +1,25 @@
-(C) 2004--2005, Oleg Kiselyov, Ralf Laemmel, Keean Schupke
+(C) 2004--2010, Oleg Kiselyov, Ralf Laemmel, Keean Schupke
 
 The HList library and samples
+
+----------------------------------------------------------------------
+
+Getting the code
+
+> darcs get http://darcs.haskell.org/HList
+
+----------------------------------------------------------------------
+
+Pushing changes
+
+You need an account at darcs.haskell.org
+
+> cd HList
+> darcs pull user@darcs.haskell.org:/srv/darcs/HList
+> darcs record
+> darcs push
+
+----------------------------------------------------------------------
 
 This distribution covers all essential issues discussed in the HList paper.
 Additional examples and HList operations are provided.
