code: func anyImplements(thing reflect.Value, iface reflect.Type) (reflect.Value, bool) {
  	if thing.Type().Implements(iface) {
  		return thing, true
  	} else if thing.CanAddr() && reflect.PtrTo(thing.Type()).Implements(iface) {
  		return thing.Addr(), true
  	}
  	return reflect.Value{}, false
  }
docs: // anyImplements determines whether an interface is implemented by a value, or a
  // pointer to that value. It returns a potentially new value which can be cast
  // to the interface, and a boolean. If the boolean is false, the value will be
  // the zero value, and cannot be cast to the interface.