aboutsummaryrefslogtreecommitdiffhomepage
path: root/toplevel
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <mattam@mattam.org>2013-11-22 12:35:33 +0100
committerGravatar Matthieu Sozeau <mattam@mattam.org>2014-05-06 09:58:56 +0200
commit1dd78acac418c0f69abb8d9f5d8db13351f01ccc (patch)
tree4833fb9c014ebedd94a4f46c1bc8d8c6d5396d56 /toplevel
parent25460d19599fd64aaeccbf4667737feb786ae7f6 (diff)
Various fixes of universe polymorphism and projections when they're set.
- Fix substitution of universes! - Properly refresh universes in typeclasses exact hints. Conflicts: kernel/term_typing.ml toplevel/obligations.ml
Diffstat (limited to 'toplevel')
-rw-r--r--toplevel/classes.ml3
1 files changed, 2 insertions, 1 deletions
diff --git a/toplevel/classes.ml b/toplevel/classes.ml
index 45dd6f1ec..2b00a6d86 100644
--- a/toplevel/classes.ml
+++ b/toplevel/classes.ml
@@ -172,9 +172,10 @@ let new_instance ?(abstract=false) ?(global=false) poly ctx (instid, bk, cl) pro
[] subst (snd k.cl_context)
in
let (_, ty_constr) = instance_constructor (k,u) subst in
+ let nf, subst = Evarutil.e_nf_evars_and_universes evars in
let termtype =
let t = it_mkProd_or_LetIn ty_constr (ctx' @ ctx) in
- fst (Evarutil.e_nf_evars_and_universes evars) t
+ nf t
in
Evarutil.check_evars env Evd.empty !evars termtype;
let ctx = Evd.universe_context !evars in