diff options
Diffstat (limited to 'stdlib/source/program/licentia/license/liability.lux')
-rw-r--r-- | stdlib/source/program/licentia/license/liability.lux | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/stdlib/source/program/licentia/license/liability.lux b/stdlib/source/program/licentia/license/liability.lux new file mode 100644 index 000000000..598341449 --- /dev/null +++ b/stdlib/source/program/licentia/license/liability.lux @@ -0,0 +1,160 @@ +(.module: + [lux #* + [data + ["." text + format]]] + [// + ["_" term] + [// + ["$" document]]]) + +(def: warranty-communications + (List Text) + (list "expressed" + "implied" + "statutory")) + +(def: work-disclamers + (List Text) + (list "free of defects" + "merchantable" + "fit for a particular purpose" + "non-infringing")) + +(def: fixes + (List Text) + (list "servicing" + "repair" + "correction")) + +(def: #export warranty + (let [on-basics (let [applicability-escape "Unless required by applicable law or agreed to in writing" + work-provisioning (format _.licensor + " provides " _.work + ", and each " _.contributor + " provides its " ($.plural _.contribution))] + (format applicability-escape ", " + work-provisioning + " under " _.license + " on an " ($.quote "as is") + " basis, without warranty or condition of any kind, either " ($.or warranty-communications) + " including, without limitation, any warranties or conditions that " _.work + " is " ($.or work-disclamers))) + on-distribution (format _.recipient + " is solely responsible for determining the appropriateness of using or redistributing " _.work) + on-risk (format "The entire risk as to the quality and performance of " _.work + " is with " _.recipient) + on-fixes (format "Should " _.work + " prove defective in any respect, " _.recipient + ", not any " _.contributor + ", assumes the cost of any necessary " ($.or fixes)) + on-importance (format "This disclaimer of warranty constitutes an essential part of "_.license) + on-authorization (format "No use of "_.work + " is authorized under " _.license + " except under this disclaimer")] + ($.paragraph (list on-basics + on-distribution + on-risk + on-fixes + on-importance + on-authorization)))) + +(def: damage-types + (List Text) + (list "direct" + "indirect" + "special" + "incidental" + "consequential")) + +(def: damage-consequences + (List Text) + (list "lost profits" + "loss of goodwill" + "work stoppage" + "computer failure or malfunction" + "any and all other commercial damages or losses")) + +(def: #export limitation + (let [on-limit (let [exclusion "Under no circumstances and under no legal theory" + examples "whether tort (including negligence), contract, or otherwise" + applicable-law-exception "unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing" + renunciation (format "shall any " _.contributor + " be liable to " _.recipient) + damage-enumeration (format "for any " ($.or damage-types) " damages of any character" + " including without limitation damages for " ($.or damage-consequences)) + conscience "even if such party shall have been informed of the possibility of such damages"] + (format exclusion ", " examples ", " applicable-law-exception ", " renunciation " " damage-enumeration ", " conscience)) + on-death-exception "This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation" + on-jurisdictions (format "Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to " _.recipient)] + ($.paragraph (list on-limit + on-death-exception + on-jurisdictions)))) + +(def: #export litigation + (let [on-jurisdiction (format "Any litigation relating to " _.license " may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business") + on-laws "Such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions" + on-claims "Nothing in this section shall prevent a party’s ability to bring cross-claims or counter-claims"] + ($.paragraph (list on-jurisdiction + on-laws + on-claims)))) + +(def: liability-obligations + (List Text) + (list "support" + "warranty" + "indemnity" + "other liability obligations" + (format "rights consistent with " _.license))) + +(def: #export can-accept + (let [on-acceptance-of-liability (let [condition (format "While redistributing " _.work " or " ($.plural _.extension) " thereof") + right (format _.recipient " may choose to offer, and charge a fee for, acceptance of " ($.and/or ..liability-obligations))] + (format condition ", " right)) + on-responsibility (let [but "However, in accepting such obligations" + cannot-represent-a-contributor (format _.recipient " may not act on behalf of any other " _.contributor) + can-only-represent-oneself (format "only on behalf and on sole responsibility of " _.recipient) + each-contributor (: (-> Text Text) + (function (_ responsibility) + (format responsibility " each " _.contributor))) + responsibilities (: (List Text) + (list (each-contributor "indemnify") + (each-contributor "defend") + (format (each-contributor "hold") " harmless"))) + full-responsibility-condition (format "and only if " _.recipient + " agrees to " ($.and responsibilities) + " for any liability incurred by, or claims asserted against, such " _.contributor + " by reason of acceptance of any such warranty or additional liability by " _.recipient)] + (format but ", " cannot-represent-a-contributor ", " can-only-represent-oneself ", " full-responsibility-condition))] + ($.paragraph (list on-acceptance-of-liability + on-responsibility)))) + +(def: #export disclaim-high-risk + (let [on-work (let [intentions (: (List Text) + (list "designed" + "manufactured" + "intended for use or distribution")) + hazardous-environments (: (List Text) + (list "nuclear facilities" + "aircraft navigation" + "communications systems" + "air traffic control" + "direct life support machines" + "weapons systems")) + consequences (: (List Text) + (list "death" + "personal injury" + "severe physical damage" + "environmental damage")) + disclaim (format _.work " is not fault tolerant" + ", and is not " ($.or intentions) + " as on-line control equipment in hazardous environments requiring fail-safe performance") + examples (format "such as in the operation of " ($.or hazardous-environments)) + further (format "in which the failure of " _.work " could lead directly to " ($.or consequences))] + (format disclaim ", " examples ", " further)) + on-contributors (let [claim "any express or implied warranty of fitness for high risk activities"] + (format _.licensor + " and every " _.contributor + " specifically disclaim " claim))] + ($.paragraph (list on-work + on-contributors)))) |