anchor.diff:  %% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   %% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   %% THE SOFTWARE.
  - 
  +
   -module(gen_nb_server).
  - 
  +
   -author('kevin@hypotheticalabs.com').
  - 
  +
   -behaviour(gen_server).
  - 
  +
   %% API
   -export([start_link/4]).
  - 
  +
   %% Behavior callbacks
   -export([behaviour_info/1]).
  - 
  +
   %% gen_server callbacks
   -export([init/1, handle_call/3, handle_cast/2, handle_info/2,
            terminate/2, code_change/3]).
  - 
  +
   -define(SERVER, ?MODULE).
  - 
  +
   -record(state, {cb,
                   sock,
                   server_state}).
  - 
  +
   %% @hidden
   behaviour_info(callbacks) ->
     [{init, 1},
  
positive.code:     {stop, Reason, NewServerState} ->
        {stop, Reason, State#state{server_state=NewServerState}}
    end;
   
  handle_info(Info, #state{cb=Callback, server_state=ServerState}=State) ->
    case Callback:handle_info(Info, ServerState) of
      {noreply, NewServerState} ->
  
negative.code:     {stop, Reason, Reply, NewServerState} ->
        {stop, Reason, Reply, State#state{server_state=NewServerState}}
    end.
  
  %% @hidden
  handle_cast(Msg, #state{cb=Callback, server_state=ServerState}=State) ->
    case Callback:handle_cast(Msg, ServerState) of
  