diff --git a/heist.cabal b/heist.cabal
--- a/heist.cabal
+++ b/heist.cabal
@@ -1,5 +1,5 @@
 name:           heist
-version:        0.14.0
+version:        0.14.0.1
 synopsis:       An Haskell template system supporting both HTML5 and XML.
 description:
     Heist is a powerful template system that supports both HTML5 and XML.
@@ -156,7 +156,7 @@
     map-syntax                 >= 0.2     && < 0.3,
     mtl                        >= 2.0     && < 2.3,
     process                    >= 1.1     && < 1.3,
-    random                     >= 1.0.1.0 && < 1.1,
+    random                     >= 1.0.1.0 && < 1.2,
     text                       >= 0.10    && < 1.3,
     time                       >= 1.1     && < 1.5,
     transformers               >= 0.3     && < 0.5,
diff --git a/src/Heist.hs b/src/Heist.hs
--- a/src/Heist.hs
+++ b/src/Heist.hs
@@ -24,10 +24,11 @@
   , initHeistWithCacheTag
   , defaultInterpretedSplices
   , defaultLoadTimeSplices
+  , emptyHeistConfig
 
   -- * Core Heist data types
-  , SpliceConfig(..)
-  , HeistConfig(..)
+  , SpliceConfig
+  , HeistConfig
   , TemplateRepo
   , TemplateLocation
   , Template
@@ -135,6 +136,13 @@
     ignoreTag ## ignoreImpl
     markdownTag ## markdownSplice
 
+
+
+------------------------------------------------------------------------------
+-- | An empty HeistConfig that uses the \"h\" namespace with error checking
+-- turned on.
+emptyHeistConfig :: HeistConfig m
+emptyHeistConfig = HeistConfig mempty "h" True
 
 
 allErrors :: [Either String (TPath, v)]
diff --git a/src/Heist/Internal/Types.hs b/src/Heist/Internal/Types.hs
--- a/src/Heist/Internal/Types.hs
+++ b/src/Heist/Internal/Types.hs
@@ -76,7 +76,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (SpliceConfig m) (Splices (I.Splice m))
+-- | Lens for interpreted splices
+-- :: Simple Lens (SpliceConfig m) (Splices (I.Splice m))
 scInterpretedSplices
     :: Functor f
     => (Splices (I.Splice m) -> f (Splices (I.Splice m)))
@@ -87,7 +88,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (SpliceConfig m) (Splices (I.Splice IO))
+-- | Lens for load time splices
+-- :: Simple Lens (SpliceConfig m) (Splices (I.Splice IO))
 scLoadTimeSplices
     :: Functor f
     => (Splices (I.Splice IO) -> f (Splices (I.Splice IO)))
@@ -98,7 +100,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (SpliceConfig m) (Splices (C.Splice m))
+-- | Lens for complied splices
+-- :: Simple Lens (SpliceConfig m) (Splices (C.Splice m))
 scCompiledSplices
     :: Functor f
     => (Splices (C.Splice m) -> f (Splices (C.Splice m)))
@@ -109,7 +112,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (SpliceConfig m) (Splices (AttrSplice m))
+-- | Lens for attribute splices
+-- :: Simple Lens (SpliceConfig m) (Splices (AttrSplice m))
 scAttributeSplices
     :: Functor f
     => (Splices (AttrSplice m) -> f (Splices (AttrSplice m)))
@@ -120,7 +124,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (SpliceConfig m) [TemplateLocation]
+-- | Lens for template locations
+-- :: Simple Lens (SpliceConfig m) [TemplateLocation]
 scTemplateLocations
     :: Functor f
     => ([TemplateLocation] -> f [TemplateLocation])
@@ -151,7 +156,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (HeistConfig m) (SpliceConfig m)
+-- | Lens for the SpliceConfig
+-- :: Simple Lens (HeistConfig m) (SpliceConfig m)
 hcSpliceConfig
     :: Functor f
     => ((SpliceConfig m) -> f (SpliceConfig m))
@@ -162,7 +168,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (HeistConfig m) Text
+-- | Lens for the namespace
+-- :: Simple Lens (HeistConfig m) Text
 hcNamespace
     :: Functor f
     => (Text -> f Text)
@@ -173,7 +180,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (HeistConfig m) Bool
+-- | Lens for the namespace error flag
+-- :: Simple Lens (HeistConfig m) Bool
 hcErrorNotBound
     :: Functor f
     => (Bool -> f Bool)
@@ -184,7 +192,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (HeistConfig m) (Splices (I.Splice m))
+-- | Lens for interpreted splices
+-- :: Simple Lens (HeistConfig m) (Splices (I.Splice m))
 hcInterpretedSplices
     :: Functor f
     => (Splices (I.Splice m) -> f (Splices (I.Splice m)))
@@ -193,7 +202,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (HeistConfig m) (Splices (I.Splice IO))
+-- | Lens for load time splices
+-- :: Simple Lens (HeistConfig m) (Splices (I.Splice IO))
 hcLoadTimeSplices
     :: Functor f
     => (Splices (I.Splice IO) -> f (Splices (I.Splice IO)))
@@ -202,7 +212,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (HeistConfig m) (Splices (C.Splice m))
+-- | Lens for compiled splices
+-- :: Simple Lens (HeistConfig m) (Splices (C.Splice m))
 hcCompiledSplices
     :: Functor f
     => (Splices (C.Splice m) -> f (Splices (C.Splice m)))
@@ -211,7 +222,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (HeistConfig m) (Splices (AttrSplice m))
+-- | Lens for attribute splices
+-- :: Simple Lens (HeistConfig m) (Splices (AttrSplice m))
 hcAttributeSplices
     :: Functor f
     => (Splices (AttrSplice m) -> f (Splices (AttrSplice m)))
@@ -220,7 +232,8 @@
 
 
 ------------------------------------------------------------------------------
--- | :: Simple Lens (HeistConfig m) [TemplateLocation]
+-- | Lens for template locations
+-- :: Simple Lens (HeistConfig m) [TemplateLocation]
 hcTemplateLocations
     :: Functor f
     => ([TemplateLocation] -> f [TemplateLocation])
diff --git a/src/Heist/TemplateDirectory.hs b/src/Heist/TemplateDirectory.hs
--- a/src/Heist/TemplateDirectory.hs
+++ b/src/Heist/TemplateDirectory.hs
@@ -21,6 +21,7 @@
 import           Control.Monad
 import           Control.Monad.Trans
 import           Heist
+import           Heist.Internal.Types
 import           Heist.Splices.Cache
 
 
diff --git a/test/suite/Heist/Compiled/Tests.hs b/test/suite/Heist/Compiled/Tests.hs
--- a/test/suite/Heist/Compiled/Tests.hs
+++ b/test/suite/Heist/Compiled/Tests.hs
@@ -18,6 +18,7 @@
 ------------------------------------------------------------------------------
 import           Heist
 import           Heist.Compiled
+import           Heist.Internal.Types
 import           Heist.Tutorial.CompiledSplices
 import           Heist.TestCommon
 
diff --git a/test/suite/Heist/TestCommon.hs b/test/suite/Heist/TestCommon.hs
--- a/test/suite/Heist/TestCommon.hs
+++ b/test/suite/Heist/TestCommon.hs
@@ -14,6 +14,7 @@
 ------------------------------------------------------------------------------
 import           Heist
 import qualified Heist.Compiled             as C
+import           Heist.Internal.Types
 import qualified Heist.Interpreted          as I
 import qualified Heist.Interpreted.Internal as I
 import qualified Text.XmlHtml               as X
diff --git a/test/suite/Heist/Tests.hs b/test/suite/Heist/Tests.hs
--- a/test/suite/Heist/Tests.hs
+++ b/test/suite/Heist/Tests.hs
@@ -21,6 +21,7 @@
 ------------------------------------------------------------------------------
 import           Heist
 import qualified Heist.Compiled                  as C
+import           Heist.Internal.Types
 import qualified Heist.Interpreted               as I
 import           Heist.Splices.Cache
 import           Heist.Splices.Html
diff --git a/test/suite/Heist/Tutorial/CompiledSplices.lhs b/test/suite/Heist/Tutorial/CompiledSplices.lhs
--- a/test/suite/Heist/Tutorial/CompiledSplices.lhs
+++ b/test/suite/Heist/Tutorial/CompiledSplices.lhs
@@ -28,6 +28,7 @@
 > import           Heist.Tutorial.Imports
 
 > import           Control.Applicative
+> import           Control.Lens
 > import           Data.Map.Syntax
 > import qualified Data.Text as T
 > import           Data.Text.Encoding
@@ -114,9 +115,12 @@
 >      -> IO (HeistState n)
 > load baseDir splices = do
 >     tmap <- runEitherT $ do
->         let sc = SpliceConfig mempty defaultLoadTimeSplices splices mempty
->                               [loadTemplates baseDir]
->         initHeist $ HeistConfig sc "" False
+>         let sc = mempty & scLoadTimeSplices .~ defaultLoadTimeSplices
+>                         & scCompiledSplices .~ splices
+>                         & scTemplateLocations .~ [loadTemplates baseDir]
+>         initHeist $ emptyHeistConfig & hcNamespace .~ ""
+>                                      & hcErrorNotBound .~ False
+>                                      & hcSpliceConfig .~ sc
 >     either (error . concat) return tmap
 
 Here's a function demonstrating all of this in action.
