indirect via resolve_value method
[scpubgit/DKit.git] / lib / DX / State.pm
index 051d0d2..d397958 100644 (file)
@@ -28,6 +28,11 @@ sub scope_var {
   $self->by_id->{$self->scope->{$name}};
 }
 
+sub resolve_value {
+  my ($self, $var) = @_;
+  $var->bound_value;
+}
+
 sub allocate_var {
   my ($self, $name, $var, $id_gen) = @_;
   my $id = join('_', $name, ++($id_gen->{$name}||='000'));
@@ -67,21 +72,19 @@ sub bind_value {
   );
 }
 
-sub bind_stream_then {
-  my ($self, $var, $stream, $then) = @_;
+sub bind_stream {
+  my ($self, $var, $stream) = @_;
   my $bound = $var->with_stream($stream);
   $self->but(
     by_id => { %{$self->by_id}, $var->id => $bound },
-    next_op => $then
   )->mark_choice($bound);
 }
 
-sub bind_root_set_then {
-  my ($self, $var_id, $set, $then) = @_;
+sub bind_root_set {
+  my ($self, $var_id, $set) = @_;
   my $bound = $self->by_id->{$var_id}->with_root_set($set);
   $self->but(
     by_id => { %{$self->by_id}, $var_id => $bound },
-    next_op => $then
   )->mark_choice($bound);
 }