@@ -230,7 +230,7 @@ validationErrorsForPatchDMapWithPatchingMove m =
230230data ToFrom k p a = ToFrom (To k) (From k p a)
231231
232232-- | Helper data structure used for composing patches using the monoid instance.
233−data Fixup k p a
233+data Fixup k p
234234 = Fixup_Delete
235235 | Fixup_Update (These (DSum k (From k p)) (To k))
236236
@@ -251,42 +251,42 @@ instance forall k p
251251 (\_ a b -> ToFrom (_nodeInfo_to a) (_nodeInfo_from b))
252252 ma
253253 mb
254− h :: DSum k (ToFrom k p) -> [DSum k (Fixup k p)]
254+ h :: DSum k (ToFrom k p) -> [DSum k (Const (Fixup k p))]
255255 h ((between :: k between) :=> ToFrom editAfter editBefore) = case (editAfter, editBefore) of
256256 (To_Move (Some (toAfter :: k after)), From_Move ((fromBefore :: k before) :=> Flip p) :: From k p between) ->
257257 --case toAfter `geq` fromBefore of
258258 -- Just Refl | Just Refl <- Cat.isId p0 ->
259259 -- [ toAfter :=> Fixup_Delete ]
260260 -- _ ->
261− [ toAfter :=> Fixup_Update (This $ between :=> From_Move (fromBefore :=> Flip p))
262− , fromBefore :=> Fixup_Update (That $ To_Move $ Some toAfter)
261+ [ toAfter :=> Const (Fixup_Update $ This $ between :=> From_Move (fromBefore :=> Flip p))
262+ , fromBefore :=> Const (Fixup_Update $ That $ To_Move $ Some toAfter)
263263 ]
264264 (To_NonMove, From_Move (fromBefore :=> _)) ->
265265 -- The item is destroyed in the second patch, so indicate that it is
266266 -- destroyed in the source map
267− [fromBefore :=> Fixup_Update (That To_NonMove)]
267+ [fromBefore :=> Const ( Fixup_Update $ That To_NonMove)]
268268 --(To_Move (Some toAfter), From_Insert val) ->
269269 -- [toAfter :=> Fixup_Update (This $ From_Insert $ applyAlwaysHet2 p val)]
270270 --(To_Move (Some toAfter), From_Delete) ->
271271 -- [toAfter :=> Fixup_Update (This From_Delete)]
272272 (To_Move (Some toAfter), _) ->
273− [toAfter :=> Fixup_Update (This $ between :=> editBefore)]
273+ [toAfter :=> Const (Fixup_Update $ This $ between :=> editBefore)]
274274 (To_NonMove, _) ->
275275 []
276− mergeFixups _ Fixup_Delete Fixup_Delete = Fixup_Delete
277− mergeFixups _ (Fixup_Update a) (Fixup_Update b)
276+ mergeFixups _ (Const Fixup_Delete) (Const Fixup_Delete) = Const $ Fixup_Delete
277+ mergeFixups _ (Const (Fixup_Update a)) (Const (Fixup_Update b))
278278 | This x <- a, That y <- b
279− = Fixup_Update $ These x y
279+ = Const $ Fixup_Update $ These x y
280280 | That y <- a, This x <- b
281− = Fixup_Update $ These x y
281+ = Const $ Fixup_Update $ These x y
282282 mergeFixups _ _ _ = error "PatchDMapWithPatchingMove: incompatible fixups"
283283 fixups = DMap.fromListWithKey mergeFixups $ concatMap h connections
284284 combineNodeInfos _ nia nib = NodeInfo
285285 { _nodeInfo_from = _nodeInfo_from nia
286286 , _nodeInfo_to = _nodeInfo_to nib
287287 }
288− applyFixup :: k a -> NodeInfo k p a -> Fixup k p a -> Maybe (NodeInfo k p a)
289− applyFixup _ ni = \case
288+ applyFixup :: k a -> NodeInfo k p a -> Const (Fixup k p) a -> Maybe (NodeInfo k p a)
289+ applyFixup _ ni (Const fixup) = case fixup of
290290 Fixup_Delete -> Nothing
291291 Fixup_Update u -> Just $ NodeInfo
292292 { _nodeInfo_from = case _nodeInfo_from ni of