vertex x == vertex x * vertex x
vertex x == vertex x * vertex x
pure x == pure x * pure xNote that by applying the axiom in the reverse direction, one can always remove all self-loops resulting in an irreflexive graph. This type class can therefore be also used in the context of irreflexive graphs.
vertex x == vertex x * vertex xThe Show instance produces reflexively closed expressions:
show (1 :: ReflexiveRelation Int) == "edge 1 1" show (1 * 2 :: ReflexiveRelation Int) == "edges [(1,1),(1,2),(2,2)]"