Having immersed myself into this mindset a bit, I am pretty much convinced of it. Because the idea of taking super-common debug routines and making them easy to type and spot is so compelling, I feel like PROBE has to be in that set. So I've been thinking this might be arranged such that:
--
is an alias for DUMP (now that we have the ME and MY operators)??
is an alias for PROBE!!
is an alias for BREAKPOINT (invisible)...
is "TBD" (non-invisible/valued breakpoint, gives opportunity to resume w/value)
With "invisibles" like COMMENT and ELIDE rocking the scene (in a very good way), it's extremely nice having -- acting as DUMP did, and being invisible. Especially since DUMP treats strings just as labels.
all [
some-condition
-- "got past first step"
some-other [12 (condition) 34]
-- "got past second step"
more-stuff #running <whatever>
]
If you were putting in throw away debug output, why would you ever use a PRINT? DUMP is flexible and can be made even moreso. Here you have invisibility (doesn't affect the ALL's logic), and an easy way of spotting when you've left the debug code in.
(Note: I've been wanting to make an argument that PRINT should probably only take BLOCK! and TEXT!, for reasonings very similar to why there was backpedaling on non-block branches. This might help bolster that argument, since casual dumping and printing of variables for debugging would have a superior solution.)
It's neat. So it feels like historical Rebol had a good thing going with this direction, and Ren-C has made that thing even better. Taking back --
for nobler purposes was a good step, and taking back ==
(see the IS and = plan) will be another forward step.
Apologies to Perl6, but we're now back to using zero ideas from perl again.