data SymClosure : Rel ty -> ty -> ty -> TypeFwd : rel x y -> SymClosure rel x yBwd : rel y x -> SymClosure rel x yReflexive ty rel => Reflexive ty (SymClosure rel)Symmetric ty (SymClosure rel)data TransClosure : Rel ty -> ty -> ty -> TypeNil : TransClosure rel x x(::) : rel x y -> TransClosure rel y z -> TransClosure rel x zSymmetric ty rel => Equivalence ty (TransClosure rel)Symmetric ty rel => Euclidean ty (TransClosure rel)Symmetric ty rel => PartialEquivalence ty (TransClosure rel)Reflexive ty (TransClosure rel)Symmetric ty rel => Symmetric ty (TransClosure rel)Symmetric ty rel => Tolerance ty (TransClosure rel)Transitive ty (TransClosure rel)