diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -8,7 +8,7 @@
 
 === unix-bytestring license ===
 
-Copyright (c) 2010, 2011, wren ng thornton.
+Copyright (c) 2010, 2011, 2012, wren ng thornton.
 ALL RIGHTS RESERVED.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/README b/README
new file mode 100644
--- /dev/null
+++ b/README
@@ -0,0 +1,86 @@
+unix-bytestring
+===============
+
+In general, this is a simple package and should be easy to install.
+You must have hsc2hs installed in order to compile the package (but
+then you probably already do). With the cabal-install program you
+can just do:
+
+    $> cabal install unix-bytestring
+
+Or if you don't have cabal-install, then you can use the Cabal library:
+
+    $> runhaskell Setup.hs configure
+    $> runhaskell Setup.hs build
+    $> runhaskell Setup.hs test
+    $> runhaskell Setup.hs haddock --hyperlink-source
+    $> runhaskell Setup.hs install
+
+
+FFI Problems
+============
+
+The unix-bytestring package uses standard POSIX header files
+<sys/types.h>, <sys/uio.h>, and <unistd.h>. If Cabal has difficulty
+finding these files or reports another error, be sure your include
+path variables are correct. If the problem persists, contact the
+maintainer.
+
+
+Building for GHC (6.8 and above)
+================================
+
+Nothing special to mention. 
+
+
+Building for Hugs (September 2006)
+==================================
+
+I haven't actually compiled this for Hugs because I don't have a
+new enough version of Cabal for it, but I don't forsee any difficulties.
+If you do compile this for Hugs, let the maintainer know how it
+went.
+
+When compiling for Hugs, see the following bugs for Cabal's interaction
+with ffihugs. These bugs do not currently affect this package, but
+this notice is here in case they affect future versions. For more
+details and a minimal regression suite, see:
+
+    <http://community.haskell.org/~wren/cabal-ffihugstest/>
+
+
+(1) <http://hackage.haskell.org/trac/hackage/ticket/526>
+Options in hugs-options aren't passed through to ffihugs, most
+importantly -98 and +o are the ones we'd like to pass. For enabling
+the +o flag Hugs-Sept06 does not honor:
+    pragma    {-# LANGUAGE OverlappingInstances #-}
+    pragma    {-# OPTIONS_HUGS +o #-}
+    cabal     extensions: OverlappingInstances
+And the -98 flag has similar issues. Therefore this is a real
+problem.
+
+Immediate solution: The options set in hugs-options should be passed
+to ffihugs as well. As of Cabal 1.6 they are not passed (verified
+by Duncan Coutts). The two programs accept all the same options,
+so this is valid.
+
+Ideal solution: Based on the extensions field, Cabal should
+automatically determine whether -98 and +o need to be enabled (for
+both hugs and ffihugs).
+
+
+(2) <http://hackage.haskell.org/trac/hackage/ticket/527>
+If CPP is being used in conjunction with FFI, then cpp/cpphs is not
+called before ffihugs is called. Thus, users must pass an -F flag
+to ffihugs in order to declare a code filter (and must pass all
+cpp-options to -F manually). For example:
+
+    --ffihugs-option=-F'cpp -P -traditional -D__HUGS__ -D__BLAH__'
+
+This requires duplicating the build specifications, which defeats
+the point of Cabal. Also it leads to tricky issues about ensuring
+the proper level of quoting/escaping. (e.g. using the plural,
+--ffihugs-options=..., breaks it. Wrapping the -F'cpp...' in double
+quotes breaks it.)
+
+----------------------------------------------------------- fin.
diff --git a/VERSION b/VERSION
new file mode 100644
--- /dev/null
+++ b/VERSION
@@ -0,0 +1,48 @@
+0.3.5.3 (2012-02-21):
+	- Foreign.C.Error.Safe: changed (Num a) to (Eq a, Num a) for GHC 7.4
+0.3.5 (2011-06-29):
+	- System.Posix.IO.ByteString: added fdSeek, tryFdSeek.
+	- Foreign.C.Error.Safe: added.
+0.3.4.1 (2011-04-03):
+	- LICENSE: corrected license for the fdReadBuf and fdWriteBuf functions
+0.3.4 (2011-03-26):
+	- System.Posix.IO.ByteString.Lazy: Fixed functions to check (<=0) instead of (==0)
+0.3.3 (2011-03-26):
+	- System.Posix.IO.ByteString: added tryFdReadBuf, tryFdReadvBuf, tryFdPreadBuf, tryFdWriteBuf, tryFdWritevBuf, tryFdPwriteBuf
+0.3.2.1 (2011-03-20):
+	- Changed the cabal category label to System
+	- Uploaded to Hackage
+0.3.2 (2011-03-17):
+    - Removed the dependency on @unix@.
+0.3.1 (2011-03-07):
+    - System.Posix.IO.ByteString: added fdPreads
+    - System.Posix.IO.ByteString.Lazy: added fdPread
+0.3.0 (2011-03-07):
+    - System.Posix.IO.ByteString: added fdReadvBuf, exposed fdWritevBuf
+    - System.Posix.IO.ByteString: added fdReadBuf and fdWriteBuf for compatibility with older versions of the @unix@ package
+    - System.Posix.IO.ByteString: added fdPread, fdPreadBuf
+    - System.Posix.IO.ByteString: added fdPwrite, fdPwriteBuf
+
+0.2.1 (2011-03-06):
+    - Added a custom build in order to define __HADDOCK__ when appropriate.
+    - System.Posix.IO.ByteString: added fdReads
+0.2.0 (2011-03-05):
+    - Corrected the specifications (writev etc is XPG4.2, not POSIX)
+    - Added some extra #includes for legacy reasons
+    - Changed stability to experimental.
+    - Added new module System.Posix.Types.Iovec
+    - System.Posix.IO.ByteString.Lazy: added fdWritev
+    - System.Posix.IO.ByteString.Lazy: changed fdWrite to fdWrites
+    - System.Posix.IO.ByteString: added fdWrites and fdWritev
+    - Renamed package to unix-bytestring
+
+0.1.0 (2011-02-27):
+    - Moved Data.ByteString.Posix to System.Posix.IO.ByteString
+    - Moved Data.ByteString.Lazy.Posix to System.Posix.IO.ByteString.Lazy
+
+0.0.2 (2011-02-20):
+    - Fixed stack overflow possibility in Lazy.fdWrite
+0.0.1 (2010-11-10):
+    - Added lazy variants
+0.0.0 (2010-11-10):
+    - Initial version forked from Posta-IPC
diff --git a/src/Foreign/C/Error/Safe.hs b/src/Foreign/C/Error/Safe.hs
--- a/src/Foreign/C/Error/Safe.hs
+++ b/src/Foreign/C/Error/Safe.hs
@@ -1,10 +1,10 @@
 
 {-# OPTIONS_GHC -Wall -fwarn-tabs #-}
 ----------------------------------------------------------------
---                                                    2011.06.29
+--                                                    2012.02.21
 -- |
 -- Module      :  Foreign.C.Error.Safe
--- Copyright   :  Copyright (c) 2010--2011 wren ng thornton
+-- Copyright   :  Copyright (c) 2010--2012 wren ng thornton
 -- License     :  BSD
 -- Maintainer  :  wren@community.haskell.org
 -- Stability   :  provisional
@@ -99,14 +99,14 @@
 
 ----------------------------------------------------------------
 
-eitherErrnoIfMinus1 :: (Num a) => IO a -> IO (Either C.Errno a)
+eitherErrnoIfMinus1 :: (Eq a, Num a) => IO a -> IO (Either C.Errno a)
 eitherErrnoIfMinus1 = eitherErrnoIf (-1 ==)
 
-eitherErrnoIfMinus1Retry :: (Num a) => IO a -> IO (Either C.Errno a)
+eitherErrnoIfMinus1Retry :: (Eq a, Num a) => IO a -> IO (Either C.Errno a)
 eitherErrnoIfMinus1Retry = eitherErrnoIfRetry (-1 ==)
 
 eitherErrnoIfMinus1RetryMayBlock
-    :: (Num a) => IO a -> IO b -> IO (Either C.Errno a)
+    :: (Eq a, Num a) => IO a -> IO b -> IO (Either C.Errno a)
 eitherErrnoIfMinus1RetryMayBlock =
     eitherErrnoIfRetryMayBlock (-1 ==)
 
diff --git a/src/System/Posix/IO/ByteString.hsc b/src/System/Posix/IO/ByteString.hsc
--- a/src/System/Posix/IO/ByteString.hsc
+++ b/src/System/Posix/IO/ByteString.hsc
@@ -14,7 +14,7 @@
 --                                                    2011.06.29
 -- |
 -- Module      :  System.Posix.IO.ByteString
--- Copyright   :  Copyright (c) 2010--2011 wren ng thornton
+-- Copyright   :  Copyright (c) 2010--2012 wren ng thornton
 -- License     :  BSD
 -- Maintainer  :  wren@community.haskell.org
 -- Stability   :  experimental
diff --git a/src/System/Posix/IO/ByteString/Lazy.hs b/src/System/Posix/IO/ByteString/Lazy.hs
--- a/src/System/Posix/IO/ByteString/Lazy.hs
+++ b/src/System/Posix/IO/ByteString/Lazy.hs
@@ -3,7 +3,7 @@
 --                                                    2011.03.17
 -- |
 -- Module      :  System.Posix.IO.ByteString.Lazy
--- Copyright   :  Copyright (c) 2010--2011 wren ng thornton
+-- Copyright   :  Copyright (c) 2010--2012 wren ng thornton
 -- License     :  BSD
 -- Maintainer  :  wren@community.haskell.org
 -- Stability   :  experimental
diff --git a/src/System/Posix/Types/Iovec.hsc b/src/System/Posix/Types/Iovec.hsc
--- a/src/System/Posix/Types/Iovec.hsc
+++ b/src/System/Posix/Types/Iovec.hsc
@@ -4,7 +4,7 @@
 --                                                    2011.03.17
 -- |
 -- Module      :  System.Posix.Types.Iovec
--- Copyright   :  Copyright (c) 2010--2011 wren ng thornton
+-- Copyright   :  Copyright (c) 2010--2012 wren ng thornton
 -- License     :  BSD
 -- Maintainer  :  wren@community.haskell.org
 -- Stability   :  experimental
diff --git a/unix-bytestring.cabal b/unix-bytestring.cabal
--- a/unix-bytestring.cabal
+++ b/unix-bytestring.cabal
@@ -1,20 +1,23 @@
 ----------------------------------------------------------------
--- wren ng thornton <wren@community.haskell.org>    ~ 2011.06.28
+-- wren ng thornton <wren@community.haskell.org>    ~ 2012.02.21
 ----------------------------------------------------------------
 
-Name:           unix-bytestring
-Version:        0.3.5
--- Source-Repository requires version 1.6
+-- By and large Cabal >=1.2 is fine; but >= 1.6 gives tested-with:
+-- and source-repository:.
 Cabal-Version:  >= 1.6
 -- We need a custom build in order to define __HADDOCK__
 Build-Type:     Custom
+
+Name:           unix-bytestring
+Version:        0.3.5.3
 Stability:      experimental
-Copyright:      Copyright (c) 2010--2011 wren ng thornton
-License:        BSD3
-License-File:   LICENSE
+Homepage:       http://code.haskell.org/~wren/
 Author:         wren ng thornton
 Maintainer:     wren@community.haskell.org
-Homepage:       http://code.haskell.org/~wren/
+Copyright:      Copyright (c) 2010--2012 wren ng thornton
+License:        BSD3
+License-File:   LICENSE
+
 Category:       System
 Synopsis:       Unix/Posix-specific functions for ByteStrings.
 Description:    Unix\/Posix-specific functions for ByteStrings.
@@ -30,7 +33,10 @@
     dependency. But you'll need it in order to get your hands on
     an @Fd@, so we're not offering a complete replacement.
 
-Tested-With:    GHC == 6.12.1, GHC == 6.12.3
+Tested-With:
+    GHC == 6.12.1, GHC == 6.12.3
+Extra-source-files:
+    README, VERSION
 Source-Repository head
     Type:     darcs
     Location: http://community.haskell.org/~wren/unix-bytestring
