Approximate patch, without documentation. If this is accepted, I can write documentation too. I submitted legal papers for FSF years ago. (func-arity 'car) (1 . 1) (func-arity 'caar) (1 . 1) (func-arity 'magit-log-all) (0 . 2) (func-arity 'format) (1 . many) (func-arity (lambda (&rest x))) (0 . many) Return value is the same as with `subr-arity' except here any callable is accepted and you don't need `symbol-function' or `indirect-function'. Autoloading is also supported transparently. Paul