anchor.diff:      ?INFO("Updating base plt...", []),
       BaseFiles = base_plt_files(State),
       {BaseWarnings, State1} = update_base_plt(State, BasePlt, Output, BaseFiles),
  -    ?INFO("Copying ~ts to ~ts...", [rebar_dir:format_source_file_name(BasePlt),
  -                                    rebar_dir:format_source_file_name(Plt)]),
  +    ?INFO("Copying ~ts to ~ts...", [format_path(BasePlt), format_path(Plt)]),
       _ = filelib:ensure_dir(Plt),
       case file:copy(BasePlt, Plt) of
           {ok, _} ->
  
positive.code:     end.
  
  succ_typings_(State, Plt, _, []) ->
      ?INFO("Analyzing no files with ~ts...", [rebar_dir:format_source_file_name(Plt)]),
      {0, State};
  succ_typings_(State, Plt, Output, Files) ->
      ?INFO("Analyzing ~b files with ~ts...", [length(Files), rebar_dir:format_source_file_name(Plt)]),
      Opts = [{analysis_type, succ_typings},
              {get_warnings, true},
              {from, byte_code},
  
negative.code: 
  version_tuple(Major, Minor, Patch) ->
      {list_to_integer(Major), list_to_integer(Minor), list_to_integer(Patch)}.
  
  format_path(Path) ->
      Normalized = rebar_dir:format_source_file_name(Path),
      case filelib:is_file(Normalized) of
          true -> Normalized;
          false -> rebar_dir:format_source_file_name(Path, abs_path_opts())
      end.
  
  abs_path_opts() ->
      dict:from_list([{compiler_source_format, absolute}]).
  