(.module: [lux #* [data ["." text format] [collection [list ("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? (%n start) (format (%n start) "-" (%n 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)))