<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>