anchor.diff:  lay_elems_1(Fun, [{D,{_SLn,ELn}}| Ts],[],_LastLn) ->
       lay_elems_1(Fun, Ts,[[D]],ELn);
   lay_elems_1(Fun, [{D,{SLn,ELn}}| Ts],[H| T],LastLn) ->
  -    case (SLn == 0) or (LastLn == 0) of
  -      true -> lay_elems_1(Fun, Ts,[[D],H| T],ELn);
  -      false ->
  -	  case SLn - LastLn of
  -	    0 -> lay_elems_1(Fun, Ts,[H ++ [D]| T],ELn);
  -	    1 ->
  -		lay_elems_1(Fun, Ts,[[above(horizontal(H),D)]| T],ELn);
  -	    _ -> lay_elems_1(Fun, Ts,[[D],H| T],ELn)
  -	  end
  +    case (SLn == 0) orelse (LastLn == 0) orelse (SLn<LastLn) of
  +	true -> lay_elems_1(Fun, Ts,[[D],H| T],ELn);
  +	false ->
  +	    case SLn - LastLn of
  +		0 -> lay_elems_1(Fun, Ts,[H ++ [D]| T],ELn);
  +		1 ->
  +		    lay_elems_1(Fun, Ts,[[above(horizontal(H),D)]| T],ELn);
  +		_ -> 
  +		    lay_elems_1(Fun, Ts,[[above(horizontal(H),(above(text(""), D)))]| T],ELn)
  +		    %%lay_elems_1(Fun, Ts,[[D],H| T],ELn)
  +	    end
       end.
   nil() -> text(" ").
   
  
positive.code: %% =====================================================================
  
  get_start_line(Node) ->
      {{L, _C}, _}= refac_util:get_range(Node),
      L.
    
  get_end_line(Node) ->
      {_, {L, _C}} =refac_util:get_range(Node),
      L.
  
  horizontal([D]) -> D;
  horizontal([D| Ds]) -> beside(beside(D, nil()),horizontal(Ds));
  
negative.code: lay_1(Node,Ctxt) ->
      case refac_syntax:has_comments(Node) of
        true ->
  	    {{NodeStartLn, _}, {NodeEndLn, _}}= refac_util:get_range(Node),
  	    D1 = lay_2(Node,Ctxt),
  	    PreCs = refac_syntax:get_precomments(Node),
  	    PostCs= refac_syntax:get_postcomments(Node),
  	    D2 = case PostCs of 
  		     [] ->
  			 D1;
  		     _ ->
  			 PostCsLn = element(1, refac_syntax:get_pos(hd(PostCs))),
  			 case PostCsLn > NodeEndLn+1 of
  			     true ->
  				 lay_postcomments(refac_syntax:get_postcomments(Node),above(D1, text("")));
  			     false ->
  				 lay_postcomments(refac_syntax:get_postcomments(Node),D1)
  			 end
  		 end,
  	    case PreCs of
  		[] -> D2;
  		_ -> LastPreC = lists:last(PreCs),
  		     PreCLn=element(1, refac_syntax:get_pos(LastPreC)),
  		     LastPreCLines = length(refac_syntax:comment_text(LastPreC)),
  		     case NodeStartLn > PreCLn+LastPreCLines of
  			 true ->
  			     lay_precomments(refac_syntax:get_precomments(Node),above(text(""),D2));
  			 false ->
  			     lay_precomments(refac_syntax:get_precomments(Node),D2)
  		     end
  	    end;
  	false -> lay_2(Node,Ctxt)
      end.
  
  %% For pre-comments, all padding is ignored.
  