aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.gitignore2
-rw-r--r--documentation/bookmark/process.md1
-rw-r--r--licentia/commands.md6
-rw-r--r--licentia/project.lux4
-rw-r--r--licentia/source/program/licentia.lux16
-rw-r--r--lux-js/commands.md15
-rw-r--r--lux-jvm/commands.md12
-rw-r--r--lux-lua/commands.md15
-rw-r--r--lux-python/commands.md15
-rw-r--r--lux-ruby/commands.md15
-rw-r--r--stdlib/source/lux.lux104
-rw-r--r--stdlib/source/lux/ffi.old.lux30
-rw-r--r--stdlib/source/lux/time/day.lux34
-rw-r--r--stdlib/source/lux/time/month.lux56
-rw-r--r--stdlib/source/poly/lux/abstract/equivalence.lux4
-rw-r--r--stdlib/source/poly/lux/abstract/functor.lux4
-rw-r--r--stdlib/source/poly/lux/data/format/json.lux4
-rw-r--r--stdlib/source/program/aedifex/artifact/type.lux1
-rw-r--r--stdlib/source/program/aedifex/command/build.lux80
-rw-r--r--stdlib/source/program/aedifex/command/test.lux10
-rw-r--r--stdlib/source/program/aedifex/runtime.lux3
-rw-r--r--stdlib/source/spec/aedifex/repository.lux11
-rw-r--r--stdlib/source/spec/lux/abstract/apply.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/codec.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/comonad.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/enum.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/equivalence.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/fold.lux3
-rw-r--r--stdlib/source/spec/lux/abstract/functor.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/functor/contravariant.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/hash.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/interval.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/monad.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/monoid.lux4
-rw-r--r--stdlib/source/spec/lux/abstract/order.lux4
-rw-r--r--stdlib/source/spec/lux/world/console.lux4
-rw-r--r--stdlib/source/spec/lux/world/file.lux7
-rw-r--r--stdlib/source/spec/lux/world/program.lux4
-rw-r--r--stdlib/source/spec/lux/world/shell.lux4
-rw-r--r--stdlib/source/test/aedifex/artifact.lux9
-rw-r--r--stdlib/source/test/aedifex/artifact/extension.lux4
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot.lux9
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/build.lux9
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/stamp.lux9
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/time.lux9
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/version.lux9
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/version/value.lux9
-rw-r--r--stdlib/source/test/aedifex/artifact/time.lux9
-rw-r--r--stdlib/source/test/aedifex/artifact/time/date.lux4
-rw-r--r--stdlib/source/test/aedifex/artifact/time/time.lux4
-rw-r--r--stdlib/source/test/aedifex/artifact/type.lux4
-rw-r--r--stdlib/source/test/aedifex/artifact/versioning.lux9
-rw-r--r--stdlib/source/test/aedifex/cache.lux4
-rw-r--r--stdlib/source/test/aedifex/cli.lux9
-rw-r--r--stdlib/source/test/aedifex/command.lux4
-rw-r--r--stdlib/source/test/aedifex/command/auto.lux7
-rw-r--r--stdlib/source/test/aedifex/command/build.lux50
-rw-r--r--stdlib/source/test/aedifex/command/clean.lux4
-rw-r--r--stdlib/source/test/aedifex/command/deploy.lux4
-rw-r--r--stdlib/source/test/aedifex/command/deps.lux4
-rw-r--r--stdlib/source/test/aedifex/command/install.lux4
-rw-r--r--stdlib/source/test/aedifex/command/pom.lux4
-rw-r--r--stdlib/source/test/aedifex/command/test.lux14
-rw-r--r--stdlib/source/test/aedifex/command/version.lux4
-rw-r--r--stdlib/source/test/aedifex/dependency.lux9
-rw-r--r--stdlib/source/test/aedifex/dependency/deployment.lux4
-rw-r--r--stdlib/source/test/aedifex/dependency/resolution.lux9
-rw-r--r--stdlib/source/test/aedifex/dependency/status.lux9
-rw-r--r--stdlib/source/test/aedifex/hash.lux11
-rw-r--r--stdlib/source/test/aedifex/input.lux4
-rw-r--r--stdlib/source/test/aedifex/local.lux4
-rw-r--r--stdlib/source/test/aedifex/metadata.lux4
-rw-r--r--stdlib/source/test/aedifex/metadata/artifact.lux9
-rw-r--r--stdlib/source/test/aedifex/metadata/snapshot.lux9
-rw-r--r--stdlib/source/test/aedifex/package.lux9
-rw-r--r--stdlib/source/test/aedifex/parser.lux4
-rw-r--r--stdlib/source/test/aedifex/pom.lux4
-rw-r--r--stdlib/source/test/aedifex/profile.lux11
-rw-r--r--stdlib/source/test/aedifex/project.lux11
-rw-r--r--stdlib/source/test/aedifex/repository.lux8
-rw-r--r--stdlib/source/test/aedifex/repository/identity.lux9
-rw-r--r--stdlib/source/test/aedifex/repository/local.lux4
-rw-r--r--stdlib/source/test/aedifex/repository/origin.lux9
-rw-r--r--stdlib/source/test/aedifex/repository/remote.lux4
-rw-r--r--stdlib/source/test/aedifex/runtime.lux4
-rw-r--r--stdlib/source/test/lux/abstract/apply.lux4
-rw-r--r--stdlib/source/test/lux/abstract/codec.lux4
-rw-r--r--stdlib/source/test/lux/abstract/comonad.lux4
-rw-r--r--stdlib/source/test/lux/abstract/comonad/cofree.lux11
-rw-r--r--stdlib/source/test/lux/abstract/enum.lux4
-rw-r--r--stdlib/source/test/lux/abstract/equivalence.lux11
-rw-r--r--stdlib/source/test/lux/abstract/fold.lux4
-rw-r--r--stdlib/source/test/lux/abstract/functor.lux4
-rw-r--r--stdlib/source/test/lux/abstract/functor/contravariant.lux4
-rw-r--r--stdlib/source/test/lux/abstract/hash.lux11
-rw-r--r--stdlib/source/test/lux/abstract/interval.lux9
-rw-r--r--stdlib/source/test/lux/abstract/monad.lux4
-rw-r--r--stdlib/source/test/lux/abstract/monad/free.lux13
-rw-r--r--stdlib/source/test/lux/abstract/monoid.lux4
-rw-r--r--stdlib/source/test/lux/abstract/order.lux11
-rw-r--r--stdlib/source/test/lux/abstract/predicate.lux13
-rw-r--r--stdlib/source/test/lux/control/concatenative.lux4
-rw-r--r--stdlib/source/test/lux/control/concurrency/actor.lux4
-rw-r--r--stdlib/source/test/lux/control/concurrency/atom.lux4
-rw-r--r--stdlib/source/test/lux/control/concurrency/frp.lux13
-rw-r--r--stdlib/source/test/lux/control/concurrency/promise.lux13
-rw-r--r--stdlib/source/test/lux/control/concurrency/semaphore.lux4
-rw-r--r--stdlib/source/test/lux/control/concurrency/stm.lux13
-rw-r--r--stdlib/source/test/lux/control/concurrency/thread.lux4
-rw-r--r--stdlib/source/test/lux/control/continuation.lux13
-rw-r--r--stdlib/source/test/lux/control/exception.lux4
-rw-r--r--stdlib/source/test/lux/control/function.lux9
-rw-r--r--stdlib/source/test/lux/control/function/contract.lux4
-rw-r--r--stdlib/source/test/lux/control/function/memo.lux4
-rw-r--r--stdlib/source/test/lux/control/function/mixin.lux9
-rw-r--r--stdlib/source/test/lux/control/function/mutual.lux4
-rw-r--r--stdlib/source/test/lux/control/io.lux13
-rw-r--r--stdlib/source/test/lux/control/parser.lux13
-rw-r--r--stdlib/source/test/lux/control/parser/analysis.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/binary.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/cli.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/code.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/environment.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/json.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/synthesis.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/text.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/tree.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/type.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/xml.lux4
-rw-r--r--stdlib/source/test/lux/control/pipe.lux4
-rw-r--r--stdlib/source/test/lux/control/reader.lux13
-rw-r--r--stdlib/source/test/lux/control/region.lux13
-rw-r--r--stdlib/source/test/lux/control/remember.lux4
-rw-r--r--stdlib/source/test/lux/control/security/capability.lux4
-rw-r--r--stdlib/source/test/lux/control/security/policy.lux13
-rw-r--r--stdlib/source/test/lux/control/state.lux13
-rw-r--r--stdlib/source/test/lux/control/thread.lux13
-rw-r--r--stdlib/source/test/lux/control/try.lux15
-rw-r--r--stdlib/source/test/lux/control/writer.lux13
-rw-r--r--stdlib/source/test/lux/data/binary.lux11
-rw-r--r--stdlib/source/test/lux/data/bit.lux15
-rw-r--r--stdlib/source/test/lux/data/collection/array.lux15
-rw-r--r--stdlib/source/test/lux/data/collection/bits.lux9
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary.lux11
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary/ordered.lux9
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary/plist.lux9
-rw-r--r--stdlib/source/test/lux/data/collection/list.lux21
-rw-r--r--stdlib/source/test/lux/data/collection/queue.lux11
-rw-r--r--stdlib/source/test/lux/data/collection/queue/priority.lux4
-rw-r--r--stdlib/source/test/lux/data/collection/row.lux19
-rw-r--r--stdlib/source/test/lux/data/collection/sequence.lux11
-rw-r--r--stdlib/source/test/lux/data/collection/set.lux13
-rw-r--r--stdlib/source/test/lux/data/collection/set/multi.lux11
-rw-r--r--stdlib/source/test/lux/data/collection/set/ordered.lux9
-rw-r--r--stdlib/source/test/lux/data/collection/stack.lux11
-rw-r--r--stdlib/source/test/lux/data/collection/tree.lux13
-rw-r--r--stdlib/source/test/lux/data/collection/tree/finger.lux4
-rw-r--r--stdlib/source/test/lux/data/collection/tree/zipper.lux13
-rw-r--r--stdlib/source/test/lux/data/color.lux13
-rw-r--r--stdlib/source/test/lux/data/color/named.lux4
-rw-r--r--stdlib/source/test/lux/data/format/binary.lux9
-rw-r--r--stdlib/source/test/lux/data/format/json.lux11
-rw-r--r--stdlib/source/test/lux/data/format/tar.lux4
-rw-r--r--stdlib/source/test/lux/data/format/xml.lux11
-rw-r--r--stdlib/source/test/lux/data/identity.lux15
-rw-r--r--stdlib/source/test/lux/data/lazy.lux15
-rw-r--r--stdlib/source/test/lux/data/maybe.lux19
-rw-r--r--stdlib/source/test/lux/data/name.lux15
-rw-r--r--stdlib/source/test/lux/data/product.lux9
-rw-r--r--stdlib/source/test/lux/data/sum.lux9
-rw-r--r--stdlib/source/test/lux/data/text.lux15
-rw-r--r--stdlib/source/test/lux/data/text/buffer.lux4
-rw-r--r--stdlib/source/test/lux/data/text/encoding.lux9
-rw-r--r--stdlib/source/test/lux/data/text/encoding/utf8.lux9
-rw-r--r--stdlib/source/test/lux/data/text/escape.lux4
-rw-r--r--stdlib/source/test/lux/data/text/format.lux9
-rw-r--r--stdlib/source/test/lux/data/text/regex.lux4
-rw-r--r--stdlib/source/test/lux/data/text/unicode/block.lux13
-rw-r--r--stdlib/source/test/lux/data/text/unicode/set.lux9
-rw-r--r--stdlib/source/test/lux/debug.lux4
-rw-r--r--stdlib/source/test/lux/extension.lux4
-rw-r--r--stdlib/source/test/lux/ffi.js.lux4
-rw-r--r--stdlib/source/test/lux/ffi.jvm.lux4
-rw-r--r--stdlib/source/test/lux/ffi.lua.lux4
-rw-r--r--stdlib/source/test/lux/ffi.old.lux297
-rw-r--r--stdlib/source/test/lux/ffi.php.lux4
-rw-r--r--stdlib/source/test/lux/ffi.py.lux4
-rw-r--r--stdlib/source/test/lux/ffi.rb.lux4
-rw-r--r--stdlib/source/test/lux/ffi.scm.lux4
-rw-r--r--stdlib/source/test/lux/locale.lux11
-rw-r--r--stdlib/source/test/lux/locale/language.lux9
-rw-r--r--stdlib/source/test/lux/locale/territory.lux9
-rw-r--r--stdlib/source/test/lux/macro.lux4
-rw-r--r--stdlib/source/test/lux/macro/code.lux9
-rw-r--r--stdlib/source/test/lux/macro/local.lux4
-rw-r--r--stdlib/source/test/lux/macro/poly.lux4
-rw-r--r--stdlib/source/test/lux/macro/poly/equivalence.lux9
-rw-r--r--stdlib/source/test/lux/macro/poly/functor.lux4
-rw-r--r--stdlib/source/test/lux/macro/poly/json.lux14
-rw-r--r--stdlib/source/test/lux/macro/syntax.lux4
-rw-r--r--stdlib/source/test/lux/macro/syntax/annotations.lux9
-rw-r--r--stdlib/source/test/lux/macro/syntax/check.lux9
-rw-r--r--stdlib/source/test/lux/macro/syntax/declaration.lux9
-rw-r--r--stdlib/source/test/lux/macro/syntax/definition.lux9
-rw-r--r--stdlib/source/test/lux/macro/syntax/export.lux4
-rw-r--r--stdlib/source/test/lux/macro/syntax/input.lux9
-rw-r--r--stdlib/source/test/lux/macro/syntax/type/variable.lux9
-rw-r--r--stdlib/source/test/lux/macro/template.lux4
-rw-r--r--stdlib/source/test/lux/math.lux4
-rw-r--r--stdlib/source/test/lux/math/infix.lux4
-rw-r--r--stdlib/source/test/lux/math/logic/continuous.lux9
-rw-r--r--stdlib/source/test/lux/math/logic/fuzzy.lux11
-rw-r--r--stdlib/source/test/lux/math/modular.lux15
-rw-r--r--stdlib/source/test/lux/math/modulus.lux4
-rw-r--r--stdlib/source/test/lux/math/number.lux4
-rw-r--r--stdlib/source/test/lux/math/number/complex.lux13
-rw-r--r--stdlib/source/test/lux/math/number/frac.lux17
-rw-r--r--stdlib/source/test/lux/math/number/i16.lux9
-rw-r--r--stdlib/source/test/lux/math/number/i32.lux9
-rw-r--r--stdlib/source/test/lux/math/number/i64.lux13
-rw-r--r--stdlib/source/test/lux/math/number/i8.lux9
-rw-r--r--stdlib/source/test/lux/math/number/int.lux21
-rw-r--r--stdlib/source/test/lux/math/number/nat.lux21
-rw-r--r--stdlib/source/test/lux/math/number/ratio.lux15
-rw-r--r--stdlib/source/test/lux/math/number/rev.lux21
-rw-r--r--stdlib/source/test/lux/meta.lux13
-rw-r--r--stdlib/source/test/lux/meta/annotation.lux4
-rw-r--r--stdlib/source/test/lux/meta/location.lux9
-rw-r--r--stdlib/source/test/lux/program.lux4
-rw-r--r--stdlib/source/test/lux/target.lux4
-rw-r--r--stdlib/source/test/lux/target/jvm.lux4
-rw-r--r--stdlib/source/test/lux/test.lux4
-rw-r--r--stdlib/source/test/lux/time.lux15
-rw-r--r--stdlib/source/test/lux/time/date.lux15
-rw-r--r--stdlib/source/test/lux/time/day.lux30
-rw-r--r--stdlib/source/test/lux/time/duration.lux17
-rw-r--r--stdlib/source/test/lux/time/instant.lux15
-rw-r--r--stdlib/source/test/lux/time/month.lux30
-rw-r--r--stdlib/source/test/lux/time/year.lux13
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux4
-rw-r--r--stdlib/source/test/lux/type.lux9
-rw-r--r--stdlib/source/test/lux/type/abstract.lux4
-rw-r--r--stdlib/source/test/lux/type/check.lux13
-rw-r--r--stdlib/source/test/lux/type/dynamic.lux4
-rw-r--r--stdlib/source/test/lux/type/implicit.lux4
-rw-r--r--stdlib/source/test/lux/type/quotient.lux9
-rw-r--r--stdlib/source/test/lux/type/refinement.lux4
-rw-r--r--stdlib/source/test/lux/type/resource.lux4
-rw-r--r--stdlib/source/test/lux/type/unit.lux13
-rw-r--r--stdlib/source/test/lux/type/variance.lux4
-rw-r--r--stdlib/source/test/lux/world/console.lux8
-rw-r--r--stdlib/source/test/lux/world/file.lux8
-rw-r--r--stdlib/source/test/lux/world/file/watch.lux4
-rw-r--r--stdlib/source/test/lux/world/input/keyboard.lux4
-rw-r--r--stdlib/source/test/lux/world/net/http/client.lux4
-rw-r--r--stdlib/source/test/lux/world/net/http/status.lux4
-rw-r--r--stdlib/source/test/lux/world/output/video/resolution.lux11
-rw-r--r--stdlib/source/test/lux/world/program.lux8
-rw-r--r--stdlib/source/test/lux/world/shell.lux8
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)