Can anyone make an argument why I would ever want to use inheritance when I have roles available aside from modules which require you to inherit from them (e.g., DBIx::Class)? The more I use roles, the less I understand why anyone would want to use the inheritance model. Even with our admittedly complex requirements on our BBC team, inheritance just doesn't seem necessary.
Currently I'm rewriting a huge subsystem of "builders" where every single object uses the PIPs::API::Builder::Role::DoesBuilder role. Traditionally I would have made that a base class, but by making it a role, I gain the composition-time safety that inheritance can't give me. Counter-arguments welcome.