@@ -59,13 +59,12 @@ type ObeliskWidget t route m =
5959 , MonadRef (Performable m)
6060 , Ref (Performable m) ~ Ref IO
6161 , MonadFix (Performable m)
62− , PrimMonad m
6362 , EventWriter t (Endo route) m
6463 )
6564
6665data Frontend route = Frontend
6766 { _frontend_head :: !(forall t m. ObeliskWidget t route m => RoutedT t route m ())
68− , _frontend_body :: !(forall t m x. (MonadWidget t m, ObeliskWidget t route m, HasJS x m) => RoutedT t route m ())
67+ , _frontend_body :: !(forall t m x. (MonadWidget t m, PrimMonad m, ObeliskWidget t route m, HasJS x m) => RoutedT t route m ())
6968 , _frontend_title :: !(route -> Text)
7069 , _frontend_notFoundRoute :: !(Text -> route) --TODO: Instead, maybe we should just require that the `parse` Monad for routeEncoder be `Identity`
7170 }
@@ -152,3 +151,7 @@ runFrontend validFullEncoder frontend = do
152151 runWithHeadAndBody $ \appendHead appendBody -> runMyRouteViewT $ do
153152 mapRoutedT (mapEventWriterT appendHead) $ _frontend_head frontend
154153 mapRoutedT (mapEventWriterT appendBody) $ _frontend_body frontend
154+
155+instance PrimMonad m => PrimMonad (EventWriterT t w m) where
156+ type PrimState (EventWriterT t w m) = PrimState m
157+ primitive = lift . primitive