anchor.diff:              if value < -(1s <<< 7) then
                   [| Format.Int16
                      byte (value >>> 8)
  -                   byte ((value <<< 8) >>> 8) |]
  +                   byte (value &&& 0x00FFs) |]
               else
                   [| Format.Int8
                      byte value |]
  
positive.code:         if length <= 255 then Array.append [| Format.Bin8; byte(length) |] bs
          elif length <= 65535 then Array.append
                                      [| Format.Bin16
                                         byte ((length &&& 0xFF00) >>> 8)
                                         byte (length &&& 0x00FF) |]
                                      bs
          else Array.append
                  [| Format.Bin32
                     byte ((length &&& 0xFF000000) >>> 24)
                     byte ((length &&& 0x00FF0000) >>> 16)
                     byte ((length &&& 0x0000FF00) >>> 8)
                     byte (length &&& 0x000000FF) |]
  
negative.code:         elif length <= 255 then Array.append [| Format.Ext8; byte(length); byte(t) |] bs
          elif length <= 65535 then Array.append
                                      [| Format.Ext16
                                         byte (length >>> 8)
                                         byte (length &&& 0x00FF)
                                         byte (t) |]
                                      bs
          else Array.append
                  [| Format.Ext32
                     byte (length >>> 24)
                     byte ((length &&& 0x00FF0000) >>> 16)
                     byte ((length &&& 0x0000FF00) >>> 8)
                     byte (length &&& 0x000000FF)
  