[racket] Strange difference between (define (for-syntax)) and (define-for-syntax)

From: Danny Yoo (dyoo at hashcollision.org)
Date: Fri Aug 31 01:12:27 EDT 2012

>
>> Is require-for-syntax even a form in #lang racket?  I thought it doesn't
>> exist outside the mzscheme legacy language, at least according to
>>
>> http://docs.racket-lang.org/mzscheme/Old_Syntactic_Forms.html#(form._((lib._mzscheme/main..rkt)._require-for-syntax))
>
> I agree with you. It is strange that (require-for-syntax)
> works in #lang racket. That misled me.

Ah.  Ok, but it should not work.  If you try the following program
with just this content:

;;;;;;;;;;;;;;;;;;
#lang racket
(require-for-syntax (only-in ffi/unsafe ctype-sizeof _pointer))
;;;;;;;;;;;;;;;;;;

and press Run, then the error reporting will also properly complain
that 'require-for-syntax' isn't known by #lang racket.

In retrospect, what happened with your error appears to be the
compiler's failure to report the top/leftmost, earliest error in the
program's source.  Unfortunately, I haven't figured out why yet.

Posted on the users mailing list.