finish adding type constraints
[scpubgit/DX.git] / lib / DX / Types.pm
index 2482f01..627efe6 100644 (file)
@@ -7,7 +7,7 @@ use Type::Library
     (our @CLASSES = qw(
       Hypothesis Scope ResolvedPropositionSet Proposition DependencyMap
       PropositionSequence QueryState ShellState ShellSession SearchState
-      ResolutionSpace ResolutionStrategy Resolution
+      ResolutionSpace ResolutionStrategy Resolution Expander SearchProcess
     )),
     (our @ROLES = qw(
       Step Action ActionPolicy Predicate Value ActionBuilder Update
@@ -15,13 +15,13 @@ use Type::Library
     qw(
       DependencyType _DependencyTree DependencySpec
       One DependencyGroupEntry DependencyGroup ValuePath
-      EventType ApertureList DependencyList
+      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);
 
@@ -71,6 +71,8 @@ declare DependencyTree => # [ \%subtree, \%existence_of, ... ]
 
 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
 #