From 68d78235694c633c956bb9e8a007cad7d65370bc Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 10 Aug 2022 19:38:43 -0400 Subject: Extracted property-based testing machinery into its own module. --- stdlib/source/documentation/lux.lux | 1703 ++++++++++---------- stdlib/source/documentation/lux/program.lux | 103 +- stdlib/source/documentation/lux/test.lux | 118 +- stdlib/source/documentation/lux/test/coverage.lux | 20 + stdlib/source/documentation/lux/test/property.lux | 86 + stdlib/source/documentation/lux/test/tally.lux | 26 + stdlib/source/documentation/lux/test/unit.lux | 51 + stdlib/source/documentation/lux/world.lux | 4 +- stdlib/source/documentation/lux/world/console.lux | 43 +- .../source/documentation/lux/world/environment.lux | 102 +- stdlib/source/documentation/lux/world/file.lux | 105 +- .../source/documentation/lux/world/file/watch.lux | 67 +- .../documentation/lux/world/input/keyboard.lux | 187 +-- stdlib/source/documentation/lux/world/locale.lux | 37 +- .../documentation/lux/world/locale/language.lux | 1192 +++++++------- .../documentation/lux/world/locale/territory.lux | 591 +++---- stdlib/source/documentation/lux/world/net.lux | 37 +- .../documentation/lux/world/net/http/client.lux | 51 +- .../documentation/lux/world/net/http/status.lux | 159 +- stdlib/source/documentation/lux/world/net/uri.lux | 19 +- .../lux/world/output/video/resolution.lux | 69 +- stdlib/source/documentation/lux/world/shell.lux | 67 +- stdlib/source/documentation/lux/world/time.lux | 101 +- .../source/documentation/lux/world/time/date.lux | 53 +- stdlib/source/documentation/lux/world/time/day.lux | 39 +- .../documentation/lux/world/time/duration.lux | 73 +- .../documentation/lux/world/time/instant.lux | 95 +- .../source/documentation/lux/world/time/month.lux | 51 +- .../source/documentation/lux/world/time/year.lux | 79 +- stdlib/source/library/lux/test.lux | 284 ---- stdlib/source/library/lux/test/property.lux | 284 ++++ stdlib/source/specification/aedifex/repository.lux | 5 +- stdlib/source/specification/compositor.lux | 42 +- .../specification/compositor/analysis/type.lux | 40 +- .../specification/compositor/generation/case.lux | 54 +- .../specification/compositor/generation/common.lux | 54 +- .../compositor/generation/function.lux | 40 +- .../compositor/generation/primitive.lux | 38 +- .../compositor/generation/reference.lux | 36 +- .../compositor/generation/structure.lux | 50 +- stdlib/source/specification/lux/abstract/apply.lux | 5 +- stdlib/source/specification/lux/abstract/codec.lux | 5 +- .../source/specification/lux/abstract/comonad.lux | 5 +- stdlib/source/specification/lux/abstract/enum.lux | 5 +- .../specification/lux/abstract/equivalence.lux | 5 +- .../source/specification/lux/abstract/functor.lux | 23 +- .../lux/abstract/functor/contravariant.lux | 5 +- stdlib/source/specification/lux/abstract/hash.lux | 5 +- .../source/specification/lux/abstract/interval.lux | 5 +- stdlib/source/specification/lux/abstract/mix.lux | 5 +- stdlib/source/specification/lux/abstract/monad.lux | 5 +- .../source/specification/lux/abstract/monoid.lux | 5 +- stdlib/source/specification/lux/abstract/order.lux | 5 +- stdlib/source/specification/lux/world/console.lux | 3 +- .../source/specification/lux/world/environment.lux | 3 +- stdlib/source/specification/lux/world/file.lux | 3 +- stdlib/source/specification/lux/world/shell.lux | 3 +- stdlib/source/test/aedifex.lux | 5 +- stdlib/source/test/aedifex/artifact.lux | 5 +- stdlib/source/test/aedifex/artifact/extension.lux | 5 +- stdlib/source/test/aedifex/artifact/snapshot.lux | 5 +- .../test/aedifex/artifact/snapshot/build.lux | 5 +- .../test/aedifex/artifact/snapshot/stamp.lux | 5 +- .../source/test/aedifex/artifact/snapshot/time.lux | 5 +- .../test/aedifex/artifact/snapshot/version.lux | 5 +- .../aedifex/artifact/snapshot/version/value.lux | 5 +- stdlib/source/test/aedifex/artifact/time.lux | 5 +- stdlib/source/test/aedifex/artifact/time/date.lux | 5 +- stdlib/source/test/aedifex/artifact/time/time.lux | 5 +- stdlib/source/test/aedifex/artifact/type.lux | 5 +- stdlib/source/test/aedifex/artifact/versioning.lux | 5 +- stdlib/source/test/aedifex/cache.lux | 5 +- stdlib/source/test/aedifex/cli.lux | 5 +- stdlib/source/test/aedifex/command.lux | 3 +- stdlib/source/test/aedifex/command/auto.lux | 5 +- stdlib/source/test/aedifex/command/build.lux | 5 +- stdlib/source/test/aedifex/command/clean.lux | 5 +- stdlib/source/test/aedifex/command/deploy.lux | 5 +- stdlib/source/test/aedifex/command/deps.lux | 5 +- stdlib/source/test/aedifex/command/install.lux | 5 +- stdlib/source/test/aedifex/command/pom.lux | 5 +- stdlib/source/test/aedifex/command/test.lux | 5 +- stdlib/source/test/aedifex/command/version.lux | 5 +- stdlib/source/test/aedifex/dependency.lux | 5 +- .../source/test/aedifex/dependency/deployment.lux | 5 +- .../source/test/aedifex/dependency/resolution.lux | 5 +- stdlib/source/test/aedifex/dependency/status.lux | 5 +- stdlib/source/test/aedifex/hash.lux | 5 +- stdlib/source/test/aedifex/input.lux | 5 +- stdlib/source/test/aedifex/local.lux | 5 +- stdlib/source/test/aedifex/metadata.lux | 5 +- stdlib/source/test/aedifex/metadata/artifact.lux | 5 +- stdlib/source/test/aedifex/metadata/snapshot.lux | 5 +- stdlib/source/test/aedifex/package.lux | 5 +- stdlib/source/test/aedifex/parser.lux | 5 +- stdlib/source/test/aedifex/pom.lux | 5 +- stdlib/source/test/aedifex/profile.lux | 5 +- stdlib/source/test/aedifex/project.lux | 5 +- stdlib/source/test/aedifex/repository.lux | 5 +- stdlib/source/test/aedifex/repository/identity.lux | 5 +- stdlib/source/test/aedifex/repository/local.lux | 5 +- stdlib/source/test/aedifex/repository/origin.lux | 5 +- stdlib/source/test/aedifex/repository/remote.lux | 5 +- stdlib/source/test/aedifex/runtime.lux | 5 +- stdlib/source/test/lux.lux | 29 +- stdlib/source/test/lux/abstract.lux | 3 +- stdlib/source/test/lux/abstract/apply.lux | 5 +- stdlib/source/test/lux/abstract/codec.lux | 5 +- stdlib/source/test/lux/abstract/comonad.lux | 5 +- stdlib/source/test/lux/abstract/comonad/free.lux | 5 +- stdlib/source/test/lux/abstract/enum.lux | 5 +- stdlib/source/test/lux/abstract/equivalence.lux | 5 +- stdlib/source/test/lux/abstract/functor.lux | 5 +- .../test/lux/abstract/functor/contravariant.lux | 3 +- stdlib/source/test/lux/abstract/hash.lux | 5 +- stdlib/source/test/lux/abstract/interval.lux | 5 +- stdlib/source/test/lux/abstract/mix.lux | 5 +- stdlib/source/test/lux/abstract/monad.lux | 5 +- stdlib/source/test/lux/abstract/monad/free.lux | 5 +- stdlib/source/test/lux/abstract/monoid.lux | 5 +- stdlib/source/test/lux/abstract/order.lux | 5 +- stdlib/source/test/lux/control.lux | 3 +- stdlib/source/test/lux/control/concatenative.lux | 5 +- .../source/test/lux/control/concurrency/actor.lux | 3 +- .../source/test/lux/control/concurrency/async.lux | 3 +- .../source/test/lux/control/concurrency/atom.lux | 5 +- stdlib/source/test/lux/control/concurrency/frp.lux | 3 +- .../test/lux/control/concurrency/semaphore.lux | 3 +- stdlib/source/test/lux/control/concurrency/stm.lux | 3 +- .../source/test/lux/control/concurrency/thread.lux | 3 +- stdlib/source/test/lux/control/continuation.lux | 5 +- stdlib/source/test/lux/control/exception.lux | 5 +- stdlib/source/test/lux/control/function.lux | 5 +- .../source/test/lux/control/function/contract.lux | 5 +- stdlib/source/test/lux/control/function/inline.lux | 5 +- stdlib/source/test/lux/control/function/memo.lux | 5 +- stdlib/source/test/lux/control/function/mixin.lux | 5 +- stdlib/source/test/lux/control/function/mutual.lux | 5 +- .../source/test/lux/control/function/predicate.lux | 5 +- stdlib/source/test/lux/control/io.lux | 5 +- stdlib/source/test/lux/control/lazy.lux | 5 +- stdlib/source/test/lux/control/maybe.lux | 5 +- stdlib/source/test/lux/control/parser.lux | 5 +- stdlib/source/test/lux/control/pipe.lux | 5 +- stdlib/source/test/lux/control/reader.lux | 5 +- stdlib/source/test/lux/control/region.lux | 5 +- stdlib/source/test/lux/control/remember.lux | 5 +- .../test/lux/control/security/capability.lux | 3 +- stdlib/source/test/lux/control/security/policy.lux | 5 +- stdlib/source/test/lux/control/state.lux | 5 +- stdlib/source/test/lux/control/thread.lux | 5 +- stdlib/source/test/lux/control/try.lux | 5 +- stdlib/source/test/lux/control/writer.lux | 5 +- stdlib/source/test/lux/data.lux | 5 +- stdlib/source/test/lux/data/binary.lux | 5 +- stdlib/source/test/lux/data/bit.lux | 5 +- stdlib/source/test/lux/data/collection.lux | 3 +- stdlib/source/test/lux/data/collection/array.lux | 5 +- stdlib/source/test/lux/data/collection/bits.lux | 5 +- .../source/test/lux/data/collection/dictionary.lux | 5 +- .../lux/data/collection/dictionary/ordered.lux | 5 +- stdlib/source/test/lux/data/collection/list.lux | 5 +- .../test/lux/data/collection/list/property.lux | 5 +- stdlib/source/test/lux/data/collection/queue.lux | 5 +- .../test/lux/data/collection/queue/priority.lux | 5 +- .../source/test/lux/data/collection/sequence.lux | 5 +- stdlib/source/test/lux/data/collection/set.lux | 5 +- .../source/test/lux/data/collection/set/multi.lux | 5 +- .../test/lux/data/collection/set/ordered.lux | 5 +- stdlib/source/test/lux/data/collection/stack.lux | 5 +- stdlib/source/test/lux/data/collection/stream.lux | 5 +- stdlib/source/test/lux/data/collection/tree.lux | 5 +- .../test/lux/data/collection/tree/finger.lux | 5 +- .../test/lux/data/collection/tree/zipper.lux | 5 +- stdlib/source/test/lux/data/color.lux | 5 +- stdlib/source/test/lux/data/color/named.lux | 5 +- stdlib/source/test/lux/data/format/json.lux | 5 +- stdlib/source/test/lux/data/format/tar.lux | 5 +- stdlib/source/test/lux/data/format/xml.lux | 5 +- stdlib/source/test/lux/data/identity.lux | 5 +- stdlib/source/test/lux/data/product.lux | 5 +- stdlib/source/test/lux/data/sum.lux | 5 +- stdlib/source/test/lux/data/text.lux | 5 +- stdlib/source/test/lux/data/text/buffer.lux | 5 +- stdlib/source/test/lux/data/text/encoding.lux | 5 +- stdlib/source/test/lux/data/text/encoding/utf8.lux | 5 +- stdlib/source/test/lux/data/text/escape.lux | 5 +- stdlib/source/test/lux/data/text/regex.lux | 5 +- stdlib/source/test/lux/data/text/unicode/block.lux | 5 +- stdlib/source/test/lux/data/text/unicode/set.lux | 5 +- stdlib/source/test/lux/debug.lux | 5 +- stdlib/source/test/lux/documentation.lux | 5 +- stdlib/source/test/lux/ffi.js.lux | 5 +- stdlib/source/test/lux/ffi.jvm.lux | 5 +- stdlib/source/test/lux/ffi.lua.lux | 5 +- stdlib/source/test/lux/ffi.old.lux | 5 +- stdlib/source/test/lux/ffi.php.lux | 5 +- stdlib/source/test/lux/ffi.py.lux | 5 +- stdlib/source/test/lux/ffi.rb.lux | 5 +- stdlib/source/test/lux/ffi.scm.lux | 5 +- stdlib/source/test/lux/ffi/export.js.lux | 5 +- stdlib/source/test/lux/ffi/export.jvm.lux | 5 +- stdlib/source/test/lux/ffi/export.lua.lux | 5 +- stdlib/source/test/lux/ffi/export.py.lux | 5 +- stdlib/source/test/lux/ffi/export.rb.lux | 5 +- stdlib/source/test/lux/math.lux | 5 +- stdlib/source/test/lux/math/infix.lux | 5 +- stdlib/source/test/lux/math/logic/continuous.lux | 5 +- stdlib/source/test/lux/math/logic/fuzzy.lux | 5 +- stdlib/source/test/lux/math/modular.lux | 5 +- stdlib/source/test/lux/math/modulus.lux | 5 +- stdlib/source/test/lux/math/number.lux | 5 +- stdlib/source/test/lux/math/number/complex.lux | 5 +- stdlib/source/test/lux/math/number/frac.lux | 5 +- stdlib/source/test/lux/math/number/i16.lux | 5 +- stdlib/source/test/lux/math/number/i32.lux | 5 +- stdlib/source/test/lux/math/number/i64.lux | 5 +- stdlib/source/test/lux/math/number/i8.lux | 5 +- stdlib/source/test/lux/math/number/int.lux | 5 +- stdlib/source/test/lux/math/number/nat.lux | 5 +- stdlib/source/test/lux/math/number/ratio.lux | 5 +- stdlib/source/test/lux/math/number/rev.lux | 5 +- stdlib/source/test/lux/meta.lux | 5 +- stdlib/source/test/lux/meta/code.lux | 5 +- stdlib/source/test/lux/meta/compiler/arity.lux | 5 +- .../lux/meta/compiler/language/lux/analysis.lux | 5 +- .../compiler/language/lux/analysis/complex.lux | 5 +- .../compiler/language/lux/analysis/coverage.lux | 5 +- .../compiler/language/lux/analysis/inference.lux | 5 +- .../meta/compiler/language/lux/analysis/macro.lux | 5 +- .../meta/compiler/language/lux/analysis/module.lux | 5 +- .../compiler/language/lux/analysis/pattern.lux | 5 +- .../meta/compiler/language/lux/analysis/scope.lux | 5 +- .../meta/compiler/language/lux/analysis/simple.lux | 5 +- .../meta/compiler/language/lux/analysis/type.lux | 5 +- .../meta/compiler/language/lux/phase/analysis.lux | 5 +- .../compiler/language/lux/phase/analysis/case.lux | 5 +- .../language/lux/phase/analysis/complex.lux | 5 +- .../language/lux/phase/analysis/function.lux | 5 +- .../language/lux/phase/analysis/reference.lux | 5 +- .../language/lux/phase/analysis/simple.lux | 5 +- .../meta/compiler/language/lux/phase/extension.lux | 5 +- .../language/lux/phase/extension/analysis/lux.lux | 40 +- .../meta/compiler/language/lux/phase/synthesis.lux | 6 +- .../compiler/language/lux/phase/synthesis/case.lux | 46 +- .../language/lux/phase/synthesis/function.lux | 44 +- .../compiler/language/lux/phase/synthesis/loop.lux | 30 +- .../language/lux/phase/synthesis/primitive.lux | 32 +- .../language/lux/phase/synthesis/structure.lux | 40 +- .../language/lux/phase/synthesis/variable.lux | 42 +- .../test/lux/meta/compiler/language/lux/syntax.lux | 5 +- .../lux/meta/compiler/language/lux/synthesis.lux | 5 +- .../compiler/language/lux/synthesis/access.lux | 3 +- .../language/lux/synthesis/access/member.lux | 5 +- .../language/lux/synthesis/access/side.lux | 5 +- .../compiler/language/lux/synthesis/simple.lux | 5 +- .../source/test/lux/meta/compiler/meta/archive.lux | 5 +- .../lux/meta/compiler/meta/archive/artifact.lux | 5 +- .../compiler/meta/archive/artifact/category.lux | 5 +- .../test/lux/meta/compiler/meta/archive/key.lux | 5 +- .../test/lux/meta/compiler/meta/archive/module.lux | 5 +- .../compiler/meta/archive/module/descriptor.lux | 5 +- .../meta/compiler/meta/archive/module/document.lux | 5 +- .../lux/meta/compiler/meta/archive/registry.lux | 5 +- .../lux/meta/compiler/meta/archive/signature.lux | 5 +- .../test/lux/meta/compiler/meta/archive/unit.lux | 5 +- .../source/test/lux/meta/compiler/meta/cache.lux | 5 +- .../test/lux/meta/compiler/meta/cache/archive.lux | 5 +- .../test/lux/meta/compiler/meta/cache/artifact.lux | 5 +- .../test/lux/meta/compiler/meta/cache/module.lux | 5 +- .../test/lux/meta/compiler/meta/cache/purge.lux | 5 +- stdlib/source/test/lux/meta/compiler/meta/cli.lux | 5 +- .../test/lux/meta/compiler/meta/cli/compiler.lux | 5 +- .../source/test/lux/meta/compiler/meta/context.lux | 5 +- .../source/test/lux/meta/compiler/meta/export.lux | 5 +- .../source/test/lux/meta/compiler/meta/import.lux | 5 +- stdlib/source/test/lux/meta/compiler/phase.lux | 5 +- stdlib/source/test/lux/meta/compiler/reference.lux | 5 +- .../test/lux/meta/compiler/reference/variable.lux | 5 +- stdlib/source/test/lux/meta/compiler/version.lux | 5 +- stdlib/source/test/lux/meta/configuration.lux | 5 +- stdlib/source/test/lux/meta/extension.lux | 5 +- stdlib/source/test/lux/meta/location.lux | 5 +- stdlib/source/test/lux/meta/macro.lux | 5 +- stdlib/source/test/lux/meta/macro/context.lux | 3 +- stdlib/source/test/lux/meta/macro/local.lux | 5 +- stdlib/source/test/lux/meta/macro/pattern.lux | 5 +- stdlib/source/test/lux/meta/macro/syntax.lux | 5 +- stdlib/source/test/lux/meta/macro/syntax/check.lux | 5 +- .../test/lux/meta/macro/syntax/declaration.lux | 5 +- .../test/lux/meta/macro/syntax/definition.lux | 5 +- .../source/test/lux/meta/macro/syntax/export.lux | 5 +- stdlib/source/test/lux/meta/macro/syntax/input.lux | 5 +- .../test/lux/meta/macro/syntax/type/variable.lux | 5 +- stdlib/source/test/lux/meta/macro/template.lux | 5 +- stdlib/source/test/lux/meta/static.lux | 5 +- stdlib/source/test/lux/meta/symbol.lux | 5 +- stdlib/source/test/lux/meta/target.lux | 5 +- stdlib/source/test/lux/meta/target/js.lux | 5 +- stdlib/source/test/lux/meta/target/jvm.lux | 5 +- stdlib/source/test/lux/meta/target/lua.lux | 5 +- stdlib/source/test/lux/meta/target/python.lux | 5 +- stdlib/source/test/lux/meta/target/ruby.lux | 5 +- stdlib/source/test/lux/meta/type.lux | 5 +- stdlib/source/test/lux/meta/type/check.lux | 5 +- stdlib/source/test/lux/meta/type/dynamic.lux | 5 +- stdlib/source/test/lux/meta/type/implicit.lux | 5 +- stdlib/source/test/lux/meta/type/primitive.lux | 5 +- stdlib/source/test/lux/meta/type/quotient.lux | 5 +- stdlib/source/test/lux/meta/type/refinement.lux | 5 +- stdlib/source/test/lux/meta/type/resource.lux | 5 +- stdlib/source/test/lux/meta/type/unit.lux | 5 +- stdlib/source/test/lux/meta/type/unit/scale.lux | 5 +- stdlib/source/test/lux/meta/type/variance.lux | 5 +- stdlib/source/test/lux/meta/version.lux | 5 +- stdlib/source/test/lux/program.lux | 5 +- stdlib/source/test/lux/test.lux | 307 ---- stdlib/source/test/lux/test/property.lux | 308 ++++ stdlib/source/test/lux/world.lux | 3 +- stdlib/source/test/lux/world/console.lux | 5 +- stdlib/source/test/lux/world/environment.lux | 5 +- stdlib/source/test/lux/world/file.lux | 5 +- stdlib/source/test/lux/world/file/watch.lux | 5 +- stdlib/source/test/lux/world/input/keyboard.lux | 5 +- stdlib/source/test/lux/world/locale.lux | 5 +- stdlib/source/test/lux/world/locale/language.lux | 5 +- stdlib/source/test/lux/world/locale/territory.lux | 5 +- stdlib/source/test/lux/world/net/http/client.lux | 5 +- stdlib/source/test/lux/world/net/http/status.lux | 5 +- .../test/lux/world/output/video/resolution.lux | 5 +- stdlib/source/test/lux/world/shell.lux | 5 +- stdlib/source/test/lux/world/time.lux | 5 +- stdlib/source/test/lux/world/time/date.lux | 5 +- stdlib/source/test/lux/world/time/day.lux | 5 +- stdlib/source/test/lux/world/time/duration.lux | 5 +- stdlib/source/test/lux/world/time/instant.lux | 5 +- stdlib/source/test/lux/world/time/month.lux | 5 +- stdlib/source/test/lux/world/time/year.lux | 5 +- 338 files changed, 4540 insertions(+), 4054 deletions(-) create mode 100644 stdlib/source/documentation/lux/test/coverage.lux create mode 100644 stdlib/source/documentation/lux/test/property.lux create mode 100644 stdlib/source/documentation/lux/test/tally.lux create mode 100644 stdlib/source/documentation/lux/test/unit.lux delete mode 100644 stdlib/source/library/lux/test.lux create mode 100644 stdlib/source/library/lux/test/property.lux delete mode 100644 stdlib/source/test/lux/test.lux create mode 100644 stdlib/source/test/lux/test/property.lux (limited to 'stdlib') diff --git a/stdlib/source/documentation/lux.lux b/stdlib/source/documentation/lux.lux index 28350a7c9..68491c807 100644 --- a/stdlib/source/documentation/lux.lux +++ b/stdlib/source/documentation/lux.lux @@ -10,10 +10,10 @@ ["[0]" text (.only \n) ["%" \\format (.only format)]] [collection - ["[0]" list] + ["[0]" list (.use "[1]#[0]" monoid)] ["[0]" set]]]]] [\\library - ["[0]" /]] + ["[0]" / (.except)]] ["[0]" / ["[1][0]" abstract] ["[1][0]" control] @@ -27,872 +27,877 @@ ["[1][0]" test] ["[1][0]" world]]) -(.`` (.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.prelude - (format "The name of the prelude module" - \n "Value: " (%.text /.prelude))) +(`` (def .public documentation + (List $.Documentation) + (list.partial ($.module /._ + "") - ($.definition /.Any - (format "The type of things whose type is irrelevant." - \n "It can be used to write functions or data-structures that can take, or return, anything.")) + ($.definition /.prelude + (format "The name of the prelude module" + \n "Value: " (%.text /.prelude))) - ($.definition /.Nothing - (format "The type of things whose type is undefined." - \n "Useful for expressions that cause errors or other 'extraordinary' conditions.")) + ($.definition /.Any + (format "The type of things whose type is irrelevant." + \n "It can be used to write functions or data-structures that can take, or return, anything.")) - ($.definition (/.List item) - "A potentially empty list of values.") + ($.definition /.Nothing + (format "The type of things whose type is undefined." + \n "Useful for expressions that cause errors or other 'extraordinary' conditions.")) - ($.definition /.Bit - "Your standard, run-of-the-mill boolean values (as #0 or #1 bits).") + ($.definition (/.List item) + "A potentially empty list of values.") - ($.definition (/.I64 kind) - "64-bit integers without any semantics.") + ($.definition /.Bit + "Your standard, run-of-the-mill boolean values (as #0 or #1 bits).") - ($.definition /.Nat - (format "Natural numbers (unsigned integers)." - \n "They start at zero (0) and extend in the positive direction.")) + ($.definition (/.I64 kind) + "64-bit integers without any semantics.") - ($.definition /.Int - "Your standard, run-of-the-mill integer numbers.") + ($.definition /.Nat + (format "Natural numbers (unsigned integers)." + \n "They start at zero (0) and extend in the positive direction.")) - ($.definition /.Rev - (format "Fractional numbers that live in the interval [0,1)." - \n "Useful for probability, and other domains that work within that interval.")) + ($.definition /.Int + "Your standard, run-of-the-mill integer numbers.") - ($.definition /.Frac - "Your standard, run-of-the-mill floating-point (fractional) numbers.") + ($.definition /.Rev + (format "Fractional numbers that live in the interval [0,1)." + \n "Useful for probability, and other domains that work within that interval.")) - ($.definition /.Text - "Your standard, run-of-the-mill string values.") + ($.definition /.Frac + "Your standard, run-of-the-mill floating-point (fractional) numbers.") - ($.definition /.Symbol - (format "A name for a Lux definition." - \n "It includes the module of provenance.")) + ($.definition /.Text + "Your standard, run-of-the-mill string values.") - ($.definition (/.Maybe value) - "A potentially missing value.") + ($.definition /.Symbol + (format "A name for a Lux definition." + \n "It includes the module of provenance.")) - ($.definition /.Type - "This type represents the data-structures that are used to specify types themselves.") + ($.definition (/.Maybe value) + "A potentially missing value.") - ($.definition /.Location - "Locations are for specifying the location of Code nodes in Lux files during compilation.") - - ($.definition (/.Ann meta_data datum) - "The type of things that can be annotated with meta-data of arbitrary types.") - - ($.definition /.Code - "The type of Code nodes for Lux syntax.") - - ($.definition /.private - "The export policy for private/local definitions.") - - ($.definition /.local - "The export policy for private/local definitions.") - - ($.definition /.public - "The export policy for public/global definitions.") - - ($.definition /.global - "The export policy for public/global definitions.") - - ($.definition /.Definition - "Represents all the data associated with a definition: its type, its annotations, and its value.") - - ($.definition /.Global - "Represents all the data associated with a global constant.") - - ($.definition (/.Either left right) - "A choice between two values of different types.") - - ($.definition /.Module - "All the information contained within a Lux module.") - - ($.definition /.Mode - "A sign that shows the conditions under which the compiler is running.") - - ($.definition /.Info - "Information about the current version and type of compiler that is running.") - - ($.definition /.Lux - (format "Represents the state of the Lux compiler during a run." - \n "It is provided to macros during their invocation, so they can access compiler data." - \n "Caveat emptor: Avoid fiddling with it, unless you know what you're doing.")) - - ($.definition (/.Meta it) - (format "Computations that can have access to the state of the compiler." - \n "These computations may fail, or modify the state of the compiler.")) - - ($.definition /.Macro - "Functions that run at compile-time and allow you to transform and extend the language in powerful ways.") - - ($.definition /.comment - (format "Throws away any code given to it." - \n "Great for commenting-out code, while retaining syntax high-lighting and formatting in your text editor.") - [(comment - (def (this will not) - (Be Defined) - (because it will be (commented out))))]) - - ($.definition /.All - "Universal quantification." - [(All (_ a) - (-> a a))] - ["A name can be provided, to specify a recursive type." - (All (List a) - (Or Any - [a (List a)]))]) - - ($.definition /.Ex - "Existential quantification." - [(Ex (_ a) - [(Codec Text a) a])] - ["A name can be provided, to specify a recursive type." - (Ex (Self a) - [(Codec Text a) - a - (List (Self a))])]) - - ($.definition /.-> - "Function types." - ["This is the type of a function that takes 2 Ints and returns an Int." - (-> Int Int Int)]) - - ($.definition /.list - "List literals." - [(is (List Nat) - (list 0 1 2 3))]) - - ($.definition /.Union - "Union types." - [(Union Bit Nat Text)] - [(= Nothing - (Union))]) - - ($.definition /.Tuple - "Tuple types." - [(Tuple Bit Nat Text)] - [(= Any - (Tuple))]) - - ($.definition /.Or - "An alias for the Union type constructor." - [(= (Union Bit Nat Text) - (Or Bit Nat Text))] - [(= (Union) - (Or))]) - - ($.definition /.And - "An alias for the Tuple type constructor." - [(= (Tuple Bit Nat Text) - (And Bit Nat Text))] - [(= (Tuple) - (And))]) - - ($.definition /.left - "Left-association for the application of binary functions over variadic arguments." - [(left text#composite "Hello, " name ". How are you?") - "=>" - (text#composite (text#composite "Hello, " name) ". How are you?")]) - - ($.definition /.all - "Right-association for the application of binary functions over variadic arguments." - [(all text#composite "Hello, " name ". How are you?") - "=>" - (text#composite "Hello, " (text#composite name ". How are you?"))]) - - ($.definition /.if - "Picks which expression to evaluate based on a bit test value." - [(if #1 - "Oh, yeah!" - "Aw hell naw!") - "=>" - "Oh, yeah!"] - [(if #0 - "Oh, yeah!" - "Aw hell naw!") - "=>" - "Aw hell naw!"]) - - ($.definition /.Primitive - "Macro to treat define new primitive types." - [(Primitive "java.lang.Object")] - [(Primitive "java.util.List" [(Primitive "java.lang.Long")])]) - - ($.definition /.` - (format "Hygienic quasi-quotation as a macro." - \n "Unquote (,) and unquote-splice (,*) must also be used as forms." - \n "All unprefixed macros will receive their parent module's prefix if imported; otherwise will receive the prefix of the module on which the quasi-quote is being used.") - [(` (def (, name) - (function ((,' _) (,* args)) - (, body))))]) - - ($.definition /.`' - (format "Unhygienic quasi-quotation as a macro." - \n "Unquote (,) and unquote-splice (,*) must also be used as forms.") - [(`' (def (, name) - (function (_ (,* args)) - (, body))))]) - - ($.definition /.' - "Quotation as a macro." - [(' YOLO)]) - - ($.definition /.|> - "Piping macro." - [(|> elems - (list#each int#encoded) - (interposed " ") - (mix text#composite "")) - "=>" - (mix text#composite "" - (interposed " " - (list#each int#encoded - elems)))]) - - ($.definition /.<| - "Reverse piping macro." - [(<| (mix text#composite "") - (interposed " ") - (list#each int#encoded) - elems) - "=>" - (mix text#composite "" - (interposed " " - (list#each int#encoded - elems)))]) - - ($.definition /.template - "" - ["By specifying a pattern (with holes), and the input data to fill those holes, repeats the pattern as many times as necessary." - (with_template [ ] - [(def .public - (-> Int Int) - (+ ))] - - [++ +1] - [-- -1] - )]) - - ($.definition /.not - "Bit negation." - [(not #1) - "=>" - #0] - [(not #0) - "=>" - #1]) - - ($.definition /.type - "Takes a type expression and returns its representation as data-structure." - [(type_literal (All (_ a) - (Maybe (List a))))]) - - ($.definition /.is - "The type-annotation macro." - [(is (List Int) - (list +1 +2 +3))]) - - ($.definition /.as - "The type-coercion macro." - [(as Dinosaur - (list +1 +2 +3))]) - - ($.definition /.Rec - "Parameter-less recursive types." - ["A name has to be given to the whole type, to use it within its body." - (Rec Int_List - (Or Any - [Int Int_List]))] - ["Can also be used with type and labelled-type definitions." - (type Type - (Rec @ - (Variant - {#Primitive Text (List @)} - {#Sum @ @} - {#Product @ @} - {#Function @ @} - {#Parameter Nat} - {#Var Nat} - {#Ex Nat} - {#UnivQ (List @) @} - {#ExQ (List @) @} - {#Apply @ @} - {#Named Symbol @})))]) - - ($.definition /.exec - "Sequential execution of expressions (great for side-effects)." - [(exec - (log! "#1") - (log! "#2") - (log! "#3") - "YOLO")]) - - ($.definition /.case - (format "The pattern-matching macro." - \n "Allows the usage of macros within the patterns to provide custom syntax.") - [(case (is (List Int) - (list +1 +2 +3)) - {#Item x {#Item y {#Item z {#End}}}} - {#Some (all * x y z)} - - _ - {#None})]) - - ($.definition /.pattern - (format "Macro-expanding patterns." - \n "It's a special macro meant to be used with 'case'.") - [(case (is (List Int) - (list +1 +2 +3)) - (list x y z) - {#Some (all * x y z)} - - _ - {#None})]) - - ... ($.definition /.^or - ... (format "Or-patterns." - ... \n "It's a special macro meant to be used with 'case'.") - ... [(type Weekday - ... (Variant - ... {#Monday} - ... {#Tuesday} - ... {#Wednesday} - ... {#Thursday} - ... {#Friday} - ... {#Saturday} - ... {#Sunday})) - - ... (def (weekend? day) - ... (-> Weekday Bit) - ... (case day - ... (^or {#Saturday} {#Sunday}) - ... true - - ... _ - ... false))]) - - ($.definition /.let - (format "Creates local bindings." - \n "Can (optionally) use pattern-matching macros when binding.") - [(let [x (foo bar) - y (baz quux)] - (op x y))]) - - ($.definition /.function - "Syntax for creating functions." - [(is (All (_ a b) - (-> a b a)) - (function (_ x y) - x))] - ["Allows for giving the function itself a name, for the sake of recursion." - (is (-> Nat Nat) - (function (factorial n) - (case n - 0 1 - _ (* n (factorial (-- n))))))]) - - ($.definition /.def - "Defines global constants/functions." - [(def branching_exponent - Int - +5)] - ["The type is optional." - (def branching_exponent - +5)] - [(def (pair_list pair) - (-> [Code Code] (List Code)) - (let [[left right] pair] - (list left right)))] - ["Can pattern-match on the inputs to functions." - (def (pair_list [left right]) - (-> [Code Code] (List Code)) - (list left right))]) - - ($.definition /.macro - "Macro-definition macro." - [(def .public symbol - (macro (_ tokens) - (case tokens - (^with_template [] - [(list [_ { [module name]}]) - (in (list (` [(, (text$ module)) (, (text$ name))])))]) - ([#Symbol]) - - _ - (failure "Wrong syntax for symbol"))))]) - - ($.definition /.and - "Short-circuiting 'and'." - [(and #1 #0) - "=>" - #0] - [(and #1 #1) - "=>" - #1]) - - ($.definition /.or - "Short-circuiting 'or'." - [(or #1 #0) - "=>" - #1] - [(or #0 #0) - "=>" - #0]) - - ($.definition /.panic! - "Causes an error, with the given error message." - [(panic! "OH NO!")]) - - ($.definition /.implementation - "Express a value that implements an interface." - [(is (Order Int) - (implementation - (def equivalence - equivalence) - (def (< reference subject) - (< reference subject)) - ))]) - - ($.definition /.Variant - (format "Syntax for defining labelled/tagged sum/union types." - \n "WARNING: Only use it within the type macro.") - [(type Referrals - (Variant - {#All} - {#Only (List Text)} - {#Exclude (List Text)} - {#Ignore} - {#Nothing}))]) - - ($.definition /.Record - (format "Syntax for defining labelled/slotted product/tuple types." - \n "WARNING: Only use it within the type macro.") - [(type Refer - (Record - [#refer_defs Referrals - #refer_open (List Openings)]))]) - - ($.definition /.type - "The type-definition macro." - [(type (List a) - {#End} - {#Item a (List a)})]) - - ($.definition /.Interface - "Interface definition." - [(type .public (Order a) - (Interface - (is (Equivalence a) - equivalence) - (is (-> a a Bit) - <)))]) - - (.,, (.with_template [] - [($.definition - "Safe type-casting for I64 values.")] - - [/.i64] - [/.nat] - [/.int] - [/.rev] - )) - - ($.definition /.module_separator - (format "Character used to separate the parts of module names." - \n "Value: " (%.text /.module_separator))) - - ($.definition /.open - (format "Same as the 'open' macro, but meant to be used as a pattern-matching macro for generating local bindings." - \n "Takes an 'alias' text for the generated local bindings.") - [(def .public (range enum from to) - (All (_ a) (-> (Enum a) a a (List a))) - (let [(open "[0]") enum] - (loop (again [end to - output {.#End}]) - (cond (< end from) - (again (pred end) {.#Item end output}) - - (< from end) - (again (succ end) {.#Item end output}) - - ... (= end from) - {.#Item end output}))))]) - - ($.definition /.cond - "Conditional branching with multiple test conditions." - [(cond (even? num) "WHEN even" - (odd? num) "WHEN odd" - "ELSE")]) - - ($.definition /.the - "Accesses the value of a record at a given tag." - [(the #field my_record)] - ["Can also work with multiple levels of nesting." - (the [#foo #bar #baz] my_record)] - ["And, if only the slot/path is given, generates an accessor function." - (let [getter (the [#foo #bar #baz])] - (getter my_record))]) - - ($.definition /.use - "Opens a implementation and generates a definition for each of its members (including nested members)." - [(use "i:[0]" order) - "=>" - (def i:= (at order =)) - (def i:< (at order <))]) - - ($.definition /.|>> - "Similar to the piping macro, but rather than taking an initial object to work on, creates a function for taking it." - [(|>> (list#each int#encoded) - (interposed " ") - (mix text#composite "")) - "=>" - (function (_ ) + ($.definition /.Type + "This type represents the data-structures that are used to specify types themselves.") + + ($.definition /.Location + "Locations are for specifying the location of Code nodes in Lux files during compilation.") + + ($.definition (/.Ann meta_data datum) + "The type of things that can be annotated with meta-data of arbitrary types.") + + ($.definition /.Code + "The type of Code nodes for Lux syntax.") + + ($.definition /.private + "The export policy for private/local definitions.") + + ($.definition /.local + "The export policy for private/local definitions.") + + ($.definition /.public + "The export policy for public/global definitions.") + + ($.definition /.global + "The export policy for public/global definitions.") + + ($.definition /.Definition + "Represents all the data associated with a definition: its type, its annotations, and its value.") + + ($.definition /.Global + "Represents all the data associated with a global constant.") + + ($.definition (/.Either left right) + "A choice between two values of different types.") + + ($.definition /.Module + "All the information contained within a Lux module.") + + ($.definition /.Mode + "A sign that shows the conditions under which the compiler is running.") + + ($.definition /.Info + "Information about the current version and type of compiler that is running.") + + ($.definition /.Lux + (format "Represents the state of the Lux compiler during a run." + \n "It is provided to macros during their invocation, so they can access compiler data." + \n "Caveat emptor: Avoid fiddling with it, unless you know what you're doing.")) + + ($.definition (/.Meta it) + (format "Computations that can have access to the state of the compiler." + \n "These computations may fail, or modify the state of the compiler.")) + + ($.definition /.Macro + "Functions that run at compile-time and allow you to transform and extend the language in powerful ways.") + + ($.definition /.comment + (format "Throws away any code given to it." + \n "Great for commenting-out code, while retaining syntax high-lighting and formatting in your text editor.") + [(comment + (def (this will not) + (Be Defined) + (because it will be (commented out))))]) + + ($.definition /.All + "Universal quantification." + [(All (_ a) + (-> a a))] + ["A name can be provided, to specify a recursive type." + (All (List a) + (Or Any + [a (List a)]))]) + + ($.definition /.Ex + "Existential quantification." + [(Ex (_ a) + [(Codec Text a) a])] + ["A name can be provided, to specify a recursive type." + (Ex (Self a) + [(Codec Text a) + a + (List (Self a))])]) + + ($.definition /.-> + "Function types." + ["This is the type of a function that takes 2 Ints and returns an Int." + (-> Int Int Int)]) + + ($.definition /.list + "List literals." + [(is (List Nat) + (list 0 1 2 3))]) + + ($.definition /.Union + "Union types." + [(Union Bit Nat Text)] + [(= Nothing + (Union))]) + + ($.definition /.Tuple + "Tuple types." + [(Tuple Bit Nat Text)] + [(= Any + (Tuple))]) + + ($.definition /.Or + "An alias for the Union type constructor." + [(= (Union Bit Nat Text) + (Or Bit Nat Text))] + [(= (Union) + (Or))]) + + ($.definition /.And + "An alias for the Tuple type constructor." + [(= (Tuple Bit Nat Text) + (And Bit Nat Text))] + [(= (Tuple) + (And))]) + + ($.definition /.left + "Left-association for the application of binary functions over variadic arguments." + [(left text#composite "Hello, " name ". How are you?") + "=>" + (text#composite (text#composite "Hello, " name) ". How are you?")]) + + ($.definition /.all + "Right-association for the application of binary functions over variadic arguments." + [(all text#composite "Hello, " name ". How are you?") + "=>" + (text#composite "Hello, " (text#composite name ". How are you?"))]) + + ($.definition /.if + "Picks which expression to evaluate based on a bit test value." + [(if #1 + "Oh, yeah!" + "Aw hell naw!") + "=>" + "Oh, yeah!"] + [(if #0 + "Oh, yeah!" + "Aw hell naw!") + "=>" + "Aw hell naw!"]) + + ($.definition /.Primitive + "Macro to treat define new primitive types." + [(Primitive "java.lang.Object")] + [(Primitive "java.util.List" [(Primitive "java.lang.Long")])]) + + ($.definition /.` + (format "Hygienic quasi-quotation as a macro." + \n "Unquote (,) and unquote-splice (,*) must also be used as forms." + \n "All unprefixed macros will receive their parent module's prefix if imported; otherwise will receive the prefix of the module on which the quasi-quote is being used.") + [(` (def (, name) + (function ((,' _) (,* args)) + (, body))))]) + + ($.definition /.`' + (format "Unhygienic quasi-quotation as a macro." + \n "Unquote (,) and unquote-splice (,*) must also be used as forms.") + [(`' (def (, name) + (function (_ (,* args)) + (, body))))]) + + ($.definition /.' + "Quotation as a macro." + [(' YOLO)]) + + ($.definition /.|> + "Piping macro." + [(|> elems + (list#each int#encoded) + (interposed " ") + (mix text#composite "")) + "=>" (mix text#composite "" (interposed " " - (list#each int#encoded ))))]) - - ($.definition /.<<| - "Similar to the reverse piping macro, but rather than taking an initial object to work on, creates a function for taking it." - [(<<| (mix text#composite "") - (interposed " ") - (list#each int#encoded)) - "=>" - (function (_ ) + (list#each int#encoded + elems)))]) + + ($.definition /.<| + "Reverse piping macro." + [(<| (mix text#composite "") + (interposed " ") + (list#each int#encoded) + elems) + "=>" (mix text#composite "" (interposed " " (list#each int#encoded - ))))]) - - ($.definition /.require - "Module-definition macro." - [(.require - [lux (.except) - [control - ["M" monad (.except)]] - [data - maybe - ["[0]" name (.use "[1]#[0]" codec)]] - [macro - code]] - [// - [type (.use "[0]" equivalence)]])]) - - ($.definition /.at - "Allows accessing the value of a implementation's member." - [(at codec encoded)] - ["Also allows using that value as a function." - (at codec encoded +123)]) - - ($.definition /.has - "Sets the value of a record at a given tag." - [(has #name "Lux" lang)] - ["Can also work with multiple levels of nesting." - (has [#foo #bar #baz] value my_record)] - ["And, if only the slot/path and (optionally) the value are given, generates a mutator function." - (let [setter (has [#foo #bar #baz] value)] - (setter my_record)) - (let [setter (has [#foo #bar #baz])] - (setter value my_record))]) - - ($.definition /.revised - "Modifies the value of a record at a given tag, based on some function." - [(revised #age ++ person)] - ["Can also work with multiple levels of nesting." - (revised [#foo #bar #baz] func my_record)] - ["And, if only the slot/path and (optionally) the value are given, generates a mutator function." - (let [updater (revised [#foo #bar #baz] func)] - (updater my_record)) - (let [updater (revised [#foo #bar #baz])] - (updater func my_record))]) - - ... ($.definition /.^template - ... "It's similar to template, but meant to be used during pattern-matching." - ... [(def (reduced env type) - ... (-> (List Type) Type Type) - ... (case type - ... {.#Primitive name params} - ... {.#Primitive name (list#each (reduced env) params)} - - ... (^with_template [] - ... [{ left right} - ... { (reduced env left) (reduced env right)}]) - ... ([.#Sum] [.#Product]) - - ... (^with_template [] - ... [{ left right} - ... { (reduced env left) (reduced env right)}]) - ... ([.#Function] [.#Apply]) - - ... (^with_template [] - ... [{ old_env def} - ... (case old_env - ... {.#End} - ... { env def} - - ... _ - ... type)]) - ... ([.#UnivQ] [.#ExQ]) - - ... {.#Parameter idx} - ... (else type (list.item idx env)) - - ... _ - ... type - ... ))]) - - (.,, (.with_template [ ] - [($.definition - )] - - [/.++ "Increment function."] - [/.-- "Decrement function."] - )) - - ($.definition /.loop - (format "Allows arbitrary looping, using the 'again' form to re-start the loop." - \n "Can be used in monadic code to create monadic loops.") - [(loop (again [count +0 - x init]) - (if (< +10 count) - (again (++ count) (f x)) - x))] - ["Loops can also be given custom names." - (loop (my_loop [count +0 + elems)))]) + + ($.definition /.template + "" + ["By specifying a pattern (with holes), and the input data to fill those holes, repeats the pattern as many times as necessary." + (with_template [ ] + [(def .public + (-> Int Int) + (+ ))] + + [++ +1] + [-- -1] + )]) + + ($.definition /.not + "Bit negation." + [(not #1) + "=>" + #0] + [(not #0) + "=>" + #1]) + + ($.definition /.type + "Takes a type expression and returns its representation as data-structure." + [(type_literal (All (_ a) + (Maybe (List a))))]) + + ($.definition /.is + "The type-annotation macro." + [(is (List Int) + (list +1 +2 +3))]) + + ($.definition /.as + "The type-coercion macro." + [(as Dinosaur + (list +1 +2 +3))]) + + ($.definition /.Rec + "Parameter-less recursive types." + ["A name has to be given to the whole type, to use it within its body." + (Rec Int_List + (Or Any + [Int Int_List]))] + ["Can also be used with type and labelled-type definitions." + (type Type + (Rec @ + (Variant + {#Primitive Text (List @)} + {#Sum @ @} + {#Product @ @} + {#Function @ @} + {#Parameter Nat} + {#Var Nat} + {#Ex Nat} + {#UnivQ (List @) @} + {#ExQ (List @) @} + {#Apply @ @} + {#Named Symbol @})))]) + + ($.definition /.exec + "Sequential execution of expressions (great for side-effects)." + [(exec + (log! "#1") + (log! "#2") + (log! "#3") + "YOLO")]) + + ($.definition /.case + (format "The pattern-matching macro." + \n "Allows the usage of macros within the patterns to provide custom syntax.") + [(case (is (List Int) + (list +1 +2 +3)) + {#Item x {#Item y {#Item z {#End}}}} + {#Some (all * x y z)} + + _ + {#None})]) + + ($.definition /.pattern + (format "Macro-expanding patterns." + \n "It's a special macro meant to be used with 'case'.") + [(case (is (List Int) + (list +1 +2 +3)) + (list x y z) + {#Some (all * x y z)} + + _ + {#None})]) + + ... ($.definition /.^or + ... (format "Or-patterns." + ... \n "It's a special macro meant to be used with 'case'.") + ... [(type Weekday + ... (Variant + ... {#Monday} + ... {#Tuesday} + ... {#Wednesday} + ... {#Thursday} + ... {#Friday} + ... {#Saturday} + ... {#Sunday})) + + ... (def (weekend? day) + ... (-> Weekday Bit) + ... (case day + ... (^or {#Saturday} {#Sunday}) + ... true + + ... _ + ... false))]) + + ($.definition /.let + (format "Creates local bindings." + \n "Can (optionally) use pattern-matching macros when binding.") + [(let [x (foo bar) + y (baz quux)] + (op x y))]) + + ($.definition /.function + "Syntax for creating functions." + [(is (All (_ a b) + (-> a b a)) + (function (_ x y) + x))] + ["Allows for giving the function itself a name, for the sake of recursion." + (is (-> Nat Nat) + (function (factorial n) + (case n + 0 1 + _ (* n (factorial (-- n))))))]) + + ($.definition /.def + "Defines global constants/functions." + [(def branching_exponent + Int + +5)] + ["The type is optional." + (def branching_exponent + +5)] + [(def (pair_list pair) + (-> [Code Code] (List Code)) + (let [[left right] pair] + (list left right)))] + ["Can pattern-match on the inputs to functions." + (def (pair_list [left right]) + (-> [Code Code] (List Code)) + (list left right))]) + + ($.definition /.macro + "Macro-definition macro." + [(def .public symbol + (macro (_ tokens) + (case tokens + (^with_template [] + [(list [_ { [module name]}]) + (in (list (` [(, (text$ module)) (, (text$ name))])))]) + ([#Symbol]) + + _ + (failure "Wrong syntax for symbol"))))]) + + ($.definition /.and + "Short-circuiting 'and'." + [(and #1 #0) + "=>" + #0] + [(and #1 #1) + "=>" + #1]) + + ($.definition /.or + "Short-circuiting 'or'." + [(or #1 #0) + "=>" + #1] + [(or #0 #0) + "=>" + #0]) + + ($.definition /.panic! + "Causes an error, with the given error message." + [(panic! "OH NO!")]) + + ($.definition /.implementation + "Express a value that implements an interface." + [(is (Order Int) + (implementation + (def equivalence + equivalence) + (def (< reference subject) + (< reference subject)) + ))]) + + ($.definition /.Variant + (format "Syntax for defining labelled/tagged sum/union types." + \n "WARNING: Only use it within the type macro.") + [(type Referrals + (Variant + {#All} + {#Only (List Text)} + {#Exclude (List Text)} + {#Ignore} + {#Nothing}))]) + + ($.definition /.Record + (format "Syntax for defining labelled/slotted product/tuple types." + \n "WARNING: Only use it within the type macro.") + [(type Refer + (Record + [#refer_defs Referrals + #refer_open (List Openings)]))]) + + ($.definition /.type + "The type-definition macro." + [(type (List a) + {#End} + {#Item a (List a)})]) + + ($.definition /.Interface + "Interface definition." + [(type .public (Order a) + (Interface + (is (Equivalence a) + equivalence) + (is (-> a a Bit) + <)))]) + + (,, (with_template [] + [($.definition + "Safe type-casting for I64 values.")] + + [/.i64] + [/.nat] + [/.int] + [/.rev] + )) + + ($.definition /.module_separator + (format "Character used to separate the parts of module names." + \n "Value: " (%.text /.module_separator))) + + ($.definition /.open + (format "Same as the 'open' macro, but meant to be used as a pattern-matching macro for generating local bindings." + \n "Takes an 'alias' text for the generated local bindings.") + [(def .public (range enum from to) + (All (_ a) (-> (Enum a) a a (List a))) + (let [(open "[0]") enum] + (loop (again [end to + output {.#End}]) + (cond (< end from) + (again (pred end) {.#Item end output}) + + (< from end) + (again (succ end) {.#Item end output}) + + ... (= end from) + {.#Item end output}))))]) + + ($.definition /.cond + "Conditional branching with multiple test conditions." + [(cond (even? num) "WHEN even" + (odd? num) "WHEN odd" + "ELSE")]) + + ($.definition /.the + "Accesses the value of a record at a given tag." + [(the #field my_record)] + ["Can also work with multiple levels of nesting." + (the [#foo #bar #baz] my_record)] + ["And, if only the slot/path is given, generates an accessor function." + (let [getter (the [#foo #bar #baz])] + (getter my_record))]) + + ($.definition /.use + "Opens a implementation and generates a definition for each of its members (including nested members)." + [(use "i:[0]" order) + "=>" + (def i:= (at order =)) + (def i:< (at order <))]) + + ($.definition /.|>> + "Similar to the piping macro, but rather than taking an initial object to work on, creates a function for taking it." + [(|>> (list#each int#encoded) + (interposed " ") + (mix text#composite "")) + "=>" + (function (_ ) + (mix text#composite "" + (interposed " " + (list#each int#encoded ))))]) + + ($.definition /.<<| + "Similar to the reverse piping macro, but rather than taking an initial object to work on, creates a function for taking it." + [(<<| (mix text#composite "") + (interposed " ") + (list#each int#encoded)) + "=>" + (function (_ ) + (mix text#composite "" + (interposed " " + (list#each int#encoded + ))))]) + + ($.definition /.require + "Module-definition macro." + [(.require + [lux (.except) + [control + ["M" monad (.except)]] + [data + maybe + ["[0]" name (.use "[1]#[0]" codec)]] + [macro + code]] + [// + [type (.use "[0]" equivalence)]])]) + + ($.definition /.at + "Allows accessing the value of a implementation's member." + [(at codec encoded)] + ["Also allows using that value as a function." + (at codec encoded +123)]) + + ($.definition /.has + "Sets the value of a record at a given tag." + [(has #name "Lux" lang)] + ["Can also work with multiple levels of nesting." + (has [#foo #bar #baz] value my_record)] + ["And, if only the slot/path and (optionally) the value are given, generates a mutator function." + (let [setter (has [#foo #bar #baz] value)] + (setter my_record)) + (let [setter (has [#foo #bar #baz])] + (setter value my_record))]) + + ($.definition /.revised + "Modifies the value of a record at a given tag, based on some function." + [(revised #age ++ person)] + ["Can also work with multiple levels of nesting." + (revised [#foo #bar #baz] func my_record)] + ["And, if only the slot/path and (optionally) the value are given, generates a mutator function." + (let [updater (revised [#foo #bar #baz] func)] + (updater my_record)) + (let [updater (revised [#foo #bar #baz])] + (updater func my_record))]) + + ... ($.definition /.^template + ... "It's similar to template, but meant to be used during pattern-matching." + ... [(def (reduced env type) + ... (-> (List Type) Type Type) + ... (case type + ... {.#Primitive name params} + ... {.#Primitive name (list#each (reduced env) params)} + + ... (^with_template [] + ... [{ left right} + ... { (reduced env left) (reduced env right)}]) + ... ([.#Sum] [.#Product]) + + ... (^with_template [] + ... [{ left right} + ... { (reduced env left) (reduced env right)}]) + ... ([.#Function] [.#Apply]) + + ... (^with_template [] + ... [{ old_env def} + ... (case old_env + ... {.#End} + ... { env def} + + ... _ + ... type)]) + ... ([.#UnivQ] [.#ExQ]) + + ... {.#Parameter idx} + ... (else type (list.item idx env)) + + ... _ + ... type + ... ))]) + + (,, (with_template [ ] + [($.definition + )] + + [/.++ "Increment function."] + [/.-- "Decrement function."] + )) + + ($.definition /.loop + (format "Allows arbitrary looping, using the 'again' form to re-start the loop." + \n "Can be used in monadic code to create monadic loops.") + [(loop (again [count +0 x init]) - (if (< +10 count) - (my_loop (++ count) (f x)) - x))]) - - ($.definition /.with_expansions - (format "Controlled macro-expansion." - \n "Bind an arbitraty number of Code nodes resulting from macro-expansion to local bindings." - \n "Wherever a binding appears, the bound Code nodes will be spliced in there.") - [(def test - Test - (with_expansions - [ (with_template [ ] - [(cover [] - (compare - (at codec encoded )))] - - [bit #1 "#1"] - [int +123 "+123"] - [frac +123.0 "+123.0"] - [text "123" "'123'"] - [symbol ["yolo" "lol"] "yolo.lol"] - [form (list (bit #1)) "(#1)"] - [tuple (list (bit #1)) "[#1]"] - )] - (all and - - )))]) - - ($.definition /.static - (format "Resolves the names of definitions to their values at compile-time, assuming their values are either:" - \n "* Bit" - \n "* Nat" - \n "* Int" - \n "* Rev" - \n "* Frac" - \n "* Text") - [(def my_nat 123) - (def my_text "456") - (and (case [my_nat my_text] - (static [..my_nat ..my_text]) - true - - _ - false) - (case [my_nat my_text] - [(static ..my_nat) (static ..my_text)] - true - - _ - false))]) - - ... ($.definition /.^multi - ... (format "Multi-level pattern matching." - ... \n "Useful in situations where the result of a branch depends on further refinements on the values being matched.") - ... [(case (split (size static) uri) - ... (^multi {#Some [chunk uri']} - ... [(text#= static chunk) .true]) - ... (match_uri endpoint? parts' uri') - - ... _ - ... {#Left (format "Static part " (%t static) " does not match URI: " uri)})] - ... ["Short-cuts can be taken when using bit tests." - ... "The example above can be rewritten as..." - ... (case (split (size static) uri) - ... (^multi {#Some [chunk uri']} - ... (text#= static chunk)) - ... (match_uri endpoint? parts' uri') - - ... _ - ... {#Left (format "Static part " (%t static) " does not match URI: " uri)})]) - - ($.definition /.symbol - "Gives back a 2 tuple with the module and name parts, both as Text." - [(symbol ..#doc) - "=>" - ["documentation/lux" "#doc"]]) - - ($.definition /.parameter - (format "WARNING: Please stay away from this macro; it's very likely to be removed in a future version of Lux." - "Allows you to refer to the type-variables in a polymorphic function's type, by their index.") - ["In the example below, 0 corresponds to the 'a' variable." - (def .public (of_list list) - (All (_ a) (-> (List a) (Sequence a))) - (list#mix add - (is (Sequence (parameter 0)) - empty) - list))]) - - ($.definition /.same? - "Tests whether the 2 values are identical (not just 'equal')." - ["This one should succeed:" - (let [value +5] - (same? value - value))] - ["This one should fail:" - (same? +5 - (+ +2 +3))]) - - ... ($.definition /.^let - ... "Allows you to simultaneously bind and de-structure a value." - ... [(def (hash (^let set [member_hash _])) - ... (list#mix (function (_ elem acc) - ... (+ acc - ... (at member_hash hash elem))) - ... 0 - ... (set.list set)))]) - - ... ($.definition /.^|> - ... "Pipes the value being pattern-matched against prior to binding it to a variable." - ... [(case input - ... (^|> value [++ (% 10) (max 1)]) - ... (foo value))]) - - ($.definition /.as_expected - "Coerces the given expression to the type of whatever is expected." - [(is Dinosaur - (as_expected (is (List Nat) - (list 1 2 3))))]) - - ($.definition /.undefined - (format "Meant to be used as a stand-in for functions with undefined implementations." - \n "Undefined expressions will type-check against everything, so they make good dummy implementations." - \n "However, if an undefined expression is ever evaluated, it will raise a runtime error.") - [(def (square x) - (-> Int Int) - (undefined))]) - - ($.definition /.type_of - "Generates the type corresponding to a given expression." - [(let [my_num +123] - (type_of my_num)) - "==" - Int] - [(type_of +123) - "==" - Int]) - - ($.definition /.template - (format "Define macros in the style of with_template." - \n "For simple macros that do not need any fancy features.") - [(def square - (template (square x) - (* x x)))]) - - ($.definition /.these - (format "Given a (potentially empty) list of codes, just returns them immediately, without any work done." - \n "This may seen useless, but it has its utility when dealing with controlled-macro-expansion macros.") - [(with_expansions [ (these 1 - 2 - 3 - 4)] - (all + ))]) - - ($.definition /.char - "If given a 1-character text literal, yields the char-code of the sole character." - [(is Nat - (char "A")) - "=>" - 65]) - - ($.definition /.for - (format "Selects the appropriate code for a given target-platform when compiling Lux to it." - \n "Look-up the available targets in library/lux/target.") - [(def js - "JavaScript") - - (for "JVM" (do jvm stuff) - js (do js stuff) - (do default stuff))]) - - ($.definition /.`` - (format "Delimits a controlled (spliced) macro-expansion." - \n "Uses a (,,) special form to specify where to expand.") - [(`` (some expression - (,, (some macro which may yield 0 or more results))))]) - - ... ($.definition /.^code - ... "Generates pattern-matching code for Code values in a way that looks like code-templating." - ... [(is (Maybe Nat) - ... (case (` (#0 123 +456.789)) - ... (^code (#0 (, [_ {.#Nat number}]) +456.789)) - ... {.#Some number} - - ... _ - ... {.#None}))]) - - ($.definition /.false - "The boolean FALSE value.") - - ($.definition /.true - "The boolean TRUE value.") - - ($.definition /.try - "" - [(is Foo - (case (is (Either Text Bar) - (try (is Bar - (risky computation which may panic)))) - {.#Right success} - (is Foo - (do something after success)) - - {.#Left error} - (is Foo - (recover from error))))]) - - ($.definition (/.Code' w)) - ($.definition /.Alias) - ($.definition (/.Bindings key value)) - ($.definition /.Ref) - ($.definition /.Scope) - ($.definition /.Source) - ($.definition /.Module_State) - ($.definition /.Type_Context) - ($.definition /.Macro') - ($.definition /.Label) - ($.definition /.macro)] - [/abstract.documentation - /control.documentation - /data.documentation - /debug.documentation - /documentation.documentation - /ffi.documentation - /math.documentation - /meta.documentation - /program.documentation - /test.documentation - /world.documentation]))) - -(.def _ + (if (< +10 count) + (again (++ count) (f x)) + x))] + ["Loops can also be given custom names." + (loop (my_loop [count +0 + x init]) + (if (< +10 count) + (my_loop (++ count) (f x)) + x))]) + + ($.definition /.with_expansions + (format "Controlled macro-expansion." + \n "Bind an arbitraty number of Code nodes resulting from macro-expansion to local bindings." + \n "Wherever a binding appears, the bound Code nodes will be spliced in there.") + [(def test + Test + (with_expansions + [ (with_template [ ] + [(cover [] + (compare + (at codec encoded )))] + + [bit #1 "#1"] + [int +123 "+123"] + [frac +123.0 "+123.0"] + [text "123" "'123'"] + [symbol ["yolo" "lol"] "yolo.lol"] + [form (list (bit #1)) "(#1)"] + [tuple (list (bit #1)) "[#1]"] + )] + (all and + + )))]) + + ($.definition /.static + (format "Resolves the names of definitions to their values at compile-time, assuming their values are either:" + \n "* Bit" + \n "* Nat" + \n "* Int" + \n "* Rev" + \n "* Frac" + \n "* Text") + [(def my_nat 123) + (def my_text "456") + (and (case [my_nat my_text] + (static [..my_nat ..my_text]) + true + + _ + false) + (case [my_nat my_text] + [(static ..my_nat) (static ..my_text)] + true + + _ + false))]) + + ... ($.definition /.^multi + ... (format "Multi-level pattern matching." + ... \n "Useful in situations where the result of a branch depends on further refinements on the values being matched.") + ... [(case (split (size static) uri) + ... (^multi {#Some [chunk uri']} + ... [(text#= static chunk) .true]) + ... (match_uri endpoint? parts' uri') + + ... _ + ... {#Left (format "Static part " (%t static) " does not match URI: " uri)})] + ... ["Short-cuts can be taken when using bit tests." + ... "The example above can be rewritten as..." + ... (case (split (size static) uri) + ... (^multi {#Some [chunk uri']} + ... (text#= static chunk)) + ... (match_uri endpoint? parts' uri') + + ... _ + ... {#Left (format "Static part " (%t static) " does not match URI: " uri)})]) + + ($.definition /.symbol + "Gives back a 2 tuple with the module and name parts, both as Text." + [(symbol ..#doc) + "=>" + ["documentation/lux" "#doc"]]) + + ($.definition /.parameter + (format "WARNING: Please stay away from this macro; it's very likely to be removed in a future version of Lux." + "Allows you to refer to the type-variables in a polymorphic function's type, by their index.") + ["In the example below, 0 corresponds to the 'a' variable." + (def .public (of_list list) + (All (_ a) (-> (List a) (Sequence a))) + (list#mix add + (is (Sequence (parameter 0)) + empty) + list))]) + + ($.definition /.same? + "Tests whether the 2 values are identical (not just 'equal')." + ["This one should succeed:" + (let [value +5] + (same? value + value))] + ["This one should fail:" + (same? +5 + (+ +2 +3))]) + + ... ($.definition /.^let + ... "Allows you to simultaneously bind and de-structure a value." + ... [(def (hash (^let set [member_hash _])) + ... (list#mix (function (_ elem acc) + ... (+ acc + ... (at member_hash hash elem))) + ... 0 + ... (set.list set)))]) + + ... ($.definition /.^|> + ... "Pipes the value being pattern-matched against prior to binding it to a variable." + ... [(case input + ... (^|> value [++ (% 10) (max 1)]) + ... (foo value))]) + + ($.definition /.as_expected + "Coerces the given expression to the type of whatever is expected." + [(is Dinosaur + (as_expected (is (List Nat) + (list 1 2 3))))]) + + ($.definition /.undefined + (format "Meant to be used as a stand-in for functions with undefined implementations." + \n "Undefined expressions will type-check against everything, so they make good dummy implementations." + \n "However, if an undefined expression is ever evaluated, it will raise a runtime error.") + [(def (square x) + (-> Int Int) + (undefined))]) + + ($.definition /.type_of + "Generates the type corresponding to a given expression." + [(let [my_num +123] + (type_of my_num)) + "==" + Int] + [(type_of +123) + "==" + Int]) + + ($.definition /.template + (format "Define macros in the style of with_template." + \n "For simple macros that do not need any fancy features.") + [(def square + (template (square x) + (* x x)))]) + + ($.definition /.these + (format "Given a (potentially empty) list of codes, just returns them immediately, without any work done." + \n "This may seen useless, but it has its utility when dealing with controlled-macro-expansion macros.") + [(with_expansions [ (these 1 + 2 + 3 + 4)] + (all + ))]) + + ($.definition /.char + "If given a 1-character text literal, yields the char-code of the sole character." + [(is Nat + (char "A")) + "=>" + 65]) + + ($.definition /.for + (format "Selects the appropriate code for a given target-platform when compiling Lux to it." + \n "Look-up the available targets in library/lux/target.") + [(def js + "JavaScript") + + (for "JVM" (do jvm stuff) + js (do js stuff) + (do default stuff))]) + + ($.definition /.`` + (format "Delimits a controlled (spliced) macro-expansion." + \n "Uses a (,,) special form to specify where to expand.") + [(`` (some expression + (,, (some macro which may yield 0 or more results))))]) + + ... ($.definition /.^code + ... "Generates pattern-matching code for Code values in a way that looks like code-templating." + ... [(is (Maybe Nat) + ... (case (` (#0 123 +456.789)) + ... (^code (#0 (, [_ {.#Nat number}]) +456.789)) + ... {.#Some number} + + ... _ + ... {.#None}))]) + + ($.definition /.false + "The boolean FALSE value.") + + ($.definition /.true + "The boolean TRUE value.") + + ($.definition /.try + "" + [(is Foo + (case (is (Either Text Bar) + (try (is Bar + (risky computation which may panic)))) + {.#Right success} + (is Foo + (do something after success)) + + {.#Left error} + (is Foo + (recover from error))))]) + + ($.definition (/.Code' w)) + ($.definition /.Alias) + ($.definition (/.Bindings key value)) + ($.definition /.Ref) + ($.definition /.Scope) + ($.definition /.Source) + ($.definition /.Module_State) + ($.definition /.Type_Context) + ($.definition /.Macro') + ($.definition /.Label) + ($.definition /.macro) + + (all list#composite + /abstract.documentation + /control.documentation + /data.documentation + /debug.documentation + /documentation.documentation + /ffi.documentation + /math.documentation + /meta.documentation + /program.documentation + /test.documentation + /world.documentation + ) + ))) + +(def _ (program inputs (io.io (debug.log! ($.markdown ..documentation))))) diff --git a/stdlib/source/documentation/lux/program.lux b/stdlib/source/documentation/lux/program.lux index bc126a34a..d0ea5d8ac 100644 --- a/stdlib/source/documentation/lux/program.lux +++ b/stdlib/source/documentation/lux/program.lux @@ -6,65 +6,70 @@ ["[0]" io]] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]]]] + ["%" \\format (.only format)]] + [collection + ["[0]" list]]]]] ["[0]" \\parser] [\\library ["[0]" /]]) -(.def \\parser - (.List $.Module) - ($.module \\parser._ - "" - [($.definition (\\parser.Parser it) - "A command-line interface parser.") +(def \\parser + (List $.Documentation) + (list ($.module \\parser._ + "") + ($.definition (\\parser.Parser it) + "A command-line interface parser.") - ($.definition \\parser.result - "Executes the parser and verifies that all inputs are processed." - [(result parser inputs)]) + ($.definition \\parser.result + "Executes the parser and verifies that all inputs are processed." + [(result parser inputs)]) - ($.definition \\parser.any - "Just returns the next input without applying any logic.") + ($.definition \\parser.any + "Just returns the next input without applying any logic.") - ($.definition \\parser.parse - "Parses the next input with a parsing function." - [(parse parser)]) + ($.definition \\parser.parse + "Parses the next input with a parsing function." + [(parse parser)]) - ($.definition \\parser.this - "Checks that a token is in the inputs." - [(this reference)]) + ($.definition \\parser.this + "Checks that a token is in the inputs." + [(this reference)]) - ($.definition \\parser.somewhere - "Given a parser, tries to parse it somewhere in the inputs (i.e. not necessarily parsing the immediate inputs)." - [(somewhere cli)]) + ($.definition \\parser.somewhere + "Given a parser, tries to parse it somewhere in the inputs (i.e. not necessarily parsing the immediate inputs)." + [(somewhere cli)]) - ($.definition \\parser.end - "Ensures there are no more inputs.") + ($.definition \\parser.end + "Ensures there are no more inputs.") - ($.definition \\parser.named - "Parses a named parameter and yields its value." - [(named name value)]) + ($.definition \\parser.named + "Parses a named parameter and yields its value." + [(named name value)]) - ($.definition \\parser.parameter - "Parses a parameter that can have either a short or a long name." - [(parameter [short long] value)])] - [])) + ($.definition \\parser.parameter + "Parses a parameter that can have either a short or a long name." + [(parameter [short long] value)]) + )) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.program - "Defines the entry-point to a program (similar to the 'main' function/method in other programming languages)." - ["Can take a list of all the input parameters to the program." - (def _ - (program all_arguments - (do io.monad - [foo (initialize program)] - (do_something_with all_arguments))))] - ["Can also parse them using CLI parsers from the library/lux/control/parser/cli module." - (def _ - (program [config configuration_parser] - (do io.monad - [data (initialize program with config)] - (do_something_with data))))])] - [..\\parser])) +(def .public documentation + (List $.Documentation) + (list.partial ($.module /._ + "") + + ($.definition /.program + "Defines the entry-point to a program (similar to the 'main' function/method in other programming languages)." + ["Can take a list of all the input parameters to the program." + (def _ + (program all_arguments + (do io.monad + [foo (initialize program)] + (do_something_with all_arguments))))] + ["Can also parse them using CLI parsers from the library/lux/control/parser/cli module." + (def _ + (program [config configuration_parser] + (do io.monad + [data (initialize program with config)] + (do_something_with data))))]) + + ..\\parser + )) diff --git a/stdlib/source/documentation/lux/test.lux b/stdlib/source/documentation/lux/test.lux index 467b04150..7787512c5 100644 --- a/stdlib/source/documentation/lux/test.lux +++ b/stdlib/source/documentation/lux/test.lux @@ -1,104 +1,24 @@ (.require [library - [lux (.except and for) + [lux (.except) ["$" documentation] [data - ["[0]" text (.only \n) - ["%" \\format (.only format)]]]]] + [collection + ["[0]" list (.use "[1]#[0]" monoid)]]]]] [\\library - ["[0]" /]]) - -(.def .public documentation - (.List $.Module) - ($.module /._ - "Tools for unit & property-based/generative testing." - [($.definition /.must_try_test_at_least_once) - ($.definition /.error_during_execution) - - ($.definition /.Tally - "A record of successes and failures while executing tests.") - - ($.definition /.Assertion - "An asynchronous operation that yields test results.") - - ($.definition /.Test - "A test that relies on random data generation to thoroughly cover different scenarios.") - - ($.definition /.and' - "Sequencing combinator (for assertions)." - [(and' left right)]) - - ($.definition /.and - "Sequencing combinator." - [(and left right)]) - - ($.definition /.context - "Adds a contextual description to a test's documentation." - [(context description)]) - - ($.definition /.failure - "A failing test, with a given error message.") - - ($.definition /.assertion - "Check that a condition is #1, and fail with the given message otherwise." - [(assertion message condition)]) - - ($.definition /.property - "Check that a condition is #1, and fail with the given message otherwise." - [(property message condition)]) - - ($.definition /.lifted - "" - [(lifted message random)]) - - ($.definition /.Seed - "The seed value used for random testing (if that feature is used).") - - ($.definition /.seed - (format "Execute the given test with a specific seed value." - \n "This allows you to reproduce a failing test case as many times as you want while debugging.") - [(seed value test)]) - - ($.definition /.times - (format "Allows executing a test several times." - \n "By doing this, it's possible to thoroughly test code with many different scenarios." - \n "This assumes that random data generation is being used in tests instead of fixed/constant inputs.") - [(times amount test)]) - - ($.definition /.run! - (format "Executes a test, and exits the program with either a successful or a failing exit code." - \n "WARNING: This procedure is only meant to be used in (program ...) forms.") - [(run! test)]) - - ($.definition /.coverage' - (format "Specifies a test as covering one or more definitions." - \n "Adds to the test tally information to track which definitions have been tested.") - [(coverage' [definition/0 definition/1 ,,, definition/N] - (is Bit - (some "computation")))]) - - ($.definition /.coverage - (format "Specifies a test as covering one or more definitions." - \n "Adds to the test tally information to track which definitions have been tested.") - [(coverage [definition/0 definition/1 ,,, definition/N] - (is Bit - (some "computation")))]) - - ($.definition /.for - (format "Specifies a context for tests as covering one or more definitions." - \n "Adds to the test tally information to track which definitions have been tested.") - [(for [definition/0 definition/1 ,,, definition/N] - (is Test - some_test))]) - - ($.definition /.covering - (format "Specifies the module being covered by a test." - \n "Adds tracking information to the tally to know which exported definitions in the module need to be covered.") - [(covering .._ - (is Test - some_test))]) - - ($.definition /.in_parallel - "Executes multiple tests in parallel (if the host platform supports it) to take advantage of multiple cores." - [(in_parallel tests)])] - [])) + ["[0]" / + ["[1]" property]]] + ["[0]" / + ["[1][0]" coverage] + ["[1][0]" property] + ["[1][0]" tally] + ["[1][0]" unit]]) + +(def .public documentation + (List $.Documentation) + (all list#composite + /coverage.documentation + /property.documentation + /tally.documentation + /unit.documentation + )) diff --git a/stdlib/source/documentation/lux/test/coverage.lux b/stdlib/source/documentation/lux/test/coverage.lux new file mode 100644 index 000000000..b443e9cbd --- /dev/null +++ b/stdlib/source/documentation/lux/test/coverage.lux @@ -0,0 +1,20 @@ +(.require + [library + [lux (.except) + ["$" documentation] + [data + ["[0]" text (.only \n) + ["%" \\format (.only format)]]]]] + [\\library + ["[0]" /]]) + +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") + + ($.definition /.Coverage) + ($.definition /.of) + ($.definition /.encoded) + ($.definition /.decoded) + )) diff --git a/stdlib/source/documentation/lux/test/property.lux b/stdlib/source/documentation/lux/test/property.lux new file mode 100644 index 000000000..b21fef1ec --- /dev/null +++ b/stdlib/source/documentation/lux/test/property.lux @@ -0,0 +1,86 @@ +(.require + [library + [lux (.except) + ["$" documentation] + [data + ["[0]" text (.only \n) + ["%" \\format (.only format)]]]]] + [\\library + ["[0]" /]]) + +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "Property-based/generative testing.") + + ($.definition /.must_try_test_at_least_once) + ($.definition /.error_during_execution) + + ($.definition /.Test + "A test that relies on random data generation to thoroughly cover different scenarios.") + + ($.definition /.and + "Sequencing combinator." + [(and left right)]) + + ($.definition /.context + "Adds a contextual description to a test's documentation." + [(context description)]) + + ($.definition /.failure + "A failing test, with a given error message.") + + ($.definition /.success) + + ($.definition /.test + "Check that a condition is #1, and fail with the given message otherwise." + [(test message condition)]) + + ($.definition /.lifted + "" + [(lifted message random)]) + + ($.definition /.Seed + "The seed value used for random testing (if that feature is used).") + + ($.definition /.seed + (format "Execute the given test with a specific seed value." + \n "This allows you to reproduce a failing test case as many times as you want while debugging.") + [(seed value test)]) + + ($.definition /.times + (format "Allows executing a test several times." + \n "By doing this, it's possible to thoroughly test code with many different scenarios." + \n "This assumes that random data generation is being used in tests instead of fixed/constant inputs.") + [(times amount test)]) + + ($.definition /.run! + (format "Executes a test, and exits the program with either a successful or a failing exit code." + \n "WARNING: This procedure is only meant to be used in (program ...) forms.") + [(run! test)]) + + ($.definition /.coverage + (format "Specifies a test as covering one or more definitions." + \n "Adds to the test tally information to track which definitions have been tested.") + [(coverage [definition/0 definition/1 ,,, definition/N] + (is Bit + (some "computation")))]) + + ($.definition /.for + (format "Specifies a context for tests as covering one or more definitions." + \n "Adds to the test tally information to track which definitions have been tested.") + [(for [definition/0 definition/1 ,,, definition/N] + (is Test + some_test))]) + + ($.definition /.covering + (format "Specifies the module being covered by a test." + \n "Adds tracking information to the tally to know which exported definitions in the module need to be covered.") + [(covering .._ + (is Test + some_test))]) + + ($.definition /.in_parallel + "Executes multiple tests in parallel (if the host platform supports it) to take advantage of multiple cores." + [(in_parallel tests)]) + )) diff --git a/stdlib/source/documentation/lux/test/tally.lux b/stdlib/source/documentation/lux/test/tally.lux new file mode 100644 index 000000000..a13267544 --- /dev/null +++ b/stdlib/source/documentation/lux/test/tally.lux @@ -0,0 +1,26 @@ +(.require + [library + [lux (.except) + ["$" documentation] + [data + ["[0]" text (.only \n) + ["%" \\format (.only format)]]]]] + [\\library + ["[0]" /]]) + +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") + + ($.definition /.Tally + "A record of successes and failures while executing tests.") + + ($.definition /.and + "" + [(and left right)]) + + ($.definition /.empty) + ($.definition /.success) + ($.definition /.failure) + )) diff --git a/stdlib/source/documentation/lux/test/unit.lux b/stdlib/source/documentation/lux/test/unit.lux new file mode 100644 index 000000000..2b5e9441a --- /dev/null +++ b/stdlib/source/documentation/lux/test/unit.lux @@ -0,0 +1,51 @@ +(.require + [library + [lux (.except) + ["$" documentation] + [data + ["[0]" text (.only \n) + ["%" \\format (.only format)]]]]] + [\\library + ["[0]" /]]) + +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "Unit testing.") + + ($.definition /.Test + "An asynchronous operation that yields test results.") + + ($.definition /.and + "Sequencing combinator." + [(and left right)]) + + ($.definition /.test + "Check that a condition is #1, and fail with the given message otherwise." + [(test message condition)]) + + ($.definition /.coverage + (format "Specifies a test as covering one or more definitions." + \n "Adds to the test tally information to track which definitions have been tested.") + [(coverage [definition/0 definition/1 ,,, definition/N] + (is Bit + (some "computation")))]) + + ($.definition /.for + (format "Specifies a context for tests as covering one or more definitions." + \n "Adds to the test tally information to track which definitions have been tested.") + [(for [definition/0 definition/1 ,,, definition/N] + (is Test + some_test))]) + + ($.definition /.covering + (format "Specifies the module being covered by a test." + \n "Adds tracking information to the tally to know which exported definitions in the module need to be covered.") + [(covering .._ + (is Test + some_test))]) + + ($.definition /.context) + ($.definition /.success) + ($.definition /.failure) + )) diff --git a/stdlib/source/documentation/lux/world.lux b/stdlib/source/documentation/lux/world.lux index 2e3dd6945..9dde22d78 100644 --- a/stdlib/source/documentation/lux/world.lux +++ b/stdlib/source/documentation/lux/world.lux @@ -22,8 +22,8 @@ ["[1][0]" time] ["[1][0]" locale]]) -(.def .public documentation - (.List $.Module) +(def .public documentation + (List $.Documentation) (all list#composite /console.documentation /file.documentation diff --git a/stdlib/source/documentation/lux/world/console.lux b/stdlib/source/documentation/lux/world/console.lux index 19df25dc3..77e62fac9 100644 --- a/stdlib/source/documentation/lux/world/console.lux +++ b/stdlib/source/documentation/lux/world/console.lux @@ -10,28 +10,29 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - (`` (`` ($.module /._ - "" - [($.definition /.async) - (,, (for @.jvm (,, (these ($.definition /.cannot_open) - ($.definition /.cannot_close) - ($.definition /.default))) - (,, (these)))) +(def .public documentation + (List $.Documentation) + (`` (`` (list ($.module /._ + "") - ($.definition (/.Console !) - "An interface to console/terminal I/O.") + ($.definition /.async) + (,, (for @.jvm (,, (these ($.definition /.cannot_open) + ($.definition /.cannot_close) + ($.definition /.default))) + (,, (these)))) - ($.definition /.write_line - "Writes the message on the console and appends a new-line/line-feed at the end." - [(write_line message console)]) + ($.definition (/.Console !) + "An interface to console/terminal I/O.") - ($.definition (/.Mock s) - (format "A mock/simulation of a console." - \n "Useful for testing.")) + ($.definition /.write_line + "Writes the message on the console and appends a new-line/line-feed at the end." + [(write_line message console)]) - ($.definition /.mock - "" - [(mock mock init)])] - [])))) + ($.definition (/.Mock s) + (format "A mock/simulation of a console." + \n "Useful for testing.")) + + ($.definition /.mock + "" + [(mock mock init)]) + )))) diff --git a/stdlib/source/documentation/lux/world/environment.lux b/stdlib/source/documentation/lux/world/environment.lux index 8a94cc818..6aa8ccf55 100644 --- a/stdlib/source/documentation/lux/world/environment.lux +++ b/stdlib/source/documentation/lux/world/environment.lux @@ -4,55 +4,61 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]]]] + ["%" \\format (.only format)]] + [collection + ["[0]" list]]]]] ["[0]" \\parser] [\\library ["[0]" /]]) -(.def \\parser - (.List $.Module) - ($.module \\parser._ - "" - [($.definition \\parser.unknown_property) - - ($.definition \\parser.Property - "A property in the environment.") - - ($.definition \\parser.Environment - "An abstraction for environment variables of a program.") - - ($.definition (\\parser.Parser it) - "A parser of environment variables of a program.") - - ($.definition \\parser.empty - "An empty environment.") - - ($.definition \\parser.property - "" - [(property name)]) - - ($.definition \\parser.result - (format "Executes a parser against the given environment variables." - \n "Does not check whether all environment variables were parsed, since they're usually an open set.") - [(result parser environment)])] - [])) - -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.unknown_environment_variable) - ($.definition /.async) - ($.definition /.default) - - ($.definition (/.Environment !) - "Access to ambient environment data and the capacity to exit the program.") - - ($.definition /.environment - "Assembles the environment variables available to the program." - [(environment monad program)]) - - ($.definition /.mock - "" - [(mock environment home directory)])] - [..\\parser])) +(def \\parser + (List $.Documentation) + (list ($.module \\parser._ + "") + + ($.definition \\parser.unknown_property) + + ($.definition \\parser.Property + "A property in the environment.") + + ($.definition \\parser.Environment + "An abstraction for environment variables of a program.") + + ($.definition (\\parser.Parser it) + "A parser of environment variables of a program.") + + ($.definition \\parser.empty + "An empty environment.") + + ($.definition \\parser.property + "" + [(property name)]) + + ($.definition \\parser.result + (format "Executes a parser against the given environment variables." + \n "Does not check whether all environment variables were parsed, since they're usually an open set.") + [(result parser environment)]) + )) + +(def .public documentation + (List $.Documentation) + (list.partial ($.module /._ + "") + + ($.definition /.unknown_environment_variable) + ($.definition /.async) + ($.definition /.default) + + ($.definition (/.Environment !) + "Access to ambient environment data and the capacity to exit the program.") + + ($.definition /.environment + "Assembles the environment variables available to the program." + [(environment monad program)]) + + ($.definition /.mock + "" + [(mock environment home directory)]) + + ..\\parser + )) diff --git a/stdlib/source/documentation/lux/world/file.lux b/stdlib/source/documentation/lux/world/file.lux index 1d9e7c065..d5df3bca6 100644 --- a/stdlib/source/documentation/lux/world/file.lux +++ b/stdlib/source/documentation/lux/world/file.lux @@ -4,7 +4,9 @@ ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]] + ["%" \\format (.only format)]] + [collection + ["[0]" list]]] [meta ["@" target]]]] [\\library @@ -12,52 +14,55 @@ ["[0]" / ["[1][0]" watch]]) -(.def .public documentation - (.List $.Module) - (`` (`` ($.module /._ - "" - [($.definition /.async) - ($.definition /.cannot_make_file) - ($.definition /.cannot_find_file) - ($.definition /.cannot_delete) - ($.definition /.cannot_make_directory) - ($.definition /.cannot_find_directory) - (,, (for @.lua (,, (these)) - (,, (these ($.definition /.default))))) - - ($.definition /.Path - "A path to a file or a directory in a file-system.") - - ($.definition (/.System !) - "An interface to a file-system.") - - ($.definition /.parent - "If a path represents a nested file/directory, extracts its parent directory." - [(parent fs path)]) - - ($.definition /.name - "The un-nested name of a file/directory." - [(name fs path)]) - - ($.definition /.rooted - "A nested path for a file/directory, given a root/parent path and a file/directory name within it." - [(rooted fs parent child)]) - - ($.definition /.exists? - "Checks if either a file or a directory exists at the given path." - [(exists? monad fs path)]) - - ($.definition /.mock - (format "A purely in-memory simulation of a file-system." - \n "Useful for testing.") - [(mock separator)]) - - ($.definition /.make_directories - (format "Creates the directory specified by the given path." - \n "Also, creates every super-directory necessary to make the given path valid.") - [(make_directories monad fs path)]) - - ($.definition /.make_file - "Creates a new file with the given content if-and-only-if the file does not already exist." - [(make_file monad fs content path)])] - [/watch.documentation])))) +(def .public documentation + (List $.Documentation) + (`` (`` (list.partial ($.module /._ + "") + + ($.definition /.async) + ($.definition /.cannot_make_file) + ($.definition /.cannot_find_file) + ($.definition /.cannot_delete) + ($.definition /.cannot_make_directory) + ($.definition /.cannot_find_directory) + (,, (for @.lua (,, (these)) + (,, (these ($.definition /.default))))) + + ($.definition /.Path + "A path to a file or a directory in a file-system.") + + ($.definition (/.System !) + "An interface to a file-system.") + + ($.definition /.parent + "If a path represents a nested file/directory, extracts its parent directory." + [(parent fs path)]) + + ($.definition /.name + "The un-nested name of a file/directory." + [(name fs path)]) + + ($.definition /.rooted + "A nested path for a file/directory, given a root/parent path and a file/directory name within it." + [(rooted fs parent child)]) + + ($.definition /.exists? + "Checks if either a file or a directory exists at the given path." + [(exists? monad fs path)]) + + ($.definition /.mock + (format "A purely in-memory simulation of a file-system." + \n "Useful for testing.") + [(mock separator)]) + + ($.definition /.make_directories + (format "Creates the directory specified by the given path." + \n "Also, creates every super-directory necessary to make the given path valid.") + [(make_directories monad fs path)]) + + ($.definition /.make_file + "Creates a new file with the given content if-and-only-if the file does not already exist." + [(make_file monad fs content path)]) + + /watch.documentation + )))) diff --git a/stdlib/source/documentation/lux/world/file/watch.lux b/stdlib/source/documentation/lux/world/file/watch.lux index 397336094..7ef28a451 100644 --- a/stdlib/source/documentation/lux/world/file/watch.lux +++ b/stdlib/source/documentation/lux/world/file/watch.lux @@ -10,41 +10,42 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - (`` (`` ($.module /._ - "" - [($.definition /.creation) - ($.definition /.creation?) - ($.definition /.modification) - ($.definition /.modification?) - ($.definition /.deletion) - ($.definition /.deletion?) - ($.definition /.all) - ($.definition /.not_being_watched) - ($.definition /.cannot_poll_a_non_existent_directory) - - ($.definition /.Concern - "A particular concern to watch-out for.") +(def .public documentation + (List $.Documentation) + (`` (`` (list ($.module /._ + "") - ($.definition /.and - "" - [(and left right)]) + ($.definition /.creation) + ($.definition /.creation?) + ($.definition /.modification) + ($.definition /.modification?) + ($.definition /.deletion) + ($.definition /.deletion?) + ($.definition /.all) + ($.definition /.not_being_watched) + ($.definition /.cannot_poll_a_non_existent_directory) + + ($.definition /.Concern + "A particular concern to watch-out for.") - ($.definition (/.Watcher !) - "Machinery for watching a file-system for changes to files and directories.") + ($.definition /.and + "" + [(and left right)]) - ($.definition /.polling - (format "A simple watcher that works for any file-system." - "Polls files and directories to detect changes.") - [(polling fs)]) + ($.definition (/.Watcher !) + "Machinery for watching a file-system for changes to files and directories.") - ($.definition /.mock - (format "A fake/emulated watcher." - \n "Must be given a path separator for the file-system.") - [(mock separator)]) + ($.definition /.polling + (format "A simple watcher that works for any file-system." + "Polls files and directories to detect changes.") + [(polling fs)]) - (,, (for @.jvm (,, (these ($.definition /.default - "The default watcher for the default file-system."))) - (,, (these))))] - [])))) + ($.definition /.mock + (format "A fake/emulated watcher." + \n "Must be given a path separator for the file-system.") + [(mock separator)]) + + (,, (for @.jvm (,, (these ($.definition /.default + "The default watcher for the default file-system."))) + (,, (these)))) + )))) diff --git a/stdlib/source/documentation/lux/world/input/keyboard.lux b/stdlib/source/documentation/lux/world/input/keyboard.lux index 277acb971..b6fa9b392 100644 --- a/stdlib/source/documentation/lux/world/input/keyboard.lux +++ b/stdlib/source/documentation/lux/world/input/keyboard.lux @@ -8,98 +8,99 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.back_space) - ($.definition /.enter) - ($.definition /.shift) - ($.definition /.control) - ($.definition /.alt) - ($.definition /.caps_lock) - ($.definition /.escape) - ($.definition /.space) - ($.definition /.page_up) - ($.definition /.page_down) - ($.definition /.end) - ($.definition /.home) - ($.definition /.left) - ($.definition /.up) - ($.definition /.right) - ($.definition /.down) - ($.definition /.a) - ($.definition /.b) - ($.definition /.c) - ($.definition /.d) - ($.definition /.e) - ($.definition /.f) - ($.definition /.g) - ($.definition /.h) - ($.definition /.i) - ($.definition /.j) - ($.definition /.k) - ($.definition /.l) - ($.definition /.m) - ($.definition /.n) - ($.definition /.o) - ($.definition /.p) - ($.definition /.q) - ($.definition /.r) - ($.definition /.s) - ($.definition /.t) - ($.definition /.u) - ($.definition /.v) - ($.definition /.w) - ($.definition /.x) - ($.definition /.y) - ($.definition /.z) - ($.definition /.num_pad_0) - ($.definition /.num_pad_1) - ($.definition /.num_pad_2) - ($.definition /.num_pad_3) - ($.definition /.num_pad_4) - ($.definition /.num_pad_5) - ($.definition /.num_pad_6) - ($.definition /.num_pad_7) - ($.definition /.num_pad_8) - ($.definition /.num_pad_9) - ($.definition /.delete) - ($.definition /.num_lock) - ($.definition /.scroll_lock) - ($.definition /.print_screen) - ($.definition /.insert) - ($.definition /.windows) - ($.definition /.f1) - ($.definition /.f2) - ($.definition /.f3) - ($.definition /.f4) - ($.definition /.f5) - ($.definition /.f6) - ($.definition /.f7) - ($.definition /.f8) - ($.definition /.f9) - ($.definition /.f10) - ($.definition /.f11) - ($.definition /.f12) - ($.definition /.f13) - ($.definition /.f14) - ($.definition /.f15) - ($.definition /.f16) - ($.definition /.f17) - ($.definition /.f18) - ($.definition /.f19) - ($.definition /.f20) - ($.definition /.f21) - ($.definition /.f22) - ($.definition /.f23) - ($.definition /.f24) - ($.definition /.release) - ($.definition /.press) +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") - ($.definition /.Key - "A key from a keyboard, identify by a numeric ID.") + ($.definition /.back_space) + ($.definition /.enter) + ($.definition /.shift) + ($.definition /.control) + ($.definition /.alt) + ($.definition /.caps_lock) + ($.definition /.escape) + ($.definition /.space) + ($.definition /.page_up) + ($.definition /.page_down) + ($.definition /.end) + ($.definition /.home) + ($.definition /.left) + ($.definition /.up) + ($.definition /.right) + ($.definition /.down) + ($.definition /.a) + ($.definition /.b) + ($.definition /.c) + ($.definition /.d) + ($.definition /.e) + ($.definition /.f) + ($.definition /.g) + ($.definition /.h) + ($.definition /.i) + ($.definition /.j) + ($.definition /.k) + ($.definition /.l) + ($.definition /.m) + ($.definition /.n) + ($.definition /.o) + ($.definition /.p) + ($.definition /.q) + ($.definition /.r) + ($.definition /.s) + ($.definition /.t) + ($.definition /.u) + ($.definition /.v) + ($.definition /.w) + ($.definition /.x) + ($.definition /.y) + ($.definition /.z) + ($.definition /.num_pad_0) + ($.definition /.num_pad_1) + ($.definition /.num_pad_2) + ($.definition /.num_pad_3) + ($.definition /.num_pad_4) + ($.definition /.num_pad_5) + ($.definition /.num_pad_6) + ($.definition /.num_pad_7) + ($.definition /.num_pad_8) + ($.definition /.num_pad_9) + ($.definition /.delete) + ($.definition /.num_lock) + ($.definition /.scroll_lock) + ($.definition /.print_screen) + ($.definition /.insert) + ($.definition /.windows) + ($.definition /.f1) + ($.definition /.f2) + ($.definition /.f3) + ($.definition /.f4) + ($.definition /.f5) + ($.definition /.f6) + ($.definition /.f7) + ($.definition /.f8) + ($.definition /.f9) + ($.definition /.f10) + ($.definition /.f11) + ($.definition /.f12) + ($.definition /.f13) + ($.definition /.f14) + ($.definition /.f15) + ($.definition /.f16) + ($.definition /.f17) + ($.definition /.f18) + ($.definition /.f19) + ($.definition /.f20) + ($.definition /.f21) + ($.definition /.f22) + ($.definition /.f23) + ($.definition /.f24) + ($.definition /.release) + ($.definition /.press) - ($.definition /.Press - "A key-press for a key.")] - [])) + ($.definition /.Key + "A key from a keyboard, identify by a numeric ID.") + + ($.definition /.Press + "A key-press for a key.") + )) diff --git a/stdlib/source/documentation/lux/world/locale.lux b/stdlib/source/documentation/lux/world/locale.lux index 92113b53a..6dc04bd77 100644 --- a/stdlib/source/documentation/lux/world/locale.lux +++ b/stdlib/source/documentation/lux/world/locale.lux @@ -1,31 +1,36 @@ (.require [library - [lux (.except char) + [lux (.except) ["$" documentation] [data [text ["%" \\format (.only format)]] [collection - ["[0]" list]]]]] + ["[0]" list (.use "[1]#[0]" monoid)]]]]] ["[0]" / ["[1][0]" language] ["[1][0]" territory]] [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.code) - ($.definition /.hash) - ($.definition /.equivalence) +(def .public documentation + (List $.Documentation) + (list.partial ($.module /._ + "") - ($.definition /.Locale - "A description of a locale; with territory, (optional) language, and (optional) text-encoding.") + ($.definition /.code) + ($.definition /.hash) + ($.definition /.equivalence) - ($.definition /.locale - "" - [(locale language territory encoding)])] - [/language.documentation - /territory.documentation])) + ($.definition /.Locale + "A description of a locale; with territory, (optional) language, and (optional) text-encoding.") + + ($.definition /.locale + "" + [(locale language territory encoding)]) + + (all list#composite + /language.documentation + /territory.documentation + ) + )) diff --git a/stdlib/source/documentation/lux/world/locale/language.lux b/stdlib/source/documentation/lux/world/locale/language.lux index b59bb25b4..615e56ae7 100644 --- a/stdlib/source/documentation/lux/world/locale/language.lux +++ b/stdlib/source/documentation/lux/world/locale/language.lux @@ -1,659 +1,663 @@ (.require [library - [lux (.except char) + [lux (.except) ["$" documentation] [data [text ["%" \\format (.only format)]] [collection - ["[0]" list]]]]] + ["[0]" list (.use "[1]#[0]" monoid)]]]]] [\\library ["[0]" /]]) (def items/~ - (list.together - (list ($.definition /.uncoded) - ($.definition /.multiple) - ($.definition /.undetermined) - ($.definition /.not_applicable)))) + (List $.Documentation) + (list ($.definition /.uncoded) + ($.definition /.multiple) + ($.definition /.undetermined) + ($.definition /.not_applicable))) (def items/a - (list.together - (list ($.definition /.afar) - ($.definition /.abkhazian) - ($.definition /.achinese) - ($.definition /.acoli) - ($.definition /.adangme) - ($.definition /.adyghe) - ($.definition /.afro_asiatic) - ($.definition /.afrihili) - ($.definition /.afrikaans) - ($.definition /.ainu) - ($.definition /.akan) - ($.definition /.akkadian) - ($.definition /.aleut) - ($.definition /.algonquian) - ($.definition /.southern_altai) - ($.definition /.amharic) - ($.definition /.old_english) - ($.definition /.angika) - ($.definition /.apache) - ($.definition /.arabic) - ($.definition /.official_aramaic) - ($.definition /.imperial_aramaic) - ($.definition /.aragonese) - ($.definition /.mapudungun) - ($.definition /.arapaho) - ($.definition /.artificial) - ($.definition /.arawak) - ($.definition /.assamese) - ($.definition /.asturian) - ($.definition /.bable) - ($.definition /.leonese) - ($.definition /.asturleonese) - ($.definition /.athapascan) - ($.definition /.australian) - ($.definition /.avaric) - ($.definition /.avestan) - ($.definition /.awadhi) - ($.definition /.aymara) - ($.definition /.azerbaijani)))) + (List $.Documentation) + (list ($.definition /.afar) + ($.definition /.abkhazian) + ($.definition /.achinese) + ($.definition /.acoli) + ($.definition /.adangme) + ($.definition /.adyghe) + ($.definition /.afro_asiatic) + ($.definition /.afrihili) + ($.definition /.afrikaans) + ($.definition /.ainu) + ($.definition /.akan) + ($.definition /.akkadian) + ($.definition /.aleut) + ($.definition /.algonquian) + ($.definition /.southern_altai) + ($.definition /.amharic) + ($.definition /.old_english) + ($.definition /.angika) + ($.definition /.apache) + ($.definition /.arabic) + ($.definition /.official_aramaic) + ($.definition /.imperial_aramaic) + ($.definition /.aragonese) + ($.definition /.mapudungun) + ($.definition /.arapaho) + ($.definition /.artificial) + ($.definition /.arawak) + ($.definition /.assamese) + ($.definition /.asturian) + ($.definition /.bable) + ($.definition /.leonese) + ($.definition /.asturleonese) + ($.definition /.athapascan) + ($.definition /.australian) + ($.definition /.avaric) + ($.definition /.avestan) + ($.definition /.awadhi) + ($.definition /.aymara) + ($.definition /.azerbaijani))) (def items/b - (list.together - (list ($.definition /.banda) - ($.definition /.bamileke) - ($.definition /.bashkir) - ($.definition /.baluchi) - ($.definition /.bambara) - ($.definition /.balinese) - ($.definition /.basa) - ($.definition /.baltic) - ($.definition /.beja) - ($.definition /.belarusian) - ($.definition /.bemba) - ($.definition /.bengali) - ($.definition /.berber) - ($.definition /.bhojpuri) - ($.definition /.bihari) - ($.definition /.bikol) - ($.definition /.bini) - ($.definition /.edo) - ($.definition /.bislama) - ($.definition /.siksika) - ($.definition /.bantu) - ($.definition /.tibetan) - ($.definition /.bosnian) - ($.definition /.braj) - ($.definition /.breton) - ($.definition /.batak) - ($.definition /.buriat) - ($.definition /.buginese) - ($.definition /.bulgarian) - ($.definition /.blin) - ($.definition /.bilin)))) + (List $.Documentation) + (list ($.definition /.banda) + ($.definition /.bamileke) + ($.definition /.bashkir) + ($.definition /.baluchi) + ($.definition /.bambara) + ($.definition /.balinese) + ($.definition /.basa) + ($.definition /.baltic) + ($.definition /.beja) + ($.definition /.belarusian) + ($.definition /.bemba) + ($.definition /.bengali) + ($.definition /.berber) + ($.definition /.bhojpuri) + ($.definition /.bihari) + ($.definition /.bikol) + ($.definition /.bini) + ($.definition /.edo) + ($.definition /.bislama) + ($.definition /.siksika) + ($.definition /.bantu) + ($.definition /.tibetan) + ($.definition /.bosnian) + ($.definition /.braj) + ($.definition /.breton) + ($.definition /.batak) + ($.definition /.buriat) + ($.definition /.buginese) + ($.definition /.bulgarian) + ($.definition /.blin) + ($.definition /.bilin))) (def items/c - (list.together - (list ($.definition /.caddo) - ($.definition /.central_american_indian) - ($.definition /.galibi_carib) - ($.definition /.catalan) - ($.definition /.valencian) - ($.definition /.caucasian) - ($.definition /.cebuano) - ($.definition /.celtic) - ($.definition /.czech) - ($.definition /.chamorro) - ($.definition /.chibcha) - ($.definition /.chechen) - ($.definition /.chagatai) - ($.definition /.chuukese) - ($.definition /.mari) - ($.definition /.chinook) - ($.definition /.choctaw) - ($.definition /.chipewyan) - ($.definition /.cherokee) - ($.definition /.church_slavic) - ($.definition /.old_slavonic) - ($.definition /.church_slavonic) - ($.definition /.old_bulgarian) - ($.definition /.old_church_slavonic) - ($.definition /.chuvash) - ($.definition /.cheyenne) - ($.definition /.chamic) - ($.definition /.montenegrin) - ($.definition /.coptic) - ($.definition /.cornish) - ($.definition /.corsican) - ($.definition /.creoles_and_pidgins/english) - ($.definition /.creoles_and_pidgins/french) - ($.definition /.creoles_and_pidgins/portuguese) - ($.definition /.cree) - ($.definition /.crimean) - ($.definition /.creoles_and_pidgins) - ($.definition /.kashubian) - ($.definition /.cushitic) - ($.definition /.welsh)))) + (List $.Documentation) + (list ($.definition /.caddo) + ($.definition /.central_american_indian) + ($.definition /.galibi_carib) + ($.definition /.catalan) + ($.definition /.valencian) + ($.definition /.caucasian) + ($.definition /.cebuano) + ($.definition /.celtic) + ($.definition /.czech) + ($.definition /.chamorro) + ($.definition /.chibcha) + ($.definition /.chechen) + ($.definition /.chagatai) + ($.definition /.chuukese) + ($.definition /.mari) + ($.definition /.chinook) + ($.definition /.choctaw) + ($.definition /.chipewyan) + ($.definition /.cherokee) + ($.definition /.church_slavic) + ($.definition /.old_slavonic) + ($.definition /.church_slavonic) + ($.definition /.old_bulgarian) + ($.definition /.old_church_slavonic) + ($.definition /.chuvash) + ($.definition /.cheyenne) + ($.definition /.chamic) + ($.definition /.montenegrin) + ($.definition /.coptic) + ($.definition /.cornish) + ($.definition /.corsican) + ($.definition /.creoles_and_pidgins/english) + ($.definition /.creoles_and_pidgins/french) + ($.definition /.creoles_and_pidgins/portuguese) + ($.definition /.cree) + ($.definition /.crimean) + ($.definition /.creoles_and_pidgins) + ($.definition /.kashubian) + ($.definition /.cushitic) + ($.definition /.welsh))) (def items/d - (list.together - (list ($.definition /.dakota) - ($.definition /.danish) - ($.definition /.dargwa) - ($.definition /.land_dayak) - ($.definition /.delaware) - ($.definition /.slavey) - ($.definition /.german) - ($.definition /.dogrib) - ($.definition /.dinka) - ($.definition /.dhivehi) - ($.definition /.maldivian) - ($.definition /.dogri) - ($.definition /.dravidian) - ($.definition /.lower_sorbian) - ($.definition /.duala) - ($.definition /.middle_dutch) - ($.definition /.dyula) - ($.definition /.dzongkha)))) + (List $.Documentation) + (list ($.definition /.dakota) + ($.definition /.danish) + ($.definition /.dargwa) + ($.definition /.land_dayak) + ($.definition /.delaware) + ($.definition /.slavey) + ($.definition /.german) + ($.definition /.dogrib) + ($.definition /.dinka) + ($.definition /.dhivehi) + ($.definition /.maldivian) + ($.definition /.dogri) + ($.definition /.dravidian) + ($.definition /.lower_sorbian) + ($.definition /.duala) + ($.definition /.middle_dutch) + ($.definition /.dyula) + ($.definition /.dzongkha))) (def items/e - (list.together - (list ($.definition /.efik) - ($.definition /.egyptian) - ($.definition /.ekajuk) - ($.definition /.greek) - ($.definition /.elamite) - ($.definition /.english) - ($.definition /.middle_english) - ($.definition /.esperanto) - ($.definition /.estonian) - ($.definition /.basque) - ($.definition /.ewe) - ($.definition /.ewondo)))) + (List $.Documentation) + (list ($.definition /.efik) + ($.definition /.egyptian) + ($.definition /.ekajuk) + ($.definition /.greek) + ($.definition /.elamite) + ($.definition /.english) + ($.definition /.middle_english) + ($.definition /.esperanto) + ($.definition /.estonian) + ($.definition /.basque) + ($.definition /.ewe) + ($.definition /.ewondo))) (def items/f - (list.together - (list ($.definition /.fang) - ($.definition /.faroese) - ($.definition /.persian) - ($.definition /.fanti) - ($.definition /.fijian) - ($.definition /.filipino) - ($.definition /.finnish) - ($.definition /.finno_ugrian) - ($.definition /.fon) - ($.definition /.french) - ($.definition /.middle_french) - ($.definition /.old_french) - ($.definition /.northern_frisian) - ($.definition /.eastern_frisian) - ($.definition /.western_frisian) - ($.definition /.fulah) - ($.definition /.friulian)))) + (List $.Documentation) + (list ($.definition /.fang) + ($.definition /.faroese) + ($.definition /.persian) + ($.definition /.fanti) + ($.definition /.fijian) + ($.definition /.filipino) + ($.definition /.finnish) + ($.definition /.finno_ugrian) + ($.definition /.fon) + ($.definition /.french) + ($.definition /.middle_french) + ($.definition /.old_french) + ($.definition /.northern_frisian) + ($.definition /.eastern_frisian) + ($.definition /.western_frisian) + ($.definition /.fulah) + ($.definition /.friulian))) (def items/g - (list.together - (list ($.definition /.ga) - ($.definition /.gayo) - ($.definition /.gbaya) - ($.definition /.germanic) - ($.definition /.geez) - ($.definition /.gilbertese) - ($.definition /.gaelic) - ($.definition /.irish) - ($.definition /.galician) - ($.definition /.manx) - ($.definition /.middle_high_german) - ($.definition /.old_high_german) - ($.definition /.gondi) - ($.definition /.gorontalo) - ($.definition /.gothic) - ($.definition /.grebo) - ($.definition /.ancient_greek) - ($.definition /.guarani) - ($.definition /.swiss_german) - ($.definition /.alemannic) - ($.definition /.alsatian) - ($.definition /.gujarati) - ($.definition /.gwich'in)))) + (List $.Documentation) + (list ($.definition /.ga) + ($.definition /.gayo) + ($.definition /.gbaya) + ($.definition /.germanic) + ($.definition /.geez) + ($.definition /.gilbertese) + ($.definition /.gaelic) + ($.definition /.irish) + ($.definition /.galician) + ($.definition /.manx) + ($.definition /.middle_high_german) + ($.definition /.old_high_german) + ($.definition /.gondi) + ($.definition /.gorontalo) + ($.definition /.gothic) + ($.definition /.grebo) + ($.definition /.ancient_greek) + ($.definition /.guarani) + ($.definition /.swiss_german) + ($.definition /.alemannic) + ($.definition /.alsatian) + ($.definition /.gujarati) + ($.definition /.gwich'in))) (def items/h - (list.together - (list ($.definition /.haida) - ($.definition /.haitian) - ($.definition /.hausa) - ($.definition /.hawaiian) - ($.definition /.hebrew) - ($.definition /.herero) - ($.definition /.hiligaynon) - ($.definition /.himachali) - ($.definition /.hindi) - ($.definition /.hittite) - ($.definition /.hmong) - ($.definition /.hiri_motu) - ($.definition /.croatian) - ($.definition /.upper_sorbian) - ($.definition /.hungarian) - ($.definition /.hupa) - ($.definition /.armenian)))) + (List $.Documentation) + (list ($.definition /.haida) + ($.definition /.haitian) + ($.definition /.hausa) + ($.definition /.hawaiian) + ($.definition /.hebrew) + ($.definition /.herero) + ($.definition /.hiligaynon) + ($.definition /.himachali) + ($.definition /.hindi) + ($.definition /.hittite) + ($.definition /.hmong) + ($.definition /.hiri_motu) + ($.definition /.croatian) + ($.definition /.upper_sorbian) + ($.definition /.hungarian) + ($.definition /.hupa) + ($.definition /.armenian))) (def items/i - (list.together - (list ($.definition /.iban) - ($.definition /.igbo) - ($.definition /.ido) - ($.definition /.sichuan_yi) - ($.definition /.nuosu) - ($.definition /.ijo) - ($.definition /.inuktitut) - ($.definition /.interlingue) - ($.definition /.iloko) - ($.definition /.interlingua) - ($.definition /.indic) - ($.definition /.indonesian) - ($.definition /.indo_european) - ($.definition /.ingush) - ($.definition /.inupiaq) - ($.definition /.iranian) - ($.definition /.iroquoian) - ($.definition /.icelandic) - ($.definition /.italian)))) + (List $.Documentation) + (list ($.definition /.iban) + ($.definition /.igbo) + ($.definition /.ido) + ($.definition /.sichuan_yi) + ($.definition /.nuosu) + ($.definition /.ijo) + ($.definition /.inuktitut) + ($.definition /.interlingue) + ($.definition /.iloko) + ($.definition /.interlingua) + ($.definition /.indic) + ($.definition /.indonesian) + ($.definition /.indo_european) + ($.definition /.ingush) + ($.definition /.inupiaq) + ($.definition /.iranian) + ($.definition /.iroquoian) + ($.definition /.icelandic) + ($.definition /.italian))) (def items/j - (list.together - (list ($.definition /.javanese) - ($.definition /.lojban) - ($.definition /.japanese) - ($.definition /.judeo_persian) - ($.definition /.judeo_arabic)))) + (List $.Documentation) + (list ($.definition /.javanese) + ($.definition /.lojban) + ($.definition /.japanese) + ($.definition /.judeo_persian) + ($.definition /.judeo_arabic))) (def items/k - (list.together - (list ($.definition /.kara_kalpak) - ($.definition /.kabyle) - ($.definition /.kachin) - ($.definition /.jingpho) - ($.definition /.kalaallisut) - ($.definition /.greenlandic) - ($.definition /.kamba) - ($.definition /.kannada) - ($.definition /.karen) - ($.definition /.kashmiri) - ($.definition /.georgian) - ($.definition /.kanuri) - ($.definition /.kawi) - ($.definition /.kazakh) - ($.definition /.kabardian) - ($.definition /.khasi) - ($.definition /.khoisan) - ($.definition /.central_khmer) - ($.definition /.khotanese) - ($.definition /.sakan) - ($.definition /.gikuyu) - ($.definition /.kinyarwanda) - ($.definition /.kyrgyz) - ($.definition /.kimbundu) - ($.definition /.konkani) - ($.definition /.komi) - ($.definition /.kongo) - ($.definition /.korean) - ($.definition /.kosraean) - ($.definition /.kpelle) - ($.definition /.karachay_balkar) - ($.definition /.karelian) - ($.definition /.kru) - ($.definition /.kurukh) - ($.definition /.kwanyama) - ($.definition /.kumyk) - ($.definition /.kurdish) - ($.definition /.kutenai)))) + (List $.Documentation) + (list ($.definition /.kara_kalpak) + ($.definition /.kabyle) + ($.definition /.kachin) + ($.definition /.jingpho) + ($.definition /.kalaallisut) + ($.definition /.greenlandic) + ($.definition /.kamba) + ($.definition /.kannada) + ($.definition /.karen) + ($.definition /.kashmiri) + ($.definition /.georgian) + ($.definition /.kanuri) + ($.definition /.kawi) + ($.definition /.kazakh) + ($.definition /.kabardian) + ($.definition /.khasi) + ($.definition /.khoisan) + ($.definition /.central_khmer) + ($.definition /.khotanese) + ($.definition /.sakan) + ($.definition /.gikuyu) + ($.definition /.kinyarwanda) + ($.definition /.kyrgyz) + ($.definition /.kimbundu) + ($.definition /.konkani) + ($.definition /.komi) + ($.definition /.kongo) + ($.definition /.korean) + ($.definition /.kosraean) + ($.definition /.kpelle) + ($.definition /.karachay_balkar) + ($.definition /.karelian) + ($.definition /.kru) + ($.definition /.kurukh) + ($.definition /.kwanyama) + ($.definition /.kumyk) + ($.definition /.kurdish) + ($.definition /.kutenai))) (def items/l - (list.together - (list ($.definition /.ladino) - ($.definition /.lahnda) - ($.definition /.lamba) - ($.definition /.lao) - ($.definition /.latin) - ($.definition /.latvian) - ($.definition /.lezghian) - ($.definition /.limburgan) - ($.definition /.lingala) - ($.definition /.lithuanian) - ($.definition /.mongo) - ($.definition /.lozi) - ($.definition /.luxembourgish) - ($.definition /.luba_lulua) - ($.definition /.luba_katanga) - ($.definition /.ganda) - ($.definition /.luiseno) - ($.definition /.lunda) - ($.definition /.luo) - ($.definition /.lushai)))) + (List $.Documentation) + (list ($.definition /.ladino) + ($.definition /.lahnda) + ($.definition /.lamba) + ($.definition /.lao) + ($.definition /.latin) + ($.definition /.latvian) + ($.definition /.lezghian) + ($.definition /.limburgan) + ($.definition /.lingala) + ($.definition /.lithuanian) + ($.definition /.mongo) + ($.definition /.lozi) + ($.definition /.luxembourgish) + ($.definition /.luba_lulua) + ($.definition /.luba_katanga) + ($.definition /.ganda) + ($.definition /.luiseno) + ($.definition /.lunda) + ($.definition /.luo) + ($.definition /.lushai))) (def items/m - (list.together - (list ($.definition /.madurese) - ($.definition /.magahi) - ($.definition /.marshallese) - ($.definition /.maithili) - ($.definition /.makasar) - ($.definition /.malayalam) - ($.definition /.mandingo) - ($.definition /.austronesian) - ($.definition /.marathi) - ($.definition /.masai) - ($.definition /.moksha) - ($.definition /.mandar) - ($.definition /.mende) - ($.definition /.middle_irish) - ($.definition /.mi'kmaq) - ($.definition /.micmac) - ($.definition /.minangkabau) - ($.definition /.macedonian) - ($.definition /.mon_khmer) - ($.definition /.malagasy) - ($.definition /.maltese) - ($.definition /.manchu) - ($.definition /.manipuri) - ($.definition /.manobo) - ($.definition /.mohawk) - ($.definition /.mongolian) - ($.definition /.mossi) - ($.definition /.maori) - ($.definition /.malay) - ($.definition /.munda) - ($.definition /.creek) - ($.definition /.mirandese) - ($.definition /.marwari) - ($.definition /.burmese) - ($.definition /.mayan) - ($.definition /.erzya)))) + (List $.Documentation) + (list ($.definition /.madurese) + ($.definition /.magahi) + ($.definition /.marshallese) + ($.definition /.maithili) + ($.definition /.makasar) + ($.definition /.malayalam) + ($.definition /.mandingo) + ($.definition /.austronesian) + ($.definition /.marathi) + ($.definition /.masai) + ($.definition /.moksha) + ($.definition /.mandar) + ($.definition /.mende) + ($.definition /.middle_irish) + ($.definition /.mi'kmaq) + ($.definition /.micmac) + ($.definition /.minangkabau) + ($.definition /.macedonian) + ($.definition /.mon_khmer) + ($.definition /.malagasy) + ($.definition /.maltese) + ($.definition /.manchu) + ($.definition /.manipuri) + ($.definition /.manobo) + ($.definition /.mohawk) + ($.definition /.mongolian) + ($.definition /.mossi) + ($.definition /.maori) + ($.definition /.malay) + ($.definition /.munda) + ($.definition /.creek) + ($.definition /.mirandese) + ($.definition /.marwari) + ($.definition /.burmese) + ($.definition /.mayan) + ($.definition /.erzya))) (def items/n - (list.together - (list ($.definition /.nahuatl) - ($.definition /.north_american_indian) - ($.definition /.neapolitan) - ($.definition /.nauru) - ($.definition /.navajo) - ($.definition /.south_ndebele) - ($.definition /.north_ndebele) - ($.definition /.ndonga) - ($.definition /.low_german) - ($.definition /.nepali) - ($.definition /.newari) - ($.definition /.nepal_bhasa) - ($.definition /.nias) - ($.definition /.niger_kordofanian) - ($.definition /.niuean) - ($.definition /.dutch) - ($.definition /.flemish) - ($.definition /.nynorsk) - ($.definition /.bokmal) - ($.definition /.nogai) - ($.definition /.old_norse) - ($.definition /.norwegian) - ($.definition /.n'ko) - ($.definition /.northern_sotho) - ($.definition /.pedi) - ($.definition /.sepedi) - ($.definition /.nubian) - ($.definition /.old_newari) - ($.definition /.classical_newari) - ($.definition /.classical_nepal_bhasa) - ($.definition /.nyanja) - ($.definition /.chichewa) - ($.definition /.chewa) - ($.definition /.nyamwezi) - ($.definition /.nyankole) - ($.definition /.nyoro) - ($.definition /.nzima)))) + (List $.Documentation) + (list ($.definition /.nahuatl) + ($.definition /.north_american_indian) + ($.definition /.neapolitan) + ($.definition /.nauru) + ($.definition /.navajo) + ($.definition /.south_ndebele) + ($.definition /.north_ndebele) + ($.definition /.ndonga) + ($.definition /.low_german) + ($.definition /.nepali) + ($.definition /.newari) + ($.definition /.nepal_bhasa) + ($.definition /.nias) + ($.definition /.niger_kordofanian) + ($.definition /.niuean) + ($.definition /.dutch) + ($.definition /.flemish) + ($.definition /.nynorsk) + ($.definition /.bokmal) + ($.definition /.nogai) + ($.definition /.old_norse) + ($.definition /.norwegian) + ($.definition /.n'ko) + ($.definition /.northern_sotho) + ($.definition /.pedi) + ($.definition /.sepedi) + ($.definition /.nubian) + ($.definition /.old_newari) + ($.definition /.classical_newari) + ($.definition /.classical_nepal_bhasa) + ($.definition /.nyanja) + ($.definition /.chichewa) + ($.definition /.chewa) + ($.definition /.nyamwezi) + ($.definition /.nyankole) + ($.definition /.nyoro) + ($.definition /.nzima))) (def items/o - (list.together - (list ($.definition /.occitan) - ($.definition /.provencal) - ($.definition /.ojibwa) - ($.definition /.oriya) - ($.definition /.oromo) - ($.definition /.osage) - ($.definition /.ossetic) - ($.definition /.ottoman_turkish) - ($.definition /.otomian)))) + (List $.Documentation) + (list ($.definition /.occitan) + ($.definition /.provencal) + ($.definition /.ojibwa) + ($.definition /.oriya) + ($.definition /.oromo) + ($.definition /.osage) + ($.definition /.ossetic) + ($.definition /.ottoman_turkish) + ($.definition /.otomian))) (def items/p - (list.together - (list ($.definition /.papuan) - ($.definition /.pangasinan) - ($.definition /.pahlavi) - ($.definition /.pampanga) - ($.definition /.kapampangan) - ($.definition /.punjabi) - ($.definition /.papiamento) - ($.definition /.palauan) - ($.definition /.old_persian) - ($.definition /.philippine) - ($.definition /.phoenician) - ($.definition /.pali) - ($.definition /.polish) - ($.definition /.pohnpeian) - ($.definition /.portuguese) - ($.definition /.prakrit) - ($.definition /.old_provencal) - ($.definition /.pashto)))) + (List $.Documentation) + (list ($.definition /.papuan) + ($.definition /.pangasinan) + ($.definition /.pahlavi) + ($.definition /.pampanga) + ($.definition /.kapampangan) + ($.definition /.punjabi) + ($.definition /.papiamento) + ($.definition /.palauan) + ($.definition /.old_persian) + ($.definition /.philippine) + ($.definition /.phoenician) + ($.definition /.pali) + ($.definition /.polish) + ($.definition /.pohnpeian) + ($.definition /.portuguese) + ($.definition /.prakrit) + ($.definition /.old_provencal) + ($.definition /.pashto))) (def items/q - (list.together - (list ($.definition /.quechua)))) + (List $.Documentation) + (list ($.definition /.quechua))) (def items/r - (list.together - (list ($.definition /.rajasthani) - ($.definition /.rapanui) - ($.definition /.rarotongan) - ($.definition /.cook_islands_maori) - ($.definition /.romance) - ($.definition /.romansh) - ($.definition /.romany) - ($.definition /.romanian) - ($.definition /.moldavian) - ($.definition /.moldovan) - ($.definition /.rundi) - ($.definition /.aromanian) - ($.definition /.arumanian) - ($.definition /.macedo_romanian) - ($.definition /.russian)))) + (List $.Documentation) + (list ($.definition /.rajasthani) + ($.definition /.rapanui) + ($.definition /.rarotongan) + ($.definition /.cook_islands_maori) + ($.definition /.romance) + ($.definition /.romansh) + ($.definition /.romany) + ($.definition /.romanian) + ($.definition /.moldavian) + ($.definition /.moldovan) + ($.definition /.rundi) + ($.definition /.aromanian) + ($.definition /.arumanian) + ($.definition /.macedo_romanian) + ($.definition /.russian))) (def items/s - (list.together - (list ($.definition /.sandawe) - ($.definition /.sango) - ($.definition /.yakut) - ($.definition /.south_american_indian) - ($.definition /.salishan) - ($.definition /.samaritan_aramaic) - ($.definition /.sanskrit) - ($.definition /.sasak) - ($.definition /.santali) - ($.definition /.sicilian) - ($.definition /.scots) - ($.definition /.selkup) - ($.definition /.semitic) - ($.definition /.old_irish) - ($.definition /.sign) - ($.definition /.shan) - ($.definition /.sidamo) - ($.definition /.sinhalese) - ($.definition /.siouan) - ($.definition /.sino_tibetan) - ($.definition /.slavic) - ($.definition /.slovak) - ($.definition /.slovenian) - ($.definition /.southern_sami) - ($.definition /.northern_sami) - ($.definition /.sami) - ($.definition /.lule) - ($.definition /.inari) - ($.definition /.samoan) - ($.definition /.skolt_sami) - ($.definition /.shona) - ($.definition /.sindhi) - ($.definition /.soninke) - ($.definition /.sogdian) - ($.definition /.somali) - ($.definition /.songhai) - ($.definition /.southern_sotho) - ($.definition /.spanish) - ($.definition /.castilian) - ($.definition /.albanian) - ($.definition /.sardinian) - ($.definition /.sranan_tongo) - ($.definition /.serbian) - ($.definition /.serer) - ($.definition /.nilo_saharan) - ($.definition /.swati) - ($.definition /.sukuma) - ($.definition /.sundanese) - ($.definition /.susu) - ($.definition /.sumerian) - ($.definition /.swahili) - ($.definition /.swedish) - ($.definition /.classical_syriac) - ($.definition /.syriac)))) + (List $.Documentation) + (list ($.definition /.sandawe) + ($.definition /.sango) + ($.definition /.yakut) + ($.definition /.south_american_indian) + ($.definition /.salishan) + ($.definition /.samaritan_aramaic) + ($.definition /.sanskrit) + ($.definition /.sasak) + ($.definition /.santali) + ($.definition /.sicilian) + ($.definition /.scots) + ($.definition /.selkup) + ($.definition /.semitic) + ($.definition /.old_irish) + ($.definition /.sign) + ($.definition /.shan) + ($.definition /.sidamo) + ($.definition /.sinhalese) + ($.definition /.siouan) + ($.definition /.sino_tibetan) + ($.definition /.slavic) + ($.definition /.slovak) + ($.definition /.slovenian) + ($.definition /.southern_sami) + ($.definition /.northern_sami) + ($.definition /.sami) + ($.definition /.lule) + ($.definition /.inari) + ($.definition /.samoan) + ($.definition /.skolt_sami) + ($.definition /.shona) + ($.definition /.sindhi) + ($.definition /.soninke) + ($.definition /.sogdian) + ($.definition /.somali) + ($.definition /.songhai) + ($.definition /.southern_sotho) + ($.definition /.spanish) + ($.definition /.castilian) + ($.definition /.albanian) + ($.definition /.sardinian) + ($.definition /.sranan_tongo) + ($.definition /.serbian) + ($.definition /.serer) + ($.definition /.nilo_saharan) + ($.definition /.swati) + ($.definition /.sukuma) + ($.definition /.sundanese) + ($.definition /.susu) + ($.definition /.sumerian) + ($.definition /.swahili) + ($.definition /.swedish) + ($.definition /.classical_syriac) + ($.definition /.syriac))) (def items/t - (list.together - (list ($.definition /.tahitian) - ($.definition /.tai) - ($.definition /.tamil) - ($.definition /.tatar) - ($.definition /.telugu) - ($.definition /.timne) - ($.definition /.tereno) - ($.definition /.tetum) - ($.definition /.tajik) - ($.definition /.tagalog) - ($.definition /.thai) - ($.definition /.tigre) - ($.definition /.tigrinya) - ($.definition /.tiv) - ($.definition /.tokelau) - ($.definition /.klingon) - ($.definition /.tlingit) - ($.definition /.tamashek) - ($.definition /.tonga) - ($.definition /.tongan) - ($.definition /.tok_pisin) - ($.definition /.tsimshian) - ($.definition /.tswana) - ($.definition /.tsonga) - ($.definition /.turkmen) - ($.definition /.tumbuka) - ($.definition /.tupi) - ($.definition /.turkish) - ($.definition /.altaic) - ($.definition /.tuvalu) - ($.definition /.twi) - ($.definition /.tuvinian)))) + (List $.Documentation) + (list ($.definition /.tahitian) + ($.definition /.tai) + ($.definition /.tamil) + ($.definition /.tatar) + ($.definition /.telugu) + ($.definition /.timne) + ($.definition /.tereno) + ($.definition /.tetum) + ($.definition /.tajik) + ($.definition /.tagalog) + ($.definition /.thai) + ($.definition /.tigre) + ($.definition /.tigrinya) + ($.definition /.tiv) + ($.definition /.tokelau) + ($.definition /.klingon) + ($.definition /.tlingit) + ($.definition /.tamashek) + ($.definition /.tonga) + ($.definition /.tongan) + ($.definition /.tok_pisin) + ($.definition /.tsimshian) + ($.definition /.tswana) + ($.definition /.tsonga) + ($.definition /.turkmen) + ($.definition /.tumbuka) + ($.definition /.tupi) + ($.definition /.turkish) + ($.definition /.altaic) + ($.definition /.tuvalu) + ($.definition /.twi) + ($.definition /.tuvinian))) (def items/u - (list.together - (list ($.definition /.udmurt) - ($.definition /.ugaritic) - ($.definition /.uyghur) - ($.definition /.ukrainian) - ($.definition /.umbundu) - ($.definition /.urdu) - ($.definition /.uzbek)))) + (List $.Documentation) + (list ($.definition /.udmurt) + ($.definition /.ugaritic) + ($.definition /.uyghur) + ($.definition /.ukrainian) + ($.definition /.umbundu) + ($.definition /.urdu) + ($.definition /.uzbek))) (def items/v - (list.together - (list ($.definition /.vai) - ($.definition /.venda) - ($.definition /.vietnamese) - ($.definition /.volapük) - ($.definition /.votic)))) + (List $.Documentation) + (list ($.definition /.vai) + ($.definition /.venda) + ($.definition /.vietnamese) + ($.definition /.volapük) + ($.definition /.votic))) (def items/w - (list.together - (list ($.definition /.wakashan) - ($.definition /.walamo) - ($.definition /.waray) - ($.definition /.washo) - ($.definition /.sorbian) - ($.definition /.walloon) - ($.definition /.wolof)))) + (List $.Documentation) + (list ($.definition /.wakashan) + ($.definition /.walamo) + ($.definition /.waray) + ($.definition /.washo) + ($.definition /.sorbian) + ($.definition /.walloon) + ($.definition /.wolof))) (def items/x - (list.together - (list ($.definition /.kalmyk) - ($.definition /.oirat) - ($.definition /.xhosa)))) + (List $.Documentation) + (list ($.definition /.kalmyk) + ($.definition /.oirat) + ($.definition /.xhosa))) (def items/y - (list.together - (list ($.definition /.yao) - ($.definition /.yapese) - ($.definition /.yiddish) - ($.definition /.yoruba) - ($.definition /.yupik)))) + (List $.Documentation) + (list ($.definition /.yao) + ($.definition /.yapese) + ($.definition /.yiddish) + ($.definition /.yoruba) + ($.definition /.yupik))) (def items/z - (list.together - (list ($.definition /.zapotec) - ($.definition /.blissymbols) - ($.definition /.zenaga) - ($.definition /.standard_moroccan_tamazight) - ($.definition /.zhuang) - ($.definition /.chinese) - ($.definition /.zande) - ($.definition /.zulu) - ($.definition /.zuni) - ($.definition /.zaza) - ($.definition /.dimili) - ($.definition /.dimli) - ($.definition /.kirdki) - ($.definition /.kirmanjki) - ($.definition /.zazaki)))) + (List $.Documentation) + (list ($.definition /.zapotec) + ($.definition /.blissymbols) + ($.definition /.zenaga) + ($.definition /.standard_moroccan_tamazight) + ($.definition /.zhuang) + ($.definition /.chinese) + ($.definition /.zande) + ($.definition /.zulu) + ($.definition /.zuni) + ($.definition /.zaza) + ($.definition /.dimili) + ($.definition /.dimli) + ($.definition /.kirdki) + ($.definition /.kirmanjki) + ($.definition /.zazaki))) -(.def .public documentation - (.List $.Module) - (`` ($.module /._ - "" - [($.definition /.name) - ($.definition /.code) - ($.definition /.equivalence) - ($.definition /.hash) - ..items/~ - ..items/a - ..items/b - ..items/c - ..items/d - ..items/e - ..items/f - ..items/g - ..items/h - ..items/i - ..items/j - ..items/k - ..items/l - ..items/m - ..items/n - ..items/o - ..items/p - ..items/q - ..items/r - ..items/s - ..items/t - ..items/u - ..items/v - ..items/w - ..items/x - ..items/y - ..items/z +(def .public documentation + (List $.Documentation) + (`` (list.partial ($.module /._ + "") - ($.definition /.Language - "An ISO 639 language.")] - []))) + ($.definition /.name) + ($.definition /.code) + ($.definition /.equivalence) + ($.definition /.hash) + + ($.definition /.Language + "An ISO 639 language.") + + (all list#composite + ..items/~ + ..items/a + ..items/b + ..items/c + ..items/d + ..items/e + ..items/f + ..items/g + ..items/h + ..items/i + ..items/j + ..items/k + ..items/l + ..items/m + ..items/n + ..items/o + ..items/p + ..items/q + ..items/r + ..items/s + ..items/t + ..items/u + ..items/v + ..items/w + ..items/x + ..items/y + ..items/z + ) + ))) diff --git a/stdlib/source/documentation/lux/world/locale/territory.lux b/stdlib/source/documentation/lux/world/locale/territory.lux index 6a54c5a00..7fff4eb60 100644 --- a/stdlib/source/documentation/lux/world/locale/territory.lux +++ b/stdlib/source/documentation/lux/world/locale/territory.lux @@ -6,315 +6,318 @@ [text ["%" \\format (.only format)]] [collection - ["[0]" list]]]]] + ["[0]" list (.use "[1]#[0]" monoid)]]]]] [\\library ["[0]" /]]) (def items/ab - (list.together - (list ($.definition /.afghanistan) - ($.definition /.aland_islands) - ($.definition /.albania) - ($.definition /.algeria) - ($.definition /.american_samoa) - ($.definition /.andorra) - ($.definition /.angola) - ($.definition /.anguilla) - ($.definition /.antarctica) - ($.definition /.antigua) - ($.definition /.barbuda) - ($.definition /.argentina) - ($.definition /.armenia) - ($.definition /.aruba) - ($.definition /.australia) - ($.definition /.austria) - ($.definition /.azerbaijan) - ($.definition /.the_bahamas) - ($.definition /.bahrain) - ($.definition /.bangladesh) - ($.definition /.barbados) - ($.definition /.belarus) - ($.definition /.belgium) - ($.definition /.belize) - ($.definition /.benin) - ($.definition /.bermuda) - ($.definition /.bhutan) - ($.definition /.bolivia) - ($.definition /.bonaire) - ($.definition /.sint_eustatius) - ($.definition /.saba) - ($.definition /.bosnia) - ($.definition /.herzegovina) - ($.definition /.botswana) - ($.definition /.bouvet_island) - ($.definition /.brazil) - ($.definition /.british_indian_ocean_territory) - ($.definition /.brunei_darussalam) - ($.definition /.bulgaria) - ($.definition /.burkina_faso) - ($.definition /.burundi)))) + (List $.Documentation) + (list ($.definition /.afghanistan) + ($.definition /.aland_islands) + ($.definition /.albania) + ($.definition /.algeria) + ($.definition /.american_samoa) + ($.definition /.andorra) + ($.definition /.angola) + ($.definition /.anguilla) + ($.definition /.antarctica) + ($.definition /.antigua) + ($.definition /.barbuda) + ($.definition /.argentina) + ($.definition /.armenia) + ($.definition /.aruba) + ($.definition /.australia) + ($.definition /.austria) + ($.definition /.azerbaijan) + ($.definition /.the_bahamas) + ($.definition /.bahrain) + ($.definition /.bangladesh) + ($.definition /.barbados) + ($.definition /.belarus) + ($.definition /.belgium) + ($.definition /.belize) + ($.definition /.benin) + ($.definition /.bermuda) + ($.definition /.bhutan) + ($.definition /.bolivia) + ($.definition /.bonaire) + ($.definition /.sint_eustatius) + ($.definition /.saba) + ($.definition /.bosnia) + ($.definition /.herzegovina) + ($.definition /.botswana) + ($.definition /.bouvet_island) + ($.definition /.brazil) + ($.definition /.british_indian_ocean_territory) + ($.definition /.brunei_darussalam) + ($.definition /.bulgaria) + ($.definition /.burkina_faso) + ($.definition /.burundi))) (def items/cd - (list.together - (list ($.definition /.cape_verde) - ($.definition /.cambodia) - ($.definition /.cameroon) - ($.definition /.canada) - ($.definition /.cayman_islands) - ($.definition /.central_african_republic) - ($.definition /.chad) - ($.definition /.chile) - ($.definition /.china) - ($.definition /.christmas_island) - ($.definition /.cocos_islands) - ($.definition /.colombia) - ($.definition /.comoros) - ($.definition /.congo) - ($.definition /.democratic_republic_of_the_congo) - ($.definition /.cook_islands) - ($.definition /.costa_rica) - ($.definition /.ivory_coast) - ($.definition /.croatia) - ($.definition /.cuba) - ($.definition /.curacao) - ($.definition /.cyprus) - ($.definition /.czech_republic) - ($.definition /.denmark) - ($.definition /.djibouti) - ($.definition /.dominica) - ($.definition /.dominican_republic)))) + (List $.Documentation) + (list ($.definition /.cape_verde) + ($.definition /.cambodia) + ($.definition /.cameroon) + ($.definition /.canada) + ($.definition /.cayman_islands) + ($.definition /.central_african_republic) + ($.definition /.chad) + ($.definition /.chile) + ($.definition /.china) + ($.definition /.christmas_island) + ($.definition /.cocos_islands) + ($.definition /.colombia) + ($.definition /.comoros) + ($.definition /.congo) + ($.definition /.democratic_republic_of_the_congo) + ($.definition /.cook_islands) + ($.definition /.costa_rica) + ($.definition /.ivory_coast) + ($.definition /.croatia) + ($.definition /.cuba) + ($.definition /.curacao) + ($.definition /.cyprus) + ($.definition /.czech_republic) + ($.definition /.denmark) + ($.definition /.djibouti) + ($.definition /.dominica) + ($.definition /.dominican_republic))) (def items/efg - (list.together - (list ($.definition /.ecuador) - ($.definition /.egypt) - ($.definition /.el_salvador) - ($.definition /.equatorial_guinea) - ($.definition /.eritrea) - ($.definition /.estonia) - ($.definition /.eswatini) - ($.definition /.ethiopia) - ($.definition /.falkland_islands) - ($.definition /.faroe_islands) - ($.definition /.fiji) - ($.definition /.finland) - ($.definition /.france) - ($.definition /.french_guiana) - ($.definition /.french_polynesia) - ($.definition /.french_southern_territories) - ($.definition /.gabon) - ($.definition /.the_gambia) - ($.definition /.georgia) - ($.definition /.germany) - ($.definition /.ghana) - ($.definition /.gibraltar) - ($.definition /.greece) - ($.definition /.greenland) - ($.definition /.grenada) - ($.definition /.guadeloupe) - ($.definition /.guam) - ($.definition /.guatemala) - ($.definition /.guernsey) - ($.definition /.guinea) - ($.definition /.guinea_bissau) - ($.definition /.guyana)))) + (List $.Documentation) + (list ($.definition /.ecuador) + ($.definition /.egypt) + ($.definition /.el_salvador) + ($.definition /.equatorial_guinea) + ($.definition /.eritrea) + ($.definition /.estonia) + ($.definition /.eswatini) + ($.definition /.ethiopia) + ($.definition /.falkland_islands) + ($.definition /.faroe_islands) + ($.definition /.fiji) + ($.definition /.finland) + ($.definition /.france) + ($.definition /.french_guiana) + ($.definition /.french_polynesia) + ($.definition /.french_southern_territories) + ($.definition /.gabon) + ($.definition /.the_gambia) + ($.definition /.georgia) + ($.definition /.germany) + ($.definition /.ghana) + ($.definition /.gibraltar) + ($.definition /.greece) + ($.definition /.greenland) + ($.definition /.grenada) + ($.definition /.guadeloupe) + ($.definition /.guam) + ($.definition /.guatemala) + ($.definition /.guernsey) + ($.definition /.guinea) + ($.definition /.guinea_bissau) + ($.definition /.guyana))) (def items/hijkl - (list.together - (list ($.definition /.haiti) - ($.definition /.heard_island) - ($.definition /.mcdonald_islands) - ($.definition /.vatican_city) - ($.definition /.honduras) - ($.definition /.hong_kong) - ($.definition /.hungary) - ($.definition /.iceland) - ($.definition /.india) - ($.definition /.indonesia) - ($.definition /.iran) - ($.definition /.iraq) - ($.definition /.ireland) - ($.definition /.isle_of_man) - ($.definition /.israel) - ($.definition /.italy) - ($.definition /.jamaica) - ($.definition /.japan) - ($.definition /.jersey) - ($.definition /.jordan) - ($.definition /.kazakhstan) - ($.definition /.kenya) - ($.definition /.kiribati) - ($.definition /.north_korea) - ($.definition /.south_korea) - ($.definition /.kuwait) - ($.definition /.kyrgyzstan) - ($.definition /.laos) - ($.definition /.latvia) - ($.definition /.lebanon) - ($.definition /.lesotho) - ($.definition /.liberia) - ($.definition /.libya) - ($.definition /.liechtenstein) - ($.definition /.lithuania) - ($.definition /.luxembourg)))) + (List $.Documentation) + (list ($.definition /.haiti) + ($.definition /.heard_island) + ($.definition /.mcdonald_islands) + ($.definition /.vatican_city) + ($.definition /.honduras) + ($.definition /.hong_kong) + ($.definition /.hungary) + ($.definition /.iceland) + ($.definition /.india) + ($.definition /.indonesia) + ($.definition /.iran) + ($.definition /.iraq) + ($.definition /.ireland) + ($.definition /.isle_of_man) + ($.definition /.israel) + ($.definition /.italy) + ($.definition /.jamaica) + ($.definition /.japan) + ($.definition /.jersey) + ($.definition /.jordan) + ($.definition /.kazakhstan) + ($.definition /.kenya) + ($.definition /.kiribati) + ($.definition /.north_korea) + ($.definition /.south_korea) + ($.definition /.kuwait) + ($.definition /.kyrgyzstan) + ($.definition /.laos) + ($.definition /.latvia) + ($.definition /.lebanon) + ($.definition /.lesotho) + ($.definition /.liberia) + ($.definition /.libya) + ($.definition /.liechtenstein) + ($.definition /.lithuania) + ($.definition /.luxembourg))) (def items/mno - (list.together - (list ($.definition /.macau) - ($.definition /.macedonia) - ($.definition /.madagascar) - ($.definition /.malawi) - ($.definition /.malaysia) - ($.definition /.maldives) - ($.definition /.mali) - ($.definition /.malta) - ($.definition /.marshall_islands) - ($.definition /.martinique) - ($.definition /.mauritania) - ($.definition /.mauritius) - ($.definition /.mayotte) - ($.definition /.mexico) - ($.definition /.micronesia) - ($.definition /.moldova) - ($.definition /.monaco) - ($.definition /.mongolia) - ($.definition /.montenegro) - ($.definition /.montserrat) - ($.definition /.morocco) - ($.definition /.mozambique) - ($.definition /.myanmar) - ($.definition /.namibia) - ($.definition /.nauru) - ($.definition /.nepal) - ($.definition /.netherlands) - ($.definition /.new_caledonia) - ($.definition /.new_zealand) - ($.definition /.nicaragua) - ($.definition /.niger) - ($.definition /.nigeria) - ($.definition /.niue) - ($.definition /.norfolk_island) - ($.definition /.northern_mariana_islands) - ($.definition /.norway) - ($.definition /.oman)))) + (List $.Documentation) + (list ($.definition /.macau) + ($.definition /.macedonia) + ($.definition /.madagascar) + ($.definition /.malawi) + ($.definition /.malaysia) + ($.definition /.maldives) + ($.definition /.mali) + ($.definition /.malta) + ($.definition /.marshall_islands) + ($.definition /.martinique) + ($.definition /.mauritania) + ($.definition /.mauritius) + ($.definition /.mayotte) + ($.definition /.mexico) + ($.definition /.micronesia) + ($.definition /.moldova) + ($.definition /.monaco) + ($.definition /.mongolia) + ($.definition /.montenegro) + ($.definition /.montserrat) + ($.definition /.morocco) + ($.definition /.mozambique) + ($.definition /.myanmar) + ($.definition /.namibia) + ($.definition /.nauru) + ($.definition /.nepal) + ($.definition /.netherlands) + ($.definition /.new_caledonia) + ($.definition /.new_zealand) + ($.definition /.nicaragua) + ($.definition /.niger) + ($.definition /.nigeria) + ($.definition /.niue) + ($.definition /.norfolk_island) + ($.definition /.northern_mariana_islands) + ($.definition /.norway) + ($.definition /.oman))) (def items/pqrs - (list.together - (list ($.definition /.pakistan) - ($.definition /.palau) - ($.definition /.palestine) - ($.definition /.panama) - ($.definition /.papua_new_guinea) - ($.definition /.paraguay) - ($.definition /.peru) - ($.definition /.philippines) - ($.definition /.pitcairn_islands) - ($.definition /.poland) - ($.definition /.portugal) - ($.definition /.puerto_rico) - ($.definition /.qatar) - ($.definition /.reunion) - ($.definition /.romania) - ($.definition /.russia) - ($.definition /.rwanda) - ($.definition /.saint_barthelemy) - ($.definition /.saint_helena) - ($.definition /.ascension) - ($.definition /.tristan_da_cunha) - ($.definition /.saint_kitts) - ($.definition /.nevis) - ($.definition /.saint_lucia) - ($.definition /.saint_martin) - ($.definition /.saint_pierre) - ($.definition /.miquelon) - ($.definition /.saint_vincent) - ($.definition /.the_grenadines) - ($.definition /.samoa) - ($.definition /.san_marino) - ($.definition /.sao_tome) - ($.definition /.principe) - ($.definition /.saudi_arabia) - ($.definition /.senegal) - ($.definition /.serbia) - ($.definition /.seychelles) - ($.definition /.sierra_leone) - ($.definition /.singapore) - ($.definition /.sint_maarten) - ($.definition /.slovakia) - ($.definition /.slovenia) - ($.definition /.solomon_islands) - ($.definition /.somalia) - ($.definition /.south_africa) - ($.definition /.south_georgia) - ($.definition /.south_sandwich_islands) - ($.definition /.south_sudan) - ($.definition /.spain) - ($.definition /.sri_lanka) - ($.definition /.sudan) - ($.definition /.suriname) - ($.definition /.svalbard) - ($.definition /.jan_mayen) - ($.definition /.sweden) - ($.definition /.switzerland) - ($.definition /.syria)))) + (List $.Documentation) + (list ($.definition /.pakistan) + ($.definition /.palau) + ($.definition /.palestine) + ($.definition /.panama) + ($.definition /.papua_new_guinea) + ($.definition /.paraguay) + ($.definition /.peru) + ($.definition /.philippines) + ($.definition /.pitcairn_islands) + ($.definition /.poland) + ($.definition /.portugal) + ($.definition /.puerto_rico) + ($.definition /.qatar) + ($.definition /.reunion) + ($.definition /.romania) + ($.definition /.russia) + ($.definition /.rwanda) + ($.definition /.saint_barthelemy) + ($.definition /.saint_helena) + ($.definition /.ascension) + ($.definition /.tristan_da_cunha) + ($.definition /.saint_kitts) + ($.definition /.nevis) + ($.definition /.saint_lucia) + ($.definition /.saint_martin) + ($.definition /.saint_pierre) + ($.definition /.miquelon) + ($.definition /.saint_vincent) + ($.definition /.the_grenadines) + ($.definition /.samoa) + ($.definition /.san_marino) + ($.definition /.sao_tome) + ($.definition /.principe) + ($.definition /.saudi_arabia) + ($.definition /.senegal) + ($.definition /.serbia) + ($.definition /.seychelles) + ($.definition /.sierra_leone) + ($.definition /.singapore) + ($.definition /.sint_maarten) + ($.definition /.slovakia) + ($.definition /.slovenia) + ($.definition /.solomon_islands) + ($.definition /.somalia) + ($.definition /.south_africa) + ($.definition /.south_georgia) + ($.definition /.south_sandwich_islands) + ($.definition /.south_sudan) + ($.definition /.spain) + ($.definition /.sri_lanka) + ($.definition /.sudan) + ($.definition /.suriname) + ($.definition /.svalbard) + ($.definition /.jan_mayen) + ($.definition /.sweden) + ($.definition /.switzerland) + ($.definition /.syria))) (def items/tuvwxyz - (list.together - (list ($.definition /.taiwan) - ($.definition /.tajikistan) - ($.definition /.tanzania) - ($.definition /.thailand) - ($.definition /.east_timor) - ($.definition /.togo) - ($.definition /.tokelau) - ($.definition /.tonga) - ($.definition /.trinidad) - ($.definition /.tobago) - ($.definition /.tunisia) - ($.definition /.turkey) - ($.definition /.turkmenistan) - ($.definition /.turks) - ($.definition /.caicos_islands) - ($.definition /.tuvalu) - ($.definition /.uganda) - ($.definition /.ukraine) - ($.definition /.united_arab_emirates) - ($.definition /.united_kingdom) - ($.definition /.northern_ireland) - ($.definition /.united_states_of_america) - ($.definition /.united_states_minor_outlying_islands) - ($.definition /.uruguay) - ($.definition /.uzbekistan) - ($.definition /.vanuatu) - ($.definition /.venezuela) - ($.definition /.vietnam) - ($.definition /.british_virgin_islands) - ($.definition /.united_states_virgin_islands) - ($.definition /.wallis) - ($.definition /.futuna) - ($.definition /.western_sahara) - ($.definition /.yemen) - ($.definition /.zambia) - ($.definition /.zimbabwe)))) + (List $.Documentation) + (list ($.definition /.taiwan) + ($.definition /.tajikistan) + ($.definition /.tanzania) + ($.definition /.thailand) + ($.definition /.east_timor) + ($.definition /.togo) + ($.definition /.tokelau) + ($.definition /.tonga) + ($.definition /.trinidad) + ($.definition /.tobago) + ($.definition /.tunisia) + ($.definition /.turkey) + ($.definition /.turkmenistan) + ($.definition /.turks) + ($.definition /.caicos_islands) + ($.definition /.tuvalu) + ($.definition /.uganda) + ($.definition /.ukraine) + ($.definition /.united_arab_emirates) + ($.definition /.united_kingdom) + ($.definition /.northern_ireland) + ($.definition /.united_states_of_america) + ($.definition /.united_states_minor_outlying_islands) + ($.definition /.uruguay) + ($.definition /.uzbekistan) + ($.definition /.vanuatu) + ($.definition /.venezuela) + ($.definition /.vietnam) + ($.definition /.british_virgin_islands) + ($.definition /.united_states_virgin_islands) + ($.definition /.wallis) + ($.definition /.futuna) + ($.definition /.western_sahara) + ($.definition /.yemen) + ($.definition /.zambia) + ($.definition /.zimbabwe))) -(.def .public documentation - (.List $.Module) - (`` ($.module /._ - "" - [($.definition /.name) - ($.definition /.short_code) - ($.definition /.long_code) - ($.definition /.numeric_code) - ($.definition /.equivalence) - ($.definition /.hash) - ..items/ab - ..items/cd - ..items/efg - ..items/hijkl - ..items/mno - ..items/pqrs - ..items/tuvwxyz +(def .public documentation + (List $.Documentation) + (`` (list.partial ($.module /._ + "") - ($.definition /.Territory - "An ISO 3166 territory.")] - []))) + ($.definition /.name) + ($.definition /.short_code) + ($.definition /.long_code) + ($.definition /.numeric_code) + ($.definition /.equivalence) + ($.definition /.hash) + + ($.definition /.Territory + "An ISO 3166 territory.") + + (all list#composite + ..items/ab + ..items/cd + ..items/efg + ..items/hijkl + ..items/mno + ..items/pqrs + ..items/tuvwxyz) + ))) diff --git a/stdlib/source/documentation/lux/world/net.lux b/stdlib/source/documentation/lux/world/net.lux index 6ec146ddf..65d6c4316 100644 --- a/stdlib/source/documentation/lux/world/net.lux +++ b/stdlib/source/documentation/lux/world/net.lux @@ -4,7 +4,10 @@ ["$" documentation] ["[0]" debug] [control - ["[0]" io]]]] + ["[0]" io]] + [data + [collection + ["[0]" list (.use "[1]#[0]" monoid)]]]]] [\\library ["[0]" /]] ["[0]" / @@ -13,20 +16,24 @@ ["[1]/[0]" client] ["[1]/[0]" status]]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.Location) +(def .public documentation + (List $.Documentation) + (list.partial ($.module /._ + "") - ($.definition /.Address - "A TCP/IP address.") + ($.definition /.Location) - ($.definition /.Port - "A TCP/IP port.") + ($.definition /.Address + "A TCP/IP address.") - ($.definition /.URL - "A Uniform Resource Locator.")] - [/uri.documentation - /http/client.documentation - /http/status.documentation])) + ($.definition /.Port + "A TCP/IP port.") + + ($.definition /.URL + "A Uniform Resource Locator.") + + (all list#composite + /uri.documentation + /http/client.documentation + /http/status.documentation) + )) diff --git a/stdlib/source/documentation/lux/world/net/http/client.lux b/stdlib/source/documentation/lux/world/net/http/client.lux index e306658a4..0330e372e 100644 --- a/stdlib/source/documentation/lux/world/net/http/client.lux +++ b/stdlib/source/documentation/lux/world/net/http/client.lux @@ -12,30 +12,31 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - (`` (`` ($.module /._ - "" - [($.definition /.async) - ($.definition /.headers) - (,, (for @.jvm (,, (these ($.definition /.default))) - (,, (these)))) +(def .public documentation + (List $.Documentation) + (`` (`` (list ($.module /._ + "") - ($.definition (/.Client !) - "A HTTP client capable of issuing requests to a HTTP server.") - - (,, (with_template [] - [($.definition - (format "A " (text.upper_cased (template.text [])) " request."))] + ($.definition /.async) + ($.definition /.headers) + (,, (for @.jvm (,, (these ($.definition /.default))) + (,, (these)))) - [/.post] - [/.get] - [/.put] - [/.patch] - [/.delete] - [/.head] - [/.connect] - [/.options] - [/.trace] - ))] - [])))) + ($.definition (/.Client !) + "A HTTP client capable of issuing requests to a HTTP server.") + + (,, (with_template [] + [($.definition + (format "A " (text.upper_cased (template.text [])) " request."))] + + [/.post] + [/.get] + [/.put] + [/.patch] + [/.delete] + [/.head] + [/.connect] + [/.options] + [/.trace] + )) + )))) diff --git a/stdlib/source/documentation/lux/world/net/http/status.lux b/stdlib/source/documentation/lux/world/net/http/status.lux index 94b646d02..0a65db6dd 100644 --- a/stdlib/source/documentation/lux/world/net/http/status.lux +++ b/stdlib/source/documentation/lux/world/net/http/status.lux @@ -11,87 +11,88 @@ [\\library ["[0]" /]]) -(`` (.def .public documentation - (.List $.Module) - ($.module /._ - "" - [(,, (with_template [] - [($.definition - (|> (template.text []) - (text.replaced "_" " ") - text.upper_cased - (format (%.nat ) ": ")))] +(`` (def .public documentation + (List $.Documentation) + (list ($.module /._ + "") - ... 1xx Informational response - [/.continue] - [/.switching_protocols] - [/.processing] - [/.early_hints] + (,, (with_template [] + [($.definition + (|> (template.text []) + (text.replaced "_" " ") + text.upper_cased + (format (%.nat ) ": ")))] - ... 2xx Success - [/.ok] - [/.created] - [/.accepted] - [/.non_authoritative_information] - [/.no_content] - [/.reset_content] - [/.partial_content] - [/.multi_status] - [/.already_reported] - [/.im_used] + ... 1xx Informational response + [/.continue] + [/.switching_protocols] + [/.processing] + [/.early_hints] - ... 3xx Redirection - [/.multiple_choices] - [/.moved_permanently] - [/.found] - [/.see_other] - [/.not_modified] - [/.use_proxy] - [/.switch_proxy] - [/.temporary_redirect] - [/.permanent_redirect] + ... 2xx Success + [/.ok] + [/.created] + [/.accepted] + [/.non_authoritative_information] + [/.no_content] + [/.reset_content] + [/.partial_content] + [/.multi_status] + [/.already_reported] + [/.im_used] - ... 4xx Client errors - [/.bad_request] - [/.unauthorized] - [/.payment_required] - [/.forbidden] - [/.not_found] - [/.method_not_allowed] - [/.not_acceptable] - [/.proxy_authentication_required] - [/.request_timeout] - [/.conflict] - [/.gone] - [/.length_required] - [/.precondition_failed] - [/.payload_too_large] - [/.uri_too_long] - [/.unsupported_media_type] - [/.range_not_satisfiable] - [/.expectation_failed] - [/.im_a_teapot] - [/.misdirected_request] - [/.unprocessable_entity] - [/.locked] - [/.failed_dependency] - [/.upgrade_required] - [/.precondition_required] - [/.too_many_requests] - [/.request_header_fields_too_large] - [/.unavailable_for_legal_reasons] + ... 3xx Redirection + [/.multiple_choices] + [/.moved_permanently] + [/.found] + [/.see_other] + [/.not_modified] + [/.use_proxy] + [/.switch_proxy] + [/.temporary_redirect] + [/.permanent_redirect] - ... 5xx Server errors - [/.internal_server_error] - [/.not_implemented] - [/.bad_gateway] - [/.service_unavailable] - [/.gateway_timeout] - [/.http_version_not_supported] - [/.variant_also_negotiates] - [/.insufficient_storage] - [/.loop_detected] - [/.not_extended] - [/.network_authentication_required] - ))] - []))) + ... 4xx Client errors + [/.bad_request] + [/.unauthorized] + [/.payment_required] + [/.forbidden] + [/.not_found] + [/.method_not_allowed] + [/.not_acceptable] + [/.proxy_authentication_required] + [/.request_timeout] + [/.conflict] + [/.gone] + [/.length_required] + [/.precondition_failed] + [/.payload_too_large] + [/.uri_too_long] + [/.unsupported_media_type] + [/.range_not_satisfiable] + [/.expectation_failed] + [/.im_a_teapot] + [/.misdirected_request] + [/.unprocessable_entity] + [/.locked] + [/.failed_dependency] + [/.upgrade_required] + [/.precondition_required] + [/.too_many_requests] + [/.request_header_fields_too_large] + [/.unavailable_for_legal_reasons] + + ... 5xx Server errors + [/.internal_server_error] + [/.not_implemented] + [/.bad_gateway] + [/.service_unavailable] + [/.gateway_timeout] + [/.http_version_not_supported] + [/.variant_also_negotiates] + [/.insufficient_storage] + [/.loop_detected] + [/.not_extended] + [/.network_authentication_required] + )) + ))) diff --git a/stdlib/source/documentation/lux/world/net/uri.lux b/stdlib/source/documentation/lux/world/net/uri.lux index 525dacf19..a3cd0ecac 100644 --- a/stdlib/source/documentation/lux/world/net/uri.lux +++ b/stdlib/source/documentation/lux/world/net/uri.lux @@ -8,13 +8,14 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.URI - "A Uniform Resource Identifier.") +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") + + ($.definition /.URI + "A Uniform Resource Identifier.") - ($.definition /.separator - "A separator for the pieces of a URI.")] - [])) + ($.definition /.separator + "A separator for the pieces of a URI.") + )) diff --git a/stdlib/source/documentation/lux/world/output/video/resolution.lux b/stdlib/source/documentation/lux/world/output/video/resolution.lux index 3ad820414..3595c1624 100644 --- a/stdlib/source/documentation/lux/world/output/video/resolution.lux +++ b/stdlib/source/documentation/lux/world/output/video/resolution.lux @@ -11,40 +11,41 @@ [\\library ["[0]" /]]) -(`` (.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.hash) - ($.definition /.equivalence) +(`` (def .public documentation + (List $.Documentation) + (list ($.module /._ + "") - ($.definition /.Resolution - "A screen resolution.") + ($.definition /.hash) + ($.definition /.equivalence) - (,, (with_template [] - [($.definition - (let [name (|> (template.text []) - (text.replaced "_" " ") - text.upper_cased)] - (format name " resolution: " - (%.nat (the /.#width )) - "x" (%.nat (the /.#height )) - ".")))] + ($.definition /.Resolution + "A screen resolution.") - [/.svga] - [/.wsvga] - [/.xga] - [/.xga+] - [/.wxga_16:9] - [/.wxga_5:3] - [/.wxga_16:10] - [/.sxga] - [/.wxga+] - [/.hd+] - [/.wsxga+] - [/.fhd] - [/.wuxga] - [/.wqhd] - [/.uhd_4k] - ))] - []))) + (,, (with_template [] + [($.definition + (let [name (|> (template.text []) + (text.replaced "_" " ") + text.upper_cased)] + (format name " resolution: " + (%.nat (the /.#width )) + "x" (%.nat (the /.#height )) + ".")))] + + [/.svga] + [/.wsvga] + [/.xga] + [/.xga+] + [/.wxga_16:9] + [/.wxga_5:3] + [/.wxga_16:10] + [/.sxga] + [/.wxga+] + [/.hd+] + [/.wsxga+] + [/.fhd] + [/.wuxga] + [/.wqhd] + [/.uhd_4k] + )) + ))) diff --git a/stdlib/source/documentation/lux/world/shell.lux b/stdlib/source/documentation/lux/world/shell.lux index 100a642e2..7be466440 100644 --- a/stdlib/source/documentation/lux/world/shell.lux +++ b/stdlib/source/documentation/lux/world/shell.lux @@ -10,36 +10,37 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - (`` (`` ($.module /._ - "" - [($.definition /.normal) - ($.definition /.error) - ($.definition /.async) - (,, (for @.jvm (,, (these ($.definition /.no_more_output) - ($.definition /.default))) - (,, (these)))) - - ($.definition /.Exit - "A program exit code.") - - ($.definition (/.Process !) - "The means for communicating with a program/process being executed by the operating system.") - - ($.definition /.Command - "A command that can be executed by the operating system.") - - ($.definition /.Argument - "A parameter for a command.") - - ($.definition (/.Shell !) - "The means for issuing commands to the operating system.") - - ($.definition (/.Mock s) - "A simulated process.") - - ($.definition /.mock - "" - [(mock mock init)])] - [])))) +(def .public documentation + (List $.Documentation) + (`` (`` (list ($.module /._ + "") + + ($.definition /.normal) + ($.definition /.error) + ($.definition /.async) + (,, (for @.jvm (,, (these ($.definition /.no_more_output) + ($.definition /.default))) + (,, (these)))) + + ($.definition /.Exit + "A program exit code.") + + ($.definition (/.Process !) + "The means for communicating with a program/process being executed by the operating system.") + + ($.definition /.Command + "A command that can be executed by the operating system.") + + ($.definition /.Argument + "A parameter for a command.") + + ($.definition (/.Shell !) + "The means for issuing commands to the operating system.") + + ($.definition (/.Mock s) + "A simulated process.") + + ($.definition /.mock + "" + [(mock mock init)]) + )))) diff --git a/stdlib/source/documentation/lux/world/time.lux b/stdlib/source/documentation/lux/world/time.lux index cd799e437..de12b24a0 100644 --- a/stdlib/source/documentation/lux/world/time.lux +++ b/stdlib/source/documentation/lux/world/time.lux @@ -1,10 +1,12 @@ (.require [library - [lux (.except and) + [lux (.except) ["$" documentation] [data ["[0]" text (.only \n) - ["%" \\format (.only format)]]]]] + ["%" \\format (.only format)]] + [collection + ["[0]" list (.use "[1]#[0]" monoid)]]]]] [\\library ["[0]" /]] ["[0]" / @@ -15,57 +17,62 @@ ["[1][0]" month] ["[1][0]" year]]) -(`` (.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.time_exceeds_a_day) - ($.definition /.invalid_hour) - ($.definition /.invalid_minute) - ($.definition /.invalid_second) - ($.definition /.millis) - ($.definition /.equivalence) - ($.definition /.order) - ($.definition /.enum) - ($.definition /.parser) +(`` (def .public documentation + (List $.Documentation) + (list.partial ($.module /._ + "") - (,, (with_template [ ] - [($.definition - )] + ($.definition /.time_exceeds_a_day) + ($.definition /.invalid_hour) + ($.definition /.invalid_minute) + ($.definition /.invalid_second) + ($.definition /.millis) + ($.definition /.equivalence) + ($.definition /.order) + ($.definition /.enum) + ($.definition /.parser) - [/.milli_seconds "Number of milli-seconds in a second."] - [/.seconds "Number of seconds in a minute."] - [/.minutes "Number of minutes in an hour."] - [/.hours "Number of hours in an day."] - )) + (,, (with_template [ ] + [($.definition + )] - ($.definition /.Time - "Time is defined as milliseconds since the start of the day (00:00:00.000).") + [/.milli_seconds "Number of milli-seconds in a second."] + [/.seconds "Number of seconds in a minute."] + [/.minutes "Number of minutes in an hour."] + [/.hours "Number of hours in an day."] + )) - ($.definition /.midnight - "The instant corresponding to the start of the day: 00:00:00.000") + ($.definition /.Time + "Time is defined as milliseconds since the start of the day (00:00:00.000).") - ($.definition /.of_millis - "" - [(of_millis milli_seconds)]) + ($.definition /.midnight + "The instant corresponding to the start of the day: 00:00:00.000") - ($.definition /.Clock - "A clock marking the specific hour, minute, second, and milli-second in a day.") + ($.definition /.of_millis + "" + [(of_millis milli_seconds)]) - ($.definition /.clock - "" - [(clock time)]) + ($.definition /.Clock + "A clock marking the specific hour, minute, second, and milli-second in a day.") - ($.definition /.time - "" - [(time clock)]) + ($.definition /.clock + "" + [(clock time)]) - ($.definition /.codec - (format "Based on ISO 8601." - \n "For example: 21:14:51.827"))] - [/date.documentation - /day.documentation - /duration.documentation - /instant.documentation - /month.documentation - /year.documentation]))) + ($.definition /.time + "" + [(time clock)]) + + ($.definition /.codec + (format "Based on ISO 8601." + \n "For example: 21:14:51.827")) + + (all list#composite + /date.documentation + /day.documentation + /duration.documentation + /instant.documentation + /month.documentation + /year.documentation + ) + ))) diff --git a/stdlib/source/documentation/lux/world/time/date.lux b/stdlib/source/documentation/lux/world/time/date.lux index 6d5716f7f..af7765e36 100644 --- a/stdlib/source/documentation/lux/world/time/date.lux +++ b/stdlib/source/documentation/lux/world/time/date.lux @@ -1,6 +1,6 @@ (.require [library - [lux (.except and) + [lux (.except) ["$" documentation] [data ["[0]" text (.only \n) @@ -8,31 +8,32 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.invalid_day) - ($.definition /.epoch) - ($.definition /.year) - ($.definition /.month) - ($.definition /.day_of_month) - ($.definition /.equivalence) - ($.definition /.order) - ($.definition /.invalid_month) - ($.definition /.parser) - ($.definition /.days) - ($.definition /.of_days) - ($.definition /.enum) +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") - ($.definition /.Date - "A date specified as a year/month/day triplet.") + ($.definition /.invalid_day) + ($.definition /.epoch) + ($.definition /.year) + ($.definition /.month) + ($.definition /.day_of_month) + ($.definition /.equivalence) + ($.definition /.order) + ($.definition /.invalid_month) + ($.definition /.parser) + ($.definition /.days) + ($.definition /.of_days) + ($.definition /.enum) - ($.definition /.date - "A date, within the allowed limits." - [(date year month day_of_month)]) + ($.definition /.Date + "A date specified as a year/month/day triplet.") - ($.definition /.codec - (format "Based on ISO 8601." - \n "For example: 2017-01-15"))] - [])) + ($.definition /.date + "A date, within the allowed limits." + [(date year month day_of_month)]) + + ($.definition /.codec + (format "Based on ISO 8601." + \n "For example: 2017-01-15")) + )) diff --git a/stdlib/source/documentation/lux/world/time/day.lux b/stdlib/source/documentation/lux/world/time/day.lux index d7441d2b7..8e55f69e2 100644 --- a/stdlib/source/documentation/lux/world/time/day.lux +++ b/stdlib/source/documentation/lux/world/time/day.lux @@ -1,6 +1,6 @@ (.require [library - [lux (.except and) + [lux (.except) ["$" documentation] [data ["[0]" text (.only \n) @@ -8,23 +8,24 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.equivalence) - ($.definition /.order) - ($.definition /.enum) - ($.definition /.not_a_day_of_the_week) - ($.definition /.codec) - ($.definition /.number) - ($.definition /.invalid_day) - ($.definition /.by_number) - ($.definition /.hash) +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") - ($.definition /.Day - "A day of the week.") + ($.definition /.equivalence) + ($.definition /.order) + ($.definition /.enum) + ($.definition /.not_a_day_of_the_week) + ($.definition /.codec) + ($.definition /.number) + ($.definition /.invalid_day) + ($.definition /.by_number) + ($.definition /.hash) - ($.definition /.week - "All the days, ordered by when they come in a week.")] - [])) + ($.definition /.Day + "A day of the week.") + + ($.definition /.week + "All the days, ordered by when they come in a week.") + )) diff --git a/stdlib/source/documentation/lux/world/time/duration.lux b/stdlib/source/documentation/lux/world/time/duration.lux index f3725156c..a8dc682d2 100644 --- a/stdlib/source/documentation/lux/world/time/duration.lux +++ b/stdlib/source/documentation/lux/world/time/duration.lux @@ -1,6 +1,6 @@ (.require [library - [lux (.except and) + [lux (.except) ["$" documentation] [data ["[0]" text (.only \n) @@ -8,40 +8,41 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.of_millis) - ($.definition /.millis) - ($.definition /.composite) - ($.definition /.framed) - ($.definition /.up) - ($.definition /.down) - ($.definition /.inverse) - ($.definition /.ticks) - ($.definition /.equivalence) - ($.definition /.order) - ($.definition /.positive?) - ($.definition /.negative?) - ($.definition /.neutral?) - ($.definition /.empty) - ($.definition /.milli_second) - ($.definition /.second) - ($.definition /.minute) - ($.definition /.hour) - ($.definition /.day) - ($.definition /.week) - ($.definition /.normal_year) - ($.definition /.leap_year) - ($.definition /.monoid) - ($.definition /.codec) - ($.definition /.enum) +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") - ($.definition /.Duration - "Durations have a resolution of milli-seconds.") + ($.definition /.of_millis) + ($.definition /.millis) + ($.definition /.composite) + ($.definition /.framed) + ($.definition /.up) + ($.definition /.down) + ($.definition /.inverse) + ($.definition /.ticks) + ($.definition /.equivalence) + ($.definition /.order) + ($.definition /.positive?) + ($.definition /.negative?) + ($.definition /.neutral?) + ($.definition /.empty) + ($.definition /.milli_second) + ($.definition /.second) + ($.definition /.minute) + ($.definition /.hour) + ($.definition /.day) + ($.definition /.week) + ($.definition /.normal_year) + ($.definition /.leap_year) + ($.definition /.monoid) + ($.definition /.codec) + ($.definition /.enum) - ($.definition /.difference - "" - [(difference from to)])] - [])) + ($.definition /.Duration + "Durations have a resolution of milli-seconds.") + + ($.definition /.difference + "" + [(difference from to)]) + )) diff --git a/stdlib/source/documentation/lux/world/time/instant.lux b/stdlib/source/documentation/lux/world/time/instant.lux index ae5ffb421..71efafd6c 100644 --- a/stdlib/source/documentation/lux/world/time/instant.lux +++ b/stdlib/source/documentation/lux/world/time/instant.lux @@ -1,6 +1,6 @@ (.require [library - [lux (.except and) + [lux (.except) ["$" documentation] [data ["[0]" text (.only \n) @@ -8,49 +8,50 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.of_millis) - ($.definition /.millis) - ($.definition /.equivalence) - ($.definition /.order) - ($.definition /.enum) - ($.definition /.date) - ($.definition /.time) - ($.definition /.day_of_week) - - ($.definition /.Instant - "Instant is defined as milli-seconds since the epoch.") - - ($.definition /.span - "" - [(span from to)]) - - ($.definition /.after - "" - [(after duration instant)]) - - ($.definition /.relative - "" - [(relative instant)]) - - ($.definition /.absolute - "" - [(absolute offset)]) - - ($.definition /.epoch - "The instant corresponding to 1970-01-01T00:00:00Z.") - - ($.definition /.codec - (format "Based on ISO 8601." - \n "For example: 2017-01-15T21:14:51.827Z")) - - ($.definition /.now - "Yields the current instant, as measured from the operating-system's clock.") - - ($.definition /.of_date_time - "" - [(of_date_time date time)])] - [])) +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") + + ($.definition /.of_millis) + ($.definition /.millis) + ($.definition /.equivalence) + ($.definition /.order) + ($.definition /.enum) + ($.definition /.date) + ($.definition /.time) + ($.definition /.day_of_week) + + ($.definition /.Instant + "Instant is defined as milli-seconds since the epoch.") + + ($.definition /.span + "" + [(span from to)]) + + ($.definition /.after + "" + [(after duration instant)]) + + ($.definition /.relative + "" + [(relative instant)]) + + ($.definition /.absolute + "" + [(absolute offset)]) + + ($.definition /.epoch + "The instant corresponding to 1970-01-01T00:00:00Z.") + + ($.definition /.codec + (format "Based on ISO 8601." + \n "For example: 2017-01-15T21:14:51.827Z")) + + ($.definition /.now + "Yields the current instant, as measured from the operating-system's clock.") + + ($.definition /.of_date_time + "" + [(of_date_time date time)]) + )) diff --git a/stdlib/source/documentation/lux/world/time/month.lux b/stdlib/source/documentation/lux/world/time/month.lux index b1f03829c..60f1dcdea 100644 --- a/stdlib/source/documentation/lux/world/time/month.lux +++ b/stdlib/source/documentation/lux/world/time/month.lux @@ -1,6 +1,6 @@ (.require [library - [lux (.except and) + [lux (.except) ["$" documentation] [data ["[0]" text (.only \n) @@ -8,31 +8,32 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.equivalence) - ($.definition /.number) - ($.definition /.invalid_month) - ($.definition /.by_number) - ($.definition /.hash) - ($.definition /.order) - ($.definition /.enum) - ($.definition /.not_a_month_of_the_year) - ($.definition /.codec) +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") - ($.definition /.Month - "A month of the year.") + ($.definition /.equivalence) + ($.definition /.number) + ($.definition /.invalid_month) + ($.definition /.by_number) + ($.definition /.hash) + ($.definition /.order) + ($.definition /.enum) + ($.definition /.not_a_month_of_the_year) + ($.definition /.codec) - ($.definition /.days - "The amount of days of a month." - [(days month)]) + ($.definition /.Month + "A month of the year.") - ($.definition /.leap_year_days - "The amount of days of a month (in a leap year)." - [(leap_year_days month)]) + ($.definition /.days + "The amount of days of a month." + [(days month)]) - ($.definition /.year - "All the months, ordered by when they come in a year.")] - [])) + ($.definition /.leap_year_days + "The amount of days of a month (in a leap year)." + [(leap_year_days month)]) + + ($.definition /.year + "All the months, ordered by when they come in a year.") + )) diff --git a/stdlib/source/documentation/lux/world/time/year.lux b/stdlib/source/documentation/lux/world/time/year.lux index 0f2a5825b..370c1cd2b 100644 --- a/stdlib/source/documentation/lux/world/time/year.lux +++ b/stdlib/source/documentation/lux/world/time/year.lux @@ -1,6 +1,6 @@ (.require [library - [lux (.except and) + [lux (.except) ["$" documentation] [data ["[0]" text (.only \n) @@ -8,41 +8,42 @@ [\\library ["[0]" /]]) -(.def .public documentation - (.List $.Module) - ($.module /._ - "" - [($.definition /.there_is_no_year_0) - ($.definition /.value) - ($.definition /.epoch) - ($.definition /.leap) - ($.definition /.century) - ($.definition /.era) - ($.definition /.leap?) - ($.definition /.parser) - ($.definition /.equivalence) - ($.definition /.order) - - ($.definition /.Year - (format "A year in the gregorian calendar." - \n "Both negative (< 0) and positive (> 0) values are valid, but not 0." - \n "This is because the first year of the gregorian calendar was year 1.")) - - ($.definition /.year - "A valid year in the gregorian calendar, if possible." - [(year value)]) - - ($.definition /.days - "The amount of days in a typical year.") - - ($.definition /.Period - "An amount of years.") - - ($.definition /.leaps - "The number of leap years in a period of years." - [(leaps year)]) - - ($.definition /.codec - (format "Based on ISO 8601." - \n "For example: 2017"))] - [])) +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") + + ($.definition /.there_is_no_year_0) + ($.definition /.value) + ($.definition /.epoch) + ($.definition /.leap) + ($.definition /.century) + ($.definition /.era) + ($.definition /.leap?) + ($.definition /.parser) + ($.definition /.equivalence) + ($.definition /.order) + + ($.definition /.Year + (format "A year in the gregorian calendar." + \n "Both negative (< 0) and positive (> 0) values are valid, but not 0." + \n "This is because the first year of the gregorian calendar was year 1.")) + + ($.definition /.year + "A valid year in the gregorian calendar, if possible." + [(year value)]) + + ($.definition /.days + "The amount of days in a typical year.") + + ($.definition /.Period + "An amount of years.") + + ($.definition /.leaps + "The number of leap years in a period of years." + [(leaps year)]) + + ($.definition /.codec + (format "Based on ISO 8601." + \n "For example: 2017")) + )) diff --git a/stdlib/source/library/lux/test.lux b/stdlib/source/library/lux/test.lux deleted file mode 100644 index 16df02a68..000000000 --- a/stdlib/source/library/lux/test.lux +++ /dev/null @@ -1,284 +0,0 @@ -(.require - [library - [lux (.except and for) - ["[0]" debug] - [abstract - [monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" maybe] - ["[0]" try] - ["[0]" exception (.only exception)] - ["[0]" io] - [concurrency - ["[0]" atom (.only Atom)] - ["[0]" async (.only Async) (.use "[1]#[0]" monad)]]] - [data - ["[0]" product] - ["[0]" text (.only) - ["%" \\format (.only format)]] - [collection - ["[0]" list (.use "[1]#[0]" functor mix)] - ["[0]" set] - ["[0]" dictionary - ["[1]" ordered (.only Dictionary)]]]] - [math - ["[0]" random (.only Random) (.use "[1]#[0]" monad)] - [number (.only hex) - ["n" nat] - ["f" frac]]] - [meta - ["@" target] - ["[0]" symbol] - ["[0]" code - ["<[1]>" \\parser]] - [macro - [syntax (.only syntax)]]] - [world - ["[0]" environment] - ["[0]" console] - [time - [duration (.only Duration)] - ["[0]" instant]]]]] - [/ - ["//" unit] - ["[0]" coverage (.only Coverage)] - ["[0]" tally (.only Tally)]]) - -(type .public Test - (Random //.Test)) - -(def .public (and left right) - (-> Test Test Test) - (do [! random.monad] - [left left] - (at ! each (//.and left) right))) - -(def .public context - (-> Text Test Test) - (|>> %.text - //.context - random#each)) - -(def .public failure - (-> Text Test) - (|>> //.failure - random#in)) - -(def .public success - (-> Text Test) - (|>> //.success - random#in)) - -(def .public (test message condition) - (-> Text Bit Test) - (random#in (//.test message condition))) - -(def .public (lifted message random) - (-> Text (Random Bit) Test) - (do random.monad - [it random] - (test message it))) - -(def pcg_32_magic_inc - Nat - (hex "FEDCBA9876543210")) - -(type .public Seed - Nat) - -(def .public (seed value test) - (-> Seed Test Test) - (function (_ prng) - (let [[_ result] (random.result (random.pcg_32 [..pcg_32_magic_inc value]) - test)] - [prng result]))) - -(def failed? - (-> Tally Bit) - (|>> (the tally.#failures) (n.> 0))) - -(def separator - text.new_line) - -(def (times_failure seed documentation) - (-> Seed Text Text) - (format documentation ..separator ..separator - "Failed with this seed: " (%.nat seed))) - -(exception .public must_try_test_at_least_once) - -(def .public (times amount test) - (-> Nat Test Test) - (case amount - 0 (..failure (exception.error ..must_try_test_at_least_once [])) - _ (do random.monad - [seed random.nat] - (function (again prng) - (let [[prng' instance] (random.result (random.pcg_32 [..pcg_32_magic_inc seed]) test)] - [prng' (do [! async.monad] - [[tally documentation] instance] - (if (..failed? tally) - (in [tally (times_failure seed documentation)]) - (case amount - 1 instance - _ (|> test - (times (-- amount)) - (random.result prng') - product.right))))]))))) - -(def (description duration tally) - (-> Duration Tally Text) - (let [successes (the tally.#successes tally) - failures (the tally.#failures tally) - missing (set.difference (the tally.#actual tally) - (the tally.#expected tally)) - unexpected (set.difference (the tally.#expected tally) - (the tally.#actual tally)) - report (is (-> Coverage Text) - (|>> set.list - (list.sorted (at symbol.order <)) - (exception.listing %.symbol))) - expected_coverage (set.size (the tally.#expected tally)) - unexpected_coverage (set.size unexpected) - actual_coverage (n.- unexpected_coverage - (set.size (the tally.#actual tally))) - coverage (case expected_coverage - 0 "N/A" - expected (let [missing_ratio (f./ (n.frac expected) - (n.frac (set.size missing))) - max_percent +100.0 - done_percent (|> +1.0 - (f.- missing_ratio) - (f.* max_percent))] - (if (f.= max_percent done_percent) - "100%" - (let [raw (|> done_percent - %.frac - (text.replaced_once "+" ""))] - (|> raw - (text.clip 0 (if (f.< +10.0 done_percent) - 4 ... X.XX - 5 ... XX.XX - )) - (maybe.else raw) - (text.suffix "%"))))))] - (exception.report - (list ["Duration" (%.duration duration)] - - ["Tests" (%.nat (n.+ successes failures))] - ["Successes" (%.nat successes)] - ["Failures" (%.nat failures)] - - ["Expected coverage" (%.nat expected_coverage)] - ["Actual coverage" (%.nat actual_coverage)] - ["Pending coverage" (%.nat (n.- actual_coverage - expected_coverage))] - ["Unexpected coverage" (%.nat unexpected_coverage)] - - ["Coverage" coverage] - ["Pending" (report missing)] - ["Unexpected" (report unexpected)])))) - -(def failure_exit_code +1) -(def success_exit_code +0) - -(def .public (run! test) - (-> Test (Async Nothing)) - (do async.monad - [pre (async.future instant.now) - .let [seed (instant.millis pre) - prng (random.pcg_32 [..pcg_32_magic_inc seed])] - [tally documentation] (|> test (random.result prng) product.right) - post (async.future instant.now) - .let [duration (instant.span pre post) - report (format documentation - text.new_line text.new_line - (..description duration tally) - text.new_line)] - _ (with_expansions [ (in {try.#Success (debug.log! report)})] - (.for @.js (case console.default - {.#None} - - - {.#Some console} - (console.write_line report console)) - ))] - (async.future (at environment.default exit - (case (the tally.#failures tally) - 0 ..success_exit_code - _ ..failure_exit_code))))) - -(def .public coverage - (syntax (_ [coverage .any - condition .any]) - (in (list (` (at random.monad (,' in) (//.coverage (, coverage) (, condition)))))))) - -(def .public for - (syntax (_ [coverage .any - test .any]) - (in (list (` (at random.functor - (,' each) - (|>> (//.for (, coverage))) - (, test))))))) - -(def .public covering - (syntax (_ [module .any - test .any]) - (in (list (` (at random.functor - (,' each) - (|>> (//.covering (, module))) - (, test))))))) - -(exception .public (error_during_execution [error Text]) - (exception.report - (list ["Error" (%.text error)]))) - -(def .public (in_parallel tests) - (-> (List Test) Test) - (case (list.size tests) - 0 - (random#in (async#in [tally.empty ""])) - - expected_tests - (do random.monad - [seed random.nat - .let [prng (random.pcg_32 [..pcg_32_magic_inc seed]) - run! (is (-> Test //.Test) - (|>> (random.result prng) - product.right - (function (_ _)) - "lux try" - (pipe.case - {try.#Success output} - output - - {try.#Failure error} - (//.test (exception.error ..error_during_execution [error]) false)))) - state (is (Atom (Dictionary Nat [Tally Text])) - (atom.atom (dictionary.empty n.order))) - [read! write!] (is [//.Test - (async.Resolver [Tally Text])] - (async.async [])) - _ (list#mix (function (_ test index) - (exec - (|> (run! test) - (async.upon! (function (_ assertion) - (do io.monad - [[_ results] (atom.update! (dictionary.has index assertion) state)] - (if (n.= expected_tests (dictionary.size results)) - (let [assertions (|> results - dictionary.entries - (list#each product.right))] - (write! [(|> assertions - (list#each product.left) - (list#mix tally.and tally.empty)) - (|> assertions - (list#each product.right) - (text.interposed ..separator))])) - (in []))))) - io.run!) - (++ index))) - 0 - tests)]] - (in read!)))) diff --git a/stdlib/source/library/lux/test/property.lux b/stdlib/source/library/lux/test/property.lux new file mode 100644 index 000000000..ff61d64d5 --- /dev/null +++ b/stdlib/source/library/lux/test/property.lux @@ -0,0 +1,284 @@ +(.require + [library + [lux (.except and for) + ["[0]" debug] + [abstract + [monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" maybe] + ["[0]" try] + ["[0]" exception (.only exception)] + ["[0]" io] + [concurrency + ["[0]" atom (.only Atom)] + ["[0]" async (.only Async) (.use "[1]#[0]" monad)]]] + [data + ["[0]" product] + ["[0]" text (.only) + ["%" \\format (.only format)]] + [collection + ["[0]" list (.use "[1]#[0]" functor mix)] + ["[0]" set] + ["[0]" dictionary + ["[1]" ordered (.only Dictionary)]]]] + [math + ["[0]" random (.only Random) (.use "[1]#[0]" monad)] + [number (.only hex) + ["n" nat] + ["f" frac]]] + [meta + ["@" target] + ["[0]" symbol] + ["[0]" code + ["<[1]>" \\parser]] + [macro + [syntax (.only syntax)]]] + [world + ["[0]" environment] + ["[0]" console] + [time + [duration (.only Duration)] + ["[0]" instant]]]]] + [// + ["//" unit] + ["[0]" coverage (.only Coverage)] + ["[0]" tally (.only Tally)]]) + +(type .public Test + (Random //.Test)) + +(def .public (and left right) + (-> Test Test Test) + (do [! random.monad] + [left left] + (at ! each (//.and left) right))) + +(def .public context + (-> Text Test Test) + (|>> %.text + //.context + random#each)) + +(def .public failure + (-> Text Test) + (|>> //.failure + random#in)) + +(def .public success + (-> Text Test) + (|>> //.success + random#in)) + +(def .public (test message condition) + (-> Text Bit Test) + (random#in (//.test message condition))) + +(def .public (lifted message random) + (-> Text (Random Bit) Test) + (do random.monad + [it random] + (test message it))) + +(def pcg_32_magic_inc + Nat + (hex "FEDCBA9876543210")) + +(type .public Seed + Nat) + +(def .public (seed value test) + (-> Seed Test Test) + (function (_ prng) + (let [[_ result] (random.result (random.pcg_32 [..pcg_32_magic_inc value]) + test)] + [prng result]))) + +(def failed? + (-> Tally Bit) + (|>> (the tally.#failures) (n.> 0))) + +(def separator + text.new_line) + +(def (times_failure seed documentation) + (-> Seed Text Text) + (format documentation ..separator ..separator + "Failed with this seed: " (%.nat seed))) + +(exception .public must_try_test_at_least_once) + +(def .public (times amount test) + (-> Nat Test Test) + (case amount + 0 (..failure (exception.error ..must_try_test_at_least_once [])) + _ (do random.monad + [seed random.nat] + (function (again prng) + (let [[prng' instance] (random.result (random.pcg_32 [..pcg_32_magic_inc seed]) test)] + [prng' (do [! async.monad] + [[tally documentation] instance] + (if (..failed? tally) + (in [tally (times_failure seed documentation)]) + (case amount + 1 instance + _ (|> test + (times (-- amount)) + (random.result prng') + product.right))))]))))) + +(def (description duration tally) + (-> Duration Tally Text) + (let [successes (the tally.#successes tally) + failures (the tally.#failures tally) + missing (set.difference (the tally.#actual tally) + (the tally.#expected tally)) + unexpected (set.difference (the tally.#expected tally) + (the tally.#actual tally)) + report (is (-> Coverage Text) + (|>> set.list + (list.sorted (at symbol.order <)) + (exception.listing %.symbol))) + expected_coverage (set.size (the tally.#expected tally)) + unexpected_coverage (set.size unexpected) + actual_coverage (n.- unexpected_coverage + (set.size (the tally.#actual tally))) + coverage (case expected_coverage + 0 "N/A" + expected (let [missing_ratio (f./ (n.frac expected) + (n.frac (set.size missing))) + max_percent +100.0 + done_percent (|> +1.0 + (f.- missing_ratio) + (f.* max_percent))] + (if (f.= max_percent done_percent) + "100%" + (let [raw (|> done_percent + %.frac + (text.replaced_once "+" ""))] + (|> raw + (text.clip 0 (if (f.< +10.0 done_percent) + 4 ... X.XX + 5 ... XX.XX + )) + (maybe.else raw) + (text.suffix "%"))))))] + (exception.report + (list ["Duration" (%.duration duration)] + + ["Tests" (%.nat (n.+ successes failures))] + ["Successes" (%.nat successes)] + ["Failures" (%.nat failures)] + + ["Expected coverage" (%.nat expected_coverage)] + ["Actual coverage" (%.nat actual_coverage)] + ["Pending coverage" (%.nat (n.- actual_coverage + expected_coverage))] + ["Unexpected coverage" (%.nat unexpected_coverage)] + + ["Coverage" coverage] + ["Pending" (report missing)] + ["Unexpected" (report unexpected)])))) + +(def failure_exit_code +1) +(def success_exit_code +0) + +(def .public (run! test) + (-> Test (Async Nothing)) + (do async.monad + [pre (async.future instant.now) + .let [seed (instant.millis pre) + prng (random.pcg_32 [..pcg_32_magic_inc seed])] + [tally documentation] (|> test (random.result prng) product.right) + post (async.future instant.now) + .let [duration (instant.span pre post) + report (format documentation + text.new_line text.new_line + (..description duration tally) + text.new_line)] + _ (with_expansions [ (in {try.#Success (debug.log! report)})] + (.for @.js (case console.default + {.#None} + + + {.#Some console} + (console.write_line report console)) + ))] + (async.future (at environment.default exit + (case (the tally.#failures tally) + 0 ..success_exit_code + _ ..failure_exit_code))))) + +(def .public coverage + (syntax (_ [coverage .any + condition .any]) + (in (list (` (at random.monad (,' in) (//.coverage (, coverage) (, condition)))))))) + +(def .public for + (syntax (_ [coverage .any + test .any]) + (in (list (` (at random.functor + (,' each) + (|>> (//.for (, coverage))) + (, test))))))) + +(def .public covering + (syntax (_ [module .any + test .any]) + (in (list (` (at random.functor + (,' each) + (|>> (//.covering (, module))) + (, test))))))) + +(exception .public (error_during_execution [error Text]) + (exception.report + (list ["Error" (%.text error)]))) + +(def .public (in_parallel tests) + (-> (List Test) Test) + (case (list.size tests) + 0 + (random#in (async#in [tally.empty ""])) + + expected_tests + (do random.monad + [seed random.nat + .let [prng (random.pcg_32 [..pcg_32_magic_inc seed]) + run! (is (-> Test //.Test) + (|>> (random.result prng) + product.right + (function (_ _)) + "lux try" + (pipe.case + {try.#Success output} + output + + {try.#Failure error} + (//.test (exception.error ..error_during_execution [error]) false)))) + state (is (Atom (Dictionary Nat [Tally Text])) + (atom.atom (dictionary.empty n.order))) + [read! write!] (is [//.Test + (async.Resolver [Tally Text])] + (async.async [])) + _ (list#mix (function (_ test index) + (exec + (|> (run! test) + (async.upon! (function (_ assertion) + (do io.monad + [[_ results] (atom.update! (dictionary.has index assertion) state)] + (if (n.= expected_tests (dictionary.size results)) + (let [assertions (|> results + dictionary.entries + (list#each product.right))] + (write! [(|> assertions + (list#each product.left) + (list#mix tally.and tally.empty)) + (|> assertions + (list#each product.right) + (text.interposed ..separator))])) + (in []))))) + io.run!) + (++ index))) + 0 + tests)]] + (in read!)))) diff --git a/stdlib/source/specification/aedifex/repository.lux b/stdlib/source/specification/aedifex/repository.lux index a0812b443..f5f278e7c 100644 --- a/stdlib/source/specification/aedifex/repository.lux +++ b/stdlib/source/specification/aedifex/repository.lux @@ -12,8 +12,9 @@ ["_[1]" \\test]]] [math ["[0]" random]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\program ["[0]" / (.only) ["[1][0]" remote] diff --git a/stdlib/source/specification/compositor.lux b/stdlib/source/specification/compositor.lux index 6a6ff9cfb..1caf89d56 100644 --- a/stdlib/source/specification/compositor.lux +++ b/stdlib/source/specification/compositor.lux @@ -1,22 +1,24 @@ (.require - [lux (.except) - ["_" test (.only Test)] - [abstract - [monad (.only do)]] - [control - ["[0]" io (.only IO)] - ["[0]" try]] - [math - ["r" random]] - [meta - [compiler - ["[0]" analysis] - ["[0]" declaration] - [phase - [macro (.only Expander)] - [generation (.only Bundle)]] - [default - [platform (.only Platform)]]]]] + [library + [lux (.except) + [abstract + [monad (.only do)]] + [control + ["[0]" io (.only IO)] + ["[0]" try]] + [math + ["r" random]] + [meta + [compiler + ["[0]" analysis] + ["[0]" declaration] + [phase + [macro (.only Expander)] + [generation (.only Bundle)]] + [default + [platform (.only Platform)]]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" common (.only Runner Definer)] ["[1]./" analysis @@ -60,8 +62,8 @@ (case ?state,runner,definer {try.#Success [[declaration_bundle declaration_state] runner definer]} (..test runner definer - (the [declaration.#analysis declaration.#state] declaration_state) - expander) + (the [declaration.#analysis declaration.#state] declaration_state) + expander) {try.#Failure error} (_.failure error)))) diff --git a/stdlib/source/specification/compositor/analysis/type.lux b/stdlib/source/specification/compositor/analysis/type.lux index 89ee8646f..acd970ebc 100644 --- a/stdlib/source/specification/compositor/analysis/type.lux +++ b/stdlib/source/specification/compositor/analysis/type.lux @@ -1,23 +1,25 @@ (.require - [lux (.except) - ["_" test (.only Test)] - [abstract - [monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" io] - ["[0]" try]] - [math - ["r" random (.only Random)]] - [meta - ["[0]" code] - [compiler - [analysis (.only State+)] - ["[0]" phase - [macro (.only Expander)] - ["[0]" analysis - ["[1]/[0]" scope] - ["[1]/[0]" type]]]]]]) + [library + [lux (.except) + [abstract + [monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" io] + ["[0]" try]] + [math + ["r" random (.only Random)]] + [meta + ["[0]" code] + [compiler + [analysis (.only State+)] + ["[0]" phase + [macro (.only Expander)] + ["[0]" analysis + ["[1]/[0]" scope] + ["[1]/[0]" type]]]]] + [test + ["_" property (.only Test)]]]]) (def (check_success+ expander state extension params output_type) (-> Expander State+ Text (List Code) Type Bit) diff --git a/stdlib/source/specification/compositor/generation/case.lux b/stdlib/source/specification/compositor/generation/case.lux index 6ac785a12..ba1168ad0 100644 --- a/stdlib/source/specification/compositor/generation/case.lux +++ b/stdlib/source/specification/compositor/generation/case.lux @@ -1,30 +1,32 @@ (.require - [lux (.except case) - ["_" test (.only Test)] - [abstract - [monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" try (.only Try)]] - [data - ["[0]" text (.use "[1]#[0]" equivalence) - ["%" \\format (.only format)]] - [number - ["n" nat] - ["f" frac]] - [collection - ["[0]" list (.use "[1]#[0]" mix)]]] - [math - ["r" random (.only Random)]] - [meta - [compiler - ["[0]" reference] - ["[0]" analysis] - ["[0]" synthesis (.only Path Synthesis)] - ["[0]" phase - ["[1]/[0]" synthesis - ["[0]" case]] - ["[0]" extension/synthesis]]]]] + [library + [lux (.except case) + [abstract + [monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" try (.only Try)]] + [data + ["[0]" text (.use "[1]#[0]" equivalence) + ["%" \\format (.only format)]] + [number + ["n" nat] + ["f" frac]] + [collection + ["[0]" list (.use "[1]#[0]" mix)]]] + [math + ["r" random (.only Random)]] + [meta + [compiler + ["[0]" reference] + ["[0]" analysis] + ["[0]" synthesis (.only Path Synthesis)] + ["[0]" phase + ["[1]/[0]" synthesis + ["[0]" case]] + ["[0]" extension/synthesis]]]] + [test + ["_" property (.only Test)]]]] [/// [common (.only Runner)]]) diff --git a/stdlib/source/specification/compositor/generation/common.lux b/stdlib/source/specification/compositor/generation/common.lux index ba691bde7..e203a6098 100644 --- a/stdlib/source/specification/compositor/generation/common.lux +++ b/stdlib/source/specification/compositor/generation/common.lux @@ -1,30 +1,32 @@ (.require - [lux (.except i64) - ["_" test (.only Test)] - [abstract - [monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" try (.only Try)]] - [data - ["[0]" bit (.use "[1]#[0]" equivalence)] - [number - ["[0]" i64] - ["n" nat] - ["i" int] - ["f" frac]] - ["[0]" text (.use "[1]#[0]" equivalence) - ["%" \\format (.only format)]] - [collection - ["[0]" list]]] - [math - ["r" random (.only Random)]] - [meta - [macro - ["^" pattern]] - [compiler - ["[0]" reference] - ["[0]" synthesis]]]] + [library + [lux (.except i64) + [abstract + [monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" try (.only Try)]] + [data + ["[0]" bit (.use "[1]#[0]" equivalence)] + [number + ["[0]" i64] + ["n" nat] + ["i" int] + ["f" frac]] + ["[0]" text (.use "[1]#[0]" equivalence) + ["%" \\format (.only format)]] + [collection + ["[0]" list]]] + [math + ["r" random (.only Random)]] + [meta + [macro + ["^" pattern]] + [compiler + ["[0]" reference] + ["[0]" synthesis]]] + [test + ["_" property (.only Test)]]]] ["[0]" // ["[1][0]" case] [// diff --git a/stdlib/source/specification/compositor/generation/function.lux b/stdlib/source/specification/compositor/generation/function.lux index 2fb9714e0..92d0bdaa2 100644 --- a/stdlib/source/specification/compositor/generation/function.lux +++ b/stdlib/source/specification/compositor/generation/function.lux @@ -1,23 +1,25 @@ (.require - [lux (.except function) - ["_" test (.only Test)] - [abstract - [monad (.only do)] - ["[0]" enum]] - [control - ["[0]" maybe]] - [data - [number - ["n" nat]] - [collection - ["[0]" list (.use "[1]#[0]" functor)]]] - [math - ["r" random (.only Random) (.use "[1]#[0]" monad)]] - [meta - [compiler - [analysis (.only Arity)] - ["[0]" reference (.only Register)] - ["[0]" synthesis (.only Synthesis)]]]] + [library + [lux (.except function) + [abstract + [monad (.only do)] + ["[0]" enum]] + [control + ["[0]" maybe]] + [data + [number + ["n" nat]] + [collection + ["[0]" list (.use "[1]#[0]" functor)]]] + [math + ["r" random (.only Random) (.use "[1]#[0]" monad)]] + [meta + [compiler + [analysis (.only Arity)] + ["[0]" reference (.only Register)] + ["[0]" synthesis (.only Synthesis)]]]] + [test + ["_" property (.only Test)]]] ["[0]" // ["[1][0]" case] [// diff --git a/stdlib/source/specification/compositor/generation/primitive.lux b/stdlib/source/specification/compositor/generation/primitive.lux index fcb6bd050..43637f7a2 100644 --- a/stdlib/source/specification/compositor/generation/primitive.lux +++ b/stdlib/source/specification/compositor/generation/primitive.lux @@ -1,22 +1,24 @@ (.require - [lux (.except) - ["_" test (.only Test)] - [abstract - [monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" try]] - [data - ["[0]" bit (.use "[1]#[0]" equivalence)] - [number - ["f" frac]] - ["[0]" text (.use "[1]#[0]" equivalence) - ["%" \\format (.only format)]]] - [math - ["r" random]] - [meta - [compiler - ["[0]" synthesis]]]] + [library + [lux (.except) + [abstract + [monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" try]] + [data + ["[0]" bit (.use "[1]#[0]" equivalence)] + [number + ["f" frac]] + ["[0]" text (.use "[1]#[0]" equivalence) + ["%" \\format (.only format)]]] + [math + ["r" random]] + [meta + [compiler + ["[0]" synthesis]]] + [test + ["_" property (.only Test)]]]] [/// [common (.only Runner)]]) diff --git a/stdlib/source/specification/compositor/generation/reference.lux b/stdlib/source/specification/compositor/generation/reference.lux index 27441f349..5e7516f20 100644 --- a/stdlib/source/specification/compositor/generation/reference.lux +++ b/stdlib/source/specification/compositor/generation/reference.lux @@ -1,21 +1,23 @@ (.require - [lux (.except symbol) - ["_" test (.only Test)] - [abstract - [monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" try]] - [data - [number - ["n" nat] - ["f" frac]]] - [meta - [compiler - ["[0]" reference] - ["[0]" synthesis]]] - [math - ["r" random (.only Random)]]] + [library + [lux (.except symbol) + [abstract + [monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" try]] + [data + [number + ["n" nat] + ["f" frac]]] + [meta + [compiler + ["[0]" reference] + ["[0]" synthesis]]] + [math + ["r" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [/// [common (.only Runner Definer)]]) diff --git a/stdlib/source/specification/compositor/generation/structure.lux b/stdlib/source/specification/compositor/generation/structure.lux index 5521c6303..9ab5d02f2 100644 --- a/stdlib/source/specification/compositor/generation/structure.lux +++ b/stdlib/source/specification/compositor/generation/structure.lux @@ -1,28 +1,30 @@ (.require - [lux (.except) - ["_" test (.only Test)] - ["[0]" ffi (.only import)] - [abstract - [monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" maybe] - ["[0]" try]] - [data - [number - ["n" nat] - ["i" int]] - ["[0]" text (.use "[1]#[0]" equivalence) - ["%" \\format (.only format)]] - [collection - ["[0]" array (.only Array)] - ["[0]" list (.use "[1]#[0]" functor)]]] - [math - ["r" random]] - [meta - [compiler - ["[0]" analysis] - ["[0]" synthesis]]]] + [library + [lux (.except) + ["[0]" ffi (.only import)] + [abstract + [monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" maybe] + ["[0]" try]] + [data + [number + ["n" nat] + ["i" int]] + ["[0]" text (.use "[1]#[0]" equivalence) + ["%" \\format (.only format)]] + [collection + ["[0]" array (.only Array)] + ["[0]" list (.use "[1]#[0]" functor)]]] + [math + ["r" random]] + [meta + [compiler + ["[0]" analysis] + ["[0]" synthesis]]] + [test + ["_" property (.only Test)]]]] [/// [common (.only Runner)]]) diff --git a/stdlib/source/specification/lux/abstract/apply.lux b/stdlib/source/specification/lux/abstract/apply.lux index 460469078..607024f11 100644 --- a/stdlib/source/specification/lux/abstract/apply.lux +++ b/stdlib/source/specification/lux/abstract/apply.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -11,7 +10,9 @@ [number ["n" nat]]] [meta - ["[0]" type]]]] + ["[0]" type]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Apply)]] [// diff --git a/stdlib/source/specification/lux/abstract/codec.lux b/stdlib/source/specification/lux/abstract/codec.lux index 7ed8612b1..c2dd86e90 100644 --- a/stdlib/source/specification/lux/abstract/codec.lux +++ b/stdlib/source/specification/lux/abstract/codec.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control ["[0]" try]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/specification/lux/abstract/comonad.lux b/stdlib/source/specification/lux/abstract/comonad.lux index 9bd0ec336..2583715f2 100644 --- a/stdlib/source/specification/lux/abstract/comonad.lux +++ b/stdlib/source/specification/lux/abstract/comonad.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only CoMonad)]] [// diff --git a/stdlib/source/specification/lux/abstract/enum.lux b/stdlib/source/specification/lux/abstract/enum.lux index 84cd03321..f510a345e 100644 --- a/stdlib/source/specification/lux/abstract/enum.lux +++ b/stdlib/source/specification/lux/abstract/enum.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/specification/lux/abstract/equivalence.lux b/stdlib/source/specification/lux/abstract/equivalence.lux index 215a015fe..cc760886f 100644 --- a/stdlib/source/specification/lux/abstract/equivalence.lux +++ b/stdlib/source/specification/lux/abstract/equivalence.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data ["[0]" bit (.use "[1]#[0]" equivalence)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Equivalence)]]) diff --git a/stdlib/source/specification/lux/abstract/functor.lux b/stdlib/source/specification/lux/abstract/functor.lux index 383037e9e..232e9316a 100644 --- a/stdlib/source/specification/lux/abstract/functor.lux +++ b/stdlib/source/specification/lux/abstract/functor.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monad (.only do)]] @@ -10,7 +9,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Functor)]]) @@ -27,9 +28,9 @@ (do [! random.monad] [sample (at ! each injection random.nat)] (_.test "Identity." - ((comparison n.=) - (@//each function.identity sample) - sample)))) + ((comparison n.=) + (@//each function.identity sample) + sample)))) (def (homomorphism injection comparison (open "@//[0]")) (All (_ f) (-> (Injection f) (Comparison f) (Functor f) Test)) @@ -37,9 +38,9 @@ [sample random.nat increase (at ! each n.+ random.nat)] (_.test "Homomorphism." - ((comparison n.=) - (@//each increase (injection sample)) - (injection (increase sample)))))) + ((comparison n.=) + (@//each increase (injection sample)) + (injection (increase sample)))))) (def (composition injection comparison (open "@//[0]")) (All (_ f) (-> (Injection f) (Comparison f) (Functor f) Test)) @@ -48,9 +49,9 @@ increase (at ! each n.+ random.nat) decrease (at ! each n.- random.nat)] (_.test "Composition." - ((comparison n.=) - (|> sample (@//each increase) (@//each decrease)) - (|> sample (@//each (|>> increase decrease))))))) + ((comparison n.=) + (|> sample (@//each increase) (@//each decrease)) + (|> sample (@//each (|>> increase decrease))))))) (def .public (spec injection comparison functor) (All (_ f) (-> (Injection f) (Comparison f) (Functor f) Test)) diff --git a/stdlib/source/specification/lux/abstract/functor/contravariant.lux b/stdlib/source/specification/lux/abstract/functor/contravariant.lux index 3f02e35c8..aa7d63d43 100644 --- a/stdlib/source/specification/lux/abstract/functor/contravariant.lux +++ b/stdlib/source/specification/lux/abstract/functor/contravariant.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monad (.only do)]] @@ -10,7 +9,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Functor)]]) diff --git a/stdlib/source/specification/lux/abstract/hash.lux b/stdlib/source/specification/lux/abstract/hash.lux index b66181035..d95fef663 100644 --- a/stdlib/source/specification/lux/abstract/hash.lux +++ b/stdlib/source/specification/lux/abstract/hash.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/specification/lux/abstract/interval.lux b/stdlib/source/specification/lux/abstract/interval.lux index 51688e4ce..0de229d65 100644 --- a/stdlib/source/specification/lux/abstract/interval.lux +++ b/stdlib/source/specification/lux/abstract/interval.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] ["[0]" order]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/specification/lux/abstract/mix.lux b/stdlib/source/specification/lux/abstract/mix.lux index d4f0bcadc..f1389f9e3 100644 --- a/stdlib/source/specification/lux/abstract/mix.lux +++ b/stdlib/source/specification/lux/abstract/mix.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [// [functor (.only Injection Comparison)]] [\\library diff --git a/stdlib/source/specification/lux/abstract/monad.lux b/stdlib/source/specification/lux/abstract/monad.lux index 3613a3214..422ce8cb8 100644 --- a/stdlib/source/specification/lux/abstract/monad.lux +++ b/stdlib/source/specification/lux/abstract/monad.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only do)]] [// diff --git a/stdlib/source/specification/lux/abstract/monoid.lux b/stdlib/source/specification/lux/abstract/monoid.lux index 78f387f5f..fe69e9f6b 100644 --- a/stdlib/source/specification/lux/abstract/monoid.lux +++ b/stdlib/source/specification/lux/abstract/monoid.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/specification/lux/abstract/order.lux b/stdlib/source/specification/lux/abstract/order.lux index 3ec435fb8..ae7dc3355 100644 --- a/stdlib/source/specification/lux/abstract/order.lux +++ b/stdlib/source/specification/lux/abstract/order.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/specification/lux/world/console.lux b/stdlib/source/specification/lux/world/console.lux index cb17b4338..9fc830fd2 100644 --- a/stdlib/source/specification/lux/world/console.lux +++ b/stdlib/source/specification/lux/world/console.lux @@ -13,7 +13,8 @@ ["%" \\format (.only format)]]] [math ["[0]" random]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/specification/lux/world/environment.lux b/stdlib/source/specification/lux/world/environment.lux index fb6600bfe..066ad2783 100644 --- a/stdlib/source/specification/lux/world/environment.lux +++ b/stdlib/source/specification/lux/world/environment.lux @@ -14,7 +14,8 @@ ["[0]" list]]] [math ["[0]" random]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/specification/lux/world/file.lux b/stdlib/source/specification/lux/world/file.lux index 0f642d2aa..b70555b6f 100644 --- a/stdlib/source/specification/lux/world/file.lux +++ b/stdlib/source/specification/lux/world/file.lux @@ -28,7 +28,8 @@ [world [time ["[0]" instant (.only Instant) (.use "[1]#[0]" equivalence)]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/specification/lux/world/shell.lux b/stdlib/source/specification/lux/world/shell.lux index bf507b536..be41059a0 100644 --- a/stdlib/source/specification/lux/world/shell.lux +++ b/stdlib/source/specification/lux/world/shell.lux @@ -16,7 +16,8 @@ [number ["n" nat] ["i" int]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" / (.only) diff --git a/stdlib/source/test/aedifex.lux b/stdlib/source/test/aedifex.lux index f30ec52c0..41c03b43b 100644 --- a/stdlib/source/test/aedifex.lux +++ b/stdlib/source/test/aedifex.lux @@ -2,9 +2,10 @@ [library [lux (.except) [program (.only program)] - ["_" test (.only Test)] [control - ["[0]" io]]]] + ["[0]" io]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" artifact] ["[1][0]" cli] diff --git a/stdlib/source/test/aedifex/artifact.lux b/stdlib/source/test/aedifex/artifact.lux index 53ae67d84..621af00af 100644 --- a/stdlib/source/test/aedifex/artifact.lux +++ b/stdlib/source/test/aedifex/artifact.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [hash (.only Hash)] @@ -16,7 +15,9 @@ [world ["[0]" file] [net - ["[0]" uri]]]]] + ["[0]" uri]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" extension] ["[1][0]" snapshot] diff --git a/stdlib/source/test/aedifex/artifact/extension.lux b/stdlib/source/test/aedifex/artifact/extension.lux index 7024ed43b..17267bdab 100644 --- a/stdlib/source/test/aedifex/artifact/extension.lux +++ b/stdlib/source/test/aedifex/artifact/extension.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/aedifex/artifact/snapshot.lux b/stdlib/source/test/aedifex/artifact/snapshot.lux index 8312e69f0..9a71acb9c 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -13,7 +12,9 @@ ["[0]" xml ["<[1]>" \\parser]]]] [math - ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]]] + ["[0]" random (.only Random) (.use "[1]#[0]" monad)]] + [test + ["_" property (.only Test)]]]] ["$[0]" / ["[1][0]" build] ["[1][0]" stamp] diff --git a/stdlib/source/test/aedifex/artifact/snapshot/build.lux b/stdlib/source/test/aedifex/artifact/snapshot/build.lux index c0016b9a6..53be5d10f 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/build.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/build.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -13,7 +12,9 @@ ["[0]" xml ["<[1]>" \\parser]]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]]) diff --git a/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux b/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux index 2b4265932..eba776e33 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -16,7 +15,9 @@ ["[0]" random (.only Random)]] [world [time - ["[0]" instant]]]]] + ["[0]" instant]]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]] ["$[0]" // diff --git a/stdlib/source/test/aedifex/artifact/snapshot/time.lux b/stdlib/source/test/aedifex/artifact/snapshot/time.lux index 0a748e1b4..40f181552 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/time.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/time.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -12,7 +11,9 @@ ["[0]" text ["<[1]>" \\parser]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]] ["$[0]" /// diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version.lux b/stdlib/source/test/aedifex/artifact/snapshot/version.lux index 5285d7598..31336c5df 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/version.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/version.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -13,7 +12,9 @@ ["[0]" xml ["<[1]>" \\parser]]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]] ["[0]" / diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux index 525c4ec32..470cd66c7 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -18,7 +17,9 @@ ["n" nat] ["i" int]]] [time - ["[0]" instant]]]] + ["[0]" instant]] + [test + ["_" property (.only Test)]]]] ["$[0]" /// ["[1][0]" stamp]] [\\program diff --git a/stdlib/source/test/aedifex/artifact/time.lux b/stdlib/source/test/aedifex/artifact/time.lux index 2c7d29269..d26f6d55b 100644 --- a/stdlib/source/test/aedifex/artifact/time.lux +++ b/stdlib/source/test/aedifex/artifact/time.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ ["i" int]]] [world [time - ["[0]" instant (.use "[1]#[0]" equivalence)]]]]] + ["[0]" instant (.use "[1]#[0]" equivalence)]]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]] ["[0]" / diff --git a/stdlib/source/test/aedifex/artifact/time/date.lux b/stdlib/source/test/aedifex/artifact/time/date.lux index a97bcbb8f..e50626c79 100644 --- a/stdlib/source/test/aedifex/artifact/time/date.lux +++ b/stdlib/source/test/aedifex/artifact/time/date.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -19,7 +18,9 @@ ["i" int]]] [time ["[0]" date (.use "[1]#[0]" equivalence)] - ["[0]" year]]]] + ["[0]" year]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]]) diff --git a/stdlib/source/test/aedifex/artifact/time/time.lux b/stdlib/source/test/aedifex/artifact/time/time.lux index 288d6169e..d4bc90f4e 100644 --- a/stdlib/source/test/aedifex/artifact/time/time.lux +++ b/stdlib/source/test/aedifex/artifact/time/time.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" time] [abstract [monad (.only do)]] @@ -14,7 +13,9 @@ ["[0]" random (.only Random)] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]]) diff --git a/stdlib/source/test/aedifex/artifact/type.lux b/stdlib/source/test/aedifex/artifact/type.lux index cf47b1ec5..60ec8e199 100644 --- a/stdlib/source/test/aedifex/artifact/type.lux +++ b/stdlib/source/test/aedifex/artifact/type.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]]) diff --git a/stdlib/source/test/aedifex/artifact/versioning.lux b/stdlib/source/test/aedifex/artifact/versioning.lux index fede17e9f..71d9ad175 100644 --- a/stdlib/source/test/aedifex/artifact/versioning.lux +++ b/stdlib/source/test/aedifex/artifact/versioning.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -13,7 +12,9 @@ ["[0]" xml ["<[1]>" \\parser]]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]] ["$[0]" // diff --git a/stdlib/source/test/aedifex/cache.lux b/stdlib/source/test/aedifex/cache.lux index 9dbb8405b..f6c75114f 100644 --- a/stdlib/source/test/aedifex/cache.lux +++ b/stdlib/source/test/aedifex/cache.lux @@ -25,8 +25,9 @@ [world ["[0]" file] ["[0]" program]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [// ["@[0]" profile] ["@[0]" artifact] diff --git a/stdlib/source/test/aedifex/cli.lux b/stdlib/source/test/aedifex/cli.lux index b83d643b8..a27e90074 100644 --- a/stdlib/source/test/aedifex/cli.lux +++ b/stdlib/source/test/aedifex/cli.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -16,7 +15,9 @@ [collection ["[0]" list]]] [math - ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]]] + ["[0]" random (.only Random) (.use "[1]#[0]" monad)]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/aedifex/command.lux b/stdlib/source/test/aedifex/command.lux index 27206b0b7..2169da3fa 100644 --- a/stdlib/source/test/aedifex/command.lux +++ b/stdlib/source/test/aedifex/command.lux @@ -1,7 +1,8 @@ (.require [library [lux (.except) - ["_" test (.only Test)]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" version] ["[1][0]" pom] diff --git a/stdlib/source/test/aedifex/command/auto.lux b/stdlib/source/test/aedifex/command/auto.lux index 10c249e3e..5dc092327 100644 --- a/stdlib/source/test/aedifex/command/auto.lux +++ b/stdlib/source/test/aedifex/command/auto.lux @@ -31,8 +31,9 @@ ["[0]" watch]] [time ["[0]" instant]]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] ["[0]" // ["$[0]" version] ["$[0]" build]] diff --git a/stdlib/source/test/aedifex/command/build.lux b/stdlib/source/test/aedifex/command/build.lux index 81907a9ad..9aea4828c 100644 --- a/stdlib/source/test/aedifex/command/build.lux +++ b/stdlib/source/test/aedifex/command/build.lux @@ -22,8 +22,9 @@ ["[0]" file] ["[0]" shell (.only Shell)] ["[0]" program]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] ["[0]" // ["@[0]" version] ["$/[1]" // diff --git a/stdlib/source/test/aedifex/command/clean.lux b/stdlib/source/test/aedifex/command/clean.lux index bbc47ccfe..b33d6d911 100644 --- a/stdlib/source/test/aedifex/command/clean.lux +++ b/stdlib/source/test/aedifex/command/clean.lux @@ -21,8 +21,9 @@ ["n" nat]]] [world ["[0]" file (.only Path)]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [// ["@[0]" version] [// diff --git a/stdlib/source/test/aedifex/command/deploy.lux b/stdlib/source/test/aedifex/command/deploy.lux index dfa352553..55fac78c6 100644 --- a/stdlib/source/test/aedifex/command/deploy.lux +++ b/stdlib/source/test/aedifex/command/deploy.lux @@ -32,8 +32,9 @@ ["[0]" file] ["[0]" program (.only Program)] ["[0]" shell]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [// ["$[0]" build] ["$[0]" install] diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux index 905afb575..15d5e3986 100644 --- a/stdlib/source/test/aedifex/command/deps.lux +++ b/stdlib/source/test/aedifex/command/deps.lux @@ -25,8 +25,9 @@ [world ["[0]" program] ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] ["[0]" // ["@[0]" version] ["$/[1]" // diff --git a/stdlib/source/test/aedifex/command/install.lux b/stdlib/source/test/aedifex/command/install.lux index 930cc17f4..ff8bca5e9 100644 --- a/stdlib/source/test/aedifex/command/install.lux +++ b/stdlib/source/test/aedifex/command/install.lux @@ -21,8 +21,9 @@ [world ["[0]" file] ["[0]" program (.only Program)]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [// ["$[0]" version] [// diff --git a/stdlib/source/test/aedifex/command/pom.lux b/stdlib/source/test/aedifex/command/pom.lux index 21deefa0f..32a10f8a3 100644 --- a/stdlib/source/test/aedifex/command/pom.lux +++ b/stdlib/source/test/aedifex/command/pom.lux @@ -18,8 +18,9 @@ ["[0]" random]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [// ["@[0]" version] [// diff --git a/stdlib/source/test/aedifex/command/test.lux b/stdlib/source/test/aedifex/command/test.lux index 440123f65..1209b4020 100644 --- a/stdlib/source/test/aedifex/command/test.lux +++ b/stdlib/source/test/aedifex/command/test.lux @@ -21,8 +21,9 @@ ["[0]" file] ["[0]" shell] ["[0]" program]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] ["[0]" // ["@[0]" version] ["@[0]" build] diff --git a/stdlib/source/test/aedifex/command/version.lux b/stdlib/source/test/aedifex/command/version.lux index 1becba8d2..7d2877738 100644 --- a/stdlib/source/test/aedifex/command/version.lux +++ b/stdlib/source/test/aedifex/command/version.lux @@ -20,8 +20,9 @@ ["[0]" version]]] [world ["[0]" console (.only Console Mock)]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [/// ["@[0]" profile]] [\\program diff --git a/stdlib/source/test/aedifex/dependency.lux b/stdlib/source/test/aedifex/dependency.lux index 0a01d3dfe..fbed2aaaa 100644 --- a/stdlib/source/test/aedifex/dependency.lux +++ b/stdlib/source/test/aedifex/dependency.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -9,7 +8,9 @@ ["$[0]" order] ["$[0]" hash]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [// ["@[0]" artifact]] [\\program diff --git a/stdlib/source/test/aedifex/dependency/deployment.lux b/stdlib/source/test/aedifex/dependency/deployment.lux index 2eeb0abb8..dbc458897 100644 --- a/stdlib/source/test/aedifex/dependency/deployment.lux +++ b/stdlib/source/test/aedifex/dependency/deployment.lux @@ -31,8 +31,9 @@ ["[1]" client] ["[1]/[0]" status] ["@[1]" /]]]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] ["$[0]" // (.only) ["[1]/" // ["[1][0]" package]]] diff --git a/stdlib/source/test/aedifex/dependency/resolution.lux b/stdlib/source/test/aedifex/dependency/resolution.lux index 153d4b4ac..6bc81298e 100644 --- a/stdlib/source/test/aedifex/dependency/resolution.lux +++ b/stdlib/source/test/aedifex/dependency/resolution.lux @@ -26,8 +26,9 @@ ["[0]" list]]] [math ["[0]" random (.only Random)]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] ["$[0]" /// ["[1][0]" package] ["[1][0]" repository] diff --git a/stdlib/source/test/aedifex/dependency/status.lux b/stdlib/source/test/aedifex/dependency/status.lux index bbb7188cb..b61d35630 100644 --- a/stdlib/source/test/aedifex/dependency/status.lux +++ b/stdlib/source/test/aedifex/dependency/status.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -10,7 +9,9 @@ ["[0]" binary ["[1]T" \\test]]] [math - ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]]] + ["[0]" random (.only Random) (.use "[1]#[0]" monad)]] + [test + ["_" property (.only Test)]]]] ["$[0]" /// ["[1][0]" hash]] [\\program diff --git a/stdlib/source/test/aedifex/hash.lux b/stdlib/source/test/aedifex/hash.lux index 0bce4febc..61cb569fa 100644 --- a/stdlib/source/test/aedifex/hash.lux +++ b/stdlib/source/test/aedifex/hash.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]] [test diff --git a/stdlib/source/test/aedifex/input.lux b/stdlib/source/test/aedifex/input.lux index b9f8195f6..9c296e12c 100644 --- a/stdlib/source/test/aedifex/input.lux +++ b/stdlib/source/test/aedifex/input.lux @@ -18,8 +18,9 @@ ["[0]" random]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [// ["$[0]" profile]] [\\program diff --git a/stdlib/source/test/aedifex/local.lux b/stdlib/source/test/aedifex/local.lux index d621d683c..66702a2e3 100644 --- a/stdlib/source/test/aedifex/local.lux +++ b/stdlib/source/test/aedifex/local.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data ["[0]" text]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [// ["@[0]" artifact]] [\\program diff --git a/stdlib/source/test/aedifex/metadata.lux b/stdlib/source/test/aedifex/metadata.lux index 00e8062a6..3392f6782 100644 --- a/stdlib/source/test/aedifex/metadata.lux +++ b/stdlib/source/test/aedifex/metadata.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data ["[0]" text (.use "[1]#[0]" equivalence)]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" artifact] ["[1][0]" snapshot] diff --git a/stdlib/source/test/aedifex/metadata/artifact.lux b/stdlib/source/test/aedifex/metadata/artifact.lux index 1e05fbc3a..f67d1e130 100644 --- a/stdlib/source/test/aedifex/metadata/artifact.lux +++ b/stdlib/source/test/aedifex/metadata/artifact.lux @@ -34,8 +34,9 @@ ["[0]" month] ["[0]" instant] ["[0]" duration]]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\program ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/aedifex/metadata/snapshot.lux b/stdlib/source/test/aedifex/metadata/snapshot.lux index 983b78d6d..b41a6ce15 100644 --- a/stdlib/source/test/aedifex/metadata/snapshot.lux +++ b/stdlib/source/test/aedifex/metadata/snapshot.lux @@ -34,8 +34,9 @@ ["[0]" month] ["[0]" instant (.only Instant)] ["[0]" duration]]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] ["$[0]" /// ["[1][0]" artifact ["[1]/[0]" type] diff --git a/stdlib/source/test/aedifex/package.lux b/stdlib/source/test/aedifex/package.lux index 770bbee0a..035765b17 100644 --- a/stdlib/source/test/aedifex/package.lux +++ b/stdlib/source/test/aedifex/package.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -22,7 +21,9 @@ [number ["n" nat]]] [world - ["[0]" file]]]] + ["[0]" file]] + [test + ["_" property (.only Test)]]]] [// ["$[0]" profile] [// diff --git a/stdlib/source/test/aedifex/parser.lux b/stdlib/source/test/aedifex/parser.lux index 01daa640e..fb2852701 100644 --- a/stdlib/source/test/aedifex/parser.lux +++ b/stdlib/source/test/aedifex/parser.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [hash (.only Hash)]] @@ -20,7 +19,9 @@ ["n" nat]]] [meta ["[0]" code (.only) - ["<[1]>" \\parser]]]]] + ["<[1]>" \\parser]]] + [test + ["_" property (.only Test)]]]] [// ["@[0]" profile]] [\\program diff --git a/stdlib/source/test/aedifex/pom.lux b/stdlib/source/test/aedifex/pom.lux index 8bb184347..c6283f30d 100644 --- a/stdlib/source/test/aedifex/pom.lux +++ b/stdlib/source/test/aedifex/pom.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -14,7 +13,9 @@ ["[0]" xml (.only) ["<[1]>" \\parser]]]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [// ["@[0]" profile]] [\\program diff --git a/stdlib/source/test/aedifex/profile.lux b/stdlib/source/test/aedifex/profile.lux index dbbfdf6b0..9a2c5ba3c 100644 --- a/stdlib/source/test/aedifex/profile.lux +++ b/stdlib/source/test/aedifex/profile.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [hash (.only Hash)] @@ -26,7 +25,9 @@ [meta [cli ["[0]" compiler (.only) - ["$[1]" \\test]]]]]]]] + ["$[1]" \\test]]]]]] + [test + ["_" property (.only Test)]]]] [// ["@[0]" artifact] ["@[0]" dependency]] diff --git a/stdlib/source/test/aedifex/project.lux b/stdlib/source/test/aedifex/project.lux index 5f4ebe03e..2db5873e8 100644 --- a/stdlib/source/test/aedifex/project.lux +++ b/stdlib/source/test/aedifex/project.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -16,7 +15,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [// ["@[0]" profile]] [\\program diff --git a/stdlib/source/test/aedifex/repository.lux b/stdlib/source/test/aedifex/repository.lux index b76a8f1f1..72c36f74b 100644 --- a/stdlib/source/test/aedifex/repository.lux +++ b/stdlib/source/test/aedifex/repository.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [hash (.only Hash)] @@ -21,7 +20,9 @@ ["[0]" random (.only Random)]] [world [net - ["[0]" uri (.only URI)]]]]] + ["[0]" uri (.only URI)]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" identity] ["[1][0]" origin] diff --git a/stdlib/source/test/aedifex/repository/identity.lux b/stdlib/source/test/aedifex/repository/identity.lux index 5c9d77792..8fd54bad8 100644 --- a/stdlib/source/test/aedifex/repository/identity.lux +++ b/stdlib/source/test/aedifex/repository/identity.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [\\specification ["$[0]" equivalence]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]]) diff --git a/stdlib/source/test/aedifex/repository/local.lux b/stdlib/source/test/aedifex/repository/local.lux index 811a8e4e9..52a91bea6 100644 --- a/stdlib/source/test/aedifex/repository/local.lux +++ b/stdlib/source/test/aedifex/repository/local.lux @@ -19,8 +19,9 @@ [world ["[0]" file] ["[0]" program]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\program ["[0]" /]]) diff --git a/stdlib/source/test/aedifex/repository/origin.lux b/stdlib/source/test/aedifex/repository/origin.lux index b99739009..e07040106 100644 --- a/stdlib/source/test/aedifex/repository/origin.lux +++ b/stdlib/source/test/aedifex/repository/origin.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [\\specification ["$[0]" equivalence]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]]) diff --git a/stdlib/source/test/aedifex/repository/remote.lux b/stdlib/source/test/aedifex/repository/remote.lux index ceec7c9ec..a5380ddec 100644 --- a/stdlib/source/test/aedifex/repository/remote.lux +++ b/stdlib/source/test/aedifex/repository/remote.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -25,7 +24,9 @@ ["[0]" http ["[1]" client] ["[1]/[0]" status] - ["@[1]" /]]]]]] + ["@[1]" /]]]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/aedifex/runtime.lux b/stdlib/source/test/aedifex/runtime.lux index 2a10e763e..f48f0eb03 100644 --- a/stdlib/source/test/aedifex/runtime.lux +++ b/stdlib/source/test/aedifex/runtime.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -16,7 +15,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\program ["[0]" /]]) diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux index 3d7251c98..4d7a695e8 100644 --- a/stdlib/source/test/lux.lux +++ b/stdlib/source/test/lux.lux @@ -2,7 +2,6 @@ [library ["/" lux (.except) [program (.only program)] - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -38,7 +37,9 @@ ["[0]" macro (.only) [syntax (.only syntax)] ["^" pattern] - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] ... TODO: Must have 100% coverage on tests. ["[0]" / ["[1][0]" abstract] @@ -51,7 +52,7 @@ ["[1][0]" meta] ["[1][0]" program] - ["[1][0]" test] + ["[1][0]" test/property] ["[1][0]" world] @@ -429,35 +430,35 @@ ... [(.require [']) ... ("lux def module" []) ... []] - + ... [(.require [ ' (.except)]) ... ("lux def module" [[ ]]) ... [( (.except))]] - + ... [(.require [ ' (.only )]) ... ("lux def module" [[ ]]) ... [( (.only ))]] - + ... [(.require [ ' (.except )]) ... ("lux def module" [[ ]]) ... [( (.except ))]] - + ... [(.require [ ']) ... ("lux def module" []) ... []] - + ... [(.require [' ... [ ']]) ... ("lux def module" [[ ]]) ... [( )]] - + ... [(.require ["[0]" ' ... ["[0]" ']]) ... ("lux def module" [[ ] ... [ ]]) ... [( ) ... ( )]] - + ... [(.require ["[0]" ' ... ["[1]" ']]) ... ("lux def module" [[ ]]) @@ -468,7 +469,7 @@ ... ["[2]" ']]]) ... ("lux def module" [[ ]]) ... [( )]] - + ... [(.require [' ... ["[0]" ' ... ["[0]" ']]]) @@ -476,7 +477,7 @@ ... [ ]]) ... [( ) ... ( )]] - + ... [(.require ["[0]" ' ... [' ... ["[0]" <\\>']]]) @@ -484,7 +485,7 @@ ... [ <\\>]]) ... [( ) ... ( )]] - + ... [(.require ["[0]" ' (.use "[1]#[0]" )]) ... ("lux def module" [[ ]]) ... [( ( ))]] @@ -1205,7 +1206,7 @@ /meta.test /program.test - /test.test + /test/property.test /world.test diff --git a/stdlib/source/test/lux/abstract.lux b/stdlib/source/test/lux/abstract.lux index 9a4c8d3ce..5a3d4363a 100644 --- a/stdlib/source/test/lux/abstract.lux +++ b/stdlib/source/test/lux/abstract.lux @@ -1,7 +1,8 @@ (.require [library [lux (.except) - ["_" test (.only Test)]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" apply] ["[1][0]" codec] diff --git a/stdlib/source/test/lux/abstract/apply.lux b/stdlib/source/test/lux/abstract/apply.lux index 416285780..bc48cff4e 100644 --- a/stdlib/source/test/lux/abstract/apply.lux +++ b/stdlib/source/test/lux/abstract/apply.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -12,7 +11,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Apply)]]) diff --git a/stdlib/source/test/lux/abstract/codec.lux b/stdlib/source/test/lux/abstract/codec.lux index 284041caf..c55c7e311 100644 --- a/stdlib/source/test/lux/abstract/codec.lux +++ b/stdlib/source/test/lux/abstract/codec.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -11,7 +10,9 @@ [format ["[0]" json (.only JSON)]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Codec) [// diff --git a/stdlib/source/test/lux/abstract/comonad.lux b/stdlib/source/test/lux/abstract/comonad.lux index 2d23f8d2c..1ffb461c8 100644 --- a/stdlib/source/test/lux/abstract/comonad.lux +++ b/stdlib/source/test/lux/abstract/comonad.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -9,7 +8,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/abstract/comonad/free.lux b/stdlib/source/test/lux/abstract/comonad/free.lux index fcdec85aa..f089b2231 100644 --- a/stdlib/source/test/lux/abstract/comonad/free.lux +++ b/stdlib/source/test/lux/abstract/comonad/free.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [functor (.only Functor)] [comonad (.only CoMonad)] @@ -15,7 +14,9 @@ ["[0]" list] ["[0]" stream (.only Stream) (.use "[1]#[0]" comonad)]]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/abstract/enum.lux b/stdlib/source/test/lux/abstract/enum.lux index cf2434c0f..fc50c636a 100644 --- a/stdlib/source/test/lux/abstract/enum.lux +++ b/stdlib/source/test/lux/abstract/enum.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -13,7 +12,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/abstract/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux index 4a747951f..14d22ae5f 100644 --- a/stdlib/source/test/lux/abstract/equivalence.lux +++ b/stdlib/source/test/lux/abstract/equivalence.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except Variant Record) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -20,7 +19,9 @@ ["n" nat] ["i" int]]] [meta - ["@" target]]]] + ["@" target]] + [test + ["_" property (.only Test)]]]] ["[0]" \\polytypic] ["[0]" \\specification] [\\library diff --git a/stdlib/source/test/lux/abstract/functor.lux b/stdlib/source/test/lux/abstract/functor.lux index 4811f0f61..c2e5f18eb 100644 --- a/stdlib/source/test/lux/abstract/functor.lux +++ b/stdlib/source/test/lux/abstract/functor.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -16,7 +15,9 @@ [number ["n" nat]]] [meta - ["@" target]]]] + ["@" target]] + [test + ["_" property (.only Test)]]]] ["[0]" \\polytypic] [\\library ["[0]" / (.only Functor)]]) diff --git a/stdlib/source/test/lux/abstract/functor/contravariant.lux b/stdlib/source/test/lux/abstract/functor/contravariant.lux index 9478cdcf8..0bbcfd4aa 100644 --- a/stdlib/source/test/lux/abstract/functor/contravariant.lux +++ b/stdlib/source/test/lux/abstract/functor/contravariant.lux @@ -1,7 +1,8 @@ (.require [library [lux (.except) - ["_" test (.only Test)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/abstract/hash.lux b/stdlib/source/test/lux/abstract/hash.lux index d3f877507..9f29b0ec6 100644 --- a/stdlib/source/test/lux/abstract/hash.lux +++ b/stdlib/source/test/lux/abstract/hash.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -12,7 +11,9 @@ [math ["[0]" random] [number - ["[0]" nat]]]]] + ["[0]" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Hash) [// diff --git a/stdlib/source/test/lux/abstract/interval.lux b/stdlib/source/test/lux/abstract/interval.lux index 8953e1d80..8270a88b3 100644 --- a/stdlib/source/test/lux/abstract/interval.lux +++ b/stdlib/source/test/lux/abstract/interval.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] ["[0]" order] @@ -16,7 +15,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Interval) (.use "[1]#[0]" equivalence)]]) diff --git a/stdlib/source/test/lux/abstract/mix.lux b/stdlib/source/test/lux/abstract/mix.lux index 6e171f7ec..967aaefce 100644 --- a/stdlib/source/test/lux/abstract/mix.lux +++ b/stdlib/source/test/lux/abstract/mix.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -10,7 +9,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Mix)]]) diff --git a/stdlib/source/test/lux/abstract/monad.lux b/stdlib/source/test/lux/abstract/monad.lux index 783ac4514..67f039fd6 100644 --- a/stdlib/source/test/lux/abstract/monad.lux +++ b/stdlib/source/test/lux/abstract/monad.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [data ["[0]" identity (.only Identity)] [collection @@ -9,7 +8,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Monad do)]]) diff --git a/stdlib/source/test/lux/abstract/monad/free.lux b/stdlib/source/test/lux/abstract/monad/free.lux index 4d08fc8c3..7a4375c27 100644 --- a/stdlib/source/test/lux/abstract/monad/free.lux +++ b/stdlib/source/test/lux/abstract/monad/free.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [functor (.only Functor)] [apply (.only Apply)] @@ -14,7 +13,9 @@ [collection ["[0]" list (.use "[1]#[0]" functor)]]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/abstract/monoid.lux b/stdlib/source/test/lux/abstract/monoid.lux index ceea6703d..64dab2919 100644 --- a/stdlib/source/test/lux/abstract/monoid.lux +++ b/stdlib/source/test/lux/abstract/monoid.lux @@ -1,14 +1,15 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math ["[0]" random (.only Random)] [number ["[0]" nat] - ["[0]" int]]]]] + ["[0]" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/abstract/order.lux b/stdlib/source/test/lux/abstract/order.lux index 1dba95703..e340a58d6 100644 --- a/stdlib/source/test/lux/abstract/order.lux +++ b/stdlib/source/test/lux/abstract/order.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/control.lux b/stdlib/source/test/lux/control.lux index 84b144332..0cb7e598e 100644 --- a/stdlib/source/test/lux/control.lux +++ b/stdlib/source/test/lux/control.lux @@ -1,7 +1,8 @@ (.require [library [lux (.except function) - ["_" test (.only Test)]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" concatenative] ["[1][0]" concurrency diff --git a/stdlib/source/test/lux/control/concatenative.lux b/stdlib/source/test/lux/control/concatenative.lux index 542175167..aec54bebe 100644 --- a/stdlib/source/test/lux/control/concatenative.lux +++ b/stdlib/source/test/lux/control/concatenative.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -16,7 +15,9 @@ ["f" frac]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only =>)]]) diff --git a/stdlib/source/test/lux/control/concurrency/actor.lux b/stdlib/source/test/lux/control/concurrency/actor.lux index e4f3755c2..35fbb8027 100644 --- a/stdlib/source/test/lux/control/concurrency/actor.lux +++ b/stdlib/source/test/lux/control/concurrency/actor.lux @@ -17,7 +17,8 @@ ["[0]" random] [number ["n" nat]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" / (.only) diff --git a/stdlib/source/test/lux/control/concurrency/async.lux b/stdlib/source/test/lux/control/concurrency/async.lux index 3cdaf2da4..5ca8704ff 100644 --- a/stdlib/source/test/lux/control/concurrency/async.lux +++ b/stdlib/source/test/lux/control/concurrency/async.lux @@ -21,7 +21,8 @@ [time ["[0]" instant] ["[0]" duration]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" / (.only) diff --git a/stdlib/source/test/lux/control/concurrency/atom.lux b/stdlib/source/test/lux/control/concurrency/atom.lux index 43620461b..2ab78ce39 100644 --- a/stdlib/source/test/lux/control/concurrency/atom.lux +++ b/stdlib/source/test/lux/control/concurrency/atom.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -9,7 +8,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux index 147b8d2cb..a3fe7263c 100644 --- a/stdlib/source/test/lux/control/concurrency/frp.lux +++ b/stdlib/source/test/lux/control/concurrency/frp.lux @@ -19,7 +19,8 @@ ["[0]" random] [number ["n" nat]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" / (.only) diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux index 5254ce02f..19a99f55d 100644 --- a/stdlib/source/test/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux @@ -26,7 +26,8 @@ ["@" target] [type ["[0]" refinement]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/concurrency/stm.lux b/stdlib/source/test/lux/control/concurrency/stm.lux index cb6fc3e81..76fd26dc3 100644 --- a/stdlib/source/test/lux/control/concurrency/stm.lux +++ b/stdlib/source/test/lux/control/concurrency/stm.lux @@ -17,7 +17,8 @@ ["[0]" random] [number ["n" nat]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" / (.only) diff --git a/stdlib/source/test/lux/control/concurrency/thread.lux b/stdlib/source/test/lux/control/concurrency/thread.lux index 83a626c4f..1dccae97f 100644 --- a/stdlib/source/test/lux/control/concurrency/thread.lux +++ b/stdlib/source/test/lux/control/concurrency/thread.lux @@ -14,7 +14,8 @@ [time ["[0]" instant (.only Instant)] ["[0]" duration]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" / (.only) diff --git a/stdlib/source/test/lux/control/continuation.lux b/stdlib/source/test/lux/control/continuation.lux index b65f1f41f..8f57a99dc 100644 --- a/stdlib/source/test/lux/control/continuation.lux +++ b/stdlib/source/test/lux/control/continuation.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -14,7 +13,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/exception.lux b/stdlib/source/test/lux/control/exception.lux index 09c12275c..1021d8522 100644 --- a/stdlib/source/test/lux/control/exception.lux +++ b/stdlib/source/test/lux/control/exception.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -10,7 +9,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/control/function.lux b/stdlib/source/test/lux/control/function.lux index a3e9c5440..0c4fa2ad3 100644 --- a/stdlib/source/test/lux/control/function.lux +++ b/stdlib/source/test/lux/control/function.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monad (.only do)] @@ -10,7 +9,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/test/lux/control/function/contract.lux b/stdlib/source/test/lux/control/function/contract.lux index fcff396f1..312e7070f 100644 --- a/stdlib/source/test/lux/control/function/contract.lux +++ b/stdlib/source/test/lux/control/function/contract.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -12,7 +11,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/function/inline.lux b/stdlib/source/test/lux/control/function/inline.lux index 94a21ede2..d1cfd756e 100644 --- a/stdlib/source/test/lux/control/function/inline.lux +++ b/stdlib/source/test/lux/control/function/inline.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math ["[0]" random] [number - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/function/memo.lux b/stdlib/source/test/lux/control/function/memo.lux index 1abe7f7f9..d1ab63220 100644 --- a/stdlib/source/test/lux/control/function/memo.lux +++ b/stdlib/source/test/lux/control/function/memo.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -23,7 +22,9 @@ [world [time ["[0]" instant] - ["[0]" duration (.only Duration)]]]]] + ["[0]" duration (.only Duration)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/control/function/mixin.lux b/stdlib/source/test/lux/control/function/mixin.lux index edc355e23..9fce7f116 100644 --- a/stdlib/source/test/lux/control/function/mixin.lux +++ b/stdlib/source/test/lux/control/function/mixin.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monad (.only do)] @@ -21,7 +20,9 @@ ["n" nat]]] [meta [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/function/mutual.lux b/stdlib/source/test/lux/control/function/mutual.lux index 1ec851f5d..a4bfed417 100644 --- a/stdlib/source/test/lux/control/function/mutual.lux +++ b/stdlib/source/test/lux/control/function/mutual.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -11,7 +10,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/function/predicate.lux b/stdlib/source/test/lux/control/function/predicate.lux index 28d0eed16..6855a1b2d 100644 --- a/stdlib/source/test/lux/control/function/predicate.lux +++ b/stdlib/source/test/lux/control/function/predicate.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monad (.only do)] @@ -18,7 +17,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/io.lux b/stdlib/source/test/lux/control/io.lux index a9185804e..cfcd17ee2 100644 --- a/stdlib/source/test/lux/control/io.lux +++ b/stdlib/source/test/lux/control/io.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -11,7 +10,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only IO) [// diff --git a/stdlib/source/test/lux/control/lazy.lux b/stdlib/source/test/lux/control/lazy.lux index bdc81dc94..c055e500e 100644 --- a/stdlib/source/test/lux/control/lazy.lux +++ b/stdlib/source/test/lux/control/lazy.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -14,7 +13,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Lazy)]]) diff --git a/stdlib/source/test/lux/control/maybe.lux b/stdlib/source/test/lux/control/maybe.lux index 6240eb5ec..e4efb58b0 100644 --- a/stdlib/source/test/lux/control/maybe.lux +++ b/stdlib/source/test/lux/control/maybe.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -21,7 +20,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.use "[1]#[0]" monoid monad)]]) diff --git a/stdlib/source/test/lux/control/parser.lux b/stdlib/source/test/lux/control/parser.lux index 487f9984b..9922a79dc 100644 --- a/stdlib/source/test/lux/control/parser.lux +++ b/stdlib/source/test/lux/control/parser.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [equivalence (.only Equivalence)] @@ -24,7 +23,9 @@ ["[0]" code (.only) ["<[1]>" \\parser]] [macro - [syntax (.only syntax)]]]]] + [syntax (.only syntax)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Parser)]]) diff --git a/stdlib/source/test/lux/control/pipe.lux b/stdlib/source/test/lux/control/pipe.lux index 721b4a975..50d5bb67f 100644 --- a/stdlib/source/test/lux/control/pipe.lux +++ b/stdlib/source/test/lux/control/pipe.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" debug] [abstract [monad (.only do)]] @@ -12,7 +11,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/reader.lux b/stdlib/source/test/lux/control/reader.lux index 60feab123..6a1185b55 100644 --- a/stdlib/source/test/lux/control/reader.lux +++ b/stdlib/source/test/lux/control/reader.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -11,7 +10,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Reader) [// diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux index e0ef106a2..b409a7d24 100644 --- a/stdlib/source/test/lux/control/region.lux +++ b/stdlib/source/test/lux/control/region.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [functor (.only Functor)] @@ -22,7 +21,9 @@ [number ["n" nat]]] [meta - [type (.only sharing)]]]] + [type (.only sharing)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Region) [// diff --git a/stdlib/source/test/lux/control/remember.lux b/stdlib/source/test/lux/control/remember.lux index 5ad579363..9e75c00e6 100644 --- a/stdlib/source/test/lux/control/remember.lux +++ b/stdlib/source/test/lux/control/remember.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)]] [control @@ -25,7 +24,9 @@ [time ["[0]" date (.only Date)] ["[0]" instant] - ["[0]" duration]]]]] + ["[0]" duration]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/security/capability.lux b/stdlib/source/test/lux/control/security/capability.lux index d02572381..57fd4c4cc 100644 --- a/stdlib/source/test/lux/control/security/capability.lux +++ b/stdlib/source/test/lux/control/security/capability.lux @@ -11,7 +11,8 @@ ["[0]" random] [number ["n" nat]]] - ["_" test (.only Test) + [test + ["_" property (.only Test)] ["[0]" unit]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/control/security/policy.lux b/stdlib/source/test/lux/control/security/policy.lux index 7e0de2086..77b5582f7 100644 --- a/stdlib/source/test/lux/control/security/policy.lux +++ b/stdlib/source/test/lux/control/security/policy.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [hash (.only Hash)] [monad (.only do)] @@ -17,7 +16,9 @@ ["n" nat]]] [meta [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Context Privacy Can_Conceal Can_Reveal Privilege Private)]]) diff --git a/stdlib/source/test/lux/control/state.lux b/stdlib/source/test/lux/control/state.lux index 988378358..d1817279c 100644 --- a/stdlib/source/test/lux/control/state.lux +++ b/stdlib/source/test/lux/control/state.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -16,7 +15,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only State)]]) diff --git a/stdlib/source/test/lux/control/thread.lux b/stdlib/source/test/lux/control/thread.lux index 40dd3f60f..64084691a 100644 --- a/stdlib/source/test/lux/control/thread.lux +++ b/stdlib/source/test/lux/control/thread.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -11,7 +10,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Thread) [// diff --git a/stdlib/source/test/lux/control/try.lux b/stdlib/source/test/lux/control/try.lux index e887e38a8..857d67ac5 100644 --- a/stdlib/source/test/lux/control/try.lux +++ b/stdlib/source/test/lux/control/try.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Try)]]) diff --git a/stdlib/source/test/lux/control/writer.lux b/stdlib/source/test/lux/control/writer.lux index cd37f2c71..1169c4922 100644 --- a/stdlib/source/test/lux/control/writer.lux +++ b/stdlib/source/test/lux/control/writer.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monoid (.only Monoid)] @@ -18,7 +17,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Writer)]]) diff --git a/stdlib/source/test/lux/data.lux b/stdlib/source/test/lux/data.lux index b8f19ff62..b242a4582 100644 --- a/stdlib/source/test/lux/data.lux +++ b/stdlib/source/test/lux/data.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" binary] ["[1][0]" bit] diff --git a/stdlib/source/test/lux/data/binary.lux b/stdlib/source/test/lux/data/binary.lux index c6514691e..296867c13 100644 --- a/stdlib/source/test/lux/data/binary.lux +++ b/stdlib/source/test/lux/data/binary.lux @@ -2,7 +2,6 @@ [library [lux (.except) [ffi (.only)] - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] ["[0]" monad (.only do)] @@ -44,7 +43,9 @@ ["[0]" type] ["[0]" code] [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) (.use "[1]#[0]" equivalence) ["!" \\unsafe] diff --git a/stdlib/source/test/lux/data/bit.lux b/stdlib/source/test/lux/data/bit.lux index a0ee85ca0..edd3fd68b 100644 --- a/stdlib/source/test/lux/data/bit.lux +++ b/stdlib/source/test/lux/data/bit.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -12,7 +11,9 @@ [control ["[0]" function]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection.lux b/stdlib/source/test/lux/data/collection.lux index f1fa1792e..3362ee4bb 100644 --- a/stdlib/source/test/lux/data/collection.lux +++ b/stdlib/source/test/lux/data/collection.lux @@ -1,7 +1,8 @@ (.require [library [lux (.except list) - ["_" test (.only Test)]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" array] ["[1][0]" bits] diff --git a/stdlib/source/test/lux/data/collection/array.lux b/stdlib/source/test/lux/data/collection/array.lux index 32b189124..f12014f24 100644 --- a/stdlib/source/test/lux/data/collection/array.lux +++ b/stdlib/source/test/lux/data/collection/array.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [functor (.only)] [monad (.only do)] @@ -23,7 +22,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Array) ["!" \\unsafe]]]) diff --git a/stdlib/source/test/lux/data/collection/bits.lux b/stdlib/source/test/lux/data/collection/bits.lux index 98d288dc5..379cfd131 100644 --- a/stdlib/source/test/lux/data/collection/bits.lux +++ b/stdlib/source/test/lux/data/collection/bits.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Bits)]]) diff --git a/stdlib/source/test/lux/data/collection/dictionary.lux b/stdlib/source/test/lux/data/collection/dictionary.lux index f9eeb51fe..369bddd2d 100644 --- a/stdlib/source/test/lux/data/collection/dictionary.lux +++ b/stdlib/source/test/lux/data/collection/dictionary.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [hash (.only Hash)] [monad (.only do)] @@ -20,7 +19,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux index 5cb3bc1c1..7736202d0 100644 --- a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux +++ b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [equivalence (.only Equivalence)] @@ -19,7 +18,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux index f915d4316..6bb1808f7 100644 --- a/stdlib/source/test/lux/data/collection/list.lux +++ b/stdlib/source/test/lux/data/collection/list.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] ["[0]" enum] @@ -28,7 +27,9 @@ ["[0]" random (.only Random)] [number ["n" nat] - ["[0]" int]]]]] + ["[0]" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.use "[1]#[0]" monad)]]) diff --git a/stdlib/source/test/lux/data/collection/list/property.lux b/stdlib/source/test/lux/data/collection/list/property.lux index d8ae753ef..a6e4f0d77 100644 --- a/stdlib/source/test/lux/data/collection/list/property.lux +++ b/stdlib/source/test/lux/data/collection/list/property.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -18,7 +17,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection/queue.lux b/stdlib/source/test/lux/data/collection/queue.lux index d047930f2..b1889edc9 100644 --- a/stdlib/source/test/lux/data/collection/queue.lux +++ b/stdlib/source/test/lux/data/collection/queue.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -15,7 +14,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection/queue/priority.lux b/stdlib/source/test/lux/data/collection/queue/priority.lux index 13e01a0b3..b0ca6a4f9 100644 --- a/stdlib/source/test/lux/data/collection/queue/priority.lux +++ b/stdlib/source/test/lux/data/collection/queue/priority.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)]] [control @@ -11,7 +10,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Queue)]]) diff --git a/stdlib/source/test/lux/data/collection/sequence.lux b/stdlib/source/test/lux/data/collection/sequence.lux index ac58c3008..dac8c85a5 100644 --- a/stdlib/source/test/lux/data/collection/sequence.lux +++ b/stdlib/source/test/lux/data/collection/sequence.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -23,7 +22,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.use "[1]#[0]" monad)]]) diff --git a/stdlib/source/test/lux/data/collection/set.lux b/stdlib/source/test/lux/data/collection/set.lux index f4544abf4..16d7294d8 100644 --- a/stdlib/source/test/lux/data/collection/set.lux +++ b/stdlib/source/test/lux/data/collection/set.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [hash (.only Hash)] [monad (.only do)] @@ -16,7 +15,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.use "[1]#[0]" equivalence)]]) diff --git a/stdlib/source/test/lux/data/collection/set/multi.lux b/stdlib/source/test/lux/data/collection/set/multi.lux index 64b07d09c..16e7986fa 100644 --- a/stdlib/source/test/lux/data/collection/set/multi.lux +++ b/stdlib/source/test/lux/data/collection/set/multi.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [hash (.only Hash)] [monad (.only do)] @@ -19,7 +18,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection/set/ordered.lux b/stdlib/source/test/lux/data/collection/set/ordered.lux index 51688a128..cc68dbb85 100644 --- a/stdlib/source/test/lux/data/collection/set/ordered.lux +++ b/stdlib/source/test/lux/data/collection/set/ordered.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [order (.only Order)] @@ -14,7 +13,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Set) ["[0]" //]]]) diff --git a/stdlib/source/test/lux/data/collection/stack.lux b/stdlib/source/test/lux/data/collection/stack.lux index 51dbc5dba..51357230f 100644 --- a/stdlib/source/test/lux/data/collection/stack.lux +++ b/stdlib/source/test/lux/data/collection/stack.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -14,7 +13,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection/stream.lux b/stdlib/source/test/lux/data/collection/stream.lux index b8b40e495..df001ce0e 100644 --- a/stdlib/source/test/lux/data/collection/stream.lux +++ b/stdlib/source/test/lux/data/collection/stream.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [equivalence (.only Equivalence)] @@ -17,7 +16,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection/tree.lux b/stdlib/source/test/lux/data/collection/tree.lux index 3f560f85d..1193c4e9e 100644 --- a/stdlib/source/test/lux/data/collection/tree.lux +++ b/stdlib/source/test/lux/data/collection/tree.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)] [\\specification @@ -22,7 +21,9 @@ ["n" nat]]] [meta [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\parser] [\\library ["[0]" / (.only Tree) diff --git a/stdlib/source/test/lux/data/collection/tree/finger.lux b/stdlib/source/test/lux/data/collection/tree/finger.lux index 7d9faf595..f291a6e51 100644 --- a/stdlib/source/test/lux/data/collection/tree/finger.lux +++ b/stdlib/source/test/lux/data/collection/tree/finger.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -15,7 +14,9 @@ [number ["n" nat]]] [meta - [type (.only by_example)]]]] + [type (.only by_example)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/collection/tree/zipper.lux b/stdlib/source/test/lux/data/collection/tree/zipper.lux index 19f4d71ed..0da1f808d 100644 --- a/stdlib/source/test/lux/data/collection/tree/zipper.lux +++ b/stdlib/source/test/lux/data/collection/tree/zipper.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -19,7 +18,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] ["[0]" //] [\\library ["[0]" / (.only Zipper) diff --git a/stdlib/source/test/lux/data/color.lux b/stdlib/source/test/lux/data/color.lux index fa4d1f9d3..e098211cb 100644 --- a/stdlib/source/test/lux/data/color.lux +++ b/stdlib/source/test/lux/data/color.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ ["n" nat] ["f" frac] ["r" rev] - ["[0]" int]]]]] + ["[0]" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/color/named.lux b/stdlib/source/test/lux/data/color/named.lux index 5bb0ca32b..34a5a5a3d 100644 --- a/stdlib/source/test/lux/data/color/named.lux +++ b/stdlib/source/test/lux/data/color/named.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -14,7 +13,9 @@ ["n" nat]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]]) diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux index b64a685a2..d39552093 100644 --- a/stdlib/source/test/lux/data/format/json.lux +++ b/stdlib/source/test/lux/data/format/json.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except Variant Record) - ["_" test (.only Test)] [abstract [codec (.except)] [monad (.only do)] @@ -45,7 +44,9 @@ ["[0]" instant ["[0]/[1]" \\test]] ["[0]" duration - ["[0]/[1]" \\test]]]]]] + ["[0]/[1]" \\test]]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\polytypic] ["[0]" \\parser] [\\library diff --git a/stdlib/source/test/lux/data/format/tar.lux b/stdlib/source/test/lux/data/format/tar.lux index 5665efaec..1101f9ca1 100644 --- a/stdlib/source/test/lux/data/format/tar.lux +++ b/stdlib/source/test/lux/data/format/tar.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -32,7 +31,9 @@ [world [time ["[0]" instant (.only Instant)] - ["[0]" duration]]]]] + ["[0]" duration]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux index c1d456cf1..c4cccc987 100644 --- a/stdlib/source/test/lux/data/format/xml.lux +++ b/stdlib/source/test/lux/data/format/xml.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except char symbol) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -27,7 +26,9 @@ ["[0]" type (.use "[1]#[0]" equivalence)] [macro ["^" pattern] - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\parser] [\\library ["[0]" / (.use "[1]#[0]" equivalence)]]) diff --git a/stdlib/source/test/lux/data/identity.lux b/stdlib/source/test/lux/data/identity.lux index 050117d2d..a27cc32f7 100644 --- a/stdlib/source/test/lux/data/identity.lux +++ b/stdlib/source/test/lux/data/identity.lux @@ -1,14 +1,15 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification ["$[0]" functor (.only Injection Comparison)] ["$[0]" apply] ["$[0]" monad] - ["$[0]" comonad]]]]] + ["$[0]" comonad]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Identity)]]) diff --git a/stdlib/source/test/lux/data/product.lux b/stdlib/source/test/lux/data/product.lux index 2bfd265f8..af76cff0c 100644 --- a/stdlib/source/test/lux/data/product.lux +++ b/stdlib/source/test/lux/data/product.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -10,7 +9,9 @@ ["[0]" random] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/sum.lux b/stdlib/source/test/lux/data/sum.lux index d4b18571d..11430bb32 100644 --- a/stdlib/source/test/lux/data/sum.lux +++ b/stdlib/source/test/lux/data/sum.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ ["[0]" random] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux index 66655823f..dca84b015 100644 --- a/stdlib/source/test/lux/data/text.lux +++ b/stdlib/source/test/lux/data/text.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except char) - ["_" test (.only Test)] [abstract [monad (.only do)] [equivalence (.only Equivalence)] @@ -57,7 +56,9 @@ ["[0]" month] ["[0]" instant] ["[0]" duration] - ["[0]" date]]]]] + ["[0]" date]]] + [test + ["_" property (.only Test)]]]] ["$[0]" // [format ["[1][0]" xml] diff --git a/stdlib/source/test/lux/data/text/buffer.lux b/stdlib/source/test/lux/data/text/buffer.lux index 3d8e4b250..54f74359c 100644 --- a/stdlib/source/test/lux/data/text/buffer.lux +++ b/stdlib/source/test/lux/data/text/buffer.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -10,7 +9,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/text/encoding.lux b/stdlib/source/test/lux/data/text/encoding.lux index 7464a5934..2e5b0fad9 100644 --- a/stdlib/source/test/lux/data/text/encoding.lux +++ b/stdlib/source/test/lux/data/text/encoding.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -20,7 +19,9 @@ ["n" nat]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/test/lux/data/text/encoding/utf8.lux b/stdlib/source/test/lux/data/text/encoding/utf8.lux index e8e4df424..38e57a1b0 100644 --- a/stdlib/source/test/lux/data/text/encoding/utf8.lux +++ b/stdlib/source/test/lux/data/text/encoding/utf8.lux @@ -1,14 +1,15 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [\\specification ["$[0]" codec]]] [data ["[0]" text]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/text/escape.lux b/stdlib/source/test/lux/data/text/escape.lux index 7509dcf58..1ac4b1904 100644 --- a/stdlib/source/test/lux/data/text/escape.lux +++ b/stdlib/source/test/lux/data/text/escape.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" debug] [abstract [monad (.only do)]] @@ -23,7 +22,9 @@ ["<[1]>" \\parser]] [macro [syntax (.only syntax)] - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/data/text/regex.lux b/stdlib/source/test/lux/data/text/regex.lux index 7485c1d05..d5be70ce1 100644 --- a/stdlib/source/test/lux/data/text/regex.lux +++ b/stdlib/source/test/lux/data/text/regex.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -19,7 +18,9 @@ ["<[1]>" \\parser]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" expansion]]]]] + ["[0]" expansion]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/text/unicode/block.lux b/stdlib/source/test/lux/data/text/unicode/block.lux index 34f1ab7cd..75756fd45 100644 --- a/stdlib/source/test/lux/data/text/unicode/block.lux +++ b/stdlib/source/test/lux/data/text/unicode/block.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -19,7 +18,9 @@ ["n" nat]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/data/text/unicode/set.lux b/stdlib/source/test/lux/data/text/unicode/set.lux index bdca45423..b5dbad749 100644 --- a/stdlib/source/test/lux/data/text/unicode/set.lux +++ b/stdlib/source/test/lux/data/text/unicode/set.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -14,7 +13,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["/[1]" // ["[1][0]" block]]] diff --git a/stdlib/source/test/lux/debug.lux b/stdlib/source/test/lux/debug.lux index a503b00cd..6332cfa59 100644 --- a/stdlib/source/test/lux/debug.lux +++ b/stdlib/source/test/lux/debug.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -32,7 +31,9 @@ [date (.only Date)] [duration (.only Duration)] [month (.only Month)] - [day (.only Day)]]]]] + [day (.only Day)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" // diff --git a/stdlib/source/test/lux/documentation.lux b/stdlib/source/test/lux/documentation.lux index ce0832ed2..2d162fb2a 100644 --- a/stdlib/source/test/lux/documentation.lux +++ b/stdlib/source/test/lux/documentation.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [control ["[0]" try] ["[0]" exception]] @@ -17,7 +16,9 @@ [macro [syntax (.only syntax)] ["[0]" template] - ["[0]" expansion]]]]] + ["[0]" expansion]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/ffi.js.lux b/stdlib/source/test/lux/ffi.js.lux index 2312f1d9f..6148aa47f 100644 --- a/stdlib/source/test/lux/ffi.js.lux +++ b/stdlib/source/test/lux/ffi.js.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -13,7 +12,9 @@ ["[0]" random (.only Random)] [number ["[0]" nat] - ["[0]" frac]]]]] + ["[0]" frac]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" / diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux index 7c047318d..5b3e2bb80 100644 --- a/stdlib/source/test/lux/ffi.jvm.lux +++ b/stdlib/source/test/lux/ffi.jvm.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" debug] [abstract [monad (.only do)]] @@ -34,7 +33,9 @@ ["[0]" expansion]] [target ["[0]" jvm - ["[1]" type (.use "[1]#[0]" equivalence)]]]]]] + ["[1]" type (.use "[1]#[0]" equivalence)]]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" / diff --git a/stdlib/source/test/lux/ffi.lua.lux b/stdlib/source/test/lux/ffi.lua.lux index a78f7c516..a3a036d34 100644 --- a/stdlib/source/test/lux/ffi.lua.lux +++ b/stdlib/source/test/lux/ffi.lua.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control ["[0]" io]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" / diff --git a/stdlib/source/test/lux/ffi.old.lux b/stdlib/source/test/lux/ffi.old.lux index 117207e57..ce7164514 100644 --- a/stdlib/source/test/lux/ffi.old.lux +++ b/stdlib/source/test/lux/ffi.old.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monad (.only do)]] @@ -19,7 +18,9 @@ [meta ["[0]" type (.use "[1]#[0]" equivalence)] [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/ffi.php.lux b/stdlib/source/test/lux/ffi.php.lux index 324bd7b81..c0f9b46a0 100644 --- a/stdlib/source/test/lux/ffi.php.lux +++ b/stdlib/source/test/lux/ffi.php.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -12,7 +11,9 @@ ["[0]" random (.only Random)] [number ["[0]" nat] - ["[0]" frac]]]]] + ["[0]" frac]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/ffi.py.lux b/stdlib/source/test/lux/ffi.py.lux index 3a8529e2e..a61678e06 100644 --- a/stdlib/source/test/lux/ffi.py.lux +++ b/stdlib/source/test/lux/ffi.py.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math ["[0]" random] [number - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" / diff --git a/stdlib/source/test/lux/ffi.rb.lux b/stdlib/source/test/lux/ffi.rb.lux index 305de1e59..bec6471d2 100644 --- a/stdlib/source/test/lux/ffi.rb.lux +++ b/stdlib/source/test/lux/ffi.rb.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" / diff --git a/stdlib/source/test/lux/ffi.scm.lux b/stdlib/source/test/lux/ffi.scm.lux index 324bd7b81..c0f9b46a0 100644 --- a/stdlib/source/test/lux/ffi.scm.lux +++ b/stdlib/source/test/lux/ffi.scm.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -12,7 +11,9 @@ ["[0]" random (.only Random)] [number ["[0]" nat] - ["[0]" frac]]]]] + ["[0]" frac]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/ffi/export.js.lux b/stdlib/source/test/lux/ffi/export.js.lux index 852eee961..e536e8500 100644 --- a/stdlib/source/test/lux/ffi/export.js.lux +++ b/stdlib/source/test/lux/ffi/export.js.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [math [number ["n" nat]]] [meta - ["[0]" static]]]] + ["[0]" static]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]]) diff --git a/stdlib/source/test/lux/ffi/export.jvm.lux b/stdlib/source/test/lux/ffi/export.jvm.lux index 6904a33df..c2be8273d 100644 --- a/stdlib/source/test/lux/ffi/export.jvm.lux +++ b/stdlib/source/test/lux/ffi/export.jvm.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" debug] [abstract [monad (.only do)]] @@ -19,7 +18,9 @@ ["[0]" static] ["[0]" code] [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]]) diff --git a/stdlib/source/test/lux/ffi/export.lua.lux b/stdlib/source/test/lux/ffi/export.lua.lux index f0c1d7efd..ab81a2d39 100644 --- a/stdlib/source/test/lux/ffi/export.lua.lux +++ b/stdlib/source/test/lux/ffi/export.lua.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [math [number ["n" nat]]] [meta - ["[0]" static]]]] + ["[0]" static]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]]) diff --git a/stdlib/source/test/lux/ffi/export.py.lux b/stdlib/source/test/lux/ffi/export.py.lux index 852eee961..e536e8500 100644 --- a/stdlib/source/test/lux/ffi/export.py.lux +++ b/stdlib/source/test/lux/ffi/export.py.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [math [number ["n" nat]]] [meta - ["[0]" static]]]] + ["[0]" static]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]]) diff --git a/stdlib/source/test/lux/ffi/export.rb.lux b/stdlib/source/test/lux/ffi/export.rb.lux index 394d16376..8e1d83bd4 100644 --- a/stdlib/source/test/lux/ffi/export.rb.lux +++ b/stdlib/source/test/lux/ffi/export.rb.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [math [number ["n" nat]]] [meta - ["[0]" static]]]] + ["[0]" static]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]]) diff --git a/stdlib/source/test/lux/math.lux b/stdlib/source/test/lux/math.lux index 251e3e9ad..1eaab1664 100644 --- a/stdlib/source/test/lux/math.lux +++ b/stdlib/source/test/lux/math.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -17,7 +16,9 @@ ["[0]" complex (.only Complex)]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/test/lux/math/infix.lux b/stdlib/source/test/lux/math/infix.lux index 7e5aa1cd0..5f4143556 100644 --- a/stdlib/source/test/lux/math/infix.lux +++ b/stdlib/source/test/lux/math/infix.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -10,7 +9,9 @@ ["[0]" random] [number ["n" nat] - ["f" frac]]]]] + ["f" frac]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/math/logic/continuous.lux b/stdlib/source/test/lux/math/logic/continuous.lux index d0f0a33a1..184b5163d 100644 --- a/stdlib/source/test/lux/math/logic/continuous.lux +++ b/stdlib/source/test/lux/math/logic/continuous.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -9,7 +8,9 @@ [math ["[0]" random] [number - ["r" rev]]]]] + ["r" rev]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/math/logic/fuzzy.lux b/stdlib/source/test/lux/math/logic/fuzzy.lux index 5011e2eee..dd2f7d00a 100644 --- a/stdlib/source/test/lux/math/logic/fuzzy.lux +++ b/stdlib/source/test/lux/math/logic/fuzzy.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monad (.only do)] @@ -17,7 +16,9 @@ ["[0]" random (.only Random)] [number ["n" nat] - ["r" rev]]]]] + ["r" rev]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Fuzzy) ["/[1]" // diff --git a/stdlib/source/test/lux/math/modular.lux b/stdlib/source/test/lux/math/modular.lux index 5393d75ef..2e959b428 100644 --- a/stdlib/source/test/lux/math/modular.lux +++ b/stdlib/source/test/lux/math/modular.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -22,7 +21,9 @@ [number ["i" int]]] [meta - ["[0]" type (.use "[1]#[0]" equivalence)]]]] + ["[0]" type (.use "[1]#[0]" equivalence)]] + [test + ["_" property (.only Test)]]]] ["$[0]" // ["[1]" modulus]] [\\library diff --git a/stdlib/source/test/lux/math/modulus.lux b/stdlib/source/test/lux/math/modulus.lux index 021bd0758..c1f61a289 100644 --- a/stdlib/source/test/lux/math/modulus.lux +++ b/stdlib/source/test/lux/math/modulus.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -14,7 +13,9 @@ ["[0]" meta (.only) ["[0]" code] [macro - [syntax (.only syntax)]]]]] + [syntax (.only syntax)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/math/number.lux b/stdlib/source/test/lux/math/number.lux index d0142f7bf..d5d9fb557 100644 --- a/stdlib/source/test/lux/math/number.lux +++ b/stdlib/source/test/lux/math/number.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [control ["[0]" try]] [data - ["[0]" text]]]] + ["[0]" text]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["n" nat] diff --git a/stdlib/source/test/lux/math/number/complex.lux b/stdlib/source/test/lux/math/number/complex.lux index dbecb18ad..2b8eada59 100644 --- a/stdlib/source/test/lux/math/number/complex.lux +++ b/stdlib/source/test/lux/math/number/complex.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -10,7 +9,9 @@ [collection ["[0]" list (.use "[1]#[0]" functor)]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/math/number/frac.lux b/stdlib/source/test/lux/math/number/frac.lux index cf3a973de..d76cbe5a5 100644 --- a/stdlib/source/test/lux/math/number/frac.lux +++ b/stdlib/source/test/lux/math/number/frac.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" ffi] [abstract [monad (.only do)] @@ -18,7 +17,9 @@ [meta ["@" target] [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// (.except) diff --git a/stdlib/source/test/lux/math/number/i16.lux b/stdlib/source/test/lux/math/number/i16.lux index efc96c804..6753d2496 100644 --- a/stdlib/source/test/lux/math/number/i16.lux +++ b/stdlib/source/test/lux/math/number/i16.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification ["$[0]" equivalence]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/math/number/i32.lux b/stdlib/source/test/lux/math/number/i32.lux index 5c6ae320f..0770f96cd 100644 --- a/stdlib/source/test/lux/math/number/i32.lux +++ b/stdlib/source/test/lux/math/number/i32.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification ["$[0]" equivalence]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/math/number/i64.lux b/stdlib/source/test/lux/math/number/i64.lux index e281fcb28..6b4081342 100644 --- a/stdlib/source/test/lux/math/number/i64.lux +++ b/stdlib/source/test/lux/math/number/i64.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [data ["[0]" bit (.use "[1]#[0]" equivalence)]] [abstract @@ -11,7 +10,9 @@ ["$[0]" hash] ["$[0]" monoid]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.use "[1]#[0]" equivalence) [// (.only hex) diff --git a/stdlib/source/test/lux/math/number/i8.lux b/stdlib/source/test/lux/math/number/i8.lux index c8c791d44..f07c37aa4 100644 --- a/stdlib/source/test/lux/math/number/i8.lux +++ b/stdlib/source/test/lux/math/number/i8.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification ["$[0]" equivalence]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/math/number/int.lux b/stdlib/source/test/lux/math/number/int.lux index 27f66d3a2..afb733787 100644 --- a/stdlib/source/test/lux/math/number/int.lux +++ b/stdlib/source/test/lux/math/number/int.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -15,7 +14,9 @@ [data ["[0]" bit (.use "[1]#[0]" equivalence)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/math/number/nat.lux b/stdlib/source/test/lux/math/number/nat.lux index cb31da701..9ab7e63fb 100644 --- a/stdlib/source/test/lux/math/number/nat.lux +++ b/stdlib/source/test/lux/math/number/nat.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -15,7 +14,9 @@ [data ["[0]" bit (.use "[1]#[0]" equivalence)]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/math/number/ratio.lux b/stdlib/source/test/lux/math/number/ratio.lux index ec4f2e7d5..b81cc91c6 100644 --- a/stdlib/source/test/lux/math/number/ratio.lux +++ b/stdlib/source/test/lux/math/number/ratio.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -14,7 +13,9 @@ [data ["[0]" bit (.use "[1]#[0]" equivalence)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/math/number/rev.lux b/stdlib/source/test/lux/math/number/rev.lux index ae6de035a..6f5d6a4eb 100644 --- a/stdlib/source/test/lux/math/number/rev.lux +++ b/stdlib/source/test/lux/math/number/rev.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -15,7 +14,9 @@ [data ["[0]" bit (.use "[1]#[0]" equivalence)]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// (.only hex) diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux index 3cd03f84c..98081de7f 100644 --- a/stdlib/source/test/lux/meta.lux +++ b/stdlib/source/test/lux/meta.lux @@ -1,7 +1,6 @@ (.`` (.`` (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only Equivalence)] [monad (.only do)] @@ -29,7 +28,9 @@ ["[0]" location] ["[0]" symbol (.use "[1]#[0]" equivalence)] [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["[0]" type (.use "[1]#[0]" equivalence)]]] diff --git a/stdlib/source/test/lux/meta/code.lux b/stdlib/source/test/lux/meta/code.lux index 2a645fcaa..80c1bbe65 100644 --- a/stdlib/source/test/lux/meta/code.lux +++ b/stdlib/source/test/lux/meta/code.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except local global) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -31,7 +30,9 @@ [compiler [language [lux - ["[0]" syntax]]]]]]] + ["[0]" syntax]]]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\parser] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/arity.lux b/stdlib/source/test/lux/meta/compiler/arity.lux index ffff0f3e6..08f735f81 100644 --- a/stdlib/source/test/lux/meta/compiler/arity.lux +++ b/stdlib/source/test/lux/meta/compiler/arity.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -9,7 +8,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis.lux index 6a18983f0..4fdb983a1 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -34,7 +33,9 @@ ["$[1]" \\test]] [compiler [reference (.only Constant) - [variable (.only)]]]]]] + [variable (.only)]]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\parser] [\\library ["[0]" / (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/complex.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/complex.lux index 069b07187..f4de2a962 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/complex.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/complex.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -14,7 +13,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/coverage.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/coverage.lux index 417413fb0..7272d6c98 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/coverage.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/coverage.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except Pattern) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)] [\\specification @@ -30,7 +29,9 @@ ["f" frac]]] [meta [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/inference.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/inference.lux index 24433b8d0..127af213b 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/inference.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/inference.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -26,7 +25,9 @@ ["[0]" configuration ["$[1]" \\test]] ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check (.only Check)]]]]] + ["[0]" check (.only Check)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/macro.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/macro.lux index 19c701bef..2d29df1d8 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/macro.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/macro.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -24,7 +23,9 @@ ["[0]" code (.use "[1]#[0]" equivalence)] ["[0]" macro] ["[0]" configuration - ["$[1]" \\test]]]]] + ["$[1]" \\test]]] + [test + ["_" property (.only Test)]]]] ["$" /////// [meta ["[1][0]" symbol] diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/module.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/module.lux index 7a68264d7..4bb9269cf 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/module.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/module.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)]] [control @@ -20,7 +19,9 @@ ["n" nat]]] ["[0]" meta (.only) ["[0]" configuration - ["$[1]" \\test]]]]] + ["$[1]" \\test]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/pattern.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/pattern.lux index e3034f93c..74faec932 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/pattern.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/pattern.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["f" frac]]]]] + ["f" frac]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" // diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/scope.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/scope.lux index 5fb2ad044..bc2c63519 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/scope.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/scope.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -19,7 +18,9 @@ ["n" nat]]] [meta ["[0]" type - ["$[1]" \\test]]]]] + ["$[1]" \\test]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/simple.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/simple.lux index b029f6add..a334cf0b0 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/simple.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/simple.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["f" frac]]]]] + ["f" frac]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/type.lux b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/type.lux index 805939c68..8afc7c8fc 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/analysis/type.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/analysis/type.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -15,7 +14,9 @@ ["[0]" configuration ["$[1]" \\test]] ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]]] + ["[0]" check]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis.lux index 579356065..7595b7a87 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -20,7 +19,9 @@ ["[0]" code] ["[0]" macro] ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]]] + ["[0]" check]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/case.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/case.lux index 5c1752fe3..16d10e01a 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/case.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/case.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -17,7 +16,9 @@ ["[0]" code] ["[0]" macro] ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]]] + ["[0]" check]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/complex.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/complex.lux index 9e9004371..294251023 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/complex.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/complex.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -31,7 +30,9 @@ ["[0]" configuration ["$[1]" \\test]] ["[0]" type (.use "[1]#[0]" equivalence) - ["[0]" check]]]]] + ["[0]" check]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/function.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/function.lux index efd22de9a..41d0ff3f1 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/function.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/function.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -25,7 +24,9 @@ ["$[1]" \\test]] ["[0]" type (.use "[1]#[0]" equivalence) ["$[1]" \\test] - ["[0]" check]]]]] + ["[0]" check]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/reference.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/reference.lux index 6cc8db551..060f7cbd1 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/reference.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/reference.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -15,7 +14,9 @@ ["[0]" random]] [meta ["[0]" type (.use "[1]#[0]" equivalence) - ["$[1]" \\test]]]]] + ["$[1]" \\test]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/simple.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/simple.lux index bceb035c6..d4b76212d 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/simple.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/analysis/simple.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -14,7 +13,9 @@ [meta ["[0]" type (.use "[1]#[0]" equivalence)] ["[0]" configuration - ["$[1]" \\test]]]]] + ["$[1]" \\test]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [/// diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux index 08e310f54..8daf0cd19 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)] [\\specification @@ -22,7 +21,9 @@ ["[0]" random (.only Random)] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [///// diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux index 5de7ad7d3..5eff1f2b9 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux @@ -1,23 +1,25 @@ (.require - [lux (.except i64 int primitive) - [abstract - ["[0]" monad (.only do)]] - [data - ["%" text/format (.only format)]] - ["r" math/random (.only Random)] - ["_" test (.only Test)] - [control - [io (.only IO)] - ["[0]" pipe] - ["[0]" try] - [concurrency - ["[0]" atom]]] - [data - ["[0]" product]] - [meta - ["[0]" code] - ["[0]" symbol] - ["[0]" type (.use "[1]#[0]" equivalence)]]] + [library + [lux (.except i64 int primitive) + [abstract + ["[0]" monad (.only do)]] + [data + ["%" text/format (.only format)]] + ["r" math/random (.only Random)] + [control + [io (.only IO)] + ["[0]" pipe] + ["[0]" try] + [concurrency + ["[0]" atom]]] + [data + ["[0]" product]] + [meta + ["[0]" code] + ["[0]" symbol] + ["[0]" type (.use "[1]#[0]" equivalence)]] + [test + ["_" property (.only Test)]]]] [//// [analysis ["_[0]" primitive]]] diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis.lux index e4a2814b4..1414fb23e 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis.lux @@ -1,6 +1,8 @@ (.require - [lux (.except) - ["_" test (.only Test)]] + [library + [lux (.except) + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" primitive] ["[1][0]" structure] diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/case.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/case.lux index 7f348e194..8df7f087c 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/case.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/case.lux @@ -1,26 +1,28 @@ (.require - [lux (.except) - ["_" test (.only Test)] - [abstract - [hash (.only Hash)] - ["[0]" monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" try (.use "[1]#[0]" functor)]] - [data - ["[0]" sum] - ["[0]" text (.only) - ["%" \\format (.only format)]] - [number - ["n" nat] - ["[0]" int] - ["[0]" rev] - ["[0]" frac]] - [collection - ["[0]" list (.use "[1]#[0]" functor mix monoid)] - ["[0]" set]]] - [math - ["[0]" random (.only Random)]]] + [library + [lux (.except) + [abstract + [hash (.only Hash)] + ["[0]" monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" try (.use "[1]#[0]" functor)]] + [data + ["[0]" sum] + ["[0]" text (.only) + ["%" \\format (.only format)]] + [number + ["n" nat] + ["[0]" int] + ["[0]" rev] + ["[0]" frac]] + [collection + ["[0]" list (.use "[1]#[0]" functor mix monoid)] + ["[0]" set]]] + [math + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] ["[0]" // ["[1][0]" primitive]] [\\ diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/function.lux index 579f52354..35acd02b6 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/function.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/function.lux @@ -1,25 +1,27 @@ (.require - [lux (.except) - ["_" test (.only Test)] - [abstract - ["[0]" monad (.only do)]] - [control - ["[0]" try]] - [data - ["[0]" product] - ["[0]" text (.only) - ["%" \\format (.only format)]] - [number - ["n" nat]] - [collection - ["[0]" list (.use "[1]#[0]" functor mix monoid)] - ["[0]" dictionary (.only Dictionary)] - ["[0]" set]]] - [math - ["[0]" random (.only Random)]] - [meta - [macro - ["^" pattern]]]] + [library + [lux (.except) + [abstract + ["[0]" monad (.only do)]] + [control + ["[0]" try]] + [data + ["[0]" product] + ["[0]" text (.only) + ["%" \\format (.only format)]] + [number + ["n" nat]] + [collection + ["[0]" list (.use "[1]#[0]" functor mix monoid)] + ["[0]" dictionary (.only Dictionary)] + ["[0]" set]]] + [math + ["[0]" random (.only Random)]] + [meta + [macro + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] ["[0]" // ["[1][0]" primitive]] [\\ diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/loop.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/loop.lux index 76df6ec77..d2fa415a0 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/loop.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/loop.lux @@ -1,18 +1,20 @@ (.require - [lux (.except structure loop function) - ["_" test (.only Test)] - [abstract - [monad (.only do)]] - [control - ["[0]" try] - ["[0]" exception]] - [data - [number - ["n" nat]] - [collection - ["[0]" list (.use "[1]#[0]" functor)]]] - [math - ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]] + [library + [lux (.except structure loop function) + [abstract + [monad (.only do)]] + [control + ["[0]" try] + ["[0]" exception]] + [data + [number + ["n" nat]] + [collection + ["[0]" list (.use "[1]#[0]" functor)]]] + [math + ["[0]" random (.only Random) (.use "[1]#[0]" monad)]] + [test + ["_" property (.only Test)]]]] [\\ ["[0]" / [//// diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux index 62d7d5db2..e9d5451ef 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux @@ -1,19 +1,21 @@ (.require - [lux (.except primitive) - [abstract ["[0]" monad (.only do)]] - [control - ["[0]" pipe] - ["[0]" try]] - [data - ["%" text/format (.only format)] - [number - ["n" nat]] - [collection - ["[0]" list]]] - ["r" math/random (.only Random) (.use "[1]#[0]" monad)] - ["_" test (.only Test)] - [meta - ["[0]" symbol]]] + [library + [lux (.except primitive) + [abstract ["[0]" monad (.only do)]] + [control + ["[0]" pipe] + ["[0]" try]] + [data + ["%" text/format (.only format)] + [number + ["n" nat]] + [collection + ["[0]" list]]] + ["r" math/random (.only Random) (.use "[1]#[0]" monad)] + [meta + ["[0]" symbol]] + [test + ["_" property (.only Test)]]]] [\\ ["[0]" / ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux index 8da9fae17..904f98b43 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux @@ -1,23 +1,25 @@ (.require - [lux (.except) - [abstract - ["[0]" monad (.only do)]] - [data - ["%" text/format (.only format)]] - ["r" math/random (.only Random)] - ["_" test (.only Test)] - [control - ["[0]" pipe] - ["[0]" try]] - [data - ["[0]" bit (.use "[1]#[0]" equivalence)] - ["[0]" product] - [number - ["n" nat]] - [collection - ["[0]" list]]] - [meta - ["[0]" symbol]]] + [library + [lux (.except) + [abstract + ["[0]" monad (.only do)]] + [data + ["%" text/format (.only format)]] + ["r" math/random (.only Random)] + [control + ["[0]" pipe] + ["[0]" try]] + [data + ["[0]" bit (.use "[1]#[0]" equivalence)] + ["[0]" product] + [number + ["n" nat]] + [collection + ["[0]" list]]] + [meta + ["[0]" symbol]] + [test + ["_" property (.only Test)]]]] ["[0]" // ["[1][0]" primitive]] [\\ diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/variable.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/variable.lux index 309ba20ff..fe6ec126b 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/variable.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/variable.lux @@ -1,24 +1,26 @@ (.require - [lux (.except) - ["_" test (.only Test)] - [abstract - ["[0]" monad (.only do)]] - [control - ["[0]" try]] - [data - ["[0]" product] - ["[0]" text - ["%" \\format (.only format)]] - [number - ["n" nat]] - [collection - ["[0]" list (.use "[1]#[0]" functor mix)] - ["[0]" dictionary (.only Dictionary)]]] - [math - ["[0]" random (.only Random)]] - [meta - [macro - ["^" pattern]]]] + [library + [lux (.except) + [abstract + ["[0]" monad (.only do)]] + [control + ["[0]" try]] + [data + ["[0]" product] + ["[0]" text + ["%" \\format (.only format)]] + [number + ["n" nat]] + [collection + ["[0]" list (.use "[1]#[0]" functor mix)] + ["[0]" dictionary (.only Dictionary)]]] + [math + ["[0]" random (.only Random)]] + [meta + [macro + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] [\\ ["[0]" / [//// diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux b/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux index fa6f6fade..d2c6a2a1f 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux @@ -6,7 +6,6 @@ [number ["n" nat]]] ["r" math/random (.only Random) (.use "[1]#[0]" monad)] - ["_" test (.only Test)] [control ["[0]" try] [parser @@ -19,7 +18,9 @@ [meta ["[0]" code] ["[0]" location] - ["[0]" symbol]]] + ["[0]" symbol]] + [test + ["_" property (.only Test)]]] [\\ ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis.lux index 4308c95bb..151567041 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)]] [control @@ -29,7 +28,9 @@ [language [lux [analysis (.only Environment)] - ["[0]" synthesis (.only Synthesis)]]]]]]] + ["[0]" synthesis (.only Synthesis)]]]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\parser] ["[0]" / ["[1][0]" simple] diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access.lux index 67022657e..535fdc025 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access.lux @@ -1,7 +1,8 @@ (.require [library [lux (.except) - ["_" test (.only Test)]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" side] ["[1][0]" member]]) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/member.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/member.lux index f9a892715..3008247b0 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/member.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/member.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -11,7 +10,9 @@ ["[0]" bit (.use "[1]#[0]" equivalence)] ["[0]" text (.use "[1]#[0]" equivalence)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/side.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/side.lux index 236f373e1..d3c09db3d 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/side.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/access/side.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -11,7 +10,9 @@ ["[0]" bit (.use "[1]#[0]" equivalence)] ["[0]" text (.use "[1]#[0]" equivalence)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/simple.lux b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/simple.lux index 67cf4f719..726436046 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/simple.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/synthesis/simple.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -13,7 +12,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive.lux b/stdlib/source/test/lux/meta/compiler/meta/archive.lux index 2ada929d2..8195a009a 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -18,7 +17,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["[1][0]" key] diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact.lux index 4801f7569..bfd6c978e 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [\\specification ["$[0]" equivalence]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" category]] [\\library diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/category.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/category.lux index 5eb23ba3e..d88627520 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/category.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/artifact/category.lux @@ -1,12 +1,13 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [\\specification ["$[0]" equivalence]]] [math - ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]]] + ["[0]" random (.only Random) (.use "[1]#[0]" monad)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/key.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/key.lux index fe3230d7c..f363e573b 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/key.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/key.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" // diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/module.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/module.lux index 33aed16e6..a8075cc24 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/module.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/module.lux @@ -1,13 +1,14 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["[0]" document] diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/module/descriptor.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/module/descriptor.lux index fd3103d21..1f711dfd7 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/module/descriptor.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/module/descriptor.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -14,7 +13,9 @@ ["[1]" \\format] ["<[1]>" \\parser]]] [math - ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]]] + ["[0]" random (.only Random) (.use "[1]#[0]" monad)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/module/document.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/module/document.lux index b1ab4c5ec..4bd52fa23 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/module/document.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/module/document.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -15,7 +14,9 @@ [math ["[0]" random] [number - ["[0]" nat]]]]] + ["[0]" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [/// diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux index ef21f8b7d..b7e4e73b3 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -20,7 +19,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/signature.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/signature.lux index 2d75deca0..a44e21510 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/signature.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/signature.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -15,7 +14,9 @@ ["[1]F" \\format] ["<[1]>" \\parser]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" //// diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/unit.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/unit.lux index 3bdef20a8..21e04fb85 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/archive/unit.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/archive/unit.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [\\specification ["$[0]" equivalence] @@ -10,7 +9,9 @@ [collection ["[0]" set]]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache.lux b/stdlib/source/test/lux/meta/compiler/meta/cache.lux index e52d9f4c2..fbff46fd2 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/cache.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/cache.lux @@ -11,8 +11,9 @@ ["[0]" random]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux b/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux index 09263a7d3..8779a86f0 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux @@ -17,8 +17,9 @@ ["n" nat]]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux b/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux index aff81fd7e..29a5f85b5 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux @@ -16,8 +16,9 @@ ["n" nat]]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux b/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux index bf12dcc3a..dbfb86c7f 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux @@ -12,8 +12,9 @@ ["[0]" random]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" /// diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux b/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux index cf0b520f2..25d61d664 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux @@ -23,8 +23,9 @@ ["n" nat]]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // diff --git a/stdlib/source/test/lux/meta/compiler/meta/cli.lux b/stdlib/source/test/lux/meta/compiler/meta/cli.lux index 156804e1a..b30db36b6 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/cli.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/cli.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -21,7 +20,9 @@ ["[0]" configuration (.use "[1]#[0]" equivalence) ["$[1]" \\test]]] ["[0]" program - ["<[1]>" \\parser]]]] + ["<[1]>" \\parser]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["[1][0]" compiler (.only Compiler)]]] diff --git a/stdlib/source/test/lux/meta/compiler/meta/cli/compiler.lux b/stdlib/source/test/lux/meta/compiler/meta/cli/compiler.lux index 66a7997d5..c1de82f58 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/cli/compiler.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/cli/compiler.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ ["n" nat]]] [meta ["[0]" symbol - ["$[1]" \\test]]]]] + ["$[1]" \\test]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/meta/context.lux b/stdlib/source/test/lux/meta/compiler/meta/context.lux index d6ecdceec..789fb1563 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/context.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/context.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/meta/export.lux b/stdlib/source/test/lux/meta/compiler/meta/export.lux index e1dd299b0..484a411b1 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/export.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/export.lux @@ -27,8 +27,9 @@ ["n" nat]]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/meta/compiler/meta/import.lux b/stdlib/source/test/lux/meta/compiler/meta/import.lux index 30ba445cd..f48053c98 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/import.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/import.lux @@ -30,8 +30,9 @@ ["n" nat]]] [world ["[0]" file]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/meta/compiler/phase.lux b/stdlib/source/test/lux/meta/compiler/phase.lux index 39ee0604b..b4ace0f20 100644 --- a/stdlib/source/test/lux/meta/compiler/phase.lux +++ b/stdlib/source/test/lux/meta/compiler/phase.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -18,7 +17,9 @@ ["[0]" random] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/meta/compiler/reference.lux b/stdlib/source/test/lux/meta/compiler/reference.lux index 6f247179c..9cbd38424 100644 --- a/stdlib/source/test/lux/meta/compiler/reference.lux +++ b/stdlib/source/test/lux/meta/compiler/reference.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -15,7 +14,9 @@ [number ["n" nat]]] [meta - ["[0]" symbol (.use "[1]#[0]" equivalence)]]]] + ["[0]" symbol (.use "[1]#[0]" equivalence)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["[0]" variable (.only Register)]]] diff --git a/stdlib/source/test/lux/meta/compiler/reference/variable.lux b/stdlib/source/test/lux/meta/compiler/reference/variable.lux index f2b219b86..6cb7c7c10 100644 --- a/stdlib/source/test/lux/meta/compiler/reference/variable.lux +++ b/stdlib/source/test/lux/meta/compiler/reference/variable.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -10,7 +9,9 @@ [data ["[0]" text (.use "[1]#[0]" equivalence)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/compiler/version.lux b/stdlib/source/test/lux/meta/compiler/version.lux index 24e40bd56..2129286ae 100644 --- a/stdlib/source/test/lux/meta/compiler/version.lux +++ b/stdlib/source/test/lux/meta/compiler/version.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -11,7 +10,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/configuration.lux b/stdlib/source/test/lux/meta/configuration.lux index ed0998646..e8ebe4980 100644 --- a/stdlib/source/test/lux/meta/configuration.lux +++ b/stdlib/source/test/lux/meta/configuration.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -23,7 +22,9 @@ ["<[1]>" \\parser]] [macro [syntax (.only syntax)] - ["[0]" expansion]]]]] + ["[0]" expansion]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/extension.lux b/stdlib/source/test/lux/meta/extension.lux index bfe11a0e0..66bf59e0e 100644 --- a/stdlib/source/test/lux/meta/extension.lux +++ b/stdlib/source/test/lux/meta/extension.lux @@ -1,7 +1,6 @@ (.`` (.`` (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" debug] [abstract ["[0]" monad (.only do)]] @@ -58,7 +57,9 @@ [generation (.,, (.for "JVM" (.,, (.these ["[0]" jvm ["[1]/[0]" runtime]])) - (.,, (.these))))]]]]]]]] + (.,, (.these))))]]]]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only analysis synthesis generation declaration)]]))) diff --git a/stdlib/source/test/lux/meta/location.lux b/stdlib/source/test/lux/meta/location.lux index d87af185b..46b7138b9 100644 --- a/stdlib/source/test/lux/meta/location.lux +++ b/stdlib/source/test/lux/meta/location.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -9,7 +8,9 @@ [data ["[0]" text]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" // diff --git a/stdlib/source/test/lux/meta/macro.lux b/stdlib/source/test/lux/meta/macro.lux index 59dbf995f..792ed49eb 100644 --- a/stdlib/source/test/lux/meta/macro.lux +++ b/stdlib/source/test/lux/meta/macro.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -21,7 +20,9 @@ ["[0]" location] ["[0]" symbol] ["[0]" code (.use "[1]#[0]" equivalence) - ["<[1]>" \\parser]]]]] + ["<[1]>" \\parser]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["^" pattern] diff --git a/stdlib/source/test/lux/meta/macro/context.lux b/stdlib/source/test/lux/meta/macro/context.lux index 865d6abe8..18fdd1d9e 100644 --- a/stdlib/source/test/lux/meta/macro/context.lux +++ b/stdlib/source/test/lux/meta/macro/context.lux @@ -1,7 +1,8 @@ (.require [library [lux (.except) - ["_" test (.only Test)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/macro/local.lux b/stdlib/source/test/lux/meta/macro/local.lux index 19398b395..eb58f416b 100644 --- a/stdlib/source/test/lux/meta/macro/local.lux +++ b/stdlib/source/test/lux/meta/macro/local.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except with) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -23,7 +22,9 @@ ["<[1]>" \\parser]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" expansion]]]]] + ["[0]" expansion]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/macro/pattern.lux b/stdlib/source/test/lux/meta/macro/pattern.lux index 6d5e3c559..0b443cfd6 100644 --- a/stdlib/source/test/lux/meta/macro/pattern.lux +++ b/stdlib/source/test/lux/meta/macro/pattern.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -13,7 +12,9 @@ ["i" int] ["f" frac]]] [meta - ["[0]" code]]]] + ["[0]" code]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/macro/syntax.lux b/stdlib/source/test/lux/meta/macro/syntax.lux index 5c6b392f1..c9281691a 100644 --- a/stdlib/source/test/lux/meta/macro/syntax.lux +++ b/stdlib/source/test/lux/meta/macro/syntax.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math @@ -10,7 +9,9 @@ ["n" nat]]] [meta ["[0]" code - ["<[1]>" \\parser]]]]] + ["<[1]>" \\parser]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/test/lux/meta/macro/syntax/check.lux b/stdlib/source/test/lux/meta/macro/syntax/check.lux index 1820536b8..72a8753f1 100644 --- a/stdlib/source/test/lux/meta/macro/syntax/check.lux +++ b/stdlib/source/test/lux/meta/macro/syntax/check.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -13,7 +12,9 @@ ["[0]" random (.only Random)]] [meta ["[0]" code (.use "[1]#[0]" equivalence) - ["<[1]>" \\parser]]]]] + ["<[1]>" \\parser]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" //// diff --git a/stdlib/source/test/lux/meta/macro/syntax/declaration.lux b/stdlib/source/test/lux/meta/macro/syntax/declaration.lux index d81a44ac3..9a06513ed 100644 --- a/stdlib/source/test/lux/meta/macro/syntax/declaration.lux +++ b/stdlib/source/test/lux/meta/macro/syntax/declaration.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -11,7 +10,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [//// diff --git a/stdlib/source/test/lux/meta/macro/syntax/definition.lux b/stdlib/source/test/lux/meta/macro/syntax/definition.lux index 878cc8ee9..28aa3653d 100644 --- a/stdlib/source/test/lux/meta/macro/syntax/definition.lux +++ b/stdlib/source/test/lux/meta/macro/syntax/definition.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -15,7 +14,9 @@ [meta ["[0]" location] ["[0]" code (.use "[1]#[0]" equivalence) - ["<[1]>" \\parser]]]]] + ["<[1]>" \\parser]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]"// diff --git a/stdlib/source/test/lux/meta/macro/syntax/export.lux b/stdlib/source/test/lux/meta/macro/syntax/export.lux index bace31485..b8109c5b6 100644 --- a/stdlib/source/test/lux/meta/macro/syntax/export.lux +++ b/stdlib/source/test/lux/meta/macro/syntax/export.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -13,7 +12,9 @@ ["n" nat]]] [meta ["[0]" code (.use "[1]#[0]" equivalence) - ["<[1]>" \\parser]]]]] + ["<[1]>" \\parser]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/macro/syntax/input.lux b/stdlib/source/test/lux/meta/macro/syntax/input.lux index 49ae69f1c..fffc345da 100644 --- a/stdlib/source/test/lux/meta/macro/syntax/input.lux +++ b/stdlib/source/test/lux/meta/macro/syntax/input.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ ["n" nat]]] [meta ["[0]" code - ["<[1]>" \\parser]]]]] + ["<[1]>" \\parser]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["$[0]" //// diff --git a/stdlib/source/test/lux/meta/macro/syntax/type/variable.lux b/stdlib/source/test/lux/meta/macro/syntax/type/variable.lux index c0c2c146d..e7abf1416 100644 --- a/stdlib/source/test/lux/meta/macro/syntax/type/variable.lux +++ b/stdlib/source/test/lux/meta/macro/syntax/type/variable.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -9,7 +8,9 @@ [control ["[0]" try (.use "[1]#[0]" functor)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [///// diff --git a/stdlib/source/test/lux/meta/macro/template.lux b/stdlib/source/test/lux/meta/macro/template.lux index c239d6821..c9edbd035 100644 --- a/stdlib/source/test/lux/meta/macro/template.lux +++ b/stdlib/source/test/lux/meta/macro/template.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -19,7 +18,9 @@ ["<[1]>" \\parser]] [macro [syntax (.only syntax)] - ["[0]" expansion]]]]] + ["[0]" expansion]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/static.lux b/stdlib/source/test/lux/meta/static.lux index 0a0d784a9..e030d74ac 100644 --- a/stdlib/source/test/lux/meta/static.lux +++ b/stdlib/source/test/lux/meta/static.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [data ["[0]" text (.use "[1]#[0]" equivalence) ["%" \\format (.only format)]] @@ -16,7 +15,9 @@ ["f" frac]]] ["[0]" meta (.only) ["@" target] - ["[0]" code]]]] + ["[0]" code]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/symbol.lux b/stdlib/source/test/lux/meta/symbol.lux index 1c54441cc..fef843ede 100644 --- a/stdlib/source/test/lux/meta/symbol.lux +++ b/stdlib/source/test/lux/meta/symbol.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ ["n" nat]]] [meta [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/target.lux b/stdlib/source/test/lux/meta/target.lux index f0010eb83..322f270e9 100644 --- a/stdlib/source/test/lux/meta/target.lux +++ b/stdlib/source/test/lux/meta/target.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except all) - ["_" test (.only Test)] [data ["[0]" text] [collection @@ -9,7 +8,9 @@ ["[0]" set (.only Set)]]] [math [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/target/js.lux b/stdlib/source/test/lux/meta/target/js.lux index 94fc0c470..759e0af3c 100644 --- a/stdlib/source/test/lux/meta/target/js.lux +++ b/stdlib/source/test/lux/meta/target/js.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -26,7 +25,9 @@ [meta ["[0]" static] [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/target/jvm.lux b/stdlib/source/test/lux/meta/target/jvm.lux index b3758f810..0e0da91da 100644 --- a/stdlib/source/test/lux/meta/target/jvm.lux +++ b/stdlib/source/test/lux/meta/target/jvm.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except Type Primitive Label int) - ["_" test (.only Test)] ["[0]" ffi (.only import)] [abstract ["[0]" monad (.only do)]] @@ -33,7 +32,9 @@ ["[0]" i32 (.only I32)] ["[0]" i64]]] [meta - ["@" target]]]] + ["@" target]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / ["[1][0]" loader (.only Library)] diff --git a/stdlib/source/test/lux/meta/target/lua.lux b/stdlib/source/test/lux/meta/target/lua.lux index ad8ef35d6..9b2cd6642 100644 --- a/stdlib/source/test/lux/meta/target/lua.lux +++ b/stdlib/source/test/lux/meta/target/lua.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" ffi] [abstract [monad (.only do)] @@ -29,7 +28,9 @@ [meta ["[0]" static] [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/target/python.lux b/stdlib/source/test/lux/meta/target/python.lux index 4181f5f2e..fdc5ef219 100644 --- a/stdlib/source/test/lux/meta/target/python.lux +++ b/stdlib/source/test/lux/meta/target/python.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" ffi] [abstract [monad (.only do)] @@ -28,7 +27,9 @@ ["[0]" i64]]] [meta ["[0]" static] - ["[0]" code]]]] + ["[0]" code]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.use "[1]#[0]" equivalence)]]) diff --git a/stdlib/source/test/lux/meta/target/ruby.lux b/stdlib/source/test/lux/meta/target/ruby.lux index 627303a41..37395eeb2 100644 --- a/stdlib/source/test/lux/meta/target/ruby.lux +++ b/stdlib/source/test/lux/meta/target/ruby.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] ["[0]" ffi] ["[0]" debug] [abstract @@ -33,7 +32,9 @@ ["[0]" packager ["[1]" ruby]]]]] [world - ["[0]" file]]]] + ["[0]" file]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.use "[1]#[0]" equivalence)]]) diff --git a/stdlib/source/test/lux/meta/type.lux b/stdlib/source/test/lux/meta/type.lux index 79432b2bc..226533dd1 100644 --- a/stdlib/source/test/lux/meta/type.lux +++ b/stdlib/source/test/lux/meta/type.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except symbol) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)] [\\specification @@ -27,7 +26,9 @@ ["[0]" symbol (.use "[1]#[0]" equivalence)] ["[0]" code (.use "[1]#[0]" equivalence)] [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\parser] [\\library ["[0]" / (.use "[1]#[0]" equivalence)]] diff --git a/stdlib/source/test/lux/meta/type/check.lux b/stdlib/source/test/lux/meta/type/check.lux index e1974368d..f6874ae5f 100644 --- a/stdlib/source/test/lux/meta/type/check.lux +++ b/stdlib/source/test/lux/meta/type/check.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except symbol type) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)] [\\specification @@ -27,7 +26,9 @@ ["n" nat]]] [meta [macro - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.use "[1]#[0]" equivalence)]]]) diff --git a/stdlib/source/test/lux/meta/type/dynamic.lux b/stdlib/source/test/lux/meta/type/dynamic.lux index 595a1da05..78382883f 100644 --- a/stdlib/source/test/lux/meta/type/dynamic.lux +++ b/stdlib/source/test/lux/meta/type/dynamic.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -13,7 +12,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/type/implicit.lux b/stdlib/source/test/lux/meta/type/implicit.lux index 299ae7464..66daa4a32 100644 --- a/stdlib/source/test/lux/meta/type/implicit.lux +++ b/stdlib/source/test/lux/meta/type/implicit.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [equivalence (.only)] [functor (.only)] @@ -15,7 +14,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/type/primitive.lux b/stdlib/source/test/lux/meta/type/primitive.lux index 899c0d75b..d87a17059 100644 --- a/stdlib/source/test/lux/meta/type/primitive.lux +++ b/stdlib/source/test/lux/meta/type/primitive.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -18,7 +17,9 @@ ["<[1]>" \\parser]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/type/quotient.lux b/stdlib/source/test/lux/meta/type/quotient.lux index 72d39b19d..aac5e212e 100644 --- a/stdlib/source/test/lux/meta/type/quotient.lux +++ b/stdlib/source/test/lux/meta/type/quotient.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract ["[0]" monad (.only do)] [\\specification @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat (.use "[1]#[0]" equivalence)]]]]] + ["n" nat (.use "[1]#[0]" equivalence)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/type/refinement.lux b/stdlib/source/test/lux/meta/type/refinement.lux index 711d0401f..845c878fd 100644 --- a/stdlib/source/test/lux/meta/type/refinement.lux +++ b/stdlib/source/test/lux/meta/type/refinement.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -14,7 +13,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/meta/type/resource.lux b/stdlib/source/test/lux/meta/type/resource.lux index 0935d0c2e..25c44d81a 100644 --- a/stdlib/source/test/lux/meta/type/resource.lux +++ b/stdlib/source/test/lux/meta/type/resource.lux @@ -22,8 +22,9 @@ [macro [syntax (.only syntax)] ["[0]" expansion]]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only Res)]]) diff --git a/stdlib/source/test/lux/meta/type/unit.lux b/stdlib/source/test/lux/meta/type/unit.lux index 8be5095df..c31abd6b0 100644 --- a/stdlib/source/test/lux/meta/type/unit.lux +++ b/stdlib/source/test/lux/meta/type/unit.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [equivalence (.only Equivalence)] @@ -12,7 +11,9 @@ [math ["[0]" random (.only Random)] [number - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] ["[0]" / diff --git a/stdlib/source/test/lux/meta/type/unit/scale.lux b/stdlib/source/test/lux/meta/type/unit/scale.lux index 6a4a8c625..82ac4fb05 100644 --- a/stdlib/source/test/lux/meta/type/unit/scale.lux +++ b/stdlib/source/test/lux/meta/type/unit/scale.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [equivalence (.only Equivalence)]] @@ -13,7 +12,9 @@ ["[0]" meta (.only) ["[0]" code] [macro - [syntax (.only syntax)]]]]] + [syntax (.only syntax)]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]]) diff --git a/stdlib/source/test/lux/meta/type/variance.lux b/stdlib/source/test/lux/meta/type/variance.lux index 911c68067..494aa23f9 100644 --- a/stdlib/source/test/lux/meta/type/variance.lux +++ b/stdlib/source/test/lux/meta/type/variance.lux @@ -1,11 +1,12 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [math - ["[0]" random (.only Random)]]]] + ["[0]" random (.only Random)]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/meta/version.lux b/stdlib/source/test/lux/meta/version.lux index 6df9bf4e5..999e2f2e1 100644 --- a/stdlib/source/test/lux/meta/version.lux +++ b/stdlib/source/test/lux/meta/version.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -19,7 +18,9 @@ ["<[1]>" \\parser]] [macro [syntax (.only syntax)] - ["[0]" expansion]]]]] + ["[0]" expansion]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/program.lux b/stdlib/source/test/lux/program.lux index c2e473f46..62ab2204e 100644 --- a/stdlib/source/test/lux/program.lux +++ b/stdlib/source/test/lux/program.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -21,7 +20,9 @@ ["<[1]>" \\parser]] [macro [syntax (.only syntax)] - ["^" pattern]]]]] + ["^" pattern]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\parser] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/test.lux b/stdlib/source/test/lux/test.lux deleted file mode 100644 index 6d2939185..000000000 --- a/stdlib/source/test/lux/test.lux +++ /dev/null @@ -1,307 +0,0 @@ -(.require - [library - [lux (.except) - [abstract - [monad (.only do)]] - [control - ["[0]" io] - ["[0]" exception] - [concurrency - ["[0]" async] - ["[0]" atom (.only Atom)]]] - [data - ["[0]" text (.use "[1]#[0]" equivalence) - ["%" \\format]] - [collection - ["[0]" list] - ["[0]" set]]] - [math - ["[0]" random] - [number - ["n" nat]]]]] - [\\library - ["[0]" / (.only) - ["[0]" unit] - ["[0]" tally (.only Tally)]]]) - -(def (verify expected_message/0 expected_message/1 successes failures [tally message]) - (-> Text Text Nat Nat [Tally Text] Bit) - (and (text.contains? expected_message/0 message) - (text.contains? expected_message/1 message) - (n.= successes (the tally.#successes tally)) - (n.= failures (the tally.#failures tally)))) - -(def unit_test - /.Test - (do [! random.monad] - [expected_message/0 (random.lower_case 5) - expected_message/1 (random.only (|>> (text#= expected_message/0) not) - (random.lower_case 5))] - (all /.and - (in (do async.monad - [[success_tally success_message] (unit.test expected_message/0 true) - [failure_tally failure_message] (unit.test expected_message/0 false)] - (unit.coverage [unit.test tally.Tally] - (and (text.ends_with? expected_message/0 success_message) - (text.ends_with? expected_message/0 failure_message) - (and (n.= 1 (the tally.#successes success_tally)) - (n.= 0 (the tally.#failures success_tally))) - (and (n.= 0 (the tally.#successes failure_tally)) - (n.= 1 (the tally.#failures failure_tally))))))) - (in (do async.monad - [tt (unit.and (unit.test expected_message/0 true) - (unit.test expected_message/1 true)) - ff (unit.and (unit.test expected_message/0 false) - (unit.test expected_message/1 false)) - tf (unit.and (unit.test expected_message/0 true) - (unit.test expected_message/1 false)) - ft (unit.and (unit.test expected_message/0 false) - (unit.test expected_message/1 true))] - (unit.coverage [unit.and] - (and (..verify expected_message/0 expected_message/1 2 0 tt) - (..verify expected_message/0 expected_message/1 0 2 ff) - (..verify expected_message/0 expected_message/1 1 1 tf) - (..verify expected_message/0 expected_message/1 1 1 ft))))) - ))) - -(def seed - /.Test - (do [! random.monad] - [seed random.nat - .let [[read write] (is [(async.Async Nat) (async.Resolver Nat)] - (async.async []))] - pre (<| (/.seed seed) - (do ! - [sample random.nat - .let [wrote? (io.run! (write sample))]] - (/.test "" wrote?))) - post (<| (/.seed seed) - (do ! - [actual random.nat] - (in (do async.monad - [expected read] - (unit.test "" (n.= expected actual))))))] - (in (do async.monad - [[pre_tally pre_message] pre - [post_tally post_message] post] - (unit.coverage [/.seed] - (and (and (n.= 1 (the tally.#successes pre_tally)) - (n.= 0 (the tally.#failures pre_tally))) - (and (n.= 1 (the tally.#successes post_tally)) - (n.= 0 (the tally.#failures post_tally))))))))) - -(def times - /.Test - (all /.and - (do [! random.monad] - [times_unit_test (/.times 0 (/.test "" true))] - (in (do async.monad - [[tally error] times_unit_test] - (unit.coverage [/.must_try_test_at_least_once] - (and (text.contains? (the exception.#label /.must_try_test_at_least_once) error) - (n.= 0 (the tally.#successes tally)) - (n.= 1 (the tally.#failures tally))))))) - (do [! random.monad] - [expected (at ! each (|>> (n.% 10) ++) random.nat) - .let [counter (is (Atom Nat) - (atom.atom 0))] - times_unit_test (<| (/.times expected) - (do ! - [_ (in []) - .let [_ (io.run! (atom.update! ++ counter))]] - (/.test "" true)))] - (in (do async.monad - [[tally error] times_unit_test - actual (async.future (atom.read! counter))] - (unit.coverage [/.times] - (and (n.= expected actual) - (n.= 1 (the tally.#successes tally)) - (n.= 0 (the tally.#failures tally))))))) - )) - -(def in_parallel - /.Test - (all /.and - (do [! random.monad] - [expected (at ! each (|>> (n.% 10) ++) random.nat) - .let [counter (is (Atom Nat) - (atom.atom 0))] - unit_test (<| /.in_parallel - (list.repeated expected) - (is /.Test) - (do ! - [_ (in []) - .let [_ (io.run! (atom.update! ++ counter))]] - (/.test "" true)))] - (in (do async.monad - [[tally error] unit_test - actual (async.future (atom.read! counter))] - (unit.coverage [/.in_parallel] - (and (n.= expected actual) - (n.= expected (the tally.#successes tally)) - (n.= 0 (the tally.#failures tally))))))) - (do [! random.monad] - [expected (at ! each (|>> (n.% 10) ++) random.nat) - .let [counter (is (Atom Nat) - (atom.atom 0))] - unit_test (<| /.in_parallel - (list.repeated expected) - (is /.Test) - (do ! - [_ (in []) - .let [_ (undefined) - _ (io.run! (atom.update! ++ counter))]] - (/.test "" true)))] - (in (do async.monad - [[tally error] unit_test - actual (async.future (atom.read! counter))] - (unit.coverage [/.error_during_execution] - (let [correct_error! (text.contains? (the exception.#label /.error_during_execution) error) - no_complete_run! (n.= 0 actual) - no_successes! (n.= 0 (the tally.#successes tally)) - ran_all_tests! (n.= expected (the tally.#failures tally))] - (and correct_error! - no_complete_run! - no_successes! - ran_all_tests!)))))) - )) - -(def .public dummy_target - "YOLO") - -(def coverage - /.Test - (all /.and - (do random.monad - [not_covering (/.test "" true) - covering (/.covering .._ (/.test "" true))] - (in (do async.monad - [[not_covering _] not_covering - [covering _] covering] - (unit.coverage [/.covering] - (and (and (set.empty? (the tally.#expected not_covering)) - (set.empty? (the tally.#actual not_covering))) - (and (not (set.empty? (the tally.#expected covering))) - (set.empty? (the tally.#actual covering)))))))) - (do random.monad - [not_covering (/.covering .._ (/.test "" true)) - covering (/.covering .._ (/.coverage [..dummy_target] true))] - (in (do async.monad - [[not_covering _] not_covering - [covering _] covering] - (unit.coverage [/.coverage] - (and (and (not (set.empty? (the tally.#expected not_covering))) - (not (set.member? (the tally.#actual not_covering) (symbol ..dummy_target)))) - (and (not (set.empty? (the tally.#expected covering))) - (set.member? (the tally.#actual covering) (symbol ..dummy_target)))))))) - (do random.monad - [not_covering (/.covering .._ (/.test "" true)) - covering (/.covering .._ (in (unit.coverage [..dummy_target] true)))] - (in (do async.monad - [[not_covering _] not_covering - [covering _] covering] - (unit.coverage [unit.coverage] - (and (and (not (set.empty? (the tally.#expected not_covering))) - (not (set.member? (the tally.#actual not_covering) (symbol ..dummy_target)))) - (and (not (set.empty? (the tally.#expected covering))) - (set.member? (the tally.#actual covering) (symbol ..dummy_target)))))))) - (do random.monad - [not_covering (/.covering .._ (/.test "" true)) - covering (/.covering .._ (/.for [..dummy_target] (/.test "" true)))] - (in (do async.monad - [[not_covering _] not_covering - [covering _] covering] - (unit.coverage [/.for] - (and (and (not (set.empty? (the tally.#expected not_covering))) - (not (set.member? (the tally.#actual not_covering) (symbol ..dummy_target)))) - (and (not (set.empty? (the tally.#expected covering))) - (set.member? (the tally.#actual covering) (symbol ..dummy_target)))))))) - )) - -(def .public test - /.Test - (<| (/.covering /._) - (/.for [/.Test]) - (do [! random.monad] - [expected_context (random.lower_case 5) - expected_message/0 (random.only (|>> (text#= expected_context) not) - (random.lower_case 5)) - expected_message/1 (random.only (|>> (text#= expected_message/0) not) - (random.lower_case 5))] - (all /.and - (/.for [unit.Test] - ..unit_test) - (/.for [/.Seed] - seed) - (do ! - [success_unit_test (/.test expected_message/0 true) - failure_unit_test (/.test expected_message/0 false)] - (in (do async.monad - [[success_tally success_message] success_unit_test - [failure_tally failure_message] failure_unit_test] - (unit.coverage [/.test] - (and (text.ends_with? (%.text expected_message/0) success_message) - (text.ends_with? (%.text expected_message/0) failure_message) - (and (n.= 1 (the tally.#successes success_tally)) - (n.= 0 (the tally.#failures success_tally))) - (and (n.= 0 (the tally.#successes failure_tally)) - (n.= 1 (the tally.#failures failure_tally)))))))) - (do ! - [tt (/.and (/.test expected_message/0 true) - (/.test expected_message/1 true)) - ff (/.and (/.test expected_message/0 false) - (/.test expected_message/1 false)) - tf (/.and (/.test expected_message/0 true) - (/.test expected_message/1 false)) - ft (/.and (/.test expected_message/0 false) - (/.test expected_message/1 true))] - (in (do async.monad - [tt tt - ff ff - tf tf - ft ft] - (unit.coverage [/.and] - (and (..verify expected_message/0 expected_message/1 2 0 tt) - (..verify expected_message/0 expected_message/1 0 2 ff) - (..verify expected_message/0 expected_message/1 1 1 tf) - (..verify expected_message/0 expected_message/1 1 1 ft)))))) - (do ! - [success_unit_test (/.context expected_context (/.test expected_message/0 true)) - failure_unit_test (/.context expected_context (/.test expected_message/0 false))] - (in (do async.monad - [[success_tally success_message] success_unit_test - [failure_tally failure_message] failure_unit_test] - (unit.coverage [/.context] - (and (and (text.contains? expected_context success_message) - (text.contains? expected_message/0 success_message)) - (and (text.contains? expected_context failure_message) - (text.contains? expected_message/0 failure_message)) - (and (n.= 1 (the tally.#successes success_tally)) - (n.= 0 (the tally.#failures success_tally))) - (and (n.= 0 (the tally.#successes failure_tally)) - (n.= 1 (the tally.#failures failure_tally)))))))) - (do ! - [failure_unit_test (/.failure expected_message/0)] - (in (do async.monad - [[failure_tally failure_message] failure_unit_test] - (unit.coverage [/.failure] - (and (text.contains? expected_message/0 failure_message) - (and (n.= 0 (the tally.#successes failure_tally)) - (n.= 1 (the tally.#failures failure_tally)))))))) - (do ! - [success_unit_test (/.lifted expected_message/0 (in true)) - failure_unit_test (/.lifted expected_message/0 (in false))] - (in (do async.monad - [[success_tally success_message] success_unit_test - [failure_tally failure_message] failure_unit_test] - (unit.coverage [/.lifted] - (and (text.contains? expected_message/0 success_message) - (text.contains? expected_message/0 failure_message) - (and (n.= 1 (the tally.#successes success_tally)) - (n.= 0 (the tally.#failures success_tally))) - (and (n.= 0 (the tally.#successes failure_tally)) - (n.= 1 (the tally.#failures failure_tally)))))))) - ..times - ..in_parallel - ..coverage - )))) diff --git a/stdlib/source/test/lux/test/property.lux b/stdlib/source/test/lux/test/property.lux new file mode 100644 index 000000000..87b5aee56 --- /dev/null +++ b/stdlib/source/test/lux/test/property.lux @@ -0,0 +1,308 @@ +(.require + [library + [lux (.except) + [abstract + [monad (.only do)]] + [control + ["[0]" io] + ["[0]" exception] + [concurrency + ["[0]" async] + ["[0]" atom (.only Atom)]]] + [data + ["[0]" text (.use "[1]#[0]" equivalence) + ["%" \\format]] + [collection + ["[0]" list] + ["[0]" set]]] + [math + ["[0]" random] + [number + ["n" nat]]]]] + [\\library + ["[0]" / (.only) + [// + ["[0]" unit] + ["[0]" tally (.only Tally)]]]]) + +(def (verify expected_message/0 expected_message/1 successes failures [tally message]) + (-> Text Text Nat Nat [Tally Text] Bit) + (and (text.contains? expected_message/0 message) + (text.contains? expected_message/1 message) + (n.= successes (the tally.#successes tally)) + (n.= failures (the tally.#failures tally)))) + +(def unit_test + /.Test + (do [! random.monad] + [expected_message/0 (random.lower_case 5) + expected_message/1 (random.only (|>> (text#= expected_message/0) not) + (random.lower_case 5))] + (all /.and + (in (do async.monad + [[success_tally success_message] (unit.test expected_message/0 true) + [failure_tally failure_message] (unit.test expected_message/0 false)] + (unit.coverage [unit.test tally.Tally] + (and (text.ends_with? expected_message/0 success_message) + (text.ends_with? expected_message/0 failure_message) + (and (n.= 1 (the tally.#successes success_tally)) + (n.= 0 (the tally.#failures success_tally))) + (and (n.= 0 (the tally.#successes failure_tally)) + (n.= 1 (the tally.#failures failure_tally))))))) + (in (do async.monad + [tt (unit.and (unit.test expected_message/0 true) + (unit.test expected_message/1 true)) + ff (unit.and (unit.test expected_message/0 false) + (unit.test expected_message/1 false)) + tf (unit.and (unit.test expected_message/0 true) + (unit.test expected_message/1 false)) + ft (unit.and (unit.test expected_message/0 false) + (unit.test expected_message/1 true))] + (unit.coverage [unit.and] + (and (..verify expected_message/0 expected_message/1 2 0 tt) + (..verify expected_message/0 expected_message/1 0 2 ff) + (..verify expected_message/0 expected_message/1 1 1 tf) + (..verify expected_message/0 expected_message/1 1 1 ft))))) + ))) + +(def seed + /.Test + (do [! random.monad] + [seed random.nat + .let [[read write] (is [(async.Async Nat) (async.Resolver Nat)] + (async.async []))] + pre (<| (/.seed seed) + (do ! + [sample random.nat + .let [wrote? (io.run! (write sample))]] + (/.test "" wrote?))) + post (<| (/.seed seed) + (do ! + [actual random.nat] + (in (do async.monad + [expected read] + (unit.test "" (n.= expected actual))))))] + (in (do async.monad + [[pre_tally pre_message] pre + [post_tally post_message] post] + (unit.coverage [/.seed] + (and (and (n.= 1 (the tally.#successes pre_tally)) + (n.= 0 (the tally.#failures pre_tally))) + (and (n.= 1 (the tally.#successes post_tally)) + (n.= 0 (the tally.#failures post_tally))))))))) + +(def times + /.Test + (all /.and + (do [! random.monad] + [times_unit_test (/.times 0 (/.test "" true))] + (in (do async.monad + [[tally error] times_unit_test] + (unit.coverage [/.must_try_test_at_least_once] + (and (text.contains? (the exception.#label /.must_try_test_at_least_once) error) + (n.= 0 (the tally.#successes tally)) + (n.= 1 (the tally.#failures tally))))))) + (do [! random.monad] + [expected (at ! each (|>> (n.% 10) ++) random.nat) + .let [counter (is (Atom Nat) + (atom.atom 0))] + times_unit_test (<| (/.times expected) + (do ! + [_ (in []) + .let [_ (io.run! (atom.update! ++ counter))]] + (/.test "" true)))] + (in (do async.monad + [[tally error] times_unit_test + actual (async.future (atom.read! counter))] + (unit.coverage [/.times] + (and (n.= expected actual) + (n.= 1 (the tally.#successes tally)) + (n.= 0 (the tally.#failures tally))))))) + )) + +(def in_parallel + /.Test + (all /.and + (do [! random.monad] + [expected (at ! each (|>> (n.% 10) ++) random.nat) + .let [counter (is (Atom Nat) + (atom.atom 0))] + unit_test (<| /.in_parallel + (list.repeated expected) + (is /.Test) + (do ! + [_ (in []) + .let [_ (io.run! (atom.update! ++ counter))]] + (/.test "" true)))] + (in (do async.monad + [[tally error] unit_test + actual (async.future (atom.read! counter))] + (unit.coverage [/.in_parallel] + (and (n.= expected actual) + (n.= expected (the tally.#successes tally)) + (n.= 0 (the tally.#failures tally))))))) + (do [! random.monad] + [expected (at ! each (|>> (n.% 10) ++) random.nat) + .let [counter (is (Atom Nat) + (atom.atom 0))] + unit_test (<| /.in_parallel + (list.repeated expected) + (is /.Test) + (do ! + [_ (in []) + .let [_ (undefined) + _ (io.run! (atom.update! ++ counter))]] + (/.test "" true)))] + (in (do async.monad + [[tally error] unit_test + actual (async.future (atom.read! counter))] + (unit.coverage [/.error_during_execution] + (let [correct_error! (text.contains? (the exception.#label /.error_during_execution) error) + no_complete_run! (n.= 0 actual) + no_successes! (n.= 0 (the tally.#successes tally)) + ran_all_tests! (n.= expected (the tally.#failures tally))] + (and correct_error! + no_complete_run! + no_successes! + ran_all_tests!)))))) + )) + +(def .public dummy_target + "YOLO") + +(def coverage + /.Test + (all /.and + (do random.monad + [not_covering (/.test "" true) + covering (/.covering .._ (/.test "" true))] + (in (do async.monad + [[not_covering _] not_covering + [covering _] covering] + (unit.coverage [/.covering] + (and (and (set.empty? (the tally.#expected not_covering)) + (set.empty? (the tally.#actual not_covering))) + (and (not (set.empty? (the tally.#expected covering))) + (set.empty? (the tally.#actual covering)))))))) + (do random.monad + [not_covering (/.covering .._ (/.test "" true)) + covering (/.covering .._ (/.coverage [..dummy_target] true))] + (in (do async.monad + [[not_covering _] not_covering + [covering _] covering] + (unit.coverage [/.coverage] + (and (and (not (set.empty? (the tally.#expected not_covering))) + (not (set.member? (the tally.#actual not_covering) (symbol ..dummy_target)))) + (and (not (set.empty? (the tally.#expected covering))) + (set.member? (the tally.#actual covering) (symbol ..dummy_target)))))))) + (do random.monad + [not_covering (/.covering .._ (/.test "" true)) + covering (/.covering .._ (in (unit.coverage [..dummy_target] true)))] + (in (do async.monad + [[not_covering _] not_covering + [covering _] covering] + (unit.coverage [unit.coverage] + (and (and (not (set.empty? (the tally.#expected not_covering))) + (not (set.member? (the tally.#actual not_covering) (symbol ..dummy_target)))) + (and (not (set.empty? (the tally.#expected covering))) + (set.member? (the tally.#actual covering) (symbol ..dummy_target)))))))) + (do random.monad + [not_covering (/.covering .._ (/.test "" true)) + covering (/.covering .._ (/.for [..dummy_target] (/.test "" true)))] + (in (do async.monad + [[not_covering _] not_covering + [covering _] covering] + (unit.coverage [/.for] + (and (and (not (set.empty? (the tally.#expected not_covering))) + (not (set.member? (the tally.#actual not_covering) (symbol ..dummy_target)))) + (and (not (set.empty? (the tally.#expected covering))) + (set.member? (the tally.#actual covering) (symbol ..dummy_target)))))))) + )) + +(def .public test + /.Test + (<| (/.covering /._) + (/.for [/.Test]) + (do [! random.monad] + [expected_context (random.lower_case 5) + expected_message/0 (random.only (|>> (text#= expected_context) not) + (random.lower_case 5)) + expected_message/1 (random.only (|>> (text#= expected_message/0) not) + (random.lower_case 5))] + (all /.and + (/.for [unit.Test] + ..unit_test) + (/.for [/.Seed] + seed) + (do ! + [success_unit_test (/.test expected_message/0 true) + failure_unit_test (/.test expected_message/0 false)] + (in (do async.monad + [[success_tally success_message] success_unit_test + [failure_tally failure_message] failure_unit_test] + (unit.coverage [/.test] + (and (text.ends_with? (%.text expected_message/0) success_message) + (text.ends_with? (%.text expected_message/0) failure_message) + (and (n.= 1 (the tally.#successes success_tally)) + (n.= 0 (the tally.#failures success_tally))) + (and (n.= 0 (the tally.#successes failure_tally)) + (n.= 1 (the tally.#failures failure_tally)))))))) + (do ! + [tt (/.and (/.test expected_message/0 true) + (/.test expected_message/1 true)) + ff (/.and (/.test expected_message/0 false) + (/.test expected_message/1 false)) + tf (/.and (/.test expected_message/0 true) + (/.test expected_message/1 false)) + ft (/.and (/.test expected_message/0 false) + (/.test expected_message/1 true))] + (in (do async.monad + [tt tt + ff ff + tf tf + ft ft] + (unit.coverage [/.and] + (and (..verify expected_message/0 expected_message/1 2 0 tt) + (..verify expected_message/0 expected_message/1 0 2 ff) + (..verify expected_message/0 expected_message/1 1 1 tf) + (..verify expected_message/0 expected_message/1 1 1 ft)))))) + (do ! + [success_unit_test (/.context expected_context (/.test expected_message/0 true)) + failure_unit_test (/.context expected_context (/.test expected_message/0 false))] + (in (do async.monad + [[success_tally success_message] success_unit_test + [failure_tally failure_message] failure_unit_test] + (unit.coverage [/.context] + (and (and (text.contains? expected_context success_message) + (text.contains? expected_message/0 success_message)) + (and (text.contains? expected_context failure_message) + (text.contains? expected_message/0 failure_message)) + (and (n.= 1 (the tally.#successes success_tally)) + (n.= 0 (the tally.#failures success_tally))) + (and (n.= 0 (the tally.#successes failure_tally)) + (n.= 1 (the tally.#failures failure_tally)))))))) + (do ! + [failure_unit_test (/.failure expected_message/0)] + (in (do async.monad + [[failure_tally failure_message] failure_unit_test] + (unit.coverage [/.failure] + (and (text.contains? expected_message/0 failure_message) + (and (n.= 0 (the tally.#successes failure_tally)) + (n.= 1 (the tally.#failures failure_tally)))))))) + (do ! + [success_unit_test (/.lifted expected_message/0 (in true)) + failure_unit_test (/.lifted expected_message/0 (in false))] + (in (do async.monad + [[success_tally success_message] success_unit_test + [failure_tally failure_message] failure_unit_test] + (unit.coverage [/.lifted] + (and (text.contains? expected_message/0 success_message) + (text.contains? expected_message/0 failure_message) + (and (n.= 1 (the tally.#successes success_tally)) + (n.= 0 (the tally.#failures success_tally))) + (and (n.= 0 (the tally.#successes failure_tally)) + (n.= 1 (the tally.#failures failure_tally)))))))) + ..times + ..in_parallel + ..coverage + )))) diff --git a/stdlib/source/test/lux/world.lux b/stdlib/source/test/lux/world.lux index 0f8c65711..0694d559c 100644 --- a/stdlib/source/test/lux/world.lux +++ b/stdlib/source/test/lux/world.lux @@ -1,7 +1,8 @@ (.require [library [lux (.except) - ["_" test (.only Test)]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" file] ["[1][0]" shell] diff --git a/stdlib/source/test/lux/world/console.lux b/stdlib/source/test/lux/world/console.lux index 9dd7975c7..1cac08a06 100644 --- a/stdlib/source/test/lux/world/console.lux +++ b/stdlib/source/test/lux/world/console.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -12,7 +11,9 @@ ["[0]" text (.use "[1]#[0]" equivalence) ["%" \\format (.only format)]]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]] [\\specification diff --git a/stdlib/source/test/lux/world/environment.lux b/stdlib/source/test/lux/world/environment.lux index ee9879d21..c2a9ac384 100644 --- a/stdlib/source/test/lux/world/environment.lux +++ b/stdlib/source/test/lux/world/environment.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -19,7 +18,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] ["[0]" \\parser (.only Environment)] [\\library ["[0]" / (.only) diff --git a/stdlib/source/test/lux/world/file.lux b/stdlib/source/test/lux/world/file.lux index ff12cb791..3eec4fa19 100644 --- a/stdlib/source/test/lux/world/file.lux +++ b/stdlib/source/test/lux/world/file.lux @@ -24,8 +24,9 @@ [world [time ["[0]" instant (.only Instant)]]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" watch]] [\\library diff --git a/stdlib/source/test/lux/world/file/watch.lux b/stdlib/source/test/lux/world/file/watch.lux index a56fce833..73f7755ca 100644 --- a/stdlib/source/test/lux/world/file/watch.lux +++ b/stdlib/source/test/lux/world/file/watch.lux @@ -18,8 +18,9 @@ ["[0]" list]]] [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]] diff --git a/stdlib/source/test/lux/world/input/keyboard.lux b/stdlib/source/test/lux/world/input/keyboard.lux index ef44188ba..408e3f92c 100644 --- a/stdlib/source/test/lux/world/input/keyboard.lux +++ b/stdlib/source/test/lux/world/input/keyboard.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -17,7 +16,9 @@ ["n" nat]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/world/locale.lux b/stdlib/source/test/lux/world/locale.lux index b7c99d34a..f4e8f7919 100644 --- a/stdlib/source/test/lux/world/locale.lux +++ b/stdlib/source/test/lux/world/locale.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -13,7 +12,9 @@ ["[0]" text (.use "[1]#[0]" equivalence) ["[0]" encoding (.only Encoding)]] [collection - ["[0]" list]]]]] + ["[0]" list]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" language] ["[1][0]" territory]] diff --git a/stdlib/source/test/lux/world/locale/language.lux b/stdlib/source/test/lux/world/locale/language.lux index edabb90d2..8e203a4d9 100644 --- a/stdlib/source/test/lux/world/locale/language.lux +++ b/stdlib/source/test/lux/world/locale/language.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [hash (.only Hash)] @@ -20,7 +19,9 @@ ["n" nat]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/world/locale/territory.lux b/stdlib/source/test/lux/world/locale/territory.lux index 969fe32a1..06ab0b2d5 100644 --- a/stdlib/source/test/lux/world/locale/territory.lux +++ b/stdlib/source/test/lux/world/locale/territory.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [hash (.only Hash)] @@ -20,7 +19,9 @@ ["n" nat]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/world/net/http/client.lux b/stdlib/source/test/lux/world/net/http/client.lux index fcba904f9..01bd03616 100644 --- a/stdlib/source/test/lux/world/net/http/client.lux +++ b/stdlib/source/test/lux/world/net/http/client.lux @@ -23,8 +23,9 @@ ["[0]" random (.only Random)] [number ["[0]" nat]]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) diff --git a/stdlib/source/test/lux/world/net/http/status.lux b/stdlib/source/test/lux/world/net/http/status.lux index 370c1e6bd..e155c44a0 100644 --- a/stdlib/source/test/lux/world/net/http/status.lux +++ b/stdlib/source/test/lux/world/net/http/status.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except all) - ["_" test (.only Test)] [data [collection ["[0]" list] @@ -11,7 +10,9 @@ ["n" nat]]] [meta [macro - ["[0]" template]]]]] + ["[0]" template]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" //]]]) diff --git a/stdlib/source/test/lux/world/output/video/resolution.lux b/stdlib/source/test/lux/world/output/video/resolution.lux index 1135566e6..80add1ed7 100644 --- a/stdlib/source/test/lux/world/output/video/resolution.lux +++ b/stdlib/source/test/lux/world/output/video/resolution.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -16,7 +15,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/world/shell.lux b/stdlib/source/test/lux/world/shell.lux index 0e3b16ce9..8b3da3a10 100644 --- a/stdlib/source/test/lux/world/shell.lux +++ b/stdlib/source/test/lux/world/shell.lux @@ -18,8 +18,9 @@ [number ["n" nat] ["i" int]]] - ["_" test (.only Test) - ["[0]" unit]]]] + [test + ["[0]" unit] + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/world/time.lux b/stdlib/source/test/lux/world/time.lux index 62c3ec43c..6e3bbff5b 100644 --- a/stdlib/source/test/lux/world/time.lux +++ b/stdlib/source/test/lux/world/time.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -20,7 +19,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] ["[0]" / ["[1][0]" date] ["[1][0]" day] diff --git a/stdlib/source/test/lux/world/time/date.lux b/stdlib/source/test/lux/world/time/date.lux index c97fd626e..e6887f9e0 100644 --- a/stdlib/source/test/lux/world/time/date.lux +++ b/stdlib/source/test/lux/world/time/date.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -20,7 +19,9 @@ ["[0]" random (.only Random)] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/world/time/day.lux b/stdlib/source/test/lux/world/time/day.lux index eecc8a0fb..f69727234 100644 --- a/stdlib/source/test/lux/world/time/day.lux +++ b/stdlib/source/test/lux/world/time/day.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -22,7 +21,9 @@ [math ["[0]" random (.only Random) (.use "[1]#[0]" monad)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/world/time/duration.lux b/stdlib/source/test/lux/world/time/duration.lux index e73108548..093f98f0d 100644 --- a/stdlib/source/test/lux/world/time/duration.lux +++ b/stdlib/source/test/lux/world/time/duration.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -16,7 +15,9 @@ ["[0]" random (.only Random)] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/world/time/instant.lux b/stdlib/source/test/lux/world/time/instant.lux index 56a4749ec..cebba07ff 100644 --- a/stdlib/source/test/lux/world/time/instant.lux +++ b/stdlib/source/test/lux/world/time/instant.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -17,7 +16,9 @@ [collection ["[0]" list (.use "[1]#[0]" mix)]]] [math - ["[0]" random]]]] + ["[0]" random]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/world/time/month.lux b/stdlib/source/test/lux/world/time/month.lux index c87a956cd..e7b5f09a2 100644 --- a/stdlib/source/test/lux/world/time/month.lux +++ b/stdlib/source/test/lux/world/time/month.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -22,7 +21,9 @@ [math ["[0]" random (.only Random)] [number - ["n" nat]]]]] + ["n" nat]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/world/time/year.lux b/stdlib/source/test/lux/world/time/year.lux index 0e0dee518..32c19dccf 100644 --- a/stdlib/source/test/lux/world/time/year.lux +++ b/stdlib/source/test/lux/world/time/year.lux @@ -1,7 +1,6 @@ (.require [library [lux (.except) - ["_" test (.only Test)] [abstract [monad (.only do)] [\\specification @@ -19,7 +18,9 @@ ["[0]" random (.only Random)] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [test + ["_" property (.only Test)]]]] [\\library ["[0]" / (.only) ["/[1]" // (.only) -- cgit v1.2.3