Module Mavryk_micheline.Micheline_diff

val diff : prev:(_, string) Micheline.node -> current:(_, string) Micheline.node -> unit -> Micheline_printer.node option

diff ~prev ~current () computes the difference between expressions prev and current. It depends on primitives being ordinary strings so that they can be displayed easily. To simplify things, differences in annotations are ignored. Annotations from prev are preserved.

Returns None if expressions are identical or Some d if they're not, where d is a copy of prev with information about differences with respect to current displayed as comments.

Parts of the expression that are present in prev but missing in current get "-" comment. Parts present in current but missing in prev get "+" comment. Parts which appear in both versions are the same as in prev and current version, if different, is put after a "->" mark in the comment.