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

(documentation: /.complement
  (format "Generates the complement of a predicate."
          \n "That is a predicate that returns the oposite of the original predicate."))

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..complement
             ($.default /.no)
             ($.default /.yes)
             ($.default /.off)
             ($.default /.on)
             ($.default /.equivalence)
             ($.default /.hash)
             ($.default /.disjunction)
             ($.default /.conjunction)
             ($.default /.codec)]
            []))
