code: function List(value, path) {
  
      if (process.env.NODE_ENV === 'production') {
        if (identity) {
          return value; // just trust the input if elements must not be hydrated
        }
      }
  
      if (process.env.NODE_ENV !== 'production') {
        path = path || [displayName];
        assert(isArray(value), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/') + ' (expected an array of ' + typeNameCache + ')'; });
      }
  
      var idempotent = true; // will remain true if I can reutilise the input
      var ret = []; // make a temporary copy, will be discarded if idempotent remains true
      for (var i = 0, len = value.length; i < len; i++ ) {
        var actual = value[i];
        var instance = create(type, actual, ( process.env.NODE_ENV !== 'production' ? path.concat(i + ': ' + typeNameCache) : null ));
        idempotent = idempotent && ( actual === instance );
        ret.push(instance);
      }
  
      if (idempotent) { // implements idempotency
        ret = value;
      }
  
      if (process.env.NODE_ENV !== 'production') {
        Object.freeze(ret);
      }
  
      return ret;
    }
docs: the list is identity iif type is identity