The object returned by delay in the Schema is a "promise", but promises are not considered a type (therefore, there is no promise? Procedure and it is not specified as a type in R5RS or R6RS).
Is there a strong reason why this is so? It would be completely natural for me to do something like (if (promise? x) (force x) x) , for example. (And I see that some implementations will allow me not to force promises, while others will not). Also, if I can store something in variale and pass it on, I feel like it should be of type.
lazy-evaluation scheme
Jay
source share