More on roles

package Role::A;
use Moose::Role;
requires 'b';
sub a { ... }

package Role::B;
use Moose::Role;
requires 'a';
sub b { ... }

package Class;
use Moose;
with qw/Role::A Role::B/; # works fine

Class->can('a'), Class->can('b')