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

(documentation: (/.PList it)
  (format "A property list."
          \n "It's a simple dictionary-like structure with Text keys."))

(documentation: /.value
  ""
  [(value key properties)])

(documentation: /.contains?
  ""
  [(contains? key properties)])

(documentation: /.has
  ""
  [(has key val properties)])

(documentation: /.revised
  ""
  [(revised key f properties)])

(documentation: /.lacks
  ""
  [(lacks key properties)])

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..PList
             ..value
             ..contains?
             ..has
             ..revised
             ..lacks
             ($.default /.empty)
             ($.default /.size)
             ($.default /.empty?)
             ($.default /.keys)
             ($.default /.values)
             ($.default /.equivalence)]
            []))
