(.using
  [library
   [lux
    ["$" documentation {"+" documentation:}]
    [data
     [text {"+" \n}
      ["%" format {"+" format}]]]]]
  [\\library
   ["[0]" /]])

(documentation: (/.Interval it)
  "A representation of top and bottom boundaries for an ordered type.")

(documentation: /.singleton
  "An interval where both top and bottom are the same value."
  [(singleton enum elem)])

(documentation: /.borders?
  "Where a value is at the border of an interval.")

(documentation: /.union
  "An interval that spans both predecessors.")

(documentation: /.intersection
  "An interval spanned by both predecessors.")

(documentation: /.complement
  "The inverse of an interval.")

(documentation: /.meets?
  "Whether an interval meets another one on its bottom/lower side.")

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..Interval
             ..singleton
             ..borders?
             ..union
             ..intersection
             ..complement
             ..meets?
             ($.default /.between)
             ($.default /.inner?)
             ($.default /.outer?)
             ($.default /.singleton?)
             ($.default /.within?)
             ($.default /.starts_with?)
             ($.default /.ends_with?)
             ($.default /.precedes?)
             ($.default /.succeeds?)
             ($.default /.before?)
             ($.default /.after?)
             ($.default /.touches?)
             ($.default /.starts?)
             ($.default /.finishes?)
             ($.default /.equivalence)
             ($.default /.nested?)
             ($.default /.overlaps?)]
            []))
