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

(documentation: /.=
  "Rev(olution) equivalence."
  [(= reference sample)])

(documentation: /.<
  "Rev(olution) less-than."
  [(< reference sample)])

(documentation: /.<=
  "Rev(olution) less-than or equal."
  [(<= reference sample)])

(documentation: /.>
  "Rev(olution) greater-than."
  [(> reference sample)])

(documentation: /.>=
  "Rev(olution) greater-than or equal."
  [(>= reference sample)])

(template [<name> <doc>]
  [(documentation: <name>
     <doc>)]

  [/.min "Rev(olution) minimum."]
  [/.max "Rev(olution) maximum."]
  )

(template [<name> <doc>]
  [(documentation: <name>
     <doc>)]

  [/.+ "Rev(olution) addition."]
  [/.- "Rev(olution) substraction."]
  [/.* "Rev(olution) multiplication."]
  [/./ "Rev(olution) division."]
  [/.% "Rev(olution) remainder."]
  [/.ratio "Ratio between two rev(olution)s."]
  )

(documentation: /.up
  ""
  [(up scale subject)])

(documentation: /.down
  ""
  [(down scale subject)])

(documentation: /.reciprocal
  "Rev(olution) reciprocal of a Nat(ural)."
  [(reciprocal numerator)])

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..=
             ..<
             ..<=
             ..>
             ..>=
             ..min
             ..max
             ..+
             ..-
             ..*
             ../
             ..%
             ..ratio
             ..up
             ..down
             ..reciprocal
             ($.default /./1)
             ($.default /./2)
             ($.default /./4)
             ($.default /./8)
             ($.default /./16)
             ($.default /./32)
             ($.default /./64)
             ($.default /./128)
             ($.default /./256)
             ($.default /./512)
             ($.default /./1024)
             ($.default /./2048)
             ($.default /./4096)
             ($.default /./%)
             ($.default /.frac)
             ($.default /.equivalence)
             ($.default /.hash)
             ($.default /.order)
             ($.default /.enum)
             ($.default /.interval)
             ($.default /.addition)
             ($.default /.maximum)
             ($.default /.minimum)
             ($.default /.binary)
             ($.default /.octal)
             ($.default /.hex)
             ($.default /.decimal)]
            []))
