(.require [library [lux (.except) [abstract [equivalence (.only Equivalence)] [monad (.only do)]] [control ["<>" parser]] [data ["[0]" text ["%" \\format] ["<[1]>" \\parser]] [format ["[0]" xml (.only XML) ["<[1]>" \\parser (.only Parser)]]]] [world [time ["[0]" instant (.only Instant)]]]]] ["[0]" /// ["[1][0]" time (.only) ["[1]/[0]" date] ["[1]/[0]" time]]]) (type .public Time ///time.Time) (def .public equivalence (Equivalence Time) ///time.equivalence) (def separator ".") (def .public (format [date time]) (%.Format Time) (%.format (///time/date.format date) ..separator (///time/time.format time))) (def .public parser (.Parser Time) (do <>.monad [date ///time/date.parser _ (.this ..separator) time ///time/time.parser] (in [date time])))