... 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]]]
 [\\library
  ["[0]" /]])

(the .public documentation
  (List $.Documentation)
  (list ($.module /._
                  "Functionality for working with tuples (particularly 2-tuples/pairs).")

        ($.definition /.equivalence)
        ($.definition /.hash)

        ($.definition /.left
          "The left side of a pair.")

        ($.definition /.right
          "The right side of a pair.")

        ($.definition /.curried
          "Converts a 2-argument function into nested single-argument functions."
          ($.example (' (curried f))))

        ($.definition /.uncurried
          "Converts nested single-argument functions into a 2-argument function."
          ($.example (' (uncurried f))))

        ($.definition /.swapped
          ""
          ($.example (' (swapped [left right]))))

        ($.definition /.then
          "Apply functions to both sides of a pair."
          ($.example (' (then f g))))

        ($.definition /.forked
          "Yields a pair by applying both functions to a single value."
          ($.example (' (forked f g))))
        ))
