anchor.diff:  %% API
   -export([decode_addr/1, encode_addr/1
            ,pseudo_hdr/1
  -         ,decode/2
  -         ,encode/1, expand/1
  +         ,expand/1
            ,decode_protocol/1, encode_protocol/1
            ,header_checksum/1
            ,addr_len/0
            ,addr_to_list/1, list_to_addr/1
           ]).
   
  --export([payload/1, payload_type/1]).
  +%% API
  +-behavior(enet_codec).
  +-export([decode/2
  +         ,payload/2
  +         ,payload_type/2
  +         ,encode/2
  +         ,default_options/0
  +        ]).
   
   -include("enet_types.hrl").
   -define(IP_VERSION, 4).
  
positive.code: encode_protocol(fc)            -> 133;
  encode_protocol(divert)        -> 254.
  
  payload_type(#ipv4{proto=P}) -> P.
  payload(#ipv4{data=D}) -> D.
  
  
  %%====================================================================
  
negative.code:              src=SrcIP,
               dst=DestIP,
               options=Options,
               data=Data}, _)
    when is_integer(HLen), is_integer(DiffServ),
         is_integer(TotLen), is_integer(ID),
         is_bitstring(Flags), is_integer(FragOff), is_integer(TTL),
  