add trace primitive
Matt S Trout [Sat, 27 Feb 2016 21:25:00 +0000 (21:25 +0000)]
lib/DX/Utils.pm

index 9c89107..b7a47f8 100644 (file)
@@ -11,7 +11,7 @@ my @const = (
 our @EXPORT_OK = (
   @const,
   (my @builders = qw(step string number dict proposition)),
-  'deparse',
+  'deparse', 'trace',
 );
 
 our %EXPORT_TAGS = (
@@ -42,6 +42,13 @@ our $VALUE_EXISTS = 1;
 our @VALUE_EXISTS = (EXISTENCE_OF(), INDICES_OF(), TYPE_OF(), CONTENTS_OF());
 our @VALUE_SET = (INDICES_OF(), TYPE_OF(), CONTENTS_OF());
 
+sub trace {
+  my ($tag, $thing) = @_;
+  my $dp = deparse($thing);
+  $dp =~ s/\n//;
+  warn "${tag}: ${dp}\n";
+}
+
 sub step {
   require DX::Step::Normal;
   DX::Step::Normal->new(@_);