(.module: [library [lux #* ["_" test (#+ Test)] [abstract [monad (#+ do)]] [data ["." text] [collection ["." set] ["." list]]] [math ["." random (#+ Random) ("#\." monad)] [number ["n" nat]]]]] [\\program ["." /]]) (def: .public random (Random /.Type) ($_ random.either ($_ random.either (random\in /.lux_library) (random\in /.jvm_library)) ($_ random.either (random\in /.pom) (random\in /.md5) (random\in /.sha-1)) )) (def: .public test Test (<| (_.covering /._) (_.for [/.Type] ($_ _.and (_.cover [/.lux_library /.jvm_library /.js_library /.pom /.md5 /.sha-1] (let [options (list /.lux_library /.jvm_library /.js_library /.pom /.md5 /.sha-1) uniques (set.of_list text.hash options)] (n.= (list.size options) (set.size uniques)))) ))))