(.module: [lux #* ["_" test (#+ Test)] [abstract {[0 #spec] [/ ["$." equivalence]]}] [math ["." random (#+ Random) ("#\." monad)]]] ["$." /// #_ ["#." hash]] {#program ["." / ["//#" /// #_ ["#." hash]]]}) (def: #export random (Random /.Status) ($_ random.or (random\wrap []) (random.or ($///hash.random ///hash.sha-1) ($///hash.random ///hash.md5)) (random.and ($///hash.random ///hash.sha-1) ($///hash.random ///hash.md5)) )) (def: #export test Test (<| (_.covering /._) (_.for [/.Status] ($_ _.and (_.for [/.equivalence] ($equivalence.spec /.equivalence ..random)) ))))