b* binder for list decomposition, using nth.
(b* (((nths a b c) (list-fn ...)))
is equivalent to
(b* ((tmp (list-fn ...))
(a (nth 0 tmp))
(b (nth 1 tmp))
(c (nth 2 tmp)))
Each of the arguments to the nths binder may be a recursive binder, and
nths may be nested inside other bindings.
This binder is very similar to the list binder, see patbind-list. However, here we put in explicit calls of nth, whereas the
list binder will put in, e.g., car, cadr, etc. The list
binder is likely to be more efficient in general, but the nths binder may
occasionally be useful when you have nth disabled.