on develop help sign in
Merge pull request #16 from bennofs/event-handle-newtype
87605caRyan Trinkle
src/Reflex/Spider/Internal.hs+4−3
@@ -1323,15 +1323,16 @@ instance R.MonadHold Spider EventM where
1323 hold v0 e = SpiderBehavior <$> hold v0 (unSpiderEvent e)
1323 hold v0 e = SpiderBehavior <$> hold v0 (unSpiderEvent e)
1324
1324
1325newtype RootTrigger a = RootTrigger (IORef [WeakSubscriber a], IORef (Maybe a))
1325newtype RootTrigger a = RootTrigger (IORef [WeakSubscriber a], IORef (Maybe a))
1326+newtype SpiderEventHandle a = SpiderEventHandle { unEventHandle :: Event a }
1326
1327
1327instance R.ReflexHost Spider where
1328instance R.ReflexHost Spider where
1328 type EventTrigger Spider = RootTrigger
1329 type EventTrigger Spider = RootTrigger
1329− type EventHandle Spider = R.Event Spider
1330+ type EventHandle Spider = SpiderEventHandle
1330 type HostFrame Spider = SpiderHostFrame
1331 type HostFrame Spider = SpiderHostFrame
1331
1332
1332instance R.MonadReadEvent Spider ResultM where
1333instance R.MonadReadEvent Spider ResultM where
1333 {-# INLINE readEvent #-}
1334 {-# INLINE readEvent #-}
1334− readEvent = liftM (fmap return) . readEvent . unSpiderEvent
1335+ readEvent = liftM (fmap return) . readEvent . unEventHandle
1335
1336
1336instance MonadRef EventM where
1337instance MonadRef EventM where
1337 type Ref EventM = Ref IO
1338 type Ref EventM = Ref IO
@@ -1378,7 +1379,7 @@ instance R.MonadReflexHost Spider SpiderHost where
1378 fireEventsAndRead es a = SpiderHost $ run es a
1379 fireEventsAndRead es a = SpiderHost $ run es a
1379 subscribeEvent e = SpiderHost $ do
1380 subscribeEvent e = SpiderHost $ do
1380 _ <- runFrame $ getEventSubscribed $ unSpiderEvent e --TODO: The result of this should actually be used
1381 _ <- runFrame $ getEventSubscribed $ unSpiderEvent e --TODO: The result of this should actually be used
1381− return e
1382+ return $ SpiderEventHandle (unSpiderEvent e)
1382 runFrame = SpiderHost . runFrame
1383 runFrame = SpiderHost . runFrame
1383 runHostFrame = SpiderHost . runFrame . runSpiderHostFrame
1384 runHostFrame = SpiderHost . runFrame . runSpiderHostFrame
1384
1385