(.using [library [lux "*" ["_" test {"+" Test}] [abstract [monad {"+" do}]] [data ["[0]" text] [collection ["[0]" set] ["[0]" list]]] [math ["[0]" random {"+" Random} ("[1]#[0]" monad)] [number ["n" nat]]]]] [\\program ["[0]" /]]) (def: .public random (Random /.Type) (all random.either (all random.either (random#in /.lux_library) (random#in /.jvm_library)) (all random.either (random#in /.pom) (random#in /.md5) (random#in /.sha-1)) )) (def: .public test Test (<| (_.covering /._) (_.for [/.Type] (all _.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)))) ))))