anchor.diff:      
       ///Removes an edge from the graph.
       member this.RemoveEdge((s, t, w): LEdge<'Vertex,'Edge>) =
  -        let edgeArraySource = 
  -            try 
  -                vertexOutEdges.Item s
  -                |> Array.filter (fun x -> x <> (s, t, w) )
  -            with
  -            |_ -> failwithf "The source vertex %O of the edge does not exist in this graph." s
  -
  -        let edgeArrayTarget = 
  -            try
  -                vertexOutEdges.Item t
  -                |> Array.filter (fun x -> x <> (s, t, w) )
  -            with
  -            |_ -> failwithf "The target vertex %O of the edge does not exist in this graph." t        
  -        
  -        vertexOutEdges.Item s <- (edgeArraySource)
  -        vertexOutEdges.Item t <- (edgeArrayTarget)
  +        if s <> t then 
  +            let edgeArraySource = 
  +                try 
  +                    vertexOutEdges.Item s
  +                    |> Array.filter (fun x -> x <> (s, t, w) )
  +                with
  +                |_ -> failwithf "The source vertex %O of the edge does not exist in this graph." s
  +
  +            let edgeArrayTarget = 
  +                try
  +                    vertexOutEdges.Item t
  +                    |> Array.filter (fun x -> x <> (s, t, w) )
  +                with
  +                |_ -> failwithf "The target vertex %O of the edge does not exist in this graph." t        
  +        
  +            vertexOutEdges.Item s <- (edgeArraySource)
  +            vertexOutEdges.Item t <- (edgeArrayTarget)
  +
  +        else
  +            let edgeArraySource = 
  +                try 
  +                    vertexOutEdges.Item s
  +                    |> Array.filter (fun x -> x <> (s, t, w) )
  +                with
  +                |_ -> failwithf "The source vertex %O of the edge does not exist in this graph." s 
  +
  +            vertexOutEdges.Item s <- (edgeArraySource)
  +
           this
   
       ///Removes an array of edges from the graph.
  
positive.code:         |> Array.length
  
      ///Returns the weighted degree of the vertex v.
      member this.WeightedDegree(weightingF : LEdge<'Vertex,'Edge> [] -> 'T,v:'Vertex) :'T =
          try
              vertexOutEdges.Item v
              |> weightingF
          with
          | _ -> failwithf "The vertex %O does not exist in the graph." v
  
  
negative.code:     member this.Degree(v:'Vertex) :int =
          try
             vertexOutEdges.Item v
             //|> Array.length
             |> Array.sumBy (fun (s,t,w) -> if s=t then 2 else 1)
          with
          |_ -> failwithf "The vertex %O does not exist in the graph." v
  
  