anchor.diff:      {Root, _} = elvis_file:parse_tree(Config, Target),
       elvis_utils:check_lines(Src, fun check_operator_spaces/3, {Root, Rules}).
   
  --spec nesting_level(elvis_config:config(), elvis_file:file(), [integer()]) ->
  +-type nesting_level_config() :: #{level => integer()}.
  +
  +-spec nesting_level(elvis_config:config(),
  +                    elvis_file:file(),
  +                    nesting_level_config()) ->
       [elvis_result:item()].
   nesting_level(Config, Target, RuleConfig) ->
       Level = maps:get(level, RuleConfig, 3),
       {Root, _} = elvis_file:parse_tree(Config, Target),
       elvis_utils:check_nodes(Root, fun check_nesting_level/2, [Level]).
   
  --spec god_modules(elvis_config:config(), elvis_file:file(), [integer()]) ->
  +-type god_modules_config() :: #{limit => integer()}.
  +
  +-spec god_modules(elvis_config:config(),
  +                  elvis_file:file(),
  +                  god_modules_config()) ->
       [elvis_result:item()].
   god_modules(Config, Target, RuleConfig) ->
       Limit = maps:get(limit, RuleConfig, 25),
  
positive.code:             lists:map(ResultFun, IfExprs)
      end.
  
  -spec invalid_dynamic_call(elvis_config:config(), elvis_file:file(), []) ->
      [elvis_result:item()].
  invalid_dynamic_call(Config, Target, RuleConfig) ->
      IgnoreModules = maps:get(ignore, RuleConfig, []),
  
negative.code: %% Rules
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -type empty_rule_config() :: #{}.
  
  -type line_length_config() :: #{limit => integer(),
                                  skip_comments => false | any | whole_line
                                 }.
  
  %% @doc Target can be either a filename or the
  %% name of a module.
  -spec line_length(elvis_config:config(),
                    elvis_file:file(),
                    line_length_config()) ->
      [elvis_result:item()].
  line_length(_Config, Target, RuleConfig) ->
      Limit = maps:get(limit, RuleConfig, 80),
      SkipComments = maps:get(skip_comments, RuleConfig, any),
      {Src, _} = elvis_file:src(Target),
      Args = [Limit, SkipComments],
      elvis_utils:check_lines(Src, fun check_line_length/3, Args).
  
  -spec no_tabs(elvis_config:config(),
                elvis_file:file(),
                empty_rule_config()) ->
      [elvis_result:item()].
  no_tabs(_Config, Target, _RuleConfig) ->
      {Src, _} = elvis_file:src(Target),
      elvis_utils:check_lines(Src, fun check_no_tabs/3, []).
  
  -spec macro_names(elvis_config:config(),
                    elvis_file:file(),
                    empty_rule_config()) ->
      [elvis_result:item()].
  macro_names(_Config, Target, _RuleConfig) ->
      {Src, _} = elvis_file:src(Target),
      elvis_utils:check_lines(Src, fun check_macro_names/3, []).
  
  -spec macro_module_names(elvis_config:config(),
                           elvis_file:file(),
                           empty_rule_config()) ->
      [elvis_result:item()].
  macro_module_names(Config, Target, _RuleConfig) ->
      {Src, _} = elvis_file:src(Target),
      {Root, _} = elvis_file:parse_tree(Config, Target),
      elvis_utils:check_lines(Src, fun check_macro_module_names/3, [Root]).
  
  -type operator_spaces_config() :: #{rules => [{right|left, string()}]}.
  
  -spec operator_spaces(elvis_config:config(),
                        elvis_file:file(),
                        operator_spaces_config()) ->
      [elvis_result:item()].
  operator_spaces(Config, Target, RuleConfig) ->
      Rules = maps:get(rules, RuleConfig, []),
  