diff options
author | Eduardo Julian | 2021-07-12 00:03:36 -0400 |
---|---|---|
committer | Eduardo Julian | 2021-07-12 00:03:36 -0400 |
commit | 86df87512966e8038d70624ab654262ce14a915c (patch) | |
tree | e96d6709c04e7f3fc77f9d9912b86ef34e9c7ef7 | |
parent | abe24425ced15fd784ef6c62d6f186af72b491db (diff) |
Better syntax for parallel-hierarchy imports.
Diffstat (limited to '')
271 files changed, 1411 insertions, 1315 deletions
diff --git a/.gitignore b/.gitignore index 178401ebb..ded3e74bf 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,8 @@ pom.xml.asc /lux-js/source/lux /lux-js/source/program /lux-js/source/spec +/lux-js/node_based_compiler.js +/lux-js/lux.js /lux-python/target /lux-python/source/lux.lux diff --git a/documentation/bookmark/process.md b/documentation/bookmark/process.md index 5c08d58cf..be1326cbb 100644 --- a/documentation/bookmark/process.md +++ b/documentation/bookmark/process.md @@ -1,5 +1,6 @@ # Reference +1. [Conventional Commits: A specification for adding human and machine readable meaning to commit messages](https://www.conventionalcommits.org/en/v1.0.0/) 1. [Get your work recognized: write a brag document](https://jvns.ca/blog/brag-documents/) 1. [Danger: Formalize your Pull Request etiquette.](https://github.com/danger/danger) 1. [No code reviews by default](https://raycast.com/blog/no-code-reviews-by-default/) diff --git a/licentia/commands.md b/licentia/commands.md index b852e22cf..435a2fd57 100644 --- a/licentia/commands.md +++ b/licentia/commands.md @@ -1,4 +1,4 @@ -## Build +# Build ``` ## Develop @@ -7,7 +7,7 @@ cd ~/lux/licentia/ \ && lux auto build ``` -## Test +# Test ``` ## Develop @@ -16,7 +16,7 @@ cd ~/lux/licentia/ \ && lux auto test ``` -## Run +# Run ``` ## Re-generate Lux's license. diff --git a/licentia/project.lux b/licentia/project.lux index 9e8a3282f..6c31af881 100644 --- a/licentia/project.lux +++ b/licentia/project.lux @@ -9,6 +9,10 @@ #dependencies [["com.github.luxlang" "stdlib" "0.6.0-SNAPSHOT" "jar"]] #compiler ["com.github.luxlang" "lux-jvm" "0.6.0-SNAPSHOT" "jar"] + ## #compiler ["com.github.luxlang" "lux-js" "0.6.0-SNAPSHOT" "js"] + ## #compiler ["com.github.luxlang" "lux-python" "0.6.0-SNAPSHOT" "jar"] + ## #compiler ["com.github.luxlang" "lux-lua" "0.6.0-SNAPSHOT" "jar"] + ## #compiler ["com.github.luxlang" "lux-ruby" "0.6.0-SNAPSHOT" "jar"] #program "program/licentia" #test "test/licentia"} diff --git a/licentia/source/program/licentia.lux b/licentia/source/program/licentia.lux index f1a1503b4..44babb828 100644 --- a/licentia/source/program/licentia.lux +++ b/licentia/source/program/licentia.lux @@ -36,7 +36,7 @@ [format ["." json]]] [world - ["." file (#+ Path File)]]] + ["." file]]] ["." / #_ ["#." input] ["#." output]]) @@ -49,10 +49,11 @@ ["#::." (trim [] java/lang/String)]) -(def: default_output_file "LICENSE") +(def: default_output_file + "LICENSE.txt") (def: (success_message output) - (-> Path Text) + (-> file.Path Text) (format "Your license has been made!" text.new_line "Check the file " output ".")) @@ -62,8 +63,7 @@ (do io.monad [?done (: (IO (Try Any)) (do (try.with io.monad) - [file (!.use (\ file.default file) [input]) - blob (!.use (\ file content) []) + [blob (\ file.default read input) document (io\wrap (do {! try.monad} [raw_json (\ utf8.codec decode blob) json (|> raw_json @@ -71,10 +71,8 @@ (\ json.codec decode))] (|> json (<json>.run /input.license) - (\ ! map /output.license)))) - output_file (: (IO (Try (File IO))) - (file.get_file io.monad file.default output))] - (!.use (\ output_file over_write) (\ utf8.codec encode document))))] + (\ ! map /output.license))))] + (\ file.default write (\ utf8.codec encode document) output)))] (wrap (debug.log! (case ?done (#try.Success _) (success_message output) diff --git a/lux-js/commands.md b/lux-js/commands.md index b1d974d69..b92d902ef 100644 --- a/lux-js/commands.md +++ b/lux-js/commands.md @@ -1,13 +1,11 @@ -# JavaScript compiler - -## Test +# Test ``` cd ~/lux/lux-js/ && lein lux auto test cd ~/lux/lux-js/ && lein clean && lein lux auto test ``` -## Build +# Build ``` cd ~/lux/lux-js/ && lein lux auto build @@ -32,7 +30,7 @@ cd ~/lux/lux-js/ \ && mv target/program.js lux.js ``` -## Try +# Try ``` ## Compile Lux's Standard Library's tests using a JS/Node-based compiler. @@ -42,3 +40,10 @@ cd ~/lux/stdlib/ \ && node ~/lux/stdlib/target/program.js ``` +# Deploy + +``` +cd ~/lux/lux-js/ \ +&& mvn install:install-file -Dfile=lux.js -DgroupId=com.github.luxlang -DartifactId=lux-js -Dversion=0.6.0-SNAPSHOT -Dpackaging=js +``` + diff --git a/lux-jvm/commands.md b/lux-jvm/commands.md index 325023dd6..2dd7cb2f5 100644 --- a/lux-jvm/commands.md +++ b/lux-jvm/commands.md @@ -1,12 +1,10 @@ -# JVM compiler - -## Test +# Test ``` cd ~/lux/lux-jvm/ && lein clean && lein lux auto test ``` -## Build +# Build ``` ## Use bootstrapping compiler to build new JVM compiler @@ -15,13 +13,13 @@ cd ~/lux/lux-jvm/ \ && lein lux auto build ``` -## REPL +# REPL ``` cd ~/lux/lux-jvm/ && java -jar target/program.jar repl --source ~/lux/stdlib/source --target ~/lux/stdlib/target ``` -## Try +# Try ``` cd ~/lux/lux-jvm/ && time java -jar target/program.jar build --source ~/lux/stdlib/source --target ~/lux/stdlib/target --module test/lux @@ -38,7 +36,7 @@ cd ~/lux/stdlib/ \ && java -jar ~/lux/stdlib/target/program.jar ``` -## Deploy +# Deploy ``` cd ~/lux/lux-jvm/ \ diff --git a/lux-lua/commands.md b/lux-lua/commands.md index f78634aec..769ea10d8 100644 --- a/lux-lua/commands.md +++ b/lux-lua/commands.md @@ -1,13 +1,11 @@ -# Lua compiler - -## Test +# Test ``` cd ~/lux/lux-lua/ && lein lux auto test cd ~/lux/lux-lua/ && lein clean && lein lux auto test ``` -## Build +# Build ``` ## Develop @@ -23,7 +21,7 @@ cd ~/lux/lux-lua/ \ && mv target/program.jar jvm_based_compiler.jar ``` -## Try +# Try ``` ## Compile Lux's Standard Library's tests using a JVM-based compiler. @@ -33,3 +31,10 @@ cd ~/lux/stdlib/ \ && ~/lua-5.4.2/install/bin/lua ~/lux/stdlib/target/program.lua ``` +# Deploy + +``` +cd ~/lux/lux-lua/ \ +&& mvn install:install-file -Dfile=jvm_based_compiler.jar -DgroupId=com.github.luxlang -DartifactId=lux-lua -Dversion=0.6.0-SNAPSHOT -Dpackaging=jar +``` + diff --git a/lux-python/commands.md b/lux-python/commands.md index 40203411d..7de744436 100644 --- a/lux-python/commands.md +++ b/lux-python/commands.md @@ -1,13 +1,11 @@ -# Python compiler - -## Test +# Test ``` cd ~/lux/lux-python/ && lein lux auto test cd ~/lux/lux-python/ && lein clean && lein lux auto test ``` -## Build +# Build ``` ## Develop @@ -22,7 +20,7 @@ cd ~/lux/lux-python/ \ && mv target/program.jar jvm_based_compiler.jar ``` -## Try +# Try ``` ## Compile Lux's Standard Library's tests using a JVM-based compiler. @@ -32,3 +30,10 @@ cd ~/lux/stdlib/ \ && python3 ~/lux/stdlib/target/program.py ``` +# Deploy + +``` +cd ~/lux/lux-python/ \ +&& mvn install:install-file -Dfile=jvm_based_compiler.jar -DgroupId=com.github.luxlang -DartifactId=lux-python -Dversion=0.6.0-SNAPSHOT -Dpackaging=jar +``` + diff --git a/lux-ruby/commands.md b/lux-ruby/commands.md index 741772d2e..2fb1588b0 100644 --- a/lux-ruby/commands.md +++ b/lux-ruby/commands.md @@ -1,13 +1,11 @@ -# Ruby compiler - -## Test +# Test ``` cd ~/lux/lux-ruby/ && lein lux auto test cd ~/lux/lux-ruby/ && lein clean && lein lux auto test ``` -## Build +# Build ``` ## Develop @@ -22,7 +20,7 @@ cd ~/lux/lux-ruby/ \ && mv target/program.jar jvm_based_compiler.jar ``` -## Try +# Try ``` ## Compile Lux's Standard Library's tests using a JVM-based compiler. @@ -32,3 +30,10 @@ cd ~/lux/stdlib/ \ && RUBY_THREAD_VM_STACK_SIZE=15700000 ruby ~/lux/stdlib/target/program.rb ``` +# Deploy + +``` +cd ~/lux/lux-ruby/ \ +&& mvn install:install-file -Dfile=jvm_based_compiler.jar -DgroupId=com.github.luxlang -DartifactId=lux-ruby -Dversion=0.6.0-SNAPSHOT -Dpackaging=jar +``` + diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux index bd65c86da..da491b2c8 100644 --- a/stdlib/source/lux.lux +++ b/stdlib/source/lux.lux @@ -3764,24 +3764,24 @@ _ (return [#.Nil parts]))) -(def: (split! at x) +(def: (text\split! at x) (-> Nat Text [Text Text]) [("lux text clip" 0 at x) ("lux text clip" at (|> x "lux text size" ("lux i64 -" at)) x)]) -(def: (split_with token sample) +(def: (text\split_with token sample) (-> Text Text (Maybe [Text Text])) (do ..maybe_monad [index (..index_of token sample) - #let [[pre post'] (split! index sample) - [_ post] (split! ("lux text size" token) post')]] + #let [[pre post'] (text\split! index sample) + [_ post] (text\split! ("lux text size" token) post')]] (wrap [pre post]))) (def: (replace_all pattern replacement template) (-> Text Text Text Text) ((: (-> Text Text Text) (function (recur left right) - (case (..split_with pattern right) + (case (..text\split_with pattern right) (#.Some [pre post]) (recur ($_ "lux text concat" left pre replacement) post) @@ -3798,7 +3798,33 @@ (replace_all ..self_reference self) (replace_all ..contextual_reference context))) -(def: #export module_separator "/") +(def: #export module_separator + "/") + +(def: parallel_hierarchy_sigil + "\") + +(def: (normalize_parallel_path' hierarchy root) + (-> Text Text Text) + (case [(text\split_with ..module_separator hierarchy) + (text\split_with ..parallel_hierarchy_sigil root)] + [(#.Some [_ hierarchy']) + (#.Some ["" root'])] + (normalize_parallel_path' hierarchy' root') + + _ + (case root + "" hierarchy + _ ($_ text\compose root ..module_separator hierarchy)))) + +(def: (normalize_parallel_path hierarchy root) + (-> Text Text (Maybe Text)) + (case (text\split_with ..parallel_hierarchy_sigil root) + (#.Some ["" root']) + (#.Some (normalize_parallel_path' hierarchy root')) + + _ + #.None)) (def: (count_relatives relatives input) (-> Nat Text Nat) @@ -3891,23 +3917,36 @@ ## Nested (^ [_ (#Tuple (list& [_ (#Identifier ["" m_name])] extra))]) (do meta_monad - [import_name (clean_module nested? relative_root m_name) + [import_name (case (normalize_parallel_path relative_root m_name) + (#.Some parallel_path) + (wrap parallel_path) + + #.None + (clean_module nested? relative_root m_name)) referral+extra (parse_referrals extra) #let [[referral extra] referral+extra] openings+extra (parse_openings extra) #let [[openings extra] openings+extra] sub_imports (parse_imports #1 import_name context_alias extra)] (wrap (case [referral openings] - [#Nothing #Nil] sub_imports - _ (list& {#import_name import_name - #import_alias #None - #import_refer {#refer_defs referral - #refer_open openings}} - sub_imports)))) + [#Nothing #Nil] + sub_imports + + _ + (list& {#import_name import_name + #import_alias #None + #import_refer {#refer_defs referral + #refer_open openings}} + sub_imports)))) (^ [_ (#Tuple (list& [_ (#Text alias)] [_ (#Identifier ["" m_name])] extra))]) (do meta_monad - [import_name (clean_module nested? relative_root m_name) + [import_name (case (normalize_parallel_path relative_root m_name) + (#.Some parallel_path) + (wrap parallel_path) + + #.None + (clean_module nested? relative_root m_name)) referral+extra (parse_referrals extra) #let [[referral extra] referral+extra] openings+extra (parse_openings extra) @@ -3915,34 +3954,17 @@ de_aliased (de_alias context_alias m_name alias)] sub_imports (parse_imports #1 import_name de_aliased extra)] (wrap (case [referral openings] - [#Ignore #Nil] sub_imports - _ (list& {#import_name import_name - #import_alias (#Some de_aliased) - #import_refer {#refer_defs referral - #refer_open openings}} - sub_imports)))) - - ## Parallel - (^ [_ (#Record (list [[_ (#Tuple (list [_ (#Nat alteration)] - [_ (#Tag ["" domain])]))] - parallel_tree]))]) - (do meta_monad - [parallel_imports (parse_imports nested? relative_root context_alias (list parallel_tree))] - (wrap (list\map (alter_domain alteration domain) parallel_imports))) - - (^ [_ (#Record (list [[_ (#Nat alteration)] - parallel_tree]))]) - (do meta_monad - [parallel_imports (parse_imports nested? relative_root context_alias (list parallel_tree))] - (wrap (list\map (alter_domain alteration "") parallel_imports))) - - (^ [_ (#Record (list [[_ (#Tag ["" domain])] - parallel_tree]))]) - (do meta_monad - [parallel_imports (parse_imports nested? relative_root context_alias (list parallel_tree)) - #let [alteration (list\size (text\split_all_with ..module_separator domain))]] - (wrap (list\map (alter_domain alteration domain) parallel_imports))) + [#Ignore #Nil] + sub_imports + + _ + (list& {#import_name import_name + #import_alias (#Some de_aliased) + #import_refer {#refer_defs referral + #refer_open openings}} + sub_imports)))) + ## Unrecognized syntax. _ (do meta_monad [current_module current_module_name] diff --git a/stdlib/source/lux/ffi.old.lux b/stdlib/source/lux/ffi.old.lux index b5aac71bd..9e6a642ed 100644 --- a/stdlib/source/lux/ffi.old.lux +++ b/stdlib/source/lux/ffi.old.lux @@ -267,8 +267,8 @@ (-> Text Text) (text.replace_all "/" ".")) -(def: (generic_class->type' mode type_params in_array? name+params - class->type') +(def: (generic_class_to_type' mode type_params in_array? name+params + class_to_type') (-> Primitive_Mode (List Type_Parameter) Bit [Text (List GenericType)] (-> Primitive_Mode (List Type_Parameter) Bit GenericType Code) Code) @@ -283,10 +283,10 @@ [[name params] _ _] (let [name (sanitize name) - =params (list\map (class->type' mode type_params in_array?) params)] + =params (list\map (class_to_type' mode type_params in_array?) params)] (` (primitive (~ (code.text name)) [(~+ =params)]))))) -(def: (class->type' mode type_params in_array? class) +(def: (class_to_type' mode type_params in_array? class) (-> Primitive_Mode (List Type_Parameter) Bit GenericType Code) (case class (#GenericTypeVar name) @@ -298,26 +298,26 @@ (code.identifier ["" name]) (#.Some [pname pbounds]) - (class->type' mode type_params in_array? (maybe.assume (list.head pbounds)))) + (class_to_type' mode type_params in_array? (maybe.assume (list.head pbounds)))) (#GenericClass name+params) - (generic_class->type' mode type_params in_array? name+params - class->type') + (generic_class_to_type' mode type_params in_array? name+params + class_to_type') (#GenericArray param) - (let [=param (class->type' mode type_params #1 param)] + (let [=param (class_to_type' mode type_params #1 param)] (` ((~! array.Array) (~ =param)))) (^or (#GenericWildcard #.None) (#GenericWildcard (#.Some [#LowerBound _]))) (` .Any) (#GenericWildcard (#.Some [#UpperBound upper_bound])) - (class->type' mode type_params in_array? upper_bound) + (class_to_type' mode type_params in_array? upper_bound) )) -(def: (class->type mode type_params class) +(def: (class_to_type mode type_params class) (-> Primitive_Mode (List Type_Parameter) GenericType Code) - (class->type' mode type_params #0 class)) + (class_to_type' mode type_params #0 class)) (def: (type_param_type$ [name bounds]) (-> Type_Parameter Code) @@ -332,7 +332,7 @@ (code.identifier ["" pname]) (#.Cons bound1 _) - (class->type #ManualPrM class_params bound1)))) + (class_to_type #ManualPrM class_params bound1)))) class_params)] (` (primitive (~ (code.text (sanitize class_name))) [(~+ =params)])))) @@ -1398,7 +1398,7 @@ import_member_args)) arg_types (list\map (: (-> [Bit GenericType] Code) (function (_ [maybe? arg]) - (let [arg_type (class->type (get@ #import_member_mode commons) type_params arg)] + (let [arg_type (class_to_type (get@ #import_member_mode commons) type_params arg)] (if maybe? (` (Maybe (~ arg_type))) arg_type)))) @@ -1567,7 +1567,7 @@ (#FieldAccessDecl fad) (do meta.monad [#let [(^open ".") fad - base_gtype (class->type import_field_mode type_params import_field_type) + base_gtype (class_to_type import_field_mode type_params import_field_type) classC (class_decl_type$ class) typeC (if import_field_maybe? (` (Maybe (~ base_gtype))) @@ -1825,4 +1825,4 @@ (wrap (list (` ("jvm object class" (~ (code.text (simple_class$ (list) type)))))))) (syntax: #export (type {type (..generic_type^ (list))}) - (wrap (list (class->type #ManualPrM (list) type)))) + (wrap (list (..class_to_type #ManualPrM (list) type)))) diff --git a/stdlib/source/lux/time/day.lux b/stdlib/source/lux/time/day.lux index 602c9261f..57c0fae13 100644 --- a/stdlib/source/lux/time/day.lux +++ b/stdlib/source/lux/time/day.lux @@ -10,6 +10,8 @@ ["." exception (#+ exception:)]] [data ["." text]] + [macro + ["." template]] [math [number ["n" nat]]]]) @@ -95,20 +97,24 @@ (def: (encode value) (case value - #Monday "Monday" - #Tuesday "Tuesday" - #Wednesday "Wednesday" - #Thursday "Thursday" - #Friday "Friday" - #Saturday "Saturday" - #Sunday "Sunday")) + (^template [<tag>] + [<tag> (template.text [<tag>])]) + ([#..Monday] + [#..Tuesday] + [#..Wednesday] + [#..Thursday] + [#..Friday] + [#..Saturday] + [#..Sunday]))) (def: (decode value) (case value - "Monday" (#try.Success #..Monday) - "Tuesday" (#try.Success #..Tuesday) - "Wednesday" (#try.Success #..Wednesday) - "Thursday" (#try.Success #..Thursday) - "Friday" (#try.Success #..Friday) - "Saturday" (#try.Success #..Saturday) - "Sunday" (#try.Success #..Sunday) + (^template [<tag>] + [(^ (template.text [<tag>])) (#try.Success <tag>)]) + ([#..Monday] + [#..Tuesday] + [#..Wednesday] + [#..Thursday] + [#..Friday] + [#..Saturday] + [#..Sunday]) _ (exception.throw ..not_a_day_of_the_week [value])))) diff --git a/stdlib/source/lux/time/month.lux b/stdlib/source/lux/time/month.lux index 898a3df84..6848f4869 100644 --- a/stdlib/source/lux/time/month.lux +++ b/stdlib/source/lux/time/month.lux @@ -11,6 +11,8 @@ ["." exception (#+ exception:)]] [data ["." text]] + [macro + ["." template]] [math [number ["n" nat]]]]) @@ -186,33 +188,37 @@ (implementation: #export codec (Codec Text Month) - + (def: (encode value) (case value - #January "January" - #February "February" - #March "March" - #April "April" - #May "May" - #June "June" - #July "July" - #August "August" - #September "September" - #October "October" - #November "November" - #December "December")) + (^template [<tag>] + [<tag> (template.text [<tag>])]) + ([#..January] + [#..February] + [#..March] + [#..April] + [#..May] + [#..June] + [#..July] + [#..August] + [#..September] + [#..October] + [#..November] + [#..December]))) (def: (decode value) (case value - "January" (#try.Success #January) - "February" (#try.Success #February) - "March" (#try.Success #March) - "April" (#try.Success #April) - "May" (#try.Success #May) - "June" (#try.Success #June) - "July" (#try.Success #July) - "August" (#try.Success #August) - "September" (#try.Success #September) - "October" (#try.Success #October) - "November" (#try.Success #November) - "December" (#try.Success #December) + (^template [<tag>] + [(^ (template.text [<tag>])) (#try.Success <tag>)]) + ([#..January] + [#..February] + [#..March] + [#..April] + [#..May] + [#..June] + [#..July] + [#..August] + [#..September] + [#..October] + [#..November] + [#..December]) _ (exception.throw ..not_a_month_of_the_year [value])))) diff --git a/stdlib/source/poly/lux/abstract/equivalence.lux b/stdlib/source/poly/lux/abstract/equivalence.lux index 8ac11dbb1..590c3c92a 100644 --- a/stdlib/source/poly/lux/abstract/equivalence.lux +++ b/stdlib/source/poly/lux/abstract/equivalence.lux @@ -38,8 +38,8 @@ ["." month]] ["." type ["." unit]]] - {1 - ["." /]}) + [\\ + ["." /]]) (poly: #export equivalence (`` (do {! p.monad} diff --git a/stdlib/source/poly/lux/abstract/functor.lux b/stdlib/source/poly/lux/abstract/functor.lux index 1ef5c4137..1d90bf0d9 100644 --- a/stdlib/source/poly/lux/abstract/functor.lux +++ b/stdlib/source/poly/lux/abstract/functor.lux @@ -20,8 +20,8 @@ [math [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (poly: #export functor (do {! p.monad} diff --git a/stdlib/source/poly/lux/data/format/json.lux b/stdlib/source/poly/lux/data/format/json.lux index cf3076f72..3022a59a8 100644 --- a/stdlib/source/poly/lux/data/format/json.lux +++ b/stdlib/source/poly/lux/data/format/json.lux @@ -39,8 +39,8 @@ ["." month]] ["." type ["." unit]]] - {1 - ["." / (#+ JSON)]}) + [\\ + ["." / (#+ JSON)]]) (def: tag (-> Nat Frac) diff --git a/stdlib/source/program/aedifex/artifact/type.lux b/stdlib/source/program/aedifex/artifact/type.lux index 5c9ba8bb2..cbf0a35ed 100644 --- a/stdlib/source/program/aedifex/artifact/type.lux +++ b/stdlib/source/program/aedifex/artifact/type.lux @@ -12,6 +12,7 @@ ["tar" lux_library] ["jar" jvm_library] + ["js" js_library] ["pom" pom] ["sha1" sha-1] ["md5" md5] diff --git a/stdlib/source/program/aedifex/command/build.lux b/stdlib/source/program/aedifex/command/build.lux index ea2637d54..2f603dbc1 100644 --- a/stdlib/source/program/aedifex/command/build.lux +++ b/stdlib/source/program/aedifex/command/build.lux @@ -55,21 +55,16 @@ Group "com.github.luxlang") -(def: #export jvm_compiler_name - Name - "lux-jvm") - -(def: #export js_compiler_name - Name - "lux-js") - -(template [<finder> <name>] - [(def: <finder> - Finder - (..dependency_finder ..lux_group <name>))] - - [jvm_compiler ..jvm_compiler_name] - [js_compiler ..js_compiler_name] +(template [<dependency> <definition>] + [(def: #export <definition> + Name + <dependency>)] + + ["lux-jvm" jvm_compiler_name] + ["lux-js" js_compiler_name] + ["lux-python" python_compiler_name] + ["lux-lua" lua_compiler_name] + ["lux-ruby" ruby_compiler_name] ) (exception: #export no_available_compiler) @@ -77,7 +72,10 @@ (type: #export Compiler (#JVM Dependency) - (#JS Dependency)) + (#JS Dependency) + (#Python Dependency) + (#Lua Dependency) + (#Ruby Dependency)) (def: (remove_dependency dependency) (-> Dependency (-> Resolution Resolution)) @@ -85,20 +83,27 @@ (list.filter (|>> product.left (is? dependency) not)) (dictionary.from_list ///dependency.hash))) -(def: (compiler resolution) - (-> Resolution (Try [Resolution Compiler])) - (case [(..jvm_compiler resolution) - (..js_compiler resolution)] - [(#.Some dependency) _] - (#try.Success [(..remove_dependency dependency resolution) - (#JVM dependency)]) - - [_ (#.Some dependency)] - (#try.Success [(..remove_dependency dependency resolution) - (#JS dependency)]) - - _ - (exception.throw ..no_available_compiler []))) +(def: (compiler resolution compiler_dependency) + (-> Resolution Dependency (Try [Resolution Compiler])) + (let [[[compiler_group compiler_name compiler_version] compiler_type] compiler_dependency] + (case (..dependency_finder compiler_group compiler_name resolution) + (#.Some dependency) + (case compiler_name + (^template [<tag> <name>] + [(^ (static <name>)) + (#try.Success [(..remove_dependency dependency resolution) + (<tag> dependency)])]) + ([#JVM ..jvm_compiler_name] + [#JS ..js_compiler_name] + [#Python ..python_compiler_name] + [#Lua ..lua_compiler_name] + [#Ruby ..ruby_compiler_name]) + + _ + (exception.throw ..no_available_compiler [])) + + _ + (exception.throw ..no_available_compiler [])))) (def: (path fs home dependency) (All [!] (-> (file.System !) Path Dependency Path)) @@ -177,12 +182,17 @@ #let [home (\ program home) working_directory (\ program directory)]] (do ///action.monad - [[resolution compiler] (promise\wrap (..compiler resolution)) + [[resolution compiler] (promise\wrap (..compiler resolution (get@ #///.compiler profile))) #let [[[command compiler_params] output] (case compiler - (#JVM dependency) [(///runtime.java (..path fs home dependency)) - "program.jar"] - (#JS dependency) [(///runtime.node (..path fs home dependency)) - "program.js"]) + (^template [<tag> <runtime> <program>] + [(<tag> dependency) + [(<runtime> (..path fs home dependency)) + <program>]]) + ([#JVM ///runtime.java "program.jar"] + [#JS ///runtime.node "program.js"] + [#Python ///runtime.java "program.py"] + [#Lua ///runtime.java "program.lua"] + [#Ruby ///runtime.java "program.rb"])) / (\ fs separator) cache_directory (format working_directory / target)] _ (console.write_line ..start console) diff --git a/stdlib/source/program/aedifex/command/test.lux b/stdlib/source/program/aedifex/command/test.lux index 9ac6b9c10..0ccc0cfb2 100644 --- a/stdlib/source/program/aedifex/command/test.lux +++ b/stdlib/source/program/aedifex/command/test.lux @@ -40,8 +40,14 @@ (set@ #///.program (get@ #///.test profile) profile)) _ (console.write_line ..start console) #let [[compiler_command compiler_parameters] (case compiler - (#//build.JVM artifact) (///runtime.java program) - (#//build.JS artifact) (///runtime.node program))] + (^template [<tag> <runtime>] + [(<tag> artifact) + (<runtime> program)]) + ([#//build.JVM ///runtime.java] + [#//build.JS ///runtime.node] + [#//build.Python ///runtime.python] + [#//build.Lua ///runtime.lua] + [#//build.Ruby ///runtime.ruby]))] process (\ shell execute [environment working_directory compiler_command diff --git a/stdlib/source/program/aedifex/runtime.lux b/stdlib/source/program/aedifex/runtime.lux index 42b1c315a..e3f5a4e92 100644 --- a/stdlib/source/program/aedifex/runtime.lux +++ b/stdlib/source/program/aedifex/runtime.lux @@ -16,4 +16,7 @@ [java "java" ["-jar"]] [node "node" ["--stack_size=8192"]] + [python "python3" []] + [lua "lua" []] + [ruby "RUBY_THREAD_VM_STACK_SIZE=15700000 ruby" []] ) diff --git a/stdlib/source/spec/aedifex/repository.lux b/stdlib/source/spec/aedifex/repository.lux index 675d055b0..882937a0b 100644 --- a/stdlib/source/spec/aedifex/repository.lux +++ b/stdlib/source/spec/aedifex/repository.lux @@ -9,19 +9,18 @@ ["." promise (#+ Promise)]]] [data ["." binary - {[0 #test] - ["_#" /]}]] + ["_#" \test]]] [math ["." random]]] - {#program + [\\program ["." / ["#." remote] ["/#" // #_ ["#." artifact (#+ Artifact) - ["#/." extension]]]]} - {#test + ["#/." extension]]]]] + [\\test ["_." // #_ - ["#." artifact]]}) + ["#." artifact]]]) (def: #export (spec valid_artifact invalid_artifact subject) (-> Artifact Artifact (/.Repository Promise) Test) diff --git a/stdlib/source/spec/lux/abstract/apply.lux b/stdlib/source/spec/lux/abstract/apply.lux index a3218ae0c..749d82a28 100644 --- a/stdlib/source/spec/lux/abstract/apply.lux +++ b/stdlib/source/spec/lux/abstract/apply.lux @@ -9,8 +9,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ Apply)]} + [\\ + ["." / (#+ Apply)]] [// [functor (#+ Injection Comparison)]]) diff --git a/stdlib/source/spec/lux/abstract/codec.lux b/stdlib/source/spec/lux/abstract/codec.lux index db3148c3f..d892436f3 100644 --- a/stdlib/source/spec/lux/abstract/codec.lux +++ b/stdlib/source/spec/lux/abstract/codec.lux @@ -7,10 +7,10 @@ ["." try]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / [// - [equivalence (#+ Equivalence)]]]}) + [equivalence (#+ Equivalence)]]]]) (def: #export (spec (^open "@//.") (^open "@//.") generator) (All [m a] (-> (Equivalence a) (/.Codec m a) (Random a) Test)) diff --git a/stdlib/source/spec/lux/abstract/comonad.lux b/stdlib/source/spec/lux/abstract/comonad.lux index 42933a9e3..7d68d7a24 100644 --- a/stdlib/source/spec/lux/abstract/comonad.lux +++ b/stdlib/source/spec/lux/abstract/comonad.lux @@ -7,8 +7,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ CoMonad)]} + [\\ + ["." / (#+ CoMonad)]] [// [functor (#+ Injection Comparison)]]) diff --git a/stdlib/source/spec/lux/abstract/enum.lux b/stdlib/source/spec/lux/abstract/enum.lux index 6d28dead8..2823c7b38 100644 --- a/stdlib/source/spec/lux/abstract/enum.lux +++ b/stdlib/source/spec/lux/abstract/enum.lux @@ -5,8 +5,8 @@ [monad (#+ do)]] [math ["." random (#+ Random)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (spec (^open "\.") gen-sample) (All [a] (-> (/.Enum a) (Random a) Test)) diff --git a/stdlib/source/spec/lux/abstract/equivalence.lux b/stdlib/source/spec/lux/abstract/equivalence.lux index f3d97e5b6..14e84c05b 100644 --- a/stdlib/source/spec/lux/abstract/equivalence.lux +++ b/stdlib/source/spec/lux/abstract/equivalence.lux @@ -5,8 +5,8 @@ [monad (#+ do)]] [math ["." random (#+ Random)]]] - {1 - ["." / (#+ Equivalence)]}) + [\\ + ["." / (#+ Equivalence)]]) (def: #export (spec (^open "_//.") random) (All [a] (-> (Equivalence a) (Random a) Test)) diff --git a/stdlib/source/spec/lux/abstract/fold.lux b/stdlib/source/spec/lux/abstract/fold.lux index 03421803f..204987ded 100644 --- a/stdlib/source/spec/lux/abstract/fold.lux +++ b/stdlib/source/spec/lux/abstract/fold.lux @@ -9,7 +9,8 @@ ["n" nat]]]] [// [functor (#+ Injection Comparison)]] - {1 ["." /]}) + [\\ + ["." /]]) (def: #export (spec injection comparison (^open "@//.")) (All [f] (-> (Injection f) (Comparison f) (/.Fold f) Test)) diff --git a/stdlib/source/spec/lux/abstract/functor.lux b/stdlib/source/spec/lux/abstract/functor.lux index 88fc113ee..8aa3b5e95 100644 --- a/stdlib/source/spec/lux/abstract/functor.lux +++ b/stdlib/source/spec/lux/abstract/functor.lux @@ -10,8 +10,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ Functor)]}) + [\\ + ["." / (#+ Functor)]]) (type: #export (Injection f) (All [a] (-> a (f a)))) diff --git a/stdlib/source/spec/lux/abstract/functor/contravariant.lux b/stdlib/source/spec/lux/abstract/functor/contravariant.lux index f713b5c9e..21a2a62c6 100644 --- a/stdlib/source/spec/lux/abstract/functor/contravariant.lux +++ b/stdlib/source/spec/lux/abstract/functor/contravariant.lux @@ -10,8 +10,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ Functor)]}) + [\\ + ["." / (#+ Functor)]]) (def: (identity equivalence value (^open "@//.")) (All [f a] (-> (Equivalence (f a)) (f a) (Functor f) Test)) diff --git a/stdlib/source/spec/lux/abstract/hash.lux b/stdlib/source/spec/lux/abstract/hash.lux index 543ea2a85..94b9cf92b 100644 --- a/stdlib/source/spec/lux/abstract/hash.lux +++ b/stdlib/source/spec/lux/abstract/hash.lux @@ -9,8 +9,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (spec (^open "\.") random) (All [a] (-> (/.Hash a) (Random a) Test)) diff --git a/stdlib/source/spec/lux/abstract/interval.lux b/stdlib/source/spec/lux/abstract/interval.lux index c80c3ec5b..a3735f50f 100644 --- a/stdlib/source/spec/lux/abstract/interval.lux +++ b/stdlib/source/spec/lux/abstract/interval.lux @@ -6,8 +6,8 @@ ["." order]] [math ["." random (#+ Random)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (spec (^open "@//.") gen-sample) (All [a] (-> (/.Interval a) (Random a) Test)) diff --git a/stdlib/source/spec/lux/abstract/monad.lux b/stdlib/source/spec/lux/abstract/monad.lux index a1e5a41e4..4d79a43b0 100644 --- a/stdlib/source/spec/lux/abstract/monad.lux +++ b/stdlib/source/spec/lux/abstract/monad.lux @@ -5,8 +5,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ do)]} + [\\ + ["." / (#+ do)]] [// [functor (#+ Injection Comparison)]]) diff --git a/stdlib/source/spec/lux/abstract/monoid.lux b/stdlib/source/spec/lux/abstract/monoid.lux index 1981c6107..a590f09a1 100644 --- a/stdlib/source/spec/lux/abstract/monoid.lux +++ b/stdlib/source/spec/lux/abstract/monoid.lux @@ -5,10 +5,10 @@ [monad (#+ do)]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / [// - [equivalence (#+ Equivalence)]]]}) + [equivalence (#+ Equivalence)]]]]) (def: #export (spec (^open "\.") (^open "\.") gen-sample) (All [a] (-> (Equivalence a) (/.Monoid a) (Random a) Test)) diff --git a/stdlib/source/spec/lux/abstract/order.lux b/stdlib/source/spec/lux/abstract/order.lux index 6d259a465..e1a9eea1b 100644 --- a/stdlib/source/spec/lux/abstract/order.lux +++ b/stdlib/source/spec/lux/abstract/order.lux @@ -5,8 +5,8 @@ [monad (#+ do)]] [math ["." random (#+ Random)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (spec (^open "@//.") generator) (All [a] (-> (/.Order a) (Random a) Test)) diff --git a/stdlib/source/spec/lux/world/console.lux b/stdlib/source/spec/lux/world/console.lux index 7dedd72cb..cda425364 100644 --- a/stdlib/source/spec/lux/world/console.lux +++ b/stdlib/source/spec/lux/world/console.lux @@ -13,8 +13,8 @@ ["%" format (#+ format)]]] [math ["." random]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (spec console) (-> (IO (/.Console Promise)) Test) diff --git a/stdlib/source/spec/lux/world/file.lux b/stdlib/source/spec/lux/world/file.lux index 8a13279ad..a207817f1 100644 --- a/stdlib/source/spec/lux/world/file.lux +++ b/stdlib/source/spec/lux/world/file.lux @@ -18,8 +18,7 @@ [encoding ["." utf8 ("#\." codec)]]] ["." binary (#+ Binary) ("#\." equivalence monoid) - {[0 #test] - ["$#" /]}] + ["$#" \test]] [collection ["." list]]] [math @@ -28,8 +27,8 @@ ["n" nat]]] [time ["." instant (#+ Instant) ("#\." equivalence)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: (for_path fs) (-> (IO (/.System Promise)) Test) diff --git a/stdlib/source/spec/lux/world/program.lux b/stdlib/source/spec/lux/world/program.lux index 85db051f0..cf413ed55 100644 --- a/stdlib/source/spec/lux/world/program.lux +++ b/stdlib/source/spec/lux/world/program.lux @@ -14,8 +14,8 @@ ["." list]]] [math ["." random]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (spec subject) (-> (/.Program Promise) Test) diff --git a/stdlib/source/spec/lux/world/shell.lux b/stdlib/source/spec/lux/world/shell.lux index 8ff65a2c7..78bbd5521 100644 --- a/stdlib/source/spec/lux/world/shell.lux +++ b/stdlib/source/spec/lux/world/shell.lux @@ -18,10 +18,10 @@ [number ["n" nat] ["i" int]]]] - {1 + [\\ ["." / [// - [file (#+ Path)]]]}) + [file (#+ Path)]]]]) (template [<name> <command> <type> <prep>] [(def: <name> diff --git a/stdlib/source/test/aedifex/artifact.lux b/stdlib/source/test/aedifex/artifact.lux index 935d835bb..b1bb102c1 100644 --- a/stdlib/source/test/aedifex/artifact.lux +++ b/stdlib/source/test/aedifex/artifact.lux @@ -4,9 +4,8 @@ [abstract [monad (#+ do)] [hash (#+ Hash)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control [concurrency [promise (#+ Promise)]]] @@ -24,8 +23,8 @@ ["#." time] ["#." type] ["#." versioning]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Artifact) diff --git a/stdlib/source/test/aedifex/artifact/extension.lux b/stdlib/source/test/aedifex/artifact/extension.lux index 5d2491d28..9ae382975 100644 --- a/stdlib/source/test/aedifex/artifact/extension.lux +++ b/stdlib/source/test/aedifex/artifact/extension.lux @@ -12,10 +12,10 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {#program + [\\program ["." / ["/#" // #_ - ["#" type]]]}) + ["#" type]]]]) (def: #export test Test diff --git a/stdlib/source/test/aedifex/artifact/snapshot.lux b/stdlib/source/test/aedifex/artifact/snapshot.lux index d48c8f34e..4e968904d 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser @@ -17,8 +16,8 @@ ["#." stamp] ["#." time] ["#." version]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Snapshot) diff --git a/stdlib/source/test/aedifex/artifact/snapshot/build.lux b/stdlib/source/test/aedifex/artifact/snapshot/build.lux index e3fdcab62..156be7af4 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/build.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/build.lux @@ -3,17 +3,16 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser ["<.>" xml]]] [math ["." random (#+ Random)]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Build) diff --git a/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux b/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux index f2051d037..aa3dbcff1 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser @@ -14,8 +13,8 @@ ["." random (#+ Random)]] [time ["." instant]]] - {#program - ["." /]} + [\\program + ["." /]] ["$." // #_ ["#." time] ["#." build]]) diff --git a/stdlib/source/test/aedifex/artifact/snapshot/time.lux b/stdlib/source/test/aedifex/artifact/snapshot/time.lux index 3acb37232..f6861bf9c 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/time.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/time.lux @@ -3,17 +3,16 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser ["<.>" text]]] [math ["." random (#+ Random)]]] - {#program - ["." /]} + [\\program + ["." /]] ["$." /// #_ ["#." time]]) diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version.lux b/stdlib/source/test/aedifex/artifact/snapshot/version.lux index 59ed7189f..06adc7239 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/version.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/version.lux @@ -3,17 +3,16 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser ["<.>" xml]]] [math ["." random (#+ Random)]]] - {#program - ["." /]} + [\\program + ["." /]] ["." / #_ ["#." value]] ["$." /// #_ diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux index dc3f754a2..3ed0b32ce 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser @@ -22,11 +21,11 @@ ["." instant]]] ["$." /// #_ ["#." stamp]] - {#program + [\\program ["." / ["//#" /// ["#." stamp] - ["#." time]]]}) + ["#." time]]]]) (def: #export random (Random /.Value) diff --git a/stdlib/source/test/aedifex/artifact/time.lux b/stdlib/source/test/aedifex/artifact/time.lux index b9b0ab4e0..c2ab6a354 100644 --- a/stdlib/source/test/aedifex/artifact/time.lux +++ b/stdlib/source/test/aedifex/artifact/time.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser @@ -14,8 +13,8 @@ ["." random (#+ Random)] [number ["i" int]]]] - {#program - ["." /]} + [\\program + ["." /]] ["." / #_ ["#." date] ["#." time]]) diff --git a/stdlib/source/test/aedifex/artifact/time/date.lux b/stdlib/source/test/aedifex/artifact/time/date.lux index a68a60a56..494aa5e07 100644 --- a/stdlib/source/test/aedifex/artifact/time/date.lux +++ b/stdlib/source/test/aedifex/artifact/time/date.lux @@ -15,8 +15,8 @@ [time ["." date] ["." year]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Date) diff --git a/stdlib/source/test/aedifex/artifact/time/time.lux b/stdlib/source/test/aedifex/artifact/time/time.lux index cd70d1c83..a17f9c40c 100644 --- a/stdlib/source/test/aedifex/artifact/time/time.lux +++ b/stdlib/source/test/aedifex/artifact/time/time.lux @@ -13,8 +13,8 @@ [number ["n" nat] ["i" int]]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Time) diff --git a/stdlib/source/test/aedifex/artifact/type.lux b/stdlib/source/test/aedifex/artifact/type.lux index 01b581eb3..447b60bac 100644 --- a/stdlib/source/test/aedifex/artifact/type.lux +++ b/stdlib/source/test/aedifex/artifact/type.lux @@ -12,8 +12,8 @@ ["." random (#+ Random) ("#\." monad)] [number ["n" nat]]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Type) diff --git a/stdlib/source/test/aedifex/artifact/versioning.lux b/stdlib/source/test/aedifex/artifact/versioning.lux index c438caca5..d1d4da7ef 100644 --- a/stdlib/source/test/aedifex/artifact/versioning.lux +++ b/stdlib/source/test/aedifex/artifact/versioning.lux @@ -3,17 +3,16 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser ["<.>" xml]]] [math ["." random (#+ Random)]]] - {#program - ["." /]} + [\\program + ["." /]] ["$." // #_ ["#." time] ["#." snapshot diff --git a/stdlib/source/test/aedifex/cache.lux b/stdlib/source/test/aedifex/cache.lux index 22a32e43f..d61a88057 100644 --- a/stdlib/source/test/aedifex/cache.lux +++ b/stdlib/source/test/aedifex/cache.lux @@ -31,7 +31,7 @@ [lux [data ["_." binary]]]]] - {#program + [\\program ["." / ["/#" // #_ ["#" profile (#+ Profile)] @@ -42,7 +42,7 @@ ["#." artifact (#+ Artifact) ["#/." type (#+ Type)]] ["#." repository #_ - ["#/." origin]]]]}) + ["#/." origin]]]]]) (def: type (Random Type) diff --git a/stdlib/source/test/aedifex/cli.lux b/stdlib/source/test/aedifex/cli.lux index b92ebe145..30813fb94 100644 --- a/stdlib/source/test/aedifex/cli.lux +++ b/stdlib/source/test/aedifex/cli.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control [pipe (#+ case>)] ["." try] @@ -15,10 +14,10 @@ ["." text ("#\." equivalence)]] [math ["." random (#+ Random) ("#\." monad)]]] - {#program + [\\program ["." / ["/#" // #_ - ["#" profile]]]}) + ["#" profile]]]]) (def: compilation (Random /.Compilation) diff --git a/stdlib/source/test/aedifex/command.lux b/stdlib/source/test/aedifex/command.lux index 42d1c1278..1ba7e6319 100644 --- a/stdlib/source/test/aedifex/command.lux +++ b/stdlib/source/test/aedifex/command.lux @@ -14,8 +14,8 @@ ["#." build] ["#." test] ["#." auto]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/aedifex/command/auto.lux b/stdlib/source/test/aedifex/command/auto.lux index effc80871..dfb4dc672 100644 --- a/stdlib/source/test/aedifex/command/auto.lux +++ b/stdlib/source/test/aedifex/command/auto.lux @@ -34,14 +34,14 @@ ["." // #_ ["$." version] ["$." build]] - {#program + [\\program ["." / ["//#" /// #_ [command (#+ Command)] ["#" profile (#+ Profile)] ["#." action] [dependency - [resolution (#+ Resolution)]]]]}) + [resolution (#+ Resolution)]]]]]) (def: (command expected_runs end_signal fs dummy_file) (-> Nat Text (file.System Promise) file.Path @@ -89,7 +89,7 @@ expected_runs (\ ! map (|>> (n.% 10) (n.max 2)) random.nat) dummy_path (\ ! map (|>> (format source /)) (random.ascii/alpha 5)) - resolution $build.resolution] + [compiler resolution] $build.resolution] ($_ _.and (wrap (do promise.monad [verdict (do ///action.monad @@ -99,6 +99,7 @@ _ (\ watcher poll [])] (do {! promise.monad} [no_dangling_process! (|> profile + (set@ #///.compiler compiler) ((/.do! 1 watcher command) ($version.echo "") (program.async (program.mock environment.empty home working_directory)) diff --git a/stdlib/source/test/aedifex/command/build.lux b/stdlib/source/test/aedifex/command/build.lux index 9d37ceb00..191ac1039 100644 --- a/stdlib/source/test/aedifex/command/build.lux +++ b/stdlib/source/test/aedifex/command/build.lux @@ -16,7 +16,7 @@ [collection ["." dictionary]]] [math - ["." random]] + ["." random (#+ Random)]] [world ["." file] ["." shell (#+ Shell)] @@ -25,15 +25,15 @@ ["@." version] ["$/#" // #_ ["#." package]]] - {#program + [\\program ["." / ["//#" /// #_ ["#" profile (#+ Profile)] ["#." action] ["#." artifact ["#/." type]] - ["#." dependency - ["#/." resolution]]]]}) + ["#." dependency (#+ Dependency) + ["#/." resolution (#+ Resolution)]]]]]) (def: #export good_shell (-> Any (Shell IO)) @@ -72,25 +72,35 @@ (#try.Success [state shell.error])))))))) (def: compiler + (Random Dependency) (do random.monad [lux_version (random.ascii/alpha 5) - #let [jvm_compiler {#///dependency.artifact {#///artifact.group /.lux_group - #///artifact.name /.jvm_compiler_name - #///artifact.version lux_version} - #///dependency.type ///artifact/type.lux_library} - js_compiler {#///dependency.artifact {#///artifact.group /.lux_group + #let [js_compiler {#///dependency.artifact {#///artifact.group /.lux_group #///artifact.name /.js_compiler_name #///artifact.version lux_version} - #///dependency.type ///artifact/type.lux_library}]] - (random.either (wrap jvm_compiler) - (wrap js_compiler)))) + #///dependency.type ///artifact/type.js_library}]] + (`` ($_ random.either + (wrap js_compiler) + (~~ (template [<compiler>] + [(wrap {#///dependency.artifact {#///artifact.group /.lux_group + #///artifact.name <compiler> + #///artifact.version lux_version} + #///dependency.type ///artifact/type.lux_library})] + + [/.jvm_compiler_name] + [/.python_compiler_name] + [/.lua_compiler_name] + [/.ruby_compiler_name] + )))))) (def: #export resolution + (Random [Dependency Resolution]) (do random.monad [dependency ..compiler [_ package] $///package.random] - (wrap (|> ///dependency/resolution.empty - (dictionary.put dependency package))))) + (wrap [dependency + (|> ///dependency/resolution.empty + (dictionary.put dependency package))]))) (def: #export test Test @@ -136,10 +146,12 @@ (exception.match? /.no_available_compiler error))))) (do ! [#let [console (@version.echo "")] - resolution ..resolution] + [compiler resolution] ..resolution] (wrap (do promise.monad [verdict (do ///action.monad - [_ (/.do! console (program.async (program.mock environment.empty home working_directory)) fs shell resolution profile) + [_ (/.do! console (program.async (program.mock environment.empty home working_directory)) + fs shell resolution + (set@ #///.compiler compiler profile)) start (\ console read_line []) end (\ console read_line [])] (wrap (and (text\= /.start start) @@ -150,10 +162,12 @@ (try.default false verdict))))) (do ! [#let [console (@version.echo "")] - resolution ..resolution] + [compiler resolution] ..resolution] (wrap (do promise.monad [verdict (do ///action.monad - [_ (/.do! console (program.async (program.mock environment.empty home working_directory)) fs (shell.async (..bad_shell [])) resolution profile) + [_ (/.do! console (program.async (program.mock environment.empty home working_directory)) + fs (shell.async (..bad_shell [])) resolution + (set@ #///.compiler compiler profile)) start (\ console read_line []) end (\ console read_line [])] (wrap (and (text\= /.start start) diff --git a/stdlib/source/test/aedifex/command/clean.lux b/stdlib/source/test/aedifex/command/clean.lux index e23e99b96..6ee155b33 100644 --- a/stdlib/source/test/aedifex/command/clean.lux +++ b/stdlib/source/test/aedifex/command/clean.lux @@ -29,11 +29,11 @@ [lux [data ["$." binary]]]]]] - {#program + [\\program ["." / ["//#" /// #_ ["#" profile] - ["#." action (#+ Action)]]]}) + ["#." action (#+ Action)]]]]) (def: node_name (Random Text) diff --git a/stdlib/source/test/aedifex/command/deploy.lux b/stdlib/source/test/aedifex/command/deploy.lux index a40d8e394..7b3664da8 100644 --- a/stdlib/source/test/aedifex/command/deploy.lux +++ b/stdlib/source/test/aedifex/command/deploy.lux @@ -36,7 +36,7 @@ [// ["$." profile] ["$." repository]]] - {#program + [\\program ["." / ["//#" /// #_ ["#" profile] @@ -46,7 +46,7 @@ ["#." repository (#+ Repository) ["#/." remote]] ["#." artifact (#+ Artifact) - ["#/." extension]]]]}) + ["#/." extension]]]]]) (def: (execute! program repository fs artifact profile) (-> (Program Promise) (Repository Promise) (file.System Promise) diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux index 819495c02..63561542d 100644 --- a/stdlib/source/test/aedifex/command/deps.lux +++ b/stdlib/source/test/aedifex/command/deps.lux @@ -32,7 +32,7 @@ ["#." artifact] ["#." dependency #_ ["#/." resolution]]]] - {#program + [\\program ["." / ["/#" // #_ ["#." clean] @@ -49,7 +49,7 @@ ["#/." status]] ["#." repository ["#/." origin] - ["#/." local]]]]]}) + ["#/." local]]]]]]) (def: #export test Test diff --git a/stdlib/source/test/aedifex/command/install.lux b/stdlib/source/test/aedifex/command/install.lux index 0e8a95526..ae9885401 100644 --- a/stdlib/source/test/aedifex/command/install.lux +++ b/stdlib/source/test/aedifex/command/install.lux @@ -26,7 +26,7 @@ [// ["$." profile] ["$." artifact]]] - {#program + [\\program ["." / ["/#" // #_ ["/#" // #_ @@ -36,7 +36,7 @@ ["#." artifact ["#/." extension]] ["#." repository #_ - ["#/." local]]]]]}) + ["#/." local]]]]]]) (def: #export (make_sources! fs sources) (-> (file.System Promise) (Set file.Path) (Action (List Any))) diff --git a/stdlib/source/test/aedifex/command/pom.lux b/stdlib/source/test/aedifex/command/pom.lux index 2ac23ec7a..39e2eecfc 100644 --- a/stdlib/source/test/aedifex/command/pom.lux +++ b/stdlib/source/test/aedifex/command/pom.lux @@ -22,12 +22,12 @@ ["@." version] [// ["@." profile]]] - {#program + [\\program ["." / ["//#" /// #_ ["#" profile] ["#." action] - ["#." pom]]]}) + ["#." pom]]]]) (def: #export test Test diff --git a/stdlib/source/test/aedifex/command/test.lux b/stdlib/source/test/aedifex/command/test.lux index 47e2ed2b3..a6029ba8c 100644 --- a/stdlib/source/test/aedifex/command/test.lux +++ b/stdlib/source/test/aedifex/command/test.lux @@ -26,7 +26,7 @@ ["@." build] ["$/#" // #_ ["#." package]]] - {#program + [\\program ["." / ["/#" // #_ ["#." build] @@ -36,7 +36,7 @@ ["#." artifact ["#/." type]] ["#." dependency - ["#/." resolution]]]]]}) + ["#/." resolution]]]]]]) (def: #export test Test @@ -56,13 +56,15 @@ profile (|> empty_profile with_test with_target)] - resolution @build.resolution] + [compiler resolution] @build.resolution] ($_ _.and (let [fs (file.mock (\ file.default separator)) console (@version.echo "")] (wrap (do promise.monad [verdict (do ///action.monad - [_ (/.do! console (program.async (program.mock environment.empty home working_directory)) fs (shell.async (@build.good_shell [])) resolution profile) + [_ (/.do! console (program.async (program.mock environment.empty home working_directory)) + fs (shell.async (@build.good_shell [])) resolution + (set@ #///.compiler compiler profile)) build_start (\ console read_line []) build_end (\ console read_line []) test_start (\ console read_line []) @@ -96,7 +98,9 @@ shell.normal shell.error)])))))) [])] - _ (/.do! console (program.async (program.mock environment.empty home working_directory)) fs (shell.async bad_shell) resolution profile) + _ (/.do! console (program.async (program.mock environment.empty home working_directory)) + fs (shell.async bad_shell) resolution + (set@ #///.compiler compiler profile)) build_start (\ console read_line []) build_end (\ console read_line []) test_start (\ console read_line []) diff --git a/stdlib/source/test/aedifex/command/version.lux b/stdlib/source/test/aedifex/command/version.lux index 1bbb7f874..d3f815ed1 100644 --- a/stdlib/source/test/aedifex/command/version.lux +++ b/stdlib/source/test/aedifex/command/version.lux @@ -24,8 +24,8 @@ ["." console (#+ Console Mock)]]] [/// ["@." profile]] - {#program - ["." /]}) + [\\program + ["." /]]) (exception: #export console_is_closed!) diff --git a/stdlib/source/test/aedifex/dependency.lux b/stdlib/source/test/aedifex/dependency.lux index 95fec9800..189da054c 100644 --- a/stdlib/source/test/aedifex/dependency.lux +++ b/stdlib/source/test/aedifex/dependency.lux @@ -3,15 +3,14 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random (#+ Random)]]] [// ["@." artifact]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Dependency) diff --git a/stdlib/source/test/aedifex/dependency/deployment.lux b/stdlib/source/test/aedifex/dependency/deployment.lux index b947e609e..6e44e03db 100644 --- a/stdlib/source/test/aedifex/dependency/deployment.lux +++ b/stdlib/source/test/aedifex/dependency/deployment.lux @@ -34,7 +34,7 @@ ["$." // ["#/" // #_ ["#." package]]] - {#program + [\\program ["." / [// (#+ Dependency) ["." resolution] @@ -46,7 +46,7 @@ ["#/." type] ["#/." extension]] ["." repository - ["." remote]]]]]}) + ["." remote]]]]]]) (def: good_upload (@http.Response IO) diff --git a/stdlib/source/test/aedifex/dependency/resolution.lux b/stdlib/source/test/aedifex/dependency/resolution.lux index 6d25ffd4b..24cde0b53 100644 --- a/stdlib/source/test/aedifex/dependency/resolution.lux +++ b/stdlib/source/test/aedifex/dependency/resolution.lux @@ -4,9 +4,8 @@ [abstract [monad (#+ do)] ["." predicate] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try] ["." exception] @@ -33,7 +32,7 @@ ["#." artifact] [command ["#." version]]] - {#program + [\\program ["." / ["//#" /// #_ ["#" profile] @@ -46,7 +45,7 @@ ["#/." type] ["#/." extension]] ["#." repository (#+ Mock) - ["#/." origin]]]]}) + ["#/." origin]]]]]) (def: random (Random /.Resolution) diff --git a/stdlib/source/test/aedifex/dependency/status.lux b/stdlib/source/test/aedifex/dependency/status.lux index 90cc547fa..a709e6ca2 100644 --- a/stdlib/source/test/aedifex/dependency/status.lux +++ b/stdlib/source/test/aedifex/dependency/status.lux @@ -2,17 +2,16 @@ [lux #* ["_" test (#+ Test)] [abstract - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random (#+ Random) ("#\." monad)]]] ["$." /// #_ ["#." hash]] - {#program + [\\program ["." / ["//#" /// #_ - ["#." hash]]]}) + ["#." hash]]]]) (def: #export random (Random /.Status) diff --git a/stdlib/source/test/aedifex/hash.lux b/stdlib/source/test/aedifex/hash.lux index 4c057be60..f4f6fe441 100644 --- a/stdlib/source/test/aedifex/hash.lux +++ b/stdlib/source/test/aedifex/hash.lux @@ -3,10 +3,9 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." codec]]] [control ["." try] ["." exception]] @@ -18,8 +17,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {#program - ["." /]} + [\\program + ["." /]] [test [lux [data diff --git a/stdlib/source/test/aedifex/input.lux b/stdlib/source/test/aedifex/input.lux index c379a8b0c..cf573bb25 100644 --- a/stdlib/source/test/aedifex/input.lux +++ b/stdlib/source/test/aedifex/input.lux @@ -20,7 +20,7 @@ ["." file]]] [// ["$." profile]] - {#program + [\\program ["." / ["/#" // #_ ["#" profile (#+ Profile)] @@ -28,7 +28,7 @@ ["#." action] ["#." format] [repository - [remote (#+ Address)]]]]}) + [remote (#+ Address)]]]]]) (def: (with_default_source sources) (-> (Set //.Source) (Set //.Source)) diff --git a/stdlib/source/test/aedifex/local.lux b/stdlib/source/test/aedifex/local.lux index 3f6574ed9..89e4db9de 100644 --- a/stdlib/source/test/aedifex/local.lux +++ b/stdlib/source/test/aedifex/local.lux @@ -9,10 +9,10 @@ ["." random (#+ Random)]]] [// ["@." artifact]] - {#program + [\\program ["." / ["/#" // #_ - ["#." artifact]]]}) + ["#." artifact]]]]) (def: #export test Test diff --git a/stdlib/source/test/aedifex/metadata.lux b/stdlib/source/test/aedifex/metadata.lux index 224ce4d80..2975939bc 100644 --- a/stdlib/source/test/aedifex/metadata.lux +++ b/stdlib/source/test/aedifex/metadata.lux @@ -12,8 +12,8 @@ ["#." snapshot] [// ["$." artifact]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/aedifex/metadata/artifact.lux b/stdlib/source/test/aedifex/metadata/artifact.lux index 6c3e509b1..56e856b88 100644 --- a/stdlib/source/test/aedifex/metadata/artifact.lux +++ b/stdlib/source/test/aedifex/metadata/artifact.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser @@ -23,8 +22,8 @@ ["." random (#+ Random)]] [macro ["." code]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Metadata) diff --git a/stdlib/source/test/aedifex/metadata/snapshot.lux b/stdlib/source/test/aedifex/metadata/snapshot.lux index 1858cae25..d94c66761 100644 --- a/stdlib/source/test/aedifex/metadata/snapshot.lux +++ b/stdlib/source/test/aedifex/metadata/snapshot.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser @@ -29,12 +28,12 @@ ["#/." time] ["#/." snapshot #_ ["#/." version]]]] - {#program + [\\program ["." / [/// [artifact [versioning (#+ Versioning)] - ["#." snapshot]]]]}) + ["#." snapshot]]]]]) (def: random_instant (Random Instant) diff --git a/stdlib/source/test/aedifex/package.lux b/stdlib/source/test/aedifex/package.lux index 56daf3cad..61e36aaf7 100644 --- a/stdlib/source/test/aedifex/package.lux +++ b/stdlib/source/test/aedifex/package.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try] [concurrency @@ -31,7 +30,7 @@ [lux [data ["$." binary]]]]] - {#program + [\\program ["." / ["/#" // #_ ["#" profile] @@ -40,7 +39,7 @@ [dependency ["#." status]] [repository - ["#." origin]]]]}) + ["#." origin]]]]]) (def: #export random (Random [//.Profile /.Package]) diff --git a/stdlib/source/test/aedifex/parser.lux b/stdlib/source/test/aedifex/parser.lux index 07c426ebb..01c763349 100644 --- a/stdlib/source/test/aedifex/parser.lux +++ b/stdlib/source/test/aedifex/parser.lux @@ -23,14 +23,14 @@ ["." code]]] [// ["@." profile]] - {#program + [\\program ["." / ["/#" // #_ ["#" profile] ["#." project (#+ Project)] ["#." artifact (#+ Artifact)] ["#." dependency (#+ Dependency)] - ["#." format]]]}) + ["#." format]]]]) (def: name (Random //.Name) diff --git a/stdlib/source/test/aedifex/pom.lux b/stdlib/source/test/aedifex/pom.lux index 75b8cf5dc..ad3b1d801 100644 --- a/stdlib/source/test/aedifex/pom.lux +++ b/stdlib/source/test/aedifex/pom.lux @@ -15,10 +15,10 @@ ["." random]]] [// ["@." profile]] - {#program + [\\program ["." / ["/#" // #_ - ["#" profile]]]}) + ["#" profile]]]]) (def: #export test Test diff --git a/stdlib/source/test/aedifex/profile.lux b/stdlib/source/test/aedifex/profile.lux index 0a0ba8642..d4cbb958a 100644 --- a/stdlib/source/test/aedifex/profile.lux +++ b/stdlib/source/test/aedifex/profile.lux @@ -4,10 +4,9 @@ [abstract [monad (#+ do)] [hash (#+ Hash)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." monoid]]}] + [\spec + ["$." equivalence] + ["$." monoid]]] [control [pipe (#+ case>)] ["." try] @@ -25,13 +24,13 @@ [// ["@." artifact] ["@." dependency]] - {#program + [\\program ["." / ["/#" // #_ ["#." dependency (#+ Dependency)] ["#." format] [repository - [remote (#+ Address)]]]]}) + [remote (#+ Address)]]]]]) (def: distribution (Random /.Distribution) diff --git a/stdlib/source/test/aedifex/project.lux b/stdlib/source/test/aedifex/project.lux index 5e26b63de..d2c12109f 100644 --- a/stdlib/source/test/aedifex/project.lux +++ b/stdlib/source/test/aedifex/project.lux @@ -3,10 +3,9 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." monoid]]}] + [\spec + ["$." equivalence] + ["$." monoid]]] [control ["." try ("#\." functor)] ["." exception]] @@ -19,10 +18,10 @@ ["n" nat]]]] [// ["@." profile]] - {#program + [\\program ["." / ["/#" // #_ - ["#" profile]]]}) + ["#" profile]]]]) (def: profile (Random [//.Name //.Profile]) diff --git a/stdlib/source/test/aedifex/repository.lux b/stdlib/source/test/aedifex/repository.lux index f9a4eeda6..6241e14e9 100644 --- a/stdlib/source/test/aedifex/repository.lux +++ b/stdlib/source/test/aedifex/repository.lux @@ -28,14 +28,14 @@ ["#." remote] [// ["@." artifact]]] - {#spec - ["$." /]} - {#program + [\\spec + ["$." /]] + [\\program ["." / ["." remote] ["/#" // #_ ["#." artifact (#+ Version Artifact) - ["#/." extension (#+ Extension)]]]]}) + ["#/." extension (#+ Extension)]]]]]) (def: artifact (-> Version Artifact) diff --git a/stdlib/source/test/aedifex/repository/identity.lux b/stdlib/source/test/aedifex/repository/identity.lux index d2a7ce185..df454b436 100644 --- a/stdlib/source/test/aedifex/repository/identity.lux +++ b/stdlib/source/test/aedifex/repository/identity.lux @@ -2,13 +2,12 @@ [lux #* ["_" test (#+ Test)] [abstract - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random (#+ Random)]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Identity) diff --git a/stdlib/source/test/aedifex/repository/local.lux b/stdlib/source/test/aedifex/repository/local.lux index 946494437..5bf4c5113 100644 --- a/stdlib/source/test/aedifex/repository/local.lux +++ b/stdlib/source/test/aedifex/repository/local.lux @@ -19,8 +19,8 @@ [world ["." file] ["." program]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/aedifex/repository/origin.lux b/stdlib/source/test/aedifex/repository/origin.lux index 4242a318a..7b3675f40 100644 --- a/stdlib/source/test/aedifex/repository/origin.lux +++ b/stdlib/source/test/aedifex/repository/origin.lux @@ -2,13 +2,12 @@ [lux #* ["_" test (#+ Test)] [abstract - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random (#+ Random)]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export random (Random /.Origin) diff --git a/stdlib/source/test/aedifex/repository/remote.lux b/stdlib/source/test/aedifex/repository/remote.lux index f488391ce..0fa784a77 100644 --- a/stdlib/source/test/aedifex/repository/remote.lux +++ b/stdlib/source/test/aedifex/repository/remote.lux @@ -25,10 +25,10 @@ ["#" client] ["#/." status] ["@#" /]]]]] - {#program + [\\program ["." / ["/#" // #_ - ["#." identity]]]}) + ["#." identity]]]]) (def: (url_body url) (-> URL (@http.Body IO)) diff --git a/stdlib/source/test/aedifex/runtime.lux b/stdlib/source/test/aedifex/runtime.lux index 0143eaac8..968e753f8 100644 --- a/stdlib/source/test/aedifex/runtime.lux +++ b/stdlib/source/test/aedifex/runtime.lux @@ -7,8 +7,8 @@ ["." text]] [math ["." random]]] - {#program - ["." /]}) + [\\program + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/apply.lux b/stdlib/source/test/lux/abstract/apply.lux index fc67f9830..97bef5b24 100644 --- a/stdlib/source/test/lux/abstract/apply.lux +++ b/stdlib/source/test/lux/abstract/apply.lux @@ -11,8 +11,8 @@ [number ["n" nat]]] ["_" test (#+ Test)]] - {1 - ["." / (#+ Apply)]}) + [\\ + ["." / (#+ Apply)]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/codec.lux b/stdlib/source/test/lux/abstract/codec.lux index 1ac81f9d2..3365c1d66 100644 --- a/stdlib/source/test/lux/abstract/codec.lux +++ b/stdlib/source/test/lux/abstract/codec.lux @@ -11,10 +11,10 @@ ["." json (#+ JSON)]]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / (#+ Codec) [// - [equivalence (#+ Equivalence)]]]}) + [equivalence (#+ Equivalence)]]]]) (def: json (Codec JSON Bit) diff --git a/stdlib/source/test/lux/abstract/comonad.lux b/stdlib/source/test/lux/abstract/comonad.lux index 7e59dfc42..088b4fe55 100644 --- a/stdlib/source/test/lux/abstract/comonad.lux +++ b/stdlib/source/test/lux/abstract/comonad.lux @@ -9,8 +9,8 @@ [number ["n" nat]]] ["_" test (#+ Test)]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/comonad/cofree.lux b/stdlib/source/test/lux/abstract/comonad/cofree.lux index 8a089c533..9e6c8a1b1 100644 --- a/stdlib/source/test/lux/abstract/comonad/cofree.lux +++ b/stdlib/source/test/lux/abstract/comonad/cofree.lux @@ -4,10 +4,9 @@ [abstract [functor (#+ Functor)] [comonad (#+ CoMonad)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." comonad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." comonad]]] [control ["//" continuation]] [data @@ -16,8 +15,8 @@ ["." sequence (#+ Sequence) ("#\." comonad)]]] [math ["." random]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: (injection value) (Injection (/.CoFree Sequence)) diff --git a/stdlib/source/test/lux/abstract/enum.lux b/stdlib/source/test/lux/abstract/enum.lux index 1cee8a211..5a923019c 100644 --- a/stdlib/source/test/lux/abstract/enum.lux +++ b/stdlib/source/test/lux/abstract/enum.lux @@ -12,8 +12,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux index cc6da47eb..520fa141c 100644 --- a/stdlib/source/test/lux/abstract/equivalence.lux +++ b/stdlib/source/test/lux/abstract/equivalence.lux @@ -3,10 +3,9 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - [functor - ["$." contravariant]]]}] + [\spec + [functor + ["$." contravariant]]]] [data ["." bit ("#\." equivalence)]] [math @@ -14,8 +13,8 @@ [number ["n" nat] ["i" int]]]] - {1 - ["." / (#+ Equivalence)]}) + [\\ + ["." / (#+ Equivalence)]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/fold.lux b/stdlib/source/test/lux/abstract/fold.lux index f4a61fa95..8165c29c3 100644 --- a/stdlib/source/test/lux/abstract/fold.lux +++ b/stdlib/source/test/lux/abstract/fold.lux @@ -10,8 +10,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ Fold)]}) + [\\ + ["." / (#+ Fold)]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/functor.lux b/stdlib/source/test/lux/abstract/functor.lux index cd56a2aba..05b72f73f 100644 --- a/stdlib/source/test/lux/abstract/functor.lux +++ b/stdlib/source/test/lux/abstract/functor.lux @@ -11,8 +11,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ Functor)]}) + [\\ + ["." / (#+ Functor)]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/functor/contravariant.lux b/stdlib/source/test/lux/abstract/functor/contravariant.lux index e6791756f..38bf62cbf 100644 --- a/stdlib/source/test/lux/abstract/functor/contravariant.lux +++ b/stdlib/source/test/lux/abstract/functor/contravariant.lux @@ -1,8 +1,8 @@ (.module: [lux #* ["_" test (#+ Test)]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/hash.lux b/stdlib/source/test/lux/abstract/hash.lux index d9ddadabe..f06a7dfc2 100644 --- a/stdlib/source/test/lux/abstract/hash.lux +++ b/stdlib/source/test/lux/abstract/hash.lux @@ -3,20 +3,19 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - [functor - ["$." contravariant]]]}] + [\spec + [functor + ["$." contravariant]]]] [data ["." bit ("#\." equivalence)]] [math ["." random] [number ["." nat]]]] - {1 + [\\ ["." / (#+ Hash) [// - [equivalence (#+ Equivalence)]]]}) + [equivalence (#+ Equivalence)]]]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/interval.lux b/stdlib/source/test/lux/abstract/interval.lux index ccd5562c8..db8eb86be 100644 --- a/stdlib/source/test/lux/abstract/interval.lux +++ b/stdlib/source/test/lux/abstract/interval.lux @@ -4,9 +4,8 @@ [abstract [monad (#+ do)] ["." order] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control [pipe (#+ case>)]] [data @@ -17,8 +16,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / (#+ Interval) ("\." equivalence)]}) + [\\ + ["." / (#+ Interval) ("\." equivalence)]]) (template [<name> <cmp>] [(def: #export <name> diff --git a/stdlib/source/test/lux/abstract/monad.lux b/stdlib/source/test/lux/abstract/monad.lux index 805e6478f..f66ee182f 100644 --- a/stdlib/source/test/lux/abstract/monad.lux +++ b/stdlib/source/test/lux/abstract/monad.lux @@ -9,8 +9,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ Monad do)]}) + [\\ + ["." / (#+ Monad do)]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/monad/free.lux b/stdlib/source/test/lux/abstract/monad/free.lux index 5f71df542..6afb3ed62 100644 --- a/stdlib/source/test/lux/abstract/monad/free.lux +++ b/stdlib/source/test/lux/abstract/monad/free.lux @@ -5,18 +5,17 @@ [functor (#+ Functor)] [apply (#+ Apply)] [monad (#+ Monad do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [data [collection ["." list ("#\." functor)]]] [math ["." random]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: injection (Injection (/.Free List)) diff --git a/stdlib/source/test/lux/abstract/monoid.lux b/stdlib/source/test/lux/abstract/monoid.lux index 81835537b..acd00b91a 100644 --- a/stdlib/source/test/lux/abstract/monoid.lux +++ b/stdlib/source/test/lux/abstract/monoid.lux @@ -8,10 +8,10 @@ [number ["." nat] ["." int]]]] - {1 + [\\ ["." / [// - [equivalence (#+ Equivalence)]]]}) + [equivalence (#+ Equivalence)]]]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/order.lux b/stdlib/source/test/lux/abstract/order.lux index 495db63e8..2dc09461c 100644 --- a/stdlib/source/test/lux/abstract/order.lux +++ b/stdlib/source/test/lux/abstract/order.lux @@ -3,20 +3,19 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - [functor - ["$." contravariant]]]}] + [\spec + [functor + ["$." contravariant]]]] [data ["." bit ("#\." equivalence)]] [math ["." random (#+ Random)] [number ["n" nat]]]] - {1 + [\\ ["." / [// - [equivalence (#+ Equivalence)]]]}) + [equivalence (#+ Equivalence)]]]]) (def: #export test Test diff --git a/stdlib/source/test/lux/abstract/predicate.lux b/stdlib/source/test/lux/abstract/predicate.lux index cf8ee5ad5..133fbdcba 100644 --- a/stdlib/source/test/lux/abstract/predicate.lux +++ b/stdlib/source/test/lux/abstract/predicate.lux @@ -4,11 +4,10 @@ [abstract [equivalence (#+ Equivalence)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." monoid] - [functor - ["$." contravariant]]]}] + [\spec + ["$." monoid] + [functor + ["$." contravariant]]]] [control ["." function]] [data @@ -19,8 +18,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: (multiple? factor) (-> Nat (/.Predicate Nat)) diff --git a/stdlib/source/test/lux/control/concatenative.lux b/stdlib/source/test/lux/control/concatenative.lux index 090fd799f..bfac126b0 100644 --- a/stdlib/source/test/lux/control/concatenative.lux +++ b/stdlib/source/test/lux/control/concatenative.lux @@ -16,8 +16,8 @@ ["i" int] ["r" rev] ["f" frac]]]] - {1 - ["." / (#+ word: => ||>)]}) + [\\ + ["." / (#+ word: => ||>)]]) (def: stack_shuffling Test diff --git a/stdlib/source/test/lux/control/concurrency/actor.lux b/stdlib/source/test/lux/control/concurrency/actor.lux index 487e4c48c..854a50814 100644 --- a/stdlib/source/test/lux/control/concurrency/actor.lux +++ b/stdlib/source/test/lux/control/concurrency/actor.lux @@ -17,12 +17,12 @@ ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / (#+ actor: message:) [// ["." atom (#+ Atom)] ["." promise (#+ Promise Resolver) ("#\." monad)] - ["." frp]]]}) + ["." frp]]]]) (exception: got_wrecked) diff --git a/stdlib/source/test/lux/control/concurrency/atom.lux b/stdlib/source/test/lux/control/concurrency/atom.lux index ab86747e5..b160f64e0 100644 --- a/stdlib/source/test/lux/control/concurrency/atom.lux +++ b/stdlib/source/test/lux/control/concurrency/atom.lux @@ -9,8 +9,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux index 2c724fa2a..659881a20 100644 --- a/stdlib/source/test/lux/control/concurrency/frp.lux +++ b/stdlib/source/test/lux/control/concurrency/frp.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control ["." try] ["." exception] @@ -20,11 +19,11 @@ ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / [// ["." promise (#+ Promise) ("#\." monad)] - ["." atom (#+ Atom atom)]]]}) + ["." atom (#+ Atom atom)]]]]) (def: injection (Injection /.Channel) diff --git a/stdlib/source/test/lux/control/concurrency/promise.lux b/stdlib/source/test/lux/control/concurrency/promise.lux index ee6ad2b43..16c60c508 100644 --- a/stdlib/source/test/lux/control/concurrency/promise.lux +++ b/stdlib/source/test/lux/control/concurrency/promise.lux @@ -4,11 +4,10 @@ ["@" target] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control [pipe (#+ case>)] ["." io]] @@ -21,10 +20,10 @@ ["n" nat] ["i" int] ["." i64]]]] - {1 + [\\ ["." / [// - ["." atom (#+ Atom)]]]}) + ["." atom (#+ Atom)]]]]) (def: injection (Injection /.Promise) diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux index a8e64124c..8924cf66f 100644 --- a/stdlib/source/test/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux @@ -25,8 +25,8 @@ ["." i64]]] [type ["." refinement]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: delay (for {@.js diff --git a/stdlib/source/test/lux/control/concurrency/stm.lux b/stdlib/source/test/lux/control/concurrency/stm.lux index 2eec0d207..6bbbc3f54 100644 --- a/stdlib/source/test/lux/control/concurrency/stm.lux +++ b/stdlib/source/test/lux/control/concurrency/stm.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract ["." monad (#+ Monad do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control ["." io (#+ IO)]] [data @@ -18,12 +17,12 @@ ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / [// ["." atom (#+ Atom atom)] ["." promise] - ["." frp (#+ Channel)]]]}) + ["." frp (#+ Channel)]]]]) (def: injection (Injection /.STM) diff --git a/stdlib/source/test/lux/control/concurrency/thread.lux b/stdlib/source/test/lux/control/concurrency/thread.lux index f1ea184f0..df005c4ac 100644 --- a/stdlib/source/test/lux/control/concurrency/thread.lux +++ b/stdlib/source/test/lux/control/concurrency/thread.lux @@ -13,11 +13,11 @@ [number ["n" nat] ["i" int]]]] - {1 + [\\ ["." / [// ["." atom (#+ Atom)] - ["." promise]]]}) + ["." promise]]]]) (def: #export test Test diff --git a/stdlib/source/test/lux/control/continuation.lux b/stdlib/source/test/lux/control/continuation.lux index 24aadf440..a85418f8a 100644 --- a/stdlib/source/test/lux/control/continuation.lux +++ b/stdlib/source/test/lux/control/continuation.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [data [collection ["." list]]] @@ -15,8 +14,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: injection (All [o] (Injection (All [i] (/.Cont i o)))) diff --git a/stdlib/source/test/lux/control/exception.lux b/stdlib/source/test/lux/control/exception.lux index c65a88fbf..e63a2b66e 100644 --- a/stdlib/source/test/lux/control/exception.lux +++ b/stdlib/source/test/lux/control/exception.lux @@ -10,10 +10,10 @@ ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / (#+ exception:) [// - ["." try (#+ Try)]]]}) + ["." try (#+ Try)]]]]) (exception: an-exception) (exception: another-exception) diff --git a/stdlib/source/test/lux/control/function.lux b/stdlib/source/test/lux/control/function.lux index f1730629c..6463e4c1c 100644 --- a/stdlib/source/test/lux/control/function.lux +++ b/stdlib/source/test/lux/control/function.lux @@ -4,17 +4,16 @@ [abstract [equivalence (#+ Equivalence)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." monoid]]}] + [\spec + ["$." monoid]]] [data ["." text ("#!." equivalence)]] [math ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]} + [\\ + ["." /]] ["." / #_ ["#." contract] ["#." memo] diff --git a/stdlib/source/test/lux/control/function/contract.lux b/stdlib/source/test/lux/control/function/contract.lux index 0e31427ee..e1b06a325 100644 --- a/stdlib/source/test/lux/control/function/contract.lux +++ b/stdlib/source/test/lux/control/function/contract.lux @@ -9,8 +9,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/control/function/memo.lux b/stdlib/source/test/lux/control/function/memo.lux index fdf9119f6..87cf14b0b 100644 --- a/stdlib/source/test/lux/control/function/memo.lux +++ b/stdlib/source/test/lux/control/function/memo.lux @@ -19,10 +19,10 @@ [time ["." instant] ["." duration (#+ Duration)]]] - {1 + [\\ ["." / ["/#" // #_ - ["#" mixin]]]}) + ["#" mixin]]]]) (def: (fibonacci recur input) (/.Memo Nat Nat) diff --git a/stdlib/source/test/lux/control/function/mixin.lux b/stdlib/source/test/lux/control/function/mixin.lux index ed6ba8591..35cd36027 100644 --- a/stdlib/source/test/lux/control/function/mixin.lux +++ b/stdlib/source/test/lux/control/function/mixin.lux @@ -5,9 +5,8 @@ [equivalence (#+ Equivalence)] [predicate (#+ Predicate)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." monoid]]}] + [\spec + ["$." monoid]]] [control ["." state (#+ State)]] [data @@ -18,8 +17,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/control/function/mutual.lux b/stdlib/source/test/lux/control/function/mutual.lux index e645e282b..120413e5a 100644 --- a/stdlib/source/test/lux/control/function/mutual.lux +++ b/stdlib/source/test/lux/control/function/mutual.lux @@ -11,8 +11,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: test_let Test diff --git a/stdlib/source/test/lux/control/io.lux b/stdlib/source/test/lux/control/io.lux index 30e4656c8..a45fd28a9 100644 --- a/stdlib/source/test/lux/control/io.lux +++ b/stdlib/source/test/lux/control/io.lux @@ -3,19 +3,18 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [math ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / (#+ IO) [// - ["." function]]]}) + ["." function]]]]) (def: injection (Injection IO) diff --git a/stdlib/source/test/lux/control/parser.lux b/stdlib/source/test/lux/control/parser.lux index 82ce4e6a4..81155f605 100644 --- a/stdlib/source/test/lux/control/parser.lux +++ b/stdlib/source/test/lux/control/parser.lux @@ -4,11 +4,10 @@ [abstract [monad (#+ do)] [equivalence (#+ Equivalence)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control ["." try (#+ Try)] [parser @@ -25,8 +24,8 @@ [macro [syntax (#+ syntax:)] ["." code]]] - {1 - ["." / (#+ Parser)]} + [\\ + ["." / (#+ Parser)]] ["." / #_ ["#." analysis] ["#." binary] diff --git a/stdlib/source/test/lux/control/parser/analysis.lux b/stdlib/source/test/lux/control/parser/analysis.lux index 756ef3d21..49e7b0478 100644 --- a/stdlib/source/test/lux/control/parser/analysis.lux +++ b/stdlib/source/test/lux/control/parser/analysis.lux @@ -28,8 +28,8 @@ [language [lux ["." analysis]]]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (template: (!expect <expectation> <computation>) (case <computation> diff --git a/stdlib/source/test/lux/control/parser/binary.lux b/stdlib/source/test/lux/control/parser/binary.lux index 5311ccdb3..289a80ba9 100644 --- a/stdlib/source/test/lux/control/parser/binary.lux +++ b/stdlib/source/test/lux/control/parser/binary.lux @@ -37,8 +37,8 @@ ["." int] ["." rev] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (template: (!expect <expectation> <computation>) (case <computation> diff --git a/stdlib/source/test/lux/control/parser/cli.lux b/stdlib/source/test/lux/control/parser/cli.lux index 41ffb4e23..97ffd5e0e 100644 --- a/stdlib/source/test/lux/control/parser/cli.lux +++ b/stdlib/source/test/lux/control/parser/cli.lux @@ -14,8 +14,8 @@ ["." random] [number ["n" nat ("#\." decimal)]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/control/parser/code.lux b/stdlib/source/test/lux/control/parser/code.lux index 0a8311fb3..987f0ad9d 100644 --- a/stdlib/source/test/lux/control/parser/code.lux +++ b/stdlib/source/test/lux/control/parser/code.lux @@ -22,8 +22,8 @@ ["." int] ["." rev] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/control/parser/environment.lux b/stdlib/source/test/lux/control/parser/environment.lux index 6a210f2a0..48b7bca54 100644 --- a/stdlib/source/test/lux/control/parser/environment.lux +++ b/stdlib/source/test/lux/control/parser/environment.lux @@ -14,9 +14,9 @@ ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / - ["/#" // ("#\." monad)]]}) + ["/#" // ("#\." monad)]]]) (def: #export test Test diff --git a/stdlib/source/test/lux/control/parser/json.lux b/stdlib/source/test/lux/control/parser/json.lux index 4d8dc0b8e..0a4adcc83 100644 --- a/stdlib/source/test/lux/control/parser/json.lux +++ b/stdlib/source/test/lux/control/parser/json.lux @@ -24,8 +24,8 @@ [number ["n" nat] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/control/parser/synthesis.lux b/stdlib/source/test/lux/control/parser/synthesis.lux index 7916f7217..064891f2c 100644 --- a/stdlib/source/test/lux/control/parser/synthesis.lux +++ b/stdlib/source/test/lux/control/parser/synthesis.lux @@ -28,8 +28,8 @@ [lux [analysis (#+ Environment)] ["." synthesis (#+ Synthesis)]]]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/control/parser/text.lux b/stdlib/source/test/lux/control/parser/text.lux index 6b2152320..0ccad4208 100644 --- a/stdlib/source/test/lux/control/parser/text.lux +++ b/stdlib/source/test/lux/control/parser/text.lux @@ -25,10 +25,10 @@ ["n" nat]]] [macro ["." code]]] - {1 + [\\ ["." / ["<>" // - ["<c>" code]]]}) + ["<c>" code]]]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/control/parser/tree.lux b/stdlib/source/test/lux/control/parser/tree.lux index 5dbe726ea..f4daaf751 100644 --- a/stdlib/source/test/lux/control/parser/tree.lux +++ b/stdlib/source/test/lux/control/parser/tree.lux @@ -14,9 +14,9 @@ ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / - ["/#" //]]}) + ["/#" //]]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/control/parser/type.lux b/stdlib/source/test/lux/control/parser/type.lux index 5390498c7..d2a9bce32 100644 --- a/stdlib/source/test/lux/control/parser/type.lux +++ b/stdlib/source/test/lux/control/parser/type.lux @@ -15,9 +15,9 @@ [number ["n" nat]]] ["." type ("#\." equivalence)]] - {1 + [\\ ["." / - ["/#" //]]}) + ["/#" //]]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/control/parser/xml.lux b/stdlib/source/test/lux/control/parser/xml.lux index c2d0ac4e2..116f948da 100644 --- a/stdlib/source/test/lux/control/parser/xml.lux +++ b/stdlib/source/test/lux/control/parser/xml.lux @@ -21,9 +21,9 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 + [\\ ["." / - ["/#" // ("#\." monad)]]}) + ["/#" // ("#\." monad)]]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/control/pipe.lux b/stdlib/source/test/lux/control/pipe.lux index a9adcbf2e..61d7aab25 100644 --- a/stdlib/source/test/lux/control/pipe.lux +++ b/stdlib/source/test/lux/control/pipe.lux @@ -12,8 +12,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/control/reader.lux b/stdlib/source/test/lux/control/reader.lux index 11c8b8855..9302a014c 100644 --- a/stdlib/source/test/lux/control/reader.lux +++ b/stdlib/source/test/lux/control/reader.lux @@ -3,19 +3,18 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [math ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / (#+ Reader) [// - ["." io (#+ IO)]]]}) + ["." io (#+ IO)]]]]) (def: (injection value) (Injection (All [a r] (Reader r a))) diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux index 3fb0d1d82..5e21b3a37 100644 --- a/stdlib/source/test/lux/control/region.lux +++ b/stdlib/source/test/lux/control/region.lux @@ -8,11 +8,10 @@ [apply (#+ Apply)] ["." monad (#+ Monad do)] ["." enum] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control ["." try (#+ Try)]] [data @@ -22,11 +21,11 @@ ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / (#+ Region) [// ["." thread (#+ Thread)] - ["." exception (#+ Exception exception:)]]]}) + ["." exception (#+ Exception exception:)]]]]) (exception: oops) diff --git a/stdlib/source/test/lux/control/remember.lux b/stdlib/source/test/lux/control/remember.lux index 6e8c96118..17c59b8a3 100644 --- a/stdlib/source/test/lux/control/remember.lux +++ b/stdlib/source/test/lux/control/remember.lux @@ -24,8 +24,8 @@ ["." macro ["." code] ["." syntax (#+ syntax:)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: deadline (Random Date) random.date) (def: message (Random Text) (random\map %.bit random.bit)) diff --git a/stdlib/source/test/lux/control/security/capability.lux b/stdlib/source/test/lux/control/security/capability.lux index 7804cda68..ef3d64d05 100644 --- a/stdlib/source/test/lux/control/security/capability.lux +++ b/stdlib/source/test/lux/control/security/capability.lux @@ -11,8 +11,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (/.capability: (Can-Shift a) (can-shift [a Nat] [a Nat])) diff --git a/stdlib/source/test/lux/control/security/policy.lux b/stdlib/source/test/lux/control/security/policy.lux index ef0454553..0cf9729dd 100644 --- a/stdlib/source/test/lux/control/security/policy.lux +++ b/stdlib/source/test/lux/control/security/policy.lux @@ -4,19 +4,18 @@ [abstract [hash (#+ Hash)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [data ["." text ("#\." equivalence)]] [math ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ Context Privacy Can_Conceal Can_Reveal Privilege Private)]}) + [\\ + ["." / (#+ Context Privacy Can_Conceal Can_Reveal Privilege Private)]]) (def: (injection can_conceal) (All [label] diff --git a/stdlib/source/test/lux/control/state.lux b/stdlib/source/test/lux/control/state.lux index a79bfc84c..6d6626522 100644 --- a/stdlib/source/test/lux/control/state.lux +++ b/stdlib/source/test/lux/control/state.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control [pipe (#+ let>)] ["." io]] @@ -17,8 +16,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ State)]}) + [\\ + ["." / (#+ State)]]) (def: (with-conditions [state output] computation) (-> [Nat Nat] (State Nat Nat) Bit) diff --git a/stdlib/source/test/lux/control/thread.lux b/stdlib/source/test/lux/control/thread.lux index 5fac55739..d2369a0bc 100644 --- a/stdlib/source/test/lux/control/thread.lux +++ b/stdlib/source/test/lux/control/thread.lux @@ -3,19 +3,18 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [math ["." random] [number ["n" nat]]]] - {1 + [\\ ["." / (#+ Thread) [// - ["." io]]]}) + ["." io]]]]) (def: (injection value) (Injection (All [a !] (Thread ! a))) diff --git a/stdlib/source/test/lux/control/try.lux b/stdlib/source/test/lux/control/try.lux index 6f1e22a7c..c2b00360f 100644 --- a/stdlib/source/test/lux/control/try.lux +++ b/stdlib/source/test/lux/control/try.lux @@ -3,12 +3,11 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad] - ["$." equivalence]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad] + ["$." equivalence]]] [control pipe ["." io]] @@ -18,8 +17,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / (#+ Try)]}) + [\\ + ["." / (#+ Try)]]) (def: injection (Injection Try) diff --git a/stdlib/source/test/lux/control/writer.lux b/stdlib/source/test/lux/control/writer.lux index 843bab32b..1c007d9b1 100644 --- a/stdlib/source/test/lux/control/writer.lux +++ b/stdlib/source/test/lux/control/writer.lux @@ -5,11 +5,10 @@ [equivalence (#+ Equivalence)] [monoid (#+ Monoid)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control ["." io]] [data @@ -19,8 +18,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / (#+ Writer)]}) + [\\ + ["." / (#+ Writer)]]) (def: (injection monoid value) (All [w] (-> (Monoid w) (Injection (Writer w)))) diff --git a/stdlib/source/test/lux/data/binary.lux b/stdlib/source/test/lux/data/binary.lux index 11d4a8889..ba5e36662 100644 --- a/stdlib/source/test/lux/data/binary.lux +++ b/stdlib/source/test/lux/data/binary.lux @@ -4,10 +4,9 @@ [abstract ["." monad (#+ do)] ["." enum] - {[0 #spec] - [/ - ["$." equivalence] - ["$." monoid]]}] + [\spec + ["$." equivalence] + ["$." monoid]]] [control ["." try (#+ Try)] ["." exception (#+ Exception)]] @@ -19,8 +18,8 @@ [number ["." i64] ["n" nat]]]] - {1 - ["." / (#+ Binary)]}) + [\\ + ["." / (#+ Binary)]]) (def: (succeed result) (-> (Try Bit) Bit) diff --git a/stdlib/source/test/lux/data/bit.lux b/stdlib/source/test/lux/data/bit.lux index 8fa84d273..341da9beb 100644 --- a/stdlib/source/test/lux/data/bit.lux +++ b/stdlib/source/test/lux/data/bit.lux @@ -5,16 +5,15 @@ ["." random]] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." monoid] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." monoid] + ["$." codec]]] [control ["." function]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/data/collection/array.lux b/stdlib/source/test/lux/data/collection/array.lux index b2757b863..e99478ee8 100644 --- a/stdlib/source/test/lux/data/collection/array.lux +++ b/stdlib/source/test/lux/data/collection/array.lux @@ -3,12 +3,11 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." monoid] - ["$." fold] - ["$." functor (#+ Injection)]]}] + [\spec + ["$." equivalence] + ["$." monoid] + ["$." fold] + ["$." functor (#+ Injection)]]] [data ["." bit] ["." maybe] @@ -19,8 +18,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / (#+ Array)]}) + [\\ + ["." / (#+ Array)]]) (def: injection (Injection Array) diff --git a/stdlib/source/test/lux/data/collection/bits.lux b/stdlib/source/test/lux/data/collection/bits.lux index f4b780864..258c84107 100644 --- a/stdlib/source/test/lux/data/collection/bits.lux +++ b/stdlib/source/test/lux/data/collection/bits.lux @@ -4,15 +4,14 @@ [abstract [monad (#+ do)] ["." predicate] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / (#+ Bits)]}) + [\\ + ["." / (#+ Bits)]]) (def: (size min max) (-> Nat Nat (Random Nat)) diff --git a/stdlib/source/test/lux/data/collection/dictionary.lux b/stdlib/source/test/lux/data/collection/dictionary.lux index d4ba74ed7..d68b421d9 100644 --- a/stdlib/source/test/lux/data/collection/dictionary.lux +++ b/stdlib/source/test/lux/data/collection/dictionary.lux @@ -4,10 +4,9 @@ [abstract [hash (#+ Hash)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." functor (#+ Injection)]]}] + [\spec + ["$." equivalence] + ["$." functor (#+ Injection)]]] [control ["." try] ["." exception]] @@ -20,8 +19,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: injection (Injection (/.Dictionary Nat)) diff --git a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux index 778726329..a004e5c97 100644 --- a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux +++ b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux @@ -5,9 +5,8 @@ [monad (#+ do)] [equivalence (#+ Equivalence)] [order (#+ Order)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [data ["." product] ["." bit ("#\." equivalence)] @@ -19,8 +18,8 @@ ["." random (#+ Random) ("#\." monad)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (dictionary order gen_key gen_value size) (All [k v] diff --git a/stdlib/source/test/lux/data/collection/dictionary/plist.lux b/stdlib/source/test/lux/data/collection/dictionary/plist.lux index 7473aec04..4811b1162 100644 --- a/stdlib/source/test/lux/data/collection/dictionary/plist.lux +++ b/stdlib/source/test/lux/data/collection/dictionary/plist.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [data ["." bit ("#\." equivalence)] ["." maybe ("#\." monad)] @@ -17,8 +16,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (random size gen_key gen_value) (All [v] diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux index 3efc42254..625ce2bad 100644 --- a/stdlib/source/test/lux/data/collection/list.lux +++ b/stdlib/source/test/lux/data/collection/list.lux @@ -4,15 +4,14 @@ [abstract [monad (#+ do)] ["." enum] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." monoid] - ["$." fold] - ["$." functor] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." monoid] + ["$." fold] + ["$." functor] + ["$." apply] + ["$." monad]]] [control pipe ["." io] @@ -29,8 +28,8 @@ [number ["n" nat] ["." int]]]] - {1 - ["." / ("#\." monad)]}) + [\\ + ["." / ("#\." monad)]]) (def: bounded_size (Random Nat) diff --git a/stdlib/source/test/lux/data/collection/queue.lux b/stdlib/source/test/lux/data/collection/queue.lux index b246f8187..8ddd0533a 100644 --- a/stdlib/source/test/lux/data/collection/queue.lux +++ b/stdlib/source/test/lux/data/collection/queue.lux @@ -3,10 +3,9 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." functor (#+ Injection)]]}] + [\spec + ["$." equivalence] + ["$." functor (#+ Injection)]]] [data ["." bit ("#\." equivalence)] [collection @@ -16,8 +15,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: injection (Injection /.Queue) diff --git a/stdlib/source/test/lux/data/collection/queue/priority.lux b/stdlib/source/test/lux/data/collection/queue/priority.lux index 4e99d2a3a..653e0ca52 100644 --- a/stdlib/source/test/lux/data/collection/queue/priority.lux +++ b/stdlib/source/test/lux/data/collection/queue/priority.lux @@ -10,8 +10,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / (#+ Queue)]}) + [\\ + ["." / (#+ Queue)]]) (def: #export (random size) (-> Nat (Random (Queue Nat))) diff --git a/stdlib/source/test/lux/data/collection/row.lux b/stdlib/source/test/lux/data/collection/row.lux index 55d9492ff..e523fd656 100644 --- a/stdlib/source/test/lux/data/collection/row.lux +++ b/stdlib/source/test/lux/data/collection/row.lux @@ -3,14 +3,13 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." monoid] - ["$." fold] - ["$." functor (#+ Injection)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." equivalence] + ["$." monoid] + ["$." fold] + ["$." functor (#+ Injection)] + ["$." apply] + ["$." monad]]] [control ["." try (#+ Try)] ["." exception]] @@ -23,8 +22,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." / ("#\." monad)]}) + [\\ + ["." / ("#\." monad)]]) (def: signatures Test diff --git a/stdlib/source/test/lux/data/collection/sequence.lux b/stdlib/source/test/lux/data/collection/sequence.lux index d10ee90cc..1d5e111af 100644 --- a/stdlib/source/test/lux/data/collection/sequence.lux +++ b/stdlib/source/test/lux/data/collection/sequence.lux @@ -5,10 +5,9 @@ [monad (#+ do)] [equivalence (#+ Equivalence)] ["." enum] - {[0 #spec] - [/ - ["$." functor] - ["$." comonad]]}] + [\spec + ["$." functor] + ["$." comonad]]] [data ["." text ["%" format (#+ format)]] @@ -18,8 +17,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (implementation: (equivalence super) (All [a] (-> (Equivalence a) (Equivalence (/.Sequence a)))) diff --git a/stdlib/source/test/lux/data/collection/set.lux b/stdlib/source/test/lux/data/collection/set.lux index a0d7e446b..f577ce59f 100644 --- a/stdlib/source/test/lux/data/collection/set.lux +++ b/stdlib/source/test/lux/data/collection/set.lux @@ -4,11 +4,10 @@ [abstract [hash (#+ Hash)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." monoid]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." monoid]]] [data ["." bit ("#\." equivalence)] [collection @@ -17,8 +16,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / ("\." equivalence)]}) + [\\ + ["." / ("\." equivalence)]]) (def: gen_nat (Random Nat) diff --git a/stdlib/source/test/lux/data/collection/set/multi.lux b/stdlib/source/test/lux/data/collection/set/multi.lux index feea35e2f..4e1cd4f48 100644 --- a/stdlib/source/test/lux/data/collection/set/multi.lux +++ b/stdlib/source/test/lux/data/collection/set/multi.lux @@ -5,10 +5,9 @@ [hash (#+ Hash)] [monad (#+ do)] ["." predicate] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash]]}] + [\spec + ["$." equivalence] + ["$." hash]]] [data ["." bit ("#\." equivalence)] [collection @@ -18,8 +17,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: count (Random Nat) diff --git a/stdlib/source/test/lux/data/collection/set/ordered.lux b/stdlib/source/test/lux/data/collection/set/ordered.lux index daf924012..385bc3c4a 100644 --- a/stdlib/source/test/lux/data/collection/set/ordered.lux +++ b/stdlib/source/test/lux/data/collection/set/ordered.lux @@ -4,9 +4,8 @@ [abstract [monad (#+ do)] [order (#+ Order)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [data ["." bit ("#\." equivalence)] [collection @@ -15,9 +14,9 @@ ["." random (#+ Random) ("#\." monad)] [number ["n" nat]]]] - {1 + [\\ ["." / (#+ Set) - ["." //]]}) + ["." //]]]) (def: size (random.Random Nat) diff --git a/stdlib/source/test/lux/data/collection/stack.lux b/stdlib/source/test/lux/data/collection/stack.lux index ae6fbabf6..317911b6b 100644 --- a/stdlib/source/test/lux/data/collection/stack.lux +++ b/stdlib/source/test/lux/data/collection/stack.lux @@ -3,10 +3,9 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." functor (#+ Injection)]]}] + [\spec + ["$." equivalence] + ["$." functor (#+ Injection)]]] [data ["." maybe] ["." bit ("#\." equivalence)]] @@ -14,8 +13,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: (injection value) (Injection /.Stack) diff --git a/stdlib/source/test/lux/data/collection/tree.lux b/stdlib/source/test/lux/data/collection/tree.lux index b7fea5e4f..91817180d 100644 --- a/stdlib/source/test/lux/data/collection/tree.lux +++ b/stdlib/source/test/lux/data/collection/tree.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract ["." monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." fold] - ["$." functor]]}] + [\spec + ["$." equivalence] + ["$." fold] + ["$." functor]]] [data ["." product] [collection @@ -16,8 +15,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / (#+ Tree)]}) + [\\ + ["." / (#+ Tree)]]) (def: #export (tree gen-value) (All [a] (-> (Random a) (Random [Nat (Tree a)]))) diff --git a/stdlib/source/test/lux/data/collection/tree/finger.lux b/stdlib/source/test/lux/data/collection/tree/finger.lux index 55c3d9118..2c4c83466 100644 --- a/stdlib/source/test/lux/data/collection/tree/finger.lux +++ b/stdlib/source/test/lux/data/collection/tree/finger.lux @@ -13,8 +13,8 @@ [number ["n" nat]]] [type (#+ :by_example)]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: builder (/.builder text.monoid)) diff --git a/stdlib/source/test/lux/data/collection/tree/zipper.lux b/stdlib/source/test/lux/data/collection/tree/zipper.lux index 929572a37..6a7832736 100644 --- a/stdlib/source/test/lux/data/collection/tree/zipper.lux +++ b/stdlib/source/test/lux/data/collection/tree/zipper.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." functor] - ["$." comonad]]}] + [\spec + ["$." equivalence] + ["$." functor] + ["$." comonad]]] [control pipe] [data @@ -21,9 +20,9 @@ [number ["n" nat]]]] ["." //] - {1 + [\\ ["." / (#+ Zipper) - ["tree" //]]}) + ["tree" //]]]) (def: move Test diff --git a/stdlib/source/test/lux/data/color.lux b/stdlib/source/test/lux/data/color.lux index 50b1c1fd6..2877af081 100644 --- a/stdlib/source/test/lux/data/color.lux +++ b/stdlib/source/test/lux/data/color.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." monoid]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." monoid]]] [data [collection ["." list]]] @@ -20,8 +19,8 @@ ["." int] ["f" frac] ["r" rev]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export random (Random /.Color) diff --git a/stdlib/source/test/lux/data/color/named.lux b/stdlib/source/test/lux/data/color/named.lux index 14ec96329..bddd74593 100644 --- a/stdlib/source/test/lux/data/color/named.lux +++ b/stdlib/source/test/lux/data/color/named.lux @@ -13,9 +13,9 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 + [\\ ["." / - ["/#" //]]}) + ["/#" //]]]) (with_expansions [<colors> (as_is [letter/a [/.alice_blue diff --git a/stdlib/source/test/lux/data/format/binary.lux b/stdlib/source/test/lux/data/format/binary.lux index c667c6070..8912ae845 100644 --- a/stdlib/source/test/lux/data/format/binary.lux +++ b/stdlib/source/test/lux/data/format/binary.lux @@ -4,15 +4,14 @@ [abstract [equivalence (#+ Equivalence)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." monoid]]}] + [\spec + ["$." monoid]]] [data ["." binary ("#\." equivalence)]] [math ["." random (#+ Random)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (implementation: equivalence (Equivalence /.Specification) diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux index 091f64b67..5e425db79 100644 --- a/stdlib/source/test/lux/data/format/json.lux +++ b/stdlib/source/test/lux/data/format/json.lux @@ -4,10 +4,9 @@ ["." meta] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." codec]]] [control ["." try ("#\." functor)]] [data @@ -28,8 +27,8 @@ ["." macro ["." syntax (#+ syntax:)] ["." code]]] - {1 - ["." / (#+ JSON) ("\." equivalence)]}) + [\\ + ["." / (#+ JSON) ("\." equivalence)]]) (def: #export random (Random /.JSON) diff --git a/stdlib/source/test/lux/data/format/tar.lux b/stdlib/source/test/lux/data/format/tar.lux index c7250a025..540eb2af1 100644 --- a/stdlib/source/test/lux/data/format/tar.lux +++ b/stdlib/source/test/lux/data/format/tar.lux @@ -32,8 +32,8 @@ [number ["n" nat] ["i" int]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: path Test diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux index bd3b45216..95a06127f 100644 --- a/stdlib/source/test/lux/data/format/xml.lux +++ b/stdlib/source/test/lux/data/format/xml.lux @@ -3,10 +3,9 @@ ["_" test (#+ Test)] [abstract [monad (#+ Monad do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." codec]]] [control pipe ["." try] @@ -24,8 +23,8 @@ ["." random (#+ Random) ("#\." monad)] [number ["n" nat]]]] - {1 - ["." / (#+ XML)]}) + [\\ + ["." / (#+ XML)]]) (def: char_range Text diff --git a/stdlib/source/test/lux/data/identity.lux b/stdlib/source/test/lux/data/identity.lux index a68e11511..918eb10f6 100644 --- a/stdlib/source/test/lux/data/identity.lux +++ b/stdlib/source/test/lux/data/identity.lux @@ -3,14 +3,13 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad] - ["$." comonad]]}]] - {1 - ["." / (#+ Identity)]}) + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad] + ["$." comonad]]]] + [\\ + ["." / (#+ Identity)]]) (def: injection (Injection Identity) diff --git a/stdlib/source/test/lux/data/lazy.lux b/stdlib/source/test/lux/data/lazy.lux index 86d28d753..87d77ca68 100644 --- a/stdlib/source/test/lux/data/lazy.lux +++ b/stdlib/source/test/lux/data/lazy.lux @@ -3,20 +3,19 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad] - ["$." equivalence]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad] + ["$." equivalence]]] [data ["." product]] [math ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / (#+ Lazy)]}) + [\\ + ["." / (#+ Lazy)]]) (def: injection (Injection Lazy) diff --git a/stdlib/source/test/lux/data/maybe.lux b/stdlib/source/test/lux/data/maybe.lux index 017d0799b..eea0e3f32 100644 --- a/stdlib/source/test/lux/data/maybe.lux +++ b/stdlib/source/test/lux/data/maybe.lux @@ -3,14 +3,13 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." monoid] - ["$." functor] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." monoid] + ["$." functor] + ["$." apply] + ["$." monad]]] [control ["." io ("#\." monad)] pipe] @@ -22,8 +21,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." / ("#\." monoid monad)]}) + [\\ + ["." / ("#\." monoid monad)]]) (def: #export test Test diff --git a/stdlib/source/test/lux/data/name.lux b/stdlib/source/test/lux/data/name.lux index e413afc95..8c2722466 100644 --- a/stdlib/source/test/lux/data/name.lux +++ b/stdlib/source/test/lux/data/name.lux @@ -3,12 +3,11 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." order] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." order] + ["$." codec]]] [control pipe] [data @@ -17,8 +16,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (random module_size short_size) (-> Nat Nat (Random Name)) diff --git a/stdlib/source/test/lux/data/product.lux b/stdlib/source/test/lux/data/product.lux index c20e7f5e9..3e8124dde 100644 --- a/stdlib/source/test/lux/data/product.lux +++ b/stdlib/source/test/lux/data/product.lux @@ -3,16 +3,15 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random] [number ["n" nat] ["i" int]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/data/sum.lux b/stdlib/source/test/lux/data/sum.lux index 3b37382ae..6725a7a24 100644 --- a/stdlib/source/test/lux/data/sum.lux +++ b/stdlib/source/test/lux/data/sum.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control pipe] [data @@ -17,8 +16,8 @@ [number ["n" nat] ["i" int]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux index 345dbdc26..1838206a8 100644 --- a/stdlib/source/test/lux/data/text.lux +++ b/stdlib/source/test/lux/data/text.lux @@ -3,12 +3,11 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." order] - ["$." monoid]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." order] + ["$." monoid]]] [control pipe] [data @@ -28,8 +27,8 @@ ["#." escape] ["#." unicode #_ ["#" set]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: bounded_size (random.Random Nat) diff --git a/stdlib/source/test/lux/data/text/buffer.lux b/stdlib/source/test/lux/data/text/buffer.lux index 852a3c951..551d7943f 100644 --- a/stdlib/source/test/lux/data/text/buffer.lux +++ b/stdlib/source/test/lux/data/text/buffer.lux @@ -10,8 +10,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: part (Random Text) diff --git a/stdlib/source/test/lux/data/text/encoding.lux b/stdlib/source/test/lux/data/text/encoding.lux index b4e47d7ee..981fb2d22 100644 --- a/stdlib/source/test/lux/data/text/encoding.lux +++ b/stdlib/source/test/lux/data/text/encoding.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." codec]]}] + [\spec + ["$." codec]]] [control ["." try]] [data @@ -20,8 +19,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]} + [\\ + ["." /]] ["." / #_ ["#." utf8]]) diff --git a/stdlib/source/test/lux/data/text/encoding/utf8.lux b/stdlib/source/test/lux/data/text/encoding/utf8.lux index 3d376811d..7f83f745d 100644 --- a/stdlib/source/test/lux/data/text/encoding/utf8.lux +++ b/stdlib/source/test/lux/data/text/encoding/utf8.lux @@ -2,15 +2,14 @@ [lux #* ["_" test (#+ Test)] [abstract - {[0 #spec] - [/ - ["$." codec]]}] + [\spec + ["$." codec]]] [data ["." text]] [math ["." random (#+ Random)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/data/text/escape.lux b/stdlib/source/test/lux/data/text/escape.lux index e7f31f9d7..7cef235cd 100644 --- a/stdlib/source/test/lux/data/text/escape.lux +++ b/stdlib/source/test/lux/data/text/escape.lux @@ -24,11 +24,11 @@ ["." random (#+ Random)] [number (#+ hex) ["n" nat]]]] - {1 + [\\ ["." / [// ["." unicode #_ - ["#" set]]]]}) + ["#" set]]]]]) (def: (range max min) (-> Char Char (Random Char)) diff --git a/stdlib/source/test/lux/data/text/format.lux b/stdlib/source/test/lux/data/text/format.lux index 1f0c2c9e6..db1615631 100644 --- a/stdlib/source/test/lux/data/text/format.lux +++ b/stdlib/source/test/lux/data/text/format.lux @@ -5,9 +5,8 @@ [monad (#+ do)] [equivalence (#+ Equivalence)] [functor - {[0 #spec] - [/ - ["$." contravariant]]}]] + [\spec + ["$." contravariant]]]] [control ["." try]] [data @@ -47,8 +46,8 @@ ["#." type] [macro ["#." code]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (implementation: (equivalence example) (All [a] (-> a (Equivalence (/.Format a)))) diff --git a/stdlib/source/test/lux/data/text/regex.lux b/stdlib/source/test/lux/data/text/regex.lux index fd82fdee5..481dcd17f 100644 --- a/stdlib/source/test/lux/data/text/regex.lux +++ b/stdlib/source/test/lux/data/text/regex.lux @@ -17,8 +17,8 @@ ["." random]] ["." macro [syntax (#+ syntax:)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: (should_pass regex input) (-> (Parser Text) Text Bit) diff --git a/stdlib/source/test/lux/data/text/unicode/block.lux b/stdlib/source/test/lux/data/text/unicode/block.lux index 7f77aa34f..8a41eeca2 100644 --- a/stdlib/source/test/lux/data/text/unicode/block.lux +++ b/stdlib/source/test/lux/data/text/unicode/block.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." monoid]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." monoid]]] [data ["." text] [collection @@ -19,8 +18,8 @@ ["." random (#+ Random)] [number (#+ hex) ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export random (Random /.Block) diff --git a/stdlib/source/test/lux/data/text/unicode/set.lux b/stdlib/source/test/lux/data/text/unicode/set.lux index c63239cad..0fc394a63 100644 --- a/stdlib/source/test/lux/data/text/unicode/set.lux +++ b/stdlib/source/test/lux/data/text/unicode/set.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [data ["." product] ["." bit ("#\." equivalence)] @@ -18,10 +17,10 @@ ["." / #_ ["/#" // #_ ["#." block]]] - {1 + [\\ ["." / [// - ["." block]]]}) + ["." block]]]]) (def: #export random (Random /.Set) diff --git a/stdlib/source/test/lux/debug.lux b/stdlib/source/test/lux/debug.lux index dbed9a05f..29e4493f8 100644 --- a/stdlib/source/test/lux/debug.lux +++ b/stdlib/source/test/lux/debug.lux @@ -28,8 +28,8 @@ [duration (#+ Duration)] [month (#+ Month)] [day (#+ Day)]]] - {1 - ["." /]} + [\\ + ["." /]] ["$." // #_ ["#." type] [data diff --git a/stdlib/source/test/lux/extension.lux b/stdlib/source/test/lux/extension.lux index e20189fa3..c784788ba 100644 --- a/stdlib/source/test/lux/extension.lux +++ b/stdlib/source/test/lux/extension.lux @@ -40,8 +40,8 @@ [analysis ["." type]]]]]]] ["_" test (#+ Test)]] - {1 - ["." / (#+ analysis: synthesis: generation: directive:)]}) + [\\ + ["." / (#+ analysis: synthesis: generation: directive:)]]) (def: my_analysis "my analysis") (def: my_synthesis "my synthesis") diff --git a/stdlib/source/test/lux/ffi.js.lux b/stdlib/source/test/lux/ffi.js.lux index 8af4be0fd..57a8332e2 100644 --- a/stdlib/source/test/lux/ffi.js.lux +++ b/stdlib/source/test/lux/ffi.js.lux @@ -12,8 +12,8 @@ [number ["." nat] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (/.import: Uint8Array) diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux index 0c618bfac..86e43a9f3 100644 --- a/stdlib/source/test/lux/ffi.jvm.lux +++ b/stdlib/source/test/lux/ffi.jvm.lux @@ -11,8 +11,8 @@ ["n" nat] ["i" int]]] ["_" test (#+ Test)]] - {1 - ["." /]}) + [\\ + ["." /]]) (/.import: (java/util/concurrent/Callable a)) diff --git a/stdlib/source/test/lux/ffi.lua.lux b/stdlib/source/test/lux/ffi.lua.lux index 0b6cac81b..b05973bb8 100644 --- a/stdlib/source/test/lux/ffi.lua.lux +++ b/stdlib/source/test/lux/ffi.lua.lux @@ -12,8 +12,8 @@ [number ["." nat] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/ffi.old.lux b/stdlib/source/test/lux/ffi.old.lux index 37eb2c103..b7a4ba099 100644 --- a/stdlib/source/test/lux/ffi.old.lux +++ b/stdlib/source/test/lux/ffi.old.lux @@ -1,20 +1,25 @@ (.module: [lux #* - [abstract/monad (#+ Monad do)] + ["_" test (#+ Test)] + [abstract + [equivalence (#+ Equivalence)] + [monad (#+ do)]] [control - pipe] + [pipe (#+ case>)]] [data - ["." text ("#\." equivalence)]] + ["." text ("#\." equivalence) + ["%" format (#+ format)]]] + [macro + ["." template]] [math - ["r" random] + ["." random] [number ["n" nat] - ["i" int]]] - ["_" test (#+ Test)]] - {1 - ["." /]}) - -(/.import: (java/util/concurrent/Callable a)) + ["i" int] + ["f" frac]]] + ["." type ("#\." equivalence)]] + [\\ + ["." /]]) (/.import: java/lang/Object) (/.import: java/lang/String) @@ -23,123 +28,207 @@ ["#::." (new [java/lang/String])]) -(/.import: java/lang/Runnable) - (/.import: (java/lang/Class a) ["#::." (getName [] java/lang/String)]) -(/.import: java/lang/System - ["#::." - (#static out java/io/PrintStream) - (#static currentTimeMillis [] #io long) - (#static getenv [java/lang/String] #io #? java/lang/String)]) - -(/.class: #final (TestClass A) [java/lang/Runnable] +(/.class: #final (TestClass A) [] ## Fields - (#private foo boolean) - (#private bar A) - (#private baz java/lang/Object) + (#private increase java/lang/Long) + (#private counter java/lang/Long) ## Methods - (#public [] (new {value A}) [] - (exec (:= ::foo #1) - (:= ::bar value) - (:= ::baz "") + (#public [] (new {increase java/lang/Long} {counter java/lang/Long}) [] + (exec + (:= ::increase increase) + (:= ::counter counter) [])) - (#public (virtual self) java/lang/Object - "") - (#public #static (static) java/lang/Object - "") - (java/lang/Runnable [] (run self) void - [])) - -(def: test_runnable - (/.object [] [java/lang/Runnable] - [] - (java/lang/Runnable [] (run self) void - []))) - -(def: test_callable - (/.object [a] [(java/util/concurrent/Callable a)] - [] - (java/util/concurrent/Callable [] (call self) a - (undefined)))) + (#public (currentC self) java/lang/Long + ::counter) + (#public (upC self) void + (:= ::counter (i.+ ::increase ::counter))) + (#public (downC self) void + (:= ::counter (i.- ::increase ::counter)))) + +(/.import: (test/lux/ffi/TestClass a) + ["#::." + (new [java/lang/Long java/lang/Long]) + (currentC [] java/lang/Long) + (upC [] void) + (downC [] void)]) (/.interface: TestInterface - ([] foo [boolean java/lang/String] void #throws [java/lang/Exception])) + ([] current [] java/lang/Long #throws [java/lang/Exception]) + ([] up [] test/lux/ffi/TestInterface #throws [java/lang/Exception]) + ([] down [] test/lux/ffi/TestInterface #throws [java/lang/Exception])) + +(/.import: test/lux/ffi/TestInterface + ["#::." + (current [] java/lang/Long) + (up [] java/lang/Long) + (down [] java/lang/Long)]) + +(def: (test_object increase counter) + (-> Int Int test/lux/ffi/TestInterface) + (/.object [] [test/lux/ffi/TestInterface] + [] + (test/lux/ffi/TestInterface + [] (current self) + java/lang/Long + counter) + (test/lux/ffi/TestInterface + [] (up self) + test/lux/ffi/TestInterface + (test_object increase (i.+ increase counter))) + (test/lux/ffi/TestInterface + [] (down self) + test/lux/ffi/TestInterface + (test_object increase (i.- increase counter))))) (def: conversions Test - (do r.monad - [sample r.int] + (do {! random.monad} + [long random.int + int (\ ! map (|>> /.long_to_int) random.int) + char (\ ! map (|>> /.long_to_int /.int_to_char) random.int) + double random.frac + float (\ ! map (|>> /.double_to_float) random.frac)] (`` ($_ _.and - (~~ (template [<to> <from> <message>] - [(_.test <message> - (or (|> sample <to> <from> (i.= sample)) - (let [capped_sample (|> sample <to> <from>)] - (|> capped_sample <to> <from> (i.= capped_sample)))))] - - [/.long_to_byte /.byte_to_long "Can succesfully convert to/from byte."] - [/.long_to_short /.short_to_long "Can succesfully convert to/from short."] - [/.long_to_int /.int_to_long "Can succesfully convert to/from int."] - [/.long_to_float /.float_to_long "Can succesfully convert to/from float."] - [/.long_to_double /.double_to_long "Can succesfully convert to/from double."] - [(<| /.int_to_char /.long_to_int) (<| /.int_to_long /.char_to_int) "Can succesfully convert to/from char."] + (~~ (template [<=> <sample> <to> <from>] + [(_.cover [<to> <from>] + (or (|> <sample> <to> <from> (<=> <sample>)) + (let [capped (|> <sample> <to> <from>)] + (|> capped <to> <from> (<=> capped)))))] + + [i.= long /.long_to_byte /.byte_to_long] + [i.= long /.long_to_short /.short_to_long] + [i.= long /.long_to_int /.int_to_long] + [i.= long /.long_to_float /.float_to_long] + [i.= long /.long_to_double /.double_to_long] + + [f.= double /.double_to_float /.float_to_double] + [f.= double /.double_to_int /.int_to_double] )) + (~~ (template [<to> <from>] + [(_.cover [<to>] + (or (|> int <to> <from> (i.= (/.int_to_long int))) + (let [capped (|> int <to> <from>)] + (|> capped /.long_to_int <to> <from> (i.= capped)))))] + + [/.int_to_byte /.byte_to_long] + [/.int_to_short /.short_to_long] + [/.int_to_char /.char_to_long] + )) + (~~ (template [<sample> <to> <from>] + [(_.cover [<to> <from>] + (or (|> <sample> <to> <from> /.float_to_double (f.= (/.float_to_double <sample>))) + (let [capped (|> <sample> <to> <from>)] + (|> capped <to> <from> /.float_to_double (f.= (/.float_to_double capped))))))] + + [float /.float_to_int /.int_to_float] + )) + (~~ (template [<to> <from>] + [(_.cover [<to>] + (or (|> char <to> <from> (i.= (|> char /.char_to_int /.int_to_long))) + (let [capped (|> char <to> <from>)] + (|> capped /.long_to_int /.int_to_char <to> <from> (i.= capped)))))] + + [/.char_to_byte /.byte_to_long] + [/.char_to_short /.short_to_long] + )) + (_.cover [/.char_to_long] + (with_expansions [<to> /.int_to_char + <from> /.char_to_long] + (`` (or (|> int <to> <from> (i.= (/.int_to_long int))) + (let [capped (|> int <to> <from>)] + (|> capped /.long_to_int <to> <from> (i.= capped))))))) + (_.cover [/.char_to_int] + (with_expansions [<to> /.int_to_char + <from> /.char_to_int] + (`` (or (|> int <to> <from> /.int_to_long (i.= (/.int_to_long int))) + (let [capped (|> int <to> <from>)] + (|> capped <to> <from> /.int_to_long (i.= (/.int_to_long capped)))))))) )))) -(def: miscellaneous +(def: arrays Test - (do r.monad - [sample (r.ascii 1)] + (do {! random.monad} + [size (|> random.nat (\ ! map (|>> (n.% 100) (n.max 1)))) + idx (|> random.nat (\ ! map (n.% size))) + value random.int] ($_ _.and - (_.test "Can check if an object is of a certain class." - (and (case (/.check java/lang/String sample) (#.Some _) true #.None false) - (case (/.check java/lang/Long sample) (#.Some _) false #.None true) - (case (/.check java/lang/Object sample) (#.Some _) true #.None false) - (case (/.check java/lang/Object (/.null)) (#.Some _) false #.None true))) - - (_.test "Can run code in a 'synchronized' block." - (/.synchronized sample #1)) - - (_.test "Can access Class instances." - (text\= "java.lang.Class" (java/lang/Class::getName (/.class_for java/lang/Class)))) - - (_.test "Can check if a value is null." - (and (/.null? (/.null)) - (not (/.null? sample)))) - - (_.test "Can safely convert nullable references into Maybe values." - (and (|> (: (Maybe java/lang/Object) (/.??? (/.null))) - (case> #.None #1 - _ #0)) - (|> (: (Maybe java/lang/Object) (/.??? sample)) - (case> (#.Some _) #1 - _ #0)))) + (_.cover [/.array /.array_length] + (n.= size (/.array_length (/.array java/lang/Long size)))) + (_.cover [/.array_write /.array_read] + (|> (/.array java/lang/Long size) + (/.array_write idx value) + (/.array_read idx) + (i.= value))) ))) -(def: arrays +(def: null Test - (do {! r.monad} - [size (|> r.nat (\ ! map (|>> (n.% 100) (n.max 1)))) - idx (|> r.nat (\ ! map (n.% size))) - value r.int] + (do random.monad + [sample (random.ascii 1)] ($_ _.and - (_.test "Can create arrays of some length." - (n.= size (/.array_length (/.array java/lang/Long size)))) + (_.cover [/.null /.null?] + (and (/.null? (/.null)) + (not (/.null? sample)))) + (_.cover [/.???] + (and (|> (: (Maybe java/lang/Object) (/.??? (/.null))) + (case> #.None #1 + _ #0)) + (|> (: (Maybe java/lang/Object) (/.??? sample)) + (case> (#.Some _) #1 + _ #0)))) + (_.cover [/.!!!] + (and (/.null? (/.!!! (/.??? (/.null)))) + (not (/.null? (/.!!! (/.??? sample)))))) + ))) - (_.test "Can set and get array values." - (let [arr (/.array java/lang/Long size)] - (exec (/.array_write idx value arr) - (i.= value (/.array_read idx arr))))) +(def: miscellaneous + Test + (do random.monad + [sample (random.ascii 1) + counter random.int + increase random.int] + ($_ _.and + (_.cover [/.check] + (and (case (/.check java/lang/String sample) (#.Some _) true #.None false) + (case (/.check java/lang/Long sample) (#.Some _) false #.None true) + (case (/.check java/lang/Object sample) (#.Some _) true #.None false) + (case (/.check java/lang/Object (/.null)) (#.Some _) false #.None true))) + (_.cover [/.synchronized] + (/.synchronized sample #1)) + (_.cover [/.class_for /.import:] + (|> (/.class_for java/lang/Class) + java/lang/Class::getName + (text\= "java.lang.Class"))) + (_.cover [/.class: /.do_to] + (|> (/.do_to (test/lux/ffi/TestClass::new increase counter) + (test/lux/ffi/TestClass::upC) + (test/lux/ffi/TestClass::upC) + (test/lux/ffi/TestClass::downC)) + test/lux/ffi/TestClass::currentC + (i.= (i.+ increase counter)))) + (_.cover [/.interface: /.object] + (|> (..test_object increase counter) + test/lux/ffi/TestInterface::up + test/lux/ffi/TestInterface::up + test/lux/ffi/TestInterface::down + test/lux/ffi/TestInterface::current + (i.= (i.+ increase counter)))) + (_.cover [/.type] + (and (type\= (primitive "java.lang.Char") + (/.type java/lang/Char)) + (type\= (primitive "java.util.List" [(primitive "java.lang.Byte")]) + (/.type (java/util/List java/lang/Byte))))) ))) (def: #export test - ($_ _.and - (<| (_.context "Conversions.") - ..conversions) - (<| (_.context "Miscellaneous.") - ..miscellaneous) - (<| (_.context "Arrays.") - ..arrays) - )) + (<| (_.covering /._) + ($_ _.and + ..conversions + ..arrays + ..null + ..miscellaneous + ))) diff --git a/stdlib/source/test/lux/ffi.php.lux b/stdlib/source/test/lux/ffi.php.lux index 0b6cac81b..b05973bb8 100644 --- a/stdlib/source/test/lux/ffi.php.lux +++ b/stdlib/source/test/lux/ffi.php.lux @@ -12,8 +12,8 @@ [number ["." nat] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/ffi.py.lux b/stdlib/source/test/lux/ffi.py.lux index 0b6cac81b..b05973bb8 100644 --- a/stdlib/source/test/lux/ffi.py.lux +++ b/stdlib/source/test/lux/ffi.py.lux @@ -12,8 +12,8 @@ [number ["." nat] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/ffi.rb.lux b/stdlib/source/test/lux/ffi.rb.lux index 0b6cac81b..b05973bb8 100644 --- a/stdlib/source/test/lux/ffi.rb.lux +++ b/stdlib/source/test/lux/ffi.rb.lux @@ -12,8 +12,8 @@ [number ["." nat] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/ffi.scm.lux b/stdlib/source/test/lux/ffi.scm.lux index 0b6cac81b..b05973bb8 100644 --- a/stdlib/source/test/lux/ffi.scm.lux +++ b/stdlib/source/test/lux/ffi.scm.lux @@ -12,8 +12,8 @@ [number ["." nat] ["." frac]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/locale.lux b/stdlib/source/test/lux/locale.lux index 23cb63a97..a7949a62b 100644 --- a/stdlib/source/test/lux/locale.lux +++ b/stdlib/source/test/lux/locale.lux @@ -3,10 +3,9 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash]]}] + [\spec + ["$." equivalence] + ["$." hash]]] [math ["." random (#+ Random) ("#\." monad)]] [data @@ -17,10 +16,10 @@ ["." / #_ ["#." language] ["#." territory]] - {1 + [\\ ["." / ["." language (#+ Language)] - ["." territory (#+ Territory)]]}) + ["." territory (#+ Territory)]]]) (def: random_language (Random Language) diff --git a/stdlib/source/test/lux/locale/language.lux b/stdlib/source/test/lux/locale/language.lux index 9e49fbb1e..bce125224 100644 --- a/stdlib/source/test/lux/locale/language.lux +++ b/stdlib/source/test/lux/locale/language.lux @@ -4,9 +4,8 @@ [abstract [monad (#+ do)] [hash (#+ Hash)] - {[0 #spec] - [/ - ["$." hash]]}] + [\spec + ["$." hash]]] [data ["." maybe] ["." text] @@ -19,8 +18,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (type: Bundle {#count Nat diff --git a/stdlib/source/test/lux/locale/territory.lux b/stdlib/source/test/lux/locale/territory.lux index 909b5b68f..61692050b 100644 --- a/stdlib/source/test/lux/locale/territory.lux +++ b/stdlib/source/test/lux/locale/territory.lux @@ -4,9 +4,8 @@ [abstract [monad (#+ do)] [hash (#+ Hash)] - {[0 #spec] - [/ - ["$." hash]]}] + [\spec + ["$." hash]]] [data ["." maybe] ["." text] @@ -19,8 +18,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (type: Bundle {#count Nat diff --git a/stdlib/source/test/lux/macro.lux b/stdlib/source/test/lux/macro.lux index 5892f842e..7864fb686 100644 --- a/stdlib/source/test/lux/macro.lux +++ b/stdlib/source/test/lux/macro.lux @@ -20,11 +20,11 @@ ["." nat]]] ["." meta ["." location]]] - {1 + [\\ ["." / [syntax (#+ syntax:)] ["." code ("#\." equivalence)] - ["." template]]} + ["." template]]] ["." / #_ ["#." code] ["#." local] diff --git a/stdlib/source/test/lux/macro/code.lux b/stdlib/source/test/lux/macro/code.lux index 730671b5b..93ed2c19b 100644 --- a/stdlib/source/test/lux/macro/code.lux +++ b/stdlib/source/test/lux/macro/code.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try (#+ Try)]] [data @@ -24,8 +23,8 @@ [language [lux ["." syntax]]]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: random_text (Random Text) diff --git a/stdlib/source/test/lux/macro/local.lux b/stdlib/source/test/lux/macro/local.lux index b499beb68..d125a2af4 100644 --- a/stdlib/source/test/lux/macro/local.lux +++ b/stdlib/source/test/lux/macro/local.lux @@ -23,8 +23,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (syntax: (macro_error macro) (function (_ compiler) diff --git a/stdlib/source/test/lux/macro/poly.lux b/stdlib/source/test/lux/macro/poly.lux index 9a42c450a..d15e96d3d 100644 --- a/stdlib/source/test/lux/macro/poly.lux +++ b/stdlib/source/test/lux/macro/poly.lux @@ -1,8 +1,8 @@ (.module: [lux #* ["_" test (#+ Test)]] - {1 - ["." /]} + [\\ + ["." /]] ["." / #_ ["#." equivalence] ["#." functor] diff --git a/stdlib/source/test/lux/macro/poly/equivalence.lux b/stdlib/source/test/lux/macro/poly/equivalence.lux index 593dba8e1..a43da2d84 100644 --- a/stdlib/source/test/lux/macro/poly/equivalence.lux +++ b/stdlib/source/test/lux/macro/poly/equivalence.lux @@ -5,11 +5,10 @@ [abstract [monad (#+ do)] [equivalence (#+ Equivalence) - {[0 #poly] - ["." /]}] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\poly + ["." /]]] + [\spec + ["$." equivalence]]] [data ["." bit] ["." maybe] diff --git a/stdlib/source/test/lux/macro/poly/functor.lux b/stdlib/source/test/lux/macro/poly/functor.lux index 9463d7f11..8d94cf852 100644 --- a/stdlib/source/test/lux/macro/poly/functor.lux +++ b/stdlib/source/test/lux/macro/poly/functor.lux @@ -4,8 +4,8 @@ [abstract [monad (#+ do)] [functor - {[0 #poly] - ["." /]}]] + [\poly + ["." /]]]] ["r" math/random (#+ Random)] ["_" test (#+ Test)] [control diff --git a/stdlib/source/test/lux/macro/poly/json.lux b/stdlib/source/test/lux/macro/poly/json.lux index 0931481da..91ad9b010 100644 --- a/stdlib/source/test/lux/macro/poly/json.lux +++ b/stdlib/source/test/lux/macro/poly/json.lux @@ -6,12 +6,10 @@ codec [monad (#+ do)] ["." equivalence (#+ Equivalence) - {[0 #poly] - ["poly/#" /]}] - {[0 #spec] - [/ - ["$." equivalence] - ["$." codec]]}] + ["poly/#" \poly]] + [\spec + ["$." equivalence] + ["$." codec]]] [control pipe ["." try] @@ -25,8 +23,8 @@ ["%" format (#+ format)]] [format [json (#+) - {[0 #poly] - ["." /]}]] + [\poly + ["." /]]]] [collection [row (#+ row)] ["d" dictionary] diff --git a/stdlib/source/test/lux/macro/syntax.lux b/stdlib/source/test/lux/macro/syntax.lux index f2fbe2010..057565f3d 100644 --- a/stdlib/source/test/lux/macro/syntax.lux +++ b/stdlib/source/test/lux/macro/syntax.lux @@ -7,8 +7,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]} + [\\ + ["." /]] ["." / #_ ["#." annotations] ["#." check] diff --git a/stdlib/source/test/lux/macro/syntax/annotations.lux b/stdlib/source/test/lux/macro/syntax/annotations.lux index dac3c1e16..fdee0ffa5 100644 --- a/stdlib/source/test/lux/macro/syntax/annotations.lux +++ b/stdlib/source/test/lux/macro/syntax/annotations.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try] [parser @@ -17,8 +16,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]} + [\\ + ["." /]] ["$." /// #_ ["#." code]]) diff --git a/stdlib/source/test/lux/macro/syntax/check.lux b/stdlib/source/test/lux/macro/syntax/check.lux index d5036d9b2..59f5c1a0b 100644 --- a/stdlib/source/test/lux/macro/syntax/check.lux +++ b/stdlib/source/test/lux/macro/syntax/check.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try] ["<>" parser @@ -14,8 +13,8 @@ ["." random (#+ Random)]] [macro ["." code ("#\." equivalence)]]] - {1 - ["." /]} + [\\ + ["." /]] ["$." /// #_ ["#." code]]) diff --git a/stdlib/source/test/lux/macro/syntax/declaration.lux b/stdlib/source/test/lux/macro/syntax/declaration.lux index 2cb737caf..555c3138e 100644 --- a/stdlib/source/test/lux/macro/syntax/declaration.lux +++ b/stdlib/source/test/lux/macro/syntax/declaration.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try] [parser @@ -14,8 +13,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export random (Random /.Declaration) diff --git a/stdlib/source/test/lux/macro/syntax/definition.lux b/stdlib/source/test/lux/macro/syntax/definition.lux index be6f05449..48719ac17 100644 --- a/stdlib/source/test/lux/macro/syntax/definition.lux +++ b/stdlib/source/test/lux/macro/syntax/definition.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try] ["." exception] @@ -17,8 +16,8 @@ ["." code ("#\." equivalence)]] [meta ["." location]]] - {1 - ["." /]} + [\\ + ["." /]] ["$."// #_ ["#." check] ["#." annotations] diff --git a/stdlib/source/test/lux/macro/syntax/export.lux b/stdlib/source/test/lux/macro/syntax/export.lux index 34c19a11f..10e86fd20 100644 --- a/stdlib/source/test/lux/macro/syntax/export.lux +++ b/stdlib/source/test/lux/macro/syntax/export.lux @@ -11,8 +11,8 @@ ["." bit ("#\." equivalence)]] [math ["." random]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/macro/syntax/input.lux b/stdlib/source/test/lux/macro/syntax/input.lux index b0b642645..bf22a9c17 100644 --- a/stdlib/source/test/lux/macro/syntax/input.lux +++ b/stdlib/source/test/lux/macro/syntax/input.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try] [parser @@ -14,8 +13,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]} + [\\ + ["." /]] ["$." /// #_ ["#." code]]) diff --git a/stdlib/source/test/lux/macro/syntax/type/variable.lux b/stdlib/source/test/lux/macro/syntax/type/variable.lux index 4701f5aef..d2ac5d86e 100644 --- a/stdlib/source/test/lux/macro/syntax/type/variable.lux +++ b/stdlib/source/test/lux/macro/syntax/type/variable.lux @@ -3,17 +3,16 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control ["." try ("#\." functor)] [parser ["<.>" code]]] [math ["." random (#+ Random)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export random (Random /.Variable) diff --git a/stdlib/source/test/lux/macro/template.lux b/stdlib/source/test/lux/macro/template.lux index 8f68ff501..12e503e33 100644 --- a/stdlib/source/test/lux/macro/template.lux +++ b/stdlib/source/test/lux/macro/template.lux @@ -16,8 +16,8 @@ ["." random (#+ Random)] [number ["." nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (/.let [(!pow/2 <scalar>) [(nat.* <scalar> <scalar>)]] diff --git a/stdlib/source/test/lux/math.lux b/stdlib/source/test/lux/math.lux index 919a9c694..fc9de2f8f 100644 --- a/stdlib/source/test/lux/math.lux +++ b/stdlib/source/test/lux/math.lux @@ -11,8 +11,8 @@ ["n" nat] ["i" int] ["f" frac]]]] - {1 - ["." /]} + [\\ + ["." /]] ["." / #_ ["#." infix] ["#." modulus] diff --git a/stdlib/source/test/lux/math/infix.lux b/stdlib/source/test/lux/math/infix.lux index 785285f2d..29a3cfcab 100644 --- a/stdlib/source/test/lux/math/infix.lux +++ b/stdlib/source/test/lux/math/infix.lux @@ -10,9 +10,9 @@ [number ["n" nat] ["f" frac]]]] - {1 + [\\ ["." / - ["." //]]}) + ["." //]]]) (def: #export test Test diff --git a/stdlib/source/test/lux/math/logic/continuous.lux b/stdlib/source/test/lux/math/logic/continuous.lux index e54eccc2e..ceb4ca33b 100644 --- a/stdlib/source/test/lux/math/logic/continuous.lux +++ b/stdlib/source/test/lux/math/logic/continuous.lux @@ -3,15 +3,14 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." monoid]]}] + [\spec + ["$." monoid]]] [math ["." random] [number ["r" rev]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/math/logic/fuzzy.lux b/stdlib/source/test/lux/math/logic/fuzzy.lux index bb2d7184c..3da2e4cc9 100644 --- a/stdlib/source/test/lux/math/logic/fuzzy.lux +++ b/stdlib/source/test/lux/math/logic/fuzzy.lux @@ -4,10 +4,9 @@ [abstract [equivalence (#+ Equivalence)] [monad (#+ do)] - {[0 #spec] - [/ - [functor - ["$." contravariant]]]}] + [\spec + [functor + ["$." contravariant]]]] [data ["." bit ("#\." equivalence)] [collection @@ -18,10 +17,10 @@ [number ["n" nat] ["r" rev]]]] - {1 + [\\ ["." / (#+ Fuzzy) ["/#" // #_ - ["#" continuous]]]}) + ["#" continuous]]]]) (def: trivial Test diff --git a/stdlib/source/test/lux/math/modular.lux b/stdlib/source/test/lux/math/modular.lux index 461d5bfac..21d451472 100644 --- a/stdlib/source/test/lux/math/modular.lux +++ b/stdlib/source/test/lux/math/modular.lux @@ -5,12 +5,11 @@ [abstract [monad (#+ do)] ["." predicate] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." monoid] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." monoid] + ["$." codec]]] [control ["." try] ["." exception]] @@ -23,10 +22,10 @@ ["i" int]]]] ["$." // #_ ["#" modulus]] - {1 + [\\ ["." / ["/#" // #_ - ["#" modulus]]]}) + ["#" modulus]]]]) (def: #export (random modulus) (All [%] (-> (//.Modulus %) (Random (/.Mod %)))) diff --git a/stdlib/source/test/lux/math/modulus.lux b/stdlib/source/test/lux/math/modulus.lux index c5147e75c..af3a3dc5b 100644 --- a/stdlib/source/test/lux/math/modulus.lux +++ b/stdlib/source/test/lux/math/modulus.lux @@ -14,8 +14,8 @@ [macro [syntax (#+ syntax:)] ["." code]]] - {1 - ["." /]}) + [\\ + ["." /]]) (syntax: (|divisor|) (do meta.monad diff --git a/stdlib/source/test/lux/math/number.lux b/stdlib/source/test/lux/math/number.lux index 5a897db71..99cf72928 100644 --- a/stdlib/source/test/lux/math/number.lux +++ b/stdlib/source/test/lux/math/number.lux @@ -5,12 +5,12 @@ ["." try]] [data ["." text]]] - {1 + [\\ ["." / ["n" nat] ["i" int] ["r" rev] - ["f" frac]]} + ["f" frac]]] ["." / #_ ["#." i8] ["#." i16] diff --git a/stdlib/source/test/lux/math/number/complex.lux b/stdlib/source/test/lux/math/number/complex.lux index 11f729aac..d32abc2c5 100644 --- a/stdlib/source/test/lux/math/number/complex.lux +++ b/stdlib/source/test/lux/math/number/complex.lux @@ -4,22 +4,21 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." codec]]] [data [collection ["." list ("#\." functor)]]] ["." math ["." random (#+ Random)]]] - {1 + [\\ ["." / [// ["n" nat] ["f" frac] - ["." int]]]}) + ["." int]]]]) ## This margin of error is necessary because floating-point arithmetic is not exact. (def: margin_of_error diff --git a/stdlib/source/test/lux/math/number/frac.lux b/stdlib/source/test/lux/math/number/frac.lux index ddeab3763..eb981a5b0 100644 --- a/stdlib/source/test/lux/math/number/frac.lux +++ b/stdlib/source/test/lux/math/number/frac.lux @@ -5,24 +5,23 @@ ["." ffi] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." order] - ["$." monoid] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." order] + ["$." monoid] + ["$." codec]]] [data ["." bit ("#\." equivalence)]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / [// #* ["n" nat] ["i" int] ["r" rev] - ["." i64]]]}) + ["." i64]]]]) (def: random (Random Frac) diff --git a/stdlib/source/test/lux/math/number/i16.lux b/stdlib/source/test/lux/math/number/i16.lux index 6cf457989..4450cf88e 100644 --- a/stdlib/source/test/lux/math/number/i16.lux +++ b/stdlib/source/test/lux/math/number/i16.lux @@ -3,16 +3,15 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / ["/#" // #_ ["i" int] - ["#." i64]]]}) + ["#." i64]]]]) (def: #export random (Random /.I16) diff --git a/stdlib/source/test/lux/math/number/i32.lux b/stdlib/source/test/lux/math/number/i32.lux index 1061cdc1b..8b2d0e5f2 100644 --- a/stdlib/source/test/lux/math/number/i32.lux +++ b/stdlib/source/test/lux/math/number/i32.lux @@ -3,16 +3,15 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / ["/#" // #_ ["i" int] - ["#." i64]]]}) + ["#." i64]]]]) (def: #export random (Random /.I32) diff --git a/stdlib/source/test/lux/math/number/i64.lux b/stdlib/source/test/lux/math/number/i64.lux index 9384e08c4..129d2bb84 100644 --- a/stdlib/source/test/lux/math/number/i64.lux +++ b/stdlib/source/test/lux/math/number/i64.lux @@ -5,18 +5,17 @@ ["." bit ("#\." equivalence)]] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." monoid]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." monoid]]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / ("\." equivalence) [// (#+ hex) ["n" nat] - ["i" int]]]}) + ["i" int]]]]) (def: bit Test diff --git a/stdlib/source/test/lux/math/number/i8.lux b/stdlib/source/test/lux/math/number/i8.lux index b0903a903..1f5c7de42 100644 --- a/stdlib/source/test/lux/math/number/i8.lux +++ b/stdlib/source/test/lux/math/number/i8.lux @@ -3,16 +3,15 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / ["/#" // #_ ["i" int] - ["#." i64]]]}) + ["#." i64]]]]) (def: #export random (Random /.I8) diff --git a/stdlib/source/test/lux/math/number/int.lux b/stdlib/source/test/lux/math/number/int.lux index c75ffb6bd..f339b3ac4 100644 --- a/stdlib/source/test/lux/math/number/int.lux +++ b/stdlib/source/test/lux/math/number/int.lux @@ -3,25 +3,24 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." order] - ["$." enum] - ["$." interval] - ["$." monoid] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." order] + ["$." enum] + ["$." interval] + ["$." monoid] + ["$." codec]]] [data ["." bit ("#\." equivalence)]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / [// ["n" nat] ["f" frac] - ["." i64]]]}) + ["." i64]]]]) (def: signature Test diff --git a/stdlib/source/test/lux/math/number/nat.lux b/stdlib/source/test/lux/math/number/nat.lux index 3de2970cc..26a872067 100644 --- a/stdlib/source/test/lux/math/number/nat.lux +++ b/stdlib/source/test/lux/math/number/nat.lux @@ -3,23 +3,22 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." order] - ["$." enum] - ["$." interval] - ["$." monoid] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." order] + ["$." enum] + ["$." interval] + ["$." monoid] + ["$." codec]]] [data ["." bit ("#\." equivalence)]] [math ["." random]]] - {1 + [\\ ["." / [// - ["f" frac]]]}) + ["f" frac]]]]) (def: signature Test diff --git a/stdlib/source/test/lux/math/number/ratio.lux b/stdlib/source/test/lux/math/number/ratio.lux index f031810d9..8e8aeb0d0 100644 --- a/stdlib/source/test/lux/math/number/ratio.lux +++ b/stdlib/source/test/lux/math/number/ratio.lux @@ -3,21 +3,20 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." monoid] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." monoid] + ["$." codec]]] [data ["." bit ("#\." equivalence)] ["." maybe ("#\." functor)]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / [// - ["n" nat ("#\." equivalence)]]]}) + ["n" nat ("#\." equivalence)]]]]) (def: part (Random Nat) diff --git a/stdlib/source/test/lux/math/number/rev.lux b/stdlib/source/test/lux/math/number/rev.lux index 5b30741df..e4d6b81f7 100644 --- a/stdlib/source/test/lux/math/number/rev.lux +++ b/stdlib/source/test/lux/math/number/rev.lux @@ -3,25 +3,24 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." order] - ["$." enum] - ["$." interval] - ["$." monoid] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." order] + ["$." enum] + ["$." interval] + ["$." monoid] + ["$." codec]]] [data ["." bit ("#\." equivalence)]] [math ["." random]]] - {1 + [\\ ["." / [// (#+ hex) ["n" nat] ["f" frac] - ["." i64 ("#\." hash)]]]}) + ["." i64 ("#\." hash)]]]]) (def: signature Test diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux index e02b1197a..b8aa1ff8b 100644 --- a/stdlib/source/test/lux/meta.lux +++ b/stdlib/source/test/lux/meta.lux @@ -5,11 +5,10 @@ [abstract [equivalence (#+ Equivalence)] [monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control ["." try (#+ Try) ("#\." functor)]] [data @@ -28,8 +27,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]} + [\\ + ["." /]] ["." / #_ ["#." annotation] ["#." location]]) diff --git a/stdlib/source/test/lux/meta/annotation.lux b/stdlib/source/test/lux/meta/annotation.lux index 01f410b92..791e5759a 100644 --- a/stdlib/source/test/lux/meta/annotation.lux +++ b/stdlib/source/test/lux/meta/annotation.lux @@ -21,8 +21,8 @@ ["." int] ["." rev] ["." frac]]]] - {1 - ["." /]} + [\\ + ["." /]] [/// [macro ["_." code]]]) diff --git a/stdlib/source/test/lux/meta/location.lux b/stdlib/source/test/lux/meta/location.lux index 5c9d43d50..6e005bd5f 100644 --- a/stdlib/source/test/lux/meta/location.lux +++ b/stdlib/source/test/lux/meta/location.lux @@ -3,15 +3,14 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [data ["." text]] [math ["." random (#+ Random)]]] - {1 - ["." /]} + [\\ + ["." /]] ["$." /// #_ [macro ["#." code]]]) diff --git a/stdlib/source/test/lux/program.lux b/stdlib/source/test/lux/program.lux index e7d4a4767..2da869ab5 100644 --- a/stdlib/source/test/lux/program.lux +++ b/stdlib/source/test/lux/program.lux @@ -17,8 +17,8 @@ [syntax (#+ syntax:)]] [math ["." random]]] - {1 - ["." /]}) + [\\ + ["." /]]) (syntax: (actual_program {actual_program (<| <code>.form (<>.after (<code>.text! "lux def program")) diff --git a/stdlib/source/test/lux/target.lux b/stdlib/source/test/lux/target.lux index 6f6050e1c..3158b76ee 100644 --- a/stdlib/source/test/lux/target.lux +++ b/stdlib/source/test/lux/target.lux @@ -9,8 +9,8 @@ [math [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (with_expansions [<targets> (as_is /.old /.js diff --git a/stdlib/source/test/lux/target/jvm.lux b/stdlib/source/test/lux/target/jvm.lux index 173e9624f..218f3df42 100644 --- a/stdlib/source/test/lux/target/jvm.lux +++ b/stdlib/source/test/lux/target/jvm.lux @@ -32,7 +32,7 @@ ["." i32 (#+ I32)] ["." i64]]] ["_" test (#+ Test)]] - {1 + [\\ ["." / #_ ["#." loader (#+ Library)] ["#." version] @@ -51,7 +51,7 @@ ["#" bytecode (#+ Label Bytecode) ["#." instruction]] ["#." type (#+ Type) - ["." category (#+ Value Object Class)]]]}) + ["." category (#+ Value Object Class)]]]]) (def: method_modifier ($_ /modifier\compose diff --git a/stdlib/source/test/lux/test.lux b/stdlib/source/test/lux/test.lux index d321f88f5..ede26191c 100644 --- a/stdlib/source/test/lux/test.lux +++ b/stdlib/source/test/lux/test.lux @@ -16,8 +16,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: (verify expected_message/0 expected_message/1 successes failures [tally message]) (-> Text Text Nat Nat [/.Tally Text] Bit) diff --git a/stdlib/source/test/lux/time.lux b/stdlib/source/test/lux/time.lux index b22823626..6b321d1ce 100644 --- a/stdlib/source/test/lux/time.lux +++ b/stdlib/source/test/lux/time.lux @@ -3,12 +3,11 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." enum] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." enum] + ["$." codec]]] [control [pipe (#+ case>)] ["." try ("#\." functor)] @@ -29,9 +28,9 @@ ["#." instant] ["#." month] ["#." year]] - {1 + [\\ ["." / - ["." duration]]}) + ["." duration]]]) (def: for_implementation Test diff --git a/stdlib/source/test/lux/time/date.lux b/stdlib/source/test/lux/time/date.lux index 1c569e476..b8813ba77 100644 --- a/stdlib/source/test/lux/time/date.lux +++ b/stdlib/source/test/lux/time/date.lux @@ -3,12 +3,11 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." enum] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." enum] + ["$." codec]]] [control ["." try ("#\." functor)] ["." exception] @@ -21,8 +20,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/time/day.lux b/stdlib/source/test/lux/time/day.lux index 89a1aa3d4..3245c69b6 100644 --- a/stdlib/source/test/lux/time/day.lux +++ b/stdlib/source/test/lux/time/day.lux @@ -2,15 +2,19 @@ [lux #* ["_" test (#+ Test)] [abstract - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." enum]]}] + [monad (#+ do)] + [\spec + ["$." equivalence] + ["$." order] + ["$." enum] + ["$." codec]]] + [control + ["." try] + ["." exception]] [math ["." random (#+ Random) ("#\." monad)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export random (Random /.Day) @@ -33,4 +37,16 @@ ($order.spec /.order ..random)) (_.for [/.enum] ($enum.spec /.enum ..random)) + (_.for [/.codec] + ($codec.spec /.equivalence /.codec ..random)) + + (do random.monad + [not_a_day (random.ascii/upper 1)] + (_.cover [/.not_a_day_of_the_week] + (case (\ /.codec decode not_a_day) + (#try.Failure error) + (exception.match? /.not_a_day_of_the_week error) + + (#try.Success _) + false))) ))) diff --git a/stdlib/source/test/lux/time/duration.lux b/stdlib/source/test/lux/time/duration.lux index 24d5449f3..7ca984beb 100644 --- a/stdlib/source/test/lux/time/duration.lux +++ b/stdlib/source/test/lux/time/duration.lux @@ -3,13 +3,12 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." enum] - ["$." monoid] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." enum] + ["$." monoid] + ["$." codec]]] [data ["." bit ("#\." equivalence)]] [math @@ -17,8 +16,8 @@ [number ["n" nat] ["i" int]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/time/instant.lux b/stdlib/source/test/lux/time/instant.lux index 551144a6b..80a43472b 100644 --- a/stdlib/source/test/lux/time/instant.lux +++ b/stdlib/source/test/lux/time/instant.lux @@ -3,12 +3,11 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." enum] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." enum] + ["$." codec]]] [control ["." function] ["." try] @@ -21,8 +20,8 @@ [time ["." duration (#+ Duration)] ["." day (#+ Day) ("#\." enum)]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/time/month.lux b/stdlib/source/test/lux/time/month.lux index 2cecfced6..dac255f2c 100644 --- a/stdlib/source/test/lux/time/month.lux +++ b/stdlib/source/test/lux/time/month.lux @@ -4,12 +4,12 @@ [abstract [monad (#+ do)] ["." predicate] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash] - ["$." order] - ["$." enum]]}] + [\spec + ["$." equivalence] + ["$." hash] + ["$." order] + ["$." enum] + ["$." codec]]] [control ["." try ("#\." functor)] ["." exception]] @@ -21,10 +21,10 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 + [\\ ["." / [// - ["." duration]]]}) + ["." duration]]]]) (def: #export random (Random /.Month) @@ -46,6 +46,8 @@ ($order.spec /.order ..random)) (_.for [/.enum] ($enum.spec /.enum ..random)) + (_.for [/.codec] + ($codec.spec /.equivalence /.codec ..random)) (do random.monad [expected ..random @@ -85,5 +87,13 @@ (list\map /.leap_year_days) (list\fold n.+ 0) (n.= expected)))) - )) - ))) + (do random.monad + [not_a_month (random.ascii/upper 1)] + (_.cover [/.not_a_month_of_the_year] + (case (\ /.codec decode not_a_month) + (#try.Failure error) + (exception.match? /.not_a_month_of_the_year error) + + (#try.Success _) + false))) + ))))) diff --git a/stdlib/source/test/lux/time/year.lux b/stdlib/source/test/lux/time/year.lux index 3e29f0ffb..97c416c11 100644 --- a/stdlib/source/test/lux/time/year.lux +++ b/stdlib/source/test/lux/time/year.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." codec]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." codec]]] [control ["." try] ["." exception]] @@ -20,12 +19,12 @@ [number ["n" nat] ["i" int]]]] - {1 + [\\ ["." / ["/#" // ["#." duration] ["#." instant] - ["#." date]]]}) + ["#." date]]]]) (def: #export random (Random /.Year) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux index b280591fe..a1d16b40b 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux @@ -24,7 +24,7 @@ [// ["_." primitive] ["_." structure]] - {1 + [\\ ["." / ["/#" // ["#." module] @@ -35,7 +35,7 @@ [/// ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (def: (exhaustive-weaving branchings) (-> (List (List Code)) (List (List Code))) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux index 8bc1173f6..68b39b8b8 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux @@ -24,7 +24,7 @@ [// ["_." primitive] ["_." structure]] - {1 + [\\ ["." / ["/#" // ["#." module] @@ -36,7 +36,7 @@ ["#." reference] ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (def: (check-apply expectedT num-args analysis) (-> Type Nat (Operation Analysis) Bit) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux index c26e16a6f..aa3382aa5 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux @@ -14,7 +14,7 @@ ["." exception (#+ exception:)]] [macro ["." code]]] - {1 + [\\ ["." / ["/#" // ["#." type] @@ -30,7 +30,7 @@ [/// ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (def: #export (expander macro inputs state) Expander diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux index ec5ef8ae0..4f94ea927 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux @@ -17,7 +17,7 @@ ["." code]]] [// ["_." primitive]] - {1 + [\\ ["." / ["/#" // ["#." scope] @@ -30,7 +30,7 @@ ["#." reference] ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (type: Check (-> (Try Any) Bit)) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux index f96c8045a..2f0f5d810 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux @@ -25,7 +25,7 @@ ["." code]]] [// ["_." primitive]] - {1 + [\\ ["." / ["/#" // ["#." module] @@ -36,7 +36,7 @@ [/// ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (template [<name> <on-success> <on-error>] [(def: #export <name> diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux index 4041ceaba..ebcaa3917 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux @@ -21,7 +21,7 @@ [//// [analysis ["_." primitive]]] - {1 + [\\ ["." / ["///#" //// #_ [analysis @@ -30,7 +30,7 @@ [//// ["." phase] [meta - ["." archive]]]]]}) + ["." archive]]]]]]) (template [<name> <success> <failure>] [(def: (<name> procedure params output-type) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux index 84c238ad7..7cce92462 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux @@ -23,7 +23,7 @@ ["." random (#+ Random)]]] ["." // #_ ["#." primitive]] - {1 + [\\ ["." / ["/#" // ["/#" // #_ @@ -37,7 +37,7 @@ [variable (#+ Register)]] ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (def: masking-test Test diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux index d5bffc3c1..841f941db 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux @@ -20,7 +20,7 @@ ["." random (#+ Random)]]] ["." // #_ ["#." primitive]] - {1 + [\\ ["." / ["/#" // ["/#" // #_ @@ -35,7 +35,7 @@ ["." variable (#+ Variable)]] ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (def: (n-function loop? arity body) (-> Bit Arity Synthesis Synthesis) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux index edf3e6fcb..9b21270a4 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux @@ -13,7 +13,7 @@ ["." list ("#\." functor)]]] [math ["." random (#+ Random) ("#\." monad)]]] - {1 + [\\ ["." / [//// ["." analysis (#+ Environment)] @@ -21,7 +21,7 @@ [/// [arity (#+ Arity)] ["." reference (#+ Constant) - ["." variable (#+ Register Variable)]]]]]}) + ["." variable (#+ Register Variable)]]]]]]) (type: (Scenario a) (-> Register Arity Register (Random [Register [a a]]))) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux index be4542936..7a652d26c 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux @@ -13,7 +13,7 @@ ["." list]]] ["r" math/random (#+ Random) ("#\." monad)] ["_" test (#+ Test)]] - {1 + [\\ ["." / #_ ["/#" // ["/#" // #_ @@ -25,7 +25,7 @@ [/// ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (def: #export primitive (Random Analysis) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux index f109acd9c..a3a476959 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux @@ -18,7 +18,7 @@ ["." list]]]] ["." // #_ ["#." primitive]] - {1 + [\\ ["." / #_ ["/#" // ["/#" // #_ @@ -30,7 +30,7 @@ [/// ["." phase] [meta - ["." archive]]]]]]]}) + ["." archive]]]]]]]]) (def: variant Test diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux index 5a18e6d40..f50a196b6 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux @@ -17,14 +17,14 @@ [collection ["." list ("#\." functor fold)] ["." dictionary (#+ Dictionary)]]]] - {1 + [\\ ["." / [//// ["." analysis] ["." synthesis (#+ Side Member Path Synthesis)] [/// [reference - ["." variable]]]]]}) + ["." variable]]]]]]) (template: (!expect <pattern> <value>) (case <value> diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux b/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux index a95bb9292..cbb463ac3 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux @@ -21,8 +21,8 @@ ["." code]] [meta ["." location]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: name-part^ (Random Text) diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/type.lux index 933edbfa3..cae8a8773 100644 --- a/stdlib/source/test/lux/type.lux +++ b/stdlib/source/test/lux/type.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract ["." monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [control [pipe (#+ case>)]] [data @@ -18,8 +17,8 @@ ["." random (#+ Random) ("#\." monad)] [number ["n" nat]]]] - {1 - ["." / ("#\." equivalence)]} + [\\ + ["." / ("#\." equivalence)]] ["." / #_ ["#." abstract] ["#." check] diff --git a/stdlib/source/test/lux/type/abstract.lux b/stdlib/source/test/lux/type/abstract.lux index 30ad27687..a023e1350 100644 --- a/stdlib/source/test/lux/type/abstract.lux +++ b/stdlib/source/test/lux/type/abstract.lux @@ -17,8 +17,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (template.with_locals [g!Foo g!Bar] (as_is (template [<syntax> <meta>] diff --git a/stdlib/source/test/lux/type/check.lux b/stdlib/source/test/lux/type/check.lux index e6e0f4b16..b9f0f570f 100644 --- a/stdlib/source/test/lux/type/check.lux +++ b/stdlib/source/test/lux/type/check.lux @@ -3,11 +3,10 @@ ["_" test (#+ Test)] [abstract ["." monad (#+ do)] - {[0 #spec] - [/ - ["$." functor (#+ Injection Comparison)] - ["$." apply] - ["$." monad]]}] + [\spec + ["$." functor (#+ Injection Comparison)] + ["$." apply] + ["$." monad]]] [control [pipe (#+ case>)] ["." function] @@ -27,8 +26,8 @@ [number ["n" nat]]] ["." type ("#\." equivalence)]] - {1 - ["." /]}) + [\\ + ["." /]]) ## TODO: Remove the following 3 definitions ASAP. //.type already exists... (def: short diff --git a/stdlib/source/test/lux/type/dynamic.lux b/stdlib/source/test/lux/type/dynamic.lux index e95f68146..f9b5472f4 100644 --- a/stdlib/source/test/lux/type/dynamic.lux +++ b/stdlib/source/test/lux/type/dynamic.lux @@ -13,8 +13,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/type/implicit.lux b/stdlib/source/test/lux/type/implicit.lux index 9ef12d3a0..0387c1dd2 100644 --- a/stdlib/source/test/lux/type/implicit.lux +++ b/stdlib/source/test/lux/type/implicit.lux @@ -15,8 +15,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (/.implicit: [n.multiplication]) diff --git a/stdlib/source/test/lux/type/quotient.lux b/stdlib/source/test/lux/type/quotient.lux index ef19c6841..962d2d2aa 100644 --- a/stdlib/source/test/lux/type/quotient.lux +++ b/stdlib/source/test/lux/type/quotient.lux @@ -3,9 +3,8 @@ ["_" test (#+ Test)] [abstract ["." monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence]]}] + [\spec + ["$." equivalence]]] [data ["." text ("#\." equivalence) ["%" format (#+ format)]]] @@ -13,8 +12,8 @@ ["." random (#+ Random)] [number ["n" nat ("#\." equivalence)]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: #export (random class super) (All [t c %] (-> (/.Class t c %) (Random t) (Random (/.Quotient t c %)))) diff --git a/stdlib/source/test/lux/type/refinement.lux b/stdlib/source/test/lux/type/refinement.lux index 260f5f51f..1e4e4da3b 100644 --- a/stdlib/source/test/lux/type/refinement.lux +++ b/stdlib/source/test/lux/type/refinement.lux @@ -12,8 +12,8 @@ ["." random] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (def: _refiner (/.refinement (n.> 123))) diff --git a/stdlib/source/test/lux/type/resource.lux b/stdlib/source/test/lux/type/resource.lux index 1a56d8d08..e5061dc1e 100644 --- a/stdlib/source/test/lux/type/resource.lux +++ b/stdlib/source/test/lux/type/resource.lux @@ -21,8 +21,8 @@ ["." code]] [math ["." random]]] - {1 - ["." / (#+ Res)]}) + [\\ + ["." / (#+ Res)]]) (def: pure Test diff --git a/stdlib/source/test/lux/type/unit.lux b/stdlib/source/test/lux/type/unit.lux index 291f6f6b2..aecce2374 100644 --- a/stdlib/source/test/lux/type/unit.lux +++ b/stdlib/source/test/lux/type/unit.lux @@ -6,11 +6,10 @@ [abstract [monad (#+ do)] [equivalence (#+ Equivalence)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." order] - ["$." enum]]}] + [\spec + ["$." equivalence] + ["$." order] + ["$." enum]]] [macro [syntax (#+ syntax:)] ["." code]] @@ -19,8 +18,8 @@ [number ["i" int] ["." ratio ("#\." equivalence)]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (template [<name> <type> <unit>] [(def: (<name> range) diff --git a/stdlib/source/test/lux/type/variance.lux b/stdlib/source/test/lux/type/variance.lux index 83927d03c..d8f5aebf2 100644 --- a/stdlib/source/test/lux/type/variance.lux +++ b/stdlib/source/test/lux/type/variance.lux @@ -5,10 +5,10 @@ [monad (#+ do)]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / ["/#" // #_ - ["#." check]]]}) + ["#." check]]]]) (type: Super (Ex [sub] [Text sub])) diff --git a/stdlib/source/test/lux/world/console.lux b/stdlib/source/test/lux/world/console.lux index b196199fc..b153e84e9 100644 --- a/stdlib/source/test/lux/world/console.lux +++ b/stdlib/source/test/lux/world/console.lux @@ -12,10 +12,10 @@ ["%" format (#+ format)]]] [math ["." random]]] - {1 - ["." /]} - {[1 #spec] - ["$." /]}) + [\\ + ["." /]] + [\\spec + ["$." /]]) (exception: dead) diff --git a/stdlib/source/test/lux/world/file.lux b/stdlib/source/test/lux/world/file.lux index 4b9f8655a..0e5c61c8f 100644 --- a/stdlib/source/test/lux/world/file.lux +++ b/stdlib/source/test/lux/world/file.lux @@ -9,10 +9,10 @@ ["." random]]] ["." / #_ ["#." watch]] - {1 - ["." /]} - {[1 #spec] - ["$." /]}) + [\\ + ["." /]] + [\\spec + ["$." /]]) (def: #export test Test diff --git a/stdlib/source/test/lux/world/file/watch.lux b/stdlib/source/test/lux/world/file/watch.lux index 57511136e..9b9937a25 100644 --- a/stdlib/source/test/lux/world/file/watch.lux +++ b/stdlib/source/test/lux/world/file/watch.lux @@ -17,9 +17,9 @@ ["." list]]] [math ["." random (#+ Random) ("#\." monad)]]] - {1 + [\\ ["." / - ["/#" //]]} + ["/#" //]]] [//// [data ["$." binary]]]) diff --git a/stdlib/source/test/lux/world/input/keyboard.lux b/stdlib/source/test/lux/world/input/keyboard.lux index 1dde1aaa7..b58bff96f 100644 --- a/stdlib/source/test/lux/world/input/keyboard.lux +++ b/stdlib/source/test/lux/world/input/keyboard.lux @@ -15,8 +15,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (with_expansions [<groups> (as_is [keys/commands [/.back_space diff --git a/stdlib/source/test/lux/world/net/http/client.lux b/stdlib/source/test/lux/world/net/http/client.lux index 0ac51bad0..612d599ff 100644 --- a/stdlib/source/test/lux/world/net/http/client.lux +++ b/stdlib/source/test/lux/world/net/http/client.lux @@ -19,10 +19,10 @@ ["." random (#+ Random)] [number ["." nat]]]] - {1 + [\\ ["." / ["/#" // - ["#." status]]]}) + ["#." status]]]]) (def: #export test Test diff --git a/stdlib/source/test/lux/world/net/http/status.lux b/stdlib/source/test/lux/world/net/http/status.lux index 801dc1b43..84fbf4b2c 100644 --- a/stdlib/source/test/lux/world/net/http/status.lux +++ b/stdlib/source/test/lux/world/net/http/status.lux @@ -10,9 +10,9 @@ [math [number ["n" nat]]]] - {1 + [\\ ["." / - ["/#" //]]}) + ["/#" //]]]) (with_expansions [<categories> (as_is [informational [/.continue diff --git a/stdlib/source/test/lux/world/output/video/resolution.lux b/stdlib/source/test/lux/world/output/video/resolution.lux index b7684ed2f..ebeec3a65 100644 --- a/stdlib/source/test/lux/world/output/video/resolution.lux +++ b/stdlib/source/test/lux/world/output/video/resolution.lux @@ -3,10 +3,9 @@ ["_" test (#+ Test)] [abstract [monad (#+ do)] - {[0 #spec] - [/ - ["$." equivalence] - ["$." hash]]}] + [\spec + ["$." equivalence] + ["$." hash]]] [data ["." maybe] [collection @@ -16,8 +15,8 @@ ["." random (#+ Random)] [number ["n" nat]]]] - {1 - ["." /]}) + [\\ + ["." /]]) (with_expansions [<resolutions> (as_is /.svga /.wsvga diff --git a/stdlib/source/test/lux/world/program.lux b/stdlib/source/test/lux/world/program.lux index 91484bf50..d91d7fc62 100644 --- a/stdlib/source/test/lux/world/program.lux +++ b/stdlib/source/test/lux/world/program.lux @@ -10,12 +10,12 @@ ["." text]] [math ["." random (#+ Random)]]] - {1 + [\\ ["." / [// - [file (#+ Path)]]]} - {[1 #spec] - ["$." /]}) + [file (#+ Path)]]]] + [\\spec + ["$." /]]) (def: environment (Random Environment) diff --git a/stdlib/source/test/lux/world/shell.lux b/stdlib/source/test/lux/world/shell.lux index 64fa47d28..4cbdb27ed 100644 --- a/stdlib/source/test/lux/world/shell.lux +++ b/stdlib/source/test/lux/world/shell.lux @@ -20,12 +20,12 @@ [number ["n" nat] ["i" int]]]] - {1 + [\\ ["." / [// - [file (#+ Path)]]]} - {[1 #spec] - ["$." /]}) + [file (#+ Path)]]]] + [\\spec + ["$." /]]) (exception: dead) |