anchor.diff:      "Vertices = {VertexCount}, \
        EdgeSets = {EdgeSetCount}, \
        Edges = {EdgeCount}")>]
  -type LexerDfaGraph private (vertexCount : int,
  -                            adjacencyMap : Map<TransitionEdgeKey, CharSet>,
  -                            eofTransition : TransitionEdgeKey option) =
  +type SparseMultiDigraph<[<Measure>] 'Tag>
  +    private (vertexCount : int, adjacencyMap : Map<TransitionEdgeKey<'Tag>, CharSet>, eofTransition : TransitionEdgeKey<'Tag> option) =
       //
       static let empty =
  -        LexerDfaGraph (GenericZero, Map.empty, None)
  +        SparseMultiDigraph (GenericZero, Map.empty, None)
   
       //
       static member internal Empty
  
positive.code:             | None ->
                  edges
  
          LexerDfaGraph (
              vertexCount,
              Map.add key edgeSet adjacencyMap,
              eofTransition)
  
      //
      member __.AddEofEdge (source : DfaStateId, target : DfaStateId) =
          // Preconditions
          if int source < 0 || int source >= vertexCount then
              invalidArg "source" "The vertex is not in the graph's vertex-set."
  
negative.code: 
      //
      member __.CreateVertex () =
          let newVertex : int<'Tag> = tag vertexCount
          newVertex,
          SparseMultiDigraph (
              vertexCount + 1,
              adjacencyMap,
              eofTransition)
  
      //
      member __.TryGetEdgeSet (source : int<'Tag>, target : int<'Tag>) =
          // Preconditions
          if int source < 0 || int source >= vertexCount then
              invalidArg "source" "The vertex is not in the graph's vertex-set."
          elif int target < 0 || int target >= vertexCount then
              invalidArg "target" "The vertex is not in the graph's vertex-set."
  
          let key = TransitionEdgeKey<'Tag> (source, target)
          Map.tryFind key adjacencyMap
  
      //
      member __.AddEdges (source : int<'Tag>, target : int<'Tag>, edges : CharSet) =
          // Preconditions
          if int source < 0 || int source >= vertexCount then
              invalidArg "source" "The vertex is not in the graph's vertex-set."
  