<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Sep 12, 2015 at 7:51 PM, Guilherme Andrade <span dir="ltr"><<a href="mailto:g@gandrade.net" target="_blank">g@gandrade.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Partially inspired by jlouis' erl-lenses[1] and an old discussion on
    this mailing list[2], I've been sketching a library for easier
    manipulation (both data fetching and updating) of deep data
    structures (records inside records, keylists inside records, etc.)</blockquote></div><br></div><div class="gmail_extra">Awesome idea :)<br><br></div><div class="gmail_extra">I think I'll lurk and see where you take this. Definitely it is one of the things we need in Erlang, but we also slightly lack the syntax expressiveness to make it really nice.<br><br></div><div class="gmail_extra">One thing I'd think about is to use maps as the canonical structure to which you blit input. This allows you to "melt" any tree-like data structure and then "cast" it in another format, eventually updating data along the path.<br><br></div><div class="gmail_extra">There is a nice set of algebraic properties underneath, which amends themselves to (stateless) quickchecking by the way.<br><br></div><div class="gmail_extra"><br clear="all"><br>-- <br><div class="gmail_signature">J.</div>
</div></div>