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

(documentation: (/.Sequence it)
  "A sequential data-structure with fast random access.")

(documentation: /.suffix
  ""
  [(suffix val sequence)])

(documentation: /.within_bounds?
  "Determines whether the index is within the bounds of the sequence."
  [(within_bounds? sequence idx)])

(documentation: /.item
  ""
  [(item idx sequence)])

(documentation: /.has
  ""
  [(has idx val sequence)])

(documentation: /.revised
  ""
  [(revised idx f sequence)])

(documentation: /.prefix
  ""
  [(prefix sequence)])

(documentation: /.list
  ""
  [(list sequence)])

(documentation: /.member?
  ""
  [(member? equivalence sequence val)])

(documentation: /.sequence
  "Sequence literals."
  [(: (Sequence Nat)
      (sequence 12 34 56 78 90))])

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..Sequence
             ..suffix
             ..within_bounds?
             ..item
             ..has
             ..revised
             ..prefix
             ..list
             ..member?
             ..sequence
             ($.default /.empty)
             ($.default /.size)
             ($.default /.index_out_of_bounds)
             ($.default /.of_list)
             ($.default /.empty?)
             ($.default /.equivalence)
             ($.default /.mix)
             ($.default /.monoid)
             ($.default /.functor)
             ($.default /.apply)
             ($.default /.monad)
             ($.default /.reversed)
             ($.default /.every?)
             ($.default /.any?)]
            []))
