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

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

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

                ($.definition (/.Console !)
                  "An interface to console/terminal I/O.")

                ($.definition /.write_line
                  "Writes the message on the console and appends a new-line/line-feed at the end."
                  [(write_line message console)])

                ($.definition (/.Mock s)
                  (format "A mock/simulation of a console."
                          \n "Useful for testing."))

                ($.definition /.mock
                  ""
                  [(mock mock init)])
                ))))
