anchor.diff:  decode(0, Data, _NeedPMap, Context) ->
      {[], Context, Data};
   
  -decode(Length, Data, NeedPMap, Context) ->
  +decode(Length, Data, NeedPMap, Context = #fast_context{template = Template}) ->
      case NeedPMap of
         true ->
  -         {Context1, Data1} = erlang_fast_segment:decode_pmap(Data, Context),
  -         {Msg, Context2, Data2} = erlang_fast_segment:decode_fields(Data1, Context1),
  -         {Msgs, Context3, Data3} = decode(Length, Data2, NeedPMap, Context2),
  +         {Context1 = #fast_context{pmap = <<_TBit:1, PMapRest/bitstring>>}, Data1} = erlang_fast_segment:decode_pmap(Data, Context),
  +         ?debugFmt("PMap = ~p~n", [PMapRest]),
  +         {Msg, Context2, Data2} = erlang_fast_segment:decode_fields(Data1, Context1#fast_context{pmap = PMapRest}),
  +         {Msgs, Context3, Data3} = decode(Length, Data2, NeedPMap, Context2#fast_context{template = Template}),
            {[Msg | Msgs], Context3, Data3};
         false ->
            {Msg, Context1, Data1} = erlang_fast_segment:decode_fields(Data, Context),
  -         {Msgs, Context2, Data2} = decode(Length, Data1, NeedPMap, Context1),
  +         {Msgs, Context2, Data2} = decode(Length, Data1, NeedPMap, Context1#fast_context{template = Template}),
            {[Msg | Msgs], Context2, Data2}
      end.
  
positive.code:    {{_, LenValue}, Context1, Data1} = erlang_fast_number:decode(Data, LenField, Context),
     case LenValue of
        absent ->
           Instrs = case is_record(hd(Instructions), length) of
              true ->
                 tl(Instructions);
              false ->
                 Instructions
           end,
           {{FieldName, absent},
              Context1#fast_context{pmap = PMapRest, template = Context1#fast_context.template#template{instructions = Instrs}}, Data1};
        LenValue ->
           decode(LenValue, Data1, NeedPMap,
              Context1#fast_context{pmap = PMapRest, template = Context1#fast_context.template#template{instructions = Instructions}})
     end;
  
  decode(Data, #sequence{}, Context) ->
  
negative.code: -include("erlang_fast_template.hrl").
  -include("erlang_fast_context.hrl").
  -include("erlang_fast_common.hrl").
  
  -include_lib("eunit/include/eunit.hrl").
  
  decode(Data, #sequence{name = FieldName, instructions = []}, Context) ->
     {{FieldName, absent}, Context, Data};
  