In another episode of 'Where should you use maps vs. ...?', was reflecting on this post:
I don't know if maps are the most suitable choice here, but they would certainly be the least awkward expression of such options were they a little more versatile:
load/options %some-resource.reb #( tabs: no CRLF: yes )
I'm not a fan of Red's specific literal notation for this, but running with it for the purposes of this thought. If a function were to receive such a map, could you REDUCE or COMPOSE it so as not to have to qualify each word?
reduce options 123 => #( tabs: #[false] CRLF: #[true] )
Would a literal map be bound to its containing context?
reduce use [bar][ bar: "Bar" #(foo: bar) ] => #(foo: "Bar")
Red does not support this, but seems a reasonable expectation to me.
Permitting REDUCE which would presumably only reduce values and not keys and most likely creating a copy would have a distinct advantage over the awkward composition of objects in the cases where they have been used in these cases:
do-this-way: func [ content /option1 /option2 ][ do-this/options content reduce #( option1: option1 option2: option2 ) ]