I'm writing some Typed Racket code that works with syntax objects, which 
currently can't be converted to contracts since syntax chaperones aren't a 
thing. As a result, if I want untyped racket users to use my library, I have to 
`unsafe-provide` functions in my module.

However, all of my procedures are simple enough that if I wrapped them in 
contracts that checked the `syntax?` predicate they ought to work fine in most 
cases. This might not be sound from a TR perspective, but it's a huge step up 
from `unsafe-provide`. Is there a way I can somehow get something like this 
example to work?

#lang typed/racket

(require typed/racket/unsafe)
(unsafe-provide (contract-out [foo (-> string? string?)]))

(: foo (-> String String))
(define (foo s) s)

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to