... 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
    [text
     ["%" \\injection]]]
   [meta
    [macro
     ["[0]" template]]]]]
 [\\library
  ["[0]" /]])

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

            ($.definition /.empty?)
            ($.definition /.entries)
            ($.definition /.keys)
            ($.definition /.values)
            ($.definition /.equivalence)

            ($.definition (/.Dictionary key value)
              "A dictionary data-structure with ordered entries.")

            ($.definition /.empty
              "An empty dictionary, employing the given order."
              ($.example (' (empty order))))

            ($.definition /.value
              ""
              ($.example (' (value key dict))))

            ($.definition /.key?
              ""
              ($.example (' (key? dict key))))

            (,, (template.with [<name>]
                  [(`` ($.definition <name>
                         (%.message "Yields value under the " (,, (template.text [<name>])) "imum key.")))]

                  [/.min]
                  [/.max]
                  ))

            ($.definition /.size
              ""
              ($.example (' (size dict))))

            ($.definition /.has
              ""
              ($.example (' (has key value dict))))

            ($.definition /.lacks
              ""
              ($.example (' (lacks key dict))))

            ($.definition /.revised
              ""
              ($.example (' (revised key transform dict))))

            ($.definition /.of_list
              ""
              ($.example (' (of_list order list))))
            )))
