anchor.diff:  %%
   %% @param BinParams see {@link encode_parameters/2}.
   %% @param BinFormats  see {@link encode_formats/1}
  --spec encode_bind(iodata(), iodata(), iodata(), iodata()) -> {packet_type(?BIND), iodata()}.
  +-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]}.
   
  
positive.code: %%
  %% It doesn't cause any specific response packet, but tells PostgreSQL server to flush it's send
  %% network buffers
  -spec encode_flush() -> {packet_type(?FLUSH), iodata()}.
  encode_flush() ->
      {?FLUSH, []}.
  
  %% @doc encodes `Sync' packet.
  %%
  %% Results in `ReadyForQuery' response
  -spec encode_sync() -> {packet_type(?SYNC), iodata()}.
  encode_sync() ->
      {?SYNC, []}.
  
  
negative.code: %% Results in `ParseComplete' response.
  %%
  %% @param ColumnEncoding see {@link encode_types/2}
  -spec encode_parse(iodata(), iodata(), iodata()) -> {packet_type(), iodata()}.
  encode_parse(Name, SQL, ColumnEncoding) ->
      {?PARSE, [encode_string(Name), encode_string(SQL), ColumnEncoding]}.
  
  