12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364openCoremoduletypeS_plain=sigtypetmoduleUpdate:sigmoduleDiff:sigtypet[@@derivingsexp_of]endtypet=Diff.tlist[@@derivingsexp_of]endvalupdate:t->Update.t->tvaldiffs:from:t->to_:t->Update.t(* This function should never return an empty list. *)valto_diffs:t->Update.tvalof_diffs:Update.t->tendmoduletypeS1_plain=sigtype'atmoduleUpdate:sigmoduleDiff:sigtype'at[@@derivingsexp_of]endtype'at='aDiff.tlist[@@derivingsexp_of]endvalupdate:'at->'aUpdate.t->'atvaldiffs:('a->'a->int)->from:'at->to_:'at->'aUpdate.t(* This function should never return an empty list *)valto_diffs:'at->'aUpdate.tvalof_diffs:'aUpdate.t->'atendmoduletypeS=sigmoduleUpdate:sigmoduleDiff:sigtypet[@@derivingbin_io,sexp]endtypet=Diff.tlist[@@derivingbin_io,sexp]endincludeS_plainwithmoduleUpdate:=UpdateendmoduletypeS1=sigmoduleUpdate:sigmoduleDiff:sigtype'at[@@derivingbin_io,sexp]endtype'at='aDiff.tlist[@@derivingbin_io,sexp]endincludeS1_plainwithmoduleUpdate:=Updateend