anchor.diff:  	  end;
         nil -> text("[]");
         tuple -> %% done;
  -	  Es = seq(refac_syntax:tuple_elements(Node), floating(text(",")), reset_prec(Ctxt), fun lay/2),
  +          Es0=refac_syntax:tuple_elements(Node),
  +	  Sep = get_separator(Es0, Ctxt#ctxt.tokens, ", "),
  +	  Es = seq(Es0, floating(text(Sep)), reset_prec(Ctxt), fun lay/2),
   	  beside(floating(text("{")),
   		 beside(lay_elems(fun refac_prettypr_0:par/1, Es, refac_syntax:tuple_elements(Node)), floating(text("}"))));
         list ->   %% done;
   	  Ctxt1 = reset_prec(Ctxt),
   	  Node1 = refac_syntax:compact_list(Node),
   	  PrefixElems = refac_syntax:list_prefix(Node1),
  -	  D0 = seq(PrefixElems, floating(text(",")), Ctxt1, fun lay/2),
  +	  Sep = get_separator(PrefixElems, Ctxt#ctxt.tokens, ", "),
  +	  D0 = seq(PrefixElems, floating(text(Sep)), Ctxt1, fun lay/2),
   	  D1 = lay_elems(fun refac_prettypr_0:par/1, D0, PrefixElems),
   	  D = case refac_syntax:list_suffix(Node1) of
   		none -> beside(D1, floating(text("]")));
  
positive.code: 		  [] -> 
  		      case TryLineNum==L andalso TryLineNum/=0 of 
  			  true ->
  			      sep([beside(text("try "),nest(Ctxt1#ctxt.sub_indent, D1))| Es2]);
  			  false ->
  			      sep([text("try"),nest(Ctxt1#ctxt.sub_indent, D1)| Es2])
  	    	      end;
  		  Cs ->
  		      {_, {L0,C0}} = refac_misc:get_range(lists:last(Body)),
  		      OfLineNum = get_post_keyword_line_num(Ctxt1#ctxt.tokens, {L0,C0}, 'of'),
  		      D4 = lay_clauses(Cs, try_expr, Ctxt1),
  		      Es3 = [nest(Ctxt1#ctxt.sub_indent, D4)| Es2],
  		      case TryLineNum==L andalso TryLineNum/=0 of 
  			  true ->
  			      case OfLineNum==L0 andalso L0/=0 of
  				  true ->
  				      sep([beside(text("try "), beside(nest(Ctxt1#ctxt.sub_indent, D1), text(" of")))| Es3]);
  				  false ->
  				      sep([beside(text("try "),nest(Ctxt1#ctxt.sub_indent, D1)), text("of")| Es3])
  			      end;
  			  false ->
  			      case OfLineNum==L0 andalso L0/=0 of
  				  true ->
  				      sep([text("try"), nest(Ctxt1#ctxt.sub_indent, D1)| Es3]);
  				  false ->
  				      sep([text("try"), nest(Ctxt1#ctxt.sub_indent, D1), text("of")| Es3])
  			      end
  		      end
  	      end;
  
negative.code:       application ->  %% done.
  	  {PrecL, Prec} = func_prec(),
  	  D = lay(refac_syntax:application_operator(Node), set_prec(Ctxt, PrecL)),
  	  Args = refac_syntax:application_arguments(Node),			   
  	  Sep = get_separator(Args, Ctxt#ctxt.tokens, ", "),
  	  As = seq(Args, floating(text(Sep)), reset_prec(Ctxt), fun lay/2),
  	  Op = refac_syntax:application_operator(Node),
  	  Args = refac_syntax:application_arguments(Node),
  	  D1 = case Args of
  