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

(documentation: (/.Mod %)
  "A number under a modulus.")

(documentation: /.modular
  ""
  [(modular modulus value)])

(documentation: /.adapter
  ""
  [(adapter reference subject)])

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..Mod
             ..modular
             ..adapter
             ($.default /.modulus)
             ($.default /.value)
             ($.default /.incorrect_modulus)
             ($.default /.codec)

             ($.default /.=)
             ($.default /.<)
             ($.default /.<=)
             ($.default /.>)
             ($.default /.>=)

             ($.default /.equivalence)
             ($.default /.order)

             ($.default /.+)
             ($.default /.-)
             ($.default /.*)
             
             ($.default /.addition)
             ($.default /.multiplication)
             ($.default /.inverse)
             ($.default /.moduli_are_not_equal)]
            []))
