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

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

        ($.definition (/.Object brand))
        ($.definition /.Nil)
        ($.definition /.Function)
        ($.definition /.Integer)
        ($.definition /.Float)
        ($.definition /.String)

        ($.definition /.import
          "Easily import types, methods, functions and constants."
          [(import Stat
             "[1]::[0]"
             (executable? [] Bit)
             (size Int))

           (import File "as" RubyFile
             "[1]::[0]"
             ("static" SEPARATOR ..String)
             ("static" open [Path ..String] "io" "try" RubyFile)
             ("static" stat [Path] "io" "try" Stat)
             ("static" delete [Path] "io" "try" Int)
             ("static" file? [Path] "io" "try" Bit)
             ("static" directory? [Path] "io" "try" Bit)

             (read [] "io" "try" Binary)
             (write [Binary] "io" "try" Int)
             (flush [] "io" "try" "?" Any)
             (close [] "io" "try" "?" Any))])
        ))
