Note [Arity for non-recursive join bindings]
Note [Arity for recursive join bindings] deals with recursive join bindings. But what about /non-recursive/ones? If we just call findRhsArity, it will call arityType. And that can be expensive when we have deeply nested join points: join j1 x1 = join j2 x2 = join j3 x3 = blah3 in blah2 in blah1 (e.g. test T18698b). So we call cheapArityType instead. It's good enough for practical purposes. (Side note: maybe we should use cheapArity for the RHS of let bindings in the main arityType function.)
References 1
- Arity for recursive join bindings GHC.Core.Opt.Arity
Referenced by 1
- GHC.Core.Opt.Arity call site