anchor.diff:  %% Results in `ParseComplete' response.
   %%
   %% @param ColumnEncoding see {@link encode_types/2}
  --spec encode_parse(iodata(), iodata(), iodata()) -> {packet_type(?PARSE), iodata()}.
  +-spec encode_parse(iodata(), iodata(), iodata()) -> {packet_type(), iodata()}.
   encode_parse(Name, SQL, ColumnEncoding) ->
       {?PARSE, [encode_string(Name), encode_string(SQL), ColumnEncoding]}.
   
  
positive.code: %%
  %% @param What might be `?PORTAL' (results in `RowDescription' response) or `?PREPARED_STATEMENT'
  %%   (results in `ParameterDescription' followed by `RowDescription' or `NoData' response)
  -spec encode_describe(?PREPARED_STATEMENT | ?PORTAL | statement | portal, iodata()) ->
            {packet_type(?DESCRIBE), iodata()}.
  encode_describe(What, Name) when What =:= ?PREPARED_STATEMENT;
                                   What =:= ?PORTAL ->
      {?DESCRIBE, [What, encode_string(Name)]};
  
negative.code: %%
  %% @param BinParams see {@link encode_parameters/2}.
  %% @param BinFormats  see {@link encode_formats/1}
  -spec encode_bind(iodata(), iodata(), iodata(), iodata()) -> {packet_type(), iodata()}.
  encode_bind(PortalName, StmtName, BinParams, BinFormats) ->
      {?BIND, [encode_string(PortalName), encode_string(StmtName), BinParams, BinFormats]}.
  
  