About return values:
* SRFI authors don't annotate return values consistently.
Often they are left out of the signature, and only discussed
in prose in the description.
* So if the tool extracts a return value from the signature, we can
assume that it's correct. But if it doesn't extract any return value,
we can't assume anything about what the procedure returns.
* Some procedures return multiple values as a list. At least SRFI 1 has
many of these and they are marked up with square brackets like [a b].
The tool currently treats this as two values instead of one list.
This can be changed; the right approach is up for debate. The current
approach gives output like this:
;; span pred clist -> [list clist]
(procedure span
(arg pred)
(arg clist)
(return list)
(return clist))