anchor.diff:  
   push_from_unknown_filter_drops_packet([SO,Packet]) ->
       Sub = {<<"TestFilter">>,?QOS_1},
  -    SO1 = mqtt_session:subscribe([Sub],SO),
  +    {_,SO1} = mqtt_session:subscribe([Sub],SO),
       Result = mqtt_session:push(<<"Not_TestFilter">>,Packet,SO1),
       ?_assertMatch({[],SO1},Result).
   
   push_of_duplicate_packet_drops_packet([SO,Packet]) ->
       Sub = {<<"TestFilter">>,?QOS_1},
  -    SO1 = mqtt_session:subscribe([Sub],SO),
  +    {_,SO1} = mqtt_session:subscribe([Sub],SO),
       {_,SO2} = mqtt_session:push(<<"Not_TestFilter">>,Packet,SO1),
       Result = mqtt_session:push(<<"Not_TestFilter">>,Packet,SO2),
       ?_assertMatch({[],SO1},Result).
   
   push_from_matching_filter_emits_packet([SO,Packet]) ->
       Sub = {<<"TestFilter/+">>,?QOS_1},
  -    SO1 = mqtt_session:subscribe([Sub],SO),
  +    {_,SO1} = mqtt_session:subscribe([Sub],SO),
       Packet1 = Packet#packet{topic = <<"TestFilter/A">>},
       Result = mqtt_session:push(<<"TestFilter/+">>,Packet1,SO1),
       ?_assertMatch({[#'PUBLISH'{}],_SO2},Result).
   
   push_on_empty_buffer_emits_packet([SO,Packet]) ->
       Sub = {<<"TestFilter">>,?QOS_2},
  -    SO1 = mqtt_session:subscribe([Sub],SO),
  +    {_,SO1} = mqtt_session:subscribe([Sub],SO),
       Result = mqtt_session:push(<<"TestFilter">>,Packet,SO1),
       ?_assertMatch(
           {[#'PUBLISH'{}],_SO2},
  
positive.code: 
  push_on_half_full_buffer_emits_packet([SO,Packet1]) ->
      Sub = {<<"TestFilter">>,?QOS_2},
      SO1 = mqtt_session:subscribe([Sub],SO),
      Packet2 = Packet1#packet{content = <<2>>, seq = {q,2}},
      {_,SO2} = mqtt_session:push(<<"TestFilter">>,Packet1,SO1),
      Result  = mqtt_session:push(<<"TestFilter">>,Packet2,SO2),
  
negative.code: 
  ack_on_full_session_emits_next_packet([SO,Packet1]) ->
      Sub = {<<"TestFilter">>,?QOS_2},
      {_,SO1} = mqtt_session:subscribe([Sub],SO),
  
      Packet2 = Packet1#packet{content = <<2>>, seq = {q,2}},
      Packet3 = Packet2#packet{content = <<3>>, seq = {q,3}},
  