I have just tried out this library and have been very happy but the graph types unfortunately cannot be used on vertex types that rely on external comparisons (do not overriding IsEqual and Get Hashcode).
This is rather bothersome since I would like to use the graphing classes on some classes in a large project that by default use reference comparison, but which I would like the edge dictionaries to use a custom type of IEqualityComparer.
Currently I either have to create a wrapper class and overload IsEqual/GetHashCode there, or create both my own version of the graph needed and an alternative VertexEdgeDictionary.
It would be far more convenient for me to create a class inheriting from the graph needed and instantiate an inherited VertexEdgeDictionary with a supplied IEqualityComparer.
Is there any particular reason why these classes are unfriendly to inheritors?