anchor.diff:  open Farkle
   open Farkle.Monads
   open System
  -
  -type RecordType =
  -    | Charset = 67uy
  -    | DFAState = 68uy
  -    | InitialStates = 73uy
  -    | LRState = 76uy
  -    | Parameter = 80uy
  -    | Rule = 82uy
  -    | Symbol = 83uy
  -    | CharacterRanges = 99uy
  -    | Group = 103uy
  -    | GroupNesting = 110uy
  -    | Property = 112uy
  -    | Counts = 116uy
  +open System.Text
   
   type Entry =
       | Empty
  
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
      }
  
  