LazyGraph is now fully polymorphic (plan to implement LazyGraph.product, which
cannot be expressed with functors), with optional eq/hash functions