From f351b887265f0abce8d52ffcb7b9b2ee7bd8bc81 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 28 Jan 2015 13:47:41 -0400 Subject: rework Differences data type Eliminated complexity and future proofed. The most important change is that all functions over Difference are now total; any Difference that can be expressed should be handled. Avoids needs for sanity checking of inputs, and version skew with the future. Also, the difference.log now serializes a [Difference], not a Differences. This saves space and keeps it simpler. Note that [Difference] might contain conflicting differences (eg, [Version5, Version6]. In this case, one of them needs to consistently win over the others, probably based on Ord. --- Logs/Difference/Pure.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Logs/Difference') diff --git a/Logs/Difference/Pure.hs b/Logs/Difference/Pure.hs index 76d995a01..bbd4d348d 100644 --- a/Logs/Difference/Pure.hs +++ b/Logs/Difference/Pure.hs @@ -19,7 +19,7 @@ import Logs.UUIDBased parseDifferencesLog :: String -> (M.Map UUID Differences) parseDifferencesLog = simpleMap - . parseLog (Just . fromMaybe UnknownDifferences . readish) + . parseLog (Just . maybe UnknownDifferences Differences . readish) -- The sum of all recorded differences, across all UUIDs. allDifferences :: M.Map UUID Differences -> Differences -- cgit v1.2.3