@@ -196,7 +196,7 @@ instance PrimMonad m => PrimMonad (ImmediateDomBuilderT x m) where
196instance MonadTrans (ImmediateDomBuilderT t) where
196instance MonadTrans (ImmediateDomBuilderT t) where
197 lift = ImmediateDomBuilderT . lift . lift . lift
197 lift = ImmediateDomBuilderT . lift . lift . lift
199−instance (Reflex t, MonadFix m, PrimMonad m) => DomRenderHook t (ImmediateDomBuilderT t m) where
199+instance (Reflex t, MonadFix m) => DomRenderHook t (ImmediateDomBuilderT t m) where
200 withRenderHook hook (ImmediateDomBuilderT a) = do
200 withRenderHook hook (ImmediateDomBuilderT a) = do
201 e <- ImmediateDomBuilderT ask
201 e <- ImmediateDomBuilderT ask
202 ImmediateDomBuilderT $ lift $ withRequesting $ \rsp -> do
202 ImmediateDomBuilderT $ lift $ withRequesting $ \rsp -> do
@@ -271,7 +271,7 @@ localEnv :: Monad m => (ImmediateDomBuilderEnv t -> ImmediateDomBuilderEnv t) ->
271localEnv f = ImmediateDomBuilderT . local f . unImmediateDomBuilderT
271localEnv f = ImmediateDomBuilderT . local f . unImmediateDomBuilderT
273{-# INLINABLE append #-}
273{-# INLINABLE append #-}
274−append :: (IsNode n, MonadJSM m) => n -> ImmediateDomBuilderT t m ()
274+append :: MonadJSM m => DOM.Node -> ImmediateDomBuilderT t m ()
275append n = do
275append n = do
276 p <- askParent
276 p <- askParent
277 liftJSM $ appendChild_ p n
277 liftJSM $ appendChild_ p n
@@ -282,7 +282,7 @@ textNodeInternal :: (MonadJSM m, ToDOMString contents) => contents -> ImmediateD
282textNodeInternal !t = do
282textNodeInternal !t = do
283 doc <- askDocument
283 doc <- askDocument
284 n <- liftJSM $ createTextNode doc t
284 n <- liftJSM $ createTextNode doc t
285− append n
285+ append $ toNode n
288-- | s and e must both be children of the same node and s must precede e;
288-- | s and e must both be children of the same node and s must precede e;
@@ -352,7 +352,7 @@ collectUpToGivenParent currentParent s e = do
352newtype EventFilterTriggerRef t er (en :: EventTag) = EventFilterTriggerRef (IORef (Maybe (EventTrigger t (er en))))
352newtype EventFilterTriggerRef t er (en :: EventTag) = EventFilterTriggerRef (IORef (Maybe (EventTrigger t (er en))))
354{-# INLINABLE wrap #-}
354{-# INLINABLE wrap #-}
355−wrap :: forall m er t. SupportsImmediateDomBuilder t m => RawElement GhcjsDomSpace -> RawElementConfig er t GhcjsDomSpace -> ImmediateDomBuilderT t m (Element er GhcjsDomSpace t)
355+wrap :: forall m er t. (Reflex t, MonadFix m, MonadJSM m, MonadReflexCreateTrigger t m) => RawElement GhcjsDomSpace -> RawElementConfig er t GhcjsDomSpace -> ImmediateDomBuilderT t m (Element er GhcjsDomSpace t)
356wrap e cfg = do
356wrap e cfg = do
357 events <- askEvents
357 events <- askEvents
358 forM_ (_rawElementConfig_modifyAttributes cfg) $ \modifyAttrs -> requestDomAction_ $ ffor modifyAttrs $ imapM_ $ \(AttributeName mAttrNamespace n) mv -> case mAttrNamespace of
358 forM_ (_rawElementConfig_modifyAttributes cfg) $ \modifyAttrs -> requestDomAction_ $ ffor modifyAttrs $ imapM_ $ \(AttributeName mAttrNamespace n) mv -> case mAttrNamespace of
@@ -396,7 +396,7 @@ wrap e cfg = do
398{-# INLINABLE makeElement #-}
398{-# INLINABLE makeElement #-}
399−makeElement :: forall er t m a. (Reflex t, MonadJSM m, MonadHold t m, MonadFix m, MonadReflexCreateTrigger t m, MonadRef m, Ref m ~ Ref JSM, MonadAdjust t m, PrimMonad m) => Text -> ElementConfig er t GhcjsDomSpace -> ImmediateDomBuilderT t m a -> ImmediateDomBuilderT t m ((Element er GhcjsDomSpace t, a), DOM.Element)
399+makeElement :: forall er t m a. (MonadJSM m, MonadFix m, MonadReflexCreateTrigger t m, MonadAdjust t m) => Text -> ElementConfig er t GhcjsDomSpace -> ImmediateDomBuilderT t m a -> ImmediateDomBuilderT t m ((Element er GhcjsDomSpace t, a), DOM.Element)
400makeElement elementTag cfg child = do
400makeElement elementTag cfg child = do
401 doc <- askDocument
401 doc <- askDocument
402 e <- liftJSM $ uncheckedCastTo DOM.Element <$> case cfg ^. namespace of
402 e <- liftJSM $ uncheckedCastTo DOM.Element <$> case cfg ^. namespace of
@@ -408,7 +408,7 @@ makeElement elementTag cfg child = do
408 result <- flip localEnv child $ \env -> env
408 result <- flip localEnv child $ \env -> env
409 { _immediateDomBuilderEnv_parent = toNode e
409 { _immediateDomBuilderEnv_parent = toNode e
411− append e
411+ append $ toNode e
412 wrapped <- wrap e $ extractRawElementConfig cfg
412 wrapped <- wrap e $ extractRawElementConfig cfg
413 return ((wrapped, result), e)
413 return ((wrapped, result), e)
@@ -589,7 +589,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
589 , _selectElement_raw = domSelectElement
589 , _selectElement_raw = domSelectElement
591 return (wrapped, result)
591 return (wrapped, result)
592− placeRawElement = append
592+ placeRawElement = append . toNode
593 wrapRawElement = wrap
593 wrapRawElement = wrap
594 notReadyUntil e = do
594 notReadyUntil e = do
595 eOnce <- headE e
595 eOnce <- headE e
@@ -672,7 +672,7 @@ instance (Reflex t, MonadAdjust t m, MonadJSM m, MonadHold t m, MonadFix m, Prim
672 unreadyChildren <- liftIO $ newIORef 0
672 unreadyChildren <- liftIO $ newIORef 0
673 let f = do
673 let f = do
674 result <- a0
674 result <- a0
675− append after
675+ append $ toNode after
676 return result
676 return result
677 result <- runReaderT (unImmediateDomBuilderT f) $ initialEnv
677 result <- runReaderT (unImmediateDomBuilderT f) $ initialEnv
678 { _immediateDomBuilderEnv_unreadyChildren = unreadyChildren
678 { _immediateDomBuilderEnv_unreadyChildren = unreadyChildren
@@ -903,7 +903,7 @@ hoistTraverseIntMapWithKeyWithAdjust base updateChildUnreadiness applyDomUpdate_
903 placeholders0 = fmap (\(_, ph, _, _) -> ph) children0
903 placeholders0 = fmap (\(_, ph, _, _) -> ph) children0
904 result' = ffor children' $ fmap $ \(_, _, _, r) -> r
904 result' = ffor children' $ fmap $ \(_, _, _, r) -> r
905 liftIO $ writeIORef placeholders $! placeholders0
905 liftIO $ writeIORef placeholders $! placeholders0
906− _ <- IntMap.traverseWithKey (\_ (df, _, _, _) -> void $ append df) children0
906+ _ <- IntMap.traverseWithKey (\_ (df, _, _, _) -> void $ append $ toNode df) children0
907 liftIO . writeIORef lastPlaceholderRef =<< textNodeInternal ("" :: Text)
907 liftIO . writeIORef lastPlaceholderRef =<< textNodeInternal ("" :: Text)
908 requestDomAction_ $ ffor children' $ \p -> do
908 requestDomAction_ $ ffor children' $ \p -> do
909 (oldUnready, oldP) <- liftIO $ readIORef pendingChange
909 (oldUnready, oldP) <- liftIO $ readIORef pendingChange
@@ -993,7 +993,7 @@ hoistTraverseWithKeyWithAdjust base mapPatch updateChildUnreadiness applyDomUpda
993 placeholders0 = weakenDMapWith (\(Compose (_, ph, _, _)) -> ph) children0
993 placeholders0 = weakenDMapWith (\(Compose (_, ph, _, _)) -> ph) children0
994 result' = ffor children' $ mapPatch $ \(Compose (_, _, _, r)) -> r
994 result' = ffor children' $ mapPatch $ \(Compose (_, _, _, r)) -> r
995 liftIO $ writeIORef placeholders $! placeholders0
995 liftIO $ writeIORef placeholders $! placeholders0
996− _ <- DMap.traverseWithKey (\_ (Compose (df, _, _, _)) -> Constant () <$ append df) children0
996+ _ <- DMap.traverseWithKey (\_ (Compose (df, _, _, _)) -> Constant () <$ append (toNode df)) children0
997 liftIO . writeIORef lastPlaceholderRef =<< textNodeInternal ("" :: Text)
997 liftIO . writeIORef lastPlaceholderRef =<< textNodeInternal ("" :: Text)
998 requestDomAction_ $ ffor children' $ \p -> do
998 requestDomAction_ $ ffor children' $ \p -> do
999 (oldUnready, oldP) <- liftIO $ readIORef pendingChange
999 (oldUnready, oldP) <- liftIO $ readIORef pendingChange