anchor.diff:      true|false).
   delete_connection(SchemaId, ConnectionId) ->
       gen_server:call(?SERVER,
  -        {delete_sub, SchemaId, ConnectionId, fun modify_schema_connections/3}).
  +        {delete_connection, SchemaId, ConnectionId}).
   
   
   %%%===================================================================
  
positive.code: handle_call({update_sub, SchemaId, SubId, Sub, Modifier}, _From, State) ->
      {Result, NewState} = update_sub(SchemaId, SubId, Sub, State, Modifier),
      {reply, Result, NewState};
  handle_call({delete_sub, SchemaId, SubId, Modifier}, _From, State) ->
      {Result, NewState} = delete_sub(SchemaId, SubId, State, Modifier),
      {reply, Result, NewState}.
  
  
  
negative.code:                 {true, lists:keydelete(SubId, #element.id, Subs)}
          end
      end, State).
  
  delete_element(SchemaId, ElementId, State) ->
      modify_schema(SchemaId,
          fun(#schema{elements = Elements, connections = Connections} = Schema) ->
              case lists:keyfind(ElementId, #element.id, Elements) of
                  false -> {false, Schema};
                  Sub ->
                      NewCons = del_element_connections(ElementId, Connections),
                      notify_sub_deletion(Sub),
                      NewElems = lists:keydelete(ElementId, #element.id, Elements),
                      {true, Schema#schema{connections = NewCons,
                                           elements = NewElems}}
              end
          end, State).
  
  modify_schema(SchemaId, Fun,
          #state{schemas = Schemas} = State) ->
  