(.require [library [lux (.except or and) [data ["[0]" text ["%" \\format (.only format)]] [collection ["[0]" list (.use "[1]#[0]" functor)]]]]]) (def .public (quote text) (-> Text Text) (format text.double_quote text text.double_quote)) (def .public (block content) (-> Text Text) (format content text.new_line text.new_line)) (def .public (plural singular) (-> Text Text) (format singular "(s)")) (def .public (sentence content) (-> Text Text) (format content ".")) (def .public paragraph (-> (List Text) Text) (|>> (list#each ..sentence) (text.interposed text.new_line))) (with_template [ ] [(def .public (-> (List Text) Text) ... https://en.wikipedia.org/wiki/Serial_comma (text.interposed (format ", " " ")))] [or "or"] [and "and"] [and/or "and/or"] ) (type .public Section (Record [#title Text #content Text])) (def .public (section value) (-> Section Text) (format (..block (the #title value)) (the #content value)))