Add comment.
-
Owner
Even with canonical projections/primitive records, the
Eval hnf in
used by ssreflect should still work, right?Canonical Structure foo : fooT := Eval hnf in ...
-
Maintainer
No, it does not. We need more than just a head normal form, we need some the canonical projections to be turned into head normal form.
If you do what you suggest you will get something like:
{| language.val := ectx_language.val Λ; ... |}
For the case of, say,
heap_lang
, you wantectx_language.val Λ
to be turned intoheap_lang.val
. -
Maintainer
Note that they explicitly give the value of the canonical projection. We do not want to do that in this case, since we have plenty of them (
val
,expr
,state
,ectx
). -
Owner
Ah, I see. So we'd need some more advanced
ltac:(...)
magic then. -
Maintainer
Probably, if we want to make it work with primitive projections.
Please register or sign in to comment