diff --git a/TODO b/TODO
deleted file mode 100644
--- a/TODO
+++ /dev/null
@@ -1,17 +0,0 @@
-TODO
-----
-
-Check for space issues in development vs production modes
-  -- last thing before release
-
-document EVERYTHING.
-  -- low-level per-function documentation
-  -- mid-level per-module documentation
-  -- high-level design documentation
-
-Extract ghc options via TH to include in hint configuration.
-  -- wait for new release of hint
-
-Fix broken SIGINT handler installed by the ghc api via hint.
-  -- patch submitted for hint
-  -- I can work around this in my code if needed
diff --git a/project_template/default/foo.cabal b/project_template/default/foo.cabal
--- a/project_template/default/foo.cabal
+++ b/project_template/default/foo.cabal
@@ -18,10 +18,6 @@
   hs-source-dirs: src
   main-is: Main.hs
 
-  if flag(development)
-    cpp-options: -DDEVELOPMENT
-    build-depends: hint >= 0.3.2 && < 0.4
-
   Build-depends:
     base >= 4 && < 5,
     bytestring >= 0.9.1 && < 0.10,
@@ -37,10 +33,20 @@
 
   extensions: TypeSynonymInstances MultiParamTypeClasses
 
-  if impl(ghc >= 6.12.0)
-    ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields -O2
-                 -fno-warn-orphans -fno-warn-unused-do-bind
+  if flag(development)
+    cpp-options: -DDEVELOPMENT
+    build-depends: hint >= 0.3.2 && < 0.4
+    -- In development mode, speed is already going to suffer, so skip
+    -- the fancy optimization flags.  Additionally, disable all
+    -- warnings.  The hint library doesn't give an option to execute
+    -- compiled code when there were also warnings, so disabling
+    -- warnings allows quicker workflow.
+    ghc-options: -threaded -w
   else
-    ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields -O2
-                 -fno-warn-orphans
+    if impl(ghc >= 6.12.0)
+      ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields -O2
+                   -fno-warn-orphans -fno-warn-unused-do-bind
+    else
+      ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields -O2
+                   -fno-warn-orphans
 
diff --git a/project_template/default/src/Snap/Extension/Timer/Impl.hs b/project_template/default/src/Snap/Extension/Timer/Impl.hs
--- a/project_template/default/src/Snap/Extension/Timer/Impl.hs
+++ b/project_template/default/src/Snap/Extension/Timer/Impl.hs
@@ -36,7 +36,7 @@
 
 
 ------------------------------------------------------------------------------
--- | For you appliaction's monad to be a 'MonadTimer', your application's
+-- | For your application's monad to be a 'MonadTimer', your application's
 -- state needs to be an instance of 'HasTimerState'. Minimal complete
 -- definition: 'getTimerState', 'setTimerState'.
 class HasTimerState s where
diff --git a/snap.cabal b/snap.cabal
--- a/snap.cabal
+++ b/snap.cabal
@@ -1,5 +1,5 @@
 name:           snap
-version:        0.4
+version:        0.4.1
 synopsis:       Snap: A Haskell Web Framework: project starter executable and glue code library
 description:    Snap Framework project starter executable and glue code library
 license:        BSD3
@@ -16,7 +16,6 @@
   LICENSE,
   README.md,
   README.SNAP.md,
-  TODO,
   project_template/barebones/foo.cabal,
   project_template/barebones/src/Main.hs,
   project_template/default/foo.cabal,
@@ -62,7 +61,7 @@
     enumerator == 0.4.*,
     filepath >= 1.1 && <1.3,
     MonadCatchIO-transformers >= 0.2.1 && < 0.3,
-    snap-core == 0.4.*,
+    snap-core >= 0.4.1 && <0.5,
     heist >= 0.5 && < 0.6,
     hint >= 0.3.3.1 && < 0.4,
     template-haskell >= 2.3 && < 2.6,
@@ -101,8 +100,8 @@
     mtl >= 2,
     old-locale,
     old-time,
-    snap-core >= 0.4 && <0.5,
-    snap-server >= 0.4 && <0.5,
+    snap-core >= 0.4.1 && <0.5,
+    snap-server >= 0.4.1 && <0.5,
     template-haskell >= 2.3 && < 2.6,
     text >= 0.11 && <0.12,
     time,
diff --git a/src/Snap/Extension.hs b/src/Snap/Extension.hs
--- a/src/Snap/Extension.hs
+++ b/src/Snap/Extension.hs
@@ -37,7 +37,6 @@
 import           Control.Monad
 import           Control.Monad.CatchIO
 import           Control.Monad.Reader
-import           Control.Monad.Trans
 import           Data.ByteString (ByteString)
 import qualified Data.ByteString.Char8 as B
 import           Data.Monoid
diff --git a/src/Snap/Extension/Heist/Impl.hs b/src/Snap/Extension/Heist/Impl.hs
--- a/src/Snap/Extension/Heist/Impl.hs
+++ b/src/Snap/Extension/Heist/Impl.hs
@@ -92,7 +92,7 @@
 
 
 ------------------------------------------------------------------------------
--- | For you appliaction's monad to be a 'MonadHeist', your application's
+-- | For your application's monad to be a 'MonadHeist', your application's
 -- state needs to be an instance of 'HasHeistState'. Minimal complete
 -- definition: 'getHeistState', 'setHeistState'.
 --
