use 5.008003; use MooseX::Declare; class Thread::Task::Exception { use MooseX::Types::Moose qw(Str HashRef); has 'msg' => ( isa => Str, is => 'ro', required => 0, predicate => 'has_msg', ); has 'params' => ( isa => HashRef, is => 'ro', required => 0, predicate => 'has_params', ); } 1;