(.module: [lux #* ["_" test (#+ Test)] [abstract [monad (#+ do)]] [math ["." random ("#@." monad)]]] ["." / #_ ["#." binary] ["#." bit] ["#." color] ["#." identity] ["#." lazy] ["#." maybe] ["#." name] ["#." product] ["#." sum] [number ["#." i8] ["#." i16] ["#." i32] ["#." i64] ["#." nat] ["#." int] ["#." rev] ["#." frac] ["#." ratio] ["#." complex]] ["#." text ["#/." regex]] [format ["#." json] ["#." xml]] ["#." collection]]) ## TODO: Get rid of this ASAP (template: (!bundle body) (: Test (do random.monad [_ (wrap [])] body))) (def: number Test ## TODO: Inline ASAP (let [part0 ($_ _.and /i8.test /i16.test /i32.test /i64.test) part1 ($_ _.and /nat.test /int.test /rev.test) part2 ($_ _.and /frac.test /ratio.test /complex.test)] ($_ _.and (!bundle part0) (!bundle part1) (!bundle part2) ))) (def: text ($_ _.and /text.test /text/regex.test )) (def: format ($_ _.and /json.test /xml.test )) (def: #export test Test ## TODO: Inline ASAP (let [test0 ($_ _.and /binary.test /bit.test /color.test /identity.test) test1 ($_ _.and /lazy.test /maybe.test /name.test /product.test) test2 ($_ _.and /sum.test ..number ..text ..format /collection.test)] ($_ _.and (!bundle test0) (!bundle test1) (!bundle test2) )))