diff options
Diffstat (limited to 'stdlib/source/lux/time/duration.lux')
-rw-r--r-- | stdlib/source/lux/time/duration.lux | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/stdlib/source/lux/time/duration.lux b/stdlib/source/lux/time/duration.lux index 9821bc33d..3c3fab0dd 100644 --- a/stdlib/source/lux/time/duration.lux +++ b/stdlib/source/lux/time/duration.lux @@ -8,8 +8,10 @@ ["p" parser] [monad (#+ do)]] [data - ["." number ("nat/." Codec<Text,Nat>) ("int/." Codec<Text,Int> Number<Int>)] - [text ("text/." Monoid<Text>) + [number + ["." nat ("nat/." decimal)] + ["." int ("int/." decimal number)]] + [text ("text/." monoid) ["l" lexer]] ["e" error]] [type @@ -57,12 +59,12 @@ (-> Duration Duration Int) (i// (:representation param) (:representation subject))) - (structure: #export _ (Equivalence Duration) + (structure: #export equivalence (Equivalence Duration) (def: (= param subject) (i/= (:representation param) (:representation subject)))) - (`` (structure: #export _ (Order Duration) - (def: eq Equivalence<Duration>) + (`` (structure: #export order (Order Duration) + (def: &equivalence ..equivalence) (~~ (do-template [<name> <op>] [(def: (<name> param subject) (<op> (:representation param) (:representation subject)))] @@ -73,7 +75,7 @@ [>= i/>=] )))) - (open: "duration/." Order<Duration>) + (open: "duration/." ..order) (do-template [<name> <op>] [(def: #export (<name> left right) @@ -113,13 +115,13 @@ (def: #export leap-year (merge day normal-year)) -(structure: #export _ (Monoid Duration) - (def: identity empty) - (def: compose merge)) +(structure: #export monoid (Monoid Duration) + (def: identity ..empty) + (def: compose ..merge)) (def: #export (encode duration) (-> Duration Text) - (if (:: Equivalence<Duration> = empty duration) + (if (:: ..equivalence = empty duration) "+0ms" (let [signed? (negative? duration) [days time-left] [(query day duration) (frame day duration)] |