packages feed

reflex 0.9.4.0 → 0.9.4.1

raw patch · 7 files changed

+224/−28 lines, 7 filesdep ~dependent-sumdep ~primitivedep ~ref-tfnew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: dependent-sum, primitive, ref-tf

API changes (from Hackage documentation)

- Data.AppendMap: instance Data.Default.Class.Default (Data.Map.Monoidal.MonoidalMap k a)
- Reflex.Class: data family Incremental t :: Type -> Type;
- Reflex.Class: instance forall k (t :: k) a. (Reflex.Class.Reflex t, Data.Default.Class.Default a) => Data.Default.Class.Default (Reflex.Class.Dynamic t a)
- Reflex.Class: type family PullM t :: Type -> Type;
- Reflex.Dynamic: instance forall a1 (l :: [a1]) (a2 :: a1). GHC.Classes.Eq (Reflex.Dynamic.HListPtr l a2)
- Reflex.Dynamic: instance forall a1 (l :: [a1]) (a2 :: a1). GHC.Classes.Ord (Reflex.Dynamic.HListPtr l a2)
- Reflex.Dynamic: type family FunctorList f l :: [Type];
- Reflex.FunctorMaybe: instance Reflex.FunctorMaybe.FunctorMaybe Data.Semigroup.Option
- Reflex.Host.Class: type family ReadPhase m :: Type -> Type;
- Reflex.PerformEvent.Class: type family Performable m :: Type -> Type;
- Reflex.Query.Class: instance Data.Bits.Bits Reflex.Query.Class.SelectedCount
- Reflex.Query.Class: instance Data.Bits.FiniteBits Reflex.Query.Class.SelectedCount
- Reflex.Query.Class: instance Reflex.Query.Class.Query Data.Void.Void
- Reflex.Query.Class: type family QueryResult a :: Type;
- Reflex.Requester.Class: type family Response m :: Type -> Type;
- Reflex.Spider.Internal: pattern SpiderBehavior :: () => Behavior x a -> Behavior (SpiderTimeline x) a
- Reflex.Spider.Internal: pattern SpiderIncremental :: () => DynamicS x p -> Incremental (SpiderTimeline x) p
- Reflex.Spider.Internal: pattern SpiderEvent :: () => Event x a -> Event (SpiderTimeline x) a
- Reflex.Spider.Internal: type MergeGetSubscription x s = forall a. s a -> EventSubscription x
- Reflex.Spider.Internal: type MergeInitFunc k v q x s = DMap k q -> (forall a. EventM x (k a) -> Subscriber x (v a)) -> EventM x (DMap k v, [Height], DMap k s)
- Reflex.Spider.Internal: type MergeUpdateFunc k v x p s = (forall a. EventM x (k a) -> Subscriber x (v a)) -> IORef HeightBag -> DMap k s -> p -> EventM x ([EventSubscription x], DMap k s)
- Reflex.Spider.Internal: type WeakList a = [Weak a]
+ Data.AppendMap: instance Data.Default.Internal.Default (Data.Map.Monoidal.MonoidalMap k a)
+ Reflex.Class: ($dmhold) :: forall (f :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type) a. (MonadHold t m, m ~ f m', MonadTrans f, MonadHold t m') => a -> Event t a -> m (Behavior t a)
+ Reflex.Class: ($dmholdDyn) :: forall (f :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type) a. (MonadHold t m, m ~ f m', MonadTrans f, MonadHold t m') => a -> Event t a -> m (Dynamic t a)
+ Reflex.Class: ($dmholdIncremental) :: forall p (f :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type). (MonadHold t m, Patch p, m ~ f m', MonadTrans f, MonadHold t m') => PatchTarget p -> Event t p -> m (Incremental t p)
+ Reflex.Class: ($dmnow) :: forall (f :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type). (MonadHold t m, m ~ f m', MonadTrans f, MonadHold t m') => m (Event t ())
+ Reflex.Class: data Behavior (t :: k) :: Type -> Type;
+ Reflex.Class: data Dynamic (t :: k) :: Type -> Type;
+ Reflex.Class: data Event (t :: k) :: Type -> Type;
+ Reflex.Class: data Incremental (t :: k) :: Type -> Type;
+ Reflex.Class: instance forall k (t :: k) a. (Reflex.Class.Reflex t, Data.Default.Internal.Default a) => Data.Default.Internal.Default (Reflex.Class.Dynamic t a)
+ Reflex.Class: type PullM (t :: k) :: Type -> Type;
+ Reflex.Class: type PushM (t :: k) :: Type -> Type;
+ Reflex.Dynamic: instance forall k (l :: [k]) (a :: k). GHC.Classes.Eq (Reflex.Dynamic.HListPtr l a)
+ Reflex.Dynamic: instance forall k (l :: [k]) (a :: k). GHC.Classes.Ord (Reflex.Dynamic.HListPtr l a)
+ Reflex.Dynamic: type FunctorList (f :: a -> Type) (l :: [a]) :: [Type];
+ Reflex.Dynamic: type HListElems a :: [Type];
+ Reflex.Host.Class: type EventHandle t :: Type -> Type;
+ Reflex.Host.Class: type EventTrigger t :: Type -> Type;
+ Reflex.Host.Class: type HostFrame t :: Type -> Type;
+ Reflex.Host.Class: type ReadPhase (m :: Type -> Type) :: Type -> Type;
+ Reflex.NotReady.Class: ($dmnotReady) :: forall (f :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type). (NotReady t m, MonadTrans f, m ~ f m', NotReady t m') => m ()
+ Reflex.NotReady.Class: ($dmnotReadyUntil) :: forall (f :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type) a. (NotReady t m, MonadTrans f, m ~ f m', NotReady t m') => Event t a -> m ()
+ Reflex.PerformEvent.Class: type Performable (m :: Type -> Type) :: Type -> Type;
+ Reflex.Query.Class: instance GHC.Bits.Bits Reflex.Query.Class.SelectedCount
+ Reflex.Query.Class: instance GHC.Bits.FiniteBits Reflex.Query.Class.SelectedCount
+ Reflex.Query.Class: instance Reflex.Query.Class.Query GHC.Base.Void
+ Reflex.Query.Class: type QueryResult a;
+ Reflex.Requester.Class: type Request (m :: Type -> Type) :: Type -> Type;
+ Reflex.Requester.Class: type Response (m :: Type -> Type) :: Type -> Type;
+ Reflex.Spider.Internal: InvalidatorList :: !Int -> !Int -> ![Weak (Invalidator x)] -> InvalidatorList (x :: k)
+ Reflex.Spider.Internal: SomeCoincidenceSubscribed :: !CoincidenceSubscribed x a -> SomeCoincidenceSubscribed (x :: k)
+ Reflex.Spider.Internal: SpiderBehavior :: Behavior x a %1 -> Behavior (SpiderTimeline x) a
+ Reflex.Spider.Internal: SpiderDynamic :: DynamicS x (Identity a) %1 -> Dynamic (SpiderTimeline x) a
+ Reflex.Spider.Internal: SpiderEvent :: Event x a %1 -> Event (SpiderTimeline x) a
+ Reflex.Spider.Internal: SpiderIncremental :: DynamicS x p %1 -> Incremental (SpiderTimeline x) p
+ Reflex.Spider.Internal: [eventEnvInvalidatedCoincidences] :: EventEnv x -> !IORef [SomeCoincidenceSubscribed x]
+ Reflex.Spider.Internal: [invalidatorListElems] :: InvalidatorList (x :: k) -> ![Weak (Invalidator x)]
+ Reflex.Spider.Internal: [invalidatorListPruneAt] :: InvalidatorList (x :: k) -> !Int
+ Reflex.Spider.Internal: [invalidatorListSize] :: InvalidatorList (x :: k) -> !Int
+ Reflex.Spider.Internal: addInvalidatorAmortized :: forall {k} (x :: k). IORef (InvalidatorList x) -> Weak (Invalidator x) -> IO ()
+ Reflex.Spider.Internal: data InvalidatorList (x :: k)
+ Reflex.Spider.Internal: data SomeCoincidenceSubscribed (x :: k)
+ Reflex.Spider.Internal: emptyInvalidatorList :: forall {k} (x :: k). InvalidatorList x
+ Reflex.Spider.Internal: invalidatorPruneThreshold :: Int
+ Reflex.Spider.Internal: type MergeInitFunc (k2 :: k -> Type) (v :: k -> Type) (q :: k -> Type) (x :: k1) (s :: k -> Type) = DMap k2 q -> forall (a :: k). () => EventM x k2 a -> Subscriber x v a -> EventM x (DMap k2 v, [Height], DMap k2 s)
+ Reflex.Spider.Internal: type MergeGetSubscription (x :: k) (s :: k1 -> Type) = forall (a :: k1). () => s a -> EventSubscription x
- Data.AppendMap: showTree :: forall k a. (Show k, Show a) => MonoidalMap k a -> String
+ Data.AppendMap: showTree :: (Show k, Show a) => MonoidalMap k a -> String
- Data.AppendMap: showTreeWith :: forall k a. (k -> a -> String) -> Bool -> Bool -> MonoidalMap k a -> String
+ Data.AppendMap: showTreeWith :: (k -> a -> String) -> Bool -> Bool -> MonoidalMap k a -> String
- Reflex.Adjustable.Class: class (Reflex t, Monad m) => Adjustable t m | m -> t
+ Reflex.Adjustable.Class: class (Reflex t, Monad m) => Adjustable t (m :: Type -> Type) | m -> t
- Reflex.Adjustable.Class: mapMapWithAdjustWithMove :: forall t m k v v'. (Adjustable t m, Ord k) => (k -> v -> m v') -> Map k v -> Event t (PatchMapWithMove k v) -> m (Map k v', Event t (PatchMapWithMove k v'))
+ Reflex.Adjustable.Class: mapMapWithAdjustWithMove :: (Adjustable t m, Ord k) => (k -> v -> m v') -> Map k v -> Event t (PatchMapWithMove k v) -> m (Map k v', Event t (PatchMapWithMove k v'))
- Reflex.Adjustable.Class: sequenceDMapWithAdjust :: (GCompare k, Adjustable t m) => DMap k m -> Event t (PatchDMap k m) -> m (DMap k Identity, Event t (PatchDMap k Identity))
+ Reflex.Adjustable.Class: sequenceDMapWithAdjust :: forall (k :: Type -> Type) t m. (GCompare k, Adjustable t m) => DMap k m -> Event t (PatchDMap k m) -> m (DMap k Identity, Event t (PatchDMap k Identity))
- Reflex.Adjustable.Class: sequenceDMapWithAdjustWithMove :: (GCompare k, Adjustable t m) => DMap k m -> Event t (PatchDMapWithMove k m) -> m (DMap k Identity, Event t (PatchDMapWithMove k Identity))
+ Reflex.Adjustable.Class: sequenceDMapWithAdjustWithMove :: forall (k :: Type -> Type) t m. (GCompare k, Adjustable t m) => DMap k m -> Event t (PatchDMapWithMove k m) -> m (DMap k Identity, Event t (PatchDMapWithMove k Identity))
- Reflex.Adjustable.Class: traverseDMapWithKeyWithAdjust :: (Adjustable t m, GCompare k) => (forall a. k a -> v a -> m (v' a)) -> DMap k v -> Event t (PatchDMap k v) -> m (DMap k v', Event t (PatchDMap k v'))
+ Reflex.Adjustable.Class: traverseDMapWithKeyWithAdjust :: (Adjustable t m, GCompare k) => (forall a. () => k a -> v a -> m (v' a)) -> DMap k v -> Event t (PatchDMap k v) -> m (DMap k v', Event t (PatchDMap k v'))
- Reflex.Adjustable.Class: traverseDMapWithKeyWithAdjustWithMove :: (Adjustable t m, GCompare k) => (forall a. k a -> v a -> m (v' a)) -> DMap k v -> Event t (PatchDMapWithMove k v) -> m (DMap k v', Event t (PatchDMapWithMove k v'))
+ Reflex.Adjustable.Class: traverseDMapWithKeyWithAdjustWithMove :: (Adjustable t m, GCompare k) => (forall a. () => k a -> v a -> m (v' a)) -> DMap k v -> Event t (PatchDMapWithMove k v) -> m (DMap k v', Event t (PatchDMapWithMove k v'))
- Reflex.BehaviorWriter.Base: BehaviorWriterT :: StateT [Behavior t w] m a -> BehaviorWriterT t w m a
+ Reflex.BehaviorWriter.Base: BehaviorWriterT :: StateT [Behavior t w] m a -> BehaviorWriterT t w (m :: Type -> Type) a
- Reflex.BehaviorWriter.Base: [unBehaviorWriterT] :: BehaviorWriterT t w m a -> StateT [Behavior t w] m a
+ Reflex.BehaviorWriter.Base: [unBehaviorWriterT] :: BehaviorWriterT t w (m :: Type -> Type) a -> StateT [Behavior t w] m a
- Reflex.BehaviorWriter.Base: newtype BehaviorWriterT t w m a
+ Reflex.BehaviorWriter.Base: newtype BehaviorWriterT t w (m :: Type -> Type) a
- Reflex.BehaviorWriter.Base: withBehaviorWriterT :: (Monoid w, Monoid w', Reflex t, MonadHold t m) => (w -> w') -> BehaviorWriterT t w m a -> BehaviorWriterT t w' m a
+ Reflex.BehaviorWriter.Base: withBehaviorWriterT :: forall w w' t (m :: Type -> Type) a. (Monoid w, Monoid w', Reflex t, MonadHold t m) => (w -> w') -> BehaviorWriterT t w m a -> BehaviorWriterT t w' m a
- Reflex.BehaviorWriter.Class: class (Monad m, Monoid w) => BehaviorWriter t w m | m -> t w
+ Reflex.BehaviorWriter.Class: class (Monad m, Monoid w) => BehaviorWriter t w (m :: Type -> Type) | m -> t w
- Reflex.Class: (<@) :: Reflex t => Behavior t b -> Event t a -> Event t b
+ Reflex.Class: (<@) :: forall {k} (t :: k) b a. Reflex t => Behavior t b -> Event t a -> Event t b
- Reflex.Class: (<@>) :: Reflex t => Behavior t (a -> b) -> Event t a -> Event t b
+ Reflex.Class: (<@>) :: forall {k} (t :: k) a b. Reflex t => Behavior t (a -> b) -> Event t a -> Event t b
- Reflex.Class: EventSelector :: (forall a. k a -> Event t a) -> EventSelector t k
+ Reflex.Class: EventSelector :: (forall a. () => k1 a -> Event t a) -> EventSelector (t :: k) (k1 :: Type -> Type)
- Reflex.Class: EventSelectorG :: (forall a. k a -> Event t (v a)) -> EventSelectorG t k v
+ Reflex.Class: EventSelectorG :: (forall (a :: k1). () => k2 a -> Event t (v a)) -> EventSelectorG (t :: k) (k2 :: k1 -> Type) (v :: k1 -> Type)
- Reflex.Class: EventSelectorInt :: (Int -> Event t a) -> EventSelectorInt t a
+ Reflex.Class: EventSelectorInt :: (Int -> Event t a) -> EventSelectorInt (t :: k) a
- Reflex.Class: [LeftTag] :: forall k (l :: k) (r :: k). EitherTag l r l
+ Reflex.Class: [LeftTag] :: forall {k} (l :: k) (r :: k). EitherTag l r l
- Reflex.Class: [RightTag] :: forall k (l :: k) (r :: k). EitherTag l r r
+ Reflex.Class: [RightTag] :: forall {k} (l :: k) (r :: k). EitherTag l r r
- Reflex.Class: [selectG] :: EventSelectorG t k v -> forall a. k a -> Event t (v a)
+ Reflex.Class: [selectG] :: EventSelectorG (t :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) -> forall (a :: k1). () => k2 a -> Event t (v a)
- Reflex.Class: [selectInt] :: EventSelectorInt t a -> Int -> Event t a
+ Reflex.Class: [selectInt] :: EventSelectorInt (t :: k) a -> Int -> Event t a
- Reflex.Class: [select] :: EventSelector t k -> forall a. k a -> Event t a
+ Reflex.Class: [select] :: EventSelector (t :: k) (k1 :: Type -> Type) -> forall a. () => k1 a -> Event t a
- Reflex.Class: accumB :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> a) -> a -> Event t b -> m (Behavior t a)
+ Reflex.Class: accumB :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> a) -> a -> Event t b -> m (Behavior t a)
- Reflex.Class: accumDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> a) -> a -> Event t b -> m (Dynamic t a)
+ Reflex.Class: accumDyn :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> a) -> a -> Event t b -> m (Dynamic t a)
- Reflex.Class: accumIncremental :: (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> p) -> PatchTarget p -> Event t b -> m (Incremental t p)
+ Reflex.Class: accumIncremental :: forall {k} (t :: k) p m b. (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> p) -> PatchTarget p -> Event t b -> m (Incremental t p)
- Reflex.Class: accumMB :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t a) -> a -> Event t b -> m (Behavior t a)
+ Reflex.Class: accumMB :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t a) -> a -> Event t b -> m (Behavior t a)
- Reflex.Class: accumMDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t a) -> a -> Event t b -> m (Dynamic t a)
+ Reflex.Class: accumMDyn :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t a) -> a -> Event t b -> m (Dynamic t a)
- Reflex.Class: accumMIncremental :: (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> PushM t p) -> PatchTarget p -> Event t b -> m (Incremental t p)
+ Reflex.Class: accumMIncremental :: forall {k} (t :: k) p m b. (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> PushM t p) -> PatchTarget p -> Event t b -> m (Incremental t p)
- Reflex.Class: accumMaybeB :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> Maybe a) -> a -> Event t b -> m (Behavior t a)
+ Reflex.Class: accumMaybeB :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> Maybe a) -> a -> Event t b -> m (Behavior t a)
- Reflex.Class: accumMaybeDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> Maybe a) -> a -> Event t b -> m (Dynamic t a)
+ Reflex.Class: accumMaybeDyn :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> Maybe a) -> a -> Event t b -> m (Dynamic t a)
- Reflex.Class: accumMaybeIncremental :: (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> Maybe p) -> PatchTarget p -> Event t b -> m (Incremental t p)
+ Reflex.Class: accumMaybeIncremental :: forall {k} (t :: k) p m b. (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> Maybe p) -> PatchTarget p -> Event t b -> m (Incremental t p)
- Reflex.Class: accumMaybeMB :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a)) -> a -> Event t b -> m (Behavior t a)
+ Reflex.Class: accumMaybeMB :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a)) -> a -> Event t b -> m (Behavior t a)
- Reflex.Class: accumMaybeMDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a)) -> a -> Event t b -> m (Dynamic t a)
+ Reflex.Class: accumMaybeMDyn :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a)) -> a -> Event t b -> m (Dynamic t a)
- Reflex.Class: accumMaybeMIncremental :: (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> PushM t (Maybe p)) -> PatchTarget p -> Event t b -> m (Incremental t p)
+ Reflex.Class: accumMaybeMIncremental :: forall {k} (t :: k) p m b. (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> PushM t (Maybe p)) -> PatchTarget p -> Event t b -> m (Incremental t p)
- Reflex.Class: alignEventWithMaybe :: Reflex t => (These a b -> Maybe c) -> Event t a -> Event t b -> Event t c
+ Reflex.Class: alignEventWithMaybe :: forall {k} (t :: k) a b c. Reflex t => (These a b -> Maybe c) -> Event t a -> Event t b -> Event t c
- Reflex.Class: attach :: Reflex t => Behavior t a -> Event t b -> Event t (a, b)
+ Reflex.Class: attach :: forall {k} (t :: k) a b. Reflex t => Behavior t a -> Event t b -> Event t (a, b)
- Reflex.Class: attachWith :: Reflex t => (a -> b -> c) -> Behavior t a -> Event t b -> Event t c
+ Reflex.Class: attachWith :: forall {k} (t :: k) a b c. Reflex t => (a -> b -> c) -> Behavior t a -> Event t b -> Event t c
- Reflex.Class: attachWithMaybe :: Reflex t => (a -> b -> Maybe c) -> Behavior t a -> Event t b -> Event t c
+ Reflex.Class: attachWithMaybe :: forall {k} (t :: k) a b c. Reflex t => (a -> b -> Maybe c) -> Behavior t a -> Event t b -> Event t c
- Reflex.Class: class Reflex t => Accumulator t f | f -> t
+ Reflex.Class: class Reflex t => Accumulator (t :: k) (f :: Type -> Type) | f -> t
- Reflex.Class: class FunctorMaybe f
+ Reflex.Class: class FunctorMaybe (f :: Type -> Type)
- Reflex.Class: class MonadSample t m => MonadHold t m
+ Reflex.Class: class MonadSample t m => MonadHold (t :: k) (m :: Type -> Type)
- Reflex.Class: class (Applicative m, Monad m) => MonadSample t m | m -> t
+ Reflex.Class: class (Applicative m, Monad m) => MonadSample (t :: k) (m :: Type -> Type) | m -> t
- Reflex.Class: class (MonadHold t (PushM t), MonadSample t (PullM t), MonadFix (PushM t), Functor (Dynamic t), Applicative (Dynamic t), Monad (Dynamic t)) => Reflex t where {
+ Reflex.Class: class (MonadHold t PushM t, MonadSample t PullM t, MonadFix PushM t, Functor Dynamic t, Applicative Dynamic t, Monad Dynamic t) => Reflex (t :: k) where {
- Reflex.Class: coerceBehavior :: (Reflex t, Coercible a b) => Behavior t a -> Behavior t b
+ Reflex.Class: coerceBehavior :: forall {k} (t :: k) a b. (Reflex t, Coercible a b) => Behavior t a -> Behavior t b
- Reflex.Class: coerceDynamic :: (Reflex t, Coercible a b) => Dynamic t a -> Dynamic t b
+ Reflex.Class: coerceDynamic :: forall {k} (t :: k) a b. (Reflex t, Coercible a b) => Dynamic t a -> Dynamic t b
- Reflex.Class: coerceEvent :: (Reflex t, Coercible a b) => Event t a -> Event t b
+ Reflex.Class: coerceEvent :: forall {k} (t :: k) a b. (Reflex t, Coercible a b) => Event t a -> Event t b
- Reflex.Class: coerceIncremental :: (Reflex t, Coercible a b, Coercible (PatchTarget a) (PatchTarget b)) => Incremental t a -> Incremental t b
+ Reflex.Class: coerceIncremental :: forall {k} (t :: k) a b. (Reflex t, Coercible a b, Coercible (PatchTarget a) (PatchTarget b)) => Incremental t a -> Incremental t b
- Reflex.Class: coincidencePatchIntMap :: Reflex t => Event t (PatchIntMap (Event t v)) -> Event t (PatchIntMap v)
+ Reflex.Class: coincidencePatchIntMap :: forall {k} (t :: k) v. Reflex t => Event t (PatchIntMap (Event t v)) -> Event t (PatchIntMap v)
- Reflex.Class: coincidencePatchMap :: (Reflex t, Ord k) => Event t (PatchMap k (Event t v)) -> Event t (PatchMap k v)
+ Reflex.Class: coincidencePatchMap :: forall {k1} (t :: k1) k2 v. (Reflex t, Ord k2) => Event t (PatchMap k2 (Event t v)) -> Event t (PatchMap k2 v)
- Reflex.Class: coincidencePatchMapWithMove :: (Reflex t, Ord k) => Event t (PatchMapWithMove k (Event t v)) -> Event t (PatchMapWithMove k v)
+ Reflex.Class: coincidencePatchMapWithMove :: forall {k1} (t :: k1) k2 v. (Reflex t, Ord k2) => Event t (PatchMapWithMove k2 (Event t v)) -> Event t (PatchMapWithMove k2 v)
- Reflex.Class: constDyn :: Reflex t => a -> Dynamic t a
+ Reflex.Class: constDyn :: forall {k} (t :: k) a. Reflex t => a -> Dynamic t a
- Reflex.Class: difference :: Reflex t => Event t a -> Event t b -> Event t a
+ Reflex.Class: difference :: forall {k} (t :: k) a b. Reflex t => Event t a -> Event t b -> Event t a
- Reflex.Class: distributeDMapOverDynPure :: forall t k. (Reflex t, GCompare k) => DMap k (Dynamic t) -> Dynamic t (DMap k Identity)
+ Reflex.Class: distributeDMapOverDynPure :: forall {k1} (t :: k1) (k2 :: Type -> Type). (Reflex t, GCompare k2) => DMap k2 (Dynamic t) -> Dynamic t (DMap k2 Identity)
- Reflex.Class: distributeDMapOverDynPureG :: forall t k q v. (Reflex t, GCompare k) => (forall a. q a -> Dynamic t (v a)) -> DMap k q -> Dynamic t (DMap k v)
+ Reflex.Class: distributeDMapOverDynPureG :: forall {k1} {k2} (t :: k1) (k3 :: k2 -> Type) q v. (Reflex t, GCompare k3) => (forall (a :: k2). () => q a -> Dynamic t (v a)) -> DMap k3 q -> Dynamic t (DMap k3 v)
- Reflex.Class: distributeListOverDyn :: Reflex t => [Dynamic t a] -> Dynamic t [a]
+ Reflex.Class: distributeListOverDyn :: forall {k} (t :: k) a. Reflex t => [Dynamic t a] -> Dynamic t [a]
- Reflex.Class: distributeListOverDynWith :: Reflex t => ([a] -> b) -> [Dynamic t a] -> Dynamic t b
+ Reflex.Class: distributeListOverDynWith :: forall {k} (t :: k) a b. Reflex t => ([a] -> b) -> [Dynamic t a] -> Dynamic t b
- Reflex.Class: dropWhileE :: forall t m a. (Reflex t, MonadFix m, MonadHold t m) => (a -> Bool) -> Event t a -> m (Event t a)
+ Reflex.Class: dropWhileE :: forall {k} (t :: k) m a. (Reflex t, MonadFix m, MonadHold t m) => (a -> Bool) -> Event t a -> m (Event t a)
- Reflex.Class: factorEvent :: forall t m k v a. (Reflex t, MonadFix m, MonadHold t m, GEq k) => k a -> Event t (DSum k v) -> m (Event t (v a), Event t (DSum k (Product v (Compose (Event t) v))))
+ Reflex.Class: factorEvent :: forall {k1} {k2} (t :: k1) m k3 v (a :: k2). (Reflex t, MonadFix m, MonadHold t m, GEq k3) => k3 a -> Event t (DSum k3 v) -> m (Event t (v a), Event t (DSum k3 (Product v (Compose (Event t) v))))
- Reflex.Class: fan :: forall t k. (Reflex t, GCompare k) => Event t (DMap k Identity) -> EventSelector t k
+ Reflex.Class: fan :: forall {k1} (t :: k1) (k2 :: Type -> Type). (Reflex t, GCompare k2) => Event t (DMap k2 Identity) -> EventSelector t k2
- Reflex.Class: fanEither :: Reflex t => Event t (Either a b) -> (Event t a, Event t b)
+ Reflex.Class: fanEither :: forall {k} (t :: k) a b. Reflex t => Event t (Either a b) -> (Event t a, Event t b)
- Reflex.Class: fanG :: (Reflex t, GCompare k) => Event t (DMap k v) -> EventSelectorG t k v
+ Reflex.Class: fanG :: forall {k1} (k2 :: k1 -> Type) (v :: k1 -> Type). (Reflex t, GCompare k2) => Event t (DMap k2 v) -> EventSelectorG t k2 v
- Reflex.Class: fanMap :: (Reflex t, Ord k) => Event t (Map k a) -> EventSelector t (Const2 k a)
+ Reflex.Class: fanMap :: forall {k1} (t :: k1) k2 a. (Reflex t, Ord k2) => Event t (Map k2 a) -> EventSelector t (Const2 k2 a)
- Reflex.Class: fanThese :: Reflex t => Event t (These a b) -> (Event t a, Event t b)
+ Reflex.Class: fanThese :: forall {k} (t :: k) a b. Reflex t => Event t (These a b) -> (Event t a, Event t b)
- Reflex.Class: fforCheap :: Reflex t => Event t a -> (a -> b) -> Event t b
+ Reflex.Class: fforCheap :: forall {k} (t :: k) a b. Reflex t => Event t a -> (a -> b) -> Event t b
- Reflex.Class: fforMaybeCheap :: Reflex t => Event t a -> (a -> Maybe b) -> Event t b
+ Reflex.Class: fforMaybeCheap :: forall {k} (t :: k) a b. Reflex t => Event t a -> (a -> Maybe b) -> Event t b
- Reflex.Class: filterEventKey :: forall t m k v a. (Reflex t, MonadFix m, MonadHold t m, GEq k) => k a -> Event t (DSum k v) -> m (Event t (v a))
+ Reflex.Class: filterEventKey :: forall {k1} {k2} (t :: k1) m k3 v (a :: k2). (Reflex t, MonadFix m, MonadHold t m, GEq k3) => k3 a -> Event t (DSum k3 v) -> m (Event t (v a))
- Reflex.Class: fmapCheap :: Reflex t => (a -> b) -> Event t a -> Event t b
+ Reflex.Class: fmapCheap :: forall {k} (t :: k) a b. Reflex t => (a -> b) -> Event t a -> Event t b
- Reflex.Class: fmapMaybeCheap :: Reflex t => (a -> Maybe b) -> Event t a -> Event t b
+ Reflex.Class: fmapMaybeCheap :: forall {k} (t :: k) a b. Reflex t => (a -> Maybe b) -> Event t a -> Event t b
- Reflex.Class: gate :: Reflex t => Behavior t Bool -> Event t a -> Event t a
+ Reflex.Class: gate :: forall {k} (t :: k) a. Reflex t => Behavior t Bool -> Event t a -> Event t a
- Reflex.Class: headTailE :: (Reflex t, MonadHold t m) => Event t a -> m (Event t a, Event t a)
+ Reflex.Class: headTailE :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m) => Event t a -> m (Event t a, Event t a)
- Reflex.Class: hold :: (MonadHold t m, m ~ f m', MonadTrans f, MonadHold t m') => a -> Event t a -> m (Behavior t a)
+ Reflex.Class: hold :: MonadHold t m => a -> Event t a -> m (Behavior t a)
- Reflex.Class: holdDyn :: (MonadHold t m, m ~ f m', MonadTrans f, MonadHold t m') => a -> Event t a -> m (Dynamic t a)
+ Reflex.Class: holdDyn :: MonadHold t m => a -> Event t a -> m (Dynamic t a)
- Reflex.Class: holdIncremental :: (MonadHold t m, Patch p, m ~ f m', MonadTrans f, MonadHold t m') => PatchTarget p -> Event t p -> m (Incremental t p)
+ Reflex.Class: holdIncremental :: (MonadHold t m, Patch p) => PatchTarget p -> Event t p -> m (Incremental t p)
- Reflex.Class: leftmost :: Reflex t => [Event t a] -> Event t a
+ Reflex.Class: leftmost :: forall {k} (t :: k) a. Reflex t => [Event t a] -> Event t a
- Reflex.Class: mapAccumB :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (a, c)) -> a -> Event t b -> m (Behavior t a, Event t c)
+ Reflex.Class: mapAccumB :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (a, c)) -> a -> Event t b -> m (Behavior t a, Event t c)
- Reflex.Class: mapAccumDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (a, c)) -> a -> Event t b -> m (Dynamic t a, Event t c)
+ Reflex.Class: mapAccumDyn :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (a, c)) -> a -> Event t b -> m (Dynamic t a, Event t c)
- Reflex.Class: mapAccumIncremental :: (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> (p, c)) -> PatchTarget p -> Event t b -> m (Incremental t p, Event t c)
+ Reflex.Class: mapAccumIncremental :: forall {k} (t :: k) p m b c. (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> (p, c)) -> PatchTarget p -> Event t b -> m (Incremental t p, Event t c)
- Reflex.Class: mapAccumMB :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (a, c)) -> a -> Event t b -> m (Behavior t a, Event t c)
+ Reflex.Class: mapAccumMB :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (a, c)) -> a -> Event t b -> m (Behavior t a, Event t c)
- Reflex.Class: mapAccumMDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (a, c)) -> a -> Event t b -> m (Dynamic t a, Event t c)
+ Reflex.Class: mapAccumMDyn :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (a, c)) -> a -> Event t b -> m (Dynamic t a, Event t c)
- Reflex.Class: mapAccumMIncremental :: (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> PushM t (p, c)) -> PatchTarget p -> Event t b -> m (Incremental t p, Event t c)
+ Reflex.Class: mapAccumMIncremental :: forall {k} (t :: k) p m b c. (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> PushM t (p, c)) -> PatchTarget p -> Event t b -> m (Incremental t p, Event t c)
- Reflex.Class: mapAccumM_ :: forall t m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (a, c)) -> a -> Event t b -> m (Event t c)
+ Reflex.Class: mapAccumM_ :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (a, c)) -> a -> Event t b -> m (Event t c)
- Reflex.Class: mapAccumMaybeB :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (Maybe a, Maybe c)) -> a -> Event t b -> m (Behavior t a, Event t c)
+ Reflex.Class: mapAccumMaybeB :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (Maybe a, Maybe c)) -> a -> Event t b -> m (Behavior t a, Event t c)
- Reflex.Class: mapAccumMaybeDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (Maybe a, Maybe c)) -> a -> Event t b -> m (Dynamic t a, Event t c)
+ Reflex.Class: mapAccumMaybeDyn :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (Maybe a, Maybe c)) -> a -> Event t b -> m (Dynamic t a, Event t c)
- Reflex.Class: mapAccumMaybeIncremental :: (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> (Maybe p, Maybe c)) -> PatchTarget p -> Event t b -> m (Incremental t p, Event t c)
+ Reflex.Class: mapAccumMaybeIncremental :: forall {k} (t :: k) p m b c. (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> (Maybe p, Maybe c)) -> PatchTarget p -> Event t b -> m (Incremental t p, Event t c)
- Reflex.Class: mapAccumMaybeMB :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a, Maybe c)) -> a -> Event t b -> m (Behavior t a, Event t c)
+ Reflex.Class: mapAccumMaybeMB :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a, Maybe c)) -> a -> Event t b -> m (Behavior t a, Event t c)
- Reflex.Class: mapAccumMaybeMDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a, Maybe c)) -> a -> Event t b -> m (Dynamic t a, Event t c)
+ Reflex.Class: mapAccumMaybeMDyn :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a, Maybe c)) -> a -> Event t b -> m (Dynamic t a, Event t c)
- Reflex.Class: mapAccumMaybeMIncremental :: (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> PushM t (Maybe p, Maybe c)) -> PatchTarget p -> Event t b -> m (Incremental t p, Event t c)
+ Reflex.Class: mapAccumMaybeMIncremental :: forall {k} (t :: k) p m b c. (Reflex t, Patch p, MonadHold t m, MonadFix m) => (PatchTarget p -> b -> PushM t (Maybe p, Maybe c)) -> PatchTarget p -> Event t b -> m (Incremental t p, Event t c)
- Reflex.Class: mapAccumMaybeM_ :: forall t m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a, Maybe c)) -> a -> Event t b -> m (Event t c)
+ Reflex.Class: mapAccumMaybeM_ :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe a, Maybe c)) -> a -> Event t b -> m (Event t c)
- Reflex.Class: mapAccumMaybe_ :: forall t m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (Maybe a, Maybe c)) -> a -> Event t b -> m (Event t c)
+ Reflex.Class: mapAccumMaybe_ :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (Maybe a, Maybe c)) -> a -> Event t b -> m (Event t c)
- Reflex.Class: mapAccum_ :: forall t m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (a, c)) -> a -> Event t b -> m (Event t c)
+ Reflex.Class: mapAccum_ :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> (a, c)) -> a -> Event t b -> m (Event t c)
- Reflex.Class: mapMaybeCheap :: Reflex t => (a -> Maybe b) -> Event t a -> Event t b
+ Reflex.Class: mapMaybeCheap :: forall {k} (t :: k) a b. Reflex t => (a -> Maybe b) -> Event t a -> Event t b
- Reflex.Class: merge :: (Reflex t, GCompare k) => DMap k (Event t) -> Event t (DMap k Identity)
+ Reflex.Class: merge :: forall {k1} (t :: k1) (k2 :: Type -> Type). (Reflex t, GCompare k2) => DMap k2 (Event t) -> Event t (DMap k2 Identity)
- Reflex.Class: mergeG :: (Reflex t, GCompare k) => (forall a. q a -> Event t (v a)) -> DMap k q -> Event t (DMap k v)
+ Reflex.Class: mergeG :: forall {k1} (k2 :: k1 -> Type) q v. (Reflex t, GCompare k2) => (forall (a :: k1). () => q a -> Event t (v a)) -> DMap k2 q -> Event t (DMap k2 v)
- Reflex.Class: mergeIncremental :: (Reflex t, GCompare k) => Incremental t (PatchDMap k (Event t)) -> Event t (DMap k Identity)
+ Reflex.Class: mergeIncremental :: forall {k1} (t :: k1) (k2 :: Type -> Type). (Reflex t, GCompare k2) => Incremental t (PatchDMap k2 (Event t)) -> Event t (DMap k2 Identity)
- Reflex.Class: mergeIncrementalG :: (Reflex t, GCompare k) => (forall a. q a -> Event t (v a)) -> Incremental t (PatchDMap k q) -> Event t (DMap k v)
+ Reflex.Class: mergeIncrementalG :: forall {k1} (k2 :: k1 -> Type) q v. (Reflex t, GCompare k2) => (forall (a :: k1). () => q a -> Event t (v a)) -> Incremental t (PatchDMap k2 q) -> Event t (DMap k2 v)
- Reflex.Class: mergeIncrementalWithMove :: (Reflex t, GCompare k) => Incremental t (PatchDMapWithMove k (Event t)) -> Event t (DMap k Identity)
+ Reflex.Class: mergeIncrementalWithMove :: forall {k1} (t :: k1) (k2 :: Type -> Type). (Reflex t, GCompare k2) => Incremental t (PatchDMapWithMove k2 (Event t)) -> Event t (DMap k2 Identity)
- Reflex.Class: mergeIncrementalWithMoveG :: (Reflex t, GCompare k) => (forall a. q a -> Event t (v a)) -> Incremental t (PatchDMapWithMove k q) -> Event t (DMap k v)
+ Reflex.Class: mergeIncrementalWithMoveG :: forall {k1} (k2 :: k1 -> Type) q v. (Reflex t, GCompare k2) => (forall (a :: k1). () => q a -> Event t (v a)) -> Incremental t (PatchDMapWithMove k2 q) -> Event t (DMap k2 v)
- Reflex.Class: mergeInt :: Reflex t => IntMap (Event t a) -> Event t (IntMap a)
+ Reflex.Class: mergeInt :: forall {k} (t :: k) a. Reflex t => IntMap (Event t a) -> Event t (IntMap a)
- Reflex.Class: mergeIntMap :: Reflex t => IntMap (Event t a) -> Event t (IntMap a)
+ Reflex.Class: mergeIntMap :: forall {k} (t :: k) a. Reflex t => IntMap (Event t a) -> Event t (IntMap a)
- Reflex.Class: mergeIntMapIncremental :: Reflex t => Incremental t (PatchIntMap (Event t a)) -> Event t (IntMap a)
+ Reflex.Class: mergeIntMapIncremental :: forall {k} (t :: k) a. Reflex t => Incremental t (PatchIntMap (Event t a)) -> Event t (IntMap a)
- Reflex.Class: mergeList :: Reflex t => [Event t a] -> Event t (NonEmpty a)
+ Reflex.Class: mergeList :: forall {k} (t :: k) a. Reflex t => [Event t a] -> Event t (NonEmpty a)
- Reflex.Class: mergeMap :: (Reflex t, Ord k) => Map k (Event t a) -> Event t (Map k a)
+ Reflex.Class: mergeMap :: forall {k1} (t :: k1) k2 a. (Reflex t, Ord k2) => Map k2 (Event t a) -> Event t (Map k2 a)
- Reflex.Class: mergeMapIncremental :: (Reflex t, Ord k) => Incremental t (PatchMap k (Event t a)) -> Event t (Map k a)
+ Reflex.Class: mergeMapIncremental :: forall {k1} (t :: k1) k2 a. (Reflex t, Ord k2) => Incremental t (PatchMap k2 (Event t a)) -> Event t (Map k2 a)
- Reflex.Class: mergeMapIncrementalWithMove :: (Reflex t, Ord k) => Incremental t (PatchMapWithMove k (Event t a)) -> Event t (Map k a)
+ Reflex.Class: mergeMapIncrementalWithMove :: forall {k1} (t :: k1) k2 a. (Reflex t, Ord k2) => Incremental t (PatchMapWithMove k2 (Event t a)) -> Event t (Map k2 a)
- Reflex.Class: mergeWith :: Reflex t => (a -> a -> a) -> [Event t a] -> Event t a
+ Reflex.Class: mergeWith :: forall {k} (t :: k) a. Reflex t => (a -> a -> a) -> [Event t a] -> Event t a
- Reflex.Class: mergeWithCheap :: Reflex t => (a -> a -> a) -> [Event t a] -> Event t a
+ Reflex.Class: mergeWithCheap :: forall {k} (t :: k) a. Reflex t => (a -> a -> a) -> [Event t a] -> Event t a
- Reflex.Class: mergeWithCheap' :: Reflex t => (a -> b) -> (b -> b -> b) -> [Event t a] -> Event t b
+ Reflex.Class: mergeWithCheap' :: forall {k} (t :: k) a b. Reflex t => (a -> b) -> (b -> b -> b) -> [Event t a] -> Event t b
- Reflex.Class: newtype EventSelector t k
+ Reflex.Class: newtype EventSelector (t :: k) (k1 :: Type -> Type)
- Reflex.Class: newtype EventSelectorG t k v
+ Reflex.Class: newtype EventSelectorG (t :: k) (k2 :: k1 -> Type) (v :: k1 -> Type)
- Reflex.Class: newtype EventSelectorInt t a
+ Reflex.Class: newtype EventSelectorInt (t :: k) a
- Reflex.Class: now :: (MonadHold t m, m ~ f m', MonadTrans f, MonadHold t m') => m (Event t ())
+ Reflex.Class: now :: MonadHold t m => m (Event t ())
- Reflex.Class: numberOccurrences :: (Reflex t, MonadHold t m, MonadFix m, Num b) => Event t a -> m (Event t (b, a))
+ Reflex.Class: numberOccurrences :: forall {k} (t :: k) m b a. (Reflex t, MonadHold t m, MonadFix m, Num b) => Event t a -> m (Event t (b, a))
- Reflex.Class: numberOccurrencesFrom :: (Reflex t, MonadHold t m, MonadFix m, Num b) => b -> Event t a -> m (Event t (b, a))
+ Reflex.Class: numberOccurrencesFrom :: forall {k} (t :: k) m b a. (Reflex t, MonadHold t m, MonadFix m, Num b) => b -> Event t a -> m (Event t (b, a))
- Reflex.Class: numberOccurrencesFrom_ :: (Reflex t, MonadHold t m, MonadFix m, Num b) => b -> Event t a -> m (Event t b)
+ Reflex.Class: numberOccurrencesFrom_ :: forall {k} (t :: k) m b a. (Reflex t, MonadHold t m, MonadFix m, Num b) => b -> Event t a -> m (Event t b)
- Reflex.Class: pushAlways :: Reflex t => (a -> PushM t b) -> Event t a -> Event t b
+ Reflex.Class: pushAlways :: forall {k} (t :: k) a b. Reflex t => (a -> PushM t b) -> Event t a -> Event t b
- Reflex.Class: pushAlwaysCheap :: Reflex t => (a -> PushM t b) -> Event t a -> Event t b
+ Reflex.Class: pushAlwaysCheap :: forall {k} (t :: k) a b. Reflex t => (a -> PushM t b) -> Event t a -> Event t b
- Reflex.Class: slowHeadE :: (Reflex t, MonadHold t m, MonadFix m) => Event t a -> m (Event t a)
+ Reflex.Class: slowHeadE :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m, MonadFix m) => Event t a -> m (Event t a)
- Reflex.Class: splitE :: Reflex t => Event t (a, b) -> (Event t a, Event t b)
+ Reflex.Class: splitE :: forall {k} (t :: k) a b. Reflex t => Event t (a, b) -> (Event t a, Event t b)
- Reflex.Class: switchHold :: (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
+ Reflex.Class: switchHold :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
- Reflex.Class: switchHoldPromptOnly :: (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
+ Reflex.Class: switchHoldPromptOnly :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
- Reflex.Class: switchHoldPromptOnlyIncremental :: forall t m p pt w. (Reflex t, MonadHold t m, Patch (p (Event t w)), PatchTarget (p (Event t w)) ~ pt (Event t w), Patch (p w), PatchTarget (p w) ~ pt w, Monoid (pt w)) => (Incremental t (p (Event t w)) -> Event t (pt w)) -> (Event t (p (Event t w)) -> Event t (p w)) -> pt (Event t w) -> Event t (p (Event t w)) -> m (Event t (pt w))
+ Reflex.Class: switchHoldPromptOnlyIncremental :: forall {k} (t :: k) m p pt w. (Reflex t, MonadHold t m, Patch (p (Event t w)), PatchTarget (p (Event t w)) ~ pt (Event t w), Patch (p w), PatchTarget (p w) ~ pt w, Monoid (pt w)) => (Incremental t (p (Event t w)) -> Event t (pt w)) -> (Event t (p (Event t w)) -> Event t (p w)) -> pt (Event t w) -> Event t (p (Event t w)) -> m (Event t (pt w))
- Reflex.Class: switchHoldPromptly :: (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
+ Reflex.Class: switchHoldPromptly :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
- Reflex.Class: switchPromptOnly :: (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
+ Reflex.Class: switchPromptOnly :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
- Reflex.Class: switchPromptly :: (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
+ Reflex.Class: switchPromptly :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m) => Event t a -> Event t (Event t a) -> m (Event t a)
- Reflex.Class: switcher :: (Reflex t, MonadHold t m) => Behavior t a -> Event t (Behavior t a) -> m (Behavior t a)
+ Reflex.Class: switcher :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m) => Behavior t a -> Event t (Behavior t a) -> m (Behavior t a)
- Reflex.Class: tag :: Reflex t => Behavior t b -> Event t a -> Event t b
+ Reflex.Class: tag :: forall {k} (t :: k) b a. Reflex t => Behavior t b -> Event t a -> Event t b
- Reflex.Class: tagCheap :: Reflex t => Behavior t b -> Event t a -> Event t b
+ Reflex.Class: tagCheap :: forall {k} (t :: k) b a. Reflex t => Behavior t b -> Event t a -> Event t b
- Reflex.Class: tagMaybe :: Reflex t => Behavior t (Maybe b) -> Event t a -> Event t b
+ Reflex.Class: tagMaybe :: forall {k} (t :: k) b a. Reflex t => Behavior t (Maybe b) -> Event t a -> Event t b
- Reflex.Class: tailE :: (Reflex t, MonadHold t m) => Event t a -> m (Event t a)
+ Reflex.Class: tailE :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m) => Event t a -> m (Event t a)
- Reflex.Class: takeDropWhileJustE :: forall t m a b. (Reflex t, MonadFix m, MonadHold t m) => (a -> Maybe b) -> Event t a -> m (Event t b, Event t a)
+ Reflex.Class: takeDropWhileJustE :: forall {k} (t :: k) m a b. (Reflex t, MonadFix m, MonadHold t m) => (a -> Maybe b) -> Event t a -> m (Event t b, Event t a)
- Reflex.Class: takeWhileE :: forall t m a. (Reflex t, MonadFix m, MonadHold t m) => (a -> Bool) -> Event t a -> m (Event t a)
+ Reflex.Class: takeWhileE :: forall {k} (t :: k) m a. (Reflex t, MonadFix m, MonadHold t m) => (a -> Bool) -> Event t a -> m (Event t a)
- Reflex.Class: takeWhileJustE :: forall t m a b. (Reflex t, MonadFix m, MonadHold t m) => (a -> Maybe b) -> Event t a -> m (Event t b)
+ Reflex.Class: takeWhileJustE :: forall {k} (t :: k) m a b. (Reflex t, MonadFix m, MonadHold t m) => (a -> Maybe b) -> Event t a -> m (Event t b)
- Reflex.Class: traceEvent :: (Reflex t, Show a) => String -> Event t a -> Event t a
+ Reflex.Class: traceEvent :: forall {k} (t :: k) a. (Reflex t, Show a) => String -> Event t a -> Event t a
- Reflex.Class: traceEventWith :: Reflex t => (a -> String) -> Event t a -> Event t a
+ Reflex.Class: traceEventWith :: forall {k} (t :: k) a. Reflex t => (a -> String) -> Event t a -> Event t a
- Reflex.Class: unsafeDynamic :: Reflex t => Behavior t a -> Event t a -> Dynamic t a
+ Reflex.Class: unsafeDynamic :: forall {k} (t :: k) a. Reflex t => Behavior t a -> Event t a -> Dynamic t a
- Reflex.Class: unsafeMapIncremental :: (Reflex t, Patch p, Patch p') => (PatchTarget p -> PatchTarget p') -> (p -> p') -> Incremental t p -> Incremental t p'
+ Reflex.Class: unsafeMapIncremental :: forall {k} (t :: k) p p'. (Reflex t, Patch p, Patch p') => (PatchTarget p -> PatchTarget p') -> (p -> p') -> Incremental t p -> Incremental t p'
- Reflex.Class: zipDyn :: Reflex t => Dynamic t a -> Dynamic t b -> Dynamic t (a, b)
+ Reflex.Class: zipDyn :: forall {k} (t :: k) a b. Reflex t => Dynamic t a -> Dynamic t b -> Dynamic t (a, b)
- Reflex.Class: zipDynWith :: Reflex t => (a -> b -> c) -> Dynamic t a -> Dynamic t b -> Dynamic t c
+ Reflex.Class: zipDynWith :: forall {k} (t :: k) a b c. Reflex t => (a -> b -> c) -> Dynamic t a -> Dynamic t b -> Dynamic t c
- Reflex.Class: zipListWithEvent :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> c) -> [a] -> Event t b -> m (Event t c)
+ Reflex.Class: zipListWithEvent :: forall {k} (t :: k) m a b c. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> c) -> [a] -> Event t b -> m (Event t c)
- Reflex.Collection: selectViewListWithKey :: forall t m k v a. (Adjustable t m, Ord k, PostBuild t m, MonadHold t m, MonadFix m, Eq v) => Dynamic t k -> Dynamic t (Map k v) -> (k -> Dynamic t v -> Dynamic t Bool -> m (Event t a)) -> m (Event t (k, a))
+ Reflex.Collection: selectViewListWithKey :: (Adjustable t m, Ord k, PostBuild t m, MonadHold t m, MonadFix m, Eq v) => Dynamic t k -> Dynamic t (Map k v) -> (k -> Dynamic t v -> Dynamic t Bool -> m (Event t a)) -> m (Event t (k, a))
- Reflex.Collection: selectViewListWithKey_ :: forall t m k v a. (Adjustable t m, Ord k, PostBuild t m, MonadHold t m, MonadFix m, Eq v) => Dynamic t k -> Dynamic t (Map k v) -> (k -> Dynamic t v -> Dynamic t Bool -> m (Event t a)) -> m (Event t k)
+ Reflex.Collection: selectViewListWithKey_ :: (Adjustable t m, Ord k, PostBuild t m, MonadHold t m, MonadFix m, Eq v) => Dynamic t k -> Dynamic t (Map k v) -> (k -> Dynamic t v -> Dynamic t Bool -> m (Event t a)) -> m (Event t k)
- Reflex.Dynamic: [FHCons] :: f e -> FHList f l -> FHList f (e : l)
+ Reflex.Dynamic: [FHCons] :: forall {k} (f :: k -> Type) (e :: k) (l1 :: [k]). f e -> FHList f l1 -> FHList f (e ': l1)
- Reflex.Dynamic: [FHNil] :: FHList f '[]
+ Reflex.Dynamic: [FHNil] :: forall {k} (f :: k -> Type). FHList f ('[] :: [k])
- Reflex.Dynamic: [HCons] :: e -> HList l -> HList (e : l)
+ Reflex.Dynamic: [HCons] :: forall e (l1 :: [Type]). e -> HList l1 -> HList (e ': l1)
- Reflex.Dynamic: [HHeadPtr] :: HListPtr (h : t) h
+ Reflex.Dynamic: [HHeadPtr] :: forall {k} (a :: k) (t :: [k]). HListPtr (a ': t) a
- Reflex.Dynamic: [HNil] :: HList '[]
+ Reflex.Dynamic: [HNil] :: HList ('[] :: [Type])
- Reflex.Dynamic: [HTailPtr] :: HListPtr t a -> HListPtr (h : t) a
+ Reflex.Dynamic: [HTailPtr] :: forall {k} (t :: [k]) (a :: k) (h :: k). HListPtr t a -> HListPtr (h ': t) a
- Reflex.Dynamic: attachPromptlyDyn :: Reflex t => Dynamic t a -> Event t b -> Event t (a, b)
+ Reflex.Dynamic: attachPromptlyDyn :: forall {k} (t :: k) a b. Reflex t => Dynamic t a -> Event t b -> Event t (a, b)
- Reflex.Dynamic: attachPromptlyDynWith :: Reflex t => (a -> b -> c) -> Dynamic t a -> Event t b -> Event t c
+ Reflex.Dynamic: attachPromptlyDynWith :: forall {k} (t :: k) a b c. Reflex t => (a -> b -> c) -> Dynamic t a -> Event t b -> Event t c
- Reflex.Dynamic: attachPromptlyDynWithMaybe :: Reflex t => (a -> b -> Maybe c) -> Dynamic t a -> Event t b -> Event t c
+ Reflex.Dynamic: attachPromptlyDynWithMaybe :: forall {k} (t :: k) a b c. Reflex t => (a -> b -> Maybe c) -> Dynamic t a -> Event t b -> Event t c
- Reflex.Dynamic: class RebuildSortedHList l
+ Reflex.Dynamic: class RebuildSortedHList (l :: [Type])
- Reflex.Dynamic: collectDynPure :: (RebuildSortedHList (HListElems b), IsHList a, IsHList b, AllAreFunctors (Dynamic t) (HListElems b), Reflex t, HListElems a ~ FunctorList (Dynamic t) (HListElems b)) => a -> Dynamic t b
+ Reflex.Dynamic: collectDynPure :: forall {k} b a (t :: k). (RebuildSortedHList (HListElems b), IsHList a, IsHList b, AllAreFunctors (Dynamic t) (HListElems b), Reflex t, HListElems a ~ FunctorList (Dynamic t) (HListElems b)) => a -> Dynamic t b
- Reflex.Dynamic: constDyn :: Reflex t => a -> Dynamic t a
+ Reflex.Dynamic: constDyn :: forall {k} (t :: k) a. Reflex t => a -> Dynamic t a
- Reflex.Dynamic: count :: (Reflex t, MonadHold t m, MonadFix m, Num b) => Event t a -> m (Dynamic t b)
+ Reflex.Dynamic: count :: forall {k} (t :: k) m b a. (Reflex t, MonadHold t m, MonadFix m, Num b) => Event t a -> m (Dynamic t b)
- Reflex.Dynamic: data Demux t k
+ Reflex.Dynamic: data Demux (t :: k) k1
- Reflex.Dynamic: data FHList f l
+ Reflex.Dynamic: data FHList (f :: k -> Type) (l :: [k])
- Reflex.Dynamic: data HListPtr l a
+ Reflex.Dynamic: data HListPtr (l :: [k]) (a :: k)
- Reflex.Dynamic: data family Dynamic t :: Type -> Type
+ Reflex.Dynamic: data family Dynamic (t :: k) :: Type -> Type
- Reflex.Dynamic: demux :: (Reflex t, Ord k) => Dynamic t k -> Demux t k
+ Reflex.Dynamic: demux :: forall {k1} (t :: k1) k2. (Reflex t, Ord k2) => Dynamic t k2 -> Demux t k2
- Reflex.Dynamic: demuxed :: (Reflex t, Eq k) => Demux t k -> k -> Dynamic t Bool
+ Reflex.Dynamic: demuxed :: forall {k1} (t :: k1) k2. (Reflex t, Eq k2) => Demux t k2 -> k2 -> Dynamic t Bool
- Reflex.Dynamic: distributeDMapOverDynPure :: forall t k. (Reflex t, GCompare k) => DMap k (Dynamic t) -> Dynamic t (DMap k Identity)
+ Reflex.Dynamic: distributeDMapOverDynPure :: forall {k1} (t :: k1) (k2 :: Type -> Type). (Reflex t, GCompare k2) => DMap k2 (Dynamic t) -> Dynamic t (DMap k2 Identity)
- Reflex.Dynamic: distributeFHListOverDynPure :: (Reflex t, RebuildSortedHList l) => FHList (Dynamic t) l -> Dynamic t (HList l)
+ Reflex.Dynamic: distributeFHListOverDynPure :: forall {k} (t :: k) (l :: [Type]). (Reflex t, RebuildSortedHList l) => FHList (Dynamic t) l -> Dynamic t (HList l)
- Reflex.Dynamic: distributeIntMapOverDynPure :: Reflex t => IntMap (Dynamic t v) -> Dynamic t (IntMap v)
+ Reflex.Dynamic: distributeIntMapOverDynPure :: forall {k} (t :: k) v. Reflex t => IntMap (Dynamic t v) -> Dynamic t (IntMap v)
- Reflex.Dynamic: distributeListOverDynPure :: Reflex t => [Dynamic t v] -> Dynamic t [v]
+ Reflex.Dynamic: distributeListOverDynPure :: forall {k} (t :: k) v. Reflex t => [Dynamic t v] -> Dynamic t [v]
- Reflex.Dynamic: distributeMapOverDynPure :: (Reflex t, Ord k) => Map k (Dynamic t v) -> Dynamic t (Map k v)
+ Reflex.Dynamic: distributeMapOverDynPure :: forall {k1} (t :: k1) k2 v. (Reflex t, Ord k2) => Map k2 (Dynamic t v) -> Dynamic t (Map k2 v)
- Reflex.Dynamic: eitherDyn :: forall t a b m. (Reflex t, MonadFix m, MonadHold t m) => Dynamic t (Either a b) -> m (Dynamic t (Either (Dynamic t a) (Dynamic t b)))
+ Reflex.Dynamic: eitherDyn :: forall {k} (t :: k) a b m. (Reflex t, MonadFix m, MonadHold t m) => Dynamic t (Either a b) -> m (Dynamic t (Either (Dynamic t a) (Dynamic t b)))
- Reflex.Dynamic: factorDyn :: forall t m k v. (Reflex t, MonadHold t m, GEq k) => Dynamic t (DSum k v) -> m (Dynamic t (DSum k (Compose (Dynamic t) v)))
+ Reflex.Dynamic: factorDyn :: forall {k1} {k2} (t :: k1) m (k3 :: k2 -> Type) (v :: k2 -> Type). (Reflex t, MonadHold t m, GEq k3) => Dynamic t (DSum k3 v) -> m (Dynamic t (DSum k3 (Compose (Dynamic t) v)))
- Reflex.Dynamic: foldDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> b) -> b -> Event t a -> m (Dynamic t b)
+ Reflex.Dynamic: foldDyn :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> b) -> b -> Event t a -> m (Dynamic t b)
- Reflex.Dynamic: foldDynM :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t b) -> b -> Event t a -> m (Dynamic t b)
+ Reflex.Dynamic: foldDynM :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t b) -> b -> Event t a -> m (Dynamic t b)
- Reflex.Dynamic: foldDynMaybe :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> Maybe b) -> b -> Event t a -> m (Dynamic t b)
+ Reflex.Dynamic: foldDynMaybe :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> Maybe b) -> b -> Event t a -> m (Dynamic t b)
- Reflex.Dynamic: foldDynMaybeM :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe b)) -> b -> Event t a -> m (Dynamic t b)
+ Reflex.Dynamic: foldDynMaybeM :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t (Maybe b)) -> b -> Event t a -> m (Dynamic t b)
- Reflex.Dynamic: forDynM :: forall t m a b. (Reflex t, MonadHold t m) => Dynamic t a -> (forall m'. MonadSample t m' => a -> m' b) -> m (Dynamic t b)
+ Reflex.Dynamic: forDynM :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m) => Dynamic t a -> (forall (m' :: Type -> Type). MonadSample t m' => a -> m' b) -> m (Dynamic t b)
- Reflex.Dynamic: holdUniqDyn :: (Reflex t, MonadHold t m, MonadFix m, Eq a) => Dynamic t a -> m (Dynamic t a)
+ Reflex.Dynamic: holdUniqDyn :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m, MonadFix m, Eq a) => Dynamic t a -> m (Dynamic t a)
- Reflex.Dynamic: holdUniqDynBy :: (Reflex t, MonadHold t m, MonadFix m) => (a -> a -> Bool) -> Dynamic t a -> m (Dynamic t a)
+ Reflex.Dynamic: holdUniqDynBy :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m, MonadFix m) => (a -> a -> Bool) -> Dynamic t a -> m (Dynamic t a)
- Reflex.Dynamic: improvingMaybe :: (Reflex t, MonadHold t m, MonadFix m) => Dynamic t (Maybe a) -> m (Dynamic t (Maybe a))
+ Reflex.Dynamic: improvingMaybe :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m, MonadFix m) => Dynamic t (Maybe a) -> m (Dynamic t (Maybe a))
- Reflex.Dynamic: joinDynThroughIntMap :: forall t a. Reflex t => Dynamic t (IntMap (Dynamic t a)) -> Dynamic t (IntMap a)
+ Reflex.Dynamic: joinDynThroughIntMap :: forall {k} (t :: k) a. Reflex t => Dynamic t (IntMap (Dynamic t a)) -> Dynamic t (IntMap a)
- Reflex.Dynamic: joinDynThroughMap :: forall t k a. (Reflex t, Ord k) => Dynamic t (Map k (Dynamic t a)) -> Dynamic t (Map k a)
+ Reflex.Dynamic: joinDynThroughMap :: forall {k1} (t :: k1) k2 a. (Reflex t, Ord k2) => Dynamic t (Map k2 (Dynamic t a)) -> Dynamic t (Map k2 a)
- Reflex.Dynamic: mapDynM :: forall t m a b. (Reflex t, MonadHold t m) => (forall m'. MonadSample t m' => a -> m' b) -> Dynamic t a -> m (Dynamic t b)
+ Reflex.Dynamic: mapDynM :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m) => (forall (m' :: Type -> Type). MonadSample t m' => a -> m' b) -> Dynamic t a -> m (Dynamic t b)
- Reflex.Dynamic: maybeDyn :: forall t a m. (Reflex t, MonadFix m, MonadHold t m) => Dynamic t (Maybe a) -> m (Dynamic t (Maybe (Dynamic t a)))
+ Reflex.Dynamic: maybeDyn :: forall {k} (t :: k) a m. (Reflex t, MonadFix m, MonadHold t m) => Dynamic t (Maybe a) -> m (Dynamic t (Maybe (Dynamic t a)))
- Reflex.Dynamic: rebuildSortedFHList :: RebuildSortedHList l => [DSum (HListPtr l) f] -> FHList f l
+ Reflex.Dynamic: rebuildSortedFHList :: forall (f :: Type -> Type). RebuildSortedHList l => [DSum (HListPtr l) f] -> FHList f l
- Reflex.Dynamic: scanDyn :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b) -> (a -> b -> b) -> Dynamic t a -> m (Dynamic t b)
+ Reflex.Dynamic: scanDyn :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b) -> (a -> b -> b) -> Dynamic t a -> m (Dynamic t b)
- Reflex.Dynamic: scanDynMaybe :: (Reflex t, MonadHold t m, MonadFix m) => (a -> b) -> (a -> b -> Maybe b) -> Dynamic t a -> m (Dynamic t b)
+ Reflex.Dynamic: scanDynMaybe :: forall {k} (t :: k) m a b. (Reflex t, MonadHold t m, MonadFix m) => (a -> b) -> (a -> b -> Maybe b) -> Dynamic t a -> m (Dynamic t b)
- Reflex.Dynamic: splitDynPure :: Reflex t => Dynamic t (a, b) -> (Dynamic t a, Dynamic t b)
+ Reflex.Dynamic: splitDynPure :: forall {k} (t :: k) a b. Reflex t => Dynamic t (a, b) -> (Dynamic t a, Dynamic t b)
- Reflex.Dynamic: switchDyn :: forall t a. Reflex t => Dynamic t (Event t a) -> Event t a
+ Reflex.Dynamic: switchDyn :: forall {k} (t :: k) a. Reflex t => Dynamic t (Event t a) -> Event t a
- Reflex.Dynamic: switchPromptlyDyn :: forall t a. Reflex t => Dynamic t (Event t a) -> Event t a
+ Reflex.Dynamic: switchPromptlyDyn :: forall {k} (t :: k) a. Reflex t => Dynamic t (Event t a) -> Event t a
- Reflex.Dynamic: tagPromptlyDyn :: Reflex t => Dynamic t a -> Event t b -> Event t a
+ Reflex.Dynamic: tagPromptlyDyn :: forall {k} (t :: k) a b. Reflex t => Dynamic t a -> Event t b -> Event t a
- Reflex.Dynamic: toggle :: (Reflex t, MonadHold t m, MonadFix m) => Bool -> Event t a -> m (Dynamic t Bool)
+ Reflex.Dynamic: toggle :: forall {k} (t :: k) m a. (Reflex t, MonadHold t m, MonadFix m) => Bool -> Event t a -> m (Dynamic t Bool)
- Reflex.Dynamic: traceDyn :: (Reflex t, Show a) => String -> Dynamic t a -> Dynamic t a
+ Reflex.Dynamic: traceDyn :: forall {k} (t :: k) a. (Reflex t, Show a) => String -> Dynamic t a -> Dynamic t a
- Reflex.Dynamic: traceDynWith :: Reflex t => (a -> String) -> Dynamic t a -> Dynamic t a
+ Reflex.Dynamic: traceDynWith :: forall {k} (t :: k) a. Reflex t => (a -> String) -> Dynamic t a -> Dynamic t a
- Reflex.Dynamic: unsafeDynamic :: Reflex t => Behavior t a -> Event t a -> Dynamic t a
+ Reflex.Dynamic: unsafeDynamic :: forall {k} (t :: k) a. Reflex t => Behavior t a -> Event t a -> Dynamic t a
- Reflex.DynamicWriter.Base: DynamicWriterT :: StateT [Dynamic t w] m a -> DynamicWriterT t w m a
+ Reflex.DynamicWriter.Base: DynamicWriterT :: StateT [Dynamic t w] m a -> DynamicWriterT t w (m :: Type -> Type) a
- Reflex.DynamicWriter.Base: [unDynamicWriterT] :: DynamicWriterT t w m a -> StateT [Dynamic t w] m a
+ Reflex.DynamicWriter.Base: [unDynamicWriterT] :: DynamicWriterT t w (m :: Type -> Type) a -> StateT [Dynamic t w] m a
- Reflex.DynamicWriter.Base: newtype DynamicWriterT t w m a
+ Reflex.DynamicWriter.Base: newtype DynamicWriterT t w (m :: Type -> Type) a
- Reflex.DynamicWriter.Base: withDynamicWriterT :: (Monoid w, Monoid w', Reflex t, MonadHold t m) => (w -> w') -> DynamicWriterT t w m a -> DynamicWriterT t w' m a
+ Reflex.DynamicWriter.Base: withDynamicWriterT :: forall w w' t (m :: Type -> Type) a. (Monoid w, Monoid w', Reflex t, MonadHold t m) => (w -> w') -> DynamicWriterT t w m a -> DynamicWriterT t w' m a
- Reflex.DynamicWriter.Class: class (Monad m, Monoid w) => DynamicWriter t w m | m -> t w
+ Reflex.DynamicWriter.Class: class (Monad m, Monoid w) => DynamicWriter t w (m :: Type -> Type) | m -> t w
- Reflex.EventWriter.Base: EventWriterT :: StateT (EventWriterState t w) m a -> EventWriterT t w m a
+ Reflex.EventWriter.Base: EventWriterT :: StateT (EventWriterState t w) m a -> EventWriterT t w (m :: Type -> Type) a
- Reflex.EventWriter.Base: [unEventWriterT] :: EventWriterT t w m a -> StateT (EventWriterState t w) m a
+ Reflex.EventWriter.Base: [unEventWriterT] :: EventWriterT t w (m :: Type -> Type) a -> StateT (EventWriterState t w) m a
- Reflex.EventWriter.Base: mapEventWriterT :: (forall x. m x -> n x) -> EventWriterT t w m a -> EventWriterT t w n a
+ Reflex.EventWriter.Base: mapEventWriterT :: (forall x. () => m x -> n x) -> EventWriterT t w m a -> EventWriterT t w n a
- Reflex.EventWriter.Base: newtype EventWriterT t w m a
+ Reflex.EventWriter.Base: newtype EventWriterT t w (m :: Type -> Type) a
- Reflex.EventWriter.Base: runEventWriterT :: forall t m w a. (Reflex t, Monad m, Semigroup w) => EventWriterT t w m a -> m (a, Event t w)
+ Reflex.EventWriter.Base: runEventWriterT :: (Reflex t, Monad m, Semigroup w) => EventWriterT t w m a -> m (a, Event t w)
- Reflex.EventWriter.Base: runWithReplaceEventWriterTWith :: forall m t w a b. (Reflex t, MonadHold t m, Semigroup w) => (forall a' b'. m a' -> Event t (m b') -> EventWriterT t w m (a', Event t b')) -> EventWriterT t w m a -> Event t (EventWriterT t w m b) -> EventWriterT t w m (a, Event t b)
+ Reflex.EventWriter.Base: runWithReplaceEventWriterTWith :: forall m t w a b. (Reflex t, MonadHold t m, Semigroup w) => (forall a' b'. () => m a' -> Event t (m b') -> EventWriterT t w m (a', Event t b')) -> EventWriterT t w m a -> Event t (EventWriterT t w m b) -> EventWriterT t w m (a, Event t b)
- Reflex.EventWriter.Base: sequenceDMapWithAdjustEventWriterTWith :: forall t m p p' w k v v'. (Reflex t, MonadHold t m, Semigroup w, Patch (p' (Some k) (Event t w)), PatchTarget (p' (Some k) (Event t w)) ~ Map (Some k) (Event t w), GCompare k, Patch (p' (Some k) w), PatchTarget (p' (Some k) w) ~ Map (Some k) w) => ((forall a. k a -> v a -> m (Compose ((,) (Event t w)) v' a)) -> DMap k v -> Event t (p k v) -> EventWriterT t w m (DMap k (Compose ((,) (Event t w)) v'), Event t (p k (Compose ((,) (Event t w)) v')))) -> ((forall a. Compose ((,) (Event t w)) v' a -> v' a) -> p k (Compose ((,) (Event t w)) v') -> p k v') -> ((forall a. Compose ((,) (Event t w)) v' a -> Event t w) -> p k (Compose ((,) (Event t w)) v') -> p' (Some k) (Event t w)) -> (Incremental t (p' (Some k) (Event t w)) -> Event t (PatchTarget (p' (Some k) w))) -> (Event t (p' (Some k) (Event t w)) -> Event t (p' (Some k) w)) -> (forall a. k a -> v a -> EventWriterT t w m (v' a)) -> DMap k v -> Event t (p k v) -> EventWriterT t w m (DMap k v', Event t (p k v'))
+ Reflex.EventWriter.Base: sequenceDMapWithAdjustEventWriterTWith :: forall t m p p' w k v v'. (Reflex t, MonadHold t m, Semigroup w, Patch (p' (Some k) (Event t w)), PatchTarget (p' (Some k) (Event t w)) ~ Map (Some k) (Event t w), GCompare k, Patch (p' (Some k) w), PatchTarget (p' (Some k) w) ~ Map (Some k) w) => ((forall a. () => k a -> v a -> m (Compose ((,) (Event t w)) v' a)) -> DMap k v -> Event t (p k v) -> EventWriterT t w m (DMap k (Compose ((,) (Event t w)) v'), Event t (p k (Compose ((,) (Event t w)) v')))) -> ((forall a. () => Compose ((,) (Event t w)) v' a -> v' a) -> p k (Compose ((,) (Event t w)) v') -> p k v') -> ((forall a. () => Compose ((,) (Event t w)) v' a -> Event t w) -> p k (Compose ((,) (Event t w)) v') -> p' (Some k) (Event t w)) -> (Incremental t (p' (Some k) (Event t w)) -> Event t (PatchTarget (p' (Some k) w))) -> (Event t (p' (Some k) (Event t w)) -> Event t (p' (Some k) w)) -> (forall a. () => k a -> v a -> EventWriterT t w m (v' a)) -> DMap k v -> Event t (p k v) -> EventWriterT t w m (DMap k v', Event t (p k v'))
- Reflex.EventWriter.Base: withEventWriterT :: (Semigroup w, Semigroup w', Reflex t, MonadHold t m) => (w -> w') -> EventWriterT t w m a -> EventWriterT t w' m a
+ Reflex.EventWriter.Base: withEventWriterT :: forall w w' t (m :: Type -> Type) a. (Semigroup w, Semigroup w', Reflex t, MonadHold t m) => (w -> w') -> EventWriterT t w m a -> EventWriterT t w' m a
- Reflex.EventWriter.Class: class (Monad m, Semigroup w) => EventWriter t w m | m -> t w
+ Reflex.EventWriter.Class: class (Monad m, Semigroup w) => EventWriter t w (m :: Type -> Type) | m -> t w
- Reflex.FastWeak: getFastWeakTicket :: forall a. FastWeak a -> IO (Maybe (FastWeakTicket a))
+ Reflex.FastWeak: getFastWeakTicket :: FastWeak a -> IO (Maybe (FastWeakTicket a))
- Reflex.FunctorMaybe: class FunctorMaybe f
+ Reflex.FunctorMaybe: class FunctorMaybe (f :: Type -> Type)
- Reflex.Host.Class: class (ReflexHost t, Applicative m, Monad m) => MonadReadEvent t m | m -> t
+ Reflex.Host.Class: class (ReflexHost t, Applicative m, Monad m) => MonadReadEvent t (m :: Type -> Type) | m -> t
- Reflex.Host.Class: class (Applicative m, Monad m) => MonadReflexCreateTrigger t m | m -> t
+ Reflex.Host.Class: class (Applicative m, Monad m) => MonadReflexCreateTrigger t (m :: Type -> Type) | m -> t
- Reflex.Host.Class: class (ReflexHost t, MonadReflexCreateTrigger t m, MonadSubscribeEvent t m, MonadReadEvent t (ReadPhase m), MonadSample t (ReadPhase m), MonadHold t (ReadPhase m)) => MonadReflexHost t m | m -> t where {
+ Reflex.Host.Class: class (ReflexHost t, MonadReflexCreateTrigger t m, MonadSubscribeEvent t m, MonadReadEvent t ReadPhase m, MonadSample t ReadPhase m, MonadHold t ReadPhase m) => MonadReflexHost t (m :: Type -> Type) | m -> t where {
- Reflex.Host.Class: class (Reflex t, Monad m) => MonadSubscribeEvent t m | m -> t
+ Reflex.Host.Class: class (Reflex t, Monad m) => MonadSubscribeEvent t (m :: Type -> Type) | m -> t
- Reflex.Host.Class: class (Reflex t, MonadReflexCreateTrigger t (HostFrame t), MonadSample t (HostFrame t), MonadHold t (HostFrame t), MonadFix (HostFrame t), MonadSubscribeEvent t (HostFrame t)) => ReflexHost t where {
+ Reflex.Host.Class: class (Reflex t, MonadReflexCreateTrigger t HostFrame t, MonadSample t HostFrame t, MonadHold t HostFrame t, MonadFix HostFrame t, MonadSubscribeEvent t HostFrame t) => ReflexHost t where {
- Reflex.Host.Class: newFanEventWithTrigger :: (MonadReflexCreateTrigger t m, GCompare k) => (forall a. k a -> EventTrigger t a -> IO (IO ())) -> m (EventSelector t k)
+ Reflex.Host.Class: newFanEventWithTrigger :: (MonadReflexCreateTrigger t m, GCompare k) => (forall a. () => k a -> EventTrigger t a -> IO (IO ())) -> m (EventSelector t k)
- Reflex.Host.Headless: runHeadlessApp :: forall a. (forall t m. MonadHeadlessApp t m => m (Event t a)) -> IO a
+ Reflex.Host.Headless: runHeadlessApp :: (forall t (m :: Type -> Type). MonadHeadlessApp t m => m (Event t a)) -> IO a
- Reflex.Host.Headless: type MonadHeadlessApp t m = (Reflex t, Adjustable t m, MonadCatch m, MonadFix (Performable m), MonadFix m, MonadHold t (Performable m), MonadHold t m, MonadIO (HostFrame t), MonadIO (Performable m), MonadIO m, MonadMask m, MonadRef (HostFrame t), MonadSample t (Performable m), MonadSample t m, MonadThrow m, MonadThrow (Performable m), NotReady t m, PerformEvent t m, PostBuild t m, PrimMonad (HostFrame t), Ref (HostFrame t) ~ IORef, Ref m ~ IORef, ReflexHost t, TriggerEvent t m)
+ Reflex.Host.Headless: type MonadHeadlessApp t (m :: Type -> Type) = (Reflex t, Adjustable t m, MonadCatch m, MonadFix Performable m, MonadFix m, MonadHold t Performable m, MonadHold t m, MonadIO HostFrame t, MonadIO Performable m, MonadIO m, MonadMask m, MonadRef HostFrame t, MonadSample t Performable m, MonadSample t m, MonadThrow m, MonadThrow Performable m, NotReady t m, PerformEvent t m, PostBuild t m, PrimMonad HostFrame t, Ref HostFrame t ~ IORef, Ref m ~ IORef, ReflexHost t, TriggerEvent t m)
- Reflex.NotReady.Class: class Monad m => NotReady t m | m -> t
+ Reflex.NotReady.Class: class Monad m => NotReady t (m :: Type -> Type) | m -> t
- Reflex.NotReady.Class: notReady :: (NotReady t m, MonadTrans f, m ~ f m', NotReady t m') => m ()
+ Reflex.NotReady.Class: notReady :: NotReady t m => m ()
- Reflex.NotReady.Class: notReadyUntil :: (NotReady t m, MonadTrans f, m ~ f m', NotReady t m') => Event t a -> m ()
+ Reflex.NotReady.Class: notReadyUntil :: NotReady t m => Event t a -> m ()
- Reflex.PerformEvent.Base: FireCommand :: (forall a. [DSum (EventTrigger t) Identity] -> ReadPhase m a -> m [a]) -> FireCommand t m
+ Reflex.PerformEvent.Base: FireCommand :: (forall a. () => [DSum (EventTrigger t) Identity] -> ReadPhase m a -> m [a]) -> FireCommand t (m :: Type -> Type)
- Reflex.PerformEvent.Base: PerformEventT :: RequesterT t (HostFrame t) Identity (HostFrame t) a -> PerformEventT t m a
+ Reflex.PerformEvent.Base: PerformEventT :: RequesterT t (HostFrame t) Identity (HostFrame t) a -> PerformEventT t (m :: k) a
- Reflex.PerformEvent.Base: [runFireCommand] :: FireCommand t m -> forall a. [DSum (EventTrigger t) Identity] -> ReadPhase m a -> m [a]
+ Reflex.PerformEvent.Base: [runFireCommand] :: FireCommand t (m :: Type -> Type) -> forall a. () => [DSum (EventTrigger t) Identity] -> ReadPhase m a -> m [a]
- Reflex.PerformEvent.Base: [unPerformEventT] :: PerformEventT t m a -> RequesterT t (HostFrame t) Identity (HostFrame t) a
+ Reflex.PerformEvent.Base: [unPerformEventT] :: PerformEventT t (m :: k) a -> RequesterT t (HostFrame t) Identity (HostFrame t) a
- Reflex.PerformEvent.Base: hostPerformEventT :: forall t m a. (MonadReflexHost t m, MonadRef m, Ref m ~ Ref IO) => PerformEventT t m a -> m (a, FireCommand t m)
+ Reflex.PerformEvent.Base: hostPerformEventT :: (MonadReflexHost t m, MonadRef m, Ref m ~ Ref IO) => PerformEventT t m a -> m (a, FireCommand t m)
- Reflex.PerformEvent.Base: newtype FireCommand t m
+ Reflex.PerformEvent.Base: newtype FireCommand t (m :: Type -> Type)
- Reflex.PerformEvent.Base: newtype PerformEventT t m a
+ Reflex.PerformEvent.Base: newtype PerformEventT t (m :: k) a
- Reflex.PerformEvent.Class: class (Reflex t, Monad (Performable m), Monad m) => PerformEvent t m | m -> t where {
+ Reflex.PerformEvent.Class: class (Reflex t, Monad Performable m, Monad m) => PerformEvent t (m :: Type -> Type) | m -> t where {
- Reflex.PostBuild.Base: PostBuildT :: ReaderT (Event t ()) m a -> PostBuildT t m a
+ Reflex.PostBuild.Base: PostBuildT :: ReaderT (Event t ()) m a -> PostBuildT t (m :: Type -> Type) a
- Reflex.PostBuild.Base: [unPostBuildT] :: PostBuildT t m a -> ReaderT (Event t ()) m a
+ Reflex.PostBuild.Base: [unPostBuildT] :: PostBuildT t (m :: Type -> Type) a -> ReaderT (Event t ()) m a
- Reflex.PostBuild.Base: mapDMapWithAdjustImpl :: forall t m k v v' p. (Reflex t, MonadFix m, MonadHold t m) => ((forall a. k a -> Compose ((,) (Bool, Event t ())) v a -> m (v' a)) -> DMap k (Compose ((,) (Bool, Event t ())) v) -> Event t (p k (Compose ((,) (Bool, Event t ())) v)) -> m (DMap k v', Event t (p k v'))) -> ((forall a. v a -> Compose ((,) (Bool, Event t ())) v a) -> p k v -> p k (Compose ((,) (Bool, Event t ())) v)) -> (forall a. k a -> v a -> PostBuildT t m (v' a)) -> DMap k v -> Event t (p k v) -> PostBuildT t m (DMap k v', Event t (p k v'))
+ Reflex.PostBuild.Base: mapDMapWithAdjustImpl :: (Reflex t, MonadFix m, MonadHold t m) => ((forall a. () => k a -> Compose ((,) (Bool, Event t ())) v a -> m (v' a)) -> DMap k (Compose ((,) (Bool, Event t ())) v) -> Event t (p k (Compose ((,) (Bool, Event t ())) v)) -> m (DMap k v', Event t (p k v'))) -> ((forall a. () => v a -> Compose ((,) (Bool, Event t ())) v a) -> p k v -> p k (Compose ((,) (Bool, Event t ())) v)) -> (forall a. () => k a -> v a -> PostBuildT t m (v' a)) -> DMap k v -> Event t (p k v) -> PostBuildT t m (DMap k v', Event t (p k v'))
- Reflex.PostBuild.Base: newtype PostBuildT t m a
+ Reflex.PostBuild.Base: newtype PostBuildT t (m :: Type -> Type) a
- Reflex.PostBuild.Class: class (Reflex t, Monad m) => PostBuild t m | m -> t
+ Reflex.PostBuild.Class: class (Reflex t, Monad m) => PostBuild t (m :: Type -> Type) | m -> t
- Reflex.Profiled: ProfiledM :: m a -> ProfiledM m a
+ Reflex.Profiled: ProfiledM :: m a -> ProfiledM (m :: k -> Type) (a :: k)
- Reflex.Profiled: [runProfiledM] :: ProfiledM m a -> m a
+ Reflex.Profiled: [runProfiledM] :: ProfiledM (m :: k -> Type) (a :: k) -> m a
- Reflex.Profiled: data ProfiledTimeline t
+ Reflex.Profiled: data ProfiledTimeline (t :: k)
- Reflex.Profiled: newtype ProfiledM m a
+ Reflex.Profiled: newtype ProfiledM (m :: k -> Type) (a :: k)
- Reflex.Profiled: profileEvent :: Reflex t => Event t a -> Event t a
+ Reflex.Profiled: profileEvent :: forall {k} (t :: k) a. Reflex t => Event t a -> Event t a
- Reflex.Pure: data Pure (t :: Type)
+ Reflex.Pure: data Pure t
- Reflex.Pure: data family Incremental t :: Type -> Type
+ Reflex.Pure: data family Incremental (t :: k) :: Type -> Type
- Reflex.Query.Base: QueryT :: StateT [Behavior t q] (EventWriterT t q (ReaderT (Dynamic t (QueryResult q)) m)) a -> QueryT t q m a
+ Reflex.Query.Base: QueryT :: StateT [Behavior t q] (EventWriterT t q (ReaderT (Dynamic t (QueryResult q)) m)) a -> QueryT t q (m :: Type -> Type) a
- Reflex.Query.Base: [unQueryT] :: QueryT t q m a -> StateT [Behavior t q] (EventWriterT t q (ReaderT (Dynamic t (QueryResult q)) m)) a
+ Reflex.Query.Base: [unQueryT] :: QueryT t q (m :: Type -> Type) a -> StateT [Behavior t q] (EventWriterT t q (ReaderT (Dynamic t (QueryResult q)) m)) a
- Reflex.Query.Base: dynWithQueryT :: (MonadFix m, PostBuild t m, Group q, Commutative q, Group q', Commutative q', Query q') => Dynamic t (QueryMorphism q q') -> QueryT t q m a -> QueryT t q' m a
+ Reflex.Query.Base: dynWithQueryT :: forall (m :: Type -> Type) t q q' a. (MonadFix m, PostBuild t m, Group q, Commutative q, Group q', Commutative q', Query q') => Dynamic t (QueryMorphism q q') -> QueryT t q m a -> QueryT t q' m a
- Reflex.Query.Base: mapQueryT :: (forall b. m b -> n b) -> QueryT t q m a -> QueryT t q n a
+ Reflex.Query.Base: mapQueryT :: (forall b. () => m b -> n b) -> QueryT t q m a -> QueryT t q n a
- Reflex.Query.Base: newtype QueryT t q m a
+ Reflex.Query.Base: newtype QueryT t q (m :: Type -> Type) a
- Reflex.Query.Base: withQueryT :: (MonadFix m, PostBuild t m, Group q, Group q', Commutative q, Commutative q', Query q') => QueryMorphism q q' -> QueryT t q m a -> QueryT t q' m a
+ Reflex.Query.Base: withQueryT :: forall (m :: Type -> Type) t q q' a. (MonadFix m, PostBuild t m, Group q, Group q', Commutative q, Commutative q', Query q') => QueryMorphism q q' -> QueryT t q m a -> QueryT t q' m a
- Reflex.Query.Class: class (Group q, Commutative q, Query q, Monad m) => MonadQuery t q m | m -> q t
+ Reflex.Query.Class: class (Group q, Commutative q, Query q, Monad m) => MonadQuery t q (m :: Type -> Type) | m -> q t
- Reflex.Query.Class: class (Monoid (QueryResult a), Semigroup (QueryResult a)) => Query a where {
+ Reflex.Query.Class: class (Monoid QueryResult a, Semigroup QueryResult a) => Query a where {
- Reflex.Requester.Base: RequesterT :: StateT (RequesterState t request) (ReaderT (EventSelectorInt t Any) m) a -> RequesterT t request (response :: Type -> Type) m a
+ Reflex.Requester.Base: RequesterT :: StateT (RequesterState t request) (ReaderT (EventSelectorInt t (Any :: Type)) m) a -> RequesterT t (request :: Type -> Type) (response :: Type -> Type) (m :: Type -> Type) a
- Reflex.Requester.Base: [unRequesterT] :: RequesterT t request (response :: Type -> Type) m a -> StateT (RequesterState t request) (ReaderT (EventSelectorInt t Any) m) a
+ Reflex.Requester.Base: [unRequesterT] :: RequesterT t (request :: Type -> Type) (response :: Type -> Type) (m :: Type -> Type) a -> StateT (RequesterState t request) (ReaderT (EventSelectorInt t (Any :: Type)) m) a
- Reflex.Requester.Base: data RequesterData f
+ Reflex.Requester.Base: data RequesterData (f :: Type -> Type)
- Reflex.Requester.Base: forRequesterData :: forall request response m. Applicative m => RequesterData request -> (forall a. request a -> m (response a)) -> m (RequesterData response)
+ Reflex.Requester.Base: forRequesterData :: forall request response m. Applicative m => RequesterData request -> (forall a. () => request a -> m (response a)) -> m (RequesterData response)
- Reflex.Requester.Base: matchResponseMapWithRequests :: forall t rawRequest rawResponse request response m. (MonadFix m, MonadHold t m, Reflex t) => (forall a. request a -> (rawRequest, rawResponse -> response a)) -> Event t (RequesterData request) -> Event t (Map Int rawResponse) -> m (Event t (Map Int rawRequest), Event t (RequesterData response))
+ Reflex.Requester.Base: matchResponseMapWithRequests :: forall t rawRequest rawResponse request response m. (MonadFix m, MonadHold t m, Reflex t) => (forall a. () => request a -> (rawRequest, rawResponse -> response a)) -> Event t (RequesterData request) -> Event t (Map Int rawResponse) -> m (Event t (Map Int rawRequest), Event t (RequesterData response))
- Reflex.Requester.Base: matchResponsesWithRequests :: forall t rawRequest rawResponse request response m. (MonadFix m, MonadHold t m, Reflex t) => (forall a. request a -> (rawRequest, rawResponse -> response a)) -> Event t (RequesterData request) -> Event t (Int, rawResponse) -> m (Event t (Map Int rawRequest), Event t (RequesterData response))
+ Reflex.Requester.Base: matchResponsesWithRequests :: forall t rawRequest rawResponse request response m. (MonadFix m, MonadHold t m, Reflex t) => (forall a. () => request a -> (rawRequest, rawResponse -> response a)) -> Event t (RequesterData request) -> Event t (Int, rawResponse) -> m (Event t (Map Int rawRequest), Event t (RequesterData response))
- Reflex.Requester.Base: multiEntry :: IntMap (RequesterData f) -> Entry f Multi
+ Reflex.Requester.Base: multiEntry :: forall (f :: Type -> Type). IntMap (RequesterData f) -> Entry f Multi
- Reflex.Requester.Base: newtype RequesterT t request (response :: Type -> Type) m a
+ Reflex.Requester.Base: newtype RequesterT t (request :: Type -> Type) (response :: Type -> Type) (m :: Type -> Type) a
- Reflex.Requester.Base: requesterDataToList :: RequesterData f -> [DSum RequesterDataKey f]
+ Reflex.Requester.Base: requesterDataToList :: forall (f :: Type -> Type). RequesterData f -> [DSum RequesterDataKey f]
- Reflex.Requester.Base: requesting' :: (MyTagTypeOffset x, Monad m) => Event t (Entry request x) -> RequesterT t request response m (Event t (Entry response x))
+ Reflex.Requester.Base: requesting' :: forall x (m :: Type -> Type) t (request :: Type -> Type) (response :: Type -> Type). (MyTagTypeOffset x, Monad m) => Event t (Entry request x) -> RequesterT t request response m (Event t (Entry response x))
- Reflex.Requester.Base: runRequesterT :: (Reflex t, Monad m) => RequesterT t request response m a -> Event t (RequesterData response) -> m (a, Event t (RequesterData request))
+ Reflex.Requester.Base: runRequesterT :: forall t m (request :: Type -> Type) (response :: Type -> Type) a. (Reflex t, Monad m) => RequesterT t request response m a -> Event t (RequesterData response) -> m (a, Event t (RequesterData request))
- Reflex.Requester.Base: runWithReplaceRequesterTWith :: forall m t request response a b. (Reflex t, MonadHold t m, MonadFix m) => (forall a' b'. m a' -> Event t (m b') -> RequesterT t request response m (a', Event t b')) -> RequesterT t request response m a -> Event t (RequesterT t request response m b) -> RequesterT t request response m (a, Event t b)
+ Reflex.Requester.Base: runWithReplaceRequesterTWith :: forall m t (request :: Type -> Type) (response :: Type -> Type) a b. (Reflex t, MonadHold t m, MonadFix m) => (forall a' b'. () => m a' -> Event t (m b') -> RequesterT t request response m (a', Event t b')) -> RequesterT t request response m a -> Event t (RequesterT t request response m b) -> RequesterT t request response m (a, Event t b)
- Reflex.Requester.Base: traverseDMapWithKeyWithAdjustRequesterTWith :: forall k t request response m v v' p p'. (GCompare k, Reflex t, MonadHold t m, PatchTarget (p' (Some k) (Event t (IntMap (RequesterData request)))) ~ Map (Some k) (Event t (IntMap (RequesterData request))), Patch (p' (Some k) (Event t (IntMap (RequesterData request)))), MonadFix m) => (forall k' v1 v2. GCompare k' => (forall a. k' a -> v1 a -> m (v2 a)) -> DMap k' v1 -> Event t (p k' v1) -> RequesterT t request response m (DMap k' v2, Event t (p k' v2))) -> (forall v1 v2. (forall a. v1 a -> v2 a) -> p k v1 -> p k v2) -> (forall v1 v2. (forall a. v1 a -> v2) -> p k v1 -> p' (Some k) v2) -> (forall v2. p' (Some k) v2 -> Map (Some k) v2) -> (forall a. Incremental t (p' (Some k) (Event t a)) -> Event t (Map (Some k) a)) -> (forall a. k a -> v a -> RequesterT t request response m (v' a)) -> DMap k v -> Event t (p k v) -> RequesterT t request response m (DMap k v', Event t (p k v'))
+ Reflex.Requester.Base: traverseDMapWithKeyWithAdjustRequesterTWith :: forall k t (request :: Type -> Type) (response :: Type -> Type) m v v' p p'. (GCompare k, Reflex t, MonadHold t m, PatchTarget (p' (Some k) (Event t (IntMap (RequesterData request)))) ~ Map (Some k) (Event t (IntMap (RequesterData request))), Patch (p' (Some k) (Event t (IntMap (RequesterData request)))), MonadFix m) => (forall (k' :: Type -> Type) (v1 :: Type -> Type) (v2 :: Type -> Type). GCompare k' => (forall a. () => k' a -> v1 a -> m (v2 a)) -> DMap k' v1 -> Event t (p k' v1) -> RequesterT t request response m (DMap k' v2, Event t (p k' v2))) -> (forall (v1 :: Type -> Type) (v2 :: Type -> Type). () => (forall a. () => v1 a -> v2 a) -> p k v1 -> p k v2) -> (forall (v1 :: Type -> Type) v2. () => (forall a. () => v1 a -> v2) -> p k v1 -> p' (Some k) v2) -> (forall v2. () => p' (Some k) v2 -> Map (Some k) v2) -> (forall a. () => Incremental t (p' (Some k) (Event t a)) -> Event t (Map (Some k) a)) -> (forall a. () => k a -> v a -> RequesterT t request response m (v' a)) -> DMap k v -> Event t (p k v) -> RequesterT t request response m (DMap k v', Event t (p k v'))
- Reflex.Requester.Base: traverseIntMapWithKeyWithAdjustRequesterTWith :: forall t request response m v v' p. (Reflex t, MonadHold t m, PatchTarget (p (Event t (IntMap (RequesterData request)))) ~ IntMap (Event t (IntMap (RequesterData request))), Patch (p (Event t (IntMap (RequesterData request)))), Functor p, MonadFix m) => ((Key -> (Key, v) -> m (Event t (IntMap (RequesterData request)), v')) -> IntMap (Key, v) -> Event t (p (Key, v)) -> RequesterT t request response m (IntMap (Event t (IntMap (RequesterData request)), v'), Event t (p (Event t (IntMap (RequesterData request)), v')))) -> (p (Event t (IntMap (RequesterData request))) -> IntMap (Event t (IntMap (RequesterData request)))) -> (Incremental t (p (Event t (IntMap (RequesterData request)))) -> Event t (IntMap (IntMap (RequesterData request)))) -> (Key -> v -> RequesterT t request response m v') -> IntMap v -> Event t (p v) -> RequesterT t request response m (IntMap v', Event t (p v'))
+ Reflex.Requester.Base: traverseIntMapWithKeyWithAdjustRequesterTWith :: forall t (request :: Type -> Type) (response :: Type -> Type) m v v' p. (Reflex t, MonadHold t m, PatchTarget (p (Event t (IntMap (RequesterData request)))) ~ IntMap (Event t (IntMap (RequesterData request))), Patch (p (Event t (IntMap (RequesterData request)))), Functor p, MonadFix m) => ((Key -> (Key, v) -> m (Event t (IntMap (RequesterData request)), v')) -> IntMap (Key, v) -> Event t (p (Key, v)) -> RequesterT t request response m (IntMap (Event t (IntMap (RequesterData request)), v'), Event t (p (Event t (IntMap (RequesterData request)), v')))) -> (p (Event t (IntMap (RequesterData request))) -> IntMap (Event t (IntMap (RequesterData request)))) -> (Incremental t (p (Event t (IntMap (RequesterData request)))) -> Event t (IntMap (IntMap (RequesterData request)))) -> (Key -> v -> RequesterT t request response m v') -> IntMap v -> Event t (p v) -> RequesterT t request response m (IntMap v', Event t (p v'))
- Reflex.Requester.Base: traverseRequesterData :: forall m request response. Applicative m => (forall a. request a -> m (response a)) -> RequesterData request -> m (RequesterData response)
+ Reflex.Requester.Base: traverseRequesterData :: Applicative m => (forall a. () => request a -> m (response a)) -> RequesterData request -> m (RequesterData response)
- Reflex.Requester.Base: unMultiEntry :: Entry f Multi -> IntMap (RequesterData f)
+ Reflex.Requester.Base: unMultiEntry :: forall (f :: Type -> Type). Entry f Multi -> IntMap (RequesterData f)
- Reflex.Requester.Base: withRequesterT :: (Reflex t, MonadFix m) => (forall x. req x -> req' x) -> (forall x. rsp' x -> rsp x) -> RequesterT t req rsp m a -> RequesterT t req' rsp' m a
+ Reflex.Requester.Base: withRequesterT :: forall t (m :: Type -> Type) req req' rsp' rsp a. (Reflex t, MonadFix m) => (forall x. () => req x -> req' x) -> (forall x. () => rsp' x -> rsp x) -> RequesterT t req rsp m a -> RequesterT t req' rsp' m a
- Reflex.Requester.Base.Internal: Decoder :: RequesterDataKey a -> (rawResponse -> response a) -> Decoder rawResponse response
+ Reflex.Requester.Base.Internal: Decoder :: RequesterDataKey a -> (rawResponse -> response a) -> Decoder rawResponse (response :: Type -> Type)
- Reflex.Requester.Base.Internal: Entry :: EntryContents request x -> Entry request x
+ Reflex.Requester.Base.Internal: Entry :: EntryContents request x -> Entry (request :: Type -> Type) x
- Reflex.Requester.Base.Internal: Multi2Contents :: {-# UNPACK #-} !Dict (GCompare k) -> {-# UNPACK #-} !Map (Some k) (IntMap (RequesterData request)) -> Multi2Contents k request
+ Reflex.Requester.Base.Internal: Multi2Contents :: {-# UNPACK #-} !Dict (GCompare k) -> {-# UNPACK #-} !Map (Some k) (IntMap (RequesterData request)) -> Multi2Contents (k :: Type -> Type) (request :: Type -> Type)
- Reflex.Requester.Base.Internal: RequesterData :: TagMap (Entry f) -> RequesterData f
+ Reflex.Requester.Base.Internal: RequesterData :: TagMap (Entry f) -> RequesterData (f :: Type -> Type)
- Reflex.Requester.Base.Internal: RequesterState :: {-# UNPACK #-} !Int -> ![(Int, Event t Any)] -> RequesterState t (request :: Type -> Type)
+ Reflex.Requester.Base.Internal: RequesterState :: {-# UNPACK #-} !Int -> ![(Int, Event t (Any :: Type))] -> RequesterState t (request :: Type -> Type)
- Reflex.Requester.Base.Internal: RequesterT :: StateT (RequesterState t request) (ReaderT (EventSelectorInt t Any) m) a -> RequesterT t request (response :: Type -> Type) m a
+ Reflex.Requester.Base.Internal: RequesterT :: StateT (RequesterState t request) (ReaderT (EventSelectorInt t (Any :: Type)) m) a -> RequesterT t (request :: Type -> Type) (response :: Type -> Type) (m :: Type -> Type) a
- Reflex.Requester.Base.Internal: TagMap :: IntMap Any -> TagMap (f :: Type -> Type)
+ Reflex.Requester.Base.Internal: TagMap :: IntMap (Any :: Type) -> TagMap (f :: Type -> Type)
- Reflex.Requester.Base.Internal: [MyTagType_Multi2] :: MyTagType (Multi2 k)
+ Reflex.Requester.Base.Internal: [MyTagType_Multi2] :: forall (k :: Type -> Type). MyTagType (Multi2 k)
- Reflex.Requester.Base.Internal: [MyTagType_Single] :: MyTagType (Single a)
+ Reflex.Requester.Base.Internal: [MyTagType_Single] :: forall a1. MyTagType (Single a1)
- Reflex.Requester.Base.Internal: [RequesterDataKey_Multi2] :: GCompare k => {-# UNPACK #-} !MyTag (Multi2 k) -> !Some k -> {-# UNPACK #-} !Int -> !RequesterDataKey a -> RequesterDataKey a
+ Reflex.Requester.Base.Internal: [RequesterDataKey_Multi2] :: forall (k :: Type -> Type) a. GCompare k => {-# UNPACK #-} !MyTag (Multi2 k) -> !Some k -> {-# UNPACK #-} !Int -> !RequesterDataKey a -> RequesterDataKey a
- Reflex.Requester.Base.Internal: [RequesterDataKey_Multi3] :: {-# UNPACK #-} !MyTag Multi3 -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> !RequesterDataKey a -> RequesterDataKey a
+ Reflex.Requester.Base.Internal: [RequesterDataKey_Multi3] :: forall a. {-# UNPACK #-} !MyTag Multi3 -> {-# UNPACK #-} !Int -> {-# UNPACK #-} !Int -> !RequesterDataKey a -> RequesterDataKey a
- Reflex.Requester.Base.Internal: [RequesterDataKey_Multi] :: {-# UNPACK #-} !MyTag Multi -> {-# UNPACK #-} !Int -> !RequesterDataKey a -> RequesterDataKey a
+ Reflex.Requester.Base.Internal: [RequesterDataKey_Multi] :: forall a. {-# UNPACK #-} !MyTag Multi -> {-# UNPACK #-} !Int -> !RequesterDataKey a -> RequesterDataKey a
- Reflex.Requester.Base.Internal: [RequesterDataKey_Single] :: {-# UNPACK #-} !MyTag (Single a) -> RequesterDataKey a
+ Reflex.Requester.Base.Internal: [RequesterDataKey_Single] :: forall a. {-# UNPACK #-} !MyTag (Single a) -> RequesterDataKey a
- Reflex.Requester.Base.Internal: [_multi2Contents_dict] :: Multi2Contents k request -> {-# UNPACK #-} !Dict (GCompare k)
+ Reflex.Requester.Base.Internal: [_multi2Contents_dict] :: Multi2Contents (k :: Type -> Type) (request :: Type -> Type) -> {-# UNPACK #-} !Dict (GCompare k)
- Reflex.Requester.Base.Internal: [_multi2Contents_values] :: Multi2Contents k request -> {-# UNPACK #-} !Map (Some k) (IntMap (RequesterData request))
+ Reflex.Requester.Base.Internal: [_multi2Contents_values] :: Multi2Contents (k :: Type -> Type) (request :: Type -> Type) -> {-# UNPACK #-} !Map (Some k) (IntMap (RequesterData request))
- Reflex.Requester.Base.Internal: [_requesterState_requests] :: RequesterState t (request :: Type -> Type) -> ![(Int, Event t Any)]
+ Reflex.Requester.Base.Internal: [_requesterState_requests] :: RequesterState t (request :: Type -> Type) -> ![(Int, Event t (Any :: Type))]
- Reflex.Requester.Base.Internal: [unEntry] :: Entry request x -> EntryContents request x
+ Reflex.Requester.Base.Internal: [unEntry] :: Entry (request :: Type -> Type) x -> EntryContents request x
- Reflex.Requester.Base.Internal: [unRequesterT] :: RequesterT t request (response :: Type -> Type) m a -> StateT (RequesterState t request) (ReaderT (EventSelectorInt t Any) m) a
+ Reflex.Requester.Base.Internal: [unRequesterT] :: RequesterT t (request :: Type -> Type) (response :: Type -> Type) (m :: Type -> Type) a -> StateT (RequesterState t request) (ReaderT (EventSelectorInt t (Any :: Type)) m) a
- Reflex.Requester.Base.Internal: castMyTagWrap :: MyTagWrap f (Entry f x) -> MyTagWrap g (Entry g x)
+ Reflex.Requester.Base.Internal: castMyTagWrap :: forall (f :: Type -> Type) x (g :: Type -> Type). MyTagWrap f (Entry f x) -> MyTagWrap g (Entry g x)
- Reflex.Requester.Base.Internal: data Decoder rawResponse response
+ Reflex.Requester.Base.Internal: data Decoder rawResponse (response :: Type -> Type)
- Reflex.Requester.Base.Internal: data Multi2Contents k request
+ Reflex.Requester.Base.Internal: data Multi2Contents (k :: Type -> Type) (request :: Type -> Type)
- Reflex.Requester.Base.Internal: data MyTagType :: Type -> Type
+ Reflex.Requester.Base.Internal: data MyTagType a
- Reflex.Requester.Base.Internal: emptyRequesterData :: RequesterData f
+ Reflex.Requester.Base.Internal: emptyRequesterData :: forall (f :: Type -> Type). RequesterData f
- Reflex.Requester.Base.Internal: forRequesterData :: forall request response m. Applicative m => RequesterData request -> (forall a. request a -> m (response a)) -> m (RequesterData response)
+ Reflex.Requester.Base.Internal: forRequesterData :: forall request response m. Applicative m => RequesterData request -> (forall a. () => request a -> m (response a)) -> m (RequesterData response)
- Reflex.Requester.Base.Internal: matchResponseMapWithRequests :: forall t rawRequest rawResponse request response m. (MonadFix m, MonadHold t m, Reflex t) => (forall a. request a -> (rawRequest, rawResponse -> response a)) -> Event t (RequesterData request) -> Event t (Map Int rawResponse) -> m (Event t (Map Int rawRequest), Event t (RequesterData response))
+ Reflex.Requester.Base.Internal: matchResponseMapWithRequests :: forall t rawRequest rawResponse request response m. (MonadFix m, MonadHold t m, Reflex t) => (forall a. () => request a -> (rawRequest, rawResponse -> response a)) -> Event t (RequesterData request) -> Event t (Map Int rawResponse) -> m (Event t (Map Int rawRequest), Event t (RequesterData response))
- Reflex.Requester.Base.Internal: matchResponsesWithRequests :: forall t rawRequest rawResponse request response m. (MonadFix m, MonadHold t m, Reflex t) => (forall a. request a -> (rawRequest, rawResponse -> response a)) -> Event t (RequesterData request) -> Event t (Int, rawResponse) -> m (Event t (Map Int rawRequest), Event t (RequesterData response))
+ Reflex.Requester.Base.Internal: matchResponsesWithRequests :: forall t rawRequest rawResponse request response m. (MonadFix m, MonadHold t m, Reflex t) => (forall a. () => request a -> (rawRequest, rawResponse -> response a)) -> Event t (RequesterData request) -> Event t (Int, rawResponse) -> m (Event t (Map Int rawRequest), Event t (RequesterData response))
- Reflex.Requester.Base.Internal: mergeRequesterData :: RequesterData f -> RequesterData f -> RequesterData f
+ Reflex.Requester.Base.Internal: mergeRequesterData :: forall (f :: Type -> Type). RequesterData f -> RequesterData f -> RequesterData f
- Reflex.Requester.Base.Internal: mergeTagMap :: forall f. TagMap (Entry f) -> TagMap (Entry f) -> TagMap (Entry f)
+ Reflex.Requester.Base.Internal: mergeTagMap :: forall (f :: Type -> Type). TagMap (Entry f) -> TagMap (Entry f) -> TagMap (Entry f)
- Reflex.Requester.Base.Internal: multiEntry :: IntMap (RequesterData f) -> Entry f Multi
+ Reflex.Requester.Base.Internal: multiEntry :: forall (f :: Type -> Type). IntMap (RequesterData f) -> Entry f Multi
- Reflex.Requester.Base.Internal: newtype Entry request x
+ Reflex.Requester.Base.Internal: newtype Entry (request :: Type -> Type) x
- Reflex.Requester.Base.Internal: newtype RequesterData f
+ Reflex.Requester.Base.Internal: newtype RequesterData (f :: Type -> Type)
- Reflex.Requester.Base.Internal: newtype RequesterT t request (response :: Type -> Type) m a
+ Reflex.Requester.Base.Internal: newtype RequesterT t (request :: Type -> Type) (response :: Type -> Type) (m :: Type -> Type) a
- Reflex.Requester.Base.Internal: requesterDataToList :: RequesterData f -> [DSum RequesterDataKey f]
+ Reflex.Requester.Base.Internal: requesterDataToList :: forall (f :: Type -> Type). RequesterData f -> [DSum RequesterDataKey f]
- Reflex.Requester.Base.Internal: requesting' :: (MyTagTypeOffset x, Monad m) => Event t (Entry request x) -> RequesterT t request response m (Event t (Entry response x))
+ Reflex.Requester.Base.Internal: requesting' :: forall x (m :: Type -> Type) t (request :: Type -> Type) (response :: Type -> Type). (MyTagTypeOffset x, Monad m) => Event t (Entry request x) -> RequesterT t request response m (Event t (Entry response x))
- Reflex.Requester.Base.Internal: responseFromTag :: forall m t request response x. Monad m => MyTagWrap response (Entry response x) -> RequesterT t request response m (Event t (Entry response x))
+ Reflex.Requester.Base.Internal: responseFromTag :: forall (m :: Type -> Type) t (request :: Type -> Type) (response :: Type -> Type) x. Monad m => MyTagWrap response (Entry response x) -> RequesterT t request response m (Event t (Entry response x))
- Reflex.Requester.Base.Internal: runRequesterT :: (Reflex t, Monad m) => RequesterT t request response m a -> Event t (RequesterData response) -> m (a, Event t (RequesterData request))
+ Reflex.Requester.Base.Internal: runRequesterT :: forall t m (request :: Type -> Type) (response :: Type -> Type) a. (Reflex t, Monad m) => RequesterT t request response m a -> Event t (RequesterData response) -> m (a, Event t (RequesterData request))
- Reflex.Requester.Base.Internal: runWithReplaceRequesterTWith :: forall m t request response a b. (Reflex t, MonadHold t m, MonadFix m) => (forall a' b'. m a' -> Event t (m b') -> RequesterT t request response m (a', Event t b')) -> RequesterT t request response m a -> Event t (RequesterT t request response m b) -> RequesterT t request response m (a, Event t b)
+ Reflex.Requester.Base.Internal: runWithReplaceRequesterTWith :: forall m t (request :: Type -> Type) (response :: Type -> Type) a b. (Reflex t, MonadHold t m, MonadFix m) => (forall a' b'. () => m a' -> Event t (m b') -> RequesterT t request response m (a', Event t b')) -> RequesterT t request response m a -> Event t (RequesterT t request response m b) -> RequesterT t request response m (a, Event t b)
- Reflex.Requester.Base.Internal: tagMapToList :: forall f. TagMap f -> [DSum MyTag f]
+ Reflex.Requester.Base.Internal: tagMapToList :: forall (f :: Type -> Type). TagMap f -> [DSum MyTag f]
- Reflex.Requester.Base.Internal: tagRequest :: forall m x t request response. (Monad m, MyTagTypeOffset x) => Event t (Entry request x) -> RequesterT t request response m (MyTagWrap request (Entry request x))
+ Reflex.Requester.Base.Internal: tagRequest :: forall (m :: Type -> Type) x t (request :: Type -> Type) (response :: Type -> Type). (Monad m, MyTagTypeOffset x) => Event t (Entry request x) -> RequesterT t request response m (MyTagWrap request (Entry request x))
- Reflex.Requester.Base.Internal: traverseDMapWithKeyWithAdjustRequesterTWith :: forall k t request response m v v' p p'. (GCompare k, Reflex t, MonadHold t m, PatchTarget (p' (Some k) (Event t (IntMap (RequesterData request)))) ~ Map (Some k) (Event t (IntMap (RequesterData request))), Patch (p' (Some k) (Event t (IntMap (RequesterData request)))), MonadFix m) => (forall k' v1 v2. GCompare k' => (forall a. k' a -> v1 a -> m (v2 a)) -> DMap k' v1 -> Event t (p k' v1) -> RequesterT t request response m (DMap k' v2, Event t (p k' v2))) -> (forall v1 v2. (forall a. v1 a -> v2 a) -> p k v1 -> p k v2) -> (forall v1 v2. (forall a. v1 a -> v2) -> p k v1 -> p' (Some k) v2) -> (forall v2. p' (Some k) v2 -> Map (Some k) v2) -> (forall a. Incremental t (p' (Some k) (Event t a)) -> Event t (Map (Some k) a)) -> (forall a. k a -> v a -> RequesterT t request response m (v' a)) -> DMap k v -> Event t (p k v) -> RequesterT t request response m (DMap k v', Event t (p k v'))
+ Reflex.Requester.Base.Internal: traverseDMapWithKeyWithAdjustRequesterTWith :: forall k t (request :: Type -> Type) (response :: Type -> Type) m v v' p p'. (GCompare k, Reflex t, MonadHold t m, PatchTarget (p' (Some k) (Event t (IntMap (RequesterData request)))) ~ Map (Some k) (Event t (IntMap (RequesterData request))), Patch (p' (Some k) (Event t (IntMap (RequesterData request)))), MonadFix m) => (forall (k' :: Type -> Type) (v1 :: Type -> Type) (v2 :: Type -> Type). GCompare k' => (forall a. () => k' a -> v1 a -> m (v2 a)) -> DMap k' v1 -> Event t (p k' v1) -> RequesterT t request response m (DMap k' v2, Event t (p k' v2))) -> (forall (v1 :: Type -> Type) (v2 :: Type -> Type). () => (forall a. () => v1 a -> v2 a) -> p k v1 -> p k v2) -> (forall (v1 :: Type -> Type) v2. () => (forall a. () => v1 a -> v2) -> p k v1 -> p' (Some k) v2) -> (forall v2. () => p' (Some k) v2 -> Map (Some k) v2) -> (forall a. () => Incremental t (p' (Some k) (Event t a)) -> Event t (Map (Some k) a)) -> (forall a. () => k a -> v a -> RequesterT t request response m (v' a)) -> DMap k v -> Event t (p k v) -> RequesterT t request response m (DMap k v', Event t (p k v'))
- Reflex.Requester.Base.Internal: traverseIntMapWithKeyWithAdjustRequesterTWith :: forall t request response m v v' p. (Reflex t, MonadHold t m, PatchTarget (p (Event t (IntMap (RequesterData request)))) ~ IntMap (Event t (IntMap (RequesterData request))), Patch (p (Event t (IntMap (RequesterData request)))), Functor p, MonadFix m) => ((Key -> (Key, v) -> m (Event t (IntMap (RequesterData request)), v')) -> IntMap (Key, v) -> Event t (p (Key, v)) -> RequesterT t request response m (IntMap (Event t (IntMap (RequesterData request)), v'), Event t (p (Event t (IntMap (RequesterData request)), v')))) -> (p (Event t (IntMap (RequesterData request))) -> IntMap (Event t (IntMap (RequesterData request)))) -> (Incremental t (p (Event t (IntMap (RequesterData request)))) -> Event t (IntMap (IntMap (RequesterData request)))) -> (Key -> v -> RequesterT t request response m v') -> IntMap v -> Event t (p v) -> RequesterT t request response m (IntMap v', Event t (p v'))
+ Reflex.Requester.Base.Internal: traverseIntMapWithKeyWithAdjustRequesterTWith :: forall t (request :: Type -> Type) (response :: Type -> Type) m v v' p. (Reflex t, MonadHold t m, PatchTarget (p (Event t (IntMap (RequesterData request)))) ~ IntMap (Event t (IntMap (RequesterData request))), Patch (p (Event t (IntMap (RequesterData request)))), Functor p, MonadFix m) => ((Key -> (Key, v) -> m (Event t (IntMap (RequesterData request)), v')) -> IntMap (Key, v) -> Event t (p (Key, v)) -> RequesterT t request response m (IntMap (Event t (IntMap (RequesterData request)), v'), Event t (p (Event t (IntMap (RequesterData request)), v')))) -> (p (Event t (IntMap (RequesterData request))) -> IntMap (Event t (IntMap (RequesterData request)))) -> (Incremental t (p (Event t (IntMap (RequesterData request)))) -> Event t (IntMap (IntMap (RequesterData request)))) -> (Key -> v -> RequesterT t request response m v') -> IntMap v -> Event t (p v) -> RequesterT t request response m (IntMap v', Event t (p v'))
- Reflex.Requester.Base.Internal: traverseRequesterData :: forall m request response. Applicative m => (forall a. request a -> m (response a)) -> RequesterData request -> m (RequesterData response)
+ Reflex.Requester.Base.Internal: traverseRequesterData :: Applicative m => (forall a. () => request a -> m (response a)) -> RequesterData request -> m (RequesterData response)
- Reflex.Requester.Base.Internal: traverseTagMapWithKey :: forall t f g. Applicative t => (forall a. MyTag a -> f a -> t (g a)) -> TagMap f -> t (TagMap g)
+ Reflex.Requester.Base.Internal: traverseTagMapWithKey :: Applicative t => (forall a. () => MyTag a -> f a -> t (g a)) -> TagMap f -> t (TagMap g)
- Reflex.Requester.Base.Internal: type family EntryContents request a
+ Reflex.Requester.Base.Internal: type family EntryContents (request :: Type -> Type) a
- Reflex.Requester.Base.Internal: unMultiEntry :: Entry f Multi -> IntMap (RequesterData f)
+ Reflex.Requester.Base.Internal: unMultiEntry :: forall (f :: Type -> Type). Entry f Multi -> IntMap (RequesterData f)
- Reflex.Requester.Base.Internal: withRequesterT :: (Reflex t, MonadFix m) => (forall x. req x -> req' x) -> (forall x. rsp' x -> rsp x) -> RequesterT t req rsp m a -> RequesterT t req' rsp' m a
+ Reflex.Requester.Base.Internal: withRequesterT :: forall t (m :: Type -> Type) req req' rsp' rsp a. (Reflex t, MonadFix m) => (forall x. () => req x -> req' x) -> (forall x. () => rsp' x -> rsp x) -> RequesterT t req rsp m a -> RequesterT t req' rsp' m a
- Reflex.Requester.Class: class (Reflex t, Monad m) => Requester t m | m -> t where {
+ Reflex.Requester.Class: class (Reflex t, Monad m) => Requester t (m :: Type -> Type) | m -> t where {
- Reflex.Spider: data SpiderHost (x :: Type) a
+ Reflex.Spider: data SpiderHost x a
- Reflex.Spider: data SpiderTimeline x
+ Reflex.Spider: data SpiderTimeline (x :: k)
- Reflex.Spider: type SpiderEnv = SpiderTimeline
+ Reflex.Spider: type SpiderEnv = SpiderTimeline :: k -> Type
- Reflex.Spider.Internal: Behavior :: BehaviorM x a -> Behavior x a
+ Reflex.Spider.Internal: Behavior :: BehaviorM x a -> Behavior (x :: k) a
- Reflex.Spider.Internal: BehaviorM :: ReaderIO (BehaviorEnv x) a -> BehaviorM x a
+ Reflex.Spider.Internal: BehaviorM :: ReaderIO (BehaviorEnv x) a -> BehaviorM (x :: k) a
- Reflex.Spider.Internal: BehaviorSubscribedHold :: Hold x p -> BehaviorSubscribed x a
+ Reflex.Spider.Internal: BehaviorSubscribedHold :: Hold x p -> BehaviorSubscribed (x :: k) a
- Reflex.Spider.Internal: BehaviorSubscribedPull :: PullSubscribed x a -> BehaviorSubscribed x a
+ Reflex.Spider.Internal: BehaviorSubscribedPull :: PullSubscribed x a -> BehaviorSubscribed (x :: k) a
- Reflex.Spider.Internal: BuildDyn :: !(EventM x (PatchTarget p), Event x p) -> DynType x p
+ Reflex.Spider.Internal: BuildDyn :: !(EventM x (PatchTarget p), Event x p) -> DynType (x :: k) p
- Reflex.Spider.Internal: CacheSubscribed :: {-# UNPACK #-} !FastWeakBag (Subscriber x a) -> {-# UNPACK #-} !EventSubscription x -> {-# UNPACK #-} !IORef (Maybe a) -> CacheSubscribed x a
+ Reflex.Spider.Internal: CacheSubscribed :: {-# UNPACK #-} !FastWeakBag (Subscriber x a) -> {-# UNPACK #-} !EventSubscription x -> {-# UNPACK #-} !IORef (Maybe a) -> CacheSubscribed (x :: k) a
- Reflex.Spider.Internal: Coincidence :: !Event x (Event x a) -> !IORef (Maybe (CoincidenceSubscribed x a)) -> Coincidence x a
+ Reflex.Spider.Internal: Coincidence :: !Event x (Event x a) -> !IORef (Maybe (CoincidenceSubscribed x a)) -> Coincidence (x :: k) a
- Reflex.Spider.Internal: CoincidenceSubscribed :: !IORef (Maybe (CoincidenceSubscribed x a)) -> !IORef (Maybe a) -> !WeakBag (Subscriber x a) -> !IORef Height -> {-# NOUNPACK #-}Subscriber x (Event x a) -> !EventSubscription x -> !IORef (Maybe (EventSubscribed x)) -> !IORef (Weak (CoincidenceSubscribed x a)) -> CoincidenceSubscribed x a
+ Reflex.Spider.Internal: CoincidenceSubscribed :: !IORef (Maybe (CoincidenceSubscribed x a)) -> !IORef (Maybe a) -> !WeakBag (Subscriber x a) -> !IORef Height -> {-# NOUNPACK #-}Subscriber x (Event x a) -> !EventSubscription x -> !IORef (Maybe (EventSubscribed x)) -> !IORef (Weak (CoincidenceSubscribed x a)) -> CoincidenceSubscribed (x :: k) a
- Reflex.Spider.Internal: Dyn :: IORef (DynType x p) -> Dyn (x :: Type) p
+ Reflex.Spider.Internal: Dyn :: IORef (DynType x p) -> Dyn x p
- Reflex.Spider.Internal: Dynamic :: !Behavior x target -> Event x p -> Dynamic x target p
+ Reflex.Spider.Internal: Dynamic :: !Behavior x target -> Event x p -> Dynamic (x :: k) target p
- Reflex.Spider.Internal: Event :: (Subscriber x a -> EventM x (EventSubscription x, Maybe a)) -> Event x a
+ Reflex.Spider.Internal: Event :: (Subscriber x a -> EventM x (EventSubscription x, Maybe a)) -> Event (x :: k) a
- Reflex.Spider.Internal: EventEnv :: !IORef [SomeAssignment x] -> !IORef [SomeHoldInit x] -> !IORef [SomeDynInit x] -> !IORef [SomeMergeUpdate x] -> !IORef [SomeMergeInit x] -> !IORef [Some Clear] -> !IORef [Some IntClear] -> !IORef [Some RootClear] -> !IORef Height -> !IORef [SomeResetCoincidence x] -> !IORef (IntMap [EventM x ()]) -> EventEnv x
+ Reflex.Spider.Internal: EventEnv :: !IORef [SomeAssignment x] -> !IORef [SomeHoldInit x] -> !IORef [SomeDynInit x] -> !IORef [SomeMergeUpdate x] -> !IORef [SomeMergeInit x] -> !IORef [Some Clear] -> !IORef [Some IntClear] -> !IORef [Some RootClear] -> !IORef Height -> !IORef [SomeResetCoincidence x] -> !IORef [SomeCoincidenceSubscribed x] -> !IORef (IntMap [EventM x ()]) -> EventEnv x
- Reflex.Spider.Internal: EventM :: IO a -> EventM x a
+ Reflex.Spider.Internal: EventM :: IO a -> EventM (x :: k) a
- Reflex.Spider.Internal: EventSelector :: (forall a. k a -> Event x a) -> EventSelector x k
+ Reflex.Spider.Internal: EventSelector :: (forall a. () => k1 a -> Event x a) -> EventSelector (x :: k) (k1 :: Type -> Type)
- Reflex.Spider.Internal: EventSelectorG :: (forall a. k a -> Event x (v a)) -> EventSelectorG x k v
+ Reflex.Spider.Internal: EventSelectorG :: (forall (a :: k1). () => k2 a -> Event x (v a)) -> EventSelectorG (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type)
- Reflex.Spider.Internal: EventSelectorInt :: (Int -> Event x a) -> EventSelectorInt x a
+ Reflex.Spider.Internal: EventSelectorInt :: (Int -> Event x a) -> EventSelectorInt (x :: k) a
- Reflex.Spider.Internal: EventSubscribed :: {-# UNPACK #-} !IORef Height -> {-# NOUNPACK #-} !Any -> EventSubscribed x
+ Reflex.Spider.Internal: EventSubscribed :: {-# UNPACK #-} !IORef Height -> {-# NOUNPACK #-} !Any :: Type -> EventSubscribed (x :: k)
- Reflex.Spider.Internal: EventSubscription :: !IO () -> {-# UNPACK #-} !EventSubscribed x -> EventSubscription x
+ Reflex.Spider.Internal: EventSubscription :: !IO () -> {-# UNPACK #-} !EventSubscribed x -> EventSubscription (x :: k)
- Reflex.Spider.Internal: Fan :: !Event x (DMap k v) -> !IORef (Maybe (FanSubscribed x k v)) -> Fan x k v
+ Reflex.Spider.Internal: Fan :: !Event x (DMap k2 v) -> !IORef (Maybe (FanSubscribed x k2 v)) -> Fan (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type)
- Reflex.Spider.Internal: FanInt :: {-# UNPACK #-} !FastMutableIntMap (FastWeakBag (Subscriber x a)) -> {-# UNPACK #-} !IORef (EventSubscription x) -> {-# UNPACK #-} !IORef (IntMap a) -> FanInt x a
+ Reflex.Spider.Internal: FanInt :: {-# UNPACK #-} !FastMutableIntMap (FastWeakBag (Subscriber x a)) -> {-# UNPACK #-} !IORef (EventSubscription x) -> {-# UNPACK #-} !IORef (IntMap a) -> FanInt (x :: k) a
- Reflex.Spider.Internal: FanSubscribed :: !IORef (Maybe (FanSubscribed x k v)) -> !IORef (Maybe (DMap k v)) -> !IORef (DMap k (FanSubscribedChildren x k v)) -> !EventSubscription x -> FanSubscribed x k v
+ Reflex.Spider.Internal: FanSubscribed :: !IORef (Maybe (FanSubscribed x k2 v)) -> !IORef (Maybe (DMap k2 v)) -> !IORef (DMap k2 (FanSubscribedChildren x k2 v)) -> !EventSubscription x -> FanSubscribed (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type)
- Reflex.Spider.Internal: FanSubscribedChildren :: !WeakBag (Subscriber x (v a)) -> {-# NOUNPACK #-} !(k a, FanSubscribed x k v) -> !IORef (Weak (k a, FanSubscribed x k v)) -> FanSubscribedChildren x k v a
+ Reflex.Spider.Internal: FanSubscribedChildren :: !WeakBag (Subscriber x (v a)) -> {-# NOUNPACK #-} !(k2 a, FanSubscribed x k2 v) -> !IORef (Weak (k2 a, FanSubscribed x k2 v)) -> FanSubscribedChildren (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (a :: k1)
- Reflex.Spider.Internal: Hold :: !IORef (PatchTarget p) -> !IORef [Weak (Invalidator x)] -> Event x p -> !IORef (Maybe (EventSubscription x)) -> Hold x p
+ Reflex.Spider.Internal: Hold :: !IORef (PatchTarget p) -> !IORef (InvalidatorList x) -> Event x p -> !IORef (Maybe (EventSubscription x)) -> Hold (x :: k) p
- Reflex.Spider.Internal: HoldDyn :: !Hold x p -> DynType x p
+ Reflex.Spider.Internal: HoldDyn :: !Hold x p -> DynType (x :: k) p
- Reflex.Spider.Internal: InvalidatorPull :: Pull x a -> Invalidator x
+ Reflex.Spider.Internal: InvalidatorPull :: Pull x a -> Invalidator (x :: k)
- Reflex.Spider.Internal: InvalidatorSwitch :: SwitchSubscribed x a -> Invalidator x
+ Reflex.Spider.Internal: InvalidatorSwitch :: SwitchSubscribed x a -> Invalidator (x :: k)
- Reflex.Spider.Internal: Merge :: {-# UNPACK #-} !IORef (DMap k s) -> {-# UNPACK #-} !IORef HeightBag -> {-# UNPACK #-} !IORef Height -> {-# UNPACK #-} !Subscriber x (DMap k v) -> {-# UNPACK #-} !IORef (DMap k v) -> Merge x k v s
+ Reflex.Spider.Internal: Merge :: {-# UNPACK #-} !IORef (DMap k2 s) -> {-# UNPACK #-} !IORef HeightBag -> {-# UNPACK #-} !IORef Height -> {-# UNPACK #-} !Subscriber x (DMap k2 v) -> {-# UNPACK #-} !IORef (DMap k2 v) -> Merge (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (s :: k1 -> Type)
- Reflex.Spider.Internal: MergeSubscribedParent :: EventSubscription x -> MergeSubscribedParent x a
+ Reflex.Spider.Internal: MergeSubscribedParent :: EventSubscription x -> MergeSubscribedParent (x :: k) (a :: k1)
- Reflex.Spider.Internal: MergeSubscribedParentWithMove :: !EventSubscription x -> !IORef (k a) -> MergeSubscribedParentWithMove x k a
+ Reflex.Spider.Internal: MergeSubscribedParentWithMove :: !EventSubscription x -> !IORef (k2 a) -> MergeSubscribedParentWithMove (x :: k) (k2 :: k1 -> Type) (a :: k1)
- Reflex.Spider.Internal: Pull :: !IORef (Maybe (PullSubscribed x a)) -> !BehaviorM x a -> Pull x a
+ Reflex.Spider.Internal: Pull :: !IORef (Maybe (PullSubscribed x a)) -> !BehaviorM x a -> Pull (x :: k) a
- Reflex.Spider.Internal: PullSubscribed :: !a -> !IORef [Weak (Invalidator x)] -> !Invalidator x -> ![SomeBehaviorSubscribed x] -> PullSubscribed x a
+ Reflex.Spider.Internal: PullSubscribed :: !a -> !IORef (InvalidatorList x) -> !Invalidator x -> ![SomeBehaviorSubscribed x] -> PullSubscribed (x :: k) a
- Reflex.Spider.Internal: ReadPhase :: ResultM x a -> ReadPhase x a
+ Reflex.Spider.Internal: ReadPhase :: ResultM x a -> ReadPhase (x :: k) a
- Reflex.Spider.Internal: Root :: !IORef (DMap k Identity) -> !IORef (DMap k (RootSubscribed x)) -> !forall a. k a -> RootTrigger x a -> IO (IO ()) -> Root x k
+ Reflex.Spider.Internal: Root :: !IORef (DMap k1 Identity) -> !IORef (DMap k1 (RootSubscribed x)) -> !forall a. () => k1 a -> RootTrigger x a -> IO (IO ()) -> Root (x :: k) (k1 :: Type -> Type)
- Reflex.Spider.Internal: RootClear :: IORef (DMap k Identity) -> RootClear k
+ Reflex.Spider.Internal: RootClear :: IORef (DMap k Identity) -> RootClear (k :: Type -> Type)
- Reflex.Spider.Internal: RootSubscribed :: !k a -> !IORef (DMap k (RootSubscribed x)) -> !WeakBag (Subscriber x a) -> !IO (Maybe a) -> IO () -> !IORef (Weak (RootSubscribed x a)) -> RootSubscribed x a
+ Reflex.Spider.Internal: RootSubscribed :: !k1 a -> !IORef (DMap k1 (RootSubscribed x)) -> !WeakBag (Subscriber x a) -> !IO (Maybe a) -> IO () -> !IORef (Weak (RootSubscribed x a)) -> RootSubscribed (x :: k) a
- Reflex.Spider.Internal: RootTrigger :: (WeakBag (Subscriber x a), IORef (DMap k Identity), k a) -> RootTrigger x a
+ Reflex.Spider.Internal: RootTrigger :: (WeakBag (Subscriber x a), IORef (DMap k1 Identity), k1 a) -> RootTrigger (x :: k) a
- Reflex.Spider.Internal: SomeAssignment :: {-# UNPACK #-} !IORef a -> {-# UNPACK #-} !IORef [Weak (Invalidator x)] -> a -> SomeAssignment x
+ Reflex.Spider.Internal: SomeAssignment :: {-# UNPACK #-} !IORef a -> {-# UNPACK #-} !IORef (InvalidatorList x) -> a -> SomeAssignment (x :: k)
- Reflex.Spider.Internal: SomeBehaviorSubscribed :: Some (BehaviorSubscribed x) -> SomeBehaviorSubscribed x
+ Reflex.Spider.Internal: SomeBehaviorSubscribed :: Some (BehaviorSubscribed x) -> SomeBehaviorSubscribed (x :: k)
- Reflex.Spider.Internal: SomeHoldInit :: !Hold x p -> SomeHoldInit x
+ Reflex.Spider.Internal: SomeHoldInit :: !Hold x p -> SomeHoldInit (x :: k)
- Reflex.Spider.Internal: SomeMergeInit :: EventM x () -> SomeMergeInit x
+ Reflex.Spider.Internal: SomeMergeInit :: EventM x () -> SomeMergeInit (x :: k)
- Reflex.Spider.Internal: SomeMergeUpdate :: !EventM x [EventSubscription x] -> !IO () -> !IO () -> SomeMergeUpdate x
+ Reflex.Spider.Internal: SomeMergeUpdate :: !EventM x [EventSubscription x] -> !IO () -> !IO () -> SomeMergeUpdate (x :: k)
- Reflex.Spider.Internal: SomeResetCoincidence :: !EventSubscription x -> !Maybe (CoincidenceSubscribed x a) -> SomeResetCoincidence x
+ Reflex.Spider.Internal: SomeResetCoincidence :: !EventSubscription x -> !Maybe (CoincidenceSubscribed x a) -> SomeResetCoincidence (x :: k)
- Reflex.Spider.Internal: SomeSwitchSubscribed :: {-# NOUNPACK #-}SwitchSubscribed x a -> SomeSwitchSubscribed x
+ Reflex.Spider.Internal: SomeSwitchSubscribed :: {-# NOUNPACK #-}SwitchSubscribed x a -> SomeSwitchSubscribed (x :: k)
- Reflex.Spider.Internal: SpiderEventHandle :: EventSubscription x -> IORef (Maybe a) -> SpiderEventHandle x a
+ Reflex.Spider.Internal: SpiderEventHandle :: EventSubscription x -> IORef (Maybe a) -> SpiderEventHandle (x :: k) a
- Reflex.Spider.Internal: SpiderHost :: IO a -> SpiderHost (x :: Type) a
+ Reflex.Spider.Internal: SpiderHost :: IO a -> SpiderHost x a
- Reflex.Spider.Internal: SpiderHostFrame :: EventM x a -> SpiderHostFrame (x :: Type) a
+ Reflex.Spider.Internal: SpiderHostFrame :: EventM x a -> SpiderHostFrame x a
- Reflex.Spider.Internal: SpiderPullM :: BehaviorM x a -> SpiderPullM (x :: Type) a
+ Reflex.Spider.Internal: SpiderPullM :: BehaviorM x a -> SpiderPullM x a
- Reflex.Spider.Internal: SpiderPushM :: ComputeM x a -> SpiderPushM (x :: Type) a
+ Reflex.Spider.Internal: SpiderPushM :: ComputeM x a -> SpiderPushM x a
- Reflex.Spider.Internal: Subscriber :: !a -> EventM x () -> !Height -> IO () -> !Height -> IO () -> Subscriber x a
+ Reflex.Spider.Internal: Subscriber :: !a -> EventM x () -> !Height -> IO () -> !Height -> IO () -> Subscriber (x :: k) a
- Reflex.Spider.Internal: Switch :: !Behavior x (Event x a) -> !IORef (Maybe (SwitchSubscribed x a)) -> Switch x a
+ Reflex.Spider.Internal: Switch :: !Behavior x (Event x a) -> !IORef (Maybe (SwitchSubscribed x a)) -> Switch (x :: k) a
- Reflex.Spider.Internal: SwitchSubscribed :: !IORef (Maybe (SwitchSubscribed x a)) -> !IORef (Maybe a) -> !IORef Height -> !WeakBag (Subscriber x a) -> {-# NOUNPACK #-} !Invalidator x -> !IORef (Weak (Invalidator x)) -> !IORef [SomeBehaviorSubscribed x] -> !Behavior x (Event x a) -> !IORef (EventSubscription x) -> !IORef (Weak (SwitchSubscribed x a)) -> SwitchSubscribed x a
+ Reflex.Spider.Internal: SwitchSubscribed :: !IORef (Maybe (SwitchSubscribed x a)) -> !IORef (Maybe a) -> !IORef Height -> !WeakBag (Subscriber x a) -> {-# NOUNPACK #-} !Invalidator x -> !IORef (Weak (Invalidator x)) -> !IORef [SomeBehaviorSubscribed x] -> !Behavior x (Event x a) -> !IORef (EventSubscription x) -> !IORef (Weak (SwitchSubscribed x a)) -> SwitchSubscribed (x :: k) a
- Reflex.Spider.Internal: UnsafeDyn :: !(BehaviorM x (PatchTarget p), Event x p) -> DynType x p
+ Reflex.Spider.Internal: UnsafeDyn :: !(BehaviorM x (PatchTarget p), Event x p) -> DynType (x :: k) p
- Reflex.Spider.Internal: [_cacheSubscribed_occurrence] :: CacheSubscribed x a -> {-# UNPACK #-} !IORef (Maybe a)
+ Reflex.Spider.Internal: [_cacheSubscribed_occurrence] :: CacheSubscribed (x :: k) a -> {-# UNPACK #-} !IORef (Maybe a)
- Reflex.Spider.Internal: [_cacheSubscribed_parent] :: CacheSubscribed x a -> {-# UNPACK #-} !EventSubscription x
+ Reflex.Spider.Internal: [_cacheSubscribed_parent] :: CacheSubscribed (x :: k) a -> {-# UNPACK #-} !EventSubscription x
- Reflex.Spider.Internal: [_cacheSubscribed_subscribers] :: CacheSubscribed x a -> {-# UNPACK #-} !FastWeakBag (Subscriber x a)
+ Reflex.Spider.Internal: [_cacheSubscribed_subscribers] :: CacheSubscribed (x :: k) a -> {-# UNPACK #-} !FastWeakBag (Subscriber x a)
- Reflex.Spider.Internal: [_eventSubscription_subscribed] :: EventSubscription x -> {-# UNPACK #-} !EventSubscribed x
+ Reflex.Spider.Internal: [_eventSubscription_subscribed] :: EventSubscription (x :: k) -> {-# UNPACK #-} !EventSubscribed x
- Reflex.Spider.Internal: [_eventSubscription_unsubscribe] :: EventSubscription x -> !IO ()
+ Reflex.Spider.Internal: [_eventSubscription_unsubscribe] :: EventSubscription (x :: k) -> !IO ()
- Reflex.Spider.Internal: [_fanInt_occRef] :: FanInt x a -> {-# UNPACK #-} !IORef (IntMap a)
+ Reflex.Spider.Internal: [_fanInt_occRef] :: FanInt (x :: k) a -> {-# UNPACK #-} !IORef (IntMap a)
- Reflex.Spider.Internal: [_fanInt_subscribers] :: FanInt x a -> {-# UNPACK #-} !FastMutableIntMap (FastWeakBag (Subscriber x a))
+ Reflex.Spider.Internal: [_fanInt_subscribers] :: FanInt (x :: k) a -> {-# UNPACK #-} !FastMutableIntMap (FastWeakBag (Subscriber x a))
- Reflex.Spider.Internal: [_fanInt_subscriptionRef] :: FanInt x a -> {-# UNPACK #-} !IORef (EventSubscription x)
+ Reflex.Spider.Internal: [_fanInt_subscriptionRef] :: FanInt (x :: k) a -> {-# UNPACK #-} !IORef (EventSubscription x)
- Reflex.Spider.Internal: [_fanSubscribedChildren_list] :: FanSubscribedChildren x k v a -> !WeakBag (Subscriber x (v a))
+ Reflex.Spider.Internal: [_fanSubscribedChildren_list] :: FanSubscribedChildren (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (a :: k1) -> !WeakBag (Subscriber x (v a))
- Reflex.Spider.Internal: [_fanSubscribedChildren_self] :: FanSubscribedChildren x k v a -> {-# NOUNPACK #-} !(k a, FanSubscribed x k v)
+ Reflex.Spider.Internal: [_fanSubscribedChildren_self] :: FanSubscribedChildren (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (a :: k1) -> {-# NOUNPACK #-} !(k2 a, FanSubscribed x k2 v)
- Reflex.Spider.Internal: [_fanSubscribedChildren_weakSelf] :: FanSubscribedChildren x k v a -> !IORef (Weak (k a, FanSubscribed x k v))
+ Reflex.Spider.Internal: [_fanSubscribedChildren_weakSelf] :: FanSubscribedChildren (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (a :: k1) -> !IORef (Weak (k2 a, FanSubscribed x k2 v))
- Reflex.Spider.Internal: [_mergeSubscribedParentWithMove_key] :: MergeSubscribedParentWithMove x k a -> !IORef (k a)
+ Reflex.Spider.Internal: [_mergeSubscribedParentWithMove_key] :: MergeSubscribedParentWithMove (x :: k) (k2 :: k1 -> Type) (a :: k1) -> !IORef (k2 a)
- Reflex.Spider.Internal: [_mergeSubscribedParentWithMove_subscription] :: MergeSubscribedParentWithMove x k a -> !EventSubscription x
+ Reflex.Spider.Internal: [_mergeSubscribedParentWithMove_subscription] :: MergeSubscribedParentWithMove (x :: k) (k2 :: k1 -> Type) (a :: k1) -> !EventSubscription x
- Reflex.Spider.Internal: [_merge_accumRef] :: Merge x k v s -> {-# UNPACK #-} !IORef (DMap k v)
+ Reflex.Spider.Internal: [_merge_accumRef] :: Merge (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (s :: k1 -> Type) -> {-# UNPACK #-} !IORef (DMap k2 v)
- Reflex.Spider.Internal: [_merge_heightBagRef] :: Merge x k v s -> {-# UNPACK #-} !IORef HeightBag
+ Reflex.Spider.Internal: [_merge_heightBagRef] :: Merge (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (s :: k1 -> Type) -> {-# UNPACK #-} !IORef HeightBag
- Reflex.Spider.Internal: [_merge_heightRef] :: Merge x k v s -> {-# UNPACK #-} !IORef Height
+ Reflex.Spider.Internal: [_merge_heightRef] :: Merge (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (s :: k1 -> Type) -> {-# UNPACK #-} !IORef Height
- Reflex.Spider.Internal: [_merge_parentsRef] :: Merge x k v s -> {-# UNPACK #-} !IORef (DMap k s)
+ Reflex.Spider.Internal: [_merge_parentsRef] :: Merge (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (s :: k1 -> Type) -> {-# UNPACK #-} !IORef (DMap k2 s)
- Reflex.Spider.Internal: [_merge_sub] :: Merge x k v s -> {-# UNPACK #-} !Subscriber x (DMap k v)
+ Reflex.Spider.Internal: [_merge_sub] :: Merge (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (s :: k1 -> Type) -> {-# UNPACK #-} !Subscriber x (DMap k2 v)
- Reflex.Spider.Internal: [_someMergeUpdate_invalidateHeight] :: SomeMergeUpdate x -> !IO ()
+ Reflex.Spider.Internal: [_someMergeUpdate_invalidateHeight] :: SomeMergeUpdate (x :: k) -> !IO ()
- Reflex.Spider.Internal: [_someMergeUpdate_recalculateHeight] :: SomeMergeUpdate x -> !IO ()
+ Reflex.Spider.Internal: [_someMergeUpdate_recalculateHeight] :: SomeMergeUpdate (x :: k) -> !IO ()
- Reflex.Spider.Internal: [_someMergeUpdate_update] :: SomeMergeUpdate x -> !EventM x [EventSubscription x]
+ Reflex.Spider.Internal: [_someMergeUpdate_update] :: SomeMergeUpdate (x :: k) -> !EventM x [EventSubscription x]
- Reflex.Spider.Internal: [coincidenceParent] :: Coincidence x a -> !Event x (Event x a)
+ Reflex.Spider.Internal: [coincidenceParent] :: Coincidence (x :: k) a -> !Event x (Event x a)
- Reflex.Spider.Internal: [coincidenceSubscribedCachedSubscribed] :: CoincidenceSubscribed x a -> !IORef (Maybe (CoincidenceSubscribed x a))
+ Reflex.Spider.Internal: [coincidenceSubscribedCachedSubscribed] :: CoincidenceSubscribed (x :: k) a -> !IORef (Maybe (CoincidenceSubscribed x a))
- Reflex.Spider.Internal: [coincidenceSubscribedHeight] :: CoincidenceSubscribed x a -> !IORef Height
+ Reflex.Spider.Internal: [coincidenceSubscribedHeight] :: CoincidenceSubscribed (x :: k) a -> !IORef Height
- Reflex.Spider.Internal: [coincidenceSubscribedInnerParent] :: CoincidenceSubscribed x a -> !IORef (Maybe (EventSubscribed x))
+ Reflex.Spider.Internal: [coincidenceSubscribedInnerParent] :: CoincidenceSubscribed (x :: k) a -> !IORef (Maybe (EventSubscribed x))
- Reflex.Spider.Internal: [coincidenceSubscribedOccurrence] :: CoincidenceSubscribed x a -> !IORef (Maybe a)
+ Reflex.Spider.Internal: [coincidenceSubscribedOccurrence] :: CoincidenceSubscribed (x :: k) a -> !IORef (Maybe a)
- Reflex.Spider.Internal: [coincidenceSubscribedOuterParent] :: CoincidenceSubscribed x a -> !EventSubscription x
+ Reflex.Spider.Internal: [coincidenceSubscribedOuterParent] :: CoincidenceSubscribed (x :: k) a -> !EventSubscription x
- Reflex.Spider.Internal: [coincidenceSubscribedOuter] :: CoincidenceSubscribed x a -> {-# NOUNPACK #-}Subscriber x (Event x a)
+ Reflex.Spider.Internal: [coincidenceSubscribedOuter] :: CoincidenceSubscribed (x :: k) a -> {-# NOUNPACK #-}Subscriber x (Event x a)
- Reflex.Spider.Internal: [coincidenceSubscribedSubscribers] :: CoincidenceSubscribed x a -> !WeakBag (Subscriber x a)
+ Reflex.Spider.Internal: [coincidenceSubscribedSubscribers] :: CoincidenceSubscribed (x :: k) a -> !WeakBag (Subscriber x a)
- Reflex.Spider.Internal: [coincidenceSubscribedWeakSelf] :: CoincidenceSubscribed x a -> !IORef (Weak (CoincidenceSubscribed x a))
+ Reflex.Spider.Internal: [coincidenceSubscribedWeakSelf] :: CoincidenceSubscribed (x :: k) a -> !IORef (Weak (CoincidenceSubscribed x a))
- Reflex.Spider.Internal: [coincidenceSubscribed] :: Coincidence x a -> !IORef (Maybe (CoincidenceSubscribed x a))
+ Reflex.Spider.Internal: [coincidenceSubscribed] :: Coincidence (x :: k) a -> !IORef (Maybe (CoincidenceSubscribed x a))
- Reflex.Spider.Internal: [dynamicCurrent] :: Dynamic x target p -> !Behavior x target
+ Reflex.Spider.Internal: [dynamicCurrent] :: Dynamic (x :: k) target p -> !Behavior x target
- Reflex.Spider.Internal: [dynamicUpdated] :: Dynamic x target p -> Event x p
+ Reflex.Spider.Internal: [dynamicUpdated] :: Dynamic (x :: k) target p -> Event x p
- Reflex.Spider.Internal: [eventSubscribedHeightRef] :: EventSubscribed x -> {-# UNPACK #-} !IORef Height
+ Reflex.Spider.Internal: [eventSubscribedHeightRef] :: EventSubscribed (x :: k) -> {-# UNPACK #-} !IORef Height
- Reflex.Spider.Internal: [eventSubscribedRetained] :: EventSubscribed x -> {-# NOUNPACK #-} !Any
+ Reflex.Spider.Internal: [eventSubscribedRetained] :: EventSubscribed (x :: k) -> {-# NOUNPACK #-} !Any :: Type
- Reflex.Spider.Internal: [fanParent] :: Fan x k v -> !Event x (DMap k v)
+ Reflex.Spider.Internal: [fanParent] :: Fan (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) -> !Event x (DMap k2 v)
- Reflex.Spider.Internal: [fanSubscribedCachedSubscribed] :: FanSubscribed x k v -> !IORef (Maybe (FanSubscribed x k v))
+ Reflex.Spider.Internal: [fanSubscribedCachedSubscribed] :: FanSubscribed (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) -> !IORef (Maybe (FanSubscribed x k2 v))
- Reflex.Spider.Internal: [fanSubscribedOccurrence] :: FanSubscribed x k v -> !IORef (Maybe (DMap k v))
+ Reflex.Spider.Internal: [fanSubscribedOccurrence] :: FanSubscribed (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) -> !IORef (Maybe (DMap k2 v))
- Reflex.Spider.Internal: [fanSubscribedParent] :: FanSubscribed x k v -> !EventSubscription x
+ Reflex.Spider.Internal: [fanSubscribedParent] :: FanSubscribed (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) -> !EventSubscription x
- Reflex.Spider.Internal: [fanSubscribedSubscribers] :: FanSubscribed x k v -> !IORef (DMap k (FanSubscribedChildren x k v))
+ Reflex.Spider.Internal: [fanSubscribedSubscribers] :: FanSubscribed (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) -> !IORef (DMap k2 (FanSubscribedChildren x k2 v))
- Reflex.Spider.Internal: [fanSubscribed] :: Fan x k v -> !IORef (Maybe (FanSubscribed x k v))
+ Reflex.Spider.Internal: [fanSubscribed] :: Fan (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) -> !IORef (Maybe (FanSubscribed x k2 v))
- Reflex.Spider.Internal: [holdEvent] :: Hold x p -> Event x p
+ Reflex.Spider.Internal: [holdEvent] :: Hold (x :: k) p -> Event x p
- Reflex.Spider.Internal: [holdInvalidators] :: Hold x p -> !IORef [Weak (Invalidator x)]
+ Reflex.Spider.Internal: [holdInvalidators] :: Hold (x :: k) p -> !IORef (InvalidatorList x)
- Reflex.Spider.Internal: [holdParent] :: Hold x p -> !IORef (Maybe (EventSubscription x))
+ Reflex.Spider.Internal: [holdParent] :: Hold (x :: k) p -> !IORef (Maybe (EventSubscription x))
- Reflex.Spider.Internal: [holdValue] :: Hold x p -> !IORef (PatchTarget p)
+ Reflex.Spider.Internal: [holdValue] :: Hold (x :: k) p -> !IORef (PatchTarget p)
- Reflex.Spider.Internal: [pullCompute] :: Pull x a -> !BehaviorM x a
+ Reflex.Spider.Internal: [pullCompute] :: Pull (x :: k) a -> !BehaviorM x a
- Reflex.Spider.Internal: [pullSubscribedInvalidators] :: PullSubscribed x a -> !IORef [Weak (Invalidator x)]
+ Reflex.Spider.Internal: [pullSubscribedInvalidators] :: PullSubscribed (x :: k) a -> !IORef (InvalidatorList x)
- Reflex.Spider.Internal: [pullSubscribedOwnInvalidator] :: PullSubscribed x a -> !Invalidator x
+ Reflex.Spider.Internal: [pullSubscribedOwnInvalidator] :: PullSubscribed (x :: k) a -> !Invalidator x
- Reflex.Spider.Internal: [pullSubscribedParents] :: PullSubscribed x a -> ![SomeBehaviorSubscribed x]
+ Reflex.Spider.Internal: [pullSubscribedParents] :: PullSubscribed (x :: k) a -> ![SomeBehaviorSubscribed x]
- Reflex.Spider.Internal: [pullSubscribedValue] :: PullSubscribed x a -> !a
+ Reflex.Spider.Internal: [pullSubscribedValue] :: PullSubscribed (x :: k) a -> !a
- Reflex.Spider.Internal: [pullValue] :: Pull x a -> !IORef (Maybe (PullSubscribed x a))
+ Reflex.Spider.Internal: [pullValue] :: Pull (x :: k) a -> !IORef (Maybe (PullSubscribed x a))
- Reflex.Spider.Internal: [readBehaviorTracked] :: Behavior x a -> BehaviorM x a
+ Reflex.Spider.Internal: [readBehaviorTracked] :: Behavior (x :: k) a -> BehaviorM x a
- Reflex.Spider.Internal: [rootInit] :: Root x k -> !forall a. k a -> RootTrigger x a -> IO (IO ())
+ Reflex.Spider.Internal: [rootInit] :: Root (x :: k) (k1 :: Type -> Type) -> !forall a. () => k1 a -> RootTrigger x a -> IO (IO ())
- Reflex.Spider.Internal: [rootOccurrence] :: Root x k -> !IORef (DMap k Identity)
+ Reflex.Spider.Internal: [rootOccurrence] :: Root (x :: k) (k1 :: Type -> Type) -> !IORef (DMap k1 Identity)
- Reflex.Spider.Internal: [rootSubscribedCachedSubscribed] :: RootSubscribed x a -> !IORef (DMap k (RootSubscribed x))
+ Reflex.Spider.Internal: [rootSubscribedCachedSubscribed] :: RootSubscribed (x :: k) a -> !IORef (DMap k1 (RootSubscribed x))
- Reflex.Spider.Internal: [rootSubscribedKey] :: RootSubscribed x a -> !k a
+ Reflex.Spider.Internal: [rootSubscribedKey] :: RootSubscribed (x :: k) a -> !k1 a
- Reflex.Spider.Internal: [rootSubscribedOccurrence] :: RootSubscribed x a -> !IO (Maybe a)
+ Reflex.Spider.Internal: [rootSubscribedOccurrence] :: RootSubscribed (x :: k) a -> !IO (Maybe a)
- Reflex.Spider.Internal: [rootSubscribedSubscribers] :: RootSubscribed x a -> !WeakBag (Subscriber x a)
+ Reflex.Spider.Internal: [rootSubscribedSubscribers] :: RootSubscribed (x :: k) a -> !WeakBag (Subscriber x a)
- Reflex.Spider.Internal: [rootSubscribedUninit] :: RootSubscribed x a -> IO ()
+ Reflex.Spider.Internal: [rootSubscribedUninit] :: RootSubscribed (x :: k) a -> IO ()
- Reflex.Spider.Internal: [rootSubscribedWeakSelf] :: RootSubscribed x a -> !IORef (Weak (RootSubscribed x a))
+ Reflex.Spider.Internal: [rootSubscribedWeakSelf] :: RootSubscribed (x :: k) a -> !IORef (Weak (RootSubscribed x a))
- Reflex.Spider.Internal: [rootSubscribed] :: Root x k -> !IORef (DMap k (RootSubscribed x))
+ Reflex.Spider.Internal: [rootSubscribed] :: Root (x :: k) (k1 :: Type -> Type) -> !IORef (DMap k1 (RootSubscribed x))
- Reflex.Spider.Internal: [runSpiderHostFrame] :: SpiderHostFrame (x :: Type) a -> EventM x a
+ Reflex.Spider.Internal: [runSpiderHostFrame] :: SpiderHostFrame x a -> EventM x a
- Reflex.Spider.Internal: [selectG] :: EventSelectorG x k v -> forall a. k a -> Event x (v a)
+ Reflex.Spider.Internal: [selectG] :: EventSelectorG (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) -> forall (a :: k1). () => k2 a -> Event x (v a)
- Reflex.Spider.Internal: [selectInt] :: EventSelectorInt x a -> Int -> Event x a
+ Reflex.Spider.Internal: [selectInt] :: EventSelectorInt (x :: k) a -> Int -> Event x a
- Reflex.Spider.Internal: [select] :: EventSelector x k -> forall a. k a -> Event x a
+ Reflex.Spider.Internal: [select] :: EventSelector (x :: k) (k1 :: Type -> Type) -> forall a. () => k1 a -> Event x a
- Reflex.Spider.Internal: [spiderEventHandleSubscription] :: SpiderEventHandle x a -> EventSubscription x
+ Reflex.Spider.Internal: [spiderEventHandleSubscription] :: SpiderEventHandle (x :: k) a -> EventSubscription x
- Reflex.Spider.Internal: [spiderEventHandleValue] :: SpiderEventHandle x a -> IORef (Maybe a)
+ Reflex.Spider.Internal: [spiderEventHandleValue] :: SpiderEventHandle (x :: k) a -> IORef (Maybe a)
- Reflex.Spider.Internal: [subscriberInvalidateHeight] :: Subscriber x a -> !Height -> IO ()
+ Reflex.Spider.Internal: [subscriberInvalidateHeight] :: Subscriber (x :: k) a -> !Height -> IO ()
- Reflex.Spider.Internal: [subscriberPropagate] :: Subscriber x a -> !a -> EventM x ()
+ Reflex.Spider.Internal: [subscriberPropagate] :: Subscriber (x :: k) a -> !a -> EventM x ()
- Reflex.Spider.Internal: [subscriberRecalculateHeight] :: Subscriber x a -> !Height -> IO ()
+ Reflex.Spider.Internal: [subscriberRecalculateHeight] :: Subscriber (x :: k) a -> !Height -> IO ()
- Reflex.Spider.Internal: [switchParent] :: Switch x a -> !Behavior x (Event x a)
+ Reflex.Spider.Internal: [switchParent] :: Switch (x :: k) a -> !Behavior x (Event x a)
- Reflex.Spider.Internal: [switchSubscribedBehaviorParents] :: SwitchSubscribed x a -> !IORef [SomeBehaviorSubscribed x]
+ Reflex.Spider.Internal: [switchSubscribedBehaviorParents] :: SwitchSubscribed (x :: k) a -> !IORef [SomeBehaviorSubscribed x]
- Reflex.Spider.Internal: [switchSubscribedCachedSubscribed] :: SwitchSubscribed x a -> !IORef (Maybe (SwitchSubscribed x a))
+ Reflex.Spider.Internal: [switchSubscribedCachedSubscribed] :: SwitchSubscribed (x :: k) a -> !IORef (Maybe (SwitchSubscribed x a))
- Reflex.Spider.Internal: [switchSubscribedCurrentParent] :: SwitchSubscribed x a -> !IORef (EventSubscription x)
+ Reflex.Spider.Internal: [switchSubscribedCurrentParent] :: SwitchSubscribed (x :: k) a -> !IORef (EventSubscription x)
- Reflex.Spider.Internal: [switchSubscribedHeight] :: SwitchSubscribed x a -> !IORef Height
+ Reflex.Spider.Internal: [switchSubscribedHeight] :: SwitchSubscribed (x :: k) a -> !IORef Height
- Reflex.Spider.Internal: [switchSubscribedOccurrence] :: SwitchSubscribed x a -> !IORef (Maybe a)
+ Reflex.Spider.Internal: [switchSubscribedOccurrence] :: SwitchSubscribed (x :: k) a -> !IORef (Maybe a)
- Reflex.Spider.Internal: [switchSubscribedOwnInvalidator] :: SwitchSubscribed x a -> {-# NOUNPACK #-} !Invalidator x
+ Reflex.Spider.Internal: [switchSubscribedOwnInvalidator] :: SwitchSubscribed (x :: k) a -> {-# NOUNPACK #-} !Invalidator x
- Reflex.Spider.Internal: [switchSubscribedOwnWeakInvalidator] :: SwitchSubscribed x a -> !IORef (Weak (Invalidator x))
+ Reflex.Spider.Internal: [switchSubscribedOwnWeakInvalidator] :: SwitchSubscribed (x :: k) a -> !IORef (Weak (Invalidator x))
- Reflex.Spider.Internal: [switchSubscribedParent] :: SwitchSubscribed x a -> !Behavior x (Event x a)
+ Reflex.Spider.Internal: [switchSubscribedParent] :: SwitchSubscribed (x :: k) a -> !Behavior x (Event x a)
- Reflex.Spider.Internal: [switchSubscribedSubscribers] :: SwitchSubscribed x a -> !WeakBag (Subscriber x a)
+ Reflex.Spider.Internal: [switchSubscribedSubscribers] :: SwitchSubscribed (x :: k) a -> !WeakBag (Subscriber x a)
- Reflex.Spider.Internal: [switchSubscribedWeakSelf] :: SwitchSubscribed x a -> !IORef (Weak (SwitchSubscribed x a))
+ Reflex.Spider.Internal: [switchSubscribedWeakSelf] :: SwitchSubscribed (x :: k) a -> !IORef (Weak (SwitchSubscribed x a))
- Reflex.Spider.Internal: [switchSubscribed] :: Switch x a -> !IORef (Maybe (SwitchSubscribed x a))
+ Reflex.Spider.Internal: [switchSubscribed] :: Switch (x :: k) a -> !IORef (Maybe (SwitchSubscribed x a))
- Reflex.Spider.Internal: [unBehaviorM] :: BehaviorM x a -> ReaderIO (BehaviorEnv x) a
+ Reflex.Spider.Internal: [unBehaviorM] :: BehaviorM (x :: k) a -> ReaderIO (BehaviorEnv x) a
- Reflex.Spider.Internal: [unDyn] :: Dyn (x :: Type) p -> IORef (DynType x p)
+ Reflex.Spider.Internal: [unDyn] :: Dyn x p -> IORef (DynType x p)
- Reflex.Spider.Internal: [unEventM] :: EventM x a -> IO a
+ Reflex.Spider.Internal: [unEventM] :: EventM (x :: k) a -> IO a
- Reflex.Spider.Internal: [unEvent] :: Event x a -> Subscriber x a -> EventM x (EventSubscription x, Maybe a)
+ Reflex.Spider.Internal: [unEvent] :: Event (x :: k) a -> Subscriber x a -> EventM x (EventSubscription x, Maybe a)
- Reflex.Spider.Internal: [unMergeSubscribedParent] :: MergeSubscribedParent x a -> EventSubscription x
+ Reflex.Spider.Internal: [unMergeSubscribedParent] :: MergeSubscribedParent (x :: k) (a :: k1) -> EventSubscription x
- Reflex.Spider.Internal: [unSomeMergeInit] :: SomeMergeInit x -> EventM x ()
+ Reflex.Spider.Internal: [unSomeMergeInit] :: SomeMergeInit (x :: k) -> EventM x ()
- Reflex.Spider.Internal: [unSpiderHost] :: SpiderHost (x :: Type) a -> IO a
+ Reflex.Spider.Internal: [unSpiderHost] :: SpiderHost x a -> IO a
- Reflex.Spider.Internal: askBehaviorHoldInits :: BehaviorM x (IORef [SomeHoldInit x])
+ Reflex.Spider.Internal: askBehaviorHoldInits :: forall {k} (x :: k). BehaviorM x (IORef [SomeHoldInit x])
- Reflex.Spider.Internal: askInvalidator :: BehaviorM x (Maybe (Weak (Invalidator x)))
+ Reflex.Spider.Internal: askInvalidator :: forall {k} (x :: k). BehaviorM x (Maybe (Weak (Invalidator x)))
- Reflex.Spider.Internal: askParentsRef :: BehaviorM x (Maybe (IORef [SomeBehaviorSubscribed x]))
+ Reflex.Spider.Internal: askParentsRef :: forall {k} (x :: k). BehaviorM x (Maybe (IORef [SomeBehaviorSubscribed x]))
- Reflex.Spider.Internal: asksEventEnv :: forall x a. HasSpiderTimeline x => (EventEnv x -> a) -> EventM x a
+ Reflex.Spider.Internal: asksEventEnv :: HasSpiderTimeline x => (EventEnv x -> a) -> EventM x a
- Reflex.Spider.Internal: behaviorConst :: a -> Behavior x a
+ Reflex.Spider.Internal: behaviorConst :: forall {k} a (x :: k). a -> Behavior x a
- Reflex.Spider.Internal: behaviorHold :: Hold x p -> Behavior x (PatchTarget p)
+ Reflex.Spider.Internal: behaviorHold :: forall {k} (x :: k) p. Hold x p -> Behavior x (PatchTarget p)
- Reflex.Spider.Internal: behaviorHoldIdentity :: Hold x (Identity a) -> Behavior x a
+ Reflex.Spider.Internal: behaviorHoldIdentity :: forall {k} (x :: k) a. Hold x (Identity a) -> Behavior x a
- Reflex.Spider.Internal: behaviorPull :: Pull x a -> Behavior x a
+ Reflex.Spider.Internal: behaviorPull :: forall {k} (x :: k) a. Pull x a -> Behavior x a
- Reflex.Spider.Internal: cacheEvent :: forall x a. HasSpiderTimeline x => Event x a -> Event x a
+ Reflex.Spider.Internal: cacheEvent :: HasSpiderTimeline x => Event x a -> Event x a
- Reflex.Spider.Internal: cacheSubscription :: Subscriber x a -> IORef (FastWeak (CacheSubscribed x a)) -> FastWeakTicket (CacheSubscribed x a) -> IO (EventSubscription x, Maybe a)
+ Reflex.Spider.Internal: cacheSubscription :: forall {k} (x :: k) a. Subscriber x a -> IORef (FastWeak (CacheSubscribed x a)) -> FastWeakTicket (CacheSubscribed x a) -> IO (EventSubscription x, Maybe a)
- Reflex.Spider.Internal: calculateCoincidenceHeight :: CoincidenceSubscribed x a -> IO Height
+ Reflex.Spider.Internal: calculateCoincidenceHeight :: forall {k} (x :: k) a. CoincidenceSubscribed x a -> IO Height
- Reflex.Spider.Internal: calculateSwitchHeight :: SwitchSubscribed x a -> IO Height
+ Reflex.Spider.Internal: calculateSwitchHeight :: forall {k} (x :: k) a. SwitchSubscribed x a -> IO Height
- Reflex.Spider.Internal: checkCycle :: EventSubscribed x -> EventM x ()
+ Reflex.Spider.Internal: checkCycle :: forall {k} (x :: k). EventSubscribed x -> EventM x ()
- Reflex.Spider.Internal: class MonadIO m => Defer a m
+ Reflex.Spider.Internal: class MonadIO m => Defer a (m :: Type -> Type)
- Reflex.Spider.Internal: class HasSpiderTimeline x => HasCurrentHeight x m | m -> x
+ Reflex.Spider.Internal: class HasSpiderTimeline x => HasCurrentHeight x (m :: Type -> Type) | m -> x
- Reflex.Spider.Internal: cleanupCoincidenceSubscribed :: CoincidenceSubscribed x a -> IO ()
+ Reflex.Spider.Internal: cleanupCoincidenceSubscribed :: forall {k} (x :: k) a. CoincidenceSubscribed x a -> IO ()
- Reflex.Spider.Internal: cleanupFanSubscribed :: GCompare k => (k a, FanSubscribed x k v) -> IO ()
+ Reflex.Spider.Internal: cleanupFanSubscribed :: forall {k1} {k2} k3 (a :: k1) (x :: k2) (v :: k1 -> Type). GCompare k3 => (k3 a, FanSubscribed x k3 v) -> IO ()
- Reflex.Spider.Internal: cleanupRootSubscribed :: RootSubscribed x a -> IO ()
+ Reflex.Spider.Internal: cleanupRootSubscribed :: forall {k} (x :: k) a. RootSubscribed x a -> IO ()
- Reflex.Spider.Internal: cleanupSwitchSubscribed :: SwitchSubscribed x a -> IO ()
+ Reflex.Spider.Internal: cleanupSwitchSubscribed :: forall {k} (x :: k) a. SwitchSubscribed x a -> IO ()
- Reflex.Spider.Internal: data BehaviorSubscribed x a
+ Reflex.Spider.Internal: data BehaviorSubscribed (x :: k) a
- Reflex.Spider.Internal: data CacheSubscribed x a
+ Reflex.Spider.Internal: data CacheSubscribed (x :: k) a
- Reflex.Spider.Internal: data Coincidence x a
+ Reflex.Spider.Internal: data Coincidence (x :: k) a
- Reflex.Spider.Internal: data CoincidenceSubscribed x a
+ Reflex.Spider.Internal: data CoincidenceSubscribed (x :: k) a
- Reflex.Spider.Internal: data DynType x p
+ Reflex.Spider.Internal: data DynType (x :: k) p
- Reflex.Spider.Internal: data Dynamic x target p
+ Reflex.Spider.Internal: data Dynamic (x :: k) target p
- Reflex.Spider.Internal: data EventSubscribed x
+ Reflex.Spider.Internal: data EventSubscribed (x :: k)
- Reflex.Spider.Internal: data EventSubscription x
+ Reflex.Spider.Internal: data EventSubscription (x :: k)
- Reflex.Spider.Internal: data Fan x k v
+ Reflex.Spider.Internal: data Fan (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type)
- Reflex.Spider.Internal: data FanInt x a
+ Reflex.Spider.Internal: data FanInt (x :: k) a
- Reflex.Spider.Internal: data FanSubscribed x k v
+ Reflex.Spider.Internal: data FanSubscribed (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type)
- Reflex.Spider.Internal: data FanSubscribedChildren x k v a
+ Reflex.Spider.Internal: data FanSubscribedChildren (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (a :: k1)
- Reflex.Spider.Internal: data Hold x p
+ Reflex.Spider.Internal: data Hold (x :: k) p
- Reflex.Spider.Internal: data Invalidator x
+ Reflex.Spider.Internal: data Invalidator (x :: k)
- Reflex.Spider.Internal: data LocalSpiderTimeline (x :: Type) s
+ Reflex.Spider.Internal: data LocalSpiderTimeline x (s :: k)
- Reflex.Spider.Internal: data Merge x k v s
+ Reflex.Spider.Internal: data Merge (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type) (s :: k1 -> Type)
- Reflex.Spider.Internal: data MergeSubscribedParentWithMove x k a
+ Reflex.Spider.Internal: data MergeSubscribedParentWithMove (x :: k) (k2 :: k1 -> Type) (a :: k1)
- Reflex.Spider.Internal: data Pull x a
+ Reflex.Spider.Internal: data Pull (x :: k) a
- Reflex.Spider.Internal: data PullSubscribed x a
+ Reflex.Spider.Internal: data PullSubscribed (x :: k) a
- Reflex.Spider.Internal: data Root x k
+ Reflex.Spider.Internal: data Root (x :: k) (k1 :: Type -> Type)
- Reflex.Spider.Internal: data RootSubscribed x a
+ Reflex.Spider.Internal: data RootSubscribed (x :: k) a
- Reflex.Spider.Internal: data RootTrigger x a
+ Reflex.Spider.Internal: data RootTrigger (x :: k) a
- Reflex.Spider.Internal: data SomeAssignment x
+ Reflex.Spider.Internal: data SomeAssignment (x :: k)
- Reflex.Spider.Internal: data SomeHoldInit x
+ Reflex.Spider.Internal: data SomeHoldInit (x :: k)
- Reflex.Spider.Internal: data SomeMergeUpdate x
+ Reflex.Spider.Internal: data SomeMergeUpdate (x :: k)
- Reflex.Spider.Internal: data SomeResetCoincidence x
+ Reflex.Spider.Internal: data SomeResetCoincidence (x :: k)
- Reflex.Spider.Internal: data SomeSwitchSubscribed x
+ Reflex.Spider.Internal: data SomeSwitchSubscribed (x :: k)
- Reflex.Spider.Internal: data SpiderEventHandle x a
+ Reflex.Spider.Internal: data SpiderEventHandle (x :: k) a
- Reflex.Spider.Internal: data SpiderTimeline x
+ Reflex.Spider.Internal: data SpiderTimeline (x :: k)
- Reflex.Spider.Internal: data Subscriber x a
+ Reflex.Spider.Internal: data Subscriber (x :: k) a
- Reflex.Spider.Internal: data Switch x a
+ Reflex.Spider.Internal: data Switch (x :: k) a
- Reflex.Spider.Internal: data SwitchSubscribed x a
+ Reflex.Spider.Internal: data SwitchSubscribed (x :: k) a
- Reflex.Spider.Internal: debugSubscriber :: String -> Subscriber x a -> IO (Subscriber x a)
+ Reflex.Spider.Internal: debugSubscriber :: forall {k} (x :: k) a. String -> Subscriber x a -> IO (Subscriber x a)
- Reflex.Spider.Internal: debugSubscriber' :: String -> Subscriber x a -> Subscriber x a
+ Reflex.Spider.Internal: debugSubscriber' :: forall {k} (x :: k) a. String -> Subscriber x a -> Subscriber x a
- Reflex.Spider.Internal: dynamicConst :: PatchTarget p -> DynamicS x p
+ Reflex.Spider.Internal: dynamicConst :: forall {k} p (x :: k). PatchTarget p -> DynamicS x p
- Reflex.Spider.Internal: dynamicHold :: Hold x p -> DynamicS x p
+ Reflex.Spider.Internal: dynamicHold :: forall {k} (x :: k) p. Hold x p -> DynamicS x p
- Reflex.Spider.Internal: dynamicHoldIdentity :: Hold x (Identity a) -> DynamicS x (Identity a)
+ Reflex.Spider.Internal: dynamicHoldIdentity :: forall {k} (x :: k) a. Hold x (Identity a) -> DynamicS x (Identity a)
- Reflex.Spider.Internal: eventFan :: (GCompare k, HasSpiderTimeline x) => k a -> Fan x k v -> Event x (v a)
+ Reflex.Spider.Internal: eventFan :: forall {k1} k2 x (a :: k1) v. (GCompare k2, HasSpiderTimeline x) => k2 a -> Fan x k2 v -> Event x (v a)
- Reflex.Spider.Internal: eventHold :: Hold x p -> Event x p
+ Reflex.Spider.Internal: eventHold :: forall {k} (x :: k) p. Hold x p -> Event x p
- Reflex.Spider.Internal: eventNever :: Event x a
+ Reflex.Spider.Internal: eventNever :: forall {k} (x :: k) a. Event x a
- Reflex.Spider.Internal: eventSubscribedCoincidence :: CoincidenceSubscribed x a -> EventSubscribed x
+ Reflex.Spider.Internal: eventSubscribedCoincidence :: forall {k} (x :: k) a. CoincidenceSubscribed x a -> EventSubscribed x
- Reflex.Spider.Internal: eventSubscribedFan :: FanSubscribed x k v -> EventSubscribed x
+ Reflex.Spider.Internal: eventSubscribedFan :: forall {k1} {k2} (x :: k1) (k3 :: k2 -> Type) (v :: k2 -> Type). FanSubscribed x k3 v -> EventSubscribed x
- Reflex.Spider.Internal: eventSubscribedNever :: EventSubscribed x
+ Reflex.Spider.Internal: eventSubscribedNever :: forall {k} (x :: k). EventSubscribed x
- Reflex.Spider.Internal: eventSubscribedNow :: EventSubscribed x
+ Reflex.Spider.Internal: eventSubscribedNow :: forall {k} (x :: k). EventSubscribed x
- Reflex.Spider.Internal: eventSubscribedRoot :: RootSubscribed x a -> EventSubscribed x
+ Reflex.Spider.Internal: eventSubscribedRoot :: forall {k} (x :: k) a. RootSubscribed x a -> EventSubscribed x
- Reflex.Spider.Internal: eventSubscribedSwitch :: SwitchSubscribed x a -> EventSubscribed x
+ Reflex.Spider.Internal: eventSubscribedSwitch :: forall {k} (x :: k) a. SwitchSubscribed x a -> EventSubscribed x
- Reflex.Spider.Internal: fanG :: (HasSpiderTimeline x, GCompare k) => Event x (DMap k v) -> EventSelectorG x k v
+ Reflex.Spider.Internal: fanG :: forall {k1} x (k2 :: k1 -> Type) (v :: k1 -> Type). (HasSpiderTimeline x, GCompare k2) => Event x (DMap k2 v) -> EventSelectorG x k2 v
- Reflex.Spider.Internal: fanIntSubscribed :: FastWeakBagTicket k -> FanInt x a -> IO (EventSubscribed x)
+ Reflex.Spider.Internal: fanIntSubscribed :: forall {k1} k2 (x :: k1) a. FastWeakBagTicket k2 -> FanInt x a -> IO (EventSubscribed x)
- Reflex.Spider.Internal: getCoincidenceSubscribed :: forall x a. HasSpiderTimeline x => Coincidence x a -> Subscriber x a -> EventM x (WeakBagTicket, CoincidenceSubscribed x a, Maybe a)
+ Reflex.Spider.Internal: getCoincidenceSubscribed :: HasSpiderTimeline x => Coincidence x a -> Subscriber x a -> EventM x (WeakBagTicket, CoincidenceSubscribed x a, Maybe a)
- Reflex.Spider.Internal: getEventSubscribedHeight :: EventSubscribed x -> IO Height
+ Reflex.Spider.Internal: getEventSubscribedHeight :: forall {k} (x :: k). EventSubscribed x -> IO Height
- Reflex.Spider.Internal: getFanSubscribed :: (HasSpiderTimeline x, GCompare k) => k a -> Fan x k v -> Subscriber x (v a) -> EventM x (WeakBagTicket, FanSubscribed x k v, Maybe (v a))
+ Reflex.Spider.Internal: getFanSubscribed :: forall {k1} x k2 (a :: k1) v. (HasSpiderTimeline x, GCompare k2) => k2 a -> Fan x k2 v -> Subscriber x (v a) -> EventM x (WeakBagTicket, FanSubscribed x k2 v, Maybe (v a))
- Reflex.Spider.Internal: getRootSubscribed :: forall k x a. (GCompare k, HasSpiderTimeline x) => k a -> Root x k -> Subscriber x a -> IO (WeakBagTicket, RootSubscribed x a, Maybe a)
+ Reflex.Spider.Internal: getRootSubscribed :: (GCompare k, HasSpiderTimeline x) => k a -> Root x k -> Subscriber x a -> IO (WeakBagTicket, RootSubscribed x a, Maybe a)
- Reflex.Spider.Internal: headE :: Defer (SomeMergeInit x) m => Event x a -> m (Event x a)
+ Reflex.Spider.Internal: headE :: forall {k} (x :: k) m a. Defer (SomeMergeInit x) m => Event x a -> m (Event x a)
- Reflex.Spider.Internal: hold :: (Patch p, Defer (SomeHoldInit x) m) => PatchTarget p -> Event x p -> m (Hold x p)
+ Reflex.Spider.Internal: hold :: forall {k} p (x :: k) m. (Patch p, Defer (SomeHoldInit x) m) => PatchTarget p -> Event x p -> m (Hold x p)
- Reflex.Spider.Internal: invalidate :: IORef [SomeSwitchSubscribed x] -> WeakList (Invalidator x) -> IO (WeakList (Invalidator x))
+ Reflex.Spider.Internal: invalidate :: forall {k} (x :: k). IORef [SomeSwitchSubscribed x] -> InvalidatorList x -> IO (InvalidatorList x)
- Reflex.Spider.Internal: invalidateCoincidenceHeight :: CoincidenceSubscribed x a -> IO ()
+ Reflex.Spider.Internal: invalidateCoincidenceHeight :: HasSpiderTimeline x => CoincidenceSubscribed x a -> IO ()
- Reflex.Spider.Internal: invalidateMergeHeight :: Merge x k v s -> IO ()
+ Reflex.Spider.Internal: invalidateMergeHeight :: forall {k1} {k2} (x :: k1) (k3 :: k2 -> Type) (v :: k2 -> Type) (s :: k2 -> Type). Merge x k3 v s -> IO ()
- Reflex.Spider.Internal: invalidateMergeHeight' :: IORef Height -> Subscriber x a -> IO ()
+ Reflex.Spider.Internal: invalidateMergeHeight' :: forall {k} (x :: k) a. IORef Height -> Subscriber x a -> IO ()
- Reflex.Spider.Internal: invalidateSubscriberHeight :: Height -> Subscriber x a -> IO ()
+ Reflex.Spider.Internal: invalidateSubscriberHeight :: forall {k} (x :: k) a. Height -> Subscriber x a -> IO ()
- Reflex.Spider.Internal: localSpiderTimeline :: proxy s -> SpiderTimelineEnv x -> SpiderTimelineEnv (LocalSpiderTimeline x s)
+ Reflex.Spider.Internal: localSpiderTimeline :: forall {k} proxy (s :: k) x. proxy s -> SpiderTimelineEnv x -> SpiderTimelineEnv (LocalSpiderTimeline x s)
- Reflex.Spider.Internal: mergeCheap :: forall k x q v. (HasSpiderTimeline x, GCompare k) => (forall a. q a -> Event x (v a)) -> DynamicS x (PatchDMap k q) -> Event x (DMap k v)
+ Reflex.Spider.Internal: mergeCheap :: forall {k1} (k2 :: k1 -> Type) x q v. (HasSpiderTimeline x, GCompare k2) => (forall (a :: k1). () => q a -> Event x (v a)) -> DynamicS x (PatchDMap k2 q) -> Event x (DMap k2 v)
- Reflex.Spider.Internal: mergeCheapWithMove :: forall k x v q. (HasSpiderTimeline x, GCompare k) => (forall a. q a -> Event x (v a)) -> DynamicS x (PatchDMapWithMove k q) -> Event x (DMap k v)
+ Reflex.Spider.Internal: mergeCheapWithMove :: forall {k1} (k2 :: k1 -> Type) x v q. (HasSpiderTimeline x, GCompare k2) => (forall (a :: k1). () => q a -> Event x (v a)) -> DynamicS x (PatchDMapWithMove k2 q) -> Event x (DMap k2 v)
- Reflex.Spider.Internal: mergeG :: forall k q x v. (HasSpiderTimeline x, GCompare k) => (forall a. q a -> Event x (v a)) -> DynamicS x (PatchDMap k q) -> Event x (DMap k v)
+ Reflex.Spider.Internal: mergeG :: forall {k1} (k2 :: k1 -> Type) q x v. (HasSpiderTimeline x, GCompare k2) => (forall (a :: k1). () => q a -> Event x (v a)) -> DynamicS x (PatchDMap k2 q) -> Event x (DMap k2 v)
- Reflex.Spider.Internal: mergeGCheap' :: forall k v x p s q. (HasSpiderTimeline x, GCompare k, PatchTarget p ~ DMap k q) => MergeGetSubscription x s -> MergeInitFunc k v q x s -> MergeUpdateFunc k v x p s -> MergeDestroyFunc k s -> DynamicS x p -> Event x (DMap k v)
+ Reflex.Spider.Internal: mergeGCheap' :: forall {k1} k2 v x p (s :: k1 -> Type) (q :: k1 -> Type). (HasSpiderTimeline x, GCompare k2, PatchTarget p ~ DMap k2 q) => MergeGetSubscription x s -> MergeInitFunc k2 v q x s -> MergeUpdateFunc k2 v x p s -> MergeDestroyFunc k2 s -> DynamicS x p -> Event x (DMap k2 v)
- Reflex.Spider.Internal: mergeInt :: forall x a. HasSpiderTimeline x => DynamicS x (PatchIntMap (Event x a)) -> Event x (IntMap a)
+ Reflex.Spider.Internal: mergeInt :: HasSpiderTimeline x => DynamicS x (PatchIntMap (Event x a)) -> Event x (IntMap a)
- Reflex.Spider.Internal: mergeIntCheap :: forall x a. HasSpiderTimeline x => DynamicS x (PatchIntMap (Event x a)) -> Event x (IntMap a)
+ Reflex.Spider.Internal: mergeIntCheap :: HasSpiderTimeline x => DynamicS x (PatchIntMap (Event x a)) -> Event x (IntMap a)
- Reflex.Spider.Internal: mergeSubscriber :: forall x k v s a. (HasSpiderTimeline x, GCompare k) => EventSubscribed x -> Merge x k v s -> EventM x (k a) -> Subscriber x (v a)
+ Reflex.Spider.Internal: mergeSubscriber :: forall {k1} x k2 v (s :: k1 -> Type) (a :: k1). (HasSpiderTimeline x, GCompare k2) => EventSubscribed x -> Merge x k2 v s -> EventM x (k2 a) -> Subscriber x (v a)
- Reflex.Spider.Internal: mergeWithMove :: forall k v q x. (HasSpiderTimeline x, GCompare k) => (forall a. q a -> Event x (v a)) -> DynamicS x (PatchDMapWithMove k q) -> Event x (DMap k v)
+ Reflex.Spider.Internal: mergeWithMove :: forall {k1} (k2 :: k1 -> Type) v q x. (HasSpiderTimeline x, GCompare k2) => (forall (a :: k1). () => q a -> Event x (v a)) -> DynamicS x (PatchDMapWithMove k2 q) -> Event x (DMap k2 v)
- Reflex.Spider.Internal: newEventWithTriggerIO :: forall x a. HasSpiderTimeline x => (RootTrigger x a -> IO (IO ())) -> IO (Event x a)
+ Reflex.Spider.Internal: newEventWithTriggerIO :: HasSpiderTimeline x => (RootTrigger x a -> IO (IO ())) -> IO (Event x a)
- Reflex.Spider.Internal: newFanEventWithTriggerIO :: (HasSpiderTimeline x, GCompare k) => (forall a. k a -> RootTrigger x a -> IO (IO ())) -> IO (EventSelector x k)
+ Reflex.Spider.Internal: newFanEventWithTriggerIO :: (HasSpiderTimeline x, GCompare k) => (forall a. () => k a -> RootTrigger x a -> IO (IO ())) -> IO (EventSelector x k)
- Reflex.Spider.Internal: newFanInt :: IO (FanInt x a)
+ Reflex.Spider.Internal: newFanInt :: forall {k} (x :: k) a. IO (FanInt x a)
- Reflex.Spider.Internal: newInvalidatorPull :: Pull x a -> IO (Invalidator x)
+ Reflex.Spider.Internal: newInvalidatorPull :: forall {k} (x :: k) a. Pull x a -> IO (Invalidator x)
- Reflex.Spider.Internal: newInvalidatorSwitch :: SwitchSubscribed x a -> IO (Invalidator x)
+ Reflex.Spider.Internal: newInvalidatorSwitch :: forall {k} (x :: k) a. SwitchSubscribed x a -> IO (Invalidator x)
- Reflex.Spider.Internal: newSubscriberCoincidenceInner :: forall x a. HasSpiderTimeline x => CoincidenceSubscribed x a -> IO (Subscriber x a)
+ Reflex.Spider.Internal: newSubscriberCoincidenceInner :: HasSpiderTimeline x => CoincidenceSubscribed x a -> IO (Subscriber x a)
- Reflex.Spider.Internal: newSubscriberCoincidenceOuter :: forall x b. HasSpiderTimeline x => CoincidenceSubscribed x b -> IO (Subscriber x (Event x b))
+ Reflex.Spider.Internal: newSubscriberCoincidenceOuter :: HasSpiderTimeline x => CoincidenceSubscribed x b -> IO (Subscriber x (Event x b))
- Reflex.Spider.Internal: newSubscriberFan :: forall x k v. (HasSpiderTimeline x, GCompare k) => FanSubscribed x k v -> IO (Subscriber x (DMap k v))
+ Reflex.Spider.Internal: newSubscriberFan :: forall {k1} x (k2 :: k1 -> Type) (v :: k1 -> Type). (HasSpiderTimeline x, GCompare k2) => FanSubscribed x k2 v -> IO (Subscriber x (DMap k2 v))
- Reflex.Spider.Internal: newSubscriberSwitch :: forall x a. HasSpiderTimeline x => SwitchSubscribed x a -> IO (Subscriber x a)
+ Reflex.Spider.Internal: newSubscriberSwitch :: HasSpiderTimeline x => SwitchSubscribed x a -> IO (Subscriber x a)
- Reflex.Spider.Internal: newtype Behavior x a
+ Reflex.Spider.Internal: newtype Behavior (x :: k) a
- Reflex.Spider.Internal: newtype BehaviorM x a
+ Reflex.Spider.Internal: newtype BehaviorM (x :: k) a
- Reflex.Spider.Internal: newtype Dyn (x :: Type) p
+ Reflex.Spider.Internal: newtype Dyn x p
- Reflex.Spider.Internal: newtype Event x a
+ Reflex.Spider.Internal: newtype Event (x :: k) a
- Reflex.Spider.Internal: newtype EventM x a
+ Reflex.Spider.Internal: newtype EventM (x :: k) a
- Reflex.Spider.Internal: newtype EventSelector x k
+ Reflex.Spider.Internal: newtype EventSelector (x :: k) (k1 :: Type -> Type)
- Reflex.Spider.Internal: newtype EventSelectorG x k v
+ Reflex.Spider.Internal: newtype EventSelectorG (x :: k) (k2 :: k1 -> Type) (v :: k1 -> Type)
- Reflex.Spider.Internal: newtype EventSelectorInt x a
+ Reflex.Spider.Internal: newtype EventSelectorInt (x :: k) a
- Reflex.Spider.Internal: newtype MergeSubscribedParent x a
+ Reflex.Spider.Internal: newtype MergeSubscribedParent (x :: k) (a :: k1)
- Reflex.Spider.Internal: newtype ReadPhase x a
+ Reflex.Spider.Internal: newtype ReadPhase (x :: k) a
- Reflex.Spider.Internal: newtype RootClear k
+ Reflex.Spider.Internal: newtype RootClear (k :: Type -> Type)
- Reflex.Spider.Internal: newtype SomeBehaviorSubscribed x
+ Reflex.Spider.Internal: newtype SomeBehaviorSubscribed (x :: k)
- Reflex.Spider.Internal: newtype SomeMergeInit x
+ Reflex.Spider.Internal: newtype SomeMergeInit (x :: k)
- Reflex.Spider.Internal: newtype SpiderHost (x :: Type) a
+ Reflex.Spider.Internal: newtype SpiderHost x a
- Reflex.Spider.Internal: newtype SpiderHostFrame (x :: Type) a
+ Reflex.Spider.Internal: newtype SpiderHostFrame x a
- Reflex.Spider.Internal: newtype SpiderPullM (x :: Type) a
+ Reflex.Spider.Internal: newtype SpiderPullM x a
- Reflex.Spider.Internal: newtype SpiderPushM (x :: Type) a
+ Reflex.Spider.Internal: newtype SpiderPushM x a
- Reflex.Spider.Internal: now :: Defer (Some Clear) m => m (Event x ())
+ Reflex.Spider.Internal: now :: forall {k} m (x :: k). Defer (Some Clear) m => m (Event x ())
- Reflex.Spider.Internal: propagate :: forall x a. a -> WeakBag (Subscriber x a) -> EventM x ()
+ Reflex.Spider.Internal: propagate :: forall {k} (x :: k) a. a -> WeakBag (Subscriber x a) -> EventM x ()
- Reflex.Spider.Internal: propagateFast :: forall x a. a -> FastWeakBag (Subscriber x a) -> EventM x ()
+ Reflex.Spider.Internal: propagateFast :: forall {k} (x :: k) a. a -> FastWeakBag (Subscriber x a) -> EventM x ()
- Reflex.Spider.Internal: propagateSubscriberHold :: forall x p. (HasSpiderTimeline x, Patch p) => Hold x p -> p -> EventM x ()
+ Reflex.Spider.Internal: propagateSubscriberHold :: (HasSpiderTimeline x, Patch p) => Hold x p -> p -> EventM x ()
- Reflex.Spider.Internal: pull :: BehaviorM x a -> Behavior x a
+ Reflex.Spider.Internal: pull :: forall {k} (x :: k) a. BehaviorM x a -> Behavior x a
- Reflex.Spider.Internal: pushCheap :: (a -> ComputeM x (Maybe b)) -> Event x a -> Event x b
+ Reflex.Spider.Internal: pushCheap :: forall {k} a (x :: k) b. (a -> ComputeM x (Maybe b)) -> Event x a -> Event x b
- Reflex.Spider.Internal: readBehaviorUntracked :: Defer (SomeHoldInit x) m => Behavior x a -> m a
+ Reflex.Spider.Internal: readBehaviorUntracked :: forall {k} (x :: k) m a. Defer (SomeHoldInit x) m => Behavior x a -> m a
- Reflex.Spider.Internal: readHoldTracked :: Hold x p -> BehaviorM x (PatchTarget p)
+ Reflex.Spider.Internal: readHoldTracked :: forall {k} (x :: k) p. Hold x p -> BehaviorM x (PatchTarget p)
- Reflex.Spider.Internal: recalculateCoincidenceHeight :: CoincidenceSubscribed x a -> IO ()
+ Reflex.Spider.Internal: recalculateCoincidenceHeight :: forall {k} (x :: k) a. CoincidenceSubscribed x a -> IO ()
- Reflex.Spider.Internal: recalculateSubscriberHeight :: Height -> Subscriber x a -> IO ()
+ Reflex.Spider.Internal: recalculateSubscriberHeight :: forall {k} (x :: k) a. Height -> Subscriber x a -> IO ()
- Reflex.Spider.Internal: revalidateMergeHeight :: Merge x k v s -> IO ()
+ Reflex.Spider.Internal: revalidateMergeHeight :: forall {k1} {k2} (x :: k1) (k3 :: k2 -> Type) (v :: k2 -> Type) (s :: k2 -> Type). Merge x k3 v s -> IO ()
- Reflex.Spider.Internal: run :: forall x b. HasSpiderTimeline x => [DSum (RootTrigger x) Identity] -> ResultM x b -> SpiderHost x b
+ Reflex.Spider.Internal: run :: HasSpiderTimeline x => [DSum (RootTrigger x) Identity] -> ResultM x b -> SpiderHost x b
- Reflex.Spider.Internal: runBehaviorM :: BehaviorM x a -> Maybe (Weak (Invalidator x), IORef [SomeBehaviorSubscribed x]) -> IORef [SomeHoldInit x] -> IO a
+ Reflex.Spider.Internal: runBehaviorM :: forall {k} (x :: k) a. BehaviorM x a -> Maybe (Weak (Invalidator x), IORef [SomeBehaviorSubscribed x]) -> IORef [SomeHoldInit x] -> IO a
- Reflex.Spider.Internal: runEventM :: EventM x a -> IO a
+ Reflex.Spider.Internal: runEventM :: forall {k} (x :: k) a. EventM x a -> IO a
- Reflex.Spider.Internal: runFrame :: forall x a. HasSpiderTimeline x => EventM x a -> SpiderHost x a
+ Reflex.Spider.Internal: runFrame :: HasSpiderTimeline x => EventM x a -> SpiderHost x a
- Reflex.Spider.Internal: scheduleMergeSelf :: HasSpiderTimeline x => Merge x k v s -> Height -> EventM x ()
+ Reflex.Spider.Internal: scheduleMergeSelf :: forall {k1} x (k2 :: k1 -> Type) (v :: k1 -> Type) (s :: k1 -> Type). HasSpiderTimeline x => Merge x k2 v s -> Height -> EventM x ()
- Reflex.Spider.Internal: scheduleRootClear :: Defer (Some RootClear) m => IORef (DMap k Identity) -> m ()
+ Reflex.Spider.Internal: scheduleRootClear :: forall m (k :: Type -> Type). Defer (Some RootClear) m => IORef (DMap k Identity) -> m ()
- Reflex.Spider.Internal: subscribe :: Event x a -> Subscriber x a -> EventM x (EventSubscription x)
+ Reflex.Spider.Internal: subscribe :: forall {k} (x :: k) a. Event x a -> Subscriber x a -> EventM x (EventSubscription x)
- Reflex.Spider.Internal: subscribeAndRead :: Event x a -> Subscriber x a -> EventM x (EventSubscription x, Maybe a)
+ Reflex.Spider.Internal: subscribeAndRead :: forall {k} (x :: k) a. Event x a -> Subscriber x a -> EventM x (EventSubscription x, Maybe a)
- Reflex.Spider.Internal: subscribeAndReadHead :: Event x a -> Subscriber x a -> EventM x (EventSubscription x, Maybe a)
+ Reflex.Spider.Internal: subscribeAndReadHead :: forall {k} (x :: k) a. Event x a -> Subscriber x a -> EventM x (EventSubscription x, Maybe a)
- Reflex.Spider.Internal: subscribeAndReadNever :: EventM x (EventSubscription x, Maybe a)
+ Reflex.Spider.Internal: subscribeAndReadNever :: forall {k} (x :: k) a. EventM x (EventSubscription x, Maybe a)
- Reflex.Spider.Internal: subscribeCoincidenceSubscribed :: CoincidenceSubscribed x a -> Subscriber x a -> IO WeakBagTicket
+ Reflex.Spider.Internal: subscribeCoincidenceSubscribed :: forall {k} (x :: k) a. CoincidenceSubscribed x a -> Subscriber x a -> IO WeakBagTicket
- Reflex.Spider.Internal: subscribeFanSubscribed :: GCompare k => k a -> FanSubscribed x k v -> Subscriber x (v a) -> IO WeakBagTicket
+ Reflex.Spider.Internal: subscribeFanSubscribed :: forall {k1} {k2} k3 (a :: k1) (x :: k2) v. GCompare k3 => k3 a -> FanSubscribed x k3 v -> Subscriber x (v a) -> IO WeakBagTicket
- Reflex.Spider.Internal: subscribeHoldEvent :: Hold x p -> Subscriber x p -> EventM x (EventSubscription x, Maybe p)
+ Reflex.Spider.Internal: subscribeHoldEvent :: forall {k} (x :: k) p. Hold x p -> Subscriber x p -> EventM x (EventSubscription x, Maybe p)
- Reflex.Spider.Internal: subscribeRootSubscribed :: RootSubscribed x a -> Subscriber x a -> IO WeakBagTicket
+ Reflex.Spider.Internal: subscribeRootSubscribed :: forall {k} (x :: k) a. RootSubscribed x a -> Subscriber x a -> IO WeakBagTicket
- Reflex.Spider.Internal: subscribeSwitchSubscribed :: SwitchSubscribed x a -> Subscriber x a -> IO WeakBagTicket
+ Reflex.Spider.Internal: subscribeSwitchSubscribed :: forall {k} (x :: k) a. SwitchSubscribed x a -> Subscriber x a -> IO WeakBagTicket
- Reflex.Spider.Internal: terminalSubscriber :: (a -> EventM x ()) -> Subscriber x a
+ Reflex.Spider.Internal: terminalSubscriber :: forall {k} a (x :: k). (a -> EventM x ()) -> Subscriber x a
- Reflex.Spider.Internal: toAny :: a -> Any
+ Reflex.Spider.Internal: toAny :: a -> Any :: Type
- Reflex.Spider.Internal: type BehaviorEnv x = (Maybe (Weak (Invalidator x), IORef [SomeBehaviorSubscribed x]), IORef [SomeHoldInit x])
+ Reflex.Spider.Internal: type BehaviorEnv (x :: k) = (Maybe (Weak Invalidator x, IORef [SomeBehaviorSubscribed x]), IORef [SomeHoldInit x])
- Reflex.Spider.Internal: type CanTrace x m = (HasSpiderTimeline x, MonadIO m)
+ Reflex.Spider.Internal: type CanTrace x (m :: Type -> Type) = (HasSpiderTimeline x, MonadIO m)
- Reflex.Spider.Internal: type ComputeM = EventM
+ Reflex.Spider.Internal: type ComputeM = EventM :: k -> Type -> Type
- Reflex.Spider.Internal: type DynamicS x p = Dynamic x (PatchTarget p) p
+ Reflex.Spider.Internal: type DynamicS (x :: k) p = Dynamic x PatchTarget p p
- Reflex.Spider.Internal: type MergeDestroyFunc k s = DMap k s -> IO ()
+ Reflex.Spider.Internal: type MergeDestroyFunc (k1 :: k -> Type) (s :: k -> Type) = DMap k1 s -> IO ()
- Reflex.Spider.Internal: type ResultM = EventM
+ Reflex.Spider.Internal: type ResultM = EventM :: k -> Type -> Type
- Reflex.Spider.Internal: type SpiderEnv = SpiderTimeline
+ Reflex.Spider.Internal: type SpiderEnv = SpiderTimeline :: k -> Type
- Reflex.Spider.Internal: unsafeNewSpiderTimelineEnv :: forall x. IO (SpiderTimelineEnv x)
+ Reflex.Spider.Internal: unsafeNewSpiderTimelineEnv :: IO (SpiderTimelineEnv x)
- Reflex.Spider.Internal: unsubscribe :: EventSubscription x -> IO ()
+ Reflex.Spider.Internal: unsubscribe :: forall {k} (x :: k). EventSubscription x -> IO ()
- Reflex.Spider.Internal: updateMerge :: (HasSpiderTimeline x, GCompare k) => EventSubscribed x -> Merge x k v s -> MergeUpdateFunc k v x p s -> p -> SomeMergeUpdate x
+ Reflex.Spider.Internal: updateMerge :: forall {k1} x k2 v (s :: k1 -> Type) p. (HasSpiderTimeline x, GCompare k2) => EventSubscribed x -> Merge x k2 v s -> MergeUpdateFunc k2 v x p s -> p -> SomeMergeUpdate x
- Reflex.Spider.Internal: updateSwitchHeight :: Height -> SwitchSubscribed x a -> IO ()
+ Reflex.Spider.Internal: updateSwitchHeight :: forall {k} (x :: k) a. Height -> SwitchSubscribed x a -> IO ()
- Reflex.Spider.Internal: withIncreasedDepth :: proxy x -> m a -> m a
+ Reflex.Spider.Internal: withIncreasedDepth :: forall {k1} {k2} proxy (x :: k1) m (a :: k2). proxy x -> m a -> m a
- Reflex.Spider.Internal: wrap :: MonadIO m => (t -> EventSubscribed x) -> (Subscriber x a -> m (WeakBagTicket, t, Maybe a)) -> Subscriber x a -> m (EventSubscription x, Maybe a)
+ Reflex.Spider.Internal: wrap :: forall {k} m t (x :: k) a. MonadIO m => (t -> EventSubscribed x) -> (Subscriber x a -> m (WeakBagTicket, t, Maybe a)) -> Subscriber x a -> m (EventSubscription x, Maybe a)
- Reflex.TriggerEvent.Base: TriggerEventT :: ReaderT (Chan [DSum (EventTriggerRef t) TriggerInvocation]) m a -> TriggerEventT t m a
+ Reflex.TriggerEvent.Base: TriggerEventT :: ReaderT (Chan [DSum (EventTriggerRef t) TriggerInvocation]) m a -> TriggerEventT t (m :: Type -> Type) a
- Reflex.TriggerEvent.Base: [unTriggerEventT] :: TriggerEventT t m a -> ReaderT (Chan [DSum (EventTriggerRef t) TriggerInvocation]) m a
+ Reflex.TriggerEvent.Base: [unTriggerEventT] :: TriggerEventT t (m :: Type -> Type) a -> ReaderT (Chan [DSum (EventTriggerRef t) TriggerInvocation]) m a
- Reflex.TriggerEvent.Base: askEvents :: Monad m => TriggerEventT t m (Chan [DSum (EventTriggerRef t) TriggerInvocation])
+ Reflex.TriggerEvent.Base: askEvents :: forall (m :: Type -> Type) t. Monad m => TriggerEventT t m (Chan [DSum (EventTriggerRef t) TriggerInvocation])
- Reflex.TriggerEvent.Base: newtype TriggerEventT t m a
+ Reflex.TriggerEvent.Base: newtype TriggerEventT t (m :: Type -> Type) a
- Reflex.TriggerEvent.Class: class Monad m => TriggerEvent t m | m -> t
+ Reflex.TriggerEvent.Class: class Monad m => TriggerEvent t (m :: Type -> Type) | m -> t
- Reflex.Widget.Basic: sortableList :: forall t m k v a. (MonadHold t m, MonadFix m, Adjustable t m, Ord k) => (k -> v -> m a) -> Map k v -> Event t (v -> v -> Ordering) -> m (Map k a)
+ Reflex.Widget.Basic: sortableList :: (MonadHold t m, MonadFix m, Adjustable t m, Ord k) => (k -> v -> m a) -> Map k v -> Event t (v -> v -> Ordering) -> m (Map k a)
- Reflex.Workflow: Workflow :: m (a, Event t (Workflow t m a)) -> Workflow t m a
+ Reflex.Workflow: Workflow :: m (a, Event t (Workflow t m a)) -> Workflow t (m :: Type -> Type) a
- Reflex.Workflow: [unWorkflow] :: Workflow t m a -> m (a, Event t (Workflow t m a))
+ Reflex.Workflow: [unWorkflow] :: Workflow t (m :: Type -> Type) a -> m (a, Event t (Workflow t m a))
- Reflex.Workflow: mapWorkflow :: (Reflex t, Functor m) => (a -> b) -> Workflow t m a -> Workflow t m b
+ Reflex.Workflow: mapWorkflow :: forall t (m :: Type -> Type) a b. (Reflex t, Functor m) => (a -> b) -> Workflow t m a -> Workflow t m b
- Reflex.Workflow: mapWorkflowCheap :: (Reflex t, Functor m) => (a -> b) -> Workflow t m a -> Workflow t m b
+ Reflex.Workflow: mapWorkflowCheap :: forall t (m :: Type -> Type) a b. (Reflex t, Functor m) => (a -> b) -> Workflow t m a -> Workflow t m b
- Reflex.Workflow: newtype Workflow t m a
+ Reflex.Workflow: newtype Workflow t (m :: Type -> Type) a
- Reflex.Workflow: workflow :: forall t m a. (Adjustable t m, MonadFix m, MonadHold t m) => Workflow t m a -> m (Dynamic t a)
+ Reflex.Workflow: workflow :: (Adjustable t m, MonadFix m, MonadHold t m) => Workflow t m a -> m (Dynamic t a)
- Reflex.Workflow: workflowView :: forall t m a. (NotReady t m, Adjustable t m, MonadFix m, MonadHold t m, PostBuild t m) => Workflow t m a -> m (Event t a)
+ Reflex.Workflow: workflowView :: (NotReady t m, Adjustable t m, MonadFix m, MonadHold t m, PostBuild t m) => Workflow t m a -> m (Event t a)

Files

ChangeLog.md view
@@ -1,5 +1,11 @@ # Revision history for reflex +## 0.9.4.1++* Bug fix for `CausalityLoopException`s caused by incorrect coincidence and merge height invalidation by @parenthetical in [#536](https://github.com/reflex-frp/reflex/pull/536).+* Space leak fixed: Applicative combination of Behaviors, with at least one never changing, no longer causes unbounded memory growth by @parenthetical in [#535](https://github.com/reflex-frp/reflex/pull/535).+* Stray debug print removed from non-debug builds.+ ## 0.9.4.0  * Add note about `requesting` semantics by @LightAndLight in https://github.com/reflex-frp/reflex/pull/508
bench/RunAll.hs view
@@ -121,6 +121,7 @@     firing n     = group ("firing "    <> show n) $ Focused.firing n     merging n    = group ("merging "   <> show n) $ Focused.merging n     dynamics n   = group ("dynamics "  <> show n) $ Focused.dynamics n+    shared w     = group ("sharedInvalidators " <> show w) $ Focused.sharedInvalidators w     cases = concat       [ sub 100 40       , dynamics 100@@ -131,6 +132,10 @@       , merging 50       , merging 100       , merging 200+      , shared 30+      , shared 100+      , shared 300+      , shared 1000       ]  pattern RunTestCaseFlag = "--run-test-case"
reflex.cabal view
@@ -1,6 +1,6 @@ cabal-version:      1.22 name:               reflex-version:            0.9.4.0+version:            0.9.4.1 license:            BSD3 license-file:       LICENSE maintainer:         ryan.trinkle@gmail.com@@ -446,6 +446,19 @@       , reflex       , ref-tf       , these++test-suite behaviorLeak+    type:             exitcode-stdio-1.0+    main-is:          behaviorLeak.hs+    hs-source-dirs:   test+    default-language: Haskell2010+    ghc-options:      -Wall -O2 -rtsopts "-with-rtsopts=-T"+    build-depends:+        base >= 4.11 && < 4.22+      , dependent-sum+      , reflex+      , ref-tf+      , primitive  benchmark spider-bench     type:             exitcode-stdio-1.0
src/Reflex/Spider/Internal.hs view
@@ -709,7 +709,7 @@     case val of       Just subscribed -> do         askParentsRef >>= mapM_ (\r -> liftIO $ modifyIORef' r (SomeBehaviorSubscribed (Some (BehaviorSubscribedPull subscribed)) :))-        askInvalidator >>= mapM_ (\wi -> liftIO $ modifyIORef' (pullSubscribedInvalidators subscribed) (wi:))+        askInvalidator >>= mapM_ (liftIO . addInvalidatorAmortized (pullSubscribedInvalidators subscribed))         liftIO $ touch $ pullSubscribedOwnInvalidator subscribed         return $ pullSubscribedValue subscribed       Nothing -> do@@ -718,7 +718,8 @@         parentsRef <- liftIO $ newIORef []         holdInits <- askBehaviorHoldInits         a <- liftIO $ runReaderIO (unBehaviorM $ pullCompute p) (Just (wi, parentsRef), holdInits)-        invsRef <- liftIO . newIORef . maybeToList =<< askInvalidator+        inv0 <- maybeToList <$> askInvalidator+        invsRef <- liftIO $ newIORef $ InvalidatorList (length inv0) invalidatorPruneThreshold inv0         parents <- liftIO $ readIORef parentsRef         let subscribed = PullSubscribed               { pullSubscribedValue = a@@ -737,11 +738,49 @@ readHoldTracked :: Hold x p -> BehaviorM x (PatchTarget p) readHoldTracked h = do   result <- liftIO $ readIORef $ holdValue h-  askInvalidator >>= mapM_ (\wi -> liftIO $ modifyIORef' (holdInvalidators h) (wi:))+  askInvalidator >>= mapM_ (liftIO . addInvalidatorAmortized (holdInvalidators h))   askParentsRef >>= mapM_ (\r -> liftIO $ modifyIORef' r (SomeBehaviorSubscribed (Some (BehaviorSubscribedHold h)) :))   liftIO $ touch h -- Otherwise, if this gets inlined enough, the hold's parent reference may get collected   return result +data InvalidatorList x = InvalidatorList+  { invalidatorListSize :: !Int+  , invalidatorListPruneAt :: !Int+  , invalidatorListElems :: ![Weak (Invalidator x)]+  }++emptyInvalidatorList :: InvalidatorList x+emptyInvalidatorList = InvalidatorList+  { invalidatorListSize = 0+  , invalidatorListPruneAt = invalidatorPruneThreshold+  , invalidatorListElems = []+  }++-- | Add invalidator weak ref to invalidator list, pruning finalized entries+-- once the list grows to its "prune at" size.+{-# INLINE addInvalidatorAmortized #-}+addInvalidatorAmortized :: IORef (InvalidatorList x) -> Weak (Invalidator x) -> IO ()+addInvalidatorAmortized ref weakInvalidator = do+  InvalidatorList listSize pruneAt weakInvalidators <- readIORef ref+  if listSize < pruneAt+    then writeIORef ref $! InvalidatorList (listSize + 1) pruneAt (weakInvalidator : weakInvalidators)+    else do+      (liveCount, liveInvalidators) <-+        foldrM+        (\weakInvalidator' (!liveCount, liveInvalidators) ->+            (\case Just _ -> (liveCount + 1, weakInvalidator' : liveInvalidators)+                   Nothing -> (liveCount, liveInvalidators))+            <$> deRefWeak weakInvalidator')+        (0, [])+        weakInvalidators+      writeIORef ref $! InvalidatorList+        (liveCount + 1)+        (max invalidatorPruneThreshold (2 * liveCount))+        (weakInvalidator : liveInvalidators)++invalidatorPruneThreshold :: Int+invalidatorPruneThreshold = 100+ {-# INLINABLE readBehaviorUntracked #-} readBehaviorUntracked :: Defer (SomeHoldInit x) m => Behavior x a -> m a readBehaviorUntracked b = do@@ -795,7 +834,7 @@ --type role Hold representational data Hold x p    = Hold { holdValue :: !(IORef (PatchTarget p))-          , holdInvalidators :: !(IORef [Weak (Invalidator x)])+          , holdInvalidators :: !(IORef (InvalidatorList x))           , holdEvent :: Event x p -- This must be lazy, or holds cannot be defined before their input Events           , holdParent :: !(IORef (Maybe (EventSubscription x))) -- Keeps its parent alive (will be undefined until the hold is initialized) --TODO: Probably shouldn't be an IORef #ifdef DEBUG_NODEIDS@@ -845,6 +884,7 @@               , eventEnvRootClears :: !(IORef [Some RootClear])               , eventEnvCurrentHeight :: !(IORef Height) -- Needed for Subscribe               , eventEnvResetCoincidences :: !(IORef [SomeResetCoincidence x]) -- Needed for Subscribe+              , eventEnvInvalidatedCoincidences :: !(IORef [SomeCoincidenceSubscribed x]) -- Coincidences whose height was set to 'invalidHeight' this frame and must be recalculated; populated by 'invalidateCoincidenceHeight'               , eventEnvDelayedMerges :: !(IORef (IntMap [EventM x ()]))               } @@ -947,7 +987,7 @@ hold :: (Patch p, Defer (SomeHoldInit x) m) => PatchTarget p -> Event x p -> m (Hold x p) hold v0 e = do   valRef <- liftIO $ newIORef v0-  invsRef <- liftIO $ newIORef []+  invsRef <- liftIO $ newIORef emptyInvalidatorList   parentRef <- liftIO $ newIORef Nothing #ifdef DEBUG_NODEIDS   nodeId <- liftIO newNodeId@@ -1012,7 +1052,7 @@ --type role PullSubscribed representational data PullSubscribed x a    = PullSubscribed { pullSubscribedValue :: !a-                    , pullSubscribedInvalidators :: !(IORef [Weak (Invalidator x)])+                    , pullSubscribedInvalidators :: !(IORef (InvalidatorList x))                     , pullSubscribedOwnInvalidator :: !(Invalidator x)                     , pullSubscribedParents :: ![SomeBehaviorSubscribed x] -- Need to keep parent behaviors alive, or they won't let us know when they're invalidated                     }@@ -1339,7 +1379,7 @@  newtype RootClear k = RootClear (IORef (DMap k Identity)) -data SomeAssignment x = forall a. SomeAssignment {-# UNPACK #-} !(IORef a) {-# UNPACK #-} !(IORef [Weak (Invalidator x)]) a+data SomeAssignment x = forall a. SomeAssignment {-# UNPACK #-} !(IORef a) {-# UNPACK #-} !(IORef (InvalidatorList x)) a  debugFinalize :: Bool debugFinalize = False@@ -1352,8 +1392,6 @@     then Just $ debugStrLn $ "finalizing: " ++ debugNote     else Nothing -type WeakList a = [Weak a]- type CanTrace x m = (HasSpiderTimeline x, MonadIO m)  @@ -1502,8 +1540,8 @@ propagateSubscriberHold :: forall x p. (HasSpiderTimeline x, Patch p) => Hold x p -> p -> EventM x () propagateSubscriberHold h a = do   {-# SCC "trace" #-} when debugPropagate $ traceM (Proxy :: Proxy x) $ liftIO $ do-    invalidators <- liftIO $ readIORef $ holdInvalidators h-    return $ "SubscriberHold" <> showNodeId h <> ": " ++ show (length invalidators)+    InvalidatorList n _ _ <- liftIO $ readIORef $ holdInvalidators h+    return $ "SubscriberHold" <> showNodeId h <> ": " ++ show n    v <- {-# SCC "read" #-} liftIO $ readIORef $ holdValue h   case {-# SCC "apply" #-} apply a v of@@ -1515,7 +1553,9 @@       iRef <- {-# SCC "iRef" #-} liftIO $ evaluate $ holdInvalidators h       defer $ {-# SCC "assignment" #-} SomeAssignment vRef iRef v' -data SomeResetCoincidence x = forall a. SomeResetCoincidence !(EventSubscription x) !(Maybe (CoincidenceSubscribed x a)) -- The CoincidenceSubscriber will be present only if heights need to be reset+-- | 'CoincidenceSubscribed' is present only when the coincidence raised its height while subscribing to the inner event.+data SomeResetCoincidence x = forall a. SomeResetCoincidence !(EventSubscription x) !(Maybe (CoincidenceSubscribed x a))+data SomeCoincidenceSubscribed x = forall a. SomeCoincidenceSubscribed !(CoincidenceSubscribed x a)  runBehaviorM :: BehaviorM x a -> Maybe (Weak (Invalidator x), IORef [SomeBehaviorSubscribed x]) -> IORef [SomeHoldInit x] -> IO a runBehaviorM a mwi holdInits = runReaderIO (unBehaviorM a) (mwi, holdInits)@@ -2257,8 +2297,6 @@               oldParents <- liftIO $ FastMutableIntMap.applyPatch parents newSubscriptions               liftIO $ for_ oldParents $ \oldParent -> do                 oldParentHeight <- getEventSubscribedHeight $ _eventSubscription_subscribed oldParent--                print ("updateMe", oldParentHeight)                 modifyIORef' heightBagRef $ heightBagRemove oldParentHeight               return $ IntMap.elems oldParents     let changeSubscriber = Subscriber@@ -2274,7 +2312,7 @@     -- If we don't do this, there are certain cases where mergeCheap will fail to properly retain     -- its subscription.     liftIO $ writeIORef changeSubdRef (changeSubscriber, changeSubscription)-  let unsubscribeAll = traverse_ unsubscribe =<< FastMutableIntMap.getFrozenAndClear parents+  let unsubscribeAll = traverse_ (unsubscribe . snd) =<< FastMutableIntMap.toList parents     return (EventSubscription unsubscribeAll subscribed, occ)@@ -2323,11 +2361,12 @@   toClearIntRef <- newIORef []   toClearRootRef <- newIORef []   coincidenceInfosRef <- newIORef []+  invalidatedCoincidencesRef <- newIORef []   delayedRef <- newIORef IntMap.empty-  return $ EventEnv toAssignRef holdInitRef dynInitRef mergeUpdateRef mergeInitRef toClearRef toClearIntRef toClearRootRef heightRef coincidenceInfosRef delayedRef+  return $ EventEnv toAssignRef holdInitRef dynInitRef mergeUpdateRef mergeInitRef toClearRef toClearIntRef toClearRootRef heightRef coincidenceInfosRef invalidatedCoincidencesRef delayedRef  clearEventEnv :: EventEnv x -> IO ()-clearEventEnv (EventEnv toAssignRef holdInitRef dynInitRef mergeUpdateRef mergeInitRef toClearRef toClearIntRef toClearRootRef heightRef coincidenceInfosRef delayedRef) = do+clearEventEnv (EventEnv toAssignRef holdInitRef dynInitRef mergeUpdateRef mergeInitRef toClearRef toClearIntRef toClearRootRef heightRef coincidenceInfosRef invalidatedCoincidencesRef delayedRef) = do   writeIORef toAssignRef []   writeIORef holdInitRef []   writeIORef dynInitRef []@@ -2338,6 +2377,7 @@   writeIORef toClearIntRef []   writeIORef toClearRootRef []   writeIORef coincidenceInfosRef []+  writeIORef invalidatedCoincidencesRef []   writeIORef delayedRef IntMap.empty  -- | Run an event action outside of a frame@@ -2403,10 +2443,12 @@       writeIORef (switchSubscribedHeight subscribed) $! invalidHeight       WeakBag.traverse_ (switchSubscribedSubscribers subscribed) $ invalidateSubscriberHeight myHeight   mapM_ _someMergeUpdate_invalidateHeight mergeUpdates --TODO: In addition to when the patch is completely empty, we should also not run this if it has some Nothing values, but none of them have actually had any effect; potentially, we could even check for Just values with no effect (e.g. by comparing their IORefs and ignoring them if they are unchanged); actually, we could just check if the new height is different-  forM_ coincidenceInfos $ \(SomeResetCoincidence subscription mcs) -> do+  forM_ coincidenceInfos $ \(SomeResetCoincidence subscription mInvalidate) -> do     unsubscribe subscription-    mapM_ invalidateCoincidenceHeight mcs-  forM_ coincidenceInfos $ \(SomeResetCoincidence _ mcs) -> mapM_ recalculateCoincidenceHeight mcs+    mapM_ invalidateCoincidenceHeight mInvalidate+  invalidatedCoincidences <- readIORef $ eventEnvInvalidatedCoincidences env+  writeIORef (eventEnvInvalidatedCoincidences env) []+  forM_ invalidatedCoincidences $ \(SomeCoincidenceSubscribed subscribed) -> recalculateCoincidenceHeight subscribed   mapM_ _someMergeUpdate_recalculateHeight mergeUpdates   forM_ toReconnect $ \(SomeSwitchSubscribed subscribed) -> do     height <- calculateSwitchHeight subscribed@@ -2437,11 +2479,13 @@   then invalidHeight   else Height $ succ a -invalidateCoincidenceHeight :: CoincidenceSubscribed x a -> IO ()+invalidateCoincidenceHeight :: forall x a. HasSpiderTimeline x => CoincidenceSubscribed x a -> IO () invalidateCoincidenceHeight subscribed = do   oldHeight <- readIORef $ coincidenceSubscribedHeight subscribed   when (oldHeight /= invalidHeight) $ do     writeIORef (coincidenceSubscribedHeight subscribed) $! invalidHeight+    let env = _spiderTimeline_eventEnv (unSTE (spiderTimeline :: SpiderTimelineEnv x))+    modifyIORef' (eventEnvInvalidatedCoincidences env) (SomeCoincidenceSubscribed subscribed :)     WeakBag.traverse_ (coincidenceSubscribedSubscribers subscribed) $ invalidateSubscriberHeight oldHeight  updateSwitchHeight :: Height -> SwitchSubscribed x a -> IO ()@@ -2472,8 +2516,8 @@  data SomeSwitchSubscribed x = forall a. SomeSwitchSubscribed {-# NOUNPACK #-} (SwitchSubscribed x a) -invalidate :: IORef [SomeSwitchSubscribed x] -> WeakList (Invalidator x) -> IO (WeakList (Invalidator x))-invalidate toReconnectRef wis = do+invalidate :: IORef [SomeSwitchSubscribed x] -> InvalidatorList x -> IO (InvalidatorList x)+invalidate toReconnectRef (InvalidatorList _ _ wis) = do   forM_ wis $ \wi -> do     mi <- deRefWeak wi     case mi of@@ -2492,7 +2536,7 @@           InvalidatorSwitch subscribed -> do             traceInvalidate $ "invalidate: Switch" <> showNodeId subscribed             modifyIORef' toReconnectRef (SomeSwitchSubscribed subscribed :)-  return [] -- Since we always finalize everything, always return an empty list --TODO: There are some things that will need to be re-subscribed every time; we should try to avoid finalizing them+  return emptyInvalidatorList -- Since we always finalize everything, always return an empty list --TODO: There are some things that will need to be re-subscribed every time; we should try to avoid finalizing them  -------------------------------------------------------------------------------- -- Reflex integration
test/Reflex/Bench/Focused.hs view
@@ -8,6 +8,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE TypeApplications #-}  module Reflex.Bench.Focused where @@ -376,6 +377,12 @@       counters = countMany =<< sparse  ---+-- Stress-test sampling a single behavior through a large, shared set of pulls,+-- exercising the invalidator-list pruning path.+sharedInvalidators :: Word -> [(String, TestCase)]+sharedInvalidators width =+  [ testB "sumPulls" $ do+      b <- current <$> (count @_ @_ @Int =<< events 10)+      let ps = [ (+ fromIntegral i) <$> b | i <- [1 .. width] ]+      return $ pull $ sum <$> traverse sample ps+  ]
test/Reflex/Test/Micro.hs view
@@ -20,7 +20,9 @@ import Data.Foldable import Data.Functor.Misc import qualified Data.Map as Map+import qualified Data.IntMap as IntMap import Data.Monoid+import Reflex.Patch.MapWithMove (moveMapKey, insertMapKey, deleteMapKey)  import Prelude @@ -214,6 +216,41 @@       e <- events1       return $ coincidence (deep e <$ e) +  , testE "coincidence-incremental-height" $ do+      tick <- ticks+      e2 <- mergeMapIncremental+              <$> holdIncremental mempty ((mempty :: PatchMap Int (Event t ())) <$ tick)+      pure (leftmost [ void $ coincidence (e2 <$ leftmost [tick, tick])+                     , tick])++  , testE "coincidence-int-incremental-height" $ do+      tick <- ticks+      h <- mergeIntIncremental+             <$> holdIncremental+                   (IntMap.singleton 1 (void tick))+                   (PatchIntMap (IntMap.singleton 1 (Just (void tick))) <$ tick)+      pure (leftmost [ void $ coincidence (void h <$ leftmost [tick, tick])+                     , tick])++  , testE "coincidence-switch-reconnect-height" $ do+      tick <- ticks+      flag <- foldDyn (\_ b -> not b) False tick+      let hi = leftmost [tick, tick]+      pure (leftmost [void (coincidence (switch (current $ (\b -> if b then hi else tick) <$> flag) <$ hi)), tick])++  , testE "mergeWithMove-height" $ do+      tick <- ticks+      let lo = tick+          hi = leftmost [tick, tick]+      patches <- plan+        [ (1, insertMapKey 1 hi)+        , (2, deleteMapKey 0)+        , (3, insertMapKey 0 lo)+        , (4, moveMapKey 1 2)+        , (5, deleteMapKey 2) ]+      mergeMapIncrementalWithMove+        <$> holdIncremental (Map.singleton (0 :: Int) lo) patches+   , testB "holdWhileFiring" $ do       e <- events1       eo <- headE e@@ -336,6 +373,11 @@     events1 = plan [(1, "a"), (2, "b"), (5, "c"), (7, "d"), (8, "e")]     events2 = plan [(1, "e"), (3, "d"), (4, "c"), (6, "b"), (7, "a")]     events3 = liftA2 mappend events1 events2++    -- Unit-valued event occurrences on consecutive frames, for the height/teardown+    -- regression tests below (which need occurrences but not their values).+    ticks :: TestPlan t m => m (Event t ())+    ticks = plan [(1, ()), (2, ()), (3, ()), (4, ()), (5, ()), (6, ())]      eithers ::  TestPlan t m => m (Event t (Either String String))     eithers = plan [(1, Left "e"), (3, Left "d"), (4, Right "c"), (6, Right "b"), (7, Left "a")]
+ test/behaviorLeak.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeFamilies #-}++-- | Test whether Applicative combination of Behaviors leaks memory when one of+-- the Behaviors' source events never occurs.+-- (https://github.com/reflex-frp/reflex/issues/490)++import Control.Monad+import Control.Monad.IO.Class+import Control.Monad.Primitive (touch)+import Control.Monad.Ref+import Data.Dependent.Sum+import Data.Functor.Identity+import Data.Maybe (fromJust)+import GHC.Stats+import Reflex+import Reflex.Host.Class+import System.Exit+import System.Mem (performMajorGC)+import Text.Printf++warmupTicks :: Int+warmupTicks = 200000+windowTicks :: Int+windowTicks = 200000+samplesPerWindow :: Int+samplesPerWindow = 20+ticksBetweenWindows :: Int+ticksBetweenWindows = 9 * windowTicks+allowedGrowthBytes :: Integer+allowedGrowthBytes = 512 * 1024++testCase :: (Reflex t, MonadHold t m) => Event t b -> m (Behavior t (Int, Int))+testCase tickE = do+  a <- hold (0 :: Int) (0 <$ tickE)+  c <- hold (0 :: Int) never+  pure $ (,) <$> a <*> c++main :: IO ()+main = do+  enabled <- getRTSStatsEnabled+  unless enabled $ do+    putStrLn "Failed: RTS stats not enabled (run with +RTS -T)"+    exitFailure++  runSpiderHost $ do+    (tickE, tickTriggerRef) <- newEventWithTriggerRef+    b <- runHostFrame $ testCase tickE+    trigger <- fromJust <$> readRef tickTriggerRef+    let fireOnce = void $ fireEventsAndRead [trigger :=> Identity ()] $ do+          v <- sample b+          v `seq` pure ()+        liveBytes = liftIO $ do+          performMajorGC+          fromIntegral . gcdetails_live_bytes . gc <$> getRTSStats :: IO Integer+        measureWindow = do+          let chunk = windowTicks `div` samplesPerWindow+          samples <- replicateM samplesPerWindow $ do+            replicateM_ chunk fireOnce+            liveBytes+          pure $ sum samples `div` fromIntegral samplesPerWindow++    replicateM_ warmupTicks fireOnce+    firstWindowAvg <- measureWindow+    replicateM_ ticksBetweenWindows fireOnce+    secondWindowAvg <- measureWindow+    liftIO $ touch b+    liftIO $ do+      let growth = secondWindowAvg - firstWindowAvg+      if growth <= allowedGrowthBytes+        then putStrLn "Succeeded"+        else do+          printf "Failed: Behavior Applicative space leak\n"+          printf "    first-window avg live bytes:  %d\n" firstWindowAvg+          printf "    second-window avg live bytes: %d\n" secondWindowAvg+          printf "    growth over %d intervening ticks: %d bytes (allowed %d)\n"+            ticksBetweenWindows growth allowedGrowthBytes+          exitFailure