Есть ли способ использовать идентификатор OCaml, который является зарезервированным ключевым словом в Reason?
Давайте рассмотрим следующий пример:
(* some_library.ml (valid OCaml) *)
type pub = {
x: string;
}
Когда я пытаюсь использовать тип pub
из Причины,
/* MyApp.re (invalid ReasonML) */
type someTypeAlias = Some_library.pub;
отображается ошибка синтаксиса, поскольку "pub" является зарезервированным ключевым словом в Reason.
Error: 743: pub is a reserved keyword, it cannot be used as an identifier. Try `pub_` or `_pub` instead
Если я попытаюсь использовать предложенные идентификаторы (_pub
или pub_
), это не сработает, поскольку они ожидают одно и то же имя в файле OCaml.
Если быть более точным, я пытаюсь использовать тип pub
в библиотеке Nocrypto .
Было бы неплохо, если бы был способ избежать ключевого слова в ReasonML или указать имя для доступа в OCaml ... Что-то вроде
/* MyApp.re (draft/invalid ReasonML) */
type someTypeAlias = Some_library.[@reason.keyword_as_identifier "pub"];
Есть что-то подобное? Или не было бы возможно создать какой-то обходной путь, используя external
? Я не очень рад разветвлению библиотеки только для переименования одного типа.