<div dir="auto">Would it be possible to have a syntactic sugar(parse_transform)  for wildcards:</div><div dir="auto"><span class="pl-smi" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box"><br></span></div><div style="background-color:rgba(0,0,0,0)!important;border-color:rgb(255,255,255)!important;color:rgb(255,255,255)!important" dir="auto"><span class="pl-smi" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box">Ret</span><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;color:rgb(240,246,252)"> </span><span class="pl-k" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box">=</span><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;color:rgb(240,246,252)"> </span><span class="pl-en" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box">khepri</span><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;color:rgb(240,246,252)">:</span><span class="pl-en" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box">get</span><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;color:rgb(240,246,252)">(</span><span class="pl-s" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box"><span class="pl-pds" style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;color:var(--color-prettylights-syntax-string)">"</span>/stock/wood/_</span><span class="pl-s" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span class="pl-pds" style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0)">"</span></span></div><div style="background-color:rgba(0,0,0,0);border-color:rgb(255,255,255)" dir="auto"><span class="pl-s" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span class="pl-pds" style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0)"><br></span></span></div><div style="background-color:rgba(0,0,0,0);border-color:rgb(255,255,255)" dir="auto"><span class="pl-s" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span class="pl-pds" style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0)">instead of:</span></span></div><div style="background-color:rgba(0,0,0,0);border-color:rgb(255,255,255)" dir="auto"><span class="pl-s" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span class="pl-pds" style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0)"><br></span></span></div><div style="background-color:rgba(0,0,0,0);border-color:rgb(255,255,255)" dir="auto"><span class="token variable" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(238,153,0)">PathPattern</span><span style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;background-color:rgb(245,242,240);color:rgb(0,0,0)"> </span><span class="token operator" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;background-color:rgba(255,255,255,0.5);color:rgb(154,110,58)">=</span><span style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;background-color:rgb(245,242,240);color:rgb(0,0,0)"> </span><span class="token punctuation" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(153,153,153)">[</span><span class="token atom" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(0,0,0)">stock</span><span class="token punctuation" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(153,153,153)">,</span><span style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;background-color:rgb(245,242,240);color:rgb(0,0,0)"> </span><span class="token atom" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(0,0,0)">wood</span><span class="token punctuation" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(153,153,153)">,</span><span style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;background-color:rgb(245,242,240);color:rgb(0,0,0)"> </span><span class="token punctuation" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(153,153,153)">#</span><span class="token atom" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(0,0,0)">if_node_matches</span><span class="token punctuation" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(153,153,153)">{</span><span class="token atom" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(0,0,0)">regex</span><span style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;background-color:rgb(245,242,240);color:rgb(0,0,0)"> </span><span class="token operator" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;background-color:rgba(255,255,255,0.5);color:rgb(154,110,58)">=</span><span style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;background-color:rgb(245,242,240);color:rgb(0,0,0)"> </span><span class="token atom" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(0,0,0)">any</span><span class="token punctuation" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(153,153,153)">}</span><span class="token punctuation" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(153,153,153)">]</span><span class="token punctuation" style="font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace;font-size:13.600000381469727px;word-spacing:normal;color:rgb(153,153,153)">.</span><br></div><div dir="auto"><br></div><div dir="auto">Search all brands offering flipflop:</div><div dir="auto"><span class="pl-smi" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)"><br></span></div><div dir="auto"><span class="pl-smi" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)">Ret</span><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;border-color:rgb(240,246,252);color:rgb(240,246,252)"> </span><span class="pl-k" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)">=</span><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;border-color:rgb(240,246,252);color:rgb(240,246,252)"> </span><span class="pl-en" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)">khepri</span><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;border-color:rgb(240,246,252);color:rgb(240,246,252)">:</span><span class="pl-en" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)">get</span><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;border-color:rgb(240,246,252);color:rgb(240,246,252)">(</span><span class="pl-s" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span class="pl-pds" style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0)">"</span>/shoe/_/flipflop</span><span class="pl-s" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span class="pl-pds" style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0)">"</span></span><br></div><div dir="auto"><span class="pl-s" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.600000381469727px;box-sizing:border-box;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span class="pl-pds" style="box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0)"><br></span></span></div><div style="background-color:rgba(0,0,0,0)!important;border-color:rgb(255,255,255)!important;color:rgb(255,255,255)!important" dir="auto"><font size="2" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace">It will greatly simplify the interface IMHO.</span></font></div><div style="background-color:rgba(0,0,0,0);border-color:rgb(255,255,255)" dir="auto"><font size="2" style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;border-color:rgb(0,0,0);color:rgb(0,0,0)"><span style="font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace"><br></span></font></div><div dir="auto">Best</div><div dir="auto">/F.</div><div dir="auto"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><<a href="mailto:jean-sebastien.pedron@dumbbell.fr">jean-sebastien.pedron@dumbbell.fr</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">On 18/02/2022 17:17, I Gusti Ngurah Oka Prinarjaya wrote:<br>
> Thank you so much for your awesome clear explanation.<br>
> <br>
>  >>> Triggers in Khepri could be compared to a combination between<br>
>  >>> `erlang:monitor/2` (which would know about tree nodes) and <br>
> `erlang:apply/2`.<br>
> I feel more comfortable now knowing this comparison.<br>
<br>
Awesome! I will clarify the documentation then to make sure that, <br>
despite having the same name & being kind of the same idea, triggers in <br>
Khepri are not to be confused with triggers in RDBMS.<br>
<br>
-- <br>
Jean-Sébastien Pédron<br>
</blockquote></div></div>