(.using
  [library
   [lux {"-" list}
    ["$" documentation {"+" documentation:}]
    [control
     ["<>" parser
      ["<[0]>" code]]]
    [data
     ["[0]" text {"+" \n}
      ["%" format {"+" format}]]]
    [macro
     ["[0]" template]]]]
  [\\library
   ["[0]" /]])

(documentation: (/.Set it)
  "A set that keeps track of repetition in its entries.")

(documentation: /.has
  ""
  [(has multiplicity elem set)])

(documentation: /.lacks
  ""
  [(lacks multiplicity elem set)])

(documentation: /.multiplicity
  ""
  [(multiplicity set elem)])

(documentation: /.sub?
  "Is 'subject' a sub-set of 'reference'?"
  [(sub? reference subject)])

(documentation: /.support
  "A set of the unique (non repeated) members."
  [(support set)])

(documentation: /.member?
  ""
  [(member? set elem)])

(documentation: /.super?
  "Is 'subject' a super-set of 'reference'?")

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..Set
             ..has
             ..lacks
             ..multiplicity
             
             ..sub?
             ..support
             ..member?
             ..super?
             ($.default /.empty)
             ($.default /.size)
             ($.default /.list)
             ($.default /.equivalence)
             ($.default /.hash)
             ($.default /.empty?)
             ($.default /.of_list)
             ($.default /.of_set)
             ($.default /.union)
             ($.default /.sum)
             ($.default /.intersection)
             ($.default /.difference)]
            []))
