Skip to content

Arity can decrease with -prof

Something like

  f = \p\q.body
  x = scc "foo" f (\y.e)

shows f having arity 2, and hence x having arity 1. But when we inline f, we get

  x = scc "foo" let p = \x.e in \q.body

and the cheap-and-cheerful arity discovery function (exprArity) detects arity of 0, not 1. And then !CoreLint complains about the inconsistency of arity and strictness info.

This is unpleasant but not actually a problem.

It shows up in the conc052 test (in the stm package).

Part of #1546 (closed) might be the same problem.

Edited by Simon Peyton Jones
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information