docs: def iter_object_acl(root):
      """Child-first discovery of ACEs for an object.
  
      Walks the ACL graph via ``__acl_bases__`` and yields the ACEs parsed from
      ``__acl__`` on each object.
  
      """
  
      for obj in iter_object_graph(root):
          for ace in parse_acl(getattr(obj, '__acl__', ())):
              yield ace