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
+Version:             0.1.1
 Synopsis:            Mid-Level PostgreSQL client library
 Description:
     Mid-Level PostgreSQL client library, forked from mysql-simple.
@@ -63,4 +63,4 @@
 source-repository this
   type:     git
   location: http://github.com/lpsmith/postgresql-simple
-  tag:      v0.1
+  tag:      v0.1.1
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
@@ -597,9 +597,9 @@
   where
     isolevel = case isolationLevel mode of
                  DefaultIsolationLevel -> ""
-                 ReadCommitted  -> " READ COMMITTED"
-                 RepeatableRead -> " REPEATABLE READ"
-                 Serializable   -> " SERIALIZABLE"
+                 ReadCommitted  -> " ISOLATION LEVEL READ COMMITTED"
+                 RepeatableRead -> " ISOLATION LEVEL REPEATABLE READ"
+                 Serializable   -> " ISOLATION LEVEL SERIALIZABLE"
     readmode = case readWriteMode mode of
                  DefaultReadWriteMode -> ""
                  ReadWrite -> " READ WRITE"
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
@@ -59,11 +59,9 @@
 import           Data.Word (Word64)
 import           Database.PostgreSQL.Simple.Internal
 import           Database.PostgreSQL.Simple.BuiltinTypes
--- import qualified Database.PostgreSQ
 import           Database.PostgreSQL.Simple.Ok
 import           Database.PostgreSQL.Simple.Types (Binary(..), Null(..))
 import qualified Database.PostgreSQL.LibPQ as PQ
--- import           Database.PostgreSQL.LibPQ (Format(..), Oid(..))
 import           System.IO.Unsafe (unsafePerformIO)
 import           System.Locale (defaultTimeLocale)
 import qualified Data.ByteString as SB
diff --git a/src/Database/PostgreSQL/Simple/LargeObjects.hs b/src/Database/PostgreSQL/Simple/LargeObjects.hs
--- a/src/Database/PostgreSQL/Simple/LargeObjects.hs
+++ b/src/Database/PostgreSQL/Simple/LargeObjects.hs
@@ -1,10 +1,19 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Database.PostgreSQL.Simple.LargeObjects
--- Copyright   :  (c) 2011 Leon P Smith
+-- Copyright   :  (c) 2011-2012 Leon P Smith
 -- License     :  BSD3
 --
 -- Maintainer  :  leon@melding-monads.com
+--
+-- Support for PostgreSQL's Large Objects;  see
+-- <http://www.postgresql.org/docs/9.1/static/largeobjects.html> for more
+-- information.
+--
+-- Note that Large Object File Descriptors are only valid within a single
+-- database transaction,  so if you are interested in using anything beyond
+-- 'loCreat', 'loImport', 'loExport', and 'loUnlink',  you will need to run
+-- the entire sequence of functions in a transaction.
 --
 -----------------------------------------------------------------------------
 
diff --git a/src/Database/PostgreSQL/Simple/Notification.hs b/src/Database/PostgreSQL/Simple/Notification.hs
--- a/src/Database/PostgreSQL/Simple/Notification.hs
+++ b/src/Database/PostgreSQL/Simple/Notification.hs
@@ -3,12 +3,17 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Database.PostgreSQL.Simple.Notification
--- Copyright   :  (c) 2011 Leon P Smith
+-- Copyright   :  (c) 2011-2012 Leon P Smith
 -- License     :  BSD3
 --
 -- Maintainer  :  leon@melding-monads.com
 -- Stability   :  experimental
 --
+-- Support for receiving asynchronous notifications via PostgreSQL's
+-- Listen/Notify mechanism.  See
+-- <http://www.postgresql.org/docs/9.1/static/sql-notify.html> for more
+-- information.
+--
 -----------------------------------------------------------------------------
 
 module Database.PostgreSQL.Simple.Notification
@@ -23,15 +28,19 @@
 import qualified Database.PostgreSQL.LibPQ as PQ
 import           System.Posix.Types ( CPid )
 
-data Notification  = Notification
-                      { notificationPid     :: CPid
-                      , notificationChannel :: B.ByteString
-                      , notificationData    :: B.ByteString
-                      }
+data Notification = Notification
+   { notificationPid     :: !CPid
+   , notificationChannel :: !B.ByteString
+   , notificationData    :: !B.ByteString
+   }
 
 errfd :: String
 errfd   = "Database.PostgreSQL.Simple.Notification.getNotification: \
           \failed to fetch file descriptor"
+
+
+-- | Returns a single notification.   If no notifications are available,
+--   'getNotification' blocks until one arrives.
 
 getNotification :: Connection -> IO Notification
 getNotification = loop False
diff --git a/src/Database/PostgreSQL/Simple/Ok.hs b/src/Database/PostgreSQL/Simple/Ok.hs
--- a/src/Database/PostgreSQL/Simple/Ok.hs
+++ b/src/Database/PostgreSQL/Simple/Ok.hs
@@ -1,6 +1,34 @@
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveFunctor      #-}
 
+------------------------------------------------------------------------------
+-- |
+-- Module      :  Database.PostgreSQL.Simple.Ok
+-- Copyright   :  (c) 2011-2012 Leon P Smith
+-- License     :  BSD3
+--
+-- Maintainer  :  leon@melding-monads.com
+-- Stability   :  experimental
+--
+-- The 'Ok' type is a simple error handler,  basically equivalent to
+-- @Either [SomeException]@.   This type (without the list) was used to
+-- handle conversion errors in early versions of postgresql-simple.
+--
+-- One of the primary reasons why this type  was introduced is that
+-- @Either SomeException@ had not been provided an instance for 'Alternative',
+-- and it would have been a bad idea to provide an orphaned instance for a
+-- commonly-used type and typeclass included in @base@.
+--
+-- Extending the failure case to a list of 'SomeException's enables a
+-- more sensible 'Alternative' instance definitions:   '<|>' concatinates
+-- the list of exceptions when both cases fail,  and 'empty' is defined as
+-- 'Errors []'.   Though '<|>' one could pick one of two exceptions, and
+-- throw away the other,  and have 'empty' provide a generic exception,
+-- this avoids cases where 'empty' overrides a more informative exception
+-- and allows you to see all the different ways your computation has failed.
+--
+------------------------------------------------------------------------------
+
 module Database.PostgreSQL.Simple.Ok where
 
 import Control.Applicative
@@ -8,16 +36,15 @@
 import Control.Monad(MonadPlus(..))
 import Data.Typeable
 
-newtype ManyErrors = ManyErrors [SomeException] 
-   deriving (Show, Typeable)
-
-instance Exception ManyErrors
-
--- FIXME:   [SomeException] should probably be a difference list
+-- FIXME:   [SomeException] should probably be something else,  maybe
+--          a difference list (or a tree?)
 
 data Ok a = Errors [SomeException] | Ok !a
     deriving(Show, Typeable, Functor)
 
+-- | Two 'Errors' cases are considered equal, regardless of what the
+--   list of exceptions looks like.
+
 instance Eq a => Eq (Ok a) where
     Errors _ == Errors _  = True
     Ok  a    == Ok  b     = a == b
@@ -37,7 +64,6 @@
     Errors _  <|> b@(Ok _)  = b
     Errors as <|> Errors bs = Errors (as ++ bs)
 
-
 instance MonadPlus Ok where
     mzero = empty
     mplus = (<|>)
@@ -47,9 +73,12 @@
 
     Errors es >>= _ = Errors es
     Ok a      >>= f = f a
-    -- TODO:  add a definition for "fail",  akin to
 
-    -- fail str = Errors [SomeException (error str)]
+    fail str = Errors [SomeException (ErrorCall str)]
 
-    -- but *correct*,  as this will throw an exception if you try to
-    -- examine the exception.
+-- | a way to reify a list of exceptions into a single exception
+
+newtype ManyErrors = ManyErrors [SomeException]
+   deriving (Show, Typeable)
+
+instance Exception ManyErrors
