1234567891011121314151617181920212223242526272829303132333435363738394041424344454647(** A [CodeptUnitSansCodeId] uniquely identifies a {!Unit.t}
while ignoring the {!Unit.code} field. *)typeunit_precision=Unit.precision=Exact|Approxletcompare_unit_precisiont1t2=match(t1,t2)with|Exact,Approx->-1|Exact,Exact->0|Approx,Approx->0|Approx,Exact->1typem2l_kind=M2l.kind=Structure|Signatureletcompare_m2l_kindt1t2=match(t1,t2)with|Structure,Signature->-1|Structure,Structure->0|Signature,Signature->0|Signature,Structure->1typet={path:Namespaced.t;src:Pkg.t;kind:m2l_kind;precision:unit_precision;}letcompare{path=a1;src=b1;kind=c1;precision=d1}{path=a2;src=b2;kind=c2;precision=d2}=matchNamespaced.comparea1a2with|0->(matchDerivPkg.compareb1b2with|0->(matchcompare_m2l_kindc1c2with|0->compare_unit_precisiond1d2|c->c)|c->c)|c->cletof_unit(unit:_Unit.t)={path=unit.path;src=unit.src;kind=unit.kind;precision=unit.precision;}