1 |
commit: 537a81be2b06a3637494c8c01726dbfcc7dfceb0 |
2 |
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Oct 13 06:49:54 2020 +0000 |
4 |
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Oct 13 06:50:17 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=537a81be |
7 |
|
8 |
dev-haskell/edisoncore: move large patch out of files/ |
9 |
|
10 |
Reported-by: Joonas Niilola |
11 |
Closes: https://bugs.gentoo.org/748165 |
12 |
Package-Manager: Portage-3.0.8, Repoman-3.0.1 |
13 |
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org> |
14 |
|
15 |
dev-haskell/edisoncore/Manifest | 1 + |
16 |
.../edisoncore/edisoncore-1.3.2.1-r1.ebuild | 9 +- |
17 |
.../files/edisoncore-1.3.2.1-ghc-8.8.patch | 1268 -------------------- |
18 |
3 files changed, 7 insertions(+), 1271 deletions(-) |
19 |
|
20 |
diff --git a/dev-haskell/edisoncore/Manifest b/dev-haskell/edisoncore/Manifest |
21 |
index 537ebb856cf..a583e0ce2d1 100644 |
22 |
--- a/dev-haskell/edisoncore/Manifest |
23 |
+++ b/dev-haskell/edisoncore/Manifest |
24 |
@@ -1 +1,2 @@ |
25 |
DIST EdisonCore-1.3.2.1.tar.gz 82522 BLAKE2B 758e02e462d4f86b95a66792ce26dda6d1a00506a8071f3716f9a7484fc992af9e1709a9bbb958ee71175b2c51c4574493a35b6eaa7a1bfab415ed4ce7e2a8b4 SHA512 6812b04edb1abdfc2486d66bb86d6370b76667de1603ab421d92a6ecc17a25014e0ab97f53dd4f1e75cacf32c31611e8f2dd6c740c840e349c3c762ae00df65f |
26 |
+DIST edisoncore-1.3.2.1-ghc-8.8.patch 57508 BLAKE2B 0651b4be26461cfe2bd3a57742ee138863ec6b47940065754642bd6320d814dfc8cb63bd4b37131bb3135752d03cdab335c2f1ebf5ccd87bd9219bd39d43c3e3 SHA512 9e5b60ec6023f2be4af4ecae0fcf00f8b6f758ea6bbd21c3dea4d3dd9ff128736e743e9a020a445e27e4ff1fb6c43061427f042353fe84528f2d715b5784302b |
27 |
|
28 |
diff --git a/dev-haskell/edisoncore/edisoncore-1.3.2.1-r1.ebuild b/dev-haskell/edisoncore/edisoncore-1.3.2.1-r1.ebuild |
29 |
index 87a59c476f7..c2550f9bba9 100644 |
30 |
--- a/dev-haskell/edisoncore/edisoncore-1.3.2.1-r1.ebuild |
31 |
+++ b/dev-haskell/edisoncore/edisoncore-1.3.2.1-r1.ebuild |
32 |
@@ -1,4 +1,4 @@ |
33 |
-# Copyright 1999-2019 Gentoo Authors |
34 |
+# Copyright 1999-2020 Gentoo Authors |
35 |
# Distributed under the terms of the GNU General Public License v2 |
36 |
|
37 |
EAPI=7 |
38 |
@@ -13,7 +13,10 @@ MY_P="${MY_PN}-${PV}" |
39 |
|
40 |
DESCRIPTION="A library of efficent, purely-functional data structures (Core Implementations)" |
41 |
HOMEPAGE="http://rwd.rdockins.name/edison/home/" |
42 |
-SRC_URI="https://hackage.haskell.org/package/${MY_P}/${MY_P}.tar.gz" |
43 |
+SRC_URI=" |
44 |
+ https://hackage.haskell.org/package/${MY_P}/${MY_P}.tar.gz |
45 |
+ https://dev.gentoo.org/~slyfox/distfiles/edisoncore-1.3.2.1-ghc-8.8.patch |
46 |
+" |
47 |
|
48 |
LICENSE="MIT" |
49 |
SLOT="0/${PV}" |
50 |
@@ -32,4 +35,4 @@ DEPEND="${RDEPEND} |
51 |
|
52 |
S="${WORKDIR}/${MY_P}" |
53 |
|
54 |
-PATCHES=( "${FILESDIR}/${PN}-1.3.2.1-ghc-8.8.patch" ) |
55 |
+PATCHES=( "${DISTDIR}/${PN}-1.3.2.1-ghc-8.8.patch" ) |
56 |
|
57 |
diff --git a/dev-haskell/edisoncore/files/edisoncore-1.3.2.1-ghc-8.8.patch b/dev-haskell/edisoncore/files/edisoncore-1.3.2.1-ghc-8.8.patch |
58 |
deleted file mode 100644 |
59 |
index 5589433edc6..00000000000 |
60 |
--- a/dev-haskell/edisoncore/files/edisoncore-1.3.2.1-ghc-8.8.patch |
61 |
+++ /dev/null |
62 |
@@ -1,1268 +0,0 @@ |
63 |
-diff --git a/EdisonCore.cabal b/EdisonCore.cabal |
64 |
-index 901cd83..ad1af00 100644 |
65 |
---- a/EdisonCore.cabal |
66 |
-+++ b/EdisonCore.cabal |
67 |
-@@ -62,8 +62,10 @@ Library |
68 |
- array |
69 |
- |
70 |
- if impl(ghc < 8.0) |
71 |
-- -- Provide/emulate Data.Semigroups` API for pre-GHC-8 |
72 |
-- Build-Depends: semigroups == 0.18.* |
73 |
-+ Build-Depends: |
74 |
-+ fail, |
75 |
-+ -- Provide/emulate Data.Semigroups` API for pre-GHC-8 |
76 |
-+ semigroups == 0.18.* |
77 |
- |
78 |
- Default-Language: Haskell2010 |
79 |
- Default-Extensions: |
80 |
-diff --git a/src/Data/Edison/Assoc/AssocList.hs b/src/Data/Edison/Assoc/AssocList.hs |
81 |
-index c577492..15d9884 100644 |
82 |
---- a/src/Data/Edison/Assoc/AssocList.hs |
83 |
-+++ b/src/Data/Edison/Assoc/AssocList.hs |
84 |
-@@ -58,8 +58,9 @@ import Prelude hiding (null,map,lookup,foldr,foldl,foldr1,foldl1,filter) |
85 |
- import qualified Prelude |
86 |
- import Data.Monoid |
87 |
- import Data.Semigroup as SG |
88 |
--import Control.Monad.Identity |
89 |
-+import qualified Control.Monad.Fail as Fail |
90 |
- import qualified Data.Edison.Assoc as A |
91 |
-+import Data.Edison.Prelude ( runFail_ ) |
92 |
- import qualified Data.Edison.Seq as S |
93 |
- import qualified Data.Edison.Seq.BinaryRandList as RL |
94 |
- import Data.Edison.Assoc.Defaults |
95 |
-@@ -82,10 +83,10 @@ size :: Eq k => FM k a -> Int |
96 |
- member :: Eq k => k -> FM k a -> Bool |
97 |
- count :: Eq k => k -> FM k a -> Int |
98 |
- lookup :: Eq k => k -> FM k a -> a |
99 |
--lookupM :: (Eq k, Monad rm) => k -> FM k a -> rm a |
100 |
-+lookupM :: (Eq k, Fail.MonadFail rm) => k -> FM k a -> rm a |
101 |
- lookupAll :: (Eq k,S.Sequence seq) => k -> FM k a -> seq a |
102 |
- lookupAndDelete :: Eq k => k -> FM k a -> (a,FM k a) |
103 |
--lookupAndDeleteM :: (Eq k,Monad rm) => k -> FM k a -> rm (a,FM k a) |
104 |
-+lookupAndDeleteM :: (Eq k, Fail.MonadFail rm) => k -> FM k a -> rm (a,FM k a) |
105 |
- lookupAndDeleteAll :: (Eq k,S.Sequence seq) => k -> FM k a -> (seq a,FM k a) |
106 |
- lookupWithDefault :: Eq k => a -> k -> FM k a -> a |
107 |
- adjust :: Eq k => (a -> a) -> k -> FM k a -> FM k a |
108 |
-@@ -143,11 +144,11 @@ unionSeqWithKey :: (Eq k,S.Sequence seq) => |
109 |
- (k -> a -> a -> a) -> seq (FM k a) -> FM k a |
110 |
- intersectionWithKey :: Eq k => (k -> a -> b -> c) -> FM k a -> FM k b -> FM k c |
111 |
- |
112 |
--minView :: (Ord k,Monad m) => FM k a -> m (a,FM k a) |
113 |
-+minView :: (Ord k, Fail.MonadFail m) => FM k a -> m (a,FM k a) |
114 |
- minElem :: Ord k => FM k a -> a |
115 |
- deleteMin :: Ord k => FM k a -> FM k a |
116 |
- unsafeInsertMin :: Ord k => k -> a -> FM k a -> FM k a |
117 |
--maxView :: (Ord k,Monad m) => FM k a -> m (a,FM k a) |
118 |
-+maxView :: (Ord k, Fail.MonadFail m) => FM k a -> m (a,FM k a) |
119 |
- maxElem :: Ord k => FM k a -> a |
120 |
- deleteMax :: Ord k => FM k a -> FM k a |
121 |
- unsafeInsertMax :: Ord k => k -> a -> FM k a -> FM k a |
122 |
-@@ -169,9 +170,9 @@ partitionLT_GE :: Ord k => k -> FM k a -> (FM k a,FM k a) |
123 |
- partitionLE_GT :: Ord k => k -> FM k a -> (FM k a,FM k a) |
124 |
- partitionLT_GT :: Ord k => k -> FM k a -> (FM k a,FM k a) |
125 |
- |
126 |
--minViewWithKey :: (Ord k,Monad m) => FM k a -> m ((k, a), FM k a) |
127 |
-+minViewWithKey :: (Ord k, Fail.MonadFail m) => FM k a -> m ((k, a), FM k a) |
128 |
- minElemWithKey :: Ord k => FM k a -> (k,a) |
129 |
--maxViewWithKey :: (Ord k,Monad m) => FM k a -> m ((k, a), FM k a) |
130 |
-+maxViewWithKey :: (Ord k, Fail.MonadFail m) => FM k a -> m ((k, a), FM k a) |
131 |
- maxElemWithKey :: Ord k => FM k a -> (k,a) |
132 |
- foldrWithKey :: Ord k => (k -> a -> b -> b) -> b -> FM k a -> b |
133 |
- foldlWithKey :: Ord k => (b -> k -> a -> b) -> b -> FM k a -> b |
134 |
-@@ -309,7 +310,7 @@ count _ E = 0 |
135 |
- count key (I k _ m) | key == k = 1 |
136 |
- | otherwise = count key m |
137 |
- |
138 |
--lookup key m = runIdentity (lookupM key m) |
139 |
-+lookup key m = runFail_ (lookupM key m) |
140 |
- |
141 |
- lookupM _ E = fail "AssocList.lookup: lookup failed" |
142 |
- lookupM key (I k x m) | key == k = return x |
143 |
-@@ -319,7 +320,7 @@ lookupAll _ E = S.empty |
144 |
- lookupAll key (I k x m) | key == k = S.singleton x |
145 |
- | otherwise = lookupAll key m |
146 |
- |
147 |
--lookupAndDelete key m = runIdentity (lookupAndDeleteM key m) |
148 |
-+lookupAndDelete key m = runFail_ (lookupAndDeleteM key m) |
149 |
- |
150 |
- lookupAndDeleteM _ E = fail "AssocList.lookupAndDeleteM: lookup failed" |
151 |
- lookupAndDeleteM key (I k x m) |
152 |
-diff --git a/src/Data/Edison/Assoc/Defaults.hs b/src/Data/Edison/Assoc/Defaults.hs |
153 |
-index a9ef520..8e2b37d 100644 |
154 |
---- a/src/Data/Edison/Assoc/Defaults.hs |
155 |
-+++ b/src/Data/Edison/Assoc/Defaults.hs |
156 |
-@@ -15,6 +15,8 @@ module Data.Edison.Assoc.Defaults where |
157 |
- |
158 |
- import Prelude hiding (null,map,lookup,foldr,foldl,foldr1,foldl1,filter) |
159 |
- |
160 |
-+import qualified Control.Monad.Fail as Fail |
161 |
-+ |
162 |
- import Data.Edison.Assoc |
163 |
- import qualified Data.Edison.Seq as S |
164 |
- import qualified Data.Edison.Seq.ListSeq as L |
165 |
-@@ -190,7 +192,7 @@ lookupAndDeleteDefault k m = |
166 |
- Nothing -> error (instanceName m ++ ".lookupAndDelete: lookup failed") |
167 |
- Just x -> (x, delete k m) |
168 |
- |
169 |
--lookupAndDeleteMDefault :: (Monad rm, AssocX m k) => k -> m a -> rm (a, m a) |
170 |
-+lookupAndDeleteMDefault :: (Fail.MonadFail rm, AssocX m k) => k -> m a -> rm (a, m a) |
171 |
- lookupAndDeleteMDefault k m = |
172 |
- case lookupM k m of |
173 |
- Nothing -> fail (instanceName m ++ ".lookupAndDelete: lookup failed") |
174 |
-diff --git a/src/Data/Edison/Assoc/PatriciaLoMap.hs b/src/Data/Edison/Assoc/PatriciaLoMap.hs |
175 |
-index 3073f83..43c2d85 100644 |
176 |
---- a/src/Data/Edison/Assoc/PatriciaLoMap.hs |
177 |
-+++ b/src/Data/Edison/Assoc/PatriciaLoMap.hs |
178 |
-@@ -55,10 +55,11 @@ module Data.Edison.Assoc.PatriciaLoMap ( |
179 |
- |
180 |
- import Prelude hiding (null,map,lookup,foldr,foldl,foldr1,foldl1,filter) |
181 |
- import qualified Prelude |
182 |
--import Control.Monad.Identity (runIdentity) |
183 |
-+import qualified Control.Monad.Fail as Fail |
184 |
- import Data.Monoid |
185 |
- import Data.Semigroup as SG |
186 |
- import qualified Data.Edison.Assoc as A |
187 |
-+import Data.Edison.Prelude ( runFail_ ) |
188 |
- import qualified Data.Edison.Seq as S |
189 |
- import qualified Data.Edison.Seq.ListSeq as L |
190 |
- import Data.Edison.Assoc.Defaults |
191 |
-@@ -210,9 +211,9 @@ member k (L j _) = (j == k) |
192 |
- member k (B _ m t0 t1) = if zeroBit k m then member k t0 else member k t1 |
193 |
- |
194 |
- lookup :: Int -> FM a -> a |
195 |
--lookup k m = runIdentity (lookupM k m) |
196 |
-+lookup k m = runFail_ (lookupM k m) |
197 |
- |
198 |
--lookupM :: (Monad rm) => Int -> FM a -> rm a |
199 |
-+lookupM :: (Fail.MonadFail rm) => Int -> FM a -> rm a |
200 |
- lookupM _ E = fail "PatriciaLoMap.lookup: lookup failed" |
201 |
- lookupM k (L j x) |
202 |
- | j == k = return x |
203 |
-@@ -233,7 +234,7 @@ lookupAndDelete = doLookupAndDelete |
204 |
- (error "PatriciaLoMap.lookupAndDelete: lookup failed") |
205 |
- (,) |
206 |
- |
207 |
--lookupAndDeleteM :: Monad m => Int -> FM a -> m (a, FM a) |
208 |
-+lookupAndDeleteM :: Fail.MonadFail m => Int -> FM a -> m (a, FM a) |
209 |
- lookupAndDeleteM = doLookupAndDelete |
210 |
- (fail "PatriciaLoMap.lookupAndDelete: lookup failed") |
211 |
- (\x m -> return (x,m)) |
212 |
-@@ -583,25 +584,25 @@ ordListFM_rev (B _ _ t0 t1) = merge (ordListFM_rev t0) (ordListFM_rev t1) |
213 |
- GT -> x : merge xs (y:ys) |
214 |
- EQ -> error "PatriciaLoMap: bug in ordListFM_rev" |
215 |
- |
216 |
--minView :: Monad m => FM a -> m (a, FM a) |
217 |
-+minView :: Fail.MonadFail m => FM a -> m (a, FM a) |
218 |
- minView fm = |
219 |
- case ordListFM fm of |
220 |
- [] -> fail $ moduleName++".minView: empty map" |
221 |
- ((k,x):_) -> return (x,delete k fm) |
222 |
- |
223 |
--minViewWithKey :: Monad m => FM a -> m ((Int, a), FM a) |
224 |
-+minViewWithKey :: Fail.MonadFail m => FM a -> m ((Int, a), FM a) |
225 |
- minViewWithKey fm = |
226 |
- case ordListFM fm of |
227 |
- [] -> fail $ moduleName++".minViewWithKey: empty map" |
228 |
- ((k,x):_) -> return ((k,x),delete k fm) |
229 |
- |
230 |
--maxView :: Monad m => FM a -> m (a, FM a) |
231 |
-+maxView :: Fail.MonadFail m => FM a -> m (a, FM a) |
232 |
- maxView fm = |
233 |
- case ordListFM_rev fm of |
234 |
- [] -> fail $ moduleName++".maxView: empty map" |
235 |
- ((k,x):_) -> return (x,delete k fm) |
236 |
- |
237 |
--maxViewWithKey :: Monad m => FM a -> m ((Int, a), FM a) |
238 |
-+maxViewWithKey :: Fail.MonadFail m => FM a -> m ((Int, a), FM a) |
239 |
- maxViewWithKey fm = |
240 |
- case ordListFM_rev fm of |
241 |
- [] -> fail $ moduleName++".maxViewWithKey: empty map" |
242 |
-diff --git a/src/Data/Edison/Assoc/StandardMap.hs b/src/Data/Edison/Assoc/StandardMap.hs |
243 |
-index 5ca48c5..e7b6a0e 100644 |
244 |
---- a/src/Data/Edison/Assoc/StandardMap.hs |
245 |
-+++ b/src/Data/Edison/Assoc/StandardMap.hs |
246 |
-@@ -51,6 +51,7 @@ module Data.Edison.Assoc.StandardMap ( |
247 |
- |
248 |
- import Prelude hiding (null,map,lookup,foldr,foldl,foldr1,foldl1,filter) |
249 |
- import qualified Prelude |
250 |
-+import qualified Control.Monad.Fail as Fail |
251 |
- import qualified Data.Edison.Assoc as A |
252 |
- import qualified Data.Edison.Seq as S |
253 |
- import qualified Data.Edison.Seq.ListSeq as L |
254 |
-@@ -81,10 +82,10 @@ member :: Ord k => k -> FM k a -> Bool |
255 |
- count :: Ord k => k -> FM k a -> Int |
256 |
- lookup :: Ord k => k -> FM k a -> a |
257 |
- lookupAll :: (Ord k,S.Sequence seq) => k -> FM k a -> seq a |
258 |
--lookupM :: (Ord k,Monad m) => k -> FM k a -> m a |
259 |
-+lookupM :: (Ord k, Fail.MonadFail m) => k -> FM k a -> m a |
260 |
- lookupWithDefault :: Ord k => a -> k -> FM k a -> a |
261 |
- lookupAndDelete :: Ord k => k -> FM k a -> (a, FM k a) |
262 |
--lookupAndDeleteM :: (Ord k,Monad m) => k -> FM k a -> m (a, FM k a) |
263 |
-+lookupAndDeleteM :: (Ord k, Fail.MonadFail m) => k -> FM k a -> m (a, FM k a) |
264 |
- lookupAndDeleteAll :: (Ord k,S.Sequence seq) => k -> FM k a -> (seq a,FM k a) |
265 |
- adjust :: Ord k => (a->a) -> k -> FM k a -> FM k a |
266 |
- adjustAll :: Ord k => (a->a) -> k -> FM k a -> FM k a |
267 |
-@@ -103,11 +104,11 @@ filter :: Ord k => (a -> Bool) -> FM k a -> FM k a |
268 |
- partition :: Ord k => (a -> Bool) -> FM k a -> (FM k a,FM k a) |
269 |
- elements :: (Ord k,S.Sequence seq) => FM k a -> seq a |
270 |
- |
271 |
--minView :: (Ord k,Monad m) => FM k a -> m (a, FM k a) |
272 |
-+minView :: (Ord k, Fail.MonadFail m) => FM k a -> m (a, FM k a) |
273 |
- minElem :: Ord k => FM k a -> a |
274 |
- deleteMin :: Ord k => FM k a -> FM k a |
275 |
- unsafeInsertMin :: Ord k => k -> a -> FM k a -> FM k a |
276 |
--maxView :: (Ord k,Monad m) => FM k a -> m (a, FM k a) |
277 |
-+maxView :: (Ord k, Fail.MonadFail m) => FM k a -> m (a, FM k a) |
278 |
- maxElem :: Ord k => FM k a -> a |
279 |
- deleteMax :: Ord k => FM k a -> FM k a |
280 |
- unsafeInsertMax :: Ord k => k -> a -> FM k a -> FM k a |
281 |
-@@ -165,9 +166,9 @@ foldWithKey' :: Ord k => (k -> a -> b -> b) -> b -> FM k a -> b |
282 |
- filterWithKey :: Ord k => (k -> a -> Bool) -> FM k a -> FM k a |
283 |
- partitionWithKey :: Ord k => (k -> a -> Bool) -> FM k a -> (FM k a,FM k a) |
284 |
- |
285 |
--minViewWithKey :: (Ord k,Monad m) => FM k a -> m ((k, a), FM k a) |
286 |
-+minViewWithKey :: (Ord k, Fail.MonadFail m) => FM k a -> m ((k, a), FM k a) |
287 |
- minElemWithKey :: Ord k => FM k a -> (k,a) |
288 |
--maxViewWithKey :: (Ord k,Monad m) => FM k a -> m ((k, a), FM k a) |
289 |
-+maxViewWithKey :: (Ord k, Fail.MonadFail m) => FM k a -> m ((k, a), FM k a) |
290 |
- maxElemWithKey :: Ord k => FM k a -> (k,a) |
291 |
- foldrWithKey :: (k -> a -> b -> b) -> b -> FM k a -> b |
292 |
- foldlWithKey :: (b -> k -> a -> b) -> b -> FM k a -> b |
293 |
-diff --git a/src/Data/Edison/Assoc/TernaryTrie.hs b/src/Data/Edison/Assoc/TernaryTrie.hs |
294 |
-index 8b2dd57..431b348 100644 |
295 |
---- a/src/Data/Edison/Assoc/TernaryTrie.hs |
296 |
-+++ b/src/Data/Edison/Assoc/TernaryTrie.hs |
297 |
-@@ -55,8 +55,10 @@ module Data.Edison.Assoc.TernaryTrie ( |
298 |
- import Prelude hiding (null,map,lookup,foldr,foldl,foldr1,foldl1,filter) |
299 |
- import qualified Prelude |
300 |
- import qualified Data.Edison.Assoc as A |
301 |
-+import Data.Edison.Prelude ( runFail_ ) |
302 |
- import qualified Data.Edison.Seq as S |
303 |
- import qualified Data.List as L |
304 |
-+import qualified Control.Monad.Fail as Fail |
305 |
- import Control.Monad.Identity |
306 |
- import Data.Monoid |
307 |
- import Data.Semigroup as SG |
308 |
-@@ -83,10 +85,10 @@ size :: Ord k => FM k a -> Int |
309 |
- member :: Ord k => [k] -> FM k a -> Bool |
310 |
- count :: Ord k => [k] -> FM k a -> Int |
311 |
- lookup :: Ord k => [k] -> FM k a -> a |
312 |
--lookupM :: (Ord k, Monad rm) => [k] -> FM k a -> rm a |
313 |
-+lookupM :: (Ord k, Fail.MonadFail rm) => [k] -> FM k a -> rm a |
314 |
- lookupAll :: (Ord k,S.Sequence seq) => [k] -> FM k a -> seq a |
315 |
- lookupAndDelete :: Ord k => [k] -> FM k a -> (a, FM k a) |
316 |
--lookupAndDeleteM :: (Ord k, Monad rm) => [k] -> FM k a -> rm (a, FM k a) |
317 |
-+lookupAndDeleteM :: (Ord k, Fail.MonadFail rm) => [k] -> FM k a -> rm (a, FM k a) |
318 |
- lookupAndDeleteAll :: (Ord k, S.Sequence seq) => [k] -> FM k a -> (seq a,FM k a) |
319 |
- lookupWithDefault :: Ord k => a -> [k] -> FM k a -> a |
320 |
- adjust :: Ord k => (a -> a) -> [k] -> FM k a -> FM k a |
321 |
-@@ -527,7 +529,7 @@ member = memberUsingLookupM |
322 |
- |
323 |
- count = countUsingMember |
324 |
- |
325 |
--lookup m k = runIdentity (lookupM m k) |
326 |
-+lookup m k = runFail_ (lookupM m k) |
327 |
- |
328 |
- lookupM [] (FM Nothing _) |
329 |
- = fail "TernaryTrie.lookup: lookup failed" |
330 |
-@@ -854,18 +856,18 @@ intersectionWithKey f |
331 |
- |
332 |
- -- OrdAssocX |
333 |
- |
334 |
--minViewFMB :: Monad m => FMB k a -> (FMB k a -> FM k a) -> m (a, FM k a) |
335 |
-+minViewFMB :: Fail.MonadFail m => FMB k a -> (FMB k a -> FM k a) -> m (a, FM k a) |
336 |
- minViewFMB E _ = fail $ moduleName++".minView: empty map" |
337 |
- minViewFMB (I i k (Just v) E m r) f = return (v, f (I i k Nothing E m r)) |
338 |
- minViewFMB (I _ _ Nothing E (FMB' E) _) _ = error $ moduleName++".minView: bug!" |
339 |
- minViewFMB (I _ k Nothing E (FMB' m) r) f = minViewFMB m (\m' -> f (mkVBalancedFMB k Nothing E (FMB' m') r)) |
340 |
- minViewFMB (I _ k mv l m r) f = minViewFMB l (\l' -> f (mkVBalancedFMB k mv l' m r)) |
341 |
- |
342 |
--minView :: Monad m => FM k a -> m (a,FM k a) |
343 |
-+minView :: Fail.MonadFail m => FM k a -> m (a,FM k a) |
344 |
- minView (FM (Just v) fmb) = return (v, FM Nothing fmb) |
345 |
- minView (FM Nothing fmb) = minViewFMB fmb (FM Nothing) |
346 |
- |
347 |
--minViewWithKeyFMB :: Monad m => FMB k a -> ([k] -> [k]) -> (FMB k a -> FM k a) -> m (([k],a),FM k a) |
348 |
-+minViewWithKeyFMB :: Fail.MonadFail m => FMB k a -> ([k] -> [k]) -> (FMB k a -> FM k a) -> m (([k],a),FM k a) |
349 |
- minViewWithKeyFMB E _ _ = fail $ moduleName++".minView: empty map" |
350 |
- minViewWithKeyFMB (I i k (Just v) E m r) kf f = return ((kf [k],v),f (I i k Nothing E m r)) |
351 |
- minViewWithKeyFMB (I _ _ Nothing E (FMB' E) _) _ _ = error $ moduleName++".minViewWithKey: bug!" |
352 |
-@@ -874,7 +876,7 @@ minViewWithKeyFMB (I _ k Nothing E (FMB' m) r) kf f = minViewWithKeyFMB m (kf . |
353 |
- minViewWithKeyFMB (I _ k mv l m r) kf f = minViewWithKeyFMB l kf |
354 |
- (\l' -> f (mkVBalancedFMB k mv l' m r)) |
355 |
- |
356 |
--minViewWithKey :: Monad m => FM k a -> m (([k],a),FM k a) |
357 |
-+minViewWithKey :: Fail.MonadFail m => FM k a -> m (([k],a),FM k a) |
358 |
- minViewWithKey (FM (Just v) fmb) = return (([],v),FM Nothing fmb) |
359 |
- minViewWithKey (FM Nothing fmb) = minViewWithKeyFMB fmb id (FM Nothing) |
360 |
- |
361 |
-@@ -906,7 +908,7 @@ deleteMin = deleteMinUsingMinView |
362 |
- unsafeInsertMin :: Ord k => [k] -> a -> FM k a -> FM k a |
363 |
- unsafeInsertMin = insert |
364 |
- |
365 |
--maxViewFMB :: Monad m => FMB k a -> (FMB k a -> FM k a) -> m (a, FM k a) |
366 |
-+maxViewFMB :: Fail.MonadFail m => FMB k a -> (FMB k a -> FM k a) -> m (a, FM k a) |
367 |
- maxViewFMB (I _ _ (Just v) l (FMB' E) E) f = return (v, f l) |
368 |
- --maxViewFMB (I i k (Just v) l (FMB' E) E) f = return (v, f (I i k Nothing l (FMB' E) E)) |
369 |
- maxViewFMB (I _ _ Nothing _ (FMB' E) E) _ = error $ moduleName++".maxView: bug!" |
370 |
-@@ -914,7 +916,7 @@ maxViewFMB (I i k mv l (FMB' m) E) f = maxViewFMB m (\m' -> f (I i k mv l |
371 |
- maxViewFMB (I _ k mv l m r) f = maxViewFMB r (\r' -> f (mkVBalancedFMB k mv l m r')) |
372 |
- maxViewFMB E _ = error $ moduleName++".maxView: bug!" |
373 |
- |
374 |
--maxView :: Monad m => FM k a -> m (a, FM k a) |
375 |
-+maxView :: Fail.MonadFail m => FM k a -> m (a, FM k a) |
376 |
- maxView (FM Nothing E) = fail $ moduleName++".maxView: empty map" |
377 |
- maxView (FM (Just v) E) = return (v,FM Nothing E) |
378 |
- maxView (FM mv fmb) = maxViewFMB fmb (FM mv) |
379 |
-@@ -930,7 +932,7 @@ maxViewWithKeyFMB (I _ k mv l m r) kf f = maxViewWithKeyFMB r kf |
380 |
- maxViewWithKeyFMB E _ _ = error $ moduleName++".maxViewWithKey: bug!" |
381 |
- |
382 |
- |
383 |
--maxViewWithKey :: Monad m => FM k a -> m (([k],a), FM k a) |
384 |
-+maxViewWithKey :: Fail.MonadFail m => FM k a -> m (([k],a), FM k a) |
385 |
- maxViewWithKey (FM Nothing E) = fail $ moduleName++".maxViewWithKey: empty map" |
386 |
- maxViewWithKey (FM (Just v) E) = return (([],v),FM Nothing E) |
387 |
- maxViewWithKey (FM mv fmb) = maxViewWithKeyFMB fmb id (FM mv) |
388 |
-diff --git a/src/Data/Edison/Coll/Defaults.hs b/src/Data/Edison/Coll/Defaults.hs |
389 |
-index 213ed36..d927f38 100644 |
390 |
---- a/src/Data/Edison/Coll/Defaults.hs |
391 |
-+++ b/src/Data/Edison/Coll/Defaults.hs |
392 |
-@@ -14,8 +14,9 @@ |
393 |
- module Data.Edison.Coll.Defaults where |
394 |
- |
395 |
- import Prelude hiding (null,foldr,foldl,foldr1,foldl1,lookup,filter) |
396 |
--import Control.Monad.Identity |
397 |
-+import qualified Control.Monad.Fail as Fail |
398 |
- |
399 |
-+import Data.Edison.Prelude ( runFail_ ) |
400 |
- import Data.Edison.Coll |
401 |
- import qualified Data.Edison.Seq as S |
402 |
- import qualified Data.Edison.Seq.ListSeq as L |
403 |
-@@ -81,7 +82,7 @@ disjointUsingToOrdList xs ys = disj (toOrdList xs) (toOrdList ys) |
404 |
- disj _ _ = True |
405 |
- |
406 |
- intersectWitnessUsingToOrdList :: |
407 |
-- (OrdColl c a, Monad m) => c -> c -> m (a,a) |
408 |
-+ (OrdColl c a, Fail.MonadFail m) => c -> c -> m (a,a) |
409 |
- intersectWitnessUsingToOrdList as bs = witness (toOrdList as) (toOrdList bs) |
410 |
- where witness a@(x:xs) b@(y:ys) = |
411 |
- case compare x y of |
412 |
-@@ -92,7 +93,7 @@ intersectWitnessUsingToOrdList as bs = witness (toOrdList as) (toOrdList bs) |
413 |
- witness _ _ = fail $ instanceName as ++ ".intersect: failed" |
414 |
- |
415 |
- lookupUsingLookupM :: Coll c a => a -> c -> a |
416 |
--lookupUsingLookupM x ys = runIdentity (lookupM x ys) |
417 |
-+lookupUsingLookupM x ys = runFail_ (lookupM x ys) |
418 |
- |
419 |
- lookupUsingLookupAll :: Coll c a => a -> c -> a |
420 |
- lookupUsingLookupAll x ys = |
421 |
-@@ -100,7 +101,7 @@ lookupUsingLookupAll x ys = |
422 |
- (y:_) -> y |
423 |
- [] -> error $ instanceName ys ++ ".lookup: lookup failed" |
424 |
- |
425 |
--lookupMUsingLookupAll :: (Coll c a, Monad m) => a -> c -> m a |
426 |
-+lookupMUsingLookupAll :: (Coll c a, Fail.MonadFail m) => a -> c -> m a |
427 |
- lookupMUsingLookupAll x ys = |
428 |
- case lookupAll x ys of |
429 |
- (y:_) -> return y |
430 |
-diff --git a/src/Data/Edison/Coll/EnumSet.hs b/src/Data/Edison/Coll/EnumSet.hs |
431 |
-index c93ab07..cce68e6 100644 |
432 |
---- a/src/Data/Edison/Coll/EnumSet.hs |
433 |
-+++ b/src/Data/Edison/Coll/EnumSet.hs |
434 |
-@@ -157,6 +157,7 @@ module Data.Edison.Coll.EnumSet ( |
435 |
- |
436 |
- import qualified Prelude |
437 |
- import Prelude hiding (filter,foldl,foldr,null,map,lookup,foldl1,foldr1) |
438 |
-+import qualified Control.Monad.Fail as Fail |
439 |
- import qualified Data.Bits as Bits |
440 |
- import Data.Bits hiding (complement) |
441 |
- import Data.Word |
442 |
-@@ -251,7 +252,7 @@ count = countUsingMember |
443 |
- lookup :: (Eq a, Enum a) => a -> Set a -> a |
444 |
- lookup = lookupUsingLookupAll |
445 |
- |
446 |
--lookupM :: (Eq a, Enum a, Monad m) => a -> Set a -> m a |
447 |
-+lookupM :: (Eq a, Enum a, Fail.MonadFail m) => a -> Set a -> m a |
448 |
- lookupM x s |
449 |
- | member x s = return x |
450 |
- | otherwise = fail (moduleName++".lookupM: lookup failed") |
451 |
-@@ -340,12 +341,12 @@ deleteMax (Set w) |
452 |
- | w == 0 = empty |
453 |
- | otherwise = Set $ clearBit w $ msb w |
454 |
- |
455 |
--minView :: (Enum a, Monad m) => Set a -> m (a, Set a) |
456 |
-+minView :: (Enum a, Fail.MonadFail m) => Set a -> m (a, Set a) |
457 |
- minView (Set w) |
458 |
- | w == 0 = fail (moduleName++".minView: empty set") |
459 |
- | otherwise = let i = lsb w in return (toEnum i,Set $ clearBit w i) |
460 |
- |
461 |
--maxView :: (Enum a, Monad m) => Set a -> m (a, Set a) |
462 |
-+maxView :: (Enum a, Fail.MonadFail m) => Set a -> m (a, Set a) |
463 |
- maxView (Set w) |
464 |
- | w == 0 = fail (moduleName++".maxView: empty set") |
465 |
- | otherwise = let i = msb w in return (toEnum i, Set $ clearBit w i) |
466 |
-diff --git a/src/Data/Edison/Coll/LazyPairingHeap.hs b/src/Data/Edison/Coll/LazyPairingHeap.hs |
467 |
-index e41ce2e..3dcebe4 100644 |
468 |
---- a/src/Data/Edison/Coll/LazyPairingHeap.hs |
469 |
-+++ b/src/Data/Edison/Coll/LazyPairingHeap.hs |
470 |
-@@ -49,6 +49,7 @@ import Data.List (sort) |
471 |
- import Data.Monoid |
472 |
- import Data.Semigroup as SG |
473 |
- import Control.Monad |
474 |
-+import qualified Control.Monad.Fail as Fail |
475 |
- import Test.QuickCheck |
476 |
- |
477 |
- moduleName :: String |
478 |
-@@ -359,7 +360,7 @@ lookupAll y h = look h S.empty |
479 |
- EQ -> S.lcons x $ look i $ look xs rest |
480 |
- GT -> rest |
481 |
- |
482 |
--minView :: (Ord a, Monad m) => Heap a -> m (a, Heap a) |
483 |
-+minView :: (Ord a, Fail.MonadFail m) => Heap a -> m (a, Heap a) |
484 |
- minView E = fail "LazyPairingHeap.minView: empty heap" |
485 |
- minView (H1 x xs) = return (x,xs) |
486 |
- minView (H2 x h xs) = return (x,union h xs) |
487 |
-@@ -369,7 +370,7 @@ minElem E = error "LazyPairingHeap.minElem: empty heap" |
488 |
- minElem (H1 x _) = x |
489 |
- minElem (H2 x _ _) = x |
490 |
- |
491 |
--maxView :: (Ord a, Monad m) => Heap a -> m (a, Heap a) |
492 |
-+maxView :: (Ord a, Fail.MonadFail m) => Heap a -> m (a, Heap a) |
493 |
- maxView E = fail "LazyPairingHeap.maxView: empty heap" |
494 |
- maxView xs = return (y,xs') |
495 |
- where (xs', y) = maxView' xs |
496 |
-@@ -474,7 +475,7 @@ deleteMax = deleteMaxUsingMaxView |
497 |
- lookup :: Ord a => a -> Heap a -> a |
498 |
- lookup = lookupUsingLookupAll |
499 |
- |
500 |
--lookupM :: (Ord a, Monad m) => a -> Heap a -> m a |
501 |
-+lookupM :: (Ord a, Fail.MonadFail m) => a -> Heap a -> m a |
502 |
- lookupM = lookupMUsingLookupAll |
503 |
- |
504 |
- lookupWithDefault :: Ord a => a -> a -> Heap a -> a |
505 |
-diff --git a/src/Data/Edison/Coll/LeftistHeap.hs b/src/Data/Edison/Coll/LeftistHeap.hs |
506 |
-index 751394b..10ccf5a 100644 |
507 |
---- a/src/Data/Edison/Coll/LeftistHeap.hs |
508 |
-+++ b/src/Data/Edison/Coll/LeftistHeap.hs |
509 |
-@@ -47,6 +47,7 @@ import Data.Edison.Coll.Defaults |
510 |
- import Data.Monoid |
511 |
- import Data.Semigroup as SG |
512 |
- import Control.Monad |
513 |
-+import qualified Control.Monad.Fail as Fail |
514 |
- import Test.QuickCheck |
515 |
- |
516 |
- moduleName :: String |
517 |
-@@ -173,7 +174,7 @@ toSeq h = tol h S.empty |
518 |
- where tol E rest = rest |
519 |
- tol (L _ x a b) rest = S.lcons x (tol b (tol a rest)) |
520 |
- |
521 |
--lookupM :: (Ord a, Monad m) => a -> Heap a -> m a |
522 |
-+lookupM :: (Ord a, Fail.MonadFail m) => a -> Heap a -> m a |
523 |
- lookupM _ E = fail "LeftistHeap.lookupM: XXX" |
524 |
- lookupM x (L _ y a b) = |
525 |
- case compare x y of |
526 |
-@@ -299,7 +300,7 @@ partitionLT_GT y h = (h', C.unionList hs) |
527 |
- (b', hs'') = collect b hs' |
528 |
- in (node x a' b', hs'') |
529 |
- |
530 |
--minView :: (Ord a, Monad m) => Heap a -> m (a, Heap a) |
531 |
-+minView :: (Ord a, Fail.MonadFail m) => Heap a -> m (a, Heap a) |
532 |
- minView E = fail "LeftistHeap.minView: empty collection" |
533 |
- minView (L _ x a b) = return (x, union a b) |
534 |
- |
535 |
-@@ -307,7 +308,7 @@ minElem :: Ord a => Heap a -> a |
536 |
- minElem E = error "LeftistHeap.minElem: empty collection" |
537 |
- minElem (L _ x _ _) = x |
538 |
- |
539 |
--maxView :: (Ord a, Monad m) => Heap a -> m (a, Heap a) |
540 |
-+maxView :: (Ord a, Fail.MonadFail m) => Heap a -> m (a, Heap a) |
541 |
- maxView E = fail "LeftistHeap.maxView: empty collection" |
542 |
- maxView (L _ x E _) = return (x, E) |
543 |
- maxView (L _ x a E) = return (y, L 1 x a' E) |
544 |
-diff --git a/src/Data/Edison/Coll/MinHeap.hs b/src/Data/Edison/Coll/MinHeap.hs |
545 |
-index ba38960..94e2f1b 100644 |
546 |
---- a/src/Data/Edison/Coll/MinHeap.hs |
547 |
-+++ b/src/Data/Edison/Coll/MinHeap.hs |
548 |
-@@ -46,6 +46,7 @@ import Data.Edison.Seq.Defaults (tokenMatch,maybeParens) |
549 |
- import Data.Monoid |
550 |
- import qualified Data.Semigroup as SG |
551 |
- import Control.Monad |
552 |
-+import qualified Control.Monad.Fail as Fail |
553 |
- import Test.QuickCheck |
554 |
- |
555 |
- data Min h a = E | M a h deriving (Eq) |
556 |
-@@ -75,7 +76,7 @@ strict :: (C.CollX h a,Ord a) => Min h a -> Min h a |
557 |
- |
558 |
- toSeq :: (C.Coll h a,S.Sequence s) => Min h a -> s a |
559 |
- lookup :: (C.Coll h a,Ord a) => a -> Min h a -> a |
560 |
--lookupM :: (C.Coll h a,Ord a,Monad m) => a -> Min h a -> m a |
561 |
-+lookupM :: (C.Coll h a, Ord a, Fail.MonadFail m) => a -> Min h a -> m a |
562 |
- lookupAll :: (C.Coll h a,Ord a,S.Sequence s) => a -> Min h a -> s a |
563 |
- lookupWithDefault :: (C.Coll h a,Ord a) => a -> a -> Min h a -> a |
564 |
- fold :: (C.Coll h a) => (a -> b -> b) -> b -> Min h a -> b |
565 |
-@@ -100,9 +101,9 @@ partitionLT_GE :: (C.OrdColl h a,Ord a) => a -> Min h a -> (Min h a, Min h a) |
566 |
- partitionLE_GT :: (C.OrdColl h a,Ord a) => a -> Min h a -> (Min h a, Min h a) |
567 |
- partitionLT_GT :: (C.OrdColl h a,Ord a) => a -> Min h a -> (Min h a, Min h a) |
568 |
- |
569 |
--minView :: (C.OrdColl h a,Ord a,Monad m) => Min h a -> m (a, Min h a) |
570 |
-+minView :: (C.OrdColl h a, Ord a, Fail.MonadFail m) => Min h a -> m (a, Min h a) |
571 |
- minElem :: (C.OrdColl h a,Ord a) => Min h a -> a |
572 |
--maxView :: (C.OrdColl h a,Ord a,Monad m) => Min h a -> m (a, Min h a) |
573 |
-+maxView :: (C.OrdColl h a, Ord a, Fail.MonadFail m) => Min h a -> m (a, Min h a) |
574 |
- maxElem :: (C.OrdColl h a,Ord a) => Min h a -> a |
575 |
- foldr :: (C.OrdColl h a,Ord a) => (a -> b -> b) -> b -> Min h a -> b |
576 |
- foldl :: (C.OrdColl h a,Ord a) => (b -> a -> b) -> b -> Min h a -> b |
577 |
-diff --git a/src/Data/Edison/Coll/SkewHeap.hs b/src/Data/Edison/Coll/SkewHeap.hs |
578 |
-index 1a05ebe..e55ba58 100644 |
579 |
---- a/src/Data/Edison/Coll/SkewHeap.hs |
580 |
-+++ b/src/Data/Edison/Coll/SkewHeap.hs |
581 |
-@@ -47,6 +47,7 @@ import Data.Edison.Coll.Defaults |
582 |
- import Data.Monoid |
583 |
- import Data.Semigroup as SG |
584 |
- import Control.Monad |
585 |
-+import qualified Control.Monad.Fail as Fail |
586 |
- |
587 |
- import Test.QuickCheck |
588 |
- |
589 |
-@@ -142,7 +143,7 @@ toSeq h = tol h S.empty |
590 |
- where tol E rest = rest |
591 |
- tol (T x a b) rest = S.lcons x (tol b (tol a rest)) |
592 |
- |
593 |
--lookupM :: (Ord a, Monad m) => a -> Heap a -> m a |
594 |
-+lookupM :: (Ord a, Fail.MonadFail m) => a -> Heap a -> m a |
595 |
- lookupM _ E = fail "SkewHeap.lookupM: XXX" |
596 |
- lookupM x (T y a b) = |
597 |
- case compare x y of |
598 |
-@@ -267,7 +268,7 @@ partitionLT_GT y h = (h', C.unionList hs) |
599 |
- (b', hs'') = collect b hs' |
600 |
- in (T x a' b', hs'') |
601 |
- |
602 |
--minView :: (Ord a, Monad m) => Heap a -> m (a, Heap a) |
603 |
-+minView :: (Ord a, Fail.MonadFail m) => Heap a -> m (a, Heap a) |
604 |
- minView E = fail "SkewHeap.minView: empty heap" |
605 |
- minView (T x a b) = return (x, union a b) |
606 |
- |
607 |
-@@ -275,7 +276,7 @@ minElem :: Ord a => Heap a -> a |
608 |
- minElem E = error "SkewHeap.minElem: empty collection" |
609 |
- minElem (T x _ _) = x |
610 |
- |
611 |
--maxView :: (Ord a, Monad m) => Heap a -> m (a, Heap a) |
612 |
-+maxView :: (Ord a, Fail.MonadFail m) => Heap a -> m (a, Heap a) |
613 |
- maxView E = fail "SkewHeap.maxView: empty heap" |
614 |
- maxView (T x E E) = return (x, E) |
615 |
- maxView (T x a E) = return (y, T x a' E) |
616 |
-diff --git a/src/Data/Edison/Coll/SplayHeap.hs b/src/Data/Edison/Coll/SplayHeap.hs |
617 |
-index 4e3b061..6c950b7 100644 |
618 |
---- a/src/Data/Edison/Coll/SplayHeap.hs |
619 |
-+++ b/src/Data/Edison/Coll/SplayHeap.hs |
620 |
-@@ -50,6 +50,7 @@ import Data.Edison.Coll.Defaults |
621 |
- import Data.Monoid |
622 |
- import Data.Semigroup as SG |
623 |
- import Control.Monad |
624 |
-+import qualified Control.Monad.Fail as Fail |
625 |
- import Test.QuickCheck |
626 |
- |
627 |
- moduleName :: String |
628 |
-@@ -93,7 +94,7 @@ strict :: Heap a -> Heap a |
629 |
- |
630 |
- toSeq :: (Ord a, S.Sequence s) => Heap a -> s a |
631 |
- lookup :: Ord a => a -> Heap a -> a |
632 |
--lookupM :: (Ord a,Monad m) => a -> Heap a -> m a |
633 |
-+lookupM :: (Ord a, Fail.MonadFail m) => a -> Heap a -> m a |
634 |
- lookupAll :: (Ord a,S.Sequence s) => a -> Heap a -> s a |
635 |
- lookupWithDefault :: Ord a => a -> a -> Heap a -> a |
636 |
- fold :: Ord a => (a -> b -> b) -> b -> Heap a -> b |
637 |
-@@ -118,9 +119,9 @@ partitionLT_GE :: Ord a => a -> Heap a -> (Heap a, Heap a) |
638 |
- partitionLE_GT :: Ord a => a -> Heap a -> (Heap a, Heap a) |
639 |
- partitionLT_GT :: Ord a => a -> Heap a -> (Heap a, Heap a) |
640 |
- |
641 |
--minView :: (Ord a,Monad m) => Heap a -> m (a, Heap a) |
642 |
-+minView :: (Ord a, Fail.MonadFail m) => Heap a -> m (a, Heap a) |
643 |
- minElem :: Ord a => Heap a -> a |
644 |
--maxView :: (Ord a,Monad m) => Heap a -> m (a, Heap a) |
645 |
-+maxView :: (Ord a, Fail.MonadFail m) => Heap a -> m (a, Heap a) |
646 |
- maxElem :: Ord a => Heap a -> a |
647 |
- foldr :: Ord a => (a -> b -> b) -> b -> Heap a -> b |
648 |
- foldl :: Ord a => (b -> a -> b) -> b -> Heap a -> b |
649 |
-diff --git a/src/Data/Edison/Coll/StandardSet.hs b/src/Data/Edison/Coll/StandardSet.hs |
650 |
-index fcaf715..56df4bf 100644 |
651 |
---- a/src/Data/Edison/Coll/StandardSet.hs |
652 |
-+++ b/src/Data/Edison/Coll/StandardSet.hs |
653 |
-@@ -43,6 +43,7 @@ module Data.Edison.Coll.StandardSet ( |
654 |
- |
655 |
- import Prelude hiding (null,foldr,foldl,foldr1,foldl1,lookup,filter) |
656 |
- import qualified Prelude |
657 |
-+import qualified Control.Monad.Fail as Fail |
658 |
- import qualified Data.List |
659 |
- |
660 |
- import qualified Data.Edison.Coll as C |
661 |
-@@ -73,7 +74,7 @@ strict :: Ord a => Set a -> Set a |
662 |
- |
663 |
- toSeq :: (Ord a,S.Sequence seq) => Set a -> seq a |
664 |
- lookup :: Ord a => a -> Set a -> a |
665 |
--lookupM :: (Ord a,Monad m) => a -> Set a -> m a |
666 |
-+lookupM :: (Ord a, Monad m, Fail.MonadFail m) => a -> Set a -> m a |
667 |
- lookupAll :: (Ord a,S.Sequence seq) => a -> Set a -> seq a |
668 |
- lookupWithDefault :: Ord a => a -> a -> Set a -> a |
669 |
- fold :: (a -> b -> b) -> b -> Set a -> b |
670 |
-@@ -98,9 +99,9 @@ partitionLT_GE :: Ord a => a -> Set a -> (Set a, Set a) |
671 |
- partitionLE_GT :: Ord a => a -> Set a -> (Set a, Set a) |
672 |
- partitionLT_GT :: Ord a => a -> Set a -> (Set a, Set a) |
673 |
- |
674 |
--minView :: (Ord a,Monad m) => Set a -> m (a, Set a) |
675 |
-+minView :: (Ord a, Monad m, Fail.MonadFail m) => Set a -> m (a, Set a) |
676 |
- minElem :: Set a -> a |
677 |
--maxView :: (Ord a,Monad m) => Set a -> m (a, Set a) |
678 |
-+maxView :: (Ord a, Monad m, Fail.MonadFail m) => Set a -> m (a, Set a) |
679 |
- maxElem :: Set a -> a |
680 |
- foldr :: (a -> b -> b) -> b -> Set a -> b |
681 |
- foldl :: (b -> a -> b) -> b -> Set a -> b |
682 |
-diff --git a/src/Data/Edison/Coll/UnbalancedSet.hs b/src/Data/Edison/Coll/UnbalancedSet.hs |
683 |
-index 03cb856..d7975d0 100644 |
684 |
---- a/src/Data/Edison/Coll/UnbalancedSet.hs |
685 |
-+++ b/src/Data/Edison/Coll/UnbalancedSet.hs |
686 |
-@@ -43,6 +43,7 @@ module Data.Edison.Coll.UnbalancedSet ( |
687 |
- |
688 |
- import Prelude hiding (null,foldr,foldl,foldr1,foldl1,lookup,filter) |
689 |
- import qualified Prelude |
690 |
-+import qualified Control.Monad.Fail as Fail |
691 |
- import qualified Data.Edison.Coll as C |
692 |
- import qualified Data.Edison.Seq as S |
693 |
- import Data.Edison.Coll.Defaults |
694 |
-@@ -70,7 +71,7 @@ strict :: Set a -> Set a |
695 |
- |
696 |
- toSeq :: (Ord a,S.Sequence seq) => Set a -> seq a |
697 |
- lookup :: Ord a => a -> Set a -> a |
698 |
--lookupM :: (Ord a,Monad m) => a -> Set a -> m a |
699 |
-+lookupM :: (Ord a, Fail.MonadFail m) => a -> Set a -> m a |
700 |
- lookupAll :: (Ord a,S.Sequence seq) => a -> Set a -> seq a |
701 |
- lookupWithDefault :: Ord a => a -> a -> Set a -> a |
702 |
- fold :: (a -> b -> b) -> b -> Set a -> b |
703 |
-@@ -95,9 +96,9 @@ partitionLT_GE :: Ord a => a -> Set a -> (Set a, Set a) |
704 |
- partitionLE_GT :: Ord a => a -> Set a -> (Set a, Set a) |
705 |
- partitionLT_GT :: Ord a => a -> Set a -> (Set a, Set a) |
706 |
- |
707 |
--minView :: (Monad m) => Set a -> m (a, Set a) |
708 |
-+minView :: (Fail.MonadFail m) => Set a -> m (a, Set a) |
709 |
- minElem :: Set a -> a |
710 |
--maxView :: (Monad m) => Set a -> m (a, Set a) |
711 |
-+maxView :: (Fail.MonadFail m) => Set a -> m (a, Set a) |
712 |
- maxElem :: Set a -> a |
713 |
- foldr :: (a -> b -> b) -> b -> Set a -> b |
714 |
- foldl :: (b -> a -> b) -> b -> Set a -> b |
715 |
-diff --git a/src/Data/Edison/Concrete/FingerTree.hs b/src/Data/Edison/Concrete/FingerTree.hs |
716 |
-index 47f766c..c6a2ac0 100644 |
717 |
---- a/src/Data/Edison/Concrete/FingerTree.hs |
718 |
-+++ b/src/Data/Edison/Concrete/FingerTree.hs |
719 |
-@@ -81,6 +81,7 @@ import Test.QuickCheck |
720 |
- import Data.Edison.Prelude |
721 |
- |
722 |
- import Control.Monad (liftM2, liftM3, liftM4) |
723 |
-+import qualified Control.Monad.Fail as Fail |
724 |
- |
725 |
- |
726 |
- infixr 5 `lcons` |
727 |
-@@ -334,7 +335,7 @@ null Empty = True |
728 |
- null _ = False |
729 |
- |
730 |
- -- | /O(1)/. Analyse the left end of a sequence. |
731 |
--lview :: (Measured v a, Monad m) => FingerTree v a -> m (a,FingerTree v a) |
732 |
-+lview :: (Measured v a, Fail.MonadFail m) => FingerTree v a -> m (a,FingerTree v a) |
733 |
- lview Empty = fail "FingerTree.lview: empty tree" |
734 |
- lview (Single x) = return (x, Empty) |
735 |
- lview (Deep _ (One x) m sf) = return . (,) x $ |
736 |
-@@ -357,7 +358,7 @@ ltailDigit (Four _ b c d) = Three b c d |
737 |
- ltailDigit _ = error "FingerTree.ltailDigit: bug!" |
738 |
- |
739 |
- -- | /O(1)/. Analyse the right end of a sequence. |
740 |
--rview :: (Measured v a, Monad m) => FingerTree v a -> m (a, FingerTree v a) |
741 |
-+rview :: (Measured v a, Fail.MonadFail m) => FingerTree v a -> m (a, FingerTree v a) |
742 |
- rview Empty = fail "FingerTree.rview: empty tree" |
743 |
- rview (Single x) = return (x, Empty) |
744 |
- rview (Deep _ pr m (One x)) = return . (,) x $ |
745 |
-diff --git a/src/Data/Edison/Seq/BankersQueue.hs b/src/Data/Edison/Seq/BankersQueue.hs |
746 |
-index 6dac746..0ab24c9 100644 |
747 |
---- a/src/Data/Edison/Seq/BankersQueue.hs |
748 |
-+++ b/src/Data/Edison/Seq/BankersQueue.hs |
749 |
-@@ -51,11 +51,13 @@ import Prelude hiding (concat,reverse,map,concatMap,foldr,foldl,foldr1,foldl1, |
750 |
- |
751 |
- import qualified Control.Applicative as App |
752 |
- |
753 |
-+import Data.Edison.Prelude ( runFail_ ) |
754 |
- import qualified Data.Edison.Seq as S ( Sequence(..) ) |
755 |
- import Data.Edison.Seq.Defaults |
756 |
- import qualified Data.Edison.Seq.ListSeq as L |
757 |
- import Data.Monoid |
758 |
- import Data.Semigroup as SG |
759 |
-+import qualified Control.Monad.Fail as Fail |
760 |
- import Control.Monad.Identity |
761 |
- import Test.QuickCheck |
762 |
- |
763 |
-@@ -66,16 +68,16 @@ singleton :: a -> Seq a |
764 |
- lcons :: a -> Seq a -> Seq a |
765 |
- rcons :: a -> Seq a -> Seq a |
766 |
- append :: Seq a -> Seq a -> Seq a |
767 |
--lview :: (Monad m) => Seq a -> m (a, Seq a) |
768 |
-+lview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
769 |
- lhead :: Seq a -> a |
770 |
--lheadM :: (Monad m) => Seq a -> m a |
771 |
-+lheadM :: (Fail.MonadFail m) => Seq a -> m a |
772 |
- ltail :: Seq a -> Seq a |
773 |
--ltailM :: (Monad m) => Seq a -> m (Seq a) |
774 |
--rview :: (Monad m) => Seq a -> m (a, Seq a) |
775 |
-+ltailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
776 |
-+rview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
777 |
- rhead :: Seq a -> a |
778 |
--rheadM :: (Monad m) => Seq a -> m a |
779 |
-+rheadM :: (Fail.MonadFail m) => Seq a -> m a |
780 |
- rtail :: Seq a -> Seq a |
781 |
--rtailM :: (Monad m) => Seq a -> m (Seq a) |
782 |
-+rtailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
783 |
- null :: Seq a -> Bool |
784 |
- size :: Seq a -> Int |
785 |
- concat :: Seq (Seq a) -> Seq a |
786 |
-@@ -106,7 +108,7 @@ reduce1' :: (a -> a -> a) -> Seq a -> a |
787 |
- copy :: Int -> a -> Seq a |
788 |
- inBounds :: Int -> Seq a -> Bool |
789 |
- lookup :: Int -> Seq a -> a |
790 |
--lookupM :: (Monad m) => Int -> Seq a -> m a |
791 |
-+lookupM :: (Fail.MonadFail m) => Int -> Seq a -> m a |
792 |
- lookupWithDefault :: a -> Int -> Seq a -> a |
793 |
- update :: Int -> a -> Seq a -> Seq a |
794 |
- adjust :: (a -> a) -> Int -> Seq a -> Seq a |
795 |
-@@ -263,7 +265,7 @@ copy n x |
796 |
- |
797 |
- -- reduce1: given sizes could do more effective job of dividing evenly! |
798 |
- |
799 |
--lookup idx q = runIdentity (lookupM idx q) |
800 |
-+lookup idx q = runFail_ (lookupM idx q) |
801 |
- |
802 |
- lookupM idx (Q i xs ys j) |
803 |
- | idx < i = L.lookupM idx xs |
804 |
-diff --git a/src/Data/Edison/Seq/BinaryRandList.hs b/src/Data/Edison/Seq/BinaryRandList.hs |
805 |
-index b01b9b8..e772b65 100644 |
806 |
---- a/src/Data/Edison/Seq/BinaryRandList.hs |
807 |
-+++ b/src/Data/Edison/Seq/BinaryRandList.hs |
808 |
-@@ -55,14 +55,15 @@ import Prelude hiding (concat,reverse,map,concatMap,foldr,foldl,foldr1,foldl1, |
809 |
- zip,zip3,zipWith,zipWith3,unzip,unzip3,null) |
810 |
- |
811 |
- import qualified Control.Applicative as App |
812 |
--import Control.Monad.Identity |
813 |
- import Data.Maybe |
814 |
- |
815 |
-+import Data.Edison.Prelude ( runFail_ ) |
816 |
- import qualified Data.Edison.Seq as S ( Sequence(..) ) |
817 |
- import Data.Edison.Seq.Defaults |
818 |
- import Data.Monoid |
819 |
- import Data.Semigroup as SG |
820 |
- import Control.Monad |
821 |
-+import qualified Control.Monad.Fail as Fail |
822 |
- import Test.QuickCheck |
823 |
- |
824 |
- -- signatures for exported functions |
825 |
-@@ -72,16 +73,16 @@ singleton :: a -> Seq a |
826 |
- lcons :: a -> Seq a -> Seq a |
827 |
- rcons :: a -> Seq a -> Seq a |
828 |
- append :: Seq a -> Seq a -> Seq a |
829 |
--lview :: (Monad m) => Seq a -> m (a, Seq a) |
830 |
-+lview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
831 |
- lhead :: Seq a -> a |
832 |
--lheadM :: (Monad m) => Seq a -> m a |
833 |
-+lheadM :: (Fail.MonadFail m) => Seq a -> m a |
834 |
- ltail :: Seq a -> Seq a |
835 |
--ltailM :: (Monad m) => Seq a -> m (Seq a) |
836 |
--rview :: (Monad m) => Seq a -> m (a, Seq a) |
837 |
-+ltailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
838 |
-+rview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
839 |
- rhead :: Seq a -> a |
840 |
--rheadM :: (Monad m) => Seq a -> m a |
841 |
-+rheadM :: (Fail.MonadFail m) => Seq a -> m a |
842 |
- rtail :: Seq a -> Seq a |
843 |
--rtailM :: (Monad m) => Seq a -> m (Seq a) |
844 |
-+rtailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
845 |
- null :: Seq a -> Bool |
846 |
- size :: Seq a -> Int |
847 |
- concat :: Seq (Seq a) -> Seq a |
848 |
-@@ -112,7 +113,7 @@ reduce1' :: (a -> a -> a) -> Seq a -> a |
849 |
- copy :: Int -> a -> Seq a |
850 |
- inBounds :: Int -> Seq a -> Bool |
851 |
- lookup :: Int -> Seq a -> a |
852 |
--lookupM :: (Monad m) => Int -> Seq a -> m a |
853 |
-+lookupM :: (Fail.MonadFail m) => Int -> Seq a -> m a |
854 |
- lookupWithDefault :: a -> Int -> Seq a -> a |
855 |
- update :: Int -> a -> Seq a -> Seq a |
856 |
- adjust :: (a -> a) -> Int -> Seq a -> Seq a |
857 |
-@@ -267,7 +268,7 @@ inBounds i xs = (i >= 0) && inb xs i |
858 |
- inb (Even ps) i = inb ps (half i) |
859 |
- inb (Odd _ ps) i = (i == 0) || inb ps (half (i-1)) |
860 |
- |
861 |
--lookup i xs = runIdentity (lookupM i xs) |
862 |
-+lookup i xs = runFail_ (lookupM i xs) |
863 |
- |
864 |
- lookupM i xs |
865 |
- | i < 0 = fail "BinaryRandList.lookup: bad subscript" |
866 |
-diff --git a/src/Data/Edison/Seq/BraunSeq.hs b/src/Data/Edison/Seq/BraunSeq.hs |
867 |
-index 7f6f33b..11236e3 100644 |
868 |
---- a/src/Data/Edison/Seq/BraunSeq.hs |
869 |
-+++ b/src/Data/Edison/Seq/BraunSeq.hs |
870 |
-@@ -72,6 +72,7 @@ import Prelude hiding (concat,reverse,map,concatMap,foldr,foldl,foldr1,foldl1, |
871 |
- zip,zip3,zipWith,zipWith3,unzip,unzip3,null) |
872 |
- |
873 |
- import qualified Control.Applicative as App |
874 |
-+import qualified Control.Monad.Fail as Fail |
875 |
- import Control.Monad.Identity |
876 |
- import Data.Maybe |
877 |
- import Data.Monoid |
878 |
-@@ -79,6 +80,7 @@ import Data.Semigroup as SG |
879 |
- import Test.QuickCheck |
880 |
- |
881 |
- |
882 |
-+import Data.Edison.Prelude ( runFail_ ) |
883 |
- import qualified Data.Edison.Seq as S ( Sequence(..) ) |
884 |
- import Data.Edison.Seq.Defaults |
885 |
- import qualified Data.Edison.Seq.ListSeq as L |
886 |
-@@ -91,16 +93,16 @@ singleton :: a -> Seq a |
887 |
- lcons :: a -> Seq a -> Seq a |
888 |
- rcons :: a -> Seq a -> Seq a |
889 |
- append :: Seq a -> Seq a -> Seq a |
890 |
--lview :: (Monad m) => Seq a -> m (a, Seq a) |
891 |
-+lview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
892 |
- lhead :: Seq a -> a |
893 |
--lheadM :: (Monad m) => Seq a -> m a |
894 |
-+lheadM :: (Fail.MonadFail m) => Seq a -> m a |
895 |
- ltail :: Seq a -> Seq a |
896 |
--ltailM :: (Monad m) => Seq a -> m (Seq a) |
897 |
--rview :: (Monad m) => Seq a -> m (a, Seq a) |
898 |
-+ltailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
899 |
-+rview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
900 |
- rhead :: Seq a -> a |
901 |
--rheadM :: (Monad m) => Seq a -> m a |
902 |
-+rheadM :: (Fail.MonadFail m) => Seq a -> m a |
903 |
- rtail :: Seq a -> Seq a |
904 |
--rtailM :: (Monad m) => Seq a -> m (Seq a) |
905 |
-+rtailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
906 |
- null :: Seq a -> Bool |
907 |
- size :: Seq a -> Int |
908 |
- concat :: Seq (Seq a) -> Seq a |
909 |
-@@ -131,7 +133,7 @@ reduce1' :: (a -> a -> a) -> Seq a -> a |
910 |
- copy :: Int -> a -> Seq a |
911 |
- inBounds :: Int -> Seq a -> Bool |
912 |
- lookup :: Int -> Seq a -> a |
913 |
--lookupM :: (Monad m) => Int -> Seq a -> m a |
914 |
-+lookupM :: (Fail.MonadFail m) => Int -> Seq a -> m a |
915 |
- lookupWithDefault :: a -> Int -> Seq a -> a |
916 |
- update :: Int -> a -> Seq a -> Seq a |
917 |
- adjust :: (a -> a) -> Int -> Seq a -> Seq a |
918 |
-@@ -344,7 +346,7 @@ inBounds i xs = (i >= 0) && inb xs i |
919 |
- | i == 0 = True |
920 |
- | otherwise = inb b (half i - 1) |
921 |
- |
922 |
--lookup i xs = runIdentity (lookupM i xs) |
923 |
-+lookup i xs = runFail_ (lookupM i xs) |
924 |
- |
925 |
- lookupM i xs |
926 |
- | i < 0 = fail "BraunSeq.lookupM: bad subscript" |
927 |
-diff --git a/src/Data/Edison/Seq/Defaults.hs b/src/Data/Edison/Seq/Defaults.hs |
928 |
-index ed593dc..eae6a09 100644 |
929 |
---- a/src/Data/Edison/Seq/Defaults.hs |
930 |
-+++ b/src/Data/Edison/Seq/Defaults.hs |
931 |
-@@ -17,9 +17,11 @@ import Prelude hiding (concat,reverse,map,concatMap,foldr,foldl,foldr1,foldl1, |
932 |
- filter,takeWhile,dropWhile,lookup,take,drop,splitAt, |
933 |
- zip,zip3,zipWith,zipWith3,unzip,unzip3,null) |
934 |
- |
935 |
-+import qualified Control.Monad.Fail as Fail |
936 |
- import Control.Monad.Identity |
937 |
- import Data.Char (isSpace) |
938 |
- |
939 |
-+import Data.Edison.Prelude ( runFail_ ) |
940 |
- import Data.Edison.Seq |
941 |
- import qualified Data.Edison.Seq.ListSeq as L |
942 |
- |
943 |
-@@ -33,7 +35,7 @@ appendUsingFoldr :: Sequence s => s a -> s a -> s a |
944 |
- appendUsingFoldr s t | null t = s |
945 |
- | otherwise = foldr lcons t s |
946 |
- |
947 |
--rviewDefault :: (Monad m, Sequence s) => s a -> m (a, s a) |
948 |
-+rviewDefault :: (Fail.MonadFail m, Sequence s) => s a -> m (a, s a) |
949 |
- rviewDefault xs |
950 |
- | null xs = fail $ instanceName xs ++ ".rview: empty sequence" |
951 |
- | otherwise = return (rhead xs, rtail xs) |
952 |
-@@ -49,7 +51,7 @@ rtailUsingLview xs = |
953 |
- Nothing -> empty |
954 |
- Just (y, ys) -> lcons x (rt y ys) |
955 |
- |
956 |
--rtailMUsingLview :: (Monad m,Sequence s) => s a -> m (s a) |
957 |
-+rtailMUsingLview :: (Fail.MonadFail m, Sequence s) => s a -> m (s a) |
958 |
- rtailMUsingLview xs = |
959 |
- case lview xs of |
960 |
- Nothing -> fail $ instanceName xs ++ ".rtailM: empty sequence" |
961 |
-@@ -200,7 +202,7 @@ inBoundsUsingSize :: Sequence s => Int -> s a -> Bool |
962 |
- inBoundsUsingSize i s = i >= 0 && i < size s |
963 |
- |
964 |
- lookupUsingLookupM :: Sequence s => Int -> s a -> a |
965 |
--lookupUsingLookupM i s = runIdentity (lookupM i s) |
966 |
-+lookupUsingLookupM i s = runFail_ (lookupM i s) |
967 |
- |
968 |
- lookupUsingDrop :: Sequence s => Int -> s a -> a |
969 |
- lookupUsingDrop i s |
970 |
-@@ -220,7 +222,7 @@ lookupWithDefaultUsingDrop d i s |
971 |
- | otherwise = lhead s' |
972 |
- where s' = drop i s |
973 |
- |
974 |
--lookupMUsingDrop :: (Monad m, Sequence s) => Int -> s a -> m a |
975 |
-+lookupMUsingDrop :: (Fail.MonadFail m, Sequence s) => Int -> s a -> m a |
976 |
- lookupMUsingDrop i s |
977 |
- -- XXX better error message! |
978 |
- | i < 0 || null s' = fail $ instanceName s |
979 |
-diff --git a/src/Data/Edison/Seq/FingerSeq.hs b/src/Data/Edison/Seq/FingerSeq.hs |
980 |
-index c74c70b..a34254c 100644 |
981 |
---- a/src/Data/Edison/Seq/FingerSeq.hs |
982 |
-+++ b/src/Data/Edison/Seq/FingerSeq.hs |
983 |
-@@ -37,9 +37,10 @@ import Prelude hiding (concat,reverse,map,concatMap,foldr,foldl,foldr1,foldl1, |
984 |
- zip,zip3,zipWith,zipWith3,unzip,unzip3,null) |
985 |
- |
986 |
- import qualified Control.Applicative as App |
987 |
--import Data.Edison.Prelude (measure, Measured()) |
988 |
-+import Data.Edison.Prelude (measure, Measured(), runFail_) |
989 |
- import qualified Data.Edison.Seq as S |
990 |
- import Data.Edison.Seq.Defaults |
991 |
-+import qualified Control.Monad.Fail as Fail |
992 |
- import Control.Monad.Identity |
993 |
- import Data.Monoid |
994 |
- import Data.Semigroup as SG |
995 |
-@@ -87,16 +88,16 @@ singleton :: a -> Seq a |
996 |
- lcons :: a -> Seq a -> Seq a |
997 |
- rcons :: a -> Seq a -> Seq a |
998 |
- append :: Seq a -> Seq a -> Seq a |
999 |
--lview :: (Monad m) => Seq a -> m (a, Seq a) |
1000 |
-+lview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1001 |
- lhead :: Seq a -> a |
1002 |
--lheadM :: (Monad m) => Seq a -> m a |
1003 |
-+lheadM :: (Fail.MonadFail m) => Seq a -> m a |
1004 |
- ltail :: Seq a -> Seq a |
1005 |
--ltailM :: (Monad m) => Seq a -> m (Seq a) |
1006 |
--rview :: (Monad m) => Seq a -> m (a, Seq a) |
1007 |
-+ltailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1008 |
-+rview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1009 |
- rhead :: Seq a -> a |
1010 |
--rheadM :: (Monad m) => Seq a -> m a |
1011 |
-+rheadM :: (Fail.MonadFail m) => Seq a -> m a |
1012 |
- rtail :: Seq a -> Seq a |
1013 |
--rtailM :: (Monad m) => Seq a -> m (Seq a) |
1014 |
-+rtailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1015 |
- null :: Seq a -> Bool |
1016 |
- size :: Seq a -> Int |
1017 |
- concat :: Seq (Seq a) -> Seq a |
1018 |
-@@ -127,7 +128,7 @@ reduce1' :: (a -> a -> a) -> Seq a -> a |
1019 |
- copy :: Int -> a -> Seq a |
1020 |
- inBounds :: Int -> Seq a -> Bool |
1021 |
- lookup :: Int -> Seq a -> a |
1022 |
--lookupM :: (Monad m) => Int -> Seq a -> m a |
1023 |
-+lookupM :: (Fail.MonadFail m) => Int -> Seq a -> m a |
1024 |
- lookupWithDefault :: a -> Int -> Seq a -> a |
1025 |
- update :: Int -> a -> Seq a -> Seq a |
1026 |
- adjust :: (a -> a) -> Int -> Seq a -> Seq a |
1027 |
-@@ -206,10 +207,10 @@ lheadM xs = lview xs >>= return . fst |
1028 |
- ltailM xs = lview xs >>= return . snd |
1029 |
- rheadM xs = rview xs >>= return . fst |
1030 |
- rtailM xs = rview xs >>= return . snd |
1031 |
--lhead = runIdentity . lheadM |
1032 |
--ltail = runIdentity . ltailM |
1033 |
--rhead = runIdentity . rheadM |
1034 |
--rtail = runIdentity . rtailM |
1035 |
-+lhead = runFail_ . lheadM |
1036 |
-+ltail = runFail_ . ltailM |
1037 |
-+rhead = runFail_ . rheadM |
1038 |
-+rtail = runFail_ . rtailM |
1039 |
- |
1040 |
- fold = foldr |
1041 |
- fold' = foldr' |
1042 |
-diff --git a/src/Data/Edison/Seq/JoinList.hs b/src/Data/Edison/Seq/JoinList.hs |
1043 |
-index 6922023..05855ba 100644 |
1044 |
---- a/src/Data/Edison/Seq/JoinList.hs |
1045 |
-+++ b/src/Data/Edison/Seq/JoinList.hs |
1046 |
-@@ -57,6 +57,7 @@ import qualified Control.Applicative as App |
1047 |
- |
1048 |
- import Data.Edison.Seq.Defaults |
1049 |
- import Control.Monad |
1050 |
-+import qualified Control.Monad.Fail as Fail |
1051 |
- import Data.Monoid |
1052 |
- import Data.Semigroup as SG |
1053 |
- import Test.QuickCheck |
1054 |
-@@ -68,16 +69,16 @@ singleton :: a -> Seq a |
1055 |
- lcons :: a -> Seq a -> Seq a |
1056 |
- rcons :: a -> Seq a -> Seq a |
1057 |
- append :: Seq a -> Seq a -> Seq a |
1058 |
--lview :: (Monad m) => Seq a -> m (a, Seq a) |
1059 |
-+lview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1060 |
- lhead :: Seq a -> a |
1061 |
--lheadM :: (Monad m) => Seq a -> m a |
1062 |
-+lheadM :: (Fail.MonadFail m) => Seq a -> m a |
1063 |
- ltail :: Seq a -> Seq a |
1064 |
--ltailM :: (Monad m) => Seq a -> m (Seq a) |
1065 |
--rview :: (Monad m) => Seq a -> m (a, Seq a) |
1066 |
-+ltailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1067 |
-+rview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1068 |
- rhead :: Seq a -> a |
1069 |
--rheadM :: (Monad m) => Seq a -> m a |
1070 |
-+rheadM :: (Fail.MonadFail m) => Seq a -> m a |
1071 |
- rtail :: Seq a -> Seq a |
1072 |
--rtailM :: (Monad m) => Seq a -> m (Seq a) |
1073 |
-+rtailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1074 |
- null :: Seq a -> Bool |
1075 |
- size :: Seq a -> Int |
1076 |
- concat :: Seq (Seq a) -> Seq a |
1077 |
-@@ -108,7 +109,7 @@ reduce1' :: (a -> a -> a) -> Seq a -> a |
1078 |
- copy :: Int -> a -> Seq a |
1079 |
- inBounds :: Int -> Seq a -> Bool |
1080 |
- lookup :: Int -> Seq a -> a |
1081 |
--lookupM :: (Monad m) => Int -> Seq a -> m a |
1082 |
-+lookupM :: (Fail.MonadFail m) => Int -> Seq a -> m a |
1083 |
- lookupWithDefault :: a -> Int -> Seq a -> a |
1084 |
- update :: Int -> a -> Seq a -> Seq a |
1085 |
- adjust :: (a -> a) -> Int -> Seq a -> Seq a |
1086 |
-diff --git a/src/Data/Edison/Seq/MyersStack.hs b/src/Data/Edison/Seq/MyersStack.hs |
1087 |
-index 30eb197..eca46a5 100644 |
1088 |
---- a/src/Data/Edison/Seq/MyersStack.hs |
1089 |
-+++ b/src/Data/Edison/Seq/MyersStack.hs |
1090 |
-@@ -49,8 +49,10 @@ import Prelude hiding (concat,reverse,map,concatMap,foldr,foldl,foldr1,foldl1, |
1091 |
- zip,zip3,zipWith,zipWith3,unzip,unzip3,null) |
1092 |
- |
1093 |
- import qualified Control.Applicative as App |
1094 |
-+import Data.Edison.Prelude ( runFail_ ) |
1095 |
- import qualified Data.Edison.Seq as S ( Sequence(..) ) |
1096 |
- import Data.Edison.Seq.Defaults |
1097 |
-+import qualified Control.Monad.Fail as Fail |
1098 |
- import Control.Monad.Identity |
1099 |
- import Data.Monoid |
1100 |
- import Data.Semigroup as SG |
1101 |
-@@ -63,16 +65,16 @@ singleton :: a -> Seq a |
1102 |
- lcons :: a -> Seq a -> Seq a |
1103 |
- rcons :: a -> Seq a -> Seq a |
1104 |
- append :: Seq a -> Seq a -> Seq a |
1105 |
--lview :: (Monad m) => Seq a -> m (a, Seq a) |
1106 |
-+lview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1107 |
- lhead :: Seq a -> a |
1108 |
--lheadM :: (Monad m) => Seq a -> m a |
1109 |
-+lheadM :: (Fail.MonadFail m) => Seq a -> m a |
1110 |
- ltail :: Seq a -> Seq a |
1111 |
--ltailM :: (Monad m) => Seq a -> m (Seq a) |
1112 |
--rview :: (Monad m) => Seq a -> m (a, Seq a) |
1113 |
-+ltailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1114 |
-+rview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1115 |
- rhead :: Seq a -> a |
1116 |
--rheadM :: (Monad m) => Seq a -> m a |
1117 |
-+rheadM :: (Fail.MonadFail m) => Seq a -> m a |
1118 |
- rtail :: Seq a -> Seq a |
1119 |
--rtailM :: (Monad m) => Seq a -> m (Seq a) |
1120 |
-+rtailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1121 |
- null :: Seq a -> Bool |
1122 |
- size :: Seq a -> Int |
1123 |
- concat :: Seq (Seq a) -> Seq a |
1124 |
-@@ -103,7 +105,7 @@ reduce1' :: (a -> a -> a) -> Seq a -> a |
1125 |
- copy :: Int -> a -> Seq a |
1126 |
- inBounds :: Int -> Seq a -> Bool |
1127 |
- lookup :: Int -> Seq a -> a |
1128 |
--lookupM :: (Monad m) => Int -> Seq a -> m a |
1129 |
-+lookupM :: (Fail.MonadFail m) => Int -> Seq a -> m a |
1130 |
- lookupWithDefault :: a -> Int -> Seq a -> a |
1131 |
- update :: Int -> a -> Seq a -> Seq a |
1132 |
- adjust :: (a -> a) -> Int -> Seq a -> Seq a |
1133 |
-@@ -246,7 +248,7 @@ inBounds i xs = inb xs i |
1134 |
- | i < j = (i >= 0) |
1135 |
- | otherwise = inb xs' (i - j) |
1136 |
- |
1137 |
--lookup i xs = runIdentity (lookupM i xs) |
1138 |
-+lookup i xs = runFail_ (lookupM i xs) |
1139 |
- |
1140 |
- lookupM i xs = look xs i |
1141 |
- where look E _ = fail "MyersStack.lookup: bad subscript" |
1142 |
-diff --git a/src/Data/Edison/Seq/RandList.hs b/src/Data/Edison/Seq/RandList.hs |
1143 |
-index 8fe97bd..8d2d38b 100644 |
1144 |
---- a/src/Data/Edison/Seq/RandList.hs |
1145 |
-+++ b/src/Data/Edison/Seq/RandList.hs |
1146 |
-@@ -55,8 +55,10 @@ import Prelude hiding (concat,reverse,map,concatMap,foldr,foldl,foldr1,foldl1, |
1147 |
- |
1148 |
- import qualified Control.Applicative as App |
1149 |
- |
1150 |
-+import Data.Edison.Prelude ( runFail_ ) |
1151 |
- import qualified Data.Edison.Seq as S( Sequence(..) ) |
1152 |
- import Data.Edison.Seq.Defaults |
1153 |
-+import qualified Control.Monad.Fail as Fail |
1154 |
- import Control.Monad.Identity |
1155 |
- import Data.Monoid |
1156 |
- import Data.Semigroup as SG |
1157 |
-@@ -69,16 +71,16 @@ singleton :: a -> Seq a |
1158 |
- lcons :: a -> Seq a -> Seq a |
1159 |
- rcons :: a -> Seq a -> Seq a |
1160 |
- append :: Seq a -> Seq a -> Seq a |
1161 |
--lview :: (Monad m) => Seq a -> m (a, Seq a) |
1162 |
-+lview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1163 |
- lhead :: Seq a -> a |
1164 |
--lheadM :: (Monad m) => Seq a -> m a |
1165 |
-+lheadM :: (Fail.MonadFail m) => Seq a -> m a |
1166 |
- ltail :: Seq a -> Seq a |
1167 |
--ltailM :: (Monad m) => Seq a -> m (Seq a) |
1168 |
--rview :: (Monad m) => Seq a -> m (a, Seq a) |
1169 |
-+ltailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1170 |
-+rview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1171 |
- rhead :: Seq a -> a |
1172 |
--rheadM :: (Monad m) => Seq a -> m a |
1173 |
-+rheadM :: (Fail.MonadFail m) => Seq a -> m a |
1174 |
- rtail :: Seq a -> Seq a |
1175 |
--rtailM :: (Monad m) => Seq a -> m (Seq a) |
1176 |
-+rtailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1177 |
- null :: Seq a -> Bool |
1178 |
- size :: Seq a -> Int |
1179 |
- concat :: Seq (Seq a) -> Seq a |
1180 |
-@@ -109,7 +111,7 @@ reduce1' :: (a -> a -> a) -> Seq a -> a |
1181 |
- copy :: Int -> a -> Seq a |
1182 |
- inBounds :: Int -> Seq a -> Bool |
1183 |
- lookup :: Int -> Seq a -> a |
1184 |
--lookupM :: (Monad m) => Int -> Seq a -> m a |
1185 |
-+lookupM :: (Fail.MonadFail m) => Int -> Seq a -> m a |
1186 |
- lookupWithDefault :: a -> Int -> Seq a -> a |
1187 |
- update :: Int -> a -> Seq a -> Seq a |
1188 |
- adjust :: (a -> a) -> Int -> Seq a -> Seq a |
1189 |
-@@ -269,7 +271,7 @@ inBounds i xs = inb xs i |
1190 |
- | i < j = (i >= 0) |
1191 |
- | otherwise = inb xs (i - j) |
1192 |
- |
1193 |
--lookup i xs = runIdentity (lookupM i xs) |
1194 |
-+lookup i xs = runFail_ (lookupM i xs) |
1195 |
- |
1196 |
- lookupM i xs = look xs i |
1197 |
- where look E _ = fail "RandList.lookup bad subscript" |
1198 |
-diff --git a/src/Data/Edison/Seq/RevSeq.hs b/src/Data/Edison/Seq/RevSeq.hs |
1199 |
-index 3652c7b..87deea6 100644 |
1200 |
---- a/src/Data/Edison/Seq/RevSeq.hs |
1201 |
-+++ b/src/Data/Edison/Seq/RevSeq.hs |
1202 |
-@@ -62,6 +62,7 @@ import qualified Data.Edison.Seq as S |
1203 |
- import qualified Data.Edison.Seq.ListSeq as L |
1204 |
- import Data.Edison.Seq.Defaults -- only used by concatMap |
1205 |
- import Control.Monad |
1206 |
-+import qualified Control.Monad.Fail as Fail |
1207 |
- import Data.Monoid |
1208 |
- import Data.Semigroup as SG |
1209 |
- import Test.QuickCheck |
1210 |
-@@ -75,16 +76,16 @@ singleton :: S.Sequence s => a -> Rev s a |
1211 |
- lcons :: S.Sequence s => a -> Rev s a -> Rev s a |
1212 |
- rcons :: S.Sequence s => a -> Rev s a -> Rev s a |
1213 |
- append :: S.Sequence s => Rev s a -> Rev s a -> Rev s a |
1214 |
--lview :: (S.Sequence s, Monad m) => Rev s a -> m (a, Rev s a) |
1215 |
-+lview :: (S.Sequence s, Fail.MonadFail m) => Rev s a -> m (a, Rev s a) |
1216 |
- lhead :: S.Sequence s => Rev s a -> a |
1217 |
--lheadM :: (S.Sequence s, Monad m) => Rev s a -> m a |
1218 |
-+lheadM :: (S.Sequence s, Fail.MonadFail m) => Rev s a -> m a |
1219 |
- ltail :: S.Sequence s => Rev s a -> Rev s a |
1220 |
--ltailM :: (S.Sequence s, Monad m) => Rev s a -> m (Rev s a) |
1221 |
--rview :: (S.Sequence s, Monad m) => Rev s a -> m (a, Rev s a) |
1222 |
-+ltailM :: (S.Sequence s, Fail.MonadFail m) => Rev s a -> m (Rev s a) |
1223 |
-+rview :: (S.Sequence s, Fail.MonadFail m) => Rev s a -> m (a, Rev s a) |
1224 |
- rhead :: S.Sequence s => Rev s a -> a |
1225 |
--rheadM :: (S.Sequence s, Monad m) => Rev s a -> m a |
1226 |
-+rheadM :: (S.Sequence s, Fail.MonadFail m) => Rev s a -> m a |
1227 |
- rtail :: S.Sequence s => Rev s a -> Rev s a |
1228 |
--rtailM :: (S.Sequence s, Monad m) => Rev s a -> m (Rev s a) |
1229 |
-+rtailM :: (S.Sequence s, Fail.MonadFail m) => Rev s a -> m (Rev s a) |
1230 |
- null :: S.Sequence s => Rev s a -> Bool |
1231 |
- size :: S.Sequence s => Rev s a -> Int |
1232 |
- concat :: S.Sequence s => Rev s (Rev s a) -> Rev s a |
1233 |
-@@ -115,7 +116,7 @@ reduce1' :: S.Sequence s => (a -> a -> a) -> Rev s a -> a |
1234 |
- copy :: S.Sequence s => Int -> a -> Rev s a |
1235 |
- inBounds :: S.Sequence s => Int -> Rev s a -> Bool |
1236 |
- lookup :: S.Sequence s => Int -> Rev s a -> a |
1237 |
--lookupM :: (S.Sequence s, Monad m) => Int -> Rev s a -> m a |
1238 |
-+lookupM :: (S.Sequence s, Fail.MonadFail m) => Int -> Rev s a -> m a |
1239 |
- lookupWithDefault :: S.Sequence s => a -> Int -> Rev s a -> a |
1240 |
- update :: S.Sequence s => Int -> a -> Rev s a -> Rev s a |
1241 |
- adjust :: S.Sequence s => (a -> a) -> Int -> Rev s a -> Rev s a |
1242 |
-diff --git a/src/Data/Edison/Seq/SimpleQueue.hs b/src/Data/Edison/Seq/SimpleQueue.hs |
1243 |
-index 64592b6..754108f 100644 |
1244 |
---- a/src/Data/Edison/Seq/SimpleQueue.hs |
1245 |
-+++ b/src/Data/Edison/Seq/SimpleQueue.hs |
1246 |
-@@ -59,6 +59,7 @@ import qualified Data.Edison.Seq.ListSeq as L |
1247 |
- import Data.Monoid |
1248 |
- import Data.Semigroup as SG |
1249 |
- import Control.Monad |
1250 |
-+import qualified Control.Monad.Fail as Fail |
1251 |
- import Test.QuickCheck |
1252 |
- |
1253 |
- -- signatures for exported functions |
1254 |
-@@ -68,16 +69,16 @@ singleton :: a -> Seq a |
1255 |
- lcons :: a -> Seq a -> Seq a |
1256 |
- rcons :: a -> Seq a -> Seq a |
1257 |
- append :: Seq a -> Seq a -> Seq a |
1258 |
--lview :: (Monad m) => Seq a -> m (a, Seq a) |
1259 |
-+lview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1260 |
- lhead :: Seq a -> a |
1261 |
--lheadM :: (Monad m) => Seq a -> m a |
1262 |
-+lheadM :: (Fail.MonadFail m) => Seq a -> m a |
1263 |
- ltail :: Seq a -> Seq a |
1264 |
--ltailM :: (Monad m) => Seq a -> m (Seq a) |
1265 |
--rview :: (Monad m) => Seq a -> m (a, Seq a) |
1266 |
-+ltailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1267 |
-+rview :: (Fail.MonadFail m) => Seq a -> m (a, Seq a) |
1268 |
- rhead :: Seq a -> a |
1269 |
--rheadM :: (Monad m) => Seq a -> m a |
1270 |
-+rheadM :: (Fail.MonadFail m) => Seq a -> m a |
1271 |
- rtail :: Seq a -> Seq a |
1272 |
--rtailM :: (Monad m) => Seq a -> m (Seq a) |
1273 |
-+rtailM :: (Fail.MonadFail m) => Seq a -> m (Seq a) |
1274 |
- null :: Seq a -> Bool |
1275 |
- size :: Seq a -> Int |
1276 |
- concat :: Seq (Seq a) -> Seq a |
1277 |
-@@ -108,7 +109,7 @@ reduce1' :: (a -> a -> a) -> Seq a -> a |
1278 |
- copy :: Int -> a -> Seq a |
1279 |
- inBounds :: Int -> Seq a -> Bool |
1280 |
- lookup :: Int -> Seq a -> a |
1281 |
--lookupM :: (Monad m) => Int -> Seq a -> m a |
1282 |
-+lookupM :: (Fail.MonadFail m) => Int -> Seq a -> m a |
1283 |
- lookupWithDefault :: a -> Int -> Seq a -> a |
1284 |
- update :: Int -> a -> Seq a -> Seq a |
1285 |
- adjust :: (a -> a) -> Int -> Seq a -> Seq a |
1286 |
-diff --git a/src/Data/Edison/Seq/SizedSeq.hs b/src/Data/Edison/Seq/SizedSeq.hs |
1287 |
-index a50b800..65c0ee9 100644 |
1288 |
---- a/src/Data/Edison/Seq/SizedSeq.hs |
1289 |
-+++ b/src/Data/Edison/Seq/SizedSeq.hs |
1290 |
-@@ -54,6 +54,7 @@ import Data.Edison.Seq.Defaults -- only used by concatMap |
1291 |
- import Data.Monoid |
1292 |
- import Data.Semigroup as SG |
1293 |
- import Control.Monad |
1294 |
-+import qualified Control.Monad.Fail as Fail |
1295 |
- import Test.QuickCheck |
1296 |
- |
1297 |
- |
1298 |
-@@ -65,16 +66,16 @@ singleton :: S.Sequence s => a -> Sized s a |
1299 |
- lcons :: S.Sequence s => a -> Sized s a -> Sized s a |
1300 |
- rcons :: S.Sequence s => a -> Sized s a -> Sized s a |
1301 |
- append :: S.Sequence s => Sized s a -> Sized s a -> Sized s a |
1302 |
--lview :: (S.Sequence s, Monad m) => Sized s a -> m (a, Sized s a) |
1303 |
-+lview :: (S.Sequence s, Fail.MonadFail m) => Sized s a -> m (a, Sized s a) |
1304 |
- lhead :: S.Sequence s => Sized s a -> a |
1305 |
--lheadM :: (S.Sequence s, Monad m) => Sized s a -> m a |
1306 |
-+lheadM :: (S.Sequence s, Fail.MonadFail m) => Sized s a -> m a |
1307 |
- ltail :: S.Sequence s => Sized s a -> Sized s a |
1308 |
--ltailM :: (S.Sequence s, Monad m) => Sized s a -> m (Sized s a) |
1309 |
--rview :: (S.Sequence s, Monad m) => Sized s a -> m (a, Sized s a) |
1310 |
-+ltailM :: (S.Sequence s, Fail.MonadFail m) => Sized s a -> m (Sized s a) |
1311 |
-+rview :: (S.Sequence s, Fail.MonadFail m) => Sized s a -> m (a, Sized s a) |
1312 |
- rhead :: S.Sequence s => Sized s a -> a |
1313 |
--rheadM :: (S.Sequence s, Monad m) => Sized s a -> m a |
1314 |
-+rheadM :: (S.Sequence s, Fail.MonadFail m) => Sized s a -> m a |
1315 |
- rtail :: S.Sequence s => Sized s a -> Sized s a |
1316 |
--rtailM :: (S.Sequence s, Monad m) => Sized s a -> m (Sized s a) |
1317 |
-+rtailM :: (S.Sequence s, Fail.MonadFail m) => Sized s a -> m (Sized s a) |
1318 |
- null :: S.Sequence s => Sized s a -> Bool |
1319 |
- size :: S.Sequence s => Sized s a -> Int |
1320 |
- concat :: S.Sequence s => Sized s (Sized s a) -> Sized s a |
1321 |
-@@ -105,7 +106,7 @@ reduce1' :: S.Sequence s => (a -> a -> a) -> Sized s a -> a |
1322 |
- copy :: S.Sequence s => Int -> a -> Sized s a |
1323 |
- inBounds :: S.Sequence s => Int -> Sized s a -> Bool |
1324 |
- lookup :: S.Sequence s => Int -> Sized s a -> a |
1325 |
--lookupM :: (S.Sequence s, Monad m) => Int -> Sized s a -> m a |
1326 |
-+lookupM :: (S.Sequence s, Fail.MonadFail m) => Int -> Sized s a -> m a |
1327 |
- lookupWithDefault :: S.Sequence s => a -> Int -> Sized s a -> a |
1328 |
- update :: S.Sequence s => Int -> a -> Sized s a -> Sized s a |
1329 |
- adjust :: S.Sequence s => (a -> a) -> Int -> Sized s a -> Sized s a |
1330 |
- |