MOLD and LOAD parity

Historical MOLD/ONLY is indeed backwards...

...which motivated making an exception for MOLD not taking antiforms for splices. MOLD of a splice will mold the contents with no delimiters:

>> mold [a b c]
== "[a b c]"

>> mold spread [a b c]
== "a b c"

Nice and neat.

I'm going with the concept that DO and LOAD require a script header.

Also: LOAD was previously needed to get an initial binding. But with pure virtual binding, unbound code is a more practical currency, and you should be getting an unbound value back from "LOAD-VALUE".

So that's two reasons why LOAD-VALUE is badly named in the current world. It's really TRANSCODE:ONE, plus ensuring that there's no leftover. Output lacks a binding and input lacks a header, so it's not LOAD-like.

Calling it transcode:one is accurate, though a little wordy... :frowning:

I don't know what the alternatives would be. TO-VALUE?

>> to-value "{abc}"
== {abc}  ; a text! value... but "{abc}" was a text! value too

Maybe learnable that it really means (STRING-)TO(-TRANSCODED-SINGLE)-VALUE without having to write that all out? But it's actually TO-ELEMENT if you want to be fully accurate, since you can't get antiforms. :face_with_spiral_eyes:

I think that TRANSCODE:ONE is probably the best idea for this, for now. It puts the functionality in the right place, where people who use it can find more powerful versions (or people using the more powerful versions can realize there's a simpler convenience available).