(our @CLASSES = qw(
Hypothesis Scope ResolvedPropositionSet Proposition DependencyMap
PropositionSequence QueryState ShellState ShellSession SearchState
+ ResolutionSpace ResolutionStrategy Resolution Expander SearchProcess
)),
(our @ROLES = qw(
- Step Action ActionPolicy Predicate Value
+ Step Action ActionPolicy Predicate Value ActionBuilder Update
)),
qw(
- DependencyType _DependencyTree DependecySpec
- One DependencyGroupEntry DependencyGroup
+ DependencyType _DependencyTree DependencySpec
+ One DependencyGroupEntry DependencyGroup ValuePath
+ EventType ApertureList DependencyList ShellMode
),
)
;
use Type::Utils -all;
use Types::Standard qw(
- ArrayRef Tuple HashRef Dict Maybe Optional slurpy Str
+ ArrayRef Tuple HashRef Dict Maybe Optional slurpy Str Enum
);
use DX::Utils qw(:event_types :dep_types);
class_type DictValue => { class => 'DX::Value::Dict' };
-declare AlternativeList => as ArrayRef[Tuple[Step, Hypothesis]];
+declare ValuePath => as ArrayRef[Str];
+
+declare PropositionList => as ArrayRef[Proposition];
+
+declare DecisionList => as ArrayRef[Tuple[ResolutionSpace, SearchState]];
declare DependencyType => where {
foreach my $cand (EXISTENCE_OF, TYPE_OF, INDICES_OF, CONTENTS_OF) {
declare _DependencyTree => where { is_DependencyTree($_) };
-declare DependencySpec => as Tuple[DependencyType, slurpy ArrayRef[Str]];
+declare DependencySpec => as Tuple[DependencyType, slurpy ValuePath];
+
+declare DependencyList => as ArrayRef[DependencySpec];
declare One => where { !ref($_) and $_ eq 1 };
(Optional[Maybe[HashRef[One]]]) x 4
]];
+declare ApertureList => as ArrayRef[Tuple[EventType, slurpy ValuePath]];
+
+declare ShellMode => as Enum[qw(shell query)];
+
## These were from the dependency group thing which makes no sense until
## we have scoping, so revisit it then
#