unison-merge-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Unison.Merge.Diff

Synopsis

Documentation

diffSynhashedDefns :: ThreeWay (DefnsF2 (Map Name) Synhashed Referent TypeReference) -> (TwoWay (DefnsF3 (Map Name) DiffOp Synhashed Referent TypeReference), TwoWay (DefnsF2 (Map Name) Updated Referent TypeReference)) Source #

diffSynhashedDefns defns, given the output of synhashDefns, computes the two two-way diffs (each consisting of the "core" diffs, i.e. addsdeleteupdates, alongside the propagated updates, i.e. updates that have the same synhash but different Unison hashes).

humanizeDiffs :: ThreeWay Names -> TwoWay (DefnsF3 (Map Name) DiffOp Synhashed Referent TypeReference) -> TwoWay (DefnsF2 (Map Name) Updated Referent TypeReference) -> TwoWay (DefnsF2 (Map Name) HumanDiffOp Referent TypeReference) Source #

Post-process a diff to identify relationships humans might care about, such as whether a given addition could be interpreted as an alias of an existing definition, or whether an add and deletion could be a rename.