On Wed, 14 Nov 2007, Phil Bewig wrote:
I think I am saying (eq? stream-type promise-type) is #t and Andre is saying (eqv? stream-type promise-type) is #f. Both statements are correct. Since both stream-type and promise-type are abstract, I can mix them up inside (streams primitive) without consequence, except that it causes some confusion. I guess it is more precise to say that the type of the stream-car is a promise, not a stream, except that in the implementation they are the same thing.
I do not agree that it is without consequence. From (stream? (stream-car s)) ==> #t one would conclude that the car element is always either infinite or a finite stream ending in stream-null, which is not true. Andre