aboutsummaryrefslogtreecommitdiffhomepage
path: root/library
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2014-03-01 18:26:26 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2014-03-01 22:45:39 +0100
commit87b510e5b0f363724eae5db9f177f167a3586015 (patch)
tree204c7ad1e1ba38945ab58d74e28d8cf67201fe71 /library
parentbca756eaebf16b6145c65b53629219d2a0a8b1ba (diff)
Fixing pervasive comparisons
Diffstat (limited to 'library')
-rw-r--r--library/globnames.ml3
-rw-r--r--library/impargs.ml9
-rw-r--r--library/impargs.mli2
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]. *)