[racket] Issue with require/typed and the json library
On Dec 5, 2014, at 11:30 PM, Alexis King <lexi.lambda at gmail.com> wrote:
> I’ve been having an issue figuring out how to properly use the json library in typed racket, so I posted a question about it on SO. Any help would be greatly appreciated!
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users
> The trouble is that a jsexpr is not a struct, jsexpr? is simply a predicate that tests whether or not a given value fits a certain structure.
It doesn’t have to be a struct, but the problem is that typed racket doesn’t know that a value of type String for instance will be of type JSExpr or not, so you would have to put (assert x jsexpr?) around everything that you want to treat as a jsexpr.
To the rest of the list:
> (require/typed json
> [jsexpr? (-> Any Boolean : JSExpr)])
>
> Unfortunately, this doesn't work, either, because filters can't be used in require/typed.
Is there any particular reason why there can’t be filters in require/typed for types where there can be a predicate created by make-predicate ?
It still wouldn’t work for JSExpr because it can’t define a predicate, but is there any reason why something like this couldn’t work?
(require/typed 2htdp/universe
[key-event? (Any -> Boolean : #:+ String)])
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20141206/47bc226e/attachment.html>