anchor.diff:  auth(Mechanism) ->
       auth(Mechanism, []).
   
  --spec auth(binary(), #xmlcdata{}) -> #xmlel{}.
  +-spec auth(binary(), [#xmlcdata{}]) -> #xmlel{}.
   auth(Mechanism, Children) ->
       #xmlel{name = <<"auth">>,
              attrs = [{<<"xmlns">>, ?NS_SASL},
  
positive.code: -spec iq(binary(), [xmlterm()]) -> #xmlel{}.
  iq(Type, Body) ->
      #xmlel{name = <<"iq">>,
             attrs=[{<<"type">>, Type},
                    {<<"id">>, id()}],
             children = Body}.
  
  iq(To, Type, Body) ->
  
negative.code: -spec session() -> #xmlel{}.
  session() ->
      NS = <<"urn:ietf:params:xml:ns:xmpp-session">>,
      iq(<<"set">>, [#xmlel{name = <<"session">>,
                            attrs = [{<<"xmlns">>, NS}]}]).
  
  to(Stanza, Recipient) when is_binary(Recipient) ->
      setattr(Stanza, <<"to">>, Recipient);
  