anchor.diff:  
   -export_type ([mvar/1]).
   -export ([create/2, new/2, new/1]).
  --export ([modify/2, with/2, read/1, write/2]).
  +-export ([modify/2, modify_/2, with/2, read/1, write/2]).
   -export ([terminate/1]).
   
   -behaviour (gen_server).
  
positive.code: 	{ok, B} -> B;
  	{throw, Thrown} -> throw (Thrown) end.
  
  -spec with (mvar(A), fun ((A) -> B)) -> B. % IO throws X, fun IO throws X
  % Execute Procedure with exclusive access to content but don't modify it.
  with (Var, Act) -> modify (Var, fun (A) -> {A, Act (A)} end).
  
negative.code: -type reason() :: any().
  
  handle_cast (_Request, State) -> {noreply, State}.
  
  handle_info (Message, State) ->
  	io:format ("received: ~p~n", [Message]),
  	{noreply, State}.
  
  code_change (_OldVsn, State, _Extra) -> {ok, State}.
  