On Friday, Ryan Culpepper wrote: > On 06/15/2012 01:12 PM, Asumu Takikawa wrote: > > Hi all, > > > > Recently I was using the `stx-car` function from `syntax/stx`. At some > > point, I had called it on a non-syntax pair and the error message came > > from `car`, which is used inside the implementation of `stx-car`. > > > > I thought it would be nice to add contracts in `syntax/stx` for better > > error messages, but it turns out that the contract library depends on it > > and so it's impossible to do without introducing cycles. > > > > So I would like to propose a `syntax/syntax` library with the following: > > * provides `syntax/stx` functions with contracts attached > > (caveat: core libraries like `racket/contract` would still use > > `syntax/stx`) > > * for consistency with the rest of the language, `stx-car` and > > friends would be renamed to use the `syntax-` prefix instead of > > `stx-`. > > -1
-1 too, because it's dealing with a dependency spaghetti situation by adding another inter-collection line instead of removing one. > I sometimes wonder if we should make a racket/pre-contracts > subcollection and just stuff all of racket/contract/base's > dependencies in there, then say everything else is allowed (maybe > even expected) to use contracts. I don't see how that would help -- you'll still get the same errors. As for the above problem, `syntax/stx' is pretty simple, so maybe the functionality can be done directly in the contracts code. (And that removes a dependency.) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________ Racket Developers list: http://lists.racket-lang.org/dev