blob: 59367c37d99ca7ccdd1de137fc39c616e274e7e1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
(.module:
[lux #*
["." time]
[abstract
[equivalence (#+ Equivalence)]
[monad (#+ do)]]
[control
["<>" parser
["<.>" text (#+ Parser)]]]
[data
["." product]
[text
["%" format (#+ Format)]]]]
["." / #_
["#." date]
["#." time]])
(type: #export Time
[/date.Date /time.Time])
(def: #export epoch
Time
[/date.epoch time.midnight])
(def: #export equivalence
(Equivalence Time)
(product.equivalence /date.equivalence
time.equivalence))
(def: #export (format [date time])
(Format Time)
(%.format (/date.format date)
(/time.format time)))
(def: #export parser
(Parser Time)
(do <>.monad
[date /date.parser
time /time.parser]
(wrap [date time])))
|