Subject: Documentation for arity procedures doesn't match behavior

From: John Cowan <[email-masked]>
Date: Sat, 28 Mar 2020 17:42:25 -0400

Interaction showing the problem

$ guile

GNU Guile 2.2.6

Copyright (C) 1995-2019 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.

This program is free software, and you are welcome to redistribute it

under certain conditions; type `,show c' for details.

Enter `,help' for help.

scheme@(guile-user)> (use-modules (system vm program))

scheme@(guile-user)> program-arities

ERROR: Unbound variable: program-arities. ; should be defined

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.

scheme@(guile-user)> (arity:nreq +) ; 0 arguments required, correct

$1 = 0

scheme@(guile-user)> (arity:rest? +) ; rest argument, correct

$2 = #f

scheme@(guile-user)> (arity:nreq car) ; 1 argument required, bad

$3 = 0

scheme@(guile-user)> (program-arguments-alist car) ; correct

$4 = ((required _) (optional) (keyword) (allow-other-keys? . #f) (rest .
#f))

scheme@(guile-user)>

The same thing happens in Guile 3, and on both Mac and Linux.