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
@@ -42,7 +42,7 @@
   else
     build-depends:
       base                      >= 4.4      && < 5,
-      lens                      >= 3.7.6    && < 4.9
+      lens                      >= 3.7.6    && < 4.10
 
   if flag(development)
     build-depends:
diff --git a/project_template/tutorial/foo.cabal b/project_template/tutorial/foo.cabal
--- a/project_template/tutorial/foo.cabal
+++ b/project_template/tutorial/foo.cabal
@@ -33,7 +33,7 @@
   else
     build-depends:
       base                      >= 4.4      && < 5,
-      lens                      >= 3.7.6    && < 4.9
+      lens                      >= 3.7.6    && < 4.10
 
   if impl(ghc >= 6.12.0)
     ghc-options: -threaded -Wall -fwarn-tabs -funbox-strict-fields -O2
diff --git a/snap.cabal b/snap.cabal
--- a/snap.cabal
+++ b/snap.cabal
@@ -1,5 +1,5 @@
 name:           snap
-version:        0.14.0.1
+version:        0.14.0.2
 synopsis:       Top-level package for the Snap Web Framework
 description:
     This is the top-level package for the official Snap Framework libraries.
@@ -187,7 +187,7 @@
   else
     build-depends:
       base                      >= 4.4      && < 5,
-      lens                      >= 3.7.6    && < 4.9
+      lens                      >= 3.7.6    && < 4.10
 
   extensions:
     BangPatterns,
diff --git a/src/Snap/Snaplet/Heist.hs b/src/Snap/Snaplet/Heist.hs
--- a/src/Snap/Snaplet/Heist.hs
+++ b/src/Snap/Snaplet/Heist.hs
@@ -337,14 +337,13 @@
 
 
 -- $spliceSection
--- As can be seen in the type signature of heistLocal, the internal
--- HeistState used by the heist snaplet is parameterized by (Handler b b).
--- The reasons for this are beyond the scope of this discussion, but the
--- result is that 'lift' inside a splice only works with @Handler b b@
--- actions.  When you're writing your own snaplets you obviously would rather
--- work with @Handler b v@ so your local snaplet's state is available.  We
--- provide the SnapletHeist monad to make this possible.  The general rule is
--- that when you're using Snaplets and Heist, use SnapletHeist instead of
--- HeistT (previously called TemplateMonad) and use SnapletISplice instead of
--- Splice.
+-- The type signature for SnapletHeist uses @(Handler b b)@ as the Heist
+-- snaplet's runtime monad.  This means that your splices must use the
+-- top-level snaplet's @Handler b b@ monad.  The reasons for this are beyond
+-- the scope of this discussion, but the result is that 'lift' inside a splice
+-- only works with @Handler b b@ actions.  When you're writing your own
+-- snaplets using some snaplet-specific monad @Handler b v@ you still have to
+-- use @Handler b b@ for your splices.  If the splices need any of the context
+-- provided by the @v@, you must pass it in as a parameter to the splice
+-- function.
 
diff --git a/test/snap-testsuite.cabal b/test/snap-testsuite.cabal
--- a/test/snap-testsuite.cabal
+++ b/test/snap-testsuite.cabal
@@ -66,7 +66,7 @@
   else
     build-depends:
       base                      >= 4.4      && < 5,
-      lens                      >= 3.7.6    && < 4.9
+      lens                      >= 3.7.6    && < 4.10
 
 
   extensions:
@@ -138,7 +138,7 @@
   else
     build-depends:
       base                      >= 4.4      && < 5,
-      lens                      >= 3.7.6    && < 4.9
+      lens                      >= 3.7.6    && < 4.10
 
   extensions:
     BangPatterns,
@@ -220,7 +220,7 @@
   else
     build-depends:
       base                      >= 4.4      && < 5,
-      lens                      >= 3.7.6    && < 4.9
+      lens                      >= 3.7.6    && < 4.10
 
 
   extensions:
