OK, what about this suggestion in the OO spirit of Ruby?
puts <<("interpolate", "indent", "indent terminator")|EOS
| string
EOS
where the args can be strings or symbols, or possibly an array. I.e.
treat << as a method call that can take parmeters. If/when we get
named parameters then "margin" = "|", or that could be done with a
hash, or some such could be added.
The main diffculty I see with this is: What is the |EOS passed in
as? I suppose at present it doesn't have a type in the same way
that | in thing{|p} print p} doesn't -- it is probably just a token
for the parser. There may be difficulties here, because we can't
insist that << has brackets for this style of parameterisation,
because of introducing an exception to the general rule that methods
don't *need* parentheses.
Hugh