(.using
  [library
   [lux "*"
    ["$" documentation {"+" documentation:}]
    [control
     ["<>" parser
      ["<[0]>" code]]]
    [data
     ["[0]" text {"+" \n}
      ["%" format {"+" format}]]]
    [macro
     ["[0]" template]]]]
  [\\library
   ["[0]" /]])

(template [<name>]
  [(documentation: <name>
     (|> (template.text [<name>])
         (text.replaced "_" " ")
         text.upper_cased
         (format (%.nat <name>) ": ")))]

  ... 1xx Informational response
  [/.continue]
  [/.switching_protocols]
  [/.processing]
  [/.early_hints]

  ... 2xx Success
  [/.ok]
  [/.created]
  [/.accepted]
  [/.non_authoritative_information]
  [/.no_content]
  [/.reset_content]
  [/.partial_content]
  [/.multi_status]
  [/.already_reported]
  [/.im_used]

  ... 3xx Redirection
  [/.multiple_choices]
  [/.moved_permanently]
  [/.found]
  [/.see_other]
  [/.not_modified]
  [/.use_proxy]
  [/.switch_proxy]
  [/.temporary_redirect]
  [/.permanent_redirect]

  ... 4xx Client errors
  [/.bad_request]
  [/.unauthorized]
  [/.payment_required]
  [/.forbidden]
  [/.not_found]
  [/.method_not_allowed]
  [/.not_acceptable]
  [/.proxy_authentication_required]
  [/.request_timeout]
  [/.conflict]
  [/.gone]
  [/.length_required]
  [/.precondition_failed]
  [/.payload_too_large]
  [/.uri_too_long]
  [/.unsupported_media_type]
  [/.range_not_satisfiable]
  [/.expectation_failed]
  [/.im_a_teapot]
  [/.misdirected_request]
  [/.unprocessable_entity]
  [/.locked]
  [/.failed_dependency]
  [/.upgrade_required]
  [/.precondition_required]
  [/.too_many_requests]
  [/.request_header_fields_too_large]
  [/.unavailable_for_legal_reasons]

  ... 5xx Server errors
  [/.internal_server_error]
  [/.not_implemented]
  [/.bad_gateway]
  [/.service_unavailable]
  [/.gateway_timeout]
  [/.http_version_not_supported]
  [/.variant_also_negotiates]
  [/.insufficient_storage]
  [/.loop_detected]
  [/.not_extended]
  [/.network_authentication_required]
  )

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [ ... 1xx Informational response
             ..continue
             ..switching_protocols
             ..processing
             ..early_hints

             ... 2xx Success
             ..ok
             ..created
             ..accepted
             ..non_authoritative_information
             ..no_content
             ..reset_content
             ..partial_content
             ..multi_status
             ..already_reported
             ..im_used

             ... 3xx Redirection
             ..multiple_choices
             ..moved_permanently
             ..found
             ..see_other
             ..not_modified
             ..use_proxy
             ..switch_proxy
             ..temporary_redirect
             ..permanent_redirect

             ... 4xx Client errors
             ..bad_request
             ..unauthorized
             ..payment_required
             ..forbidden
             ..not_found
             ..method_not_allowed
             ..not_acceptable
             ..proxy_authentication_required
             ..request_timeout
             ..conflict
             ..gone
             ..length_required
             ..precondition_failed
             ..payload_too_large
             ..uri_too_long
             ..unsupported_media_type
             ..range_not_satisfiable
             ..expectation_failed
             ..im_a_teapot
             ..misdirected_request
             ..unprocessable_entity
             ..locked
             ..failed_dependency
             ..upgrade_required
             ..precondition_required
             ..too_many_requests
             ..request_header_fields_too_large
             ..unavailable_for_legal_reasons

             ... 5xx Server errors
             ..internal_server_error
             ..not_implemented
             ..bad_gateway
             ..service_unavailable
             ..gateway_timeout
             ..http_version_not_supported
             ..variant_also_negotiates
             ..insufficient_storage
             ..loop_detected
             ..not_extended
             ..network_authentication_required]
            []))
