fully type Resolution* classes
[scpubgit/DX.git] / lib / DX / Types.pm
index 3434bb2..2482f01 100644 (file)
@@ -10,11 +10,12 @@ use Type::Library
       ResolutionSpace ResolutionStrategy Resolution
     )),
     (our @ROLES = qw(
-      Step Action ActionPolicy Predicate Value
+      Step Action ActionPolicy Predicate Value ActionBuilder Update
     )),
     qw(
       DependencyType _DependencyTree DependencySpec
-      One DependencyGroupEntry DependencyGroup
+      One DependencyGroupEntry DependencyGroup ValuePath
+      EventType ApertureList DependencyList
     ),
   )
 ;
@@ -34,9 +35,11 @@ foreach my $role (our @ROLES) {
 
 class_type DictValue => { class => 'DX::Value::Dict' };
 
+declare ValuePath => as ArrayRef[Str];
+
 declare PropositionList => as ArrayRef[Proposition];
 
-declare AdjustmentList => as ArrayRef[Tuple[Step, SearchState]];
+declare DecisionList => as ArrayRef[Tuple[ResolutionSpace, SearchState]];
 
 declare DependencyType => where {
   foreach my $cand (EXISTENCE_OF, TYPE_OF, INDICES_OF, CONTENTS_OF) {
@@ -54,7 +57,7 @@ declare EventType => where {
 
 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];
 
@@ -66,6 +69,8 @@ declare DependencyTree => # [ \%subtree, \%existence_of, ... ]
        (Optional[Maybe[HashRef[One]]]) x 4
      ]];
 
+declare ApertureList => as ArrayRef[Tuple[EventType, slurpy ValuePath]];
+
 ## These were from the dependency group thing which makes no sense until
 ## we have scoping, so revisit it then
 #