(.module: [library [lux #* ["_" test (#+ Test)] [abstract [monad (#+ do)]] [math ["." random (#+ Random)]]]] [\\library ["." / (#+ Equivalence)]]) (def: .public (spec (^open "_//.") random) (All [a] (-> (Equivalence a) (Random a) Test)) (do random.monad [left random right random] (<| (_.for [/.Equivalence]) ($_ _.and (_.test "Reflexivity." (_//= left left)) (_.test "Symmetry." (if (_//= left right) (_//= right left) (not (_//= right left))))))))