anchor.diff:      Unprepared =
           case Trace of
               {trace, Pid, call, {vmq_parser, serialise, [Msg]}} ->
  -                format_mqtt(from, Pid, SId, Msg, Opts);
  +                format_frame(from, Pid, SId, Msg, Opts);
               {trace, Pid, call, {vmq_mqtt_fsm, connected, [Msg, _]}} ->
  -                format_mqtt(to, Pid, SId, Msg, Opts);
  +                format_frame(to, Pid, SId, Msg, Opts);
  +            {trace, Pid, call, {vmq_parser_mqtt5, serialise, [Msg]}} ->
  +                format_frame(from, Pid, SId, Msg, Opts);
  +            {trace, Pid, call, {vmq_mqtt5_fsm, connected, [Msg, _]}} ->
  +                format_frame(to, Pid, SId, Msg, Opts);
               {trace, Pid, call, {vmq_plugin, all_till_ok, [Hook, Args]}} ->
                   format_all_till_ok(Hook, Pid, Args, Opts);
               {trace, Pid, return_from, {vmq_plugin,all_till_ok,2}, Ret} ->
  
positive.code:             end
      end.
  
  vmq_parser_serialize_ms() ->
      dbg:fun2ms(
        fun([#mqtt_connect{}]) -> ok;
           ([#mqtt_connack{}]) -> ok;
  
negative.code:          ([#mqtt_pingreq{}]) -> ok;
           ([#mqtt_pingresp{}]) -> ok;
           ([#mqtt_disconnect{}]) -> ok end).
  
  vmq_m5_parser_serialize_ms() ->
      dbg:fun2ms(
        fun([#mqtt5_connect{}]) -> ok;
           ([#mqtt5_connack{}]) -> ok;
           ([#mqtt5_publish{}]) -> ok;
           ([#mqtt5_puback{}]) -> ok;
           ([#mqtt5_pubrec{}]) -> ok;
           ([#mqtt5_pubrel{}]) -> ok;
           ([#mqtt5_pubcomp{}]) -> ok;
           ([#mqtt5_subscribe{}]) -> ok;
           ([#mqtt5_unsubscribe{}]) -> ok;
           ([#mqtt5_suback{}]) -> ok;
           ([#mqtt5_unsuback{}]) -> ok;
           ([#mqtt5_pingreq{}]) -> ok;
           ([#mqtt5_pingresp{}]) -> ok;
           ([#mqtt5_disconnect{}]) -> ok;
           ([#mqtt5_auth{}]) -> ok end).
  
  vmq_mqtt_fsm_connected_ms() ->
      dbg:fun2ms(
  