anchor.diff:  -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)]).
  -
  +     io_lib:format("~p", [Value])].
   
   %%============================================================================
   %% internal api
  
positive.code:     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;
          Error={error, _} ->
              report_error(rcl_state:caller(rcl_state:new([], []),
                                            command_line), Error)
  
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}}) ->
  