Or maybe the expansion could be tweaked? (and a test case added?) Robby
On Tue, Jun 25, 2013 at 10:50 AM, Sam Tobin-Hochstadt <sa...@ccs.neu.edu>wrote: > On Mon, Jun 24, 2013 at 8:21 AM, Matthias Felleisen > <matth...@ccs.neu.edu> wrote: > > > > On Jun 23, 2013, at 8:34 PM, Sam Tobin-Hochstadt wrote: > > > >>> > >>> After porting nearly everything I was left with typing up the > command-line > >>> parser. However, I am getting a type error at the following simplified > part: > >> > >> Here's a version that type checks: > https://gist.github.com/samth/5847063 > >> > >> The key is giving a type annotation to `fname` using the #{} syntax. > >> Typed Racket can figure out how to typecheck the expansion only if you > >> give it that hint. And the #{} syntax is for adding such hints with > >> macros like `command-line` that didn't anticipate Typed Racket. > > > > > > I think this answer is not fair. > > > > Because > > > > On Jun 23, 2013, at 2:21 PM, Tim K. wrote: > > > >> I wonder, why does fname have the "Any" type? Yes, I didn't explicitly > give > >> fname a type, but I was hoping that the typed version of "command-line" > >> would do that > > > > is correct. command-line in a typed context should know that what flows > into > > its world is a string. > > This could mean one of two things. One is that `command-line` could > be treated specially in Typed Racket (or there's a > `typed/racket/command-line` library), so that it's like those > identifiers were already given the type `String`. This would be > technically challenging (without requiring the extra library), and is, > I think, a bad idea. The other is that Typed Racket could improve its > inference, so that it can just tell that only `String` is possible > there. This is my preferred solution, but it will require some > significant work on improving inference in Typed Racket that I don't > think will happen in the very near future. > > Sam > ____________________ > Racket Users list: > http://lists.racket-lang.org/users >
____________________ Racket Users list: http://lists.racket-lang.org/users