(.require
 [library
  [lux (.except list has)
   ["$" documentation]
   [data
    ["[0]" text (.only \n)
     ["%" \\format (.only format)]]
    [collection
     ["[0]" list (.use "[1]#[0]" monoid)]]]]]
 [\\library
  ["[0]" /]]
 ["[0]" /
  ["[1][0]" multi]
  ["[1][0]" ordered]])

(def .public documentation
  (List $.Documentation)
  (list.partial ($.module /._
                          "")

                ($.definition (/.Set it))
                ($.definition /.member_hash)
                ($.definition /.empty)
                ($.definition /.size)
                ($.definition /.lacks)
                ($.definition /.member?)
                ($.definition /.list)
                ($.definition /.union)
                ($.definition /.equivalence)
                ($.definition /.hash)
                ($.definition /.monoid)
                ($.definition /.empty?)
                ($.definition /.of_list)
                ($.definition /.predicate)

                ($.definition /.has
                  ""
                  [(has elem set)])

                ($.definition /.difference
                  ""
                  [(difference sub base)])

                ($.definition /.intersection
                  ""
                  [(intersection filter base)])

                ($.definition /.sub?
                  ""
                  [(sub? super sub)])

                ($.definition /.super?
                  ""
                  [(super? sub super)])

                (all list#composite
                     /multi.documentation
                     /ordered.documentation
                     )
                ))
