prelude: :gerbil/compiler/ssxi
package: std/srfi

(begin
  (declare-type std/srfi/19#tm:time-error (@lambda 3 #f))
  (declare-type std/srfi/19#tm:read-tai-utc-data (@lambda 1 #f))
  (declare-type std/srfi/19#read-leap-second-table (@lambda 1 #f))
  (declare-type std/srfi/19#tm:leap-second-delta (@lambda 1 #f))
  (declare-type std/srfi/19#tm:leap-second-neg-delta (@lambda 1 #f))
  (declare-type
   std/srfi/19#time::t
   (@struct-type std/srfi/19#time::t #f 3 #f ()))
  (declare-type std/srfi/19#time? (@struct-pred std/srfi/19#time::t))
  (declare-type std/srfi/19#make-time (@struct-cons std/srfi/19#time::t))
  (declare-type std/srfi/19#time-type (@struct-getf std/srfi/19#time::t 0 #f))
  (declare-type
   std/srfi/19#time-nanosecond
   (@struct-getf std/srfi/19#time::t 1 #f))
  (declare-type
   std/srfi/19#time-second
   (@struct-getf std/srfi/19#time::t 2 #f))
  (declare-type
   std/srfi/19#time-type-set!
   (@struct-setf std/srfi/19#time::t 0 #f))
  (declare-type
   std/srfi/19#time-nanosecond-set!
   (@struct-setf std/srfi/19#time::t 1 #f))
  (declare-type
   std/srfi/19#time-second-set!
   (@struct-setf std/srfi/19#time::t 2 #f))
  (declare-type std/srfi/19#make-time% (@lambda 3 #f))
  (declare-type std/srfi/19#copy-time (@lambda 1 #f))
  (declare-type std/srfi/19#current-seconds (@lambda 0 #f))
  (declare-type std/srfi/19#current-milliseconds (@lambda 0 #f))
  (declare-type std/srfi/19#tm:get-time-of-day (@lambda 0 #f))
  (declare-type std/srfi/19#tm:current-time-utc (@lambda 0 #f))
  (declare-type std/srfi/19#tm:current-time-tai (@lambda 0 #f))
  (declare-type std/srfi/19#tm:current-time-monotonic (@lambda 0 #f))
  (declare-type std/srfi/19#tm:current-time-thread (@lambda 0 #f))
  (declare-type std/srfi/19#tm:current-time-process (@lambda 0 #f))
  (declare-type std/srfi/19#current-time (@lambda (0) #f))
  (declare-type std/srfi/19#time-resolution (@lambda (0) #f))
  (declare-type std/srfi/19#tm:time-compare-check (@lambda 3 #f))
  (declare-type std/srfi/19#time=? (@lambda 2 #f))
  (declare-type std/srfi/19#time>? (@lambda 2 #f))
  (declare-type std/srfi/19#time<? (@lambda 2 #f))
  (declare-type std/srfi/19#time>=? (@lambda 2 #f))
  (declare-type std/srfi/19#time<=? (@lambda 2 #f))
  (declare-type std/srfi/19#tm:time->nanoseconds (@lambda 1 #f))
  (declare-type std/srfi/19#tm:nanoseconds->time (@lambda 2 #f))
  (declare-type std/srfi/19#tm:nanoseconds->values (@lambda 1 #f))
  (declare-type std/srfi/19#tm:time-difference (@lambda 3 #f))
  (declare-type std/srfi/19#time-difference (@lambda 2 #f))
  (declare-type std/srfi/19#time-difference! (@lambda 2 #f))
  (declare-type std/srfi/19#tm:add-duration (@lambda 3 #f))
  (declare-type std/srfi/19#add-duration (@lambda 2 #f))
  (declare-type std/srfi/19#add-duration! (@lambda 2 #f))
  (declare-type std/srfi/19#tm:subtract-duration (@lambda 3 #f))
  (declare-type std/srfi/19#subtract-duration (@lambda 2 #f))
  (declare-type std/srfi/19#subtract-duration! (@lambda 2 #f))
  (declare-type std/srfi/19#tm:time-tai->time-utc! (@lambda 3 #f))
  (declare-type std/srfi/19#time-tai->time-utc (@lambda 1 #f))
  (declare-type std/srfi/19#time-tai->time-utc! (@lambda 1 #f))
  (declare-type std/srfi/19#tm:time-utc->time-tai! (@lambda 3 #f))
  (declare-type std/srfi/19#time-utc->time-tai (@lambda 1 #f))
  (declare-type std/srfi/19#time-utc->time-tai! (@lambda 1 #f))
  (declare-type std/srfi/19#time-monotonic->time-utc (@lambda 1 #f))
  (declare-type std/srfi/19#time-monotonic->time-utc! (@lambda 1 #f))
  (declare-type std/srfi/19#time-monotonic->time-tai (@lambda 1 #f))
  (declare-type std/srfi/19#time-monotonic->time-tai! (@lambda 1 #f))
  (declare-type std/srfi/19#time-utc->time-monotonic (@lambda 1 #f))
  (declare-type std/srfi/19#time-utc->time-monotonic! (@lambda 1 #f))
  (declare-type std/srfi/19#time-tai->time-monotonic (@lambda 1 #f))
  (declare-type std/srfi/19#time-tai->time-monotonic! (@lambda 1 #f))
  (declare-type
   std/srfi/19#date::t
   (@struct-type
    std/srfi/19#date::t
    #f
    8
    #f
    ((equal: nanosecond second minute hour day month year zone-offset))))
  (declare-type std/srfi/19#date? (@struct-pred std/srfi/19#date::t))
  (declare-type std/srfi/19#make-date (@struct-cons std/srfi/19#date::t))
  (declare-type
   std/srfi/19#date-nanosecond
   (@struct-getf std/srfi/19#date::t 0 #f))
  (declare-type
   std/srfi/19#date-second
   (@struct-getf std/srfi/19#date::t 1 #f))
  (declare-type
   std/srfi/19#date-minute
   (@struct-getf std/srfi/19#date::t 2 #f))
  (declare-type std/srfi/19#date-hour (@struct-getf std/srfi/19#date::t 3 #f))
  (declare-type std/srfi/19#date-day (@struct-getf std/srfi/19#date::t 4 #f))
  (declare-type std/srfi/19#date-month (@struct-getf std/srfi/19#date::t 5 #f))
  (declare-type std/srfi/19#date-year (@struct-getf std/srfi/19#date::t 6 #f))
  (declare-type
   std/srfi/19#date-zone-offset
   (@struct-getf std/srfi/19#date::t 7 #f))
  (declare-type
   std/srfi/19#date-nanosecond-set!
   (@struct-setf std/srfi/19#date::t 0 #f))
  (declare-type
   std/srfi/19#date-second-set!
   (@struct-setf std/srfi/19#date::t 1 #f))
  (declare-type
   std/srfi/19#date-minute-set!
   (@struct-setf std/srfi/19#date::t 2 #f))
  (declare-type
   std/srfi/19#date-hour-set!
   (@struct-setf std/srfi/19#date::t 3 #f))
  (declare-type
   std/srfi/19#date-day-set!
   (@struct-setf std/srfi/19#date::t 4 #f))
  (declare-type
   std/srfi/19#date-month-set!
   (@struct-setf std/srfi/19#date::t 5 #f))
  (declare-type
   std/srfi/19#date-year-set!
   (@struct-setf std/srfi/19#date::t 6 #f))
  (declare-type
   std/srfi/19#date-zone-offset-set!
   (@struct-setf std/srfi/19#date::t 7 #f))
  (declare-type std/srfi/19#tm:encode-julian-day-number (@lambda 3 #f))
  (declare-type std/srfi/19#tm:char-pos (@lambda 4 #f))
  (declare-type std/srfi/19#tm:fractional-part (@lambda 1 #f))
  (declare-type std/srfi/19#tm:decode-julian-day-number (@lambda 1 #f))
  (declare-type std/srfi/19#tm:local-tz-offset (@lambda 0 #f))
  (declare-type std/srfi/19#tm:time->julian-day-number (@lambda 2 #f))
  (declare-type std/srfi/19#tm:find (@lambda 2 #f))
  (declare-type std/srfi/19#tm:tai-before-leap-second? (@lambda 1 #f))
  (declare-type std/srfi/19#tm:time->date (@lambda 3 #f))
  (declare-type std/srfi/19#time-tai->date (@lambda (1) #f))
  (declare-type std/srfi/19#time-utc->date (@lambda (1) #f))
  (declare-type std/srfi/19#time-monotonic->date (@lambda (1) #f))
  (declare-type std/srfi/19#date->time-utc (@lambda 1 #f))
  (declare-type std/srfi/19#date->time-tai (@lambda 1 #f))
  (declare-type std/srfi/19#date->time-monotonic (@lambda 1 #f))
  (declare-type std/srfi/19#tm:leap-year? (@lambda 1 #f))
  (declare-type std/srfi/19#leap-year? (@lambda 1 #f))
  (declare-type std/srfi/19#tm:year-day (@lambda 3 #f))
  (declare-type std/srfi/19#date-year-day (@lambda 1 #f))
  (declare-type std/srfi/19#tm:week-day (@lambda 3 #f))
  (declare-type std/srfi/19#date-week-day (@lambda 1 #f))
  (declare-type std/srfi/19#tm:days-before-first-week (@lambda 2 #f))
  (declare-type std/srfi/19#date-week-number (@lambda 2 #f))
  (declare-type std/srfi/19#current-date (@lambda (0) #f))
  (declare-type std/srfi/19#tm:natural-year (@lambda 1 #f))
  (declare-type std/srfi/19#date->julian-day (@lambda 1 #f))
  (declare-type std/srfi/19#date->modified-julian-day (@lambda 1 #f))
  (declare-type std/srfi/19#time-utc->julian-day (@lambda 1 #f))
  (declare-type std/srfi/19#time-utc->modified-julian-day (@lambda 1 #f))
  (declare-type std/srfi/19#time-tai->julian-day (@lambda 1 #f))
  (declare-type std/srfi/19#time-tai->modified-julian-day (@lambda 1 #f))
  (declare-type std/srfi/19#time-monotonic->julian-day (@lambda 1 #f))
  (declare-type std/srfi/19#time-monotonic->modified-julian-day (@lambda 1 #f))
  (declare-type std/srfi/19#julian-day->time-utc (@lambda 1 #f))
  (declare-type std/srfi/19#julian-day->time-tai (@lambda 1 #f))
  (declare-type std/srfi/19#julian-day->time-monotonic (@lambda 1 #f))
  (declare-type std/srfi/19#julian-day->date (@lambda (1) #f))
  (declare-type std/srfi/19#modified-julian-day->date (@lambda (1) #f))
  (declare-type std/srfi/19#modified-julian-day->time-utc (@lambda 1 #f))
  (declare-type std/srfi/19#modified-julian-day->time-tai (@lambda 1 #f))
  (declare-type std/srfi/19#modified-julian-day->time-monotonic (@lambda 1 #f))
  (declare-type std/srfi/19#current-julian-day (@lambda 0 #f))
  (declare-type std/srfi/19#current-modified-julian-day (@lambda 0 #f))
  (declare-type std/srfi/19#tm:padding (@lambda 3 #f))
  (declare-type std/srfi/19#tm:last-n-digits (@lambda 2 #f))
  (declare-type std/srfi/19#tm:locale-abbr-weekday (@lambda 1 #f))
  (declare-type std/srfi/19#tm:locale-long-weekday (@lambda 1 #f))
  (declare-type std/srfi/19#tm:locale-abbr-month (@lambda 1 #f))
  (declare-type std/srfi/19#tm:locale-long-month (@lambda 1 #f))
  (declare-type std/srfi/19#tm:vector-find (@lambda 3 #f))
  (declare-type std/srfi/19#tm:locale-abbr-weekday->index (@lambda 1 #f))
  (declare-type std/srfi/19#tm:locale-long-weekday->index (@lambda 1 #f))
  (declare-type std/srfi/19#tm:locale-abbr-month->index (@lambda 1 #f))
  (declare-type std/srfi/19#tm:locale-long-month->index (@lambda 1 #f))
  (declare-type std/srfi/19#tm:locale-print-time-zone (@lambda 2 #f))
  (declare-type std/srfi/19#tm:locale-am/pm (@lambda 1 #f))
  (declare-type std/srfi/19#tm:tz-printer (@lambda 2 #f))
  (declare-type std/srfi/19#tm:get-formatter (@lambda 1 #f))
  (declare-type std/srfi/19#tm:date-printer (@lambda 5 #f))
  (declare-type std/srfi/19#date->string (@lambda (1) #f))
  (declare-type std/srfi/19#tm:char->int (@lambda 1 #f))
  (declare-type std/srfi/19#tm:integer-reader (@lambda 2 #f))
  (declare-type std/srfi/19#tm:make-integer-reader (@lambda 1 #f))
  (declare-type std/srfi/19#tm:fractional-integer-reader (@lambda 2 #f))
  (declare-type std/srfi/19#tm:make-fractional-integer-reader (@lambda 1 #f))
  (declare-type std/srfi/19#tm:integer-reader-exact (@lambda 2 #f))
  (declare-type std/srfi/19#tm:make-integer-exact-reader (@lambda 1 #f))
  (declare-type std/srfi/19#tm:zone-reader (@lambda 1 #f))
  (declare-type std/srfi/19#tm:locale-reader (@lambda 2 #f))
  (declare-type std/srfi/19#tm:make-locale-reader (@lambda 1 #f))
  (declare-type std/srfi/19#tm:make-char-id-reader (@lambda 1 #f))
  (declare-type std/srfi/19#tm:string->date (@lambda 6 #f))
  (declare-type std/srfi/19#string->date (@lambda 2 #f)))
