(.module: [lux #* data/text/format ["_" test (#+ Test)] [control {[0 #test] [/ ["$." equivalence] ["$." order] ["$." enum]]}] [math ["r" random (#+ Random) ("#@." monad)]]] {1 ["." / (#+ Day)]}) (def: #export day (Random Day) (r.either (r.either (r.either (r@wrap #/.Sunday) (r@wrap #/.Monday)) (r.either (r@wrap #/.Tuesday) (r@wrap #/.Wednesday))) (r.either (r.either (r@wrap #/.Thursday) (r@wrap #/.Friday)) (r@wrap #/.Saturday)))) (def: #export test Test (<| (_.context (%name (name-of /._))) ($_ _.and ($equivalence.spec /.equivalence ..day) ($order.spec /.order ..day) ($enum.spec /.enum ..day) )))