diff options
Diffstat (limited to 'licentia/source')
-rw-r--r-- | licentia/source/program/licentia/input.lux | 98 | ||||
-rw-r--r-- | licentia/source/program/licentia/license/distribution.lux | 14 | ||||
-rw-r--r-- | licentia/source/test/licentia.lux | 446 |
3 files changed, 279 insertions, 279 deletions
diff --git a/licentia/source/program/licentia/input.lux b/licentia/source/program/licentia/input.lux index 23e8ab29e..b92d0e52e 100644 --- a/licentia/source/program/licentia/input.lux +++ b/licentia/source/program/licentia/input.lux @@ -32,9 +32,9 @@ (def: identification (Parser Identification) (<json>.object - ($_ <>.and - (<json>.field "name" <json>.string) - (<json>.field "version" <json>.string)))) + (all <>.and + (<json>.field "name" <json>.string) + (<json>.field "version" <json>.string)))) (exception: .public (cannot_use_fractional_amount [amount Frac]) (exception.report @@ -76,48 +76,48 @@ (def: copyright_holder (Parser copyright.Holder) (<json>.object - ($_ <>.and - (<json>.field "name" <json>.string) - (<json>.field "period" ..period)))) + (all <>.and + (<json>.field "name" <json>.string) + (<json>.field "period" ..period)))) (def: termination (Parser Termination) (<json>.object - ($_ <>.and - (<json>.field "patent retaliation?" <json>.boolean) - (<json>.field "termination period" ..amount) - (<json>.field "grace period" ..amount)))) + (all <>.and + (<json>.field "patent retaliation?" <json>.boolean) + (<json>.field "termination period" ..amount) + (<json>.field "grace period" ..amount)))) (def: liability (Parser Liability) (<json>.object - ($_ <>.and - (<json>.field "can accept?" <json>.boolean) - (<json>.field "disclaim high risk?" <json>.boolean)))) + (all <>.and + (<json>.field "can accept?" <json>.boolean) + (<json>.field "disclaim high risk?" <json>.boolean)))) (def: distribution (Parser Distribution) (<json>.object - ($_ <>.and - (<json>.field "can re-license?" <json>.boolean) - (<json>.field "can multi-license?" <json>.boolean)))) + (all <>.and + (<json>.field "can re-license?" <json>.boolean) + (<json>.field "can multi-license?" <json>.boolean)))) (def: commercial (Parser Commercial) (<json>.object - ($_ <>.and - (<json>.field "can sell?" <json>.boolean) - (<json>.field "require contributor credit?" <json>.boolean) - (<json>.field "allow contributor endorsement?" <json>.boolean)))) + (all <>.and + (<json>.field "can sell?" <json>.boolean) + (<json>.field "require contributor credit?" <json>.boolean) + (<json>.field "allow contributor endorsement?" <json>.boolean)))) (def: extension (Parser Extension) (<json>.object - ($_ <>.and - (<json>.field "same license?" <json>.boolean) - (<json>.field "must be distinguishable?" <json>.boolean) - (<json>.field "notification period" (<json>.nullable ..period)) - (<json>.field "must describe modifications?" <json>.boolean)))) + (all <>.and + (<json>.field "same license?" <json>.boolean) + (<json>.field "must be distinguishable?" <json>.boolean) + (<json>.field "notification period" (<json>.nullable ..period)) + (<json>.field "must describe modifications?" <json>.boolean)))) (def: entity (Parser Entity) @@ -126,9 +126,9 @@ (def: black_list (Parser Black_List) (<json>.object - ($_ <>.and - (<json>.field "justification" (<json>.nullable <json>.string)) - (<json>.field "entities" (<json>.array (<>.many ..entity)))))) + (all <>.and + (<json>.field "justification" (<json>.nullable <json>.string)) + (<json>.field "entities" (<json>.array (<>.many ..entity)))))) (def: url (Parser URL) @@ -137,32 +137,32 @@ (def: attribution (Parser Attribution) (<json>.object - ($_ <>.and - (<json>.field "copyright-notice" <json>.string) - (<json>.field "phrase" (<json>.nullable <json>.string)) - (<json>.field "url" ..url) - (<json>.field "image" (<json>.nullable ..url))))) + (all <>.and + (<json>.field "copyright-notice" <json>.string) + (<json>.field "phrase" (<json>.nullable <json>.string)) + (<json>.field "url" ..url) + (<json>.field "image" (<json>.nullable ..url))))) (def: addendum (Parser Addendum) (<json>.object - ($_ <>.and - (<json>.field "commons clause?" <json>.boolean) - ))) + (all <>.and + (<json>.field "commons clause?" <json>.boolean) + ))) (def: .public license (Parser License) (<json>.object - ($_ <>.and - (<json>.field "copyright-holders" (<json>.array (<>.many ..copyright_holder))) - (<json>.field "identification" (<json>.nullable ..identification)) - (<json>.field "termination" ..termination) - (<json>.field "liability" ..liability) - (<json>.field "distribution" ..distribution) - (<json>.field "commercial" ..commercial) - (<json>.field "extension" ..extension) - (<json>.field "black-lists" (<json>.array (<>.some ..black_list))) - (<json>.field "attribution" (<json>.nullable ..attribution)) - (<>.default [//.#commons_clause? false] - (<json>.field "addendum" ..addendum)) - ))) + (all <>.and + (<json>.field "copyright-holders" (<json>.array (<>.many ..copyright_holder))) + (<json>.field "identification" (<json>.nullable ..identification)) + (<json>.field "termination" ..termination) + (<json>.field "liability" ..liability) + (<json>.field "distribution" ..distribution) + (<json>.field "commercial" ..commercial) + (<json>.field "extension" ..extension) + (<json>.field "black-lists" (<json>.array (<>.some ..black_list))) + (<json>.field "attribution" (<json>.nullable ..attribution)) + (<>.default [//.#commons_clause? false] + (<json>.field "addendum" ..addendum)) + ))) diff --git a/licentia/source/program/licentia/license/distribution.lux b/licentia/source/program/licentia/license/distribution.lux index 849b7294a..87b397ff7 100644 --- a/licentia/source/program/licentia/license/distribution.lux +++ b/licentia/source/program/licentia/license/distribution.lux @@ -104,10 +104,10 @@ (def: .public (extension distribution) (-> Distribution Text) - ($.paragraph ($_ list#composite - (if (the //.#can_re_license? distribution) - (list allow_re_licensing) - (list)) - (if (the //.#can_multi_license? distribution) - (list allow_multi_licensing) - (list))))) + ($.paragraph (all list#composite + (if (the //.#can_re_license? distribution) + (list allow_re_licensing) + (list)) + (if (the //.#can_multi_license? distribution) + (list allow_multi_licensing) + (list))))) diff --git a/licentia/source/test/licentia.lux b/licentia/source/test/licentia.lux index c753cd555..c24c1231e 100644 --- a/licentia/source/test/licentia.lux +++ b/licentia/source/test/licentia.lux @@ -58,49 +58,49 @@ (def: copyright_holder (Random copyright.Holder) - ($_ random.and - (random.ascii 10) - ..period)) + (all random.and + (random.ascii 10) + ..period)) (def: identification (Random Identification) - ($_ random.and - (random.ascii 10) - (random.ascii 10))) + (all random.and + (random.ascii 10) + (random.ascii 10))) (def: termination (Random Termination) - ($_ random.and - random.bit - random.nat - random.nat)) + (all random.and + random.bit + random.nat + random.nat)) (def: liability (Random Liability) - ($_ random.and - random.bit - random.bit)) + (all random.and + random.bit + random.bit)) (def: distribution (Random Distribution) - ($_ random.and - random.bit - random.bit)) + (all random.and + random.bit + random.bit)) (def: commercial (Random Commercial) - ($_ random.and - random.bit - random.bit - random.bit)) + (all random.and + random.bit + random.bit + random.bit)) (def: extension (Random Extension) - ($_ random.and - random.bit - random.bit - (random.maybe ..period) - random.bit)) + (all random.and + random.bit + random.bit + (random.maybe ..period) + random.bit)) (def: entity (Random Entity) @@ -115,9 +115,9 @@ (def: black_list (Random Black_List) - ($_ random.and - (random.maybe (random.ascii 10)) - (variable_list 10 ..entity))) + (all random.and + (random.maybe (random.ascii 10)) + (variable_list 10 ..entity))) (def: url (Random URL) @@ -125,163 +125,163 @@ (def: attribution (Random Attribution) - ($_ random.and - (random.ascii 10) - (random.maybe (random.ascii 10)) - ..url - (random.maybe ..url))) + (all random.and + (random.ascii 10) + (random.maybe (random.ascii 10)) + ..url + (random.maybe ..url))) (def: addendum (Random Addendum) - ($_ random.and - random.bit - )) + (all random.and + random.bit + )) (def: license (Random License) - ($_ random.and - (random.list 2 ..copyright_holder) - (random.maybe ..identification) - ..termination - ..liability - ..distribution - ..commercial - ..extension - (variable_list 3 ..black_list) - (random.maybe attribution) - ..addendum - )) + (all random.and + (random.list 2 ..copyright_holder) + (random.maybe ..identification) + ..termination + ..liability + ..distribution + ..commercial + ..extension + (variable_list 3 ..black_list) + (random.maybe attribution) + ..addendum + )) (type: (Concern a) (-> (-> Text Bit) a Test)) (def: (about_grant present? termination) (Concern Termination) - ($_ _.and - (_.test "Copyright grant is present." - (present? grant.copyright)) - (_.test "Patent grant is present." - (present? (grant.patent (the license.#patent_retaliation? termination)))) - (_.test "Effective date for the grants is present." - (present? grant.date)) - (_.test "Patent grant is present." - (present? (grant.termination (the license.#termination_period termination) - (the license.#grace_period termination)))) - (_.test "The termination period is accurately conveyed." - (present? (grant.grant_restoration_clause (the license.#termination_period termination)))) - (_.test "The grace period is accurately conveyed." - (present? (grant.grace_period_clause (the license.#grace_period termination)))) - (_.test "The grants are not retro-actively terminated." - (present? grant.no_retroactive_termination)) - )) + (all _.and + (_.test "Copyright grant is present." + (present? grant.copyright)) + (_.test "Patent grant is present." + (present? (grant.patent (the license.#patent_retaliation? termination)))) + (_.test "Effective date for the grants is present." + (present? grant.date)) + (_.test "Patent grant is present." + (present? (grant.termination (the license.#termination_period termination) + (the license.#grace_period termination)))) + (_.test "The termination period is accurately conveyed." + (present? (grant.grant_restoration_clause (the license.#termination_period termination)))) + (_.test "The grace period is accurately conveyed." + (present? (grant.grace_period_clause (the license.#grace_period termination)))) + (_.test "The grants are not retro-actively terminated." + (present? grant.no_retroactive_termination)) + )) (def: (about_liability present? liability) (Concern Liability) - ($_ _.and - (_.test "Warranty liability disclaimer is present." - (present? liability.warranty)) - (_.test "Limitation of liability is present." - (present? liability.limitation)) - (_.test "Litigation conditions are present." - (present? liability.litigation)) - (_.test "Liability acceptance conditions may be present." - (bit#= (the license.#can_accept? liability) - (present? liability.can_accept))) - (_.test "Liability acceptance conditions may be present." - (bit#= (the license.#disclaim_high_risk? liability) - (present? liability.disclaim_high_risk))) - )) + (all _.and + (_.test "Warranty liability disclaimer is present." + (present? liability.warranty)) + (_.test "Limitation of liability is present." + (present? liability.limitation)) + (_.test "Litigation conditions are present." + (present? liability.litigation)) + (_.test "Liability acceptance conditions may be present." + (bit#= (the license.#can_accept? liability) + (present? liability.can_accept))) + (_.test "Liability acceptance conditions may be present." + (bit#= (the license.#disclaim_high_risk? liability) + (present? liability.disclaim_high_risk))) + )) (def: (about_distribution present? distribution) (Concern Distribution) - ($_ _.and - (_.test "Conditions for source-code distribution are present." - (present? distribution.source_code_form)) - (_.test "Conditions for object-code distribution are present." - (present? distribution.object_form)) - (_.test "Conditions for extension distribution are present." - (present? (distribution.extension distribution))) - )) + (all _.and + (_.test "Conditions for source-code distribution are present." + (present? distribution.source_code_form)) + (_.test "Conditions for object-code distribution are present." + (present? distribution.object_form)) + (_.test "Conditions for extension distribution are present." + (present? (distribution.extension distribution))) + )) (def: (about_commercial present? commercial) (Concern Commercial) - ($_ _.and - (_.test "Non-commercial clause is present." - (bit#= (not (the license.#can_sell? commercial)) - (present? commercial.cannot_sell))) - (_.test "Contributor credit condition is present." - (bit#= (the license.#require_contributor_credit? commercial) - (present? commercial.require_contributor_attribution))) - (_.test "Anti-endorsement condition is present." - (bit#= (not (the license.#allow_contributor_endorsement? commercial)) - (present? commercial.disallow_contributor_endorsement))) - )) + (all _.and + (_.test "Non-commercial clause is present." + (bit#= (not (the license.#can_sell? commercial)) + (present? commercial.cannot_sell))) + (_.test "Contributor credit condition is present." + (bit#= (the license.#require_contributor_credit? commercial) + (present? commercial.require_contributor_attribution))) + (_.test "Anti-endorsement condition is present." + (bit#= (not (the license.#allow_contributor_endorsement? commercial)) + (present? commercial.disallow_contributor_endorsement))) + )) (def: (about_extension present? extension) (Concern Extension) - ($_ _.and - (_.test "The license is viral." - (bit#= (the license.#same_license? extension) - (and (list.every? present? extension.sharing_requirement) - (list.every? present? extension.license_conflict_resolution)))) - (_.test "Extensions must be distinguishable from the original work." - (bit#= (the license.#must_be_distinguishable? extension) - (present? extension.distinctness_requirement))) - (_.test "The community must be notified of new extensions." - (case (the license.#notification_period extension) - {.#Some period} - (present? (extension.notification_requirement period)) - - {.#None} - true)) - (_.test "Must describe modifications." - (bit#= (the license.#must_describe_modifications? extension) - (present? extension.description_requirement))) - )) + (all _.and + (_.test "The license is viral." + (bit#= (the license.#same_license? extension) + (and (list.every? present? extension.sharing_requirement) + (list.every? present? extension.license_conflict_resolution)))) + (_.test "Extensions must be distinguishable from the original work." + (bit#= (the license.#must_be_distinguishable? extension) + (present? extension.distinctness_requirement))) + (_.test "The community must be notified of new extensions." + (case (the license.#notification_period extension) + {.#Some period} + (present? (extension.notification_requirement period)) + + {.#None} + true)) + (_.test "Must describe modifications." + (bit#= (the license.#must_describe_modifications? extension) + (present? extension.description_requirement))) + )) (def: (about_attribution present? attribution) (Concern Attribution) - ($_ _.and - (_.test "The attribution copyright notice is present." - (present? (the license.#copyright_notice attribution))) - (_.test "The attribution phrase is present." - (|> attribution - (the license.#phrase) - (maybe#each present?) - (maybe.default true))) - (_.test "The attribution URL is present." - (present? (the license.#url attribution))) - (_.test "The attribution image is present." - (|> attribution - (the license.#image) - (maybe#each present?) - (maybe.default true))) - )) + (all _.and + (_.test "The attribution copyright notice is present." + (present? (the license.#copyright_notice attribution))) + (_.test "The attribution phrase is present." + (|> attribution + (the license.#phrase) + (maybe#each present?) + (maybe.default true))) + (_.test "The attribution URL is present." + (present? (the license.#url attribution))) + (_.test "The attribution image is present." + (|> attribution + (the license.#image) + (maybe#each present?) + (maybe.default true))) + )) (def: (about_miscellaneous present?) (-> (-> Text Bit) Test) - ($_ _.and - (_.test "License constitutes the entire agreement." - (present? miscellaneous.entire_agreement)) - (_.test "Disclaims relationship of parties." - (present? miscellaneous.relationship_of_parties)) - (_.test "Explicitly allows independent development." - (present? miscellaneous.independent_development)) - (_.test "Clarifies consent to breach does not waiver." - (present? miscellaneous.not_waiver)) - (_.test "Provides severability." - (present? miscellaneous.severability)) - (_.test "Covers export restrictions." - (present? miscellaneous.export_restrictions)) - )) + (all _.and + (_.test "License constitutes the entire agreement." + (present? miscellaneous.entire_agreement)) + (_.test "Disclaims relationship of parties." + (present? miscellaneous.relationship_of_parties)) + (_.test "Explicitly allows independent development." + (present? miscellaneous.independent_development)) + (_.test "Clarifies consent to breach does not waiver." + (present? miscellaneous.not_waiver)) + (_.test "Provides severability." + (present? miscellaneous.severability)) + (_.test "Covers export restrictions." + (present? miscellaneous.export_restrictions)) + )) (def: (about_addendum present? value) (Concern Addendum) - ($_ _.and - (_.test "Commons clause" - (bit#= (the license.#commons_clause? value) - (present? addendum.commons_clause))) - )) + (all _.and + (_.test "Commons clause" + (bit#= (the license.#commons_clause? value) + (present? addendum.commons_clause))) + )) (def: test Test @@ -291,77 +291,77 @@ present? (is (-> Text Bit) (function (_ snippet) (text.contains? snippet writ)))]] - ($_ _.and - (_.test "Copyright notices are present." - (list.every? (|>> notice.copyright_holder present?) - (the license.#copyright_holders license))) - - (_.test "Identification is present (if the license is identified)." - (case (the license.#identification license) - {.#Some identification} - (and (present? (output.identification identification)) - (present? miscellaneous.new_versions)) - - {.#None} - (not (present? miscellaneous.new_versions)))) - - (_.test "Black-lists (if wanted by licensor) are explicitly enumerated and justified." - (list.every? (function (_ black_list) - (let [black_list_is_justified? (case (the license.#justification black_list) - {.#Some justification} - (present? justification) - - {.#None} - bit.yes) - every_entity_is_mentioned? (|> black_list - (the license.#entities) - (list#each black_list.entity) - (list.every? present?))] - (and black_list_is_justified? - every_entity_is_mentioned?))) - (the license.#black_lists license))) - - (_.test "All definitions are present." - (list.every? (|>> output.definition present?) - definition.all)) - - (_.test "Acceptance of the license is demanded." - (present? limitation.acceptance)) - - (..about_grant present? (the license.#termination license)) - - (_.test "All limitations are present." - (present? output.limitation)) - - (_.test "All assurances are present." - (present? output.assurance)) - - (_.test "The terms of submission are present." - (present? submission.contribution)) - - (..about_liability present? (the license.#liability license)) - - (..about_distribution present? (the license.#distribution license)) - - (..about_commercial present? (the license.#commercial license)) - - (..about_extension present? (the license.#extension license)) - - (case (the license.#attribution license) - {.#Some attribution} - (..about_attribution present? attribution) - - {.#None} - (_.test "Attribution is missing." - bit.yes)) - - (..about_miscellaneous present?) - - (..about_addendum present? (the license.#addendum license)) - - (_.test "License ending footer is present." - (present? notice.end_of_license)) - ))) + (all _.and + (_.test "Copyright notices are present." + (list.every? (|>> notice.copyright_holder present?) + (the license.#copyright_holders license))) + + (_.test "Identification is present (if the license is identified)." + (case (the license.#identification license) + {.#Some identification} + (and (present? (output.identification identification)) + (present? miscellaneous.new_versions)) + + {.#None} + (not (present? miscellaneous.new_versions)))) + + (_.test "Black-lists (if wanted by licensor) are explicitly enumerated and justified." + (list.every? (function (_ black_list) + (let [black_list_is_justified? (case (the license.#justification black_list) + {.#Some justification} + (present? justification) + + {.#None} + bit.yes) + every_entity_is_mentioned? (|> black_list + (the license.#entities) + (list#each black_list.entity) + (list.every? present?))] + (and black_list_is_justified? + every_entity_is_mentioned?))) + (the license.#black_lists license))) + + (_.test "All definitions are present." + (list.every? (|>> output.definition present?) + definition.all)) + + (_.test "Acceptance of the license is demanded." + (present? limitation.acceptance)) + + (..about_grant present? (the license.#termination license)) + + (_.test "All limitations are present." + (present? output.limitation)) + + (_.test "All assurances are present." + (present? output.assurance)) + + (_.test "The terms of submission are present." + (present? submission.contribution)) + + (..about_liability present? (the license.#liability license)) + + (..about_distribution present? (the license.#distribution license)) + + (..about_commercial present? (the license.#commercial license)) + + (..about_extension present? (the license.#extension license)) + + (case (the license.#attribution license) + {.#Some attribution} + (..about_attribution present? attribution) + + {.#None} + (_.test "Attribution is missing." + bit.yes)) + + (..about_miscellaneous present?) + + (..about_addendum present? (the license.#addendum license)) + + (_.test "License ending footer is present." + (present? notice.end_of_license)) + ))) (program: args (<| io.io |