anchor.diff:      OptSpecList = opt_spec_list(),
       case rcl_cmd_args:args2state(getopt:parse(OptSpecList, Args)) of
           {ok, {State, _Target}} ->
  -            case run_relcool_process(rcl_state:caller(State, command_line)) of
  -                Result = {ok, _} ->
  -                    Result;
  -                Error={error, _} ->
  -                    report_error(State, Error)
  -            end;
  +            run_relcool_process(rcl_state:caller(State, command_line));
           Error={error, _} ->
               report_error(rcl_state:caller(rcl_state:new([], []),
                                             command_line), Error)
  
positive.code: -spec format_error(Reason::term()) -> iolist().
  format_error({invalid_return_value, Provider, Value}) ->
      [rcl_provider:format(Provider), " returned an invalid value ",
       io_lib:format("~p", [Value])];
  format_error({error, {Module, Reason}}) ->
      io_lib:format("~s", [Module:format_error(Reason)]).
  
  
  %%============================================================================
  %% internal api
  
negative.code:         {ok, State1} ->
              {ok, State1};
          E={error, _} ->
              report_error(State0, E)
      end.
  
  -spec usage() -> ok.
  usage() ->
      getopt:usage(opt_spec_list(), "relcool", "[*release-specification-file*]").
  
  
  -spec report_error(rcl_state:t(), error()) -> none() | error().
  report_error(State, Error={error, {Module, Reason}}) ->
  