Hi Ian, Sorry for the late reply. Ian Price skribis: > ludo@gnu.org (Ludovic Courtès) writes: > >> Hi Göran, >> >> Sorry for the delay. >> >> Göran Weinholt skribis: >> >>> the case-lambda form is specified in r6rs-lib as accepting any number of >>> clauses, including zero. So this should not give an error: >> >> My interpretation of the ‘case-lambda’ implementation on p. 15 of >> r6rs-lib.pdf is that ‘case-lambda-help’ raises an assertion violation >> when ‘case-lambda’ is called with zero clauses. > The case-lambda-help macro is expanded from within > (lambda args > (let ((n (length args))) > (case-lambda-help args n > (fmls b1 b2 ...) ...))) > > So, the full expansion is > (lambda args > (let ((n (length args))) > (assertion-violation #f "unexpected number of arguments"))) > > and thus a procedure that always returns an assertion violation. Indeed, thanks for the correction (I was thinking of ‘assertion-violation’ as a compile-time assertion.) So, here’s a tentative patch for review: