In recursive definition of values we are introduced
to the term statically constructive, and I’m wondering if there is literature behind the term. In particular, I’m a bit lost on why we consider e is a variable statically constructive with respect to any set of names.
A variable is not peeking at the contents of the value being bound.
Thus constructing 1:: name1 in
let rec name1 = 1 :: name1
can be done independently of the contents of name1. One may read alternatively statically constructive as independent of the contents or never deconstructing.
Note that the compiler is currently using the more detailed mode analysis described by https://arxiv.org/pdf/1811.08134 to implement the constraints described by the manual.