anchor.diff:  
   %% API
   -export([main/0,
  -	 run_sinan/0,
  -	 run_sinan/1,
  +         run_sinan/0,
  +         run_sinan/1,
            do_task/3]).
   
   -export_type([args/0,
  -	      task_name/0]).
  +              task_name/0]).
   
   -include_lib("eunit/include/eunit.hrl").
   -include("internal.hrl").
  
positive.code: run_sinan(Args) ->
      case getopt:parse(option_spec_list(), Args) of
          {ok, {Options, NonOptArgs}} ->
  	    do_build(Options, NonOptArgs);
  	{error, {Reason, Data}} ->
              io:format("Error: ~s ~p~n~n", [Reason, Data]),
              usage()
      end.
  
  %%====================================================================
  
negative.code: %% system when the run is complete.
  -spec main() -> sin_config:config() | ok.
  main() ->
      case run_sinan() of
          {ok, _} ->
              init:stop();
          {error, _} ->
              init:stop(101)
      end.
  
  %% @doc do the full run of sinan as required by the command line args
  