, we'll have to
      be a judge on when to exit the loop and how to widen it.
      Given that the constructor is going to be a default constructor,
      a nice 95% solution might be to execute exactly one constructor and
      then default-bind the resulting LazyCompoundVal to the whole array;
      it'll work whenever the default constructor doesn't touch global state
      but only initializes the object to various default values.
      But if, say, we're making an array of strings,
      depending on 