code: func TryClose(r interface{}) error {
  	if r, ok := r.(Closer); ok {
  		return r.Close()
  	}
  	if r, ok := r.(SimpleCloser); ok {
  		r.Close()
  		return nil
  	}
  	return ErrNotCloseable
  }
docs: // TryClose attempts to close a resource, the resource is expected to
  // implement either Closeable or CloseableResult.