diff --git a/digestive-functors-lucid.cabal b/digestive-functors-lucid.cabal
--- a/digestive-functors-lucid.cabal
+++ b/digestive-functors-lucid.cabal
@@ -1,5 +1,5 @@
 Name:          digestive-functors-lucid
-Version:       0.0.0.2
+Version:       0.0.0.3
 Synopsis:      Lucid frontend for the digestive-functors library
 Description:   Ludic frontend for the digestive-functors library
 Homepage:      http://github.com/jaspervdj/digestive-functors
@@ -19,5 +19,5 @@
   Build-depends:
     base               >= 4    && < 5,
     lucid              >= 2.9,
-    digestive-functors >= 0.6  && < 0.8,
-    text               >= 0.11 && < 1.2
+    digestive-functors >= 0.6  && < 0.9,
+    text               >= 0.11 && < 1.3
diff --git a/src/Text/Digestive/Lucid/Html5.hs b/src/Text/Digestive/Lucid/Html5.hs
--- a/src/Text/Digestive/Lucid/Html5.hs
+++ b/src/Text/Digestive/Lucid/Html5.hs
@@ -3,8 +3,7 @@
 {-# LANGUAGE OverloadedStrings    #-}
 {-# LANGUAGE ExtendedDefaultRules #-}
 module Text.Digestive.Lucid.Html5
-    ( ifSingleton
-    , inputText
+    ( inputText
     , inputTextArea
     , inputPassword
     , inputHidden
@@ -17,6 +16,7 @@
     , form
     , errorList
     , childErrorList
+    , ifSingleton
     ) where
 
 
@@ -38,7 +38,7 @@
 ifSingleton True  a = [a]
 
 --------------------------------------------------------------------------------
-inputText :: Text -> View v -> Html ()
+inputText :: Monad m => Text -> View v -> HtmlT m ()
 inputText ref view = input_
     [ type_    "text"
     , id_      ref'
@@ -50,11 +50,12 @@
 
 
 --------------------------------------------------------------------------------
-inputTextArea :: Maybe Int      -- ^ Rows
-              -> Maybe Int      -- ^ Columns
-              -> Text           -- ^ Form path
-              -> View (Html ()) -- ^ View
-              -> Html ()        -- ^ Resulting HTML
+inputTextArea :: ( Monad m
+                 ) => Maybe Int         -- ^ Rows
+                   -> Maybe Int         -- ^ Columns
+                   -> Text              -- ^ Form path
+                   -> View (HtmlT m ()) -- ^ View
+                   -> HtmlT m ()        -- ^ Resulting HTML
 inputTextArea r c ref view = textarea_
     ([ id_     ref'
      , name_   ref'
@@ -69,7 +70,7 @@
 
 
 --------------------------------------------------------------------------------
-inputPassword :: Text -> View v -> Html ()
+inputPassword :: Monad m => Text -> View v -> HtmlT m ()
 inputPassword ref view = input_
     [ type_    "password"
     , id_      ref'
@@ -81,7 +82,7 @@
 
 
 --------------------------------------------------------------------------------
-inputHidden :: Text -> View v -> Html ()
+inputHidden :: Monad m => Text -> View v -> HtmlT m ()
 inputHidden ref view = input_
     [ type_    "hidden"
     , id_      ref'
@@ -93,7 +94,7 @@
 
 
 --------------------------------------------------------------------------------
-inputSelect :: Text -> View (Html ()) -> Html ()
+inputSelect :: Monad m => Text -> View (HtmlT m ()) -> HtmlT m ()
 inputSelect ref view = select_
     [ id_   ref'
     , name_ ref'
@@ -106,10 +107,11 @@
 
 
 --------------------------------------------------------------------------------
-inputRadio :: Bool           -- ^ Add @br@ tags?
-           -> Text           -- ^ Form path
-           -> View (Html ()) -- ^ View
-           -> Html ()        -- ^ Resulting HTML
+inputRadio :: ( Monad m
+              ) => Bool              -- ^ Add @br@ tags?
+                -> Text              -- ^ Form path
+                -> View (HtmlT m ()) -- ^ View
+                -> HtmlT m ()        -- ^ Resulting HTML
 inputRadio brs ref view = forM_ choices $ \(i, c, sel) -> do
     let val = value i
     input_ $ [type_ "radio", value_ val, id_ val, name_ ref']
@@ -123,7 +125,7 @@
 
 
 --------------------------------------------------------------------------------
-inputCheckbox :: Text -> View (Html ()) -> Html ()
+inputCheckbox :: Monad m => Text -> View (HtmlT m ()) -> HtmlT m ()
 inputCheckbox ref view = input_ $
     [ type_ "checkbox"
     , id_   ref'
@@ -135,7 +137,7 @@
 
 
 --------------------------------------------------------------------------------
-inputFile :: Text -> View (Html ()) -> Html ()
+inputFile :: Monad m => Text -> View (HtmlT m ()) -> HtmlT m ()
 inputFile ref view = input_
     [ type_  "file"
     , id_    ref'
@@ -148,7 +150,7 @@
 
 
 --------------------------------------------------------------------------------
-inputSubmit :: Text -> Html ()
+inputSubmit :: Monad m => Text -> HtmlT m ()
 inputSubmit value = input_
     [ type_  "submit"
     , value_ value
@@ -156,7 +158,7 @@
 
 
 --------------------------------------------------------------------------------
-label :: Text -> View v -> Html () -> Html ()
+label :: Monad m => Text -> View v -> HtmlT m () -> HtmlT m ()
 label ref view value = label_
     [ for_ ref'
     ] $ value
@@ -165,7 +167,7 @@
 
 
 --------------------------------------------------------------------------------
-form :: View (Html ()) -> Text -> Html () -> Html ()
+form :: Monad m => View (HtmlT m ()) -> Text -> HtmlT m () -> HtmlT m ()
 form view action = form_
     [ method_  "POST"
     , enctype_ (pack $ show $ viewEncType view)
@@ -174,7 +176,7 @@
 
 
 --------------------------------------------------------------------------------
-errorList :: Text -> View (Html ()) -> Html ()
+errorList :: Monad m => Text -> View (HtmlT m ()) -> HtmlT m ()
 errorList ref view = case errors ref view of
     []   -> mempty
     errs -> ul_ [class_ "digestive-functors-error-list"] $ forM_ errs $ \e ->
@@ -182,7 +184,7 @@
 
 
 --------------------------------------------------------------------------------
-childErrorList :: Text -> View (Html ()) -> Html ()
+childErrorList :: Monad m => Text -> View (HtmlT m ()) -> HtmlT m ()
 childErrorList ref view = case childErrors ref view of
     []   -> mempty
     errs -> ul_ [class_ "digestive-functors-error-list"] $ forM_ errs $ \e ->
