(.module: [library [lux "*" ["_" test {"+" [Test]}] [abstract [monad {"+" [do]}] [\\specification ["$[0]" equivalence]]] [data ["[0]" binary "_" ["[1]T" \\test]]] [math ["[0]" random {"+" [Random]} ("[1]\[0]" monad)]]]] ["$[0]" /// "_" ["[1][0]" hash]] [\\program ["[0]" / ["//[1]" /// "_" ["[1][0]" 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))) ))))