use Moose; use this; ust that; has this => (is => 'ro', isa => 'that'); sub do_this { my $self = shift; confess 'not implemented'; }