anchor.diff:  let
   callPackage = buffet.pkgs.lib.callPackageWith ( buffet.pkgs // buffet.support // buffet.support.crates-support // buffet );
   # Insert in alphabetical order in relevant section to reduce conflicts
  -# This system is an ever growing accretion of nodes.
  +# This system grows by the slow accretion of nodes.
   # Once a node is declared stable, it is _/forbidden/_ to:
   # * change the node name
   # * change any port name
   # * delete a node, or port
  -# * change or delete items in the schema on any port, though additions of schema items are accepted
  +# * change or delete items in the schema on any port, though additions of schema items are acceptable
   # * backtrack towards the experimental category
  -# Once a node becomes stable, all associated schemas also become stable.
  +# Once a node becomes stable, all associated schema also become stable.
  +# Nodes should function reliably decades from now.
   # Changing names after experimental upgrade is a breaking change, we do not do that here.
   self = rec {
  -  # EXPERIMENTAL SECTION
  -  # -   anything here can change, provide feedback to node authors
  -  # -   help them make it as reusable as possible
  -  # -   use at own risk, things can change at any time.
  +  # RAW NODES
  +  # -   are incomplete and immature, they may wink into and out of existance
  +  # -   use at own risk, anything in this section can change at any time.
     # -   You have been warned.
     app_counter_add = callPackage ./app/counter/add {};
     app_counter_card = callPackage ./app/counter/card {};
  
positive.code:   web_server = callPackage ./web/server {};
    workbench = buffet.fractals.workbench.nodes.workbench;
    workbench_test = buffet.fractals.workbench.nodes.test;
    # STABLE SECTION
    # -   do not change names of ports, agents nor subgraphs,
    # -   you may add names, but never change, nor remove names
    core_capnp_encode = callPackage ./core/capnp/encode {};
    core_find_node = callPackage ./core/find/node {};
    core_find_edge = callPackage ./core/find/edge {};
  
negative.code:   msg_delay = callPackage ./msg/delay {};
    msg_dispatcher = callPackage ./msg/dispatcher {};
    msg_replace = callPackage ./msg/replace {};
  
    # STABLE NODES
    # -   do not change names of ports, agents nor subgraphs,
    # -   you may add new port names, but never change, nor remove port names
    # -   never change or remove schema names
    # -   you may add new schema items S
  
    # DEPRECATED NODES
    # -   do not change names of ports, agents nor subgraphs.
    # -   keep the implemenation functioning
    # -   print a warning message and tell users to use replacement node
  
    # LEGACY NODES
    # -   do not change names of ports, agents nor subgraphs.
    # -   assert and remove implementation
  };
  