docs: def property(func):
      """Wrap a function as a property.
  
      This differs from attribute by identifying properties explicitly listed
      in the class definition rather than named attributes defined on instances
      of a class at init time.
      """
      attr = abc.abstractmethod(func)
      attr.__iproperty__ = True
      attr = Property(attr)
      return attr