anchor.diff:      |>> (String: string -> MsgPackValue<'T>)
     
     let fixString<'T when 'T : comparison> =
  -    let matchHead =
  -      satisfy (function | [| One; Zero; One |] -> true | _ -> false) (binParser.bitsN 3)
  -      |>> binParser.bitsToInt
  -      |>> (fun x -> System.BitConverter.GetBytes(x))
  -      |> binParser.makeBitP (binParser.byteN 1)
  -    let length = binParser.bitsN 5 |>> binParser.bitsToInt |> binParser.makeBitP (binParser.byteN 1)
  -    stringN<'T> matchHead length
  +    binParser.byte1
  +    |> satisfy (byteToBitArray >> function
  +    | [ One; Zero; One; _; _; _; _; _ ] -> true
  +    | _ -> false)
  +    |>> (byteToBitArray >> Seq.skip 3 >> Seq.toArray >> binParser.bitsToInt)
  +    >>= fun length -> binParser.byteN length
  +    |>> fun xs -> Encoding.UTF8.GetString(xs)
  +    |>> (String: string -> MsgPackValue<'T>)
   
     let string8<'T when 'T : comparison> =
       stringN<'T> (matchHead HeadByte.String8) (binParser.byte1 |>> binParser.byteToInt)
  
positive.code:       ext32 f
      ]
  
    let rec fixArray f =
      satisfy (function | [| One; Zero; Zero; One |] -> true | _ -> false) (binParser.bitsN 4)
      >>. binParser.bitsN 4 |>> binParser.bitsToInt
      |> binParser.makeBitP (binParser.byteN 1)
      >>= fun size -> manyN size (parser f) |>> (Array.ofList >> Array)
  
    and array16 f =
  
negative.code:   module OldSpec =
  
      let fixRaw<'T when 'T : comparison> =
        binParser.byte1
        |> satisfy (byteToBitArray >> function
        | [ One; Zero; One; _; _; _; _; _ ] -> true
        | _ -> false)
        |>> (byteToBitArray >> Seq.skip 3 >> Seq.toArray >> binParser.bitsToInt)
        >>= fun length -> binParser.byteN length
        |>> (Binary: byte [] -> MsgPackValue<'T>)
  
      let raw16<'T when 'T : comparison> =
        binN<'T> (matchHead HeadByte.String16) (binParser.byte2 |>> (binParser.toUInt16 >> int))
      let raw32<'T when 'T : comparison> =
        binN<'T> (matchHead HeadByte.String32) (binParser.byte4 |>> (binParser.toUInt32 >> int))
      let raw<'T when 'T : comparison> =
        choice [
          fixRaw<'T>
          raw16<'T>
          raw32<'T>
        ]
  
      let parser<'T when 'T : comparison> (f: TypeCode -> byte [] -> ExtendedValue<'T>) =
        choice [
          nil
  