Ticket #3288: reactive.patch

File reactive.patch, 1.6 KB (added by Baughn, 3 years ago)
Line 
1Fri Jun  5 12:48:26 CEST 2009  svein.ove@aas.no
2  * Crash-causing nonchange
3
4New patches:
5
6[Crash-causing nonchange
7svein.ove@aas.no**20090605104826
8 Ignore-this: 1303b156448862f623f3d80dadaa7dfb
9] {
10hunk ./src/FRP/Reactive/PrimReactive.hs 93
11 import Control.Instances () -- Monoid (IO ())
12 
13 
14-import Data.Unamb (unamb, assuming)
15+import Data.Unamb (unamb, assuming, unambs)
16 import Data.Unamb (race)  -- eliminate
17 
18 -- import Data.Max
19hunk ./src/FRP/Reactive/PrimReactive.hs 186
20 -- On the other hand, they patch a massive space leak in filterE.  Perhaps
21 -- there's an unamb solution.
22 
23-u `merge` v =
24-  assuming (isNeverF u) v `unamb`
25-  assuming (isNeverF v) u `unamb`
26-  (inFutR (`merge` v) <$> u) `mappend` (inFutR (u `merge`) <$> v)
27+u `merge` v = unambs
28+  [assuming (isNeverF u) v,
29+   assuming (isNeverF v) u,
30+   (inFutR (`merge` v) <$> u) `mappend` (inFutR (u `merge`) <$> v)]
31 
32 -- TODO: redefine via parIdentity from Data.Unamb
33 
34hunk ./src/FRP/Reactive/PrimReactive.hs 193
35--- u `merge` v | isNever u = v
36---             | isNever v = u
37+-- u `merge` v | isNeverF u = v
38+--             | isNeverF v = u
39+--             | otherwise = (inFutR (`merge` v) <$> u) `mappend` (inFutR (u `merge`) <$> v)
40 
41 -- Future (Max MaxBound,_) `merge` v = v
42 -- u `merge` Future (Max MaxBound,_) = u
43}
44
45Context:
46
47[TAG 0.11
48Conal Elliott <conal@conal.net>**20090529234922]
49[0.11
50Conal Elliott <conal@conal.net>**20090529234842]
51[AGPLv3
52Conal Elliott <conal@conal.net>**20090529234750]
53[updated for QuickCheck 2
54Conal Elliott <conal@conal.net>**20090528181717]
55[TAG 0.10.7
56Conal Elliott <conal@conal.net>**20090521234303]
57Patch bundle hash:
58b1616b41e9b395a20a5e2197bdbee75bbcd26d7c