(.module: [library [lux "*" ["_" test {"+" [Test]}] [abstract [monad {"+" [do]}] [\\specification ["$." equivalence]]] [data ["." binary "_" ["#T" \\test]]] [math ["." random {"+" [Random]} ("#\." monad)]]]] ["$." /// "_" ["#." hash]] [\\program ["." / ["//#" /// "_" ["#." hash]]]]) (def: .public random (Random /.Status) ($_ random.or (random\in []) (random.or ($///hash.random ///hash.sha-1) ($///hash.random ///hash.md5)) (random.and ($///hash.random ///hash.sha-1) ($///hash.random ///hash.md5)) )) (def: .public test Test (<| (_.covering /._) (_.for [/.Status] ($_ _.and (_.for [/.equivalence] ($equivalence.spec /.equivalence ..random)) (do random.monad [payload (binaryT.random 1)] (_.cover [/.verified] (case (/.verified payload) (#/.Verified sha1 md5) true _ false))) ))))