aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/licentia/license/black-list.lux
blob: a71ceda9c1d8f3a9fbf1c6078641b70596a54256 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(.module:
  [lux #*
   [data
    ["." maybe ("#;." functor)]
    ["." text
     ["%" format (#+ format)]]
    [collection
     ["." list ("#;." functor)]]]]
  ["." // (#+ Entity Black-List)
   ["_" term]
   [//
    ["$" document]]])

(def: #export entity
  (-> Entity Text)
  %.text)

(def: #export (black-list black-list)
  (-> Black-List Text)
  (let [scope (format "The rights granted under " _.license)
        effect "shall not be granted to the following entities, or any subsidiary thereof"
        justification (|> black-list
                          (get@ #//.justification)
                          (maybe;map (|>> (format ", due to ")))
                          (maybe.default ""))
        entities (|> black-list
                     (get@ #//.entities)
                     (list;map ..entity)
                     (text.join-with text.new-line))]
    (format scope " " effect justification ":" text.new-line
            entities)))