diff --git a/CONTRIBUTORS b/CONTRIBUTORS
new file mode 100644
--- /dev/null
+++ b/CONTRIBUTORS
@@ -0,0 +1,6 @@
+Bryan O'Sullivan <bos@serpentine.com>
+Leon P Smith <leon@melding-monads.com>
+Felipe Lessa <felipe.lessa@gmail.com>
+Ozgun Ataman <ozataman@gmail.com>
+Joey Adams <joeyadams3.14159@gmail.com>
+Rekado <rekado@elephly.net>
diff --git a/postgresql-simple.cabal b/postgresql-simple.cabal
--- a/postgresql-simple.cabal
+++ b/postgresql-simple.cabal
@@ -1,5 +1,5 @@
 Name:                postgresql-simple
-Version:             0.1.4.3
+Version:             0.2
 Synopsis:            Mid-Level PostgreSQL client library
 Description:
     Mid-Level PostgreSQL client library, forked from mysql-simple.
@@ -14,6 +14,9 @@
 
 Cabal-version:       >= 1.9.2
 
+extra-source-files:
+     CONTRIBUTORS
+
 Library
   hs-source-dirs: src
   Exposed-modules:
@@ -64,7 +67,7 @@
 source-repository this
   type:     git
   location: http://github.com/lpsmith/postgresql-simple
-  tag:      v0.1.4.3
+  tag:      v0.2
 
 test-suite test
   type:           exitcode-stdio-1.0
diff --git a/src/Database/PostgreSQL/Simple.hs b/src/Database/PostgreSQL/Simple.hs
--- a/src/Database/PostgreSQL/Simple.hs
+++ b/src/Database/PostgreSQL/Simple.hs
@@ -56,6 +56,8 @@
       Base.ConnectInfo(..)
     , Connection
     , Query
+    , ToRow
+    , FromRow
     , In(..)
     , Binary(..)
     , Only(..)
@@ -310,7 +312,7 @@
         utf8ToString = T.unpack . TE.decodeUtf8
         sub (Plain  b)      = pure b
         sub (Escape s)      = quote <$> escapeStringConn conn s
-        sub (EscapeBytea s) = quote <$> escapeByteaConn conn s
+        sub (EscapeByteA s) = quote <$> escapeByteaConn conn s
         sub (Many  ys)      = mconcat <$> mapM sub ys
         split s = fromByteString h : if B.null t then [] else split (B.tail t)
             where (h,t) = B.break (=='?') s
@@ -678,7 +680,7 @@
                     }
   where twiddle (Plain b)       = toByteString b
         twiddle (Escape s)      = s
-        twiddle (EscapeBytea s) = s
+        twiddle (EscapeByteA s) = s
         twiddle (Many ys)       = B.concat (map twiddle ys)
 
 -- $use
diff --git a/src/Database/PostgreSQL/Simple/BuiltinTypes.hs b/src/Database/PostgreSQL/Simple/BuiltinTypes.hs
--- a/src/Database/PostgreSQL/Simple/BuiltinTypes.hs
+++ b/src/Database/PostgreSQL/Simple/BuiltinTypes.hs
@@ -3,7 +3,7 @@
 ------------------------------------------------------------------------------
 -- |
 -- Module:      Database.PostgreSQL.Simple.BuiltinTypes
--- Copyright:   (c) 2011 Leon P Smith
+-- Copyright:   (c) 2011-2012 Leon P Smith
 -- License:     BSD3
 -- Maintainer:  Leon P Smith <leon@melding-monads.com>
 -- Stability:   experimental
@@ -27,13 +27,13 @@
 
 data BuiltinType
    = Bool
-   | Bytea
+   | ByteA
    | Char
    | Name
    | Int8
    | Int2
    | Int4
-   | Regproc
+   | RegProc
    | Text
    | Oid
    | Tid
@@ -41,7 +41,7 @@
    | Cid
    | Xml
    | Point
-   | Lseg
+   | LSeg
    | Path
    | Box
    | Polygon
@@ -49,88 +49,88 @@
    | Cidr
    | Float4
    | Float8
-   | Abstime
-   | Reltime
-   | Tinterval
+   | AbsTime
+   | RelTime
+   | TInterval
    | Unknown
    | Circle
    | Money
-   | Macaddr
+   | MacAddr
    | Inet
-   | Bpchar
-   | Varchar
+   | BpChar
+   | VarChar
    | Date
    | Time
    | Timestamp
-   | TimestampWithTimeZone
+   | TimestampTZ
    | Interval
-   | TimeWithTimeZone
+   | TimeTZ
    | Bit
-   | Varbit
+   | VarBit
    | Numeric
-   | Refcursor
+   | RefCursor
    | Record
    | Void
      deriving (Eq, Ord, Enum, Bounded, Read, Show, Typeable)
 
 builtin2oid :: BuiltinType -> PQ.Oid
 builtin2oid typ = PQ.Oid $ case typ of
-  Bool                  ->   16
-  Bytea                 ->   17
-  Char                  ->   18
-  Name                  ->   19
-  Int8                  ->   20
-  Int2                  ->   21
-  Int4                  ->   23
-  Regproc               ->   24
-  Text                  ->   25
-  Oid                   ->   26
-  Tid                   ->   27
-  Xid                   ->   28
-  Cid                   ->   29
-  Xml                   ->  142
-  Point                 ->  600
-  Lseg                  ->  601
-  Path                  ->  602
-  Box                   ->  603
-  Polygon               ->  604
-  Line                  ->  628
-  Cidr                  ->  650
-  Float4                ->  700
-  Float8                ->  701
-  Abstime               ->  702
-  Reltime               ->  703
-  Tinterval             ->  704
-  Unknown               ->  705
-  Circle                ->  718
-  Money                 ->  790
-  Macaddr               ->  829
-  Inet                  ->  869
-  Bpchar                -> 1042
-  Varchar               -> 1043
-  Date                  -> 1082
-  Time                  -> 1083
-  Timestamp             -> 1114
-  TimestampWithTimeZone -> 1184
-  Interval              -> 1186
-  TimeWithTimeZone      -> 1266
-  Bit                   -> 1560
-  Varbit                -> 1562
-  Numeric               -> 1700
-  Refcursor             -> 1790
-  Record                -> 2249
-  Void                  -> 2278
+  Bool        ->   16
+  ByteA       ->   17
+  Char        ->   18
+  Name        ->   19
+  Int8        ->   20
+  Int2        ->   21
+  Int4        ->   23
+  RegProc     ->   24
+  Text        ->   25
+  Oid         ->   26
+  Tid         ->   27
+  Xid         ->   28
+  Cid         ->   29
+  Xml         ->  142
+  Point       ->  600
+  LSeg        ->  601
+  Path        ->  602
+  Box         ->  603
+  Polygon     ->  604
+  Line        ->  628
+  Cidr        ->  650
+  Float4      ->  700
+  Float8      ->  701
+  AbsTime     ->  702
+  RelTime     ->  703
+  TInterval   ->  704
+  Unknown     ->  705
+  Circle      ->  718
+  Money       ->  790
+  MacAddr     ->  829
+  Inet        ->  869
+  BpChar      -> 1042
+  VarChar     -> 1043
+  Date        -> 1082
+  Time        -> 1083
+  Timestamp   -> 1114
+  TimestampTZ -> 1184
+  Interval    -> 1186
+  TimeTZ      -> 1266
+  Bit         -> 1560
+  VarBit      -> 1562
+  Numeric     -> 1700
+  RefCursor   -> 1790
+  Record      -> 2249
+  Void        -> 2278
 
 oid2builtin :: PQ.Oid -> Maybe BuiltinType
 oid2builtin (PQ.Oid x) = case x of
   16   -> Just Bool
-  17   -> Just Bytea
+  17   -> Just ByteA
   18   -> Just Char
   19   -> Just Name
   20   -> Just Int8
   21   -> Just Int2
   23   -> Just Int4
-  24   -> Just Regproc
+  24   -> Just RegProc
   25   -> Just Text
   26   -> Just Oid
   27   -> Just Tid
@@ -138,7 +138,7 @@
   29   -> Just Cid
   142  -> Just Xml
   600  -> Just Point
-  601  -> Just Lseg
+  601  -> Just LSeg
   602  -> Just Path
   603  -> Just Box
   604  -> Just Polygon
@@ -146,77 +146,77 @@
   650  -> Just Cidr
   700  -> Just Float4
   701  -> Just Float8
-  702  -> Just Abstime
-  703  -> Just Reltime
-  704  -> Just Tinterval
+  702  -> Just AbsTime
+  703  -> Just RelTime
+  704  -> Just TInterval
   705  -> Just Unknown
   718  -> Just Circle
   790  -> Just Money
-  829  -> Just Macaddr
+  829  -> Just MacAddr
   869  -> Just Inet
-  1042 -> Just Bpchar
-  1043 -> Just Varchar
+  1042 -> Just BpChar
+  1043 -> Just VarChar
   1082 -> Just Date
   1083 -> Just Time
   1114 -> Just Timestamp
-  1184 -> Just TimestampWithTimeZone
+  1184 -> Just TimestampTZ
   1186 -> Just Interval
-  1266 -> Just TimeWithTimeZone
+  1266 -> Just TimeTZ
   1560 -> Just Bit
-  1562 -> Just Varbit
+  1562 -> Just VarBit
   1700 -> Just Numeric
-  1790 -> Just Refcursor
+  1790 -> Just RefCursor
   2249 -> Just Record
   2278 -> Just Void
   _    -> Nothing
 
 builtin2typname :: BuiltinType -> ByteString
 builtin2typname typ = case typ of
-  Bool                  -> bool
-  Bytea                 -> bytea
-  Char                  -> char
-  Name                  -> name
-  Int8                  -> int8
-  Int2                  -> int2
-  Int4                  -> int4
-  Regproc               -> regproc
-  Text                  -> text
-  Oid                   -> oid
-  Tid                   -> tid
-  Xid                   -> xid
-  Cid                   -> cid
-  Xml                   -> xml
-  Point                 -> point
-  Lseg                  -> lseg
-  Path                  -> path
-  Box                   -> box
-  Polygon               -> polygon
-  Line                  -> line
-  Cidr                  -> cidr
-  Float4                -> float4
-  Float8                -> float8
-  Abstime               -> abstime
-  Reltime               -> reltime
-  Tinterval             -> tinterval
-  Unknown               -> unknown
-  Circle                -> circle
-  Money                 -> money
-  Macaddr               -> macaddr
-  Inet                  -> inet
-  Bpchar                -> bpchar
-  Varchar               -> varchar
-  Date                  -> date
-  Time                  -> time
-  Timestamp             -> timestamp
-  TimestampWithTimeZone -> timestamptz
-  Interval              -> interval
-  TimeWithTimeZone      -> timetz
-  Bit                   -> bit
-  Varbit                -> varbit
-  Numeric               -> numeric
-  Refcursor             -> refcursor
-  Record                -> record
-  Void                  -> void
+  Bool        -> bool
+  ByteA       -> bytea
+  Char        -> char
+  Name        -> name
+  Int8        -> int8
+  Int2        -> int2
+  Int4        -> int4
+  RegProc     -> regproc
+  Text        -> text
+  Oid         -> oid
+  Tid         -> tid
+  Xid         -> xid
+  Cid         -> cid
+  Xml         -> xml
+  Point       -> point
+  LSeg        -> lseg
+  Path        -> path
+  Box         -> box
+  Polygon     -> polygon
+  Line        -> line
+  Cidr        -> cidr
+  Float4      -> float4
+  Float8      -> float8
+  AbsTime     -> abstime
+  RelTime     -> reltime
+  TInterval   -> tinterval
+  Unknown     -> unknown
+  Circle      -> circle
+  Money       -> money
+  MacAddr     -> macaddr
+  Inet        -> inet
+  BpChar      -> bpchar
+  VarChar     -> varchar
+  Date        -> date
+  Time        -> time
+  Timestamp   -> timestamp
+  TimestampTZ -> timestamptz
+  Interval    -> interval
+  TimeTZ      -> timetz
+  Bit         -> bit
+  VarBit      -> varbit
+  Numeric     -> numeric
+  RefCursor   -> refcursor
+  Record      -> record
+  Void        -> void
 
 oid2typname :: PQ.Oid -> Maybe ByteString
 oid2typname (PQ.Oid x) = case x of
diff --git a/src/Database/PostgreSQL/Simple/FromField.hs b/src/Database/PostgreSQL/Simple/FromField.hs
--- a/src/Database/PostgreSQL/Simple/FromField.hs
+++ b/src/Database/PostgreSQL/Simple/FromField.hs
@@ -53,8 +53,7 @@
 import           Data.Int (Int16, Int32, Int64)
 import           Data.List (foldl')
 import           Data.Ratio (Ratio)
-import           Data.Time ( UTCTime, ZonedTime, LocalTime, Day, TimeOfDay
-                           , localTimeToUTC, utc )
+import           Data.Time ( UTCTime, ZonedTime, LocalTime, Day, TimeOfDay )
 import           Data.Typeable (Typeable, typeOf)
 import           Data.Word (Word64)
 import           Database.PostgreSQL.Simple.Internal
@@ -161,7 +160,7 @@
 unBinary (Binary x) = x
 
 instance FromField SB.ByteString where
-    fromField f dat = if typeOid f == builtin2oid Bytea
+    fromField f dat = if typeOid f == builtin2oid ByteA
                       then unBinary <$> fromField f dat
                       else doFromField f okText' (pure . B.copy) dat
 
@@ -196,19 +195,10 @@
     fromField f dat = ST.unpack <$> fromField f dat
 
 instance FromField UTCTime where
-  fromField f =
-    case oid2builtin (typeOid f) of
-      Just TimestampWithTimeZone -> doIt id parseUTCTime
-      Just Timestamp -> doIt (localTimeToUTC utc) parseLocalTime  -- deprecated
-      _ -> const $ returnError Incompatible f ""
-    where
-      doIt _finish _parse Nothing
-        = returnError UnexpectedNull f ""
-      doIt finish parse (Just bs)
-        = either (returnError ConversionFailed f) (pure . finish) (parse bs)
+  fromField = ff TimestampTZ "UTCTime" parseUTCTime
 
 instance FromField ZonedTime where
-  fromField = ff TimestampWithTimeZone "ZonedTime" parseZonedTime
+  fromField = ff TimestampTZ "ZonedTime" parseZonedTime
 
 instance FromField LocalTime where
   fromField = ff Timestamp "LocalTime" parseLocalTime
@@ -220,10 +210,10 @@
   fromField = ff Time "TimeOfDay" parseTimeOfDay
 
 instance FromField UTCTimestamp where
-  fromField = ff TimestampWithTimeZone "UTCTimestamp" parseUTCTimestamp
+  fromField = ff TimestampTZ "UTCTimestamp" parseUTCTimestamp
 
 instance FromField ZonedTimestamp where
-  fromField = ff TimestampWithTimeZone "ZonedTimestamp" parseZonedTimestamp
+  fromField = ff TimestampTZ "ZonedTimestamp" parseZonedTimestamp
 
 instance FromField LocalTimestamp where
   fromField = ff Timestamp "LocalTimestamp" parseLocalTimestamp
@@ -261,9 +251,9 @@
 compat (Compat a) (Compat b) = a .&. b /= 0
 
 okText, okText', okBinary, ok16, ok32, ok64, okInt :: Compat
-okText   = mkCompats [Name,Text,Char,Bpchar,Varchar]
-okText'  = mkCompats [Name,Text,Char,Bpchar,Varchar,Unknown]
-okBinary = mkCompats [Bytea]
+okText   = mkCompats [Name,Text,Char,BpChar,VarChar]
+okText'  = mkCompats [Name,Text,Char,BpChar,VarChar,Unknown]
+okBinary = mkCompats [ByteA]
 ok16 = mkCompats [Int2]
 ok32 = mkCompats [Int2,Int4]
 ok64 = mkCompats [Int2,Int4,Int8]
diff --git a/src/Database/PostgreSQL/Simple/ToField.hs b/src/Database/PostgreSQL/Simple/ToField.hs
--- a/src/Database/PostgreSQL/Simple/ToField.hs
+++ b/src/Database/PostgreSQL/Simple/ToField.hs
@@ -53,7 +53,7 @@
     -- ^ Escape and enclose in quotes before substituting. Use for all
     -- text-like types, and anything else that may contain unsafe
     -- characters when rendered.
-  | EscapeBytea ByteString
+  | EscapeByteA ByteString
     -- ^ Escape binary data for use as a @bytea@ literal.  Include surrounding
     -- quotes.  This is used by the 'Binary' newtype wrapper.
   | Many [Action]
@@ -63,7 +63,7 @@
 instance Show Action where
     show (Plain b)       = "Plain " ++ show (toByteString b)
     show (Escape b)      = "Escape " ++ show b
-    show (EscapeBytea b) = "EscapeBytea " ++ show b
+    show (EscapeByteA b) = "EscapeByteA " ++ show b
     show (Many b)        = "Many " ++ show b
 
 -- | A type that may be used as a single parameter to a SQL query.
@@ -158,11 +158,11 @@
     {-# INLINE toField #-}
 
 instance ToField (Binary SB.ByteString) where
-    toField (Binary bs) = EscapeBytea bs
+    toField (Binary bs) = EscapeByteA bs
     {-# INLINE toField #-}
 
 instance ToField (Binary LB.ByteString) where
-    toField (Binary bs) = (EscapeBytea . SB.concat . LB.toChunks) bs
+    toField (Binary bs) = (EscapeByteA . SB.concat . LB.toChunks) bs
     {-# INLINE toField #-}
 
 instance ToField SB.ByteString where
