anchor.diff:          elif not <| Set.contains target vertices then
               invalidArg "target" "The vertex is not in the graph's vertex-set."
   
  -        Map.containsKey (source, target) edges
  -
  -    //
  -    member __.GetEdge (source : 'Vertex, target : 'Vertex) =
  +        Set.contains (source, target) edges
  +
  +    //
  +    member __.AddVertex (vertex : 'Vertex) =
  +        VertexLabeledSparseDigraph (
  +            Set.add vertex vertices,
  +            edges)
  +
  +    //
  +    member __.AddEdge (source : 'Vertex, target : 'Vertex) =
           // Preconditions
           if not <| Set.contains source vertices then
               invalidArg "source" "The vertex is not in the graph's vertex-set."
           elif not <| Set.contains target vertices then
               invalidArg "target" "The vertex is not in the graph's vertex-set."
   
  -        Map.find (source, target) edges
  -
  -    //
  -    member __.TryGetEdge (source : 'Vertex, target : 'Vertex) =
  -        // Preconditions
  -        if not <| Set.contains source vertices then
  -            invalidArg "source" "The vertex is not in the graph's vertex-set."
  -        elif not <| Set.contains target vertices then
  -            invalidArg "target" "The vertex is not in the graph's vertex-set."
  -
  -        Map.tryFind (source, target) edges
  -
  -    //
  -    member __.AddVertex (vertex : 'Vertex) =
  -        LabeledSparseDigraph (
  -            Set.add vertex vertices,
  -            edges)
  -
  -    //
  -    member __.AddEdge (source : 'Vertex, target : 'Vertex, edge : 'Edge) =
  -        // Preconditions
  -        if not <| Set.contains source vertices then
  -            invalidArg "source" "The vertex is not in the graph's vertex-set."
  -        elif not <| Set.contains target vertices then
  -            invalidArg "target" "The vertex is not in the graph's vertex-set."
  -
  -        LabeledSparseDigraph (
  +        VertexLabeledSparseDigraph (
               vertices,
  -            Map.add (source, target) edge edges)
  +            Set.add (source, target) edges)
   
       //
       member __.RemoveVertex (vertex : 'Vertex) =
  
positive.code:         // Remove in- and out-edges of the vertex.
          let edges =
              edges
              |> Map.filter (fun (source, target) _ ->
                  source <> vertex
                  && target <> vertex)
  
          LabeledSparseDigraph (
              Set.remove vertex vertices,
              edges)
  
  
negative.code:         elif not <| Set.contains target vertices then
              invalidArg "target" "The vertex is not in the graph's vertex-set."
  
          VertexLabeledSparseDigraph (
              vertices,
              Set.remove (source, target) edges)
  
  /// Functions on VertexLabeledSparseDigraphs.
  [<RequireQualifiedAccess; CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  module private VertexLabeledSparseDigraph =
      /// The empty graph.
      [<GeneralizableValue>]
      let empty<'Vertex when 'Vertex : comparison> =
          VertexLabeledSparseDigraph<'Vertex>.Empty
  
      /// Determines if the graph is empty -- i.e., if it's vertex set is empty.
      let inline isEmpty (graph : VertexLabeledSparseDigraph<'Vertex>) =
          graph.IsEmpty
  
      //
      let inline addVertex (vertex : 'Vertex) (graph : VertexLabeledSparseDigraph<'Vertex>) =
          graph.AddVertex vertex
  
      //
      let inline addEdge source target (graph : VertexLabeledSparseDigraph<'Vertex>) =
          graph.AddEdge (source, target)
  
      //
      let inline removeVertex (vertex : 'Vertex) (graph : VertexLabeledSparseDigraph<'Vertex>) =
          graph.RemoveVertex vertex
  
      //
      let inline removeEdge source target (graph : VertexLabeledSparseDigraph<'Vertex>) =
          graph.RemoveEdge (source, target)
  
      //
      let inline containsVertex (vertex : 'Vertex) (graph : VertexLabeledSparseDigraph<'Vertex>) =
          graph.ContainsVertex vertex
  
      //
      let inline containsEdge source target (graph : VertexLabeledSparseDigraph<'Vertex>) =
          graph.ContainsEdge (source, target)
  
      //
      let dominators (graph : VertexLabeledSparseDigraph<'Vertex>)
          : Map<'Vertex, Set<'Vertex>> =
          // TODO
          raise <| System.NotImplementedException "LabeledSparseDigraph.dominators"
  
      //
      let reachable (graph : VertexLabeledSparseDigraph<'Vertex>)
          : Map<'Vertex, Set<'Vertex>> =
          // TODO
          raise <| System.NotImplementedException "LabeledSparseDigraph.reachable"
  