package MyApp::RoleA;
use Moose::Role;
use MooseX::Role::AttributeOverride;

has_plus 'fun' => (
    default => 'yep',
);

1;

package MyApp::RoleB;
use Moose::Role;

requires qw(have);

1;
package MyApp;
use Moose;


has 'fun' => (
    is => 'rw',
    isa => 'Str'
);

sub have {
    shift->fun('you betcha');
}

with qw(MyApp::RoleA MyApp::RoleB);

1;

package main;

use Test::More tests => 2;

my $test = MyApp->new();

is($test->fun, 'yep', "Default was set by role");
$test->have;
is($test->fun, 'you betcha', "can be modified");





