package myclass; use moose; # this won't work since ElementRole is a role has parts => (is => 'ro', isa => 'ArrayRef[ElementRole]'); # this won't work since it is an arrayref has parts => (is => 'ro', does => 'ElementRole');