code: function ArrayConversion(conversions, arg) {
    this.arg = arg;
    this.conversions = conversions;
    this.value = conversions.map(function(conversion) {
      return conversion.value;
    }, this);
  
    this._status = Status.combine(conversions.map(function(conversion) {
      return conversion.getStatus();
    }));
  
    // This message is just for reporting errors like "not enough values"
    // rather that for problems with individual values.
    this.message = '';
  
    // Predictions are generally provided by individual values
    this.predictions = [];
  }
docs: ArrayConversion is a special Conversion, needed because arrays are converted
  member by member rather then as a whole, which means we can track the
  conversion if individual array elements. So an ArrayConversion acts like a
  normal Conversion (which is needed as Assignment requires a Conversion) but
  it can also be devolved into a set of Conversions for each array member.