anchor.diff:  %% =====================================================================
   
   get_start_line(Node) ->
  +    PreComs = refac_syntax:get_precomments(Node),
       {{L, _C}, _}= refac_util:get_range(Node),
  -    L.
  +    case PreComs of 
  +	[] -> L;
  +	_ -> element(1, refac_syntax:get_pos(hd(PreComs)))
  +    end.
  +   
     
   get_end_line(Node) ->
  +    PostComs = refac_syntax:get_postcomments(Node),
       {_, {L, _C}} =refac_util:get_range(Node),
  -    L.
  +    case PostComs of
  +	[] -> L;
  +	_ -> LastCom =lists:last(PostComs),
  +	     LastComText = refac_syntax:comment_text(LastCom),
  +	     element(1, refac_syntax:get_pos(LastCom))+ 
  +		 length(LastComText) -1
  +    end.
  +	     
   
   horizontal([D]) -> D;
   horizontal([D| Ds]) -> beside(beside(D, nil()),horizontal(Ds));
  
positive.code: 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
      end.
  nil() -> text(" ").
  
  
negative.code: lay_elems(_Fun, _ElemDocs,[]) -> null;
  lay_elems(Fun, ElemDocs,Elems) ->
      ARanges = lists:map(fun (A) ->
  				{get_start_line(A), get_end_line(A)}
  			end,
  			Elems),
      lay_elems_1(Fun, lists:zip(ElemDocs,ARanges),[],0).
  