anchor.diff:  	    {ok,State}
       end.
   
  +apply_f(M, F, A) ->
  +    apply(M, F, A).
  +
  +convert_args(keep, As) -> As;
   convert_args([H|T], Opts) when is_atom(H) ->
       case lists:keyfind(H, 1, Opts) of
   	{_, V} -> [V | convert_args(T, Opts)];
  
positive.code: 		false ->
  		    case erlang:is_builtin(M,F,A) of
  			true ->
  			    {ok, {M,F,A}, []};
  			false ->
  			    {error, ?SERV_ERR_NO_SUCH_FUNCTION,
  			     <<"function not defined">>}
  
negative.code: 	    {ok,State}
      end.
  
  handle_call(_, get_access, #state{access = A} = State) ->
      {reply, A, State};
  handle_call(_, {set_access, A}, State) ->
      %% should perhaps check that it's a valid access list... FIXME
      {reply, ok, State#state{access = A}};
  handle_call(C, {C, M,F,A} = Req, #state{} = St) ->
      ?dbg("handle_call(~p)~n", [Req]),
      {send, bert:to_binary(Req), St}.
  
  
  %% handle_call(C, {C, M,F,A} = Req, #state{remote_access = Access} = St) ->
  %%     ?dbg("handle_call(~p, Access=~p)~n", [Req, Access]),
  %%     if Access == [] ->
  %% 	    {send, bert:to_binary(Req), St};
  %%        true ->
  %% 	    case access_test(M,F,length(A), Access, false) of
  %% 		{ok, {_M1,_F1,_A1}, _Conv} ->
  %% 		    %% We now know that there is a pattern. Let the remote side
  %% 		    %% do the conversion.
  %% 		    {send, bert:to_binary(Req), St};
  %% 			     %% {C, M1,F1, convert_args(Conv,A)}),St};
  %% 		{error,ServerCode,Detail} ->
  %% 		    Msg = server_error_msg(ServerCode, Detail, []),
  %% 		    if C==call ->
  %% 			    {reply, Msg, St};
  %% 		       C==cast ->
  %% 			    {ignore, St}
  %% 		    end
  %% 	    end
  %%     end.
  
  
  %%
  %% close - retrive statistics
  %% transport socket SHOULD still be open, but ssl may not handle this!
  