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

(documentation: /.Month
  "A month of the year.")

(documentation: /.days
  "The amount of days of a month."
  [(days month)])

(documentation: /.leap_year_days
  "The amount of days of a month (in a leap year)."
  [(leap_year_days month)])

(documentation: /.year
  "All the months, ordered by when they come in a year.")

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..Month
             ..days
             ..leap_year_days
             ..year
             ($.default /.equivalence)
             ($.default /.number)
             ($.default /.invalid_month)
             ($.default /.by_number)
             ($.default /.hash)
             ($.default /.order)
             ($.default /.enum)
             ($.default /.not_a_month_of_the_year)
             ($.default /.codec)]
            []))
