@@ -88,11 +88,11 @@ type To = ComposeMaybe
89-- |Test whether a 'PatchDMapWithMove' satisfies its invariants.
89-- |Test whether a 'PatchDMapWithMove' satisfies its invariants.
90validPatchDMapWithMove :: forall k v. (GCompare k, GEq k, GShow k) => DMap k (NodeInfo k v) -> Bool
90validPatchDMapWithMove :: forall k v. (GCompare k, GEq k, GShow k) => DMap k (NodeInfo k v) -> Bool
91−validPatchDMapWithMove = not . null . validPatchDMapWithMove'
91+validPatchDMapWithMove = not . null . validationErrorsForPatchDMapWithMove
93−-- |Test whether a 'PatchDMapWithMove' satisfies its invariants and give reasons why it doesn't.
93+-- |Enumerate what reasons a 'PatchDMapWithMove' doesn't satisfy its invariants, returning @[]@ if it's valid.
94−validPatchDMapWithMove' :: forall k v. (GCompare k, GEq k, GShow k) => DMap k (NodeInfo k v) -> [String]
94+validationErrorsForPatchDMapWithMove :: forall k v. (GCompare k, GEq k, GShow k) => DMap k (NodeInfo k v) -> [String]
95−validPatchDMapWithMove' m =
95+validationErrorsForPatchDMapWithMove m =
96 noSelfMoves `mappend` movesBalanced
96 noSelfMoves `mappend` movesBalanced
98 noSelfMoves = catMaybes . map selfMove . DMap.toAscList $ m
98 noSelfMoves = catMaybes . map selfMove . DMap.toAscList $ m
@@ -111,7 +111,7 @@ validPatchDMapWithMove' m =
111 Just $ "unbalanced move at destination key " <> gshow dst <> " supposedly from " <> gshow src <> " but source key has no move to key"
111 Just $ "unbalanced move at destination key " <> gshow dst <> " supposedly from " <> gshow src <> " but source key has no move to key"
112 unbalancedMove (src :=> NodeInfo _ (ComposeMaybe (Just dst))) =
112 unbalancedMove (src :=> NodeInfo _ (ComposeMaybe (Just dst))) =
113 case DMap.lookup dst m of
113 case DMap.lookup dst m of
114− Nothing -> Just $ " unbalancved move at source key " <> gshow src <> " supposedly going to " <> gshow dst <> " but destination key is not in the patch"
114+ Nothing -> Just $ " unbalanced move at source key " <> gshow src <> " supposedly going to " <> gshow dst <> " but destination key is not in the patch"
115 Just (NodeInfo (From_Move src') _) ->
115 Just (NodeInfo (From_Move src') _) ->
116 if isNothing (src' `geq` src)
116 if isNothing (src' `geq` src)
117 then Just $ "unbalanced move at source key " <> gshow src <> " to " <> gshow dst <> " is coming from " <> gshow src' <> " instead"
117 then Just $ "unbalanced move at source key " <> gshow src <> " to " <> gshow dst <> " is coming from " <> gshow src' <> " instead"
@@ -287,7 +287,7 @@ unsafePatchDMapWithMove = PatchDMapWithMove
287-- otherwise @Left errors@.
287-- otherwise @Left errors@.
288patchDMapWithMove :: (GCompare k, GEq k, GShow k) => DMap k (NodeInfo k v) -> Either [String] (PatchDMapWithMove k v)
288patchDMapWithMove :: (GCompare k, GEq k, GShow k) => DMap k (NodeInfo k v) -> Either [String] (PatchDMapWithMove k v)
289patchDMapWithMove dm =
289patchDMapWithMove dm =
290− case validPatchDMapWithMove' dm of
290+ case validationErrorsForPatchDMapWithMove dm of
291 [] -> Right $ unsafePatchDMapWithMove dm
291 [] -> Right $ unsafePatchDMapWithMove dm
292 errs -> Left errs
292 errs -> Left errs