(.require
 [library
  [lux (.except)
   ["$" documentation]
   [data
    [text (.only \n)
     ["%" \\format (.only format)]]
    [collection
     ["[0]" list (.use "[1]#[0]" monoid)]]]]]
 [\\library
  ["[0]" /]]
 ["[0]" /
  ["[1][0]" alias]
  ["[1][0]" box]
  ["[1][0]" category]
  ["[1][0]" descriptor]
  ["[1][0]" lux]
  ["[1][0]" parser]
  ["[1][0]" reflection]
  ["[1][0]" signature]])

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

                ($.definition /.Type)
                ($.definition /.Argument)
                ($.definition /.Typed)
                ($.definition /.Constraint)
                ($.definition /.signature)
                ($.definition /.descriptor)
                ($.definition /.reflection)
                ($.definition /.void)
                ($.definition /.boolean)
                ($.definition /.byte)
                ($.definition /.short)
                ($.definition /.int)
                ($.definition /.long)
                ($.definition /.float)
                ($.definition /.double)
                ($.definition /.char)
                ($.definition /.array)
                ($.definition /.class)
                ($.definition /.declaration)
                ($.definition /.as_class)
                ($.definition /.wildcard)
                ($.definition /.var)
                ($.definition /.lower)
                ($.definition /.upper)
                ($.definition /.method)
                ($.definition /.equivalence)
                ($.definition /.hash)
                ($.definition /.primitive?)
                ($.definition /.void?)
                ($.definition /.class?)
                ($.definition /.format)

                (all list#composite
                     /alias.documentation
                     /box.documentation
                     /category.documentation
                     /descriptor.documentation
                     /lux.documentation
                     /parser.documentation
                     /reflection.documentation
                     /signature.documentation
                     )
                ))
