В справочнике по Typed Racket указано, что можно использовать with-type
для создания "типизированных областей" в нетипизированном коде.
with-type
позволяет использовать локализованные области Typed Racket в нетипизированном коде.
Однако немного неясно, как на самом деле использовать это. Очевидно, что использование такой функции должно происходить в нетипизированном модуле с использованием #lang racket
или чего-то подобного. Как следует импортировать привязку with-type
?
Наивная попытка состоит только в require
типизированном рэкете, но это приводит к сбоям в том, как TR перезаписывает существующие синтаксические формы.
(require typed/racket)
(struct point (x y)) ; complains about missing type annotations
Попытка использовать only-in
для простого требования with-type
и ничего другого не работает, но тогда не существует ни одной из требуемых привязок типов (таких как Number
или ->
).
Кажется, что единственный способ сделать это — вручную использовать only-in
для импорта только тех вещей, которые мне нужны, но это кажется трудоемким. Я мог бы и prefix-in
использовать, но тогда конечно все было бы разбросано префиксами.
Есть ли рекомендуемый способ сделать это, или эта функция несколько устарела?