(.using [library [lux "*" [abstract [monad (.only do)]] [data ["[0]" identity (.only Identity)]] [math ["[0]" random] [number ["n" nat]]] ["_" test (.only Test)]]] [\\library ["[0]" /]]) (def: .public test Test (do random.monad [sample random.nat] (<| (_.covering /._) (all _.and (_.coverage [/.be] (n.= (++ sample) (is (Identity Nat) (/.be identity.comonad [value (out sample)] (out (++ value)))))) ))))