code: func canBeNil(typ reflect.Type) bool {
  	switch typ.Kind() {
  	case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:
  		return true
  	}
  	return false
  }
docs: // canBeNil reports whether an untyped nil can be assigned to the type. See reflect.Zero.