anchor.diff:          raw
           array' f
           map' f
  +        simpleFixType
         ]
   
       let parse input = parser (fun t xs -> Raw (t, xs)) input
  
positive.code:     |>> (binParser.toUInt32 >> int)
      >>= fun size -> manyN size (keyValuePair f) |>> (Map.ofList >> Map)
  
    and map' f = fixMap f <|> map16 f <|> map32 f
  
    and parser<'T when 'T : comparison> (f: TypeCode -> byte [] -> ExtendedValue<'T>) =
      choice [
  
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
  