However the "Description" section introduces the bind function
with the "f" and "a" parameters exchanged:

For instance, the identity monad is:
1. Bind: (lambda (f a) (f a))

So far I fail to see a reason.
Short of other arguments I'd prefer the latter one as more
consistent.
One more question: would it be feasible to support
multi-valued monads like this made up one:
(define-monad
<complex-id>
(lambda (r i) (values r i))
(lambda (f r i) (f r i)))
best regards
/Jörg
.....