on develop help sign in
Get rid of the noinlines for newSubscriber*
0db8cedRyan Trinkle
src/Reflex/Spider/Internal.hs−16
@@ -260,43 +260,27 @@ data Subscriber x a
260-- The result is also evaluated to WHNF, since forcing a thunk invalidates
260-- The result is also evaluated to WHNF, since forcing a thunk invalidates
261-- the weak pointer to it in some cases.
261-- the weak pointer to it in some cases.
262
262
263−--TODO: I think all of these noinlines are now unnecessary
264−{-# NOINLINE newSubscriberPush #-}
265newSubscriberPush :: (a -> ComputeM x (Maybe b)) -> PushSubscribed x a b -> IO (Subscriber x a)
263newSubscriberPush :: (a -> ComputeM x (Maybe b)) -> PushSubscribed x a b -> IO (Subscriber x a)
266newSubscriberPush compute subd = return $! SubscriberPush compute subd
264newSubscriberPush compute subd = return $! SubscriberPush compute subd
267
265
268−{-# RULES
269− "newSubscriberHold/Identity" forall h. newSubscriberHold h = newSubscriberHoldIdentity h
270− #-}
271−{-# NOINLINE newSubscriberHold #-}
272newSubscriberHold :: R.Patch p => Hold x p a -> IO (Subscriber x (p a))
266newSubscriberHold :: R.Patch p => Hold x p a -> IO (Subscriber x (p a))
273newSubscriberHold h = return $! SubscriberHold h
267newSubscriberHold h = return $! SubscriberHold h
274
268
275−{-# NOINLINE newSubscriberHoldIdentity #-}
276−newSubscriberHoldIdentity :: Hold x Identity a -> IO (Subscriber x (Identity a))
277−newSubscriberHoldIdentity h = return $! SubscriberHoldIdentity h
278−
279−{-# NOINLINE newSubscriberMerge #-}
280newSubscriberMerge :: GCompare k => k a -> MergeSubscribed x k -> IO (Subscriber x a)
269newSubscriberMerge :: GCompare k => k a -> MergeSubscribed x k -> IO (Subscriber x a)
281newSubscriberMerge k subd = return $! SubscriberMerge k subd
270newSubscriberMerge k subd = return $! SubscriberMerge k subd
282
271
283−{-# NOINLINE newSubscriberMergeChange #-}
284newSubscriberMergeChange :: GCompare k => MergeSubscribed x k -> IO (Subscriber x (R.PatchDMap (DMap k (Event x))))
272newSubscriberMergeChange :: GCompare k => MergeSubscribed x k -> IO (Subscriber x (R.PatchDMap (DMap k (Event x))))
285newSubscriberMergeChange subd = return $! SubscriberMergeChange subd
273newSubscriberMergeChange subd = return $! SubscriberMergeChange subd
286
274
287−{-# NOINLINE newSubscriberFan #-}
288newSubscriberFan :: GCompare k => FanSubscribed x k -> IO (Subscriber x (DMap k Identity))
275newSubscriberFan :: GCompare k => FanSubscribed x k -> IO (Subscriber x (DMap k Identity))
289newSubscriberFan subd = return $! SubscriberFan subd
276newSubscriberFan subd = return $! SubscriberFan subd
290
277
291−{-# NOINLINE newSubscriberSwitch #-}
292newSubscriberSwitch :: SwitchSubscribed x a -> IO (Subscriber x a)
278newSubscriberSwitch :: SwitchSubscribed x a -> IO (Subscriber x a)
293newSubscriberSwitch subd = return $! SubscriberSwitch subd
279newSubscriberSwitch subd = return $! SubscriberSwitch subd
294
280
295−{-# NOINLINE newSubscriberCoincidenceOuter #-}
296newSubscriberCoincidenceOuter :: CoincidenceSubscribed x b -> IO (Subscriber x (Event x b))
281newSubscriberCoincidenceOuter :: CoincidenceSubscribed x b -> IO (Subscriber x (Event x b))
297newSubscriberCoincidenceOuter subd = return $! SubscriberCoincidenceOuter subd
282newSubscriberCoincidenceOuter subd = return $! SubscriberCoincidenceOuter subd
298
283
299−{-# NOINLINE newSubscriberCoincidenceInner #-}
300newSubscriberCoincidenceInner :: CoincidenceSubscribed x a -> IO (Subscriber x a)
284newSubscriberCoincidenceInner :: CoincidenceSubscribed x a -> IO (Subscriber x a)
301newSubscriberCoincidenceInner subd = return $! SubscriberCoincidenceInner subd
285newSubscriberCoincidenceInner subd = return $! SubscriberCoincidenceInner subd
302
286