(.using
  [library
   [lux "*"
    ["_" test {"+" Test}]]]
  ["[0]" / "_"
   ["[1][0]" apply]
   ["[1][0]" codec]
   ["[1][0]" comonad
    ["[1]/[0]" cofree]]
   ["[1][0]" enum]
   ["[1][0]" equivalence]
   ["[1][0]" hash]
   ["[1][0]" mix]
   ["[1][0]" functor
    ["[1]/[0]" contravariant]]
   ["[1][0]" interval]
   ["[1][0]" monad
    ["[1]/[0]" free]]
   ["[1][0]" monoid]
   ["[1][0]" order]
   ["[1][0]" predicate]])

(def: functor
  Test
  ($_ _.and
      /functor.test
      /functor/contravariant.test
      ))

(def: monad
  Test
  ($_ _.and
      /monad.test
      /monad/free.test
      ))

(def: comonad
  Test
  ($_ _.and
      /comonad.test
      /comonad/cofree.test
      ))

(def: .public test
  Test
  ($_ _.and
      /apply.test
      /codec.test
      /enum.test
      /equivalence.test
      /hash.test
      /mix.test
      /interval.test
      /monoid.test
      /order.test
      /predicate.test
      ..functor
      ..monad
      ..comonad
      ))
