@@ -137,7 +137,7 @@ instance TraversableWithIndex k (PatchMapWithMove k) where
137
137
138
138
-- | Create a 'PatchMapWithMove', validating it
139
139
patchMapWithMove :: Ord k => Map k (NodeInfo k v ) -> Maybe (PatchMapWithMove k v )
140
- patchMapWithMove = fmap coerce . PM. patchMapWithPatchingMove . coerce
140
+ patchMapWithMove = fmap PatchMapWithMove' . PM. patchMapWithPatchingMove . coerce
141
141
142
142
-- | Create a 'PatchMapWithMove' that inserts everything in the given 'Map'
143
143
patchMapWithMoveInsertAll :: Map k v -> PatchMapWithMove k v
@@ -175,7 +175,7 @@ deleteMapKey = PatchMapWithMove' . PM.deleteMapKey
175
175
--
176
176
-- __Warning:__ when using this function, you must ensure that the invariants of 'PatchMapWithMove' are preserved; they will not be checked.
177
177
unsafePatchMapWithMove :: Map k (NodeInfo k v ) -> PatchMapWithMove k v
178
- unsafePatchMapWithMove = PatchMapWithMove' . PM. unsafePatchMapWithPatchingMove . coerce
178
+ unsafePatchMapWithMove = coerce PM. unsafePatchMapWithPatchingMove
179
179
180
180
-- | Apply the insertions, deletions, and moves to a given 'Map'
181
181
instance Ord k => Patch (PatchMapWithMove k v ) where
@@ -199,7 +199,7 @@ patchThatSortsMapWith cmp = PatchMapWithMove' . PM.patchThatSortsMapWith cmp
199
199
-- | Create a 'PatchMapWithMove' that, if applied to the first 'Map' provided,
200
200
-- will produce a 'Map' with the same values as the second 'Map' but with the
201
201
-- values sorted with the given ordering function.
202
- patchThatChangesAndSortsMapWith :: forall k v . (Ord k , Ord v ) => (v -> v -> Ordering ) -> Map k v -> Map k v -> PatchMapWithMove k v
202
+ patchThatChangesAndSortsMapWith :: (Ord k , Ord v ) => (v -> v -> Ordering ) -> Map k v -> Map k v -> PatchMapWithMove k v
203
203
patchThatChangesAndSortsMapWith cmp oldByIndex newByIndexUnsorted = patchThatChangesMap oldByIndex newByIndex
204
204
where newList = Map. toList newByIndexUnsorted
205
205
newByIndex = Map. fromList $ zip (fst <$> newList) $ sortBy cmp $ snd <$> newList
@@ -255,21 +255,21 @@ bitraverseNodeInfo
255
255
=> (k0 -> f k1 )
256
256
-> (v0 -> f v1 )
257
257
-> NodeInfo k0 v0 -> f (NodeInfo k1 v1 )
258
- bitraverseNodeInfo fk fv = fmap coerce
258
+ bitraverseNodeInfo fk fv = fmap NodeInfo'
259
259
. PM. bitraverseNodeInfo fk (\ ~ Proxy -> pure Proxy ) fv
260
260
. coerce
261
261
262
262
-- | Change the 'From' value of a 'NodeInfo'
263
263
nodeInfoMapFrom :: (From k v -> From k v ) -> NodeInfo k v -> NodeInfo k v
264
- nodeInfoMapFrom f = coerce . PM. nodeInfoMapFrom (unFrom' . f . From' ) . coerce
264
+ nodeInfoMapFrom f = coerce $ PM. nodeInfoMapFrom (unFrom' . f . From' )
265
265
266
266
-- | Change the 'From' value of a 'NodeInfo', using a 'Functor' (or
267
267
-- 'Applicative', 'Monad', etc.) action to get the new value
268
268
nodeInfoMapMFrom
269
269
:: Functor f
270
270
=> (From k v -> f (From k v ))
271
271
-> NodeInfo k v -> f (NodeInfo k v )
272
- nodeInfoMapMFrom f = fmap coerce
272
+ nodeInfoMapMFrom f = fmap NodeInfo'
273
273
. PM. nodeInfoMapMFrom (fmap unFrom' . f . From' )
274
274
. coerce
275
275
@@ -303,7 +303,7 @@ bitraverseFrom
303
303
=> (k0 -> f k1 )
304
304
-> (v0 -> f v1 )
305
305
-> From k0 v0 -> f (From k1 v1 )
306
- bitraverseFrom fk fv = fmap coerce
306
+ bitraverseFrom fk fv = fmap From'
307
307
. PM. bitraverseFrom fk (\ ~ Proxy -> pure Proxy ) fv
308
308
. coerce
309
309
0 commit comments