aboutsummaryrefslogtreecommitdiffhomepage
path: root/toplevel/classes.ml
diff options
context:
space:
mode:
Diffstat (limited to 'toplevel/classes.ml')
-rw-r--r--toplevel/classes.ml9
1 files changed, 7 insertions, 2 deletions
diff --git a/toplevel/classes.ml b/toplevel/classes.ml
index 9f3b3343c..288574882 100644
--- a/toplevel/classes.ml
+++ b/toplevel/classes.ml
@@ -32,16 +32,20 @@ open Topconstr
open Decl_kinds
open Entries
-let hint_db = "typeclass_instances"
+let typeclasses_db = "typeclass_instances"
let qualid_of_con c =
Qualid (dummy_loc, shortest_qualid_of_global Idset.empty (ConstRef c))
+let set_rigid c =
+ Auto.add_hints false [typeclasses_db]
+ (Vernacexpr.HintsTransparency ([qualid_of_con c], false))
+
let _ =
Typeclasses.register_add_instance_hint
(fun inst pri ->
Flags.silently (fun () ->
- Auto.add_hints false [hint_db]
+ Auto.add_hints false [typeclasses_db]
(Vernacexpr.HintsResolve
[pri, CAppExpl (dummy_loc, (None, qualid_of_con inst), [])])) ())
@@ -228,6 +232,7 @@ let new_class id par ar sup props =
let cref = ConstRef cst in
Impargs.declare_manual_implicits false cref (Impargs.is_implicit_args()) arity_imps;
Impargs.declare_manual_implicits false (ConstRef proj_cst) (Impargs.is_implicit_args()) (List.hd fieldimpls);
+ set_rigid cst;
cref, [proj_name, proj_cst]
| _ ->
let idb = id_of_string ("Build_" ^ (string_of_id (snd id))) in