What is the type of ADD1? What is the type of CALL/CC? How
about of (lambda (x) x)? Or
(let ([x 3])
(lambda (y)
(when (= (random 2) 0)
(set! x y))
x))
?
Once you answer those questions we can resolve many of the
things that have been said on this thread (such as "the Scheme
system always knows the type of every object").
Shriram
PS: In general, when asking questions about "every object" in
a language like Scheme, it's imperative to remember the
higher-order values also.