The TransitiveRelation data type represents a transitive binary relation
over a set of elements. Transitive relations satisfy all laws of the
Transitive type class and, in particular, the closure axiom:
y /= empty ==> x * y + x * z + y * z == x * y + y * zFor example, the following holds:
path xs == (clique xs :: TransitiveRelation Int)The Show instance produces transitively closed expressions:
show (1 * 2 :: TransitiveRelation Int) == "edge 1 2"
show (1 * 2 + 2 * 3 :: TransitiveRelation Int) == "edges [(1,2),(1,3),(2,3)]"Instances9Eq, Num, Ord, Show, IsString, NFData, …
Ord a => Eq (TransitiveRelation a)Defined in algebraic-graphs-0.8 · Algebra.Graph.Relation.Transitive(Ord a, Num a) => Num (TransitiveRelation a)Defined in algebraic-graphs-0.8 · Algebra.Graph.Relation.TransitiveOrd a => Ord (TransitiveRelation a)Defined in algebraic-graphs-0.8 · Algebra.Graph.Relation.Transitive(Ord a, Show a) => Show (TransitiveRelation a)Defined in algebraic-graphs-0.8 · Algebra.Graph.Relation.TransitiveIsString a => IsString (TransitiveRelation a)Defined in algebraic-graphs-0.8 · Algebra.Graph.Relation.TransitiveNFData a => NFData (TransitiveRelation a)Defined in algebraic-graphs-0.8 · Algebra.Graph.Relation.TransitiveOrd a => Graph (TransitiveRelation a)Defined in algebraic-graphs-0.8 · Algebra.Graph.Relation.TransitiveOrd a => Transitive (TransitiveRelation a)Defined in algebraic-graphs-0.8 · Algebra.Graph.Relation.Transitivetype Vertex (TransitiveRelation a) = aDefined in algebraic-graphs-0.8 · Algebra.Graph.Relation.Transitive