anchor.diff:  %%% Definitions
   %%%============================================================================
   
  --record(args_matcher, {args_pattern :: opt_args_spec(),
  +-record(args_matcher, {opt_args_pattern :: opt_args_pattern(),
                          comp_match_spec :: ets:comp_match_spec(),
  -                       has_matchers = false :: boolean()}).
  +                       has_matchers :: boolean()}).
   
   %%%============================================================================
   %%% Types
  
positive.code: new('_') ->
      MatchSpecItem = meck_util:match_spec_item({'_'}),
      CompMatchSpec = ets:match_spec_compile([MatchSpecItem]),
      #args_matcher{args_pattern = '_', comp_match_spec = CompMatchSpec};
  new(Arity) when is_number(Arity) ->
      ArgsPattern = lists:duplicate(Arity, '_'),
      MatchSpecItem = meck_util:match_spec_item({ArgsPattern}),
      CompMatchSpec = ets:match_spec_compile([MatchSpecItem]),
      #args_matcher{args_pattern = ArgsPattern, comp_match_spec = CompMatchSpec};
  new(ArgsPattern) when is_list(ArgsPattern) ->
      {HasMatchers, Pattern} = case strip_off_matchers(ArgsPattern) of
                                   unchanged ->
  
negative.code: 
  -type opt_args_spec() :: args_spec() | '_'.
  -type args_spec() :: args_pattern() | non_neg_integer().
  -type opt_args_pattern() :: args_pattern() | '_'.
  -type args_pattern() :: [any() | '_' | meck_matcher:matcher()].
  
  -opaque args_matcher() :: #args_matcher{}.
  