on develop help sign in
Merge pull request #16 from bennofs/event-handle-newtype

Make EventHandle a newtype in Spider

commit87605ca92b9a03727f065240cda60f0b6f372b4f authorRyan Trinkle <ryan.trinkle@gmail.com> dateWed 8 Jul 2015, 17:00 (11 years ago) parent2db16851e7d7ed
1 file changed+4−3
src/Reflex/Spider/Internal.hs+4−3
src/Reflex/Spider/Internal.hs+4−3
@@ -1323,15 +1323,16 @@ instance R.MonadHold Spider EventM where
13231323 hold v0 e = SpiderBehavior <$> hold v0 (unSpiderEvent e)
13241324
13251325newtype RootTrigger a = RootTrigger (IORef [WeakSubscriber a], IORef (Maybe a))
1326+newtype SpiderEventHandle a = SpiderEventHandle { unEventHandle :: Event a }
13261327
13271328instance R.ReflexHost Spider where
13281329 type EventTrigger Spider = RootTrigger
1329− type EventHandle Spider = R.Event Spider
1330+ type EventHandle Spider = SpiderEventHandle
13301331 type HostFrame Spider = SpiderHostFrame
13311332
13321333instance R.MonadReadEvent Spider ResultM where
13331334 {-# INLINE readEvent #-}
1334− readEvent = liftM (fmap return) . readEvent . unSpiderEvent
1335+ readEvent = liftM (fmap return) . readEvent . unEventHandle
13351336
13361337instance MonadRef EventM where
13371338 type Ref EventM = Ref IO
@@ -1378,7 +1379,7 @@ instance R.MonadReflexHost Spider SpiderHost where
13781379 fireEventsAndRead es a = SpiderHost $ run es a
13791380 subscribeEvent e = SpiderHost $ do
13801381 _ <- runFrame $ getEventSubscribed $ unSpiderEvent e --TODO: The result of this should actually be used
1381− return e
1382+ return $ SpiderEventHandle (unSpiderEvent e)
13821383 runFrame = SpiderHost . runFrame
13831384 runHostFrame = SpiderHost . runFrame . runSpiderHostFrame
13841385