(.using
  [library
   [lux {"-" nat int rev type list symbol}
    ["$" documentation {"+" documentation:}]
    [macro
     ["[0]" template]]]]
  [\\library
   ["[0]" /]])

(documentation: (/.Format it)
  "A way to produce readable text from values.")

(documentation: /.format
  "Text interpolation."
  [(format "Static part " (text static) " does not match URI: " uri)])

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..Format
             ..format
             ($.default /.functor)

             ($.default /.bit)
             ($.default /.nat)
             ($.default /.int)
             ($.default /.rev)
             ($.default /.frac)
             ($.default /.text)
             
             ($.default /.ratio)
             ($.default /.symbol)
             ($.default /.location)
             ($.default /.code)
             ($.default /.type)
             
             ($.default /.instant)
             ($.default /.duration)
             ($.default /.date)
             ($.default /.time)
             ($.default /.day)
             ($.default /.month)
             
             ($.default /.xml)
             ($.default /.json)

             ($.default /.nat/2)
             ($.default /.nat/8)
             ($.default /.nat/10)
             ($.default /.nat/16)
             ($.default /.int/2)
             ($.default /.int/8)
             ($.default /.int/10)
             ($.default /.int/16)
             ($.default /.rev/2)
             ($.default /.rev/8)
             ($.default /.rev/10)
             ($.default /.rev/16)
             ($.default /.frac/2)
             ($.default /.frac/8)
             ($.default /.frac/10)
             ($.default /.frac/16)
             
             ($.default /.mod)
             ($.default /.list)
             ($.default /.maybe)]
            []))
