code: function DeferredType(typeSpec) {
      if (typeof typeSpec.defer !== 'function') {
          throw new Error('Instances of DeferredType need typeSpec.defer to be a function that returns a type');
      }
      Object.keys(typeSpec).forEach(function(key) {
          this[key] = typeSpec[key];
      }, this);
  }
docs: A we don't know right now, but hope to soon.