our @EXPORT_OK = (
@const,
- (my @builders = qw(step string number dict proposition)),
+ (my @builders = qw(step rspace rstrat res string number dict proposition)),
'deparse', '*trace',
);
sub trace { }
+sub _expand_dep {
+ my ($type, @path) = @{$_[0]};
+ my @expanded = map {
+ ref() ? @{$_->value_path or return ()} : $_
+ } @path;
+ return [ $type, @expanded ];
+}
+
+sub _expand_deps {
+ [ map _expand_dep($_), @{$_[0]} ]
+}
+
sub step {
- require DX::Step::Normal;
- DX::Step::Normal->new(@_);
+ require DX::Step::ResolveProposition;
+ my %args = @_;
+ DX::Step::ResolveProposition->new(
+ %args,
+ depends_on => _expand_deps($args{depends_on}),
+ );
+}
+
+sub rspace {
+ require DX::ResolutionSpace;
+ DX::ResolutionSpace->new(@_);
+}
+
+sub rstrat {
+ require DX::ResolutionStrategy;
+ DX::ResolutionStrategy->new(@_);
+}
+
+sub res {
+ require DX::Resolution;
+ DX::Resolution->new(@_);
}
sub string {
DX::Deparse->new;
};
my ($thing) = @_;
- $dp->fmt($thing);
+ $dp->format($thing);
}
}