(.using
  [library
   [lux
    ["$" documentation {"+" documentation:}]
    [data
     [text {"+" \n}
      ["%" format {"+" format}]]]]]
  [\\library
   ["[0]" /]])

(documentation: (/.Predicate it)
  "A question that can be asked of a value, yield either false (#0) or true (#1).")

(documentation: /.none
  "A predicate that always fails.")

(documentation: /.or
  "A predicate that meets either predecessor.")

(documentation: /.all
  "A predicate that always succeeds.")

(documentation: /.and
  "A predicate that meets both predecessors.")

(documentation: /.complement
  "The opposite of a predicate.")

(documentation: /.difference
  "A predicate that meeds 'base', but not 'sub'.")

(documentation: /.rec
  "Ties the knot for a recursive predicate.")

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..Predicate
             ..none
             ..or
             ..all
             ..and
             ..complement
             ..difference
             ..rec
             ($.default /.union)
             ($.default /.intersection)
             ($.default /.functor)]
            []))
