anchor.diff:      Action = impl_func_to_action_name( Func ),
       handle_impl_result( Result, Action, State, Tag ).
   
  +handle_impl_result( { ok, Context }, code_change, State, _Tag ) ->
  +    NewState = State#state{ context = Context },
  +    { ok, NewState };
  +
  +handle_impl_result( { error, _ } = Result, code_change, _State, _Tag ) ->
  +    Result;
  +
   handle_impl_result( { ok, Result, Context }, Action, State, Tag ) ->
       NewState = State#state{ context = Context },
       send_owner( NewState, Action, { ok, Result }, Tag ),
  
positive.code:       fun mock_impl_module_stop/1,
        [ fun test_start_device/1
        , fun test_get_event/1
        %, fun test_stop_device/1
        ]
      }.
  
negative.code:     % FIXME - test the side effects (send to owner)
      [ ?_assertMatch( { noreply, #state{ context = context1 } }, R1 )
      , ?_assertMatch( { stop, reason, #state{ context = context2 } }, R2 )
      ].
  
  test_code_change( S0 ) ->
      R1 = code_change( make_ref(), S0, go_well ),
      R2 = code_change( make_ref(), S0, go_wrong ),
      [ ?_assertMatch( { ok, _Ctx }, R1 )
      , ?_assertMatch( { error, _Error }, R2 )
      ].
  
  
  