[racket] An example of let-vs-define: SICP 2.64

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Fri Nov 2 17:33:41 EDT 2012

On Fri, Nov 2, 2012 at 5:29 PM, Grant Rettke <grettke at acm.org> wrote:
> Internal define is awesome.

I agree in general, but I did recently fix a bug in Typed Racket that
was made possible entirely by use of internal `define`:
https://github.com/plt/racket/commit/0e71f2d5dc#L1R16

The original code had a `let`, which I changed to define, and then
renamed a variable, leading to a bug that would have been caught with
let, but instead produced an infinite loop in some cases with internal
define.

Just a cautionary tale,
Sam

Posted on the users mailing list.