anchor.diff:  type BinaryUnpicklerState = {Raw : byte array; Position : int}
   type BinaryPicklerState = {Raw : byte list}
   
  -type BinaryPU<'a> = {Pickle : unit -> 'a * BinaryPicklerState; Unpickle : BinaryUnpicklerState -> 'a * BinaryUnpicklerState}
  +type BinaryPU<'a> = {Pickle : 'a * BinaryPicklerState -> BinaryPicklerState; Unpickle : BinaryUnpicklerState -> 'a * BinaryUnpicklerState}
   
   module private PickleConvertors =
       let private checkConversionException f pos array =
  
positive.code: 
      let pickleInt64 (i64 : int64) =
          {
          Pickle = fun _ -> i64, {Raw = (PickleConvertors.convFromInt64 i64)};
          Unpickle = fun st ->
              let pos = st.Position
              let result = PickleConvertors.convInt64 pos (st.Raw)
  
negative.code: 
      let pickleInt16 (i16 : int16) =
          {
          Pickle = fun (i16, s) -> {Raw = (PickleConvertors.convFromInt16 i16) @ s.Raw}
          Unpickle = fun st ->
              let pos = st.Position
              let result = PickleConvertors.convInt16 pos (st.Raw)
              result, {st with Position = pos + sizeof<int16>}
          }
  
      let pickleInt32 =
          {
          Pickle = fun (i32, s) -> {Raw = (PickleConvertors.convFromInt32 i32) @ s.Raw}
          Unpickle = fun st ->
              let pos = st.Position
              let result = PickleConvertors.convInt32 pos (st.Raw)
  