A student of mine is having trouble keeping track of when to use capital vs lowercase letters---a common problem I've seen before, with any intro language---and in particular, keeps trying to write True and False instead of true and false. After a very strange discussion with him I went and tested some things and was flabbergasted to discover that True actually was a defined name of which the value is opaque and the error messages deeply mysterious.
I get that you guys are working on Typed Racket, and I get that you think that adding all this extra syntax into tlfka Scheme will improve it. But I can't believe that anyone thought it would be a good idea to expose this in BSL. This isn't just a strange choice, it runs *precisely counter* to the *main stated goal* of the teaching languages, to exclude from the language anything that the students might accidentally type, that would be valid in the full language but was "not what they meant" and not something that they yet knew to avoid. This one is especially insidious because the mostly opaque value of True and False gets printed as "(make-signature ...)" which, since we *have* talked about function signatures, seems to make reference to some other concept which is a total red herring wrt the actual problem (at least as far as they're concerned). Consider the simple BSL program: ;; >5 : num -> boolean ; determines whether a given number is greater than 5 (define (>5 n) (> n 5)) (check-expect (>5 3) False) (check-expect (>5 7) True) This yields the test case failures: Actual value false differs from (make-signature ...), the expected value. at line 4, column 0 Actual value true differs from (make-signature ...), the expected value. at line 5, column 0 I nearly filed this as a bug, and I still claim that it is one, but once I figured out what was actually going on (and the TR connection) I figured I'd best post it here. -- -=-Don blaheta-=-dblah...@monm.edu-=-=-<http://www.monmsci.net/~dblaheta/>-=- A diva who specializes in risqué arias is an off-coloratura soprano. _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users