strictures->import::into(1); # should pass version
DX::Types->import::into(1, ':types', ':assert');
DX::Utils->import::into(1, '*trace');
+ Types::Standard->import::into(1, 'Maybe');
Try::Tiny->import::into(1);
Moo->import::into(1);
# This would not be safe with method modifiers, but since the role
with 'DX::Role::Step';
-has proposition_list => (is => 'ro', required => 1);
+has proposition_list => (
+ is => 'ro', isa => PropositionList, required => 1
+);
-has on_completion_step => (is => 'ro', required => 1);
+has on_completion_step => (is => 'ro', isa => Step, required => 1);
-has on_failure_step => (is => 'ro', required => 1);
+has on_failure_step => (is => 'ro', isa => Maybe[Step], required => 1);
sub apply_to {
my ($self, $old_ss) = @_;
Step Action ActionPolicy Predicate Value
)),
qw(
- DependencyType _DependencyTree DependecySpec
+ DependencyType _DependencyTree DependencySpec
One DependencyGroupEntry DependencyGroup
),
)
class_type DictValue => { class => 'DX::Value::Dict' };
+declare PropositionList => as ArrayRef[Proposition];
+
declare AdjustmentList => as ArrayRef[Tuple[Step, SearchState]];
declare DependencyType => where {
declare DependencySpec => as Tuple[DependencyType, slurpy ArrayRef[Str]];
+declare DependencyList => as ArrayRef[DependencySpec];
+
declare One => where { !ref($_) and $_ eq 1 };
declare DependencyTree => # [ \%subtree, \%existence_of, ... ]