... 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]
   ["[0]" debug]
   [data
    [text
     ["%" \\injection]]
    [collection
     ["[0]" sequence]]]
   [meta
    ["[0]" code
     ["<[1]>" \\projection]]
    [macro
     ["[0]" template]]
    [compiler
     [language
      [lux
       ["[0]" phase (.only)
        ["[0]" declaration]]]]]]]]
 [\\library
  ["[0]" /]])

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

        ($.definition /.analysis
          "Mechanism for defining extensions to Lux's analysis/type-checking infrastructure."
          ($.example (' (analysis ("my analysis" self phase archive [pass_through <code>.any])
                          (phase archive pass_through)))))

        ($.definition /.synthesis
          "Mechanism for defining extensions to Lux's synthesis/optimization infrastructure."
          ($.example (' (synthesis ("my synthesis" self phase archive [pass_through <analysis>.any])
                          (phase archive pass_through)))))

        ($.definition /.translation
          ""
          ($.example (' (translation ("my translation" self phase archive [pass_through <synthesis>.any])
                          (phase archive pass_through)))))

        ($.definition /.declaration
          ""
          ($.example (' (declaration ("my declaration" self phase archive [parameters (<>.some <code>.any)])
                          (do phase.monad
                            [.let [_ (debug.log! (%.message "Successfully installed declaration " (%.text self) "!"))]]
                            (in declaration.no_requirements))))))
        ))
