diff --git a/HSX/JMacroT.hs b/HSX/JMacroT.hs
--- a/HSX/JMacroT.hs
+++ b/HSX/JMacroT.hs
@@ -30,7 +30,7 @@
 import qualified Data.Text        as Strict
 import qualified Data.Text.Lazy   as Lazy
 import HSX.XMLGenerator           (Attr(..), XMLGen(..), XMLGenT(..), XMLGenerator, AppendChild(..), EmbedAsAttr(..), EmbedAsChild(..), Name(..), SetAttr(..), unXMLGenT)
-import qualified HSX.XMLGenerator as HSX
+
 import Language.Javascript.JMacro (ToJExpr(..), JExpr(..), JStat(..), ToStat(..), jmacroE, jLam, jVarTy)
 
 -- | isomorphic to IdentityT, but used for generating javascript that generates XML/HTML
@@ -59,9 +59,9 @@
     toJExpr = toJExpr . evalJMacroM
 
 instance (Functor m, Monad m) => XMLGen (JMacroT m) where
-    type XML          (JMacroT m) = JExpr
-    newtype Child     (JMacroT m) = JMChild { unJMChild :: JExpr }
-    newtype Attribute (JMacroT m) = JMAttr  { unJMAttr  :: JExpr }
+    type XMLType          (JMacroT m) = JExpr
+    newtype ChildType     (JMacroT m) = JMChild { unJMChild :: JExpr }
+    newtype AttributeType (JMacroT m) = JMAttr  { unJMAttr  :: JExpr }
     genElement        = element
     xmlToChild        = JMChild
     pcdataToChild str = JMChild $ [jmacroE| document.createTextNode(`(str)`) |]
diff --git a/example.hs b/example.hs
--- a/example.hs
+++ b/example.hs
@@ -19,13 +19,10 @@
 main :: IO ()
 main =
     do let html :: DOMNode
-           html = <p>Generate javascript from <span class="foo" id="h">HTML & XML</span>. <% cdata "<em>foo</em><em>bar</em>" %></p>
-
-           xml = evalIdentity html
+           html = <p>Generate javascript from <span class="foo" id="h">HTML & XML</span>.</p>
 
            js :: JStat
-           js = [jmacro| document.getElementById('main').appendChild(`(XMLToDOM xml)`);
-                         document.getElementById('main').appendChild(document.createTextNode("i like <em>em</em>"));
+           js = [jmacro| document.getElementById('main').appendChild(`(html)`);
                        |]
 
            handler :: ServerPart XML
diff --git a/hsx-jmacro.cabal b/hsx-jmacro.cabal
--- a/hsx-jmacro.cabal
+++ b/hsx-jmacro.cabal
@@ -1,5 +1,5 @@
 Name:                hsx-jmacro
-Version:             7.0.1
+Version:             7.1.0
 Synopsis:            hsx+jmacro support
 Description:         HSX allows for the use of literal XML in Haskell program text. JMacro allows for the use of javascript-syntax for generating javascript in Haskell. This library makes it easy to embed JMacro generated javascript in HSX templates.
 Homepage:            http://www.happstack.com/
@@ -19,10 +19,10 @@
                      HSX.JMacroT
 
   Build-depends:
-                     base >4 && <5,
-                     happstack-hsp,
-                     hsx,
-                     jmacro >= 0.5 && < 0.6,
-                     mtl,
+                     base            > 4      && <5,
+                     happstack-hsp  == 7.1.*,
+                     hsx            >= 0.10.2 && <0.11,
+                     jmacro         >= 0.5    && < 0.6,
+                     mtl            >= 2.0    && < 2.2,
                      pretty,
-                     text   == 0.11.*
+                     text           == 0.11.*
