No-Interstitial-Delimiter Sequence Proposal ("FUSED!")

I'm Starting To Think I'd Be A Fool Not To Add FUSED!

Ren-C has become profoundly rich and flexible, in ways that are mind-bending. And if you think about what FUSED! could do, it would take this further.

I'm not a huge fan of being forced into space significance for BLOCK!, e.g. [a][b] being different from [a] [b] ... and this has been a big sticking point. I've mentioned my reasoning is because I like to write my code like:

either condition [
    code
][
    other code
]

And I don't like it as much with a space between the brackets:

either condition [
    code
] [
    other code
]

Though something I have noticed with new statics via BIND is that I do not like gluing FENCE! onto block:

func [
    spec
] bind {
    var (value)
}[
    body
]

That bothers me for some reason, and I prefer a space:

func [
    spec
] bind {
    var (value)
} [
    body
]

I think that the nature of FUSED! suggests that it should PANIC by default, especially to help catch stray cases where you've made one on accident, and you usually have to quote it or use it in a dialected context.

Using RebindableSyntax you could on a case-by-case endorse some literals under evaluation for your particular domain, maybe?

I'll point out you'd now have more variations, like $10px and ^10px and @10px at your disposal for any FUSED!.

GROUP!s in Type Specs would have to mean FUSED!

If you think about matching things like @word! or 'tuple! or word!: in type specs, you see that interstitials like : have to be matched in the pattern.

>> match [word!:integer!] 'foo:10
== foo:10

>> match [word!:integer!] 'foo:<tag>
== \~null~\  ; antiform

But you can't do that for FUSED!...

>> match [integer!word!] '10px
** PANIC: integer!word! is undefined

Seems to me that this would have to steal GROUP! (or FENCE!, but GROUP! looks nicer I think).

>> match [(integer!)(word!)] '10px
== 10px

I Feel Like I'm Going To Have To Try It

The issues aren't trivial, but the dialecting potentials are enormous.

(I'll point out that @Ladislav always hated Plan -4, and thought you should have to write [a] [b] instead of [a][b], so at least one person feels the space significance is natural to respect...maybe I'd get used to it if I made myself do it.)

1 Like