CoreLint: Add note explain the relation between arity and demandSig "arity"
There are three general options
-- The expected case
failIO1
[Arity=2, Dmd=<L><L>b, ...]
-- This is unlikely but possible. The rhs might be wrapped in profiling ticks or other edge cases.
failIO2
[Arity=0, Dmd=<L><L>b]
-- This is invalid! `failIO3` is only supposed to do any work if applied to two arguments. This is at odds with the Dmd sig which says no matter how many arguments (including zero) we apply this will bottom out.
failIO3
[Arity=2, Dmd=b]
I don't think we currently check for this but we probably should as iirc I saw this go wrong while I debugged #21440 (closed)
Edit: Arity=3, Dmd=<L><L>b
is also invalid. But we already lint for that.