diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2014-03-01 18:26:26 +0100 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2014-03-01 22:45:39 +0100 |
commit | 87b510e5b0f363724eae5db9f177f167a3586015 (patch) | |
tree | 204c7ad1e1ba38945ab58d74e28d8cf67201fe71 /library | |
parent | bca756eaebf16b6145c65b53629219d2a0a8b1ba (diff) |
Fixing pervasive comparisons
Diffstat (limited to 'library')
-rw-r--r-- | library/globnames.ml | 3 | ||||
-rw-r--r-- | library/impargs.ml | 9 | ||||
-rw-r--r-- | library/impargs.mli | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/library/globnames.ml b/library/globnames.ml index cb9e4c872..1eb21b6eb 100644 --- a/library/globnames.ml +++ b/library/globnames.ml @@ -132,7 +132,8 @@ module ExtRefOrdered = struct match x, y with | TrueGlobal rx, TrueGlobal ry -> global_ord_user rx ry | SynDef knx, SynDef kny -> kn_ord knx kny - | _, _ -> Pervasives.compare x y + | TrueGlobal _, SynDef _ -> -1 + | SynDef _, TrueGlobal _ -> 1 end type global_reference_or_constr = diff --git a/library/impargs.ml b/library/impargs.ml index 61ea7a87a..5ec21a3c9 100644 --- a/library/impargs.ml +++ b/library/impargs.ml @@ -119,6 +119,13 @@ let argument_position_eq p1 p2 = match p1, p2 with | Hyp h1, Hyp h2 -> Int.equal h1 h2 | _ -> false +let explicitation_eq ex1 ex2 = match ex1, ex2 with +| ExplByPos (i1, id1), ExplByPos (i2, id2) -> + Int.equal i1 i2 && Option.equal Id.equal id1 id2 +| ExplByName id1, ExplByName id2 -> + Id.equal id1 id2 +| _ -> false + type implicit_explanation = | DepRigid of argument_position | DepFlex of argument_position @@ -352,7 +359,7 @@ let set_manual_implicits env flags enriching autoimps l = | (Name id,imp)::imps -> let l',imp,m = try - let eq = (Pervasives.(=) : explicitation -> explicitation -> bool) in (* FIXME *) + let eq = explicitation_eq in let (b, fi, fo) = List.assoc_f eq (ExplByName id) l in List.remove_assoc_f eq (ExplByName id) l, (Some Manual), (Some (b, fi)) with Not_found -> diff --git a/library/impargs.mli b/library/impargs.mli index de8d89166..4fb056986 100644 --- a/library/impargs.mli +++ b/library/impargs.mli @@ -143,3 +143,5 @@ type implicit_discharge_request = | ImplInteractive of global_reference * implicits_flags * implicit_interactive_request +val explicitation_eq : Constrexpr.explicitation -> Constrexpr.explicitation -> bool +(** Equality on [explicitation]. *) |