[racket-dev] syntax-local-lift-require is useless wrt submodules

From: Asumu Takikawa (asumu at ccs.neu.edu)
Date: Mon Jan 12 11:06:44 EST 2015

On 2015-01-11 23:29:28 -0800, Alexis King wrote:
>    This is a real problem, since Typed Racket’s require/typed form uses
>    local-require, which in turn uses syntax-local-lift-require. This means
>    that require/typed currently cannot require submodules.

Interesting, thanks for tracking this down! IIRC Typed Racket switched
to using `local-require` in order to support uses of `require/typed` in
the REPL/top-level.

(as the comment on
 https://github.com/racket/typed-racket/blob/master/typed-racket-lib/typed-racket/utils/require-contract.rkt#L57
 notes)

So one possible solution is to switch back to using `require` but also
overhaul how TR handles the REPL to avoid these issues.

(for the REPL, local expanding everything at once doesn't work well
 because an early definition in a `begin` has to be registered
 before later clauses are typechecked)

Cheers,
Asumu

Posted on the dev mailing list.