﻿:: {g:g, o:o, s:s, b:b, qb:b?, d:d, qd:d?, n:n, qn:n?, r8:r8, qr8:r8?, r4:r4, qr4:r4?, i:i, qi:i?, i8:i8, qi8:i8?, i4:i4, qi4:i4?, i2:i2, qi2:i2?, i1:i1, qi1:i1?, u8:u8, qu8:u8?, u4:u4, qu4:u4?, u2:u2, qu2:u2?, u1:u1, qu1:u1?, ds:d*, qds:d?*, t:t, ts:t*, qt:t?, qts:t?* }

Date(i4)
Date(i4, i4)
Date(i4, i4, i4)
Date(i8, i8, i8)
Date(i4, i4, s)
Date(i4, u8, i8)
Date(i4, i4, i4, i4)
Date(i4, i4, i4, i4, i4)
Date(i4, i4, i4, i4, i4, i4)
Date(i4, i4, i4, i4, i4, i4, i4)
Date(i4, i4, i4, i4, i4, i4, i4, i4)
Date(i4, i4, i4, i4, i4, i4, i4, i4, i4)
Date(s, i4, i4, i4, i4, i4, i4)
Date(i4, i4, i4, s, i4, i4, i4)
Date(i4, i4, i4, u8, i4, i4, i4)
Date(i8, i8, i8, i8, i8, i8, i8, i8)
Date(i8, i8, i8, u8, i8, i8, i8, i8)

CastDate()
CastTime()

CastDate("")
CastDate("1-1-1")
CastDate(Null(""))
CastDate(null)
CastDate(0)

CastDate(g)
CastDate(o)
CastDate(s)
CastDate(t)
CastDate(b)
CastDate(d)
CastDate(n)
CastDate(r4)
CastDate(i)
CastDate(i8)
CastDate(i4)
CastDate(u4)
CastDate(qi4)

ToDate("")
ToDate("1-1-1")
ToDate(Null(""))
ToDate(0)

ToDate(g)
ToDate(o)
ToDate(s)
ToDate(t)
ToDate(b)
ToDate(d)
ToDate(n)
ToDate(r4)
ToDate(i)
ToDate(i8)
ToDate(i4)
ToDate(u4)
ToDate(qi4)

d.Year
d.Month
d.Day
d.Hour
d.Hr
d.Minute
d.Min
d.Second
d.Sec
d.Millisecond
d.Ms
d.Tick
d.DayOfYear
d.DayOfWeek
d.Time
d.TimeOfDay
d.Date
d.StartOfDay
d.StartOfYear
d.StartOfMonth
d.StartOfWeek
d.Huh

ds.Year
ds.Month
ds.Day
ds.Hour
ds.Hr
ds.Minute
ds.Min
ds.Second
ds.Sec
ds.Millisecond
ds.Ms
ds.Tick
ds.DayOfYear
ds.DayOfWeek
ds.Time
ds.TimeOfDay
ds.Date
ds.StartOfDay
ds.StartOfYear
ds.StartOfMonth
ds.StartOfWeek
ds.Huh

qd.Year
qd.Month
qd.Day
qd.Hour
qd.Hr
qd.Minute
qd.Min
qd.Second
qd.Sec
qd.Millisecond
qd.Ms
qd.Tick
qd.DayOfYear
qd.DayOfWeek
qd.Time
qd.TimeOfDay
qd.Date
qd.StartOfDay
qd.StartOfYear
qd.StartOfMonth
qd.StartOfWeek
qd.Huh

qds.Year
qds.Month
qds.Day
qds.Hour
qds.Hr
qds.Minute
qds.Min
qds.Second
qds.Sec
qds.Millisecond
qds.Ms
qds.Tick
qds.DayOfYear
qds.DayOfWeek
qds.Time
qds.TimeOfDay
qds.Date
qds.StartOfDay
qds.StartOfYear
qds.StartOfMonth
qds.StartOfWeek
qds.Huh

t.Day
t.Hour
t.Minute
t.Second
t.Millisecond
t.Tick
t.Ms
t.Huh

ts.Day
ts.Hour
ts.Minute
ts.Second
ts.Millisecond
ts.Tick
ts.Ms
ts.Huh

qt.Day
qt.Hour
qt.Minute
qt.Second
qt.Millisecond
qt.Tick
qt.Ms
qt.Huh

qts.Day
qts.Hour
qts.Minute
qts.Second
qts.Millisecond
qts.Tick
qts.Ms
qts.Huh

// Coverage for reducer.
:: { v:v }
Date.Year(v)
Date.Year(v if true else v)
