Jose, RE adding comments to AST meta data.  Realized I don’t  have time to add 
it.  But what are your feeling on me putting up a bounty on it?

> On Apr 16, 2019, at 12:02, José Valim <[email protected]> wrote:
> 
> I have to disagree on some points:
> 
> 1.  Traversing the AST is not as complex as it sounds. You literally need 
> four clauses (and the first two can be written as proxy to the third):
> 
> def traverse({left, meta, right})
> def traverse({one, two})
> def traverse([_ | _] = list)
> def traverse(other)
> 
> 2. If we converted everything to 3 element tuples, the issue is not only 
> Macro.keywordify as there are also macros that match on atoms too (and on 
> strings too albeit less common). For instance, every Phoenix application does 
> it . So making everything a three-element tuple would hurt that.
> 
> 3. Note that {:integer, [], 1} and {:atom, [], "foo"} would be their own AST 
> nodes too, as there are now new rules for what the 3 element actually is. 
> Sure, it is more consistent in terms of metadata, but you are not really 
> reducing the number of nodes. You could make them {:integer, meta, [1]} and 
> similar but that would mean introducing new special forms.
> 
> I definitely agree that having a fixed place for metadata would improve 
> certain cases but the trade-offs are much more nuanced than implied. The 
> current AST was not optimized for reconstruction but for developer ergonomics 
> and I believe the proposed standardisation would make certain features much 
> more bureaucratic.
> 
> José Valim
> www.plataformatec.com.br
> Skype: jv.ptec
> Founder and Director of R&D
>  
> -- 
> You received this message because you are subscribed to the Google Groups 
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JDiCU2-viWn06FOwLAQKTZ-ufTPdihUn8UnaTcC5ZHfw%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/D78F2CE6-1EA1-4C16-8EDE-37FBD7005ED7%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to