<div dir="ltr"><div class="gmail-gE gmail-iv gmail-gt"><table class="gmail-cf gmail-gJ" cellpadding="0"><tbody><tr class="gmail-acZ gmail-xD"><td colspan="3"><table class="gmail-cf gmail-adz" cellpadding="0"><tbody><tr><td class="gmail-ady"><div class="gmail-ajy" tabindex="0"><img class="gmail-ajz" id="gmail-:m1" src="https://mail.google.com/mail/u/0/images/cleardot.gif" alt=""></div></td></tr></tbody></table></td></tr></tbody></table></div><div class="gmail-"><div id="gmail-:wc" class="gmail-ii gmail-gt"><div id="gmail-:wd" class="gmail-a3s gmail-aXjCH"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div><div><div>Template literal(includes tagged template) is so strong feature.<br></div><div>It
 makes it possible to add elegant DSL for Library(or maybe framework) 
which also can interact with js.([styled-component proofed this with 
their api](<a href="https://www.styled-components.com/" target="_blank">https://www.styled-components.com/</a>))<br></div><div>Why don't we use them to enhance ECMAScript's API?<br></div><div><br>If we allow using tagged template to constructors just like this:<br><br></div><div>```js<br></div><div>new Constructor`<br></div><div>  blahlah<br></div><div>`; // what about to call this syntax as tagged constructor?<br></div><div>```<br></div><div><br></div><div>we can do something like this:<br></div><div><br></div><div>#### If `Function` construcor is taggable<br><br></div>```js<br></div>const sum = new Function`<br></div>  (a, b) {<br></div>    return a + b;<br><div>  }<br><div>`;<br><div>```<br><br></div><div>#### If `Map` constructor is taggable<br><br></div><div>```js<br></div><div>new Map`<br>     a: 1234,<br>     one: ${() => 1},<br>     str: 'Hello!',<br>     bool: true<br> `; </div><div>```<br><br></div><div>#### If `Set` constructor is taggable. and It supports list comprehension<br><br></div><div>```js<br>new Set`<br>  ${range} <br>    -> ${x => x * 2}<br>    -> ${x => x < 10}<br> `; // Set [2, 4, 6, 8]<br>```<br></div><div><br></div><div>Feedback is welcome!<div class="gmail-adL"><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div>