anchor.diff:  
   
   code_change( OldVsn, State, Extra ) ->
  -    call_impl( code_change, [ OldVsn, State#state.context, Extra ], State ).
  +    optional_call_impl(
  +      code_change, [ OldVsn, State#state.context, Extra ], State,
  +      { ok, State }
  +     ).
   
   
   %% ===================================================================
  
positive.code:       [ fun test_start_device/1
        , fun test_get_event/1
        , fun test_code_change/1
        %, fun test_stop_device/1
        ]
      }.
  
negative.code:     ].
  
  test_code_change( S0 ) ->
      mock_impl_module_code_change(),
  
      R1 = code_change( make_ref(), S0, go_well ),
      R2 = code_change( make_ref(), S0, go_wrong ),
      [ ?_assertMatch( { ok, #state{ context = context1 } }, R1 )
      , ?_assertMatch( { error, went_wrong }, R2 )
      ].
  
  test_no_code_change( S0 ) ->
      R1 = code_change( make_ref(), S0, go_well ),
      R2 = code_change( make_ref(), S0, go_wrong ),
      [ ?_assertMatch( { ok, S0 }, R1 )
      , ?_assertMatch( { ok, S0 }, R2 )
      ].
  
  mock_impl_module_code_change() ->
      meck:expect( ?IMPL, code_change,
          fun( _OldVsn, _Ctx, go_well ) -> { ok, context1 };
             ( _OldVsn, _Ctx, go_wrong ) -> { error, went_wrong }
          end ).
  
  mock_impl_module() ->
      meck:new( ?IMPL, [ non_strict ] ),
  