
The idea of object::role is to be a base class for roles like object::does, object::stash and object::id. it handles parsing of import arguments, installing methods into the caller's namespace (like exporter, but using a technique that is immune to namespace::autoclean) and tracking which packages have consumed your role.
while object::role is a base class for roles, it is not itself a role, so does not export anything. instead, your role must inherit from it.