code: func callConstructor(c reflect.Value, args []reflect.Value) (interface{}, error) {
  	val, err := handleReturnValue(c.Call(args))
  	if err != nil {
  		name := runtime.FuncForPC(c.Pointer()).Name()
  		if name != "" {
  			// makes debugging easier
  			return nil, fmt.Errorf("transport constructor %s failed: %s", name, err)
  		}
  	}
  	return val, err
  }
docs: // calls the transport constructor and annotates the error with the name of the constructor.