diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -43,9 +43,9 @@
 
 For example, these are all acceptable:
 
-    bytestring ##0.9.2.1
-    bytestring ># 0.9.2.1 && < 0.10
-    bytestring ># 0.9.2.1
+    bytestring ==0.9.2.1
+    bytestring >= 0.9.2.1 && < 0.10
+    bytestring >= 0.9.2.1
 
 This is not acceptable because there is no bound at all:
 
@@ -53,7 +53,7 @@
 
 This is not acceptable because there is no lower bound:
 
-    bytestring <# 0.10
+    bytestring <= 0.10
 
 Then you build a test executable.  An example is in the
 `sunlight-test.hs` file in the sunlight git tree.  This program
@@ -78,6 +78,9 @@
 
 sunlight works on simple Cabal files but I have not tested it on any
 exotic files.
+
+sunlight makes no effort to be compatible with any Haskell compiler
+other than GHC.
 
 ## See also
 
diff --git a/lib/Test/Sunlight.hs b/lib/Test/Sunlight.hs
--- a/lib/Test/Sunlight.hs
+++ b/lib/Test/Sunlight.hs
@@ -1,5 +1,12 @@
 {-# LANGUAGE OverloadedStrings #-}
-module Test.Sunlight where
+module Test.Sunlight
+  ( Description
+  , Compiler
+  , GhcPkg
+  , Cabal
+  , TestInputs(..)
+  , runTests
+  ) where
 
 import Distribution.Package
 import Distribution.Text
diff --git a/lib/Test/Sunlight/Shell.hs b/lib/Test/Sunlight/Shell.hs
--- a/lib/Test/Sunlight/Shell.hs
+++ b/lib/Test/Sunlight/Shell.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
-module Test.Sunlight.Shell where
 
+-- | Utilities for dealing with subprocesses.
+module Test.Sunlight.Shell where
 
 import qualified Data.ByteString as BS
 import qualified Data.ByteString.Char8 as BS8
@@ -61,6 +62,7 @@
 bufsize :: Int
 bufsize = 512
 
+-- | The result of running a command.
 data CmdResult = CmdResult
   { crCode :: ExitCode
   , crStdOut :: BS.ByteString
@@ -69,6 +71,9 @@
   , crArgs :: [String]
   } deriving Show
 
+-- | Show something as a human-readable ByteString.  Since the
+-- programs we'll be most interested in are outputting nothing but
+-- ASCII, it's acceptable to just deal with Char8 bytestrings here.
 class ShowBS a where
   showBS :: a -> BS.ByteString
 
@@ -94,11 +99,7 @@
   showBS = BS8.pack . show
 
 
-resultOk :: CmdResult -> Bool
-resultOk c = case crCode c of
-  ExitSuccess -> True
-  _ -> False
-
+-- | Things that can be checked to see if they passed or failed.
 class CheckOk a where
   isOk :: a -> Bool
 
diff --git a/sunlight.cabal b/sunlight.cabal
--- a/sunlight.cabal
+++ b/sunlight.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                sunlight
-version:             0.2.0.0
+version:             0.4.0.0
 synopsis:            Test Cabalized package against multiple dependency versions
 
 description:         
@@ -35,7 +35,9 @@
 library
   exposed-modules:
       Test.Sunlight
-    , Test.Sunlight.Shell
+
+  other-modules:
+      Test.Sunlight.Shell
 
   build-depends:
       base >=4.5.1.0 && < 5
