Personally I would like to see the error here be that define-struct/contract is not bound. If the order of either top level expansion or #%app worked slightly differently, we could get that error first and all would be clear.
Carl Eastlund On Wed, Nov 17, 2010 at 4:15 PM, Matthias Felleisen <matth...@ccs.neu.edu> wrote: > > Isn't the true problem that we pretend uniformity of syntax and values? In > this case, we specifically pretend that functions and syntaxes may consume > the same kind of keyword-labeled arguments. Except that when you make a small > mistake, the brittleness of this arrangement shows up and you get WEIRD ERROR > MESSAGES. > > When systems work, nobody cares how they work. It's errors that make people > notice, and errors happen all the time. > > > > On Nov 17, 2010, at 3:55 PM, Jon Rafkind wrote: > >> I found this error message confusing. The problem is I forgot to require >> racket/contract. >> >> #lang racket/base >> >> (define-struct/contract foo ([a any/c]) #:transparent) >> >>> >> application: missing argument expression after keyword at: #:transparent >> in: (#%app define-struct/contract foo ((a any/c)) #:transparent) >> >> I was confused because I thought I had a (require racket/contract) >> somewhere but apparently I didn't. I don't know if anything at all can >> be done about it.. _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users