[racket] TRing Places Issue Resolved
On Wed, Nov 7, 2012 at 11:55 AM, Ray Racine <ray.racine at gmail.com> wrote:
>
> As clearly explained in the Racket Doc for 'place', given (place ch body0
> ...) the bodies are lifted to the module top level. As generated binding,
> lift.0 is lifted to the top level there is no Type declaration for TR to
> see, so the single 'ch' arg of the lifted wrapping lambda is of type Any.
> Hence, the necessity of the added (when (place? ch) ...).
The better way to fix this would be to annotate `ch` with the type
`Place`, like this:
(place #{ch : Place} ...)
Annotating binding positions in macros like this is why the #{} syntax exists.
--
sam th
samth at ccs.neu.edu