@@ -1,54 +1,75 @@
1−{-# LANGUAGE CPP, ExistentialQuantification, GADTs, ScopedTypeVariables, TypeFamilies, FlexibleInstances, MultiParamTypeClasses, GeneralizedNewtypeDeriving, RankNTypes, BangPatterns, UndecidableInstances, EmptyDataDecls, RecursiveDo, RoleAnnotations, LambdaCase, TypeOperators, FlexibleContexts, ConstraintKinds, MagicHash, UnboxedTuples, FunctionalDependencies, MultiWayIf #-}
1+{-# LANGUAGE BangPatterns #-}
3+{-# LANGUAGE ConstraintKinds #-}
4+{-# LANGUAGE EmptyDataDecls #-}
5+{-# LANGUAGE ExistentialQuantification #-}
6+{-# LANGUAGE FlexibleContexts #-}
7+{-# LANGUAGE FlexibleInstances #-}
8+{-# LANGUAGE FunctionalDependencies #-}
10+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
11+{-# LANGUAGE LambdaCase #-}
12+{-# LANGUAGE MagicHash #-}
13+{-# LANGUAGE MultiParamTypeClasses #-}
14+{-# LANGUAGE MultiWayIf #-}
15+{-# LANGUAGE RankNTypes #-}
16+{-# LANGUAGE RecursiveDo #-}
17+{-# LANGUAGE RoleAnnotations #-}
18+{-# LANGUAGE ScopedTypeVariables #-}
19+{-# LANGUAGE TypeFamilies #-}
20+{-# LANGUAGE TypeOperators #-}
21+{-# LANGUAGE UnboxedTuples #-}
22+{-# LANGUAGE UndecidableInstances #-}
2module Reflex.Spider.Internal (Spider, SpiderEnv (..), Global, SpiderHost, runSpiderHost, SpiderEventHandle (..), showSubscriberType, showEventType, ComputeM (..), MergeSubscribedParent (..), HasSpiderEnv (..), newSpiderEnv, SpiderPullM (..), SpiderPushM (..), ReadPhase (..)) where
23module Reflex.Spider.Internal (Spider, SpiderEnv (..), Global, SpiderHost, runSpiderHost, SpiderEventHandle (..), showSubscriberType, showEventType, ComputeM (..), MergeSubscribedParent (..), HasSpiderEnv (..), newSpiderEnv, SpiderPullM (..), SpiderPushM (..), ReadPhase (..)) where
4−import qualified Reflex.Class as R
5−import qualified Reflex.Host.Class as R
6import Data.WeakBag (WeakBag, WeakBagTicket)
25import Data.WeakBag (WeakBag, WeakBagTicket)
7import qualified Data.WeakBag as WeakBag
26import qualified Data.WeakBag as WeakBag
27+import qualified Reflex.Class as R
28+import qualified Reflex.Host.Class as R
9−import Data.List
30+import Control.Applicative
10−import Data.IORef
31+import Control.Concurrent
11−import System.Mem.Weak
32+import Control.Exception
13−import Data.Traversable
14−import Control.Monad hiding (mapM, mapM_, forM_, forM, sequence)
33+import Control.Monad hiding (forM, forM_, mapM, mapM_, sequence)
15−import Control.Monad.Identity hiding (mapM, mapM_, forM_, forM, sequence)
34+import Control.Monad.Exception
35+import Control.Monad.Identity hiding (forM, forM_, mapM, mapM_, sequence)
16−import Control.Monad.Reader hiding (mapM, mapM_, forM_, forM, sequence)
36+import Control.Monad.Reader hiding (forM, forM_, mapM, mapM_, sequence)
17−import Control.Monad.State hiding (mapM, mapM_, forM_, forM, sequence)
37+import Control.Monad.Ref
18−import Control.Applicative -- Unconditionally import, because otherwise it breaks on GHC 7.10.1RC2
38+import Control.Monad.State hiding (forM, forM_, mapM, mapM_, sequence)
19−import Data.Some (Some)
20−import qualified Data.Some as Some
39+import Data.Align
21import Data.Dependent.Map (DMap, DSum (..))
40import Data.Dependent.Map (DMap, DSum (..))
22import qualified Data.Dependent.Map as DMap
41import qualified Data.Dependent.Map as DMap
44+import Data.Functor.Compose
23import Data.GADT.Compare
45import Data.GADT.Compare
25import Data.IntMap.Strict (IntMap)
46import Data.IntMap.Strict (IntMap)
26import qualified Data.IntMap.Strict as IntMap
47import qualified Data.IntMap.Strict as IntMap
27−import Control.Monad.Ref
48+import Data.IORef
28−import Control.Monad.Exception
49+import Data.List
29import Data.Monoid ((<>))
51import Data.Monoid ((<>))
30−import Data.Functor.Compose
52+import Data.Some (Some)
31−import Control.Exception
53+import qualified Data.Some as Some
32−import Control.Concurrent
34import Data.These
54import Data.These
35−import Data.Align
55+import Data.Traversable
56+import System.Mem.Weak
37−import GHC.IORef (IORef (..))
38import GHC.Base (IO (..))
58import GHC.Base (IO (..))
59+import GHC.IORef (IORef (..))
39import GHC.Stack
60import GHC.Stack
62+import Control.Monad.Primitive
41import System.IO.Unsafe
64import System.IO.Unsafe
42import Unsafe.Coerce
65import Unsafe.Coerce
44−import Control.Monad.Primitive
46−import qualified Data.List.NonEmpty as NonEmpty
47import Data.List.NonEmpty (NonEmpty (..), nonEmpty)
67import Data.List.NonEmpty (NonEmpty (..), nonEmpty)
68+import qualified Data.List.NonEmpty as NonEmpty
48−import Data.Tree (Tree (..), Forest, drawForest)
69+import Data.Tree (Forest, Tree (..), drawForest)
50-- Note: must come last to silence warnings due to AMP on GHC < 7.10
71-- Note: must come last to silence warnings due to AMP on GHC < 7.10
51−import Prelude hiding (mapM, mapM_, any, sequence, concat)
72+import Prelude hiding (any, concat, mapM, mapM_, sequence)
53type SubscriberList a = WeakBag (Subscriber a)
74type SubscriberList a = WeakBag (Subscriber a)
54type SubscriberListTicket a = WeakBagTicket (Subscriber a)
75type SubscriberListTicket a = WeakBagTicket (Subscriber a)