(.using
  [library
   [lux {"-" list}
    ["$" documentation {"+" documentation:}]
    [control
     ["<>" parser
      ["<[0]>" code]]]
    [data
     ["[0]" text {"+" \n}
      ["%" format {"+" format}]]]
    [macro
     ["[0]" template]]]]
  [\\library
   ["[0]" /]])

(documentation: (/.Stack it)
  "A first-in, last-out sequential data-structure.")

(documentation: /.value
  "Yields the top value in the stack, if any."
  [(value stack)])

(documentation: /.next
  ""
  [(next stack)])

(documentation: /.top
  ""
  [(top value stack)])

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..Stack
             ..value
             ..next
             ..top
             ($.default /.empty)
             ($.default /.size)
             ($.default /.empty?)
             ($.default /.equivalence)
             ($.default /.functor)]
            []))
