Neaten up and generalise to has-arity? predicate rather than returning
the first method it sees (which might not be the appropriate one)