anchor.diff:                          | int64
                           | string
                           | nullable_string
  -                        | bytes.
  +                        | bytes
  +                        | records.
   -type struct_schema() :: [{field_name(), schema()}].
   -type schema() :: primitive_type()
                   | struct_schema()
  
positive.code:   case Size =:= 0 of
      true  -> <<-1:32/?INT>>;
      false -> [<<Size:32/?INT>>, B]
    end.
  
  %% @hidden Decode prmitives.
  -spec decode(primitive_type(), binary()) -> {primitive(), binary()}.
  
negative.code:   <<Size:32/?INT, Rest/binary>> = Bin,
    copy_bytes(Size, Rest);
  decode(nullable_string, Bin) ->
    decode(string, Bin);
  decode(records, Bin) ->
    decode(bytes, Bin).
  
  %% @hidden Encode struct.
  -spec enc_struct(schema(), struct(), stack()) -> iodata().
  