Ahmn, yeah - missed the mails in between, to be precise:<br><div class="im"><br>Sounds great. <br><br>Just an idea to extend your idea a little bit, combining with mine:<br><br></div>What if `whatever ${test} foo` would just construct an object of Template?<br>

The Template object prototype could look lile this:<div class="im"><br>
<br>// In ES harmony syntax :)<br></div>Template.prototype = {<div class="im"><br>    toString() {...},<br>    getParts() {...},<br>    getValues() {...},<br>    ...<br>}<br><br>etc. pp.<br><br>This would normally lead to an implicit string conversion (toString()) where it's needed e.g. if you do something like that:<br>


<br>    whatever.innerHTML = `foo {$bar}`;<br><br></div>And you can use the 
full power of Templates when calling a function in standard way: 
safehtml(`foo ${bar}`) where the first argument would be an object 
representing the Template prototype + Template value initialized by the 
constructor.<br>
<br>Or you could construct a Template like this: new Template('foo ${bar}'); or Template('foo ${bar}')<br><br>This way Template's would be straight forward to use and can be implemented without any additional grammar magic.<br>


It would also lead to a late/delayed binding / rendering of the template - if toString() is called, not when the Template object is created which may be useful for performance too.<br><br>What do you think?<br><br>Thanks and regards,<br>
Aron