(.require [library [lux (.except) [abstract [monad (.only do)]] [data ["[0]" text] [collection ["[0]" set] ["[0]" list]]] [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number ["n" nat]]] [test ["_" property (.only Test)]]]] [\\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 /.sha1)) )) (def .public test Test (<| (_.covering /._) (_.for [/.Type] (all _.and (_.coverage [/.lux_library /.jvm_library /.js_library /.pom /.md5 /.sha1] (let [options (list /.lux_library /.jvm_library /.js_library /.pom /.md5 /.sha1) uniques (set.of_list text.hash options)] (n.= (list.size options) (set.size uniques)))) ))))