anchor.diff:      open EgtReaderImpl
       open StateResult
       open System.IO
  +    open System.Text
   
       let readRecord = sresult {
  -        let! tag = takeChar
  +        let! tag = takeByte <!> char
           if tag <> 'M' then
               do! tag |> InvalidRecordTag |> fail
           let! count = takeUInt16 <!> int
  
positive.code:     }
  
      let readEntry = sresult {
          let! entryCode = takeChar
          match entryCode with
          | 'E' -> return Empty
          | 'b' -> return! takeByte <!> Byte
  
negative.code:     }
  
      [<Literal>]
      let CGTHeader = "GOLD Parser Tables/1.0\0"
      [<Literal>]
      let EGTHeader = "GOLD Parser Tables/5.0\0"
  
      let readEGT = sresult {
          let! header =
              takeBytes (Encoding.Unicode.GetByteCount EGTHeader)
              <!> Array.ofSeq
              <!> Encoding.Unicode.GetString
          match header with
          | CGTHeader -> do! fail ReadACGTFile
          | EGTHeader -> do ()
          | _ -> do! fail UnknownFile
          return! whileM (Seq.isEmpty() |> liftState) readRecord <!> List.ofSeq <!> EGTFile
      }
  
  