(.require
 [library
  [lux (.except)
   ["$" documentation]
   [data
    [text (.only \n)
     ["%" \\format (.only format)]]
    [collection
     ["[0]" list (.use "[1]#[0]" monoid)]]]]]
 [\\library
  ["[0]" /]])

(def all_1/4
  (List $.Documentation)
  (list ($.definition /.Code)
        ($.definition /.equivalence)
        ($.definition /.hash)
        ($.definition /.manual)
        ($.definition /.code)
        ($.definition /.Expression)
        ($.definition /.Computation)
        ($.definition /.Location)
        ($.definition /.Var)
        ($.definition /.Statement)
        ($.definition /.Literal)
        ($.definition /.Access)
        ($.definition /.Loop)
        ($.definition /.SVar)
        ($.definition /.Single)
        ($.definition /.PVar)
        ($.definition /.Poly)
        ($.definition /.KVar)
        ($.definition /.Keyword)
        ($.definition /.var)
        ($.definition /.poly)
        ($.definition /.keyword)
        ))

(def all_2/4
  (List $.Documentation)
  (list ($.definition /.none)
        ($.definition /.bool)
        ($.definition /.int)
        ($.definition /.long)
        ($.definition /.float)
        ($.definition /.string)
        ($.definition /.unicode)
        ($.definition /.tuple)
        ($.definition /.list)
        ($.definition /.slice)
        ($.definition /.slice_from)
        ($.definition /.dict)
        ($.definition /.apply)
        ($.definition /.splat_poly)
        ($.definition /.splat_keyword)
        ($.definition /.the)
        ($.definition /.do)
        ($.definition /.item)
        ($.definition /.?)
        ($.definition /.is)
        ($.definition /.=)
        ($.definition /.<)
        ($.definition /.<=)
        ($.definition /.>)
        ($.definition /.>=)
        ($.definition /.+)
        ($.definition /.-)
        ($.definition /.*)
        ($.definition /./)
        ($.definition /.//)
        ($.definition /.%)
        ($.definition /.**)
        ))

(def all_3/4
  (List $.Documentation)
  (list ($.definition /.bit_or)
        ($.definition /.bit_and)
        ($.definition /.bit_xor)
        ($.definition /.bit_shl)
        ($.definition /.bit_shr)
        ($.definition /.or)
        ($.definition /.and)
        ($.definition /.not)
        ($.definition /.opposite)
        ($.definition /.lambda)
        ($.definition /.set)
        ($.definition /.delete)
        ($.definition /.if)
        ($.definition /.when)
        ($.definition /.then)
        ($.definition /.break)
        ($.definition /.continue)
        ($.definition /.while)
        ($.definition /.for_in)
        ($.definition /.statement)
        ))

(def all_4/4
  (List $.Documentation)
  (list ($.definition /.statement)
        ($.definition /.pass)
        ($.definition /.Except)
        ($.definition /.try)
        ($.definition /.raise)
        ($.definition /.return)
        ($.definition /.print)
        ($.definition /.exec)
        ($.definition /.def)
        ($.definition /.import)
        ($.definition /.comment)
        ($.definition /.str/1)
        ($.definition /.ord/1)
        ($.definition /.float/1)
        ($.definition /.int/1)
        ($.definition /.len/1)
        ($.definition /.chr/1)
        ($.definition /.unichr/1)
        ($.definition /.unicode/1)
        ($.definition /.repr/1)
        ($.definition /.__import__/1)
        ($.definition /.Exception/1)
        ))

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

                (all list#composite
                     ..all_1/4
                     ..all_2/4
                     ..all_3/4
                     ..all_4/4
                     )
                ))
