<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi,</p>
    <p>In the last meeting we (more or less) conclude that the most
      ergonomic approach is the one that simply uses [ab <name>],
      with implicit creation and deletion for the shared abstraction
      definition and an implicit flat scope (instantiable by the whole
      subpatch/abstractions tree, even if first definition was in an
      other branch or a deeper level or inside an abstraction).</p>
    <p>Local scope for these kind of abstractions will be achieved using
      [ab $0-<name>]. <br>
    </p>
    <p>* This 'local scope' won't be, in fact, a real local scope but
      the string '$0-name' is much harder to reproduce by the user
      because he must know the '$0' ID of the patch where the local
      abstraction has been created.</p>
    <p>If a real local scope is wanted then we will have to deal with
      conditional behaviour that may make the feature even harder to
      implement.<br>
    </p>
    <p><br>
    </p>
    <p>The flat scope mentioned above scares me a little because it
      might be the source of a lot of problems. To start with, a clean
      and strong storing and lookup system for the shared abstraction
      definitions must be designed and tested.</p>
    <p>Possible problems:</p>
    <p>- We have to prevent instantiating abstractions within themselves
      (or one of their descendants).<br>
    </p>
    <p>- Possible name clash with other private abstractions when
      instantiating file-based abstractions.</p>
    <p>- Where should the abstraction definitions be stored within the
      pd file, to prevent code repetition like the subpatches? Maybe
      hoisted inside the root patch definition, as is currently
      implemented.<br>
    </p>
    <p>----------------------------<br>
    </p>
    <p>The first approach I showed you yesterday was based on Jonathan's
      approach:</p>
    <pre style="white-space: pre-wrap; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">> 1. Implicit as you describe above. Rule: the names go from the root>
> down to the subpatches without
> affecting file-based abstractions in the root or the subpatches. If
> the [ab name] exists inside a file-based abstraction, it doesn't
> affect the parent on which the abstraction was created.

</pre>
    <p>If I understood correctly, the goal now is the same but the scope
      now crosses file boundaries.</p>
    <p>Best,<br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
  </body>
</html>