(.module: [library [lux "*" ["_" test {"+" [Test]}] [abstract [monad {"+" [do]}]] [math ["[0]" random] [number ["n" nat]]]]] [// [functor {"+" [Injection Comparison]}]] [\\library ["[0]" /]]) (def: .public (spec injection comparison (^open "@//[0]")) (All (_ f) (-> (Injection f) (Comparison f) (/.Mix f) Test)) (do random.monad [subject random.nat parameter random.nat] (_.cover [/.Mix] (n.= (@//mix n.+ parameter (injection subject)) (n.+ parameter subject)))))