anchor.diff:  %%
   get_flag_args(F,Flags) -> get_flag_args(F,Flags,[]).
   
  -get_flag_args(F,[{F,V}|Flags],Acc) when is_list(V) ->
  +get_flag_args(F,[{F,V}|Flags],Acc) ->
       get_flag_args(F,Flags,[V|Acc]);
  -get_flag_args(F,[{F,V}|Flags],Acc) ->
  -    get_flag_args(F,Flags,[[V]|Acc]);
   get_flag_args(F,[_|Flags],Acc) ->
       get_flag_args(F,Flags,Acc);
   get_flag_args(_,[],Acc) ->
       reverse(Acc).
   
   get_arguments([{F,V}|Flags]) ->
  -    [$-|Fl] = atom_to_list(F),
  -    [{list_to_atom(Fl),to_strings(V)}|get_arguments(Flags)];
  -get_arguments([{F}|Flags]) ->
  -    [$-|Fl] = atom_to_list(F),
  -    [{list_to_atom(Fl),[]}|get_arguments(Flags)];
  +    [{F,to_strings(V)}|get_arguments(Flags)];
   get_arguments([]) ->
       [].
   
  
positive.code: 	start_arg2 -> {reverse(As), [B|Bs]};
  	eval_arg -> {reverse(As), [B|Bs]};
  	end_args -> {reverse(As), Bs};
  	flag -> {reverse(As), [B|Bs]};
  	arg ->
  	    get_args(Bs, [B|As])
      end;
  
negative.code: to_strings([H|T]) when is_binary(H) -> [b2s(H)|to_strings(T)];
  to_strings([])    -> [].
  
  get_argument(Arg, Flags) ->
      case get_argument1(Arg, Flags) of
  	[] -> error;
  	Value -> {ok,Value}
      end.
  
  get_argument1(Arg, [{Arg,V}|Args]) ->
      [to_strings(V)|get_argument1(Arg, Args)];
  get_argument1(Arg, [_|Args]) ->
      get_argument1(Arg, Args);
  get_argument1(_, []) ->
      [].
  
  set_argument([{Flag,_}|Flags],Flag,Value) ->
      [{Flag,[Value]}|Flags];
  set_argument([Item|Flags],Flag,Value) ->
      [Item|set_argument(Flags,Flag,Value)];
  