[racket] TRing Places Issue Resolved

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Wed Nov 7 12:37:22 EST 2012

On Wed, Nov 7, 2012 at 11:55 AM, Ray Racine <ray.racine at gmail.com> wrote:
>
> Appears the place top level lifting macro and the accompany use of the
> let-values misplaces (pun intended) the type annotation (ch : Place) in the
> let-values bindings, causing the unknown place? identifier error.  But it is
> an unknown identifier in let bindings and _not_ some sort of failure to
> correctly import 'place?' into TR.

I've finally figured out what was going on here -- when the type
annotation on `ch` is used, Typed Racket figures out that the lifted
procedure has input type `Place`, meaning that a contract like
`(place? . -> . any)` is generated.  Unfortunately, there was a bug
where `place?` was referenced in a helper file for constructing that
contract without a proper `(require (for-template ...))`.  That's what
led to the error, and the confusion here.

I'll push a fix shortly.
--
sam th
samth at ccs.neu.edu

Posted on the users mailing list.