anchor.diff:      let toKType s = ktypeMap.[s]
   
       let pKeyType_ws =
  -        (
  -            str "int32"   <|> str "int64"     <|>
  -            str "uint32"  <|> str "uint64"    <|>
  -            str "sint32"  <|> str "sint64"    <|>
  -            str "fixed32" <|> str "fixed64"   <|>
  -            str "sfixed32"<|> str "sfixed64"  <|>
  -            str "bool"    <|>
  +        ( choice [
  +            str "int32"   ; str "int64"     ;
  +            str "uint32"  ; str "uint64"    ;
  +            str "sint32"  ; str "sint64"    ;
  +            str "fixed32" ; str "fixed64"   ;
  +            str "sfixed32"; str "sfixed64"  ;
  +            str "bool"    ;
               str "string"
  +            ]
           ) .>> ws |>> toKType
   
       pipe4
  
positive.code:     let toType s = typeMap.[s]
  
      let pPrimitiveType =
          ( str "double"  <|> str "float"     <|>
              str "int32"   <|> str "int64"     <|>
              str "uint32"  <|> str "uint64"    <|>
              str "sint32"  <|> str "sint64"    <|>
              str "fixed32" <|> str "fixed64"   <|>
              str "sfixed32"<|> str "sfixed64"  <|>
              str "bool"    <|>
              str "string"  <|> str "bytes"
          ) .>> ws |>> toType
  
      let pIdentType =
  
negative.code:     .>> eof
  
  and internal pProtoStatement =
      choice [
          pSyntax
          pImport
          pPackage
          pOptionStatement
          pMessage
          pEnum
          (isProto2 >>. pExtend)
          pService
          ]
  
  // Resolve recursive parsers
  do pMessageDefR := pMessageDefImpl
  