(.require
 [library
  [lux (.except)
   ["$" documentation]
   [data
    ["[0]" text (.only \n)
     ["%" \\format (.only format)]]]]]
 [\\library
  ["[0]" /]])

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

        ($.definition /.class)
        ($.definition /.value)
        ($.definition /.label)
        ($.definition /.equivalence)

        ($.definition (/.Class value label)
          "The class knows how to classify/label values that are meant to be equivalent to one another.")

        ($.definition (/.Quotient value label)
          (format "A quotient value has been labeled with a class."
                  \n "All equivalent values will belong to the same class."
                  \n "This means all equivalent values possess the same label."))

        ($.definition /.quotient
          ""
          [(quotient class value)])

        ($.definition /.type
          "The Quotient type associated with a Class type."
          [(def even
             (class even?))

           (def Even
             Type
             (type even))

           (is Even
               (quotient even 123))])
        ))
