anchor.diff:      {stop, term(), tuple()}.
   
   handle_info(Msg, State, PosMod, PosUser) ->
  -    SubMod = element(PosMod, State),
  -    User = element(PosUser, State),
  -    case erlang:function_exported(SubMod, handle_info, 2) of
  -        true ->
  -            proc_reply(SubMod:handle_info(Msg, User), PosUser, State);
  +    handle_info(handle_info, Msg, State, PosMod, PosUser).
  +
  +
  +%% @private
  +-spec handle_info(atom(), term(), tuple(), pos_integer(), pos_integer()) ->
  +    {noreply, tuple()} |
  +    {noreply, tuple(), timeout() | hibernate} |
  +    {stop, term(), tuple()}.
  +
  +handle_info(Fun, Msg, State, PosMod, PosUser) ->
  +    SubMod = element(PosMod, State),
  +    User = element(PosUser, State),
  +    case erlang:function_exported(SubMod, Fun, 2) of
  +        true ->
  +            proc_reply(SubMod:Fun(Msg, User), PosUser, State);
           false ->
               {noreply, State}
       end.
  
positive.code:     {stop, term(), tuple()}.
  
  handle_call(Msg, From, State, PosMod, PosUser) ->
      SubMod = element(PosMod, State),
      User = element(PosUser, State),
      case erlang:function_exported(SubMod, handle_call, 3) of
          true ->
              proc_reply(SubMod:handle_call(Msg, From, User), PosUser, State);
          false ->
              {noreply, State}
      end.
  
negative.code:     {ok, NewState :: term()} | {error, Reason :: term()}.
  
  code_change(OldVsn, State, Extra, PosMod, PosUser) ->
      code_change(code_change, OldVsn, State, Extra, PosMod, PosUser).
  
  
  -spec code_change(atom(), term()|{down, term()}, tuple(), term(), 
                    pos_integer(), pos_integer()) ->
      {ok, NewState :: term()} | {error, Reason :: term()}.
  
  code_change(Fun, OldVsn, State, Extra, PosMod, PosUser) ->
      SubMod = element(PosMod, State),
      User = element(PosUser, State),
      case erlang:function_exported(SubMod, Fun, 3) of
          true ->
              case SubMod:Fun(OldVsn, User, Extra) of
                  {ok, User1} ->
                      {ok, setelement(PosUser, State, User1)};
                  {error, Reason} ->
  