anchor.diff:          Bin ->
               {[Bin|T],true}
       end;
  -trim_first([{Elem,Attr,Content} = Tag|T],false,What) ->
  -    case trim_first(Content,false,What) of
  +trim_first([{Elem,Attr,Content} = Tag|T],What) ->
  +    case trim_first(Content,What) of
           {[],true} ->
               {T,true};
           {NewContent,true} ->
               {[{Elem,Attr,NewContent}|T],true};
           {Content,false} ->
  -            {NewT,NewState} = trim_first(T,false,What),
  +            {NewT,NewState} = trim_first(T,What),
               {[Tag | NewT],NewState}
       end;
  -trim_first([],false,_What) ->
  +trim_first([],_What) ->
       {[],false}.
   
   trim_last([Bin | T],What) when is_binary(Bin) ->
  
positive.code: trim_inline([{Elem,Attr,Content}|T],TrimSpace) ->
      {NewContent,ContentTrimSpace} = trim_inline(Content,TrimSpace),
      {NewT,TTrimSpace} = trim_inline(T,ContentTrimSpace),
      if NewContent == [] ->
              {NewT, TTrimSpace};
         true ->
              {[{Elem,Attr,NewContent} | NewT], TTrimSpace}
  
negative.code:             {[Tag | NewT],true};
          {T,false} ->
              case trim_last(Content,What) of
                  {[],true} ->
                      %% If the content became empty and we processed some text
                      %% we remove the element.
                      {[],true};
                  {NewContent,NewState} ->
                      {[{Elem,Attr,NewContent}|T],NewState}
              end
      end;
  trim_last([],_What) ->
      {[],false}.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% API function for dealing with the function documentation
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  