<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 9 February 2018 at 11:19, H. S. Teoh via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
>    3. string mixins always used in place of some sort of more sanitary<br>
>    macro system<br>
</span>[...]<br>
<br>
That gave me a double-take.  "Sanitary" and "macro" in the same<br>
sentence?!  That's just ... I know what you *mean*, but the thought is<br>
just, wow. :-D<br></blockquote><div><br></div><div>I feel like the keyword there was MORE sanitary.</div><div>Writing functions that assemble code into a string is definitely not the best way... you lose syntax highlighting, code completion/suggestion, refactoring, etc, in any meaningful way.</div><div>The less your meta requires you resort to strings, the better... and that folds back into my #1 point; storage class separate from the type system is the greatest complexity on meta; almost always leads to text mixins, because there's no machinery for storage classes (or attributes). Can not alias, compound, aggregate... anything.</div></div></div></div>