Is Require Coq.ssr.ssreflect
supposed to make previously parseable statements unparseable? (Syntax error: 'of' or 'of' expected after 'type' (in [tactic:constr_eval]). in Ltac reify_type ty := type.reify ltac:(reify_base_type) constr:(base.type) ty.
)
it has some notations using type
as a keyword
I thought notations and reserved notations followed Import?
I didn't see you wrote just require
I guess it's this
(* ssrvernac.mlg *)
GRAMMAR EXTEND Gram
GLOBAL: constr_eval;
constr_eval: TOP [
[ IDENT "type"; "of"; c = Constr.constr -> { Genredexpr.ConstrTypeOf c }]
];
END
(* Coq v8.1 notation uses "by" and "of" quasi-keywords, i.e., reserved *)
(* identifiers used as keywords. This is incompatible with ssreflect.v *)
(* which makes "by" and "of" true keywords, because of technicalities *)
(* in the internal lexer-parser API of Coq. We patch this here by *)
(* adding new parsing rules that recognize the new keywords. *)
maybe we should just make of
a keyword in the base grammar
Jason Gross said:
Is
Require Coq.ssr.ssreflect
supposed to make previously parseable statements unparseable? (Syntax error: 'of' or 'of' expected after 'type' (in [tactic:constr_eval]). inLtac reify_type ty := type.reify ltac:(reify_base_type) constr:(base.type) ty.
)
actually I don't get a syntax error
Require ssreflect.
Ltac reify_type ty := type.reify ltac:(reify_base_type) constr:(base.type) ty.
says Error: The reference reify_base_type was not found in the current environment.
Hm, seems to not be an issue in 8.15, but is an issue in 8.11 :-/
Last updated: Oct 13 2024 at 01:02 UTC