(.module: [lux #* [data [number ["n" nat]] ["." text ["%" format (#+ format)]] [collection ["." list ("#\." functor)]]]] ["." // #_ ["#." time] ["#." copyright] ["_" term] [// ["$" document]]]) (def: #export end-of-license ($.sentence "END OF TERMS AND CONDITIONS")) (def: #export (copyright-holder holder) (-> //copyright.Holder Text) (let [(^slots [#//time.start #//time.end]) (get@ #//copyright.period holder) single-year? (n.= start end) period-section (if single-year? (%.nat start) (format (%.nat start) "-" (%.nat end)))] (format "Copyright (C) " period-section " " (get@ #//copyright.name holder)))) (def: #export copyright (-> (List //copyright.Holder) Text) (|>> (list\map ..copyright-holder) (text.join-with text.new-line)))