<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 1/28/21 4:11 AM, Richard Carlsson
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CANKG3z=JrAGs-PFsk4zu0kc_ub-fh2EvszG7iWVYnuup2oKtCQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
<div dir="ltr">
<div dir="ltr">Den tors 28 jan. 2021 kl 11:23 skrev Loïc Hoguin
<<a href="mailto:essen@ninenines.eu" moz-do-not-send="true">essen@ninenines.eu</a>>:</div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
By the way, if annotations are going to be a thing, it might
be a good <br>
idea to make them more general so we can annotate other
things, such as <br>
"pure function" / "side effect function" or "local send" /
"remote <br>
send". I would personally love to easily identify message
sends to <br>
remote nodes.<br>
</blockquote>
<div><br>
</div>
<div>These are also interesting things - maybe not inline but
perhaps as keywords on function definitions; we had some
ideas about marking functions as pure (for guards) back in
the HiPE project, for example. Like any kind of strict
typing, you then get into the question about such functions
in other modules: If they can only be used locally, the
feature is perhaps too limited to be worth it. To put them
in other modules, you'd probably need to do name mangling
like e.g. when linking C++, to ensure both caller and callee
are following the conventions, and that might get too messy.
I don't know anyone who has prototyped that, though, so it's
not clear how it would look and feel.</div>
<div><br>
</div>
</div>
</div>
</blockquote>
I added a description at <a class="moz-txt-link-freetext" href="https://bugs.erlang.org/browse/ERL-373">https://bugs.erlang.org/browse/ERL-373</a> for
using pure/impure instead of spec for Erlang type specifications (to
provide the concept of a function type). Adding it as something for
dialyzer to evaluate would be helpful. I don't believe it is very
important to make it easy to create your own guard functions, but
this could be a step in that direction.<br>
<br>
Best Regards,<br>
Michael<br>
</body>
</html>