anchor.diff:  unpack(<<Maybe_Message_Type:?PPSPP_MESSAGE_SIZE, Rest/binary>>, Parsed_Messages) ->
       Type = get_message_type(Maybe_Message_Type),
       {ok, Parsed_Message, Maybe_More_Messages} = unpack(Type, Rest),
  -    unpack(Maybe_More_Messages, [Parsed_Message | Parsed_Messages]).
  +    unpack(Maybe_More_Messages, [Parsed_Message | Parsed_Messages]);
   
  --spec unpack(message_type(), binary()) ->{ok, message(), binary()}
  -| {error, any()}.
   unpack(handshake, Binary) ->
       {ok, Handshake, Maybe_Messages} =  ppspp_handshake:unpack(Binary),
       {ok, Handshake, Maybe_Messages};
  
positive.code: pack_message(Message) -> <<>>.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  -spec unpack(message_type(), binary()) ->{ok, message(), binary()}
                                           | {error, any()}.
  -spec unpack(binary(), messages()) -> {ok, messages()}.
  %% if the binary is empty, all messages were parsed successfully
  unpack( <<>>, Parsed_Messages) ->
      {ok, lists:reverse(Parsed_Messages)};
  %% otherwise try to unpack another valid message, peeling off and parsing
  
negative.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -spec get_message_type(message_type()) -> message_type().
  get_message_type(Maybe_Message_Type)
    when is_integer(Maybe_Message_Type),
         Maybe_Message_Type < ?PPSPP_MAXIMUM_MESSAGE_TYPE ->
  