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

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

        ($.definition /.lefts)
        ($.definition /.rights)
        ($.definition /.partition)
        ($.definition /.equivalence)
        ($.definition /.hash)

        ($.definition /.left
          "Lifts value to the left side of a 2-variant.")

        ($.definition /.right
          "Lifts value to the right side of a 2-variant.")

        ($.definition /.either
          "Applies a function to either side of a 2-variant."
          [(either on_left on_right)])

        ($.definition /.then
          "Applies functions to both sides of a 2-variant."
          [(then on_left on_right)])
        ))
