on master help sign in
add PrimMonad instance
commitca444036db16472db4c0c68eb1daa1e15eda846d authorhsloan <ishaqsloan@gmail.com> dateTue 17 Jul 2018, 13:37 (8 years ago) parentecd653d
2 files changed+9−2
lib/frontend/src/Obelisk/Frontend.hs+5−2 lib/route/src/Obelisk/Route/Frontend.hs+4
lib/frontend/src/Obelisk/Frontend.hs+5−2
@@ -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
lib/route/src/Obelisk/Route/Frontend.hs+4
@@ -114,6 +114,10 @@ instance MonadTransControl (RoutedT t r) where
114114 liftWith = defaultLiftWith RoutedT unRoutedT
115115 restoreT = defaultRestoreT RoutedT
116116
117+instance PrimMonad m => PrimMonad (RoutedT t r m ) where
118+ type PrimState (RoutedT t r m) = PrimState m
119+ primitive = lift . primitive
120+
117121instance DomBuilder t m => DomBuilder t (RoutedT t r m) where
118122 type DomBuilderSpace (RoutedT t r m) = DomBuilderSpace m
119123