... This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
... If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

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

(the .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)
          (%.message "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
          ""
          ($.example (' (quotient class value))))

        ($.definition /.type
          "The Quotient type associated with a Class type."

          ($.example (' (the even
                          (class even?))))
          ($.example (' (the Even
                          Type
                          (type even))))
          ($.example (' (is Even
                            (quotient even 123)))))
        ))
