Formal comment #28 (defect) {real,rational,integer}-valued procedures need a rationale. Reported by: John Cowan Component: baselibrary Version: 5.91 From what I can make out from the examples, the *-valued? procedures return #t if the number has an imaginary part of inexact zero, (where real?, rational?, and integer? all rightly return #f), and real-valued? in particular returns #f on NaN (where real? returns #t). What are these procedures for? R6RS should say. RESPONSE: The R6RS should say that the `*-valued' procedures test whether a given number can be coerced to the specified type without loss of numerical accuracy. Their behavior is different from the "regular" numerical type predicates, whose behavior is motivated by closure properties designed to enable statically predictable semantics and efficient implementation. The R6RS specification of `real-valued?' should be changed so it returns #t on +nan.0.