anchor.diff:      fun({_,QSeq1}) -> {RetSeq,QSeq1 + 1} end.
   
   
  -new(Pid,CSeq,QoS,WSize,Q,Ret) ->
  -    new(Pid,CSeq,QoS,undefined,WSize,Q,Ret).
  +new(CSeq,QoS,WSize,Q,Ret) ->
  +    new(CSeq,QoS,undefined,WSize,Q,Ret).
   
  -new(Pid,CSeq,QoS,From,WSize,Q,Ret) ->
  -    Sub = #sub{pid = Pid,
  -               client_seq = CSeq,
  +new(CSeq,QoS,From,WSize,Q,Ret) ->
  +    Sub = #sub{client_seq = CSeq,
                  qos = QoS},
       iterator_from(From,WSize,Q,Ret,Sub).
   
  
positive.code: is_old(MsgCSeq,#sub{client_seq = CSeq}) when CSeq >= MsgCSeq -> true;
  is_old(_,_) -> false.
  
  maybe_take(Q,Sub) ->
      take(0,Q,Sub).
  
  %% @doc
  
negative.code: -module(mqtt_sub_state).
  -author("Kalin").
  
  -define(CURRY(Fun,Arg1),fun(Arg2) -> Fun(Arg1,Arg2) end).
  -include("mqtt_internal_msgs.hrl").
  
  %% API
  -export([take/3,
      take_any/2,
      new/5,
      new/6,
      resubscribe/4,
      is_old/2]).
  
  