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

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

                ($.definition /.async)
                ($.definition /.headers)
                (,, (for @.jvm (,, (these ($.definition /.default)))
                         (,, (these))))

                ($.definition (/.Client !)
                  "A HTTP client capable of issuing requests to a HTTP server.")
                
                (,, (with_template [<name>]
                      [($.definition <name>
                         (format "A " (text.upper_cased (template.text [<name>])) " request."))]

                      [/.post]
                      [/.get]
                      [/.put]
                      [/.patch]
                      [/.delete]
                      [/.head]
                      [/.connect]
                      [/.options]
                      [/.trace]
                      ))
                ))))
