aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source')
-rw-r--r--stdlib/source/documentation/lux/data.lux4
-rw-r--r--stdlib/source/documentation/lux/data/binary.lux487
-rw-r--r--stdlib/source/documentation/lux/data/bit.lux35
-rw-r--r--stdlib/source/documentation/lux/data/collection.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/array.lux175
-rw-r--r--stdlib/source/documentation/lux/data/collection/bits.lux79
-rw-r--r--stdlib/source/documentation/lux/data/collection/dictionary.lux151
-rw-r--r--stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux87
-rw-r--r--stdlib/source/documentation/lux/data/collection/list.lux19
-rw-r--r--stdlib/source/documentation/lux/data/collection/list/property.lux71
-rw-r--r--stdlib/source/documentation/lux/data/collection/queue.lux82
-rw-r--r--stdlib/source/documentation/lux/data/collection/queue/priority.lux43
-rw-r--r--stdlib/source/documentation/lux/data/collection/sequence.lux101
-rw-r--r--stdlib/source/documentation/lux/data/collection/set.lux89
-rw-r--r--stdlib/source/documentation/lux/data/collection/set/multi.lux97
-rw-r--r--stdlib/source/documentation/lux/data/collection/set/ordered.lux87
-rw-r--r--stdlib/source/documentation/lux/data/collection/stack.lux45
-rw-r--r--stdlib/source/documentation/lux/data/collection/stream.lux103
-rw-r--r--stdlib/source/documentation/lux/data/collection/tree.lux141
-rw-r--r--stdlib/source/documentation/lux/data/collection/tree/finger.lux61
-rw-r--r--stdlib/source/documentation/lux/data/collection/tree/zipper.lux87
-rw-r--r--stdlib/source/documentation/lux/data/color.lux177
-rw-r--r--stdlib/source/documentation/lux/data/color/named.lux311
-rw-r--r--stdlib/source/documentation/lux/data/format.lux4
-rw-r--r--stdlib/source/documentation/lux/data/format/json.lux242
-rw-r--r--stdlib/source/documentation/lux/data/format/tar.lux135
-rw-r--r--stdlib/source/documentation/lux/data/format/xml.lux132
-rw-r--r--stdlib/source/documentation/lux/data/identity.lux25
-rw-r--r--stdlib/source/documentation/lux/data/product.lux55
-rw-r--r--stdlib/source/documentation/lux/data/sum.lux43
-rw-r--r--stdlib/source/documentation/lux/data/text.lux708
-rw-r--r--stdlib/source/documentation/lux/data/text/buffer.lux23
-rw-r--r--stdlib/source/documentation/lux/data/text/encoding.lux311
-rw-r--r--stdlib/source/documentation/lux/data/text/encoding/utf8.lux15
-rw-r--r--stdlib/source/documentation/lux/data/text/escape.lux45
-rw-r--r--stdlib/source/documentation/lux/data/text/regex.lux125
-rw-r--r--stdlib/source/documentation/lux/data/text/unicode.lux4
-rw-r--r--stdlib/source/documentation/lux/data/text/unicode/block.lux269
-rw-r--r--stdlib/source/documentation/lux/data/text/unicode/set.lux51
-rw-r--r--stdlib/source/library/lux/test.lux272
-rw-r--r--stdlib/source/library/lux/test/unit.lux223
-rw-r--r--stdlib/source/specification/aedifex/repository.lux9
-rw-r--r--stdlib/source/specification/compositor/analysis/type.lux4
-rw-r--r--stdlib/source/specification/compositor/generation/case.lux14
-rw-r--r--stdlib/source/specification/compositor/generation/common.lux34
-rw-r--r--stdlib/source/specification/compositor/generation/function.lux6
-rw-r--r--stdlib/source/specification/compositor/generation/primitive.lux2
-rw-r--r--stdlib/source/specification/compositor/generation/reference.lux4
-rw-r--r--stdlib/source/specification/compositor/generation/structure.lux4
-rw-r--r--stdlib/source/specification/lux/abstract/apply.lux8
-rw-r--r--stdlib/source/specification/lux/abstract/codec.lux2
-rw-r--r--stdlib/source/specification/lux/abstract/comonad.lux6
-rw-r--r--stdlib/source/specification/lux/abstract/enum.lux2
-rw-r--r--stdlib/source/specification/lux/abstract/equivalence.lux4
-rw-r--r--stdlib/source/specification/lux/abstract/functor.lux24
-rw-r--r--stdlib/source/specification/lux/abstract/functor/contravariant.lux2
-rw-r--r--stdlib/source/specification/lux/abstract/interval.lux4
-rw-r--r--stdlib/source/specification/lux/abstract/monad.lux6
-rw-r--r--stdlib/source/specification/lux/abstract/monoid.lux6
-rw-r--r--stdlib/source/specification/lux/abstract/order.lux4
-rw-r--r--stdlib/source/specification/lux/world/console.lux7
-rw-r--r--stdlib/source/specification/lux/world/environment.lux7
-rw-r--r--stdlib/source/specification/lux/world/file.lux29
-rw-r--r--stdlib/source/specification/lux/world/shell.lux15
-rw-r--r--stdlib/source/test/aedifex/cache.lux9
-rw-r--r--stdlib/source/test/aedifex/cli.lux4
-rw-r--r--stdlib/source/test/aedifex/command/auto.lux7
-rw-r--r--stdlib/source/test/aedifex/command/build.lux31
-rw-r--r--stdlib/source/test/aedifex/command/clean.lux7
-rw-r--r--stdlib/source/test/aedifex/command/deploy.lux7
-rw-r--r--stdlib/source/test/aedifex/command/deps.lux7
-rw-r--r--stdlib/source/test/aedifex/command/install.lux9
-rw-r--r--stdlib/source/test/aedifex/command/pom.lux9
-rw-r--r--stdlib/source/test/aedifex/command/test.lux11
-rw-r--r--stdlib/source/test/aedifex/command/version.lux7
-rw-r--r--stdlib/source/test/aedifex/dependency/deployment.lux9
-rw-r--r--stdlib/source/test/aedifex/dependency/resolution.lux15
-rw-r--r--stdlib/source/test/aedifex/input.lux7
-rw-r--r--stdlib/source/test/aedifex/metadata/artifact.lux7
-rw-r--r--stdlib/source/test/aedifex/metadata/snapshot.lux7
-rw-r--r--stdlib/source/test/aedifex/repository/local.lux7
-rw-r--r--stdlib/source/test/lux/abstract/equivalence.lux2
-rw-r--r--stdlib/source/test/lux/abstract/interval.lux30
-rw-r--r--stdlib/source/test/lux/control/concurrency/actor.lux19
-rw-r--r--stdlib/source/test/lux/control/concurrency/async.lux31
-rw-r--r--stdlib/source/test/lux/control/concurrency/frp.lux25
-rw-r--r--stdlib/source/test/lux/control/concurrency/semaphore.lux17
-rw-r--r--stdlib/source/test/lux/control/concurrency/stm.lux17
-rw-r--r--stdlib/source/test/lux/control/concurrency/thread.lux7
-rw-r--r--stdlib/source/test/lux/control/security/capability.lux7
-rw-r--r--stdlib/source/test/lux/data/format/json.lux2
-rw-r--r--stdlib/source/test/lux/data/text/regex.lux84
-rw-r--r--stdlib/source/test/lux/ffi.php.lux2
-rw-r--r--stdlib/source/test/lux/ffi.scm.lux2
-rw-r--r--stdlib/source/test/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux80
-rw-r--r--stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux2
-rw-r--r--stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/structure.lux4
-rw-r--r--stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux6
-rw-r--r--stdlib/source/test/lux/meta/compiler/meta/cache.lux7
-rw-r--r--stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux7
-rw-r--r--stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux7
-rw-r--r--stdlib/source/test/lux/meta/compiler/meta/cache/module.lux9
-rw-r--r--stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux7
-rw-r--r--stdlib/source/test/lux/meta/compiler/meta/export.lux11
-rw-r--r--stdlib/source/test/lux/meta/compiler/meta/import.lux11
-rw-r--r--stdlib/source/test/lux/meta/macro/context.lux2
-rw-r--r--stdlib/source/test/lux/meta/static.lux2
-rw-r--r--stdlib/source/test/lux/meta/symbol.lux4
-rw-r--r--stdlib/source/test/lux/meta/target/jvm.lux4
-rw-r--r--stdlib/source/test/lux/meta/type/resource.lux7
-rw-r--r--stdlib/source/test/lux/test.lux243
-rw-r--r--stdlib/source/test/lux/world/file.lux11
-rw-r--r--stdlib/source/test/lux/world/file/watch.lux11
-rw-r--r--stdlib/source/test/lux/world/net/http/client.lux7
-rw-r--r--stdlib/source/test/lux/world/shell.lux7
115 files changed, 3236 insertions, 3039 deletions
diff --git a/stdlib/source/documentation/lux/data.lux b/stdlib/source/documentation/lux/data.lux
index 088366a27..93ecf8753 100644
--- a/stdlib/source/documentation/lux/data.lux
+++ b/stdlib/source/documentation/lux/data.lux
@@ -16,8 +16,8 @@
["[1][0]" sum]
["[1][0]" text]])
-(.def .public documentation
- (.List $.Module)
+(def .public documentation
+ (List $.Documentation)
(list.together
(list /binary.documentation
/bit.documentation
diff --git a/stdlib/source/documentation/lux/data/binary.lux b/stdlib/source/documentation/lux/data/binary.lux
index 6a660752e..34b12a2b6 100644
--- a/stdlib/source/documentation/lux/data/binary.lux
+++ b/stdlib/source/documentation/lux/data/binary.lux
@@ -4,247 +4,256 @@
["$" documentation]
[data
[text (.only \n)
- ["%" \\format (.only format)]]]]]
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list (.use "[1]#[0]" monoid)]]]]]
["[0]" \\format]
["[0]" \\parser]
[\\library
["[0]" /]])
-(`` (.def \\parser
- (.List $.Module)
- ($.module \\parser._
- ""
- [($.definition \\parser.binary_was_not_fully_read)
- ($.definition \\parser.size_8)
- ($.definition \\parser.size_16)
- ($.definition \\parser.size_32)
- ($.definition \\parser.size_64)
- ($.definition \\parser.bits_8)
- ($.definition \\parser.bits_16)
- ($.definition \\parser.bits_32)
- ($.definition \\parser.bits_64)
- ($.definition \\parser.nat)
- ($.definition \\parser.int)
- ($.definition \\parser.rev)
- ($.definition \\parser.frac)
- ($.definition \\parser.invalid_tag)
- ($.definition \\parser.or)
- ($.definition \\parser.not_a_bit)
- ($.definition \\parser.bit)
- ($.definition \\parser.text)
- ($.definition \\parser.maybe)
- ($.definition \\parser.set_elements_are_not_unique)
- ($.definition \\parser.symbol)
- ($.definition \\parser.type)
- ($.definition \\parser.location)
- ($.definition \\parser.code)
-
- ($.definition \\parser.Offset
- "An offset for reading within binary data.")
-
- ($.definition (\\parser.Parser it)
- "A parser for raw binary data.")
-
- ($.definition \\parser.result
- "Runs a parser and checks that all the binary data was read by it."
- [(result parser input)])
-
- ($.definition \\parser.end?
- "Checks whether there is no more data to read.")
-
- ($.definition \\parser.offset
- "The current offset (i.e. how much data has been read).")
-
- ($.definition \\parser.remaining
- "How much of the data remains to be read.")
-
- ($.definition \\parser.Size
- "The size of a chunk of data within a binary array.")
-
- ($.definition \\parser.rec
- "Tie the knot for a recursive parser.")
-
- ($.definition \\parser.any
- "Does no parsing, and just returns a dummy value.")
-
- ($.definition \\parser.segment
- "Parses a chunk of data of a given size."
- [(segment size)])
-
- (,, (with_template [<size> <name>]
- [($.definition <name>
- (format "Parses a block of data prefixed with a size that is " (%.nat <size>) " bytes long."))]
-
- [08 \\parser.binary_8]
- [16 \\parser.binary_16]
- [32 \\parser.binary_32]
- [64 \\parser.binary_64]
- ))
-
- (,, (with_template [<size> <name>]
- [($.definition <name>
- (format "Parses a block of (UTF-8 encoded) text prefixed with a size that is " (%.nat <size>) " bytes long."))]
-
- [08 \\parser.utf8_8]
- [16 \\parser.utf8_16]
- [32 \\parser.utf8_32]
- [64 \\parser.utf8_64]
- ))
-
- (,, (with_template [<size> <name>]
- [($.definition <name>
- (format "Parses a sequence of values prefixed with a size that is " (%.nat <size>) " bytes long."))]
-
- [08 \\parser.sequence_8]
- [16 \\parser.sequence_16]
- [32 \\parser.sequence_32]
- [64 \\parser.sequence_64]
- ))
-
- ($.definition \\parser.list
- "Parses an arbitrarily long list of values."
- [(list value)])
-
- ($.definition \\parser.set
- ""
- [(set hash value)])]
- [])))
-
-(.def \\format
- (.List $.Module)
- ($.module \\format._
- ""
- [($.definition \\format.monoid)
- ($.definition \\format.bits_8)
- ($.definition \\format.bits_16)
- ($.definition \\format.bits_32)
- ($.definition \\format.bits_64)
- ($.definition \\format.any)
- ($.definition \\format.bit)
- ($.definition \\format.nat)
- ($.definition \\format.int)
- ($.definition \\format.rev)
- ($.definition \\format.frac)
- ($.definition \\format.binary_8)
- ($.definition \\format.binary_16)
- ($.definition \\format.binary_32)
- ($.definition \\format.binary_64)
- ($.definition \\format.utf8_8)
- ($.definition \\format.utf8_16)
- ($.definition \\format.utf8_32)
- ($.definition \\format.utf8_64)
- ($.definition \\format.text)
- ($.definition \\format.sequence_8)
- ($.definition \\format.sequence_16)
- ($.definition \\format.sequence_32)
- ($.definition \\format.sequence_64)
- ($.definition \\format.maybe)
- ($.definition \\format.list)
- ($.definition \\format.set)
- ($.definition \\format.symbol)
- ($.definition \\format.type)
- ($.definition \\format.location)
- ($.definition \\format.code)
-
- ($.definition \\format.Mutation
- "A mutation of binary data, tracking where in the data to transform.")
-
- ($.definition \\format.Specification
- "A description of how to transform binary data.")
-
- ($.definition \\format.no_op
- "A specification for empty binary data.")
-
- ($.definition \\format.instance
- "Given a specification of how to construct binary data, yields a binary blob that matches it.")
-
- ($.definition (\\format.Format it)
- "An operation that knows how to write information into a binary blob.")
-
- ($.definition \\format.result
- "Yields a binary blob with all the information written to it."
- [(result format value)])
-
- ($.definition \\format.or
- ""
- [(or left right)])
-
- ($.definition \\format.and
- ""
- [(and pre post)])
-
- ($.definition \\format.rec
- "A combinator for recursive formats."
- [(rec body)])
-
- ($.definition \\format.segment
- "Writes at most 'size' bytes of an input binary blob."
- [(segment size)])]
- []))
-
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.index_out_of_bounds)
- ($.definition /.slice_out_of_bounds)
- ($.definition /.size)
- ($.definition /.equivalence)
- ($.definition /.monoid)
-
- ($.definition /.Binary
- "A binary BLOB of data.")
-
- ($.definition /.empty
- "A fresh/empty binary BLOB of the specified size."
- [(empty size)])
-
- ($.definition /.mix
- ""
- [(mix f init binary)])
-
- ($.definition /.bits_8
- "Read 1 byte (8 bits) at the given index."
- [(bits_8 index binary)])
-
- ($.definition /.bits_16
- "Read 2 bytes (16 bits) at the given index."
- [(bits_16 index binary)])
-
- ($.definition /.bits_32
- "Read 4 bytes (32 bits) at the given index."
- [(bits_32 index binary)])
-
- ($.definition /.bits_64
- "Read 8 bytes (64 bits) at the given index."
- [(bits_64 index binary)])
-
- ($.definition /.has_8!
- "Write 1 byte (8 bits) at the given index."
- [(has_8! index value binary)])
-
- ($.definition /.has_16!
- "Write 2 bytes (16 bits) at the given index."
- [(has_16! index value binary)])
-
- ($.definition /.has_32!
- "Write 4 bytes (32 bits) at the given index."
- [(has_32! index value binary)])
-
- ($.definition /.has_64!
- "Write 8 bytes (64 bits) at the given index."
- [(has_64! index value binary)])
-
- ($.definition /.copy!
- "Mutates the target binary BLOB by copying bytes from the source BLOB to it."
- [(copy! bytes source_offset source target_offset target)])
-
- ($.definition /.slice
- "Yields a subset of the binary BLOB, so long as the specified range is valid."
- [(slice offset length binary)])
-
- ($.definition /.after
- "Yields a binary BLOB with at most the specified number of bytes removed."
- [(after bytes binary)])]
- [..\\format
- ..\\parser]))
+(`` (def \\parser
+ (List $.Documentation)
+ (list ($.module \\parser._
+ "")
+
+ ($.definition \\parser.binary_was_not_fully_read)
+ ($.definition \\parser.size_8)
+ ($.definition \\parser.size_16)
+ ($.definition \\parser.size_32)
+ ($.definition \\parser.size_64)
+ ($.definition \\parser.bits_8)
+ ($.definition \\parser.bits_16)
+ ($.definition \\parser.bits_32)
+ ($.definition \\parser.bits_64)
+ ($.definition \\parser.nat)
+ ($.definition \\parser.int)
+ ($.definition \\parser.rev)
+ ($.definition \\parser.frac)
+ ($.definition \\parser.invalid_tag)
+ ($.definition \\parser.or)
+ ($.definition \\parser.not_a_bit)
+ ($.definition \\parser.bit)
+ ($.definition \\parser.text)
+ ($.definition \\parser.maybe)
+ ($.definition \\parser.set_elements_are_not_unique)
+ ($.definition \\parser.symbol)
+ ($.definition \\parser.type)
+ ($.definition \\parser.location)
+ ($.definition \\parser.code)
+
+ ($.definition \\parser.Offset
+ "An offset for reading within binary data.")
+
+ ($.definition (\\parser.Parser it)
+ "A parser for raw binary data.")
+
+ ($.definition \\parser.result
+ "Runs a parser and checks that all the binary data was read by it."
+ [(result parser input)])
+
+ ($.definition \\parser.end?
+ "Checks whether there is no more data to read.")
+
+ ($.definition \\parser.offset
+ "The current offset (i.e. how much data has been read).")
+
+ ($.definition \\parser.remaining
+ "How much of the data remains to be read.")
+
+ ($.definition \\parser.Size
+ "The size of a chunk of data within a binary array.")
+
+ ($.definition \\parser.rec
+ "Tie the knot for a recursive parser.")
+
+ ($.definition \\parser.any
+ "Does no parsing, and just returns a dummy value.")
+
+ ($.definition \\parser.segment
+ "Parses a chunk of data of a given size."
+ [(segment size)])
+
+ (,, (with_template [<size> <name>]
+ [($.definition <name>
+ (format "Parses a block of data prefixed with a size that is " (%.nat <size>) " bytes long."))]
+
+ [08 \\parser.binary_8]
+ [16 \\parser.binary_16]
+ [32 \\parser.binary_32]
+ [64 \\parser.binary_64]
+ ))
+
+ (,, (with_template [<size> <name>]
+ [($.definition <name>
+ (format "Parses a block of (UTF-8 encoded) text prefixed with a size that is " (%.nat <size>) " bytes long."))]
+
+ [08 \\parser.utf8_8]
+ [16 \\parser.utf8_16]
+ [32 \\parser.utf8_32]
+ [64 \\parser.utf8_64]
+ ))
+
+ (,, (with_template [<size> <name>]
+ [($.definition <name>
+ (format "Parses a sequence of values prefixed with a size that is " (%.nat <size>) " bytes long."))]
+
+ [08 \\parser.sequence_8]
+ [16 \\parser.sequence_16]
+ [32 \\parser.sequence_32]
+ [64 \\parser.sequence_64]
+ ))
+
+ ($.definition \\parser.list
+ "Parses an arbitrarily long list of values."
+ [(list value)])
+
+ ($.definition \\parser.set
+ ""
+ [(set hash value)])
+ )))
+
+(def \\format
+ (List $.Documentation)
+ (list ($.module \\format._
+ "")
+
+ ($.definition \\format.monoid)
+ ($.definition \\format.bits_8)
+ ($.definition \\format.bits_16)
+ ($.definition \\format.bits_32)
+ ($.definition \\format.bits_64)
+ ($.definition \\format.any)
+ ($.definition \\format.bit)
+ ($.definition \\format.nat)
+ ($.definition \\format.int)
+ ($.definition \\format.rev)
+ ($.definition \\format.frac)
+ ($.definition \\format.binary_8)
+ ($.definition \\format.binary_16)
+ ($.definition \\format.binary_32)
+ ($.definition \\format.binary_64)
+ ($.definition \\format.utf8_8)
+ ($.definition \\format.utf8_16)
+ ($.definition \\format.utf8_32)
+ ($.definition \\format.utf8_64)
+ ($.definition \\format.text)
+ ($.definition \\format.sequence_8)
+ ($.definition \\format.sequence_16)
+ ($.definition \\format.sequence_32)
+ ($.definition \\format.sequence_64)
+ ($.definition \\format.maybe)
+ ($.definition \\format.list)
+ ($.definition \\format.set)
+ ($.definition \\format.symbol)
+ ($.definition \\format.type)
+ ($.definition \\format.location)
+ ($.definition \\format.code)
+
+ ($.definition \\format.Mutation
+ "A mutation of binary data, tracking where in the data to transform.")
+
+ ($.definition \\format.Specification
+ "A description of how to transform binary data.")
+
+ ($.definition \\format.no_op
+ "A specification for empty binary data.")
+
+ ($.definition \\format.instance
+ "Given a specification of how to construct binary data, yields a binary blob that matches it.")
+
+ ($.definition (\\format.Format it)
+ "An operation that knows how to write information into a binary blob.")
+
+ ($.definition \\format.result
+ "Yields a binary blob with all the information written to it."
+ [(result format value)])
+
+ ($.definition \\format.or
+ ""
+ [(or left right)])
+
+ ($.definition \\format.and
+ ""
+ [(and pre post)])
+
+ ($.definition \\format.rec
+ "A combinator for recursive formats."
+ [(rec body)])
+
+ ($.definition \\format.segment
+ "Writes at most 'size' bytes of an input binary blob."
+ [(segment size)])
+ ))
+
+(def .public documentation
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
+
+ ($.definition /.index_out_of_bounds)
+ ($.definition /.slice_out_of_bounds)
+ ($.definition /.size)
+ ($.definition /.equivalence)
+ ($.definition /.monoid)
+
+ ($.definition /.Binary
+ "A binary BLOB of data.")
+
+ ($.definition /.empty
+ "A fresh/empty binary BLOB of the specified size."
+ [(empty size)])
+
+ ($.definition /.mix
+ ""
+ [(mix f init binary)])
+
+ ($.definition /.bits_8
+ "Read 1 byte (8 bits) at the given index."
+ [(bits_8 index binary)])
+
+ ($.definition /.bits_16
+ "Read 2 bytes (16 bits) at the given index."
+ [(bits_16 index binary)])
+
+ ($.definition /.bits_32
+ "Read 4 bytes (32 bits) at the given index."
+ [(bits_32 index binary)])
+
+ ($.definition /.bits_64
+ "Read 8 bytes (64 bits) at the given index."
+ [(bits_64 index binary)])
+
+ ($.definition /.has_8!
+ "Write 1 byte (8 bits) at the given index."
+ [(has_8! index value binary)])
+
+ ($.definition /.has_16!
+ "Write 2 bytes (16 bits) at the given index."
+ [(has_16! index value binary)])
+
+ ($.definition /.has_32!
+ "Write 4 bytes (32 bits) at the given index."
+ [(has_32! index value binary)])
+
+ ($.definition /.has_64!
+ "Write 8 bytes (64 bits) at the given index."
+ [(has_64! index value binary)])
+
+ ($.definition /.copy!
+ "Mutates the target binary BLOB by copying bytes from the source BLOB to it."
+ [(copy! bytes source_offset source target_offset target)])
+
+ ($.definition /.slice
+ "Yields a subset of the binary BLOB, so long as the specified range is valid."
+ [(slice offset length binary)])
+
+ ($.definition /.after
+ "Yields a binary BLOB with at most the specified number of bytes removed."
+ [(after bytes binary)])
+
+ (all list#composite
+ ..\\format
+ ..\\parser
+ )
+ ))
diff --git a/stdlib/source/documentation/lux/data/bit.lux b/stdlib/source/documentation/lux/data/bit.lux
index 99238c240..bb6f5430e 100644
--- a/stdlib/source/documentation/lux/data/bit.lux
+++ b/stdlib/source/documentation/lux/data/bit.lux
@@ -8,21 +8,22 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.no)
- ($.definition /.yes)
- ($.definition /.off)
- ($.definition /.on)
- ($.definition /.equivalence)
- ($.definition /.hash)
- ($.definition /.disjunction)
- ($.definition /.conjunction)
- ($.definition /.codec)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition /.complement
- (format "Generates the complement of a predicate."
- \n "That is a predicate that returns the oposite of the original predicate."))]
- []))
+ ($.definition /.no)
+ ($.definition /.yes)
+ ($.definition /.off)
+ ($.definition /.on)
+ ($.definition /.equivalence)
+ ($.definition /.hash)
+ ($.definition /.disjunction)
+ ($.definition /.conjunction)
+ ($.definition /.codec)
+
+ ($.definition /.complement
+ (format "Generates the complement of a predicate."
+ \n "That is a predicate that returns the oposite of the original predicate."))
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection.lux b/stdlib/source/documentation/lux/data/collection.lux
index 5712aa398..8920b36e7 100644
--- a/stdlib/source/documentation/lux/data/collection.lux
+++ b/stdlib/source/documentation/lux/data/collection.lux
@@ -19,8 +19,8 @@
["[1][0]" set]
["[1][0]" tree]])
-(.def .public documentation
- (.List $.Module)
+(def .public documentation
+ (List $.Documentation)
(list.together
(list /array.documentation
/bits.documentation
diff --git a/stdlib/source/documentation/lux/data/collection/array.lux b/stdlib/source/documentation/lux/data/collection/array.lux
index 164e10326..e821b976c 100644
--- a/stdlib/source/documentation/lux/data/collection/array.lux
+++ b/stdlib/source/documentation/lux/data/collection/array.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except list)
+ [lux (.except)
["$" documentation]
[data
["[0]" text (.only \n)
@@ -10,89 +10,90 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.primitive)
- ($.definition /.equivalence)
- ($.definition /.monoid)
- ($.definition /.functor)
- ($.definition /.mix)
- ($.definition /.every?)
- ($.definition /.any?)
-
- ($.definition (/.Array it)
- "Mutable arrays.")
-
- ($.definition /.empty
- "An empty array of the specified size."
- [(empty size)])
-
- ($.definition /.size
- ""
- [(size array)])
-
- ($.definition /.item
- ""
- [(item index array)])
-
- ($.definition /.has!
- "Mutate the array by writing a value to the specified index."
- [(has! index value array)])
-
- ($.definition /.lacks!
- "Mutate the array by deleting the value at the specified index."
- [(lacks! index array)])
-
- ($.definition /.has?
- ""
- [(has? index array)])
-
- ($.definition /.revised!
- "Mutate the array by updating the value at the specified index."
- [(revised! index transform array)])
-
- ($.definition /.upsert!
- (format "Mutate the array by updating the value at the specified index."
- \n "If there is no value, update and write the default value given.")
- [(upsert! index default transform array)])
-
- ($.definition /.copy!
- "Writes the contents of one array into the other."
- [(copy! length src_start src_array dest_start dest_array)])
-
- ($.definition /.occupancy
- "Finds out how many cells in an array are occupied."
- [(occupancy array)])
-
- ($.definition /.vacancy
- "Finds out how many cells in an array are vacant."
- [(vacancy array)])
-
- ($.definition /.only!
- "Delete every item of the array that fails to satisfy the predicate."
- [(only! p xs)])
-
- ($.definition /.example
- "Yields the first item in the array that satisfies the predicate."
- [(example p xs)])
-
- ($.definition /.example'
- "Just like 'example', but with access to the index of each value."
- [(example' p xs)])
-
- ($.definition /.clone
- "Yields a shallow clone of the array."
- [(clone xs)])
-
- ($.definition /.of_list
- ""
- [(of_list xs)])
-
- ($.definition /.list
- (format "Yields a list with every non-empty item in the array."
- \n "Can use the optional default value when encountering an empty cell in the array.")
- [(list {.#None} array)
- (list {.#Some default} array)])]
- []))
+(def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
+
+ ($.definition /.primitive)
+ ($.definition /.equivalence)
+ ($.definition /.monoid)
+ ($.definition /.functor)
+ ($.definition /.mix)
+ ($.definition /.every?)
+ ($.definition /.any?)
+
+ ($.definition (/.Array it)
+ "Mutable arrays.")
+
+ ($.definition /.empty
+ "An empty array of the specified size."
+ [(empty size)])
+
+ ($.definition /.size
+ ""
+ [(size array)])
+
+ ($.definition /.item
+ ""
+ [(item index array)])
+
+ ($.definition /.has!
+ "Mutate the array by writing a value to the specified index."
+ [(has! index value array)])
+
+ ($.definition /.lacks!
+ "Mutate the array by deleting the value at the specified index."
+ [(lacks! index array)])
+
+ ($.definition /.has?
+ ""
+ [(has? index array)])
+
+ ($.definition /.revised!
+ "Mutate the array by updating the value at the specified index."
+ [(revised! index transform array)])
+
+ ($.definition /.upsert!
+ (format "Mutate the array by updating the value at the specified index."
+ \n "If there is no value, update and write the default value given.")
+ [(upsert! index default transform array)])
+
+ ($.definition /.copy!
+ "Writes the contents of one array into the other."
+ [(copy! length src_start src_array dest_start dest_array)])
+
+ ($.definition /.occupancy
+ "Finds out how many cells in an array are occupied."
+ [(occupancy array)])
+
+ ($.definition /.vacancy
+ "Finds out how many cells in an array are vacant."
+ [(vacancy array)])
+
+ ($.definition /.only!
+ "Delete every item of the array that fails to satisfy the predicate."
+ [(only! p xs)])
+
+ ($.definition /.example
+ "Yields the first item in the array that satisfies the predicate."
+ [(example p xs)])
+
+ ($.definition /.example'
+ "Just like 'example', but with access to the index of each value."
+ [(example' p xs)])
+
+ ($.definition /.clone
+ "Yields a shallow clone of the array."
+ [(clone xs)])
+
+ ($.definition /.of_list
+ ""
+ [(of_list xs)])
+
+ ($.definition /.list
+ (format "Yields a list with every non-empty item in the array."
+ \n "Can use the optional default value when encountering an empty cell in the array.")
+ [(list {.#None} array)
+ (list {.#Some default} array)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/bits.lux b/stdlib/source/documentation/lux/data/collection/bits.lux
index 4a4fa900d..296d9f087 100644
--- a/stdlib/source/documentation/lux/data/collection/bits.lux
+++ b/stdlib/source/documentation/lux/data/collection/bits.lux
@@ -5,42 +5,43 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.Chunk)
- ($.definition /.chunk_size)
- ($.definition /.empty)
- ($.definition /.empty?)
- ($.definition /.equivalence)
- ($.definition /.one)
- ($.definition /.zero)
- ($.definition /.flipped)
- ($.definition /.and)
- ($.definition /.or)
- ($.definition /.xor)
-
- ($.definition /.Bits
- "A bit-map.")
-
- ($.definition /.size
- "Measures the size of a bit-map by counting all the 1s in the bit-map."
- [(size bits)])
-
- ($.definition /.capacity
- ""
- [(capacity bits)])
-
- ($.definition /.bit
- ""
- [(bit index bits)])
-
- ($.definition /.intersects?
- ""
- [(intersects? reference sample)])
-
- ($.definition /.not
- ""
- [(not input)])]
- []))
+(def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
+
+ ($.definition /.Chunk)
+ ($.definition /.chunk_size)
+ ($.definition /.empty)
+ ($.definition /.empty?)
+ ($.definition /.equivalence)
+ ($.definition /.one)
+ ($.definition /.zero)
+ ($.definition /.flipped)
+ ($.definition /.and)
+ ($.definition /.or)
+ ($.definition /.xor)
+
+ ($.definition /.Bits
+ "A bit-map.")
+
+ ($.definition /.size
+ "Measures the size of a bit-map by counting all the 1s in the bit-map."
+ [(size bits)])
+
+ ($.definition /.capacity
+ ""
+ [(capacity bits)])
+
+ ($.definition /.bit
+ ""
+ [(bit index bits)])
+
+ ($.definition /.intersects?
+ ""
+ [(intersects? reference sample)])
+
+ ($.definition /.not
+ ""
+ [(not input)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/dictionary.lux b/stdlib/source/documentation/lux/data/collection/dictionary.lux
index dcf2afce1..da8bd13e8 100644
--- a/stdlib/source/documentation/lux/data/collection/dictionary.lux
+++ b/stdlib/source/documentation/lux/data/collection/dictionary.lux
@@ -4,81 +4,86 @@
["$" documentation]
[data
[text (.only \n)
- ["%" \\format (.only format)]]]]]
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list]]]]]
[\\library
["[0]" /]]
["[0]" /
["[1][0]" ordered]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.key_hash)
- ($.definition /.key_already_exists)
- ($.definition /.size)
- ($.definition /.empty?)
- ($.definition /.entries)
- ($.definition /.keys)
- ($.definition /.values)
- ($.definition /.equivalence)
- ($.definition /.functor)
-
- ($.definition (/.Dictionary key value)
- "A dictionary implemented as a Hash-Array Mapped Trie (HAMT).")
-
- ($.definition /.empty
- "An empty dictionary."
- [(empty key_hash)])
-
- ($.definition /.has
- ""
- [(has key val dict)])
-
- ($.definition /.lacks
- ""
- [(lacks key dict)])
-
- ($.definition /.value
- ""
- [(value key dict)])
-
- ($.definition /.key?
- ""
- [(key? dict key)])
-
- ($.definition /.has'
- "Only puts the KV-pair if the key is not already present."
- [(has' key val dict)])
-
- ($.definition /.revised
- "Transforms the value located at key (if available), using the given function."
- [(revised key f dict)])
-
- ($.definition /.revised'
- (format "Updates the value at the key; if it exists."
- \n "Otherwise, puts a value by applying the function to a default.")
- [(revised' key default f dict)])
-
- ($.definition /.of_list
- ""
- [(of_list key_hash kvs)])
-
- ($.definition /.composite
- (format "Merges 2 dictionaries."
- \n "If any collisions with keys occur, the values of dict2 will overwrite those of dict1.")
- [(composite dict2 dict1)])
-
- ($.definition /.composite_with
- (format "Merges 2 dictionaries."
- \n "If any collisions with keys occur, a new value will be computed by applying 'f' to the values of dict2 and dict1.")
- [(composite_with f dict2 dict1)])
-
- ($.definition /.re_bound
- "If there is a value under 'from_key', remove 'from_key' and store the value under 'to_key'."
- [(re_bound from_key to_key dict)])
-
- ($.definition /.sub
- "A sub-dictionary, with only the specified keys."
- [(sub keys dict)])]
- [/ordered.documentation]))
+(def .public documentation
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
+
+ ($.definition /.key_hash)
+ ($.definition /.key_already_exists)
+ ($.definition /.size)
+ ($.definition /.empty?)
+ ($.definition /.entries)
+ ($.definition /.keys)
+ ($.definition /.values)
+ ($.definition /.equivalence)
+ ($.definition /.functor)
+
+ ($.definition (/.Dictionary key value)
+ "A dictionary implemented as a Hash-Array Mapped Trie (HAMT).")
+
+ ($.definition /.empty
+ "An empty dictionary."
+ [(empty key_hash)])
+
+ ($.definition /.has
+ ""
+ [(has key val dict)])
+
+ ($.definition /.lacks
+ ""
+ [(lacks key dict)])
+
+ ($.definition /.value
+ ""
+ [(value key dict)])
+
+ ($.definition /.key?
+ ""
+ [(key? dict key)])
+
+ ($.definition /.has'
+ "Only puts the KV-pair if the key is not already present."
+ [(has' key val dict)])
+
+ ($.definition /.revised
+ "Transforms the value located at key (if available), using the given function."
+ [(revised key f dict)])
+
+ ($.definition /.revised'
+ (format "Updates the value at the key; if it exists."
+ \n "Otherwise, puts a value by applying the function to a default.")
+ [(revised' key default f dict)])
+
+ ($.definition /.of_list
+ ""
+ [(of_list key_hash kvs)])
+
+ ($.definition /.composite
+ (format "Merges 2 dictionaries."
+ \n "If any collisions with keys occur, the values of dict2 will overwrite those of dict1.")
+ [(composite dict2 dict1)])
+
+ ($.definition /.composite_with
+ (format "Merges 2 dictionaries."
+ \n "If any collisions with keys occur, a new value will be computed by applying 'f' to the values of dict2 and dict1.")
+ [(composite_with f dict2 dict1)])
+
+ ($.definition /.re_bound
+ "If there is a value under 'from_key', remove 'from_key' and store the value under 'to_key'."
+ [(re_bound from_key to_key dict)])
+
+ ($.definition /.sub
+ "A sub-dictionary, with only the specified keys."
+ [(sub keys dict)])
+
+ /ordered.documentation
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux b/stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux
index c264b55f6..d44fe0863 100644
--- a/stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/documentation/lux/data/collection/dictionary/ordered.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except has revised)
+ [lux (.except)
["$" documentation]
[data
[text
@@ -11,56 +11,57 @@
[\\library
["[0]" /]])
-(`` (.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.empty?)
- ($.definition /.entries)
- ($.definition /.keys)
- ($.definition /.values)
- ($.definition /.equivalence)
+(`` (def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition (/.Dictionary key value)
- "A dictionary data-structure with ordered entries.")
+ ($.definition /.empty?)
+ ($.definition /.entries)
+ ($.definition /.keys)
+ ($.definition /.values)
+ ($.definition /.equivalence)
- ($.definition /.empty
- "An empty dictionary, employing the given order."
- [(empty order)])
+ ($.definition (/.Dictionary key value)
+ "A dictionary data-structure with ordered entries.")
- ($.definition /.value
- ""
- [(value key dict)])
+ ($.definition /.empty
+ "An empty dictionary, employing the given order."
+ [(empty order)])
- ($.definition /.key?
- ""
- [(key? dict key)])
+ ($.definition /.value
+ ""
+ [(value key dict)])
- (,, (with_template [<name>]
- [(`` ($.definition <name>
- (format "Yields value under the " (,, (template.text [<name>])) "imum key.")))]
+ ($.definition /.key?
+ ""
+ [(key? dict key)])
- [/.min]
- [/.max]
- ))
+ (,, (with_template [<name>]
+ [(`` ($.definition <name>
+ (format "Yields value under the " (,, (template.text [<name>])) "imum key.")))]
- ($.definition /.size
- ""
- [(size dict)])
+ [/.min]
+ [/.max]
+ ))
- ($.definition /.has
- ""
- [(has key value dict)])
+ ($.definition /.size
+ ""
+ [(size dict)])
- ($.definition /.lacks
- ""
- [(lacks key dict)])
+ ($.definition /.has
+ ""
+ [(has key value dict)])
- ($.definition /.revised
- ""
- [(revised key transform dict)])
+ ($.definition /.lacks
+ ""
+ [(lacks key dict)])
- ($.definition /.of_list
- ""
- [(of_list order list)])]
- [])))
+ ($.definition /.revised
+ ""
+ [(revised key transform dict)])
+
+ ($.definition /.of_list
+ ""
+ [(of_list order list)])
+ )))
diff --git a/stdlib/source/documentation/lux/data/collection/list.lux b/stdlib/source/documentation/lux/data/collection/list.lux
index bd4cf4a7d..cf08192c2 100644
--- a/stdlib/source/documentation/lux/data/collection/list.lux
+++ b/stdlib/source/documentation/lux/data/collection/list.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except all)
+ [lux (.except)
["$" documentation]
[data
[text (.only \n)
@@ -10,11 +10,12 @@
["[0]" /
["[1][0]" property]])
-(`` (.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.mix)
+(`` (def .public documentation
+ (List $.Documentation)
+ (/.partial ($.module /._
+ "")
+
+ ($.definition /.mix)
($.definition /.equivalence)
($.definition /.hash)
($.definition /.monoid)
@@ -163,5 +164,7 @@
[(do monad
[value (do_something 1 2 3)
.when (passes_test? value)]
- (do_something_else 4 5 6))])]
- [/property.documentation])))
+ (do_something_else 4 5 6))])
+
+ /property.documentation
+ )))
diff --git a/stdlib/source/documentation/lux/data/collection/list/property.lux b/stdlib/source/documentation/lux/data/collection/list/property.lux
index 1d8ac9892..c2d694d62 100644
--- a/stdlib/source/documentation/lux/data/collection/list/property.lux
+++ b/stdlib/source/documentation/lux/data/collection/list/property.lux
@@ -8,38 +8,39 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.empty)
- ($.definition /.size)
- ($.definition /.empty?)
- ($.definition /.keys)
- ($.definition /.values)
- ($.definition /.equivalence)
-
- ($.definition (/.List it)
- (format "A property list."
- \n "It's a simple dictionary-like structure with Text keys."))
-
- ($.definition /.value
- ""
- [(value key properties)])
-
- ($.definition /.contains?
- ""
- [(contains? key properties)])
-
- ($.definition /.has
- ""
- [(has key val properties)])
-
- ($.definition /.revised
- ""
- [(revised key f properties)])
-
- ($.definition /.lacks
- ""
- [(lacks key properties)])]
- []))
+(def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
+
+ ($.definition /.empty)
+ ($.definition /.size)
+ ($.definition /.empty?)
+ ($.definition /.keys)
+ ($.definition /.values)
+ ($.definition /.equivalence)
+
+ ($.definition (/.List it)
+ (format "A property list."
+ \n "It's a simple dictionary-like structure with Text keys."))
+
+ ($.definition /.value
+ ""
+ [(value key properties)])
+
+ ($.definition /.contains?
+ ""
+ [(contains? key properties)])
+
+ ($.definition /.has
+ ""
+ [(has key val properties)])
+
+ ($.definition /.revised
+ ""
+ [(revised key f properties)])
+
+ ($.definition /.lacks
+ ""
+ [(lacks key properties)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/queue.lux b/stdlib/source/documentation/lux/data/collection/queue.lux
index d61c7dae6..44dd7f209 100644
--- a/stdlib/source/documentation/lux/data/collection/queue.lux
+++ b/stdlib/source/documentation/lux/data/collection/queue.lux
@@ -1,45 +1,51 @@
(.require
[library
- [lux (.except list)
- ["$" documentation]]]
+ [lux (.except)
+ ["$" documentation]
+ [data
+ [collection
+ ["[0]" list]]]]]
[\\library
["[0]" /]]
["[0]" /
["[1][0]" priority]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.empty)
- ($.definition /.size)
- ($.definition /.empty?)
- ($.definition /.equivalence)
- ($.definition /.functor)
-
- ($.definition (/.Queue it)
- "A first-in, first-out sequential data-structure.")
-
- ($.definition /.of_list
- ""
- [(of_list entries)])
-
- ($.definition /.list
- ""
- [(list queue)])
-
- ($.definition /.front
- "Yields the first value in the queue, if any.")
-
- ($.definition /.member?
- ""
- [(member? equivalence queue member)])
-
- ($.definition /.next
- ""
- [(next queue)])
-
- ($.definition /.end
- ""
- [(end val queue)])]
- [/priority.documentation]))
+(def .public documentation
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
+
+ ($.definition /.empty)
+ ($.definition /.size)
+ ($.definition /.empty?)
+ ($.definition /.equivalence)
+ ($.definition /.functor)
+
+ ($.definition (/.Queue it)
+ "A first-in, first-out sequential data-structure.")
+
+ ($.definition /.of_list
+ ""
+ [(of_list entries)])
+
+ ($.definition /.list
+ ""
+ [(list queue)])
+
+ ($.definition /.front
+ "Yields the first value in the queue, if any.")
+
+ ($.definition /.member?
+ ""
+ [(member? equivalence queue member)])
+
+ ($.definition /.next
+ ""
+ [(next queue)])
+
+ ($.definition /.end
+ ""
+ [(end val queue)])
+
+ /priority.documentation
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/queue/priority.lux b/stdlib/source/documentation/lux/data/collection/queue/priority.lux
index 94eb7dc59..e08056fe3 100644
--- a/stdlib/source/documentation/lux/data/collection/queue/priority.lux
+++ b/stdlib/source/documentation/lux/data/collection/queue/priority.lux
@@ -1,29 +1,30 @@
(.require
[library
- [lux (.except list)
+ [lux (.except)
["$" documentation]]]
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.Priority)
- ($.definition /.max)
- ($.definition /.min)
- ($.definition (/.Queue it))
- ($.definition /.empty)
- ($.definition /.front)
- ($.definition /.size)
- ($.definition /.next)
- ($.definition /.empty?)
+(def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition /.member?
- ""
- [(member? equivalence queue member)])
+ ($.definition /.Priority)
+ ($.definition /.max)
+ ($.definition /.min)
+ ($.definition (/.Queue it))
+ ($.definition /.empty)
+ ($.definition /.front)
+ ($.definition /.size)
+ ($.definition /.next)
+ ($.definition /.empty?)
- ($.definition /.end
- ""
- [(end priority value queue)])]
- []))
+ ($.definition /.member?
+ ""
+ [(member? equivalence queue member)])
+
+ ($.definition /.end
+ ""
+ [(end priority value queue)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/sequence.lux b/stdlib/source/documentation/lux/data/collection/sequence.lux
index 2db4aba19..5dbbe420f 100644
--- a/stdlib/source/documentation/lux/data/collection/sequence.lux
+++ b/stdlib/source/documentation/lux/data/collection/sequence.lux
@@ -1,66 +1,67 @@
(.require
[library
- [lux (.except list has revised)
+ [lux (.except)
["$" documentation]]]
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.empty)
- ($.definition /.size)
- ($.definition /.index_out_of_bounds)
- ($.definition /.of_list)
- ($.definition /.empty?)
- ($.definition /.equivalence)
- ($.definition /.mix)
- ($.definition /.monoid)
- ($.definition /.functor)
- ($.definition /.apply)
- ($.definition /.monad)
- ($.definition /.reversed)
- ($.definition /.every?)
- ($.definition /.any?)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition (/.Sequence it)
- "A sequential data-structure with fast random access.")
+ ($.definition /.empty)
+ ($.definition /.size)
+ ($.definition /.index_out_of_bounds)
+ ($.definition /.of_list)
+ ($.definition /.empty?)
+ ($.definition /.equivalence)
+ ($.definition /.mix)
+ ($.definition /.monoid)
+ ($.definition /.functor)
+ ($.definition /.apply)
+ ($.definition /.monad)
+ ($.definition /.reversed)
+ ($.definition /.every?)
+ ($.definition /.any?)
- ($.definition /.suffix
- ""
- [(suffix val sequence)])
+ ($.definition (/.Sequence it)
+ "A sequential data-structure with fast random access.")
- ($.definition /.within_bounds?
- "Determines whether the index is within the bounds of the sequence."
- [(within_bounds? sequence idx)])
+ ($.definition /.suffix
+ ""
+ [(suffix val sequence)])
- ($.definition /.item
- ""
- [(item idx sequence)])
+ ($.definition /.within_bounds?
+ "Determines whether the index is within the bounds of the sequence."
+ [(within_bounds? sequence idx)])
- ($.definition /.has
- ""
- [(has idx val sequence)])
+ ($.definition /.item
+ ""
+ [(item idx sequence)])
- ($.definition /.revised
- ""
- [(revised idx f sequence)])
+ ($.definition /.has
+ ""
+ [(has idx val sequence)])
- ($.definition /.prefix
- ""
- [(prefix sequence)])
+ ($.definition /.revised
+ ""
+ [(revised idx f sequence)])
- ($.definition /.list
- ""
- [(list sequence)])
+ ($.definition /.prefix
+ ""
+ [(prefix sequence)])
- ($.definition /.member?
- ""
- [(member? equivalence sequence val)])
+ ($.definition /.list
+ ""
+ [(list sequence)])
- ($.definition /.sequence
- "Sequence literals."
- [(is (Sequence Nat)
- (sequence 12 34 56 78 90))])]
- []))
+ ($.definition /.member?
+ ""
+ [(member? equivalence sequence val)])
+
+ ($.definition /.sequence
+ "Sequence literals."
+ [(is (Sequence Nat)
+ (sequence 12 34 56 78 90))])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/set.lux b/stdlib/source/documentation/lux/data/collection/set.lux
index c9c02c488..94ad8e8d9 100644
--- a/stdlib/source/documentation/lux/data/collection/set.lux
+++ b/stdlib/source/documentation/lux/data/collection/set.lux
@@ -4,50 +4,57 @@
["$" documentation]
[data
["[0]" text (.only \n)
- ["%" \\format (.only format)]]]]]
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list (.use "[1]#[0]" monoid)]]]]]
[\\library
["[0]" /]]
["[0]" /
["[1][0]" multi]
["[1][0]" ordered]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition (/.Set it))
- ($.definition /.member_hash)
- ($.definition /.empty)
- ($.definition /.size)
- ($.definition /.lacks)
- ($.definition /.member?)
- ($.definition /.list)
- ($.definition /.union)
- ($.definition /.equivalence)
- ($.definition /.hash)
- ($.definition /.monoid)
- ($.definition /.empty?)
- ($.definition /.of_list)
- ($.definition /.predicate)
-
- ($.definition /.has
- ""
- [(has elem set)])
-
- ($.definition /.difference
- ""
- [(difference sub base)])
-
- ($.definition /.intersection
- ""
- [(intersection filter base)])
-
- ($.definition /.sub?
- ""
- [(sub? super sub)])
-
- ($.definition /.super?
- ""
- [(super? sub super)])]
- [/multi.documentation
- /ordered.documentation]))
+(def .public documentation
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
+
+ ($.definition (/.Set it))
+ ($.definition /.member_hash)
+ ($.definition /.empty)
+ ($.definition /.size)
+ ($.definition /.lacks)
+ ($.definition /.member?)
+ ($.definition /.list)
+ ($.definition /.union)
+ ($.definition /.equivalence)
+ ($.definition /.hash)
+ ($.definition /.monoid)
+ ($.definition /.empty?)
+ ($.definition /.of_list)
+ ($.definition /.predicate)
+
+ ($.definition /.has
+ ""
+ [(has elem set)])
+
+ ($.definition /.difference
+ ""
+ [(difference sub base)])
+
+ ($.definition /.intersection
+ ""
+ [(intersection filter base)])
+
+ ($.definition /.sub?
+ ""
+ [(sub? super sub)])
+
+ ($.definition /.super?
+ ""
+ [(super? sub super)])
+
+ (all list#composite
+ /multi.documentation
+ /ordered.documentation
+ )
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/set/multi.lux b/stdlib/source/documentation/lux/data/collection/set/multi.lux
index 77944599e..8c84efe56 100644
--- a/stdlib/source/documentation/lux/data/collection/set/multi.lux
+++ b/stdlib/source/documentation/lux/data/collection/set/multi.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except list has)
+ [lux (.except)
["$" documentation]
[data
["[0]" text (.only \n)
@@ -8,50 +8,51 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.empty)
- ($.definition /.size)
- ($.definition /.list)
- ($.definition /.equivalence)
- ($.definition /.hash)
- ($.definition /.empty?)
- ($.definition /.of_list)
- ($.definition /.of_set)
- ($.definition /.union)
- ($.definition /.sum)
- ($.definition /.intersection)
- ($.definition /.difference)
-
- ($.definition (/.Set it)
- "A set that keeps track of repetition in its entries.")
-
- ($.definition /.has
- ""
- [(has multiplicity elem set)])
-
- ($.definition /.lacks
- ""
- [(lacks multiplicity elem set)])
-
- ($.definition /.multiplicity
- ""
- [(multiplicity set elem)])
-
- ($.definition /.sub?
- "Is 'subject' a sub-set of 'reference'?"
- [(sub? reference subject)])
-
- ($.definition /.support
- "A set of the unique (non repeated) members."
- [(support set)])
-
- ($.definition /.member?
- ""
- [(member? set elem)])
-
- ($.definition /.super?
- "Is 'subject' a super-set of 'reference'?")]
- []))
+(def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
+
+ ($.definition /.empty)
+ ($.definition /.size)
+ ($.definition /.list)
+ ($.definition /.equivalence)
+ ($.definition /.hash)
+ ($.definition /.empty?)
+ ($.definition /.of_list)
+ ($.definition /.of_set)
+ ($.definition /.union)
+ ($.definition /.sum)
+ ($.definition /.intersection)
+ ($.definition /.difference)
+
+ ($.definition (/.Set it)
+ "A set that keeps track of repetition in its entries.")
+
+ ($.definition /.has
+ ""
+ [(has multiplicity elem set)])
+
+ ($.definition /.lacks
+ ""
+ [(lacks multiplicity elem set)])
+
+ ($.definition /.multiplicity
+ ""
+ [(multiplicity set elem)])
+
+ ($.definition /.sub?
+ "Is 'subject' a sub-set of 'reference'?"
+ [(sub? reference subject)])
+
+ ($.definition /.support
+ "A set of the unique (non repeated) members."
+ [(support set)])
+
+ ($.definition /.member?
+ ""
+ [(member? set elem)])
+
+ ($.definition /.super?
+ "Is 'subject' a super-set of 'reference'?")
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/set/ordered.lux b/stdlib/source/documentation/lux/data/collection/set/ordered.lux
index a34ad7bb2..82f29e9d9 100644
--- a/stdlib/source/documentation/lux/data/collection/set/ordered.lux
+++ b/stdlib/source/documentation/lux/data/collection/set/ordered.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except list has)
+ [lux (.except)
["$" documentation]
[data
["[0]" text (.only \n)
@@ -8,45 +8,46 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.empty)
- ($.definition /.min)
- ($.definition /.max)
- ($.definition /.size)
- ($.definition /.empty?)
- ($.definition /.list)
- ($.definition /.of_list)
- ($.definition /.union)
- ($.definition /.intersection)
- ($.definition /.equivalence)
-
- ($.definition (/.Set it)
- "A set with ordered entries.")
-
- ($.definition /.member?
- ""
- [(member? set elem)])
-
- ($.definition /.has
- ""
- [(has elem set)])
-
- ($.definition /.lacks
- ""
- [(lacks elem set)])
-
- ($.definition /.difference
- ""
- [(difference param subject)])
-
- ($.definition /.sub?
- "Is 'sub' a sub-set of 'super'?"
- [(sub? super sub)])
-
- ($.definition /.super?
- "Is 'super' a super-set of 'sub'?"
- [(super? sub super)])]
- []))
+(def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
+
+ ($.definition /.empty)
+ ($.definition /.min)
+ ($.definition /.max)
+ ($.definition /.size)
+ ($.definition /.empty?)
+ ($.definition /.list)
+ ($.definition /.of_list)
+ ($.definition /.union)
+ ($.definition /.intersection)
+ ($.definition /.equivalence)
+
+ ($.definition (/.Set it)
+ "A set with ordered entries.")
+
+ ($.definition /.member?
+ ""
+ [(member? set elem)])
+
+ ($.definition /.has
+ ""
+ [(has elem set)])
+
+ ($.definition /.lacks
+ ""
+ [(lacks elem set)])
+
+ ($.definition /.difference
+ ""
+ [(difference param subject)])
+
+ ($.definition /.sub?
+ "Is 'sub' a sub-set of 'super'?"
+ [(sub? super sub)])
+
+ ($.definition /.super?
+ "Is 'super' a super-set of 'sub'?"
+ [(super? sub super)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/stack.lux b/stdlib/source/documentation/lux/data/collection/stack.lux
index 5a334c846..e882391c7 100644
--- a/stdlib/source/documentation/lux/data/collection/stack.lux
+++ b/stdlib/source/documentation/lux/data/collection/stack.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except list)
+ [lux (.except)
["$" documentation]
[data
["[0]" text (.only \n)
@@ -8,28 +8,29 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.empty)
- ($.definition /.size)
- ($.definition /.empty?)
- ($.definition /.equivalence)
- ($.definition /.functor)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition (/.Stack it)
- "A first-in, last-out sequential data-structure.")
+ ($.definition /.empty)
+ ($.definition /.size)
+ ($.definition /.empty?)
+ ($.definition /.equivalence)
+ ($.definition /.functor)
- ($.definition /.value
- "Yields the top value in the stack, if any."
- [(value stack)])
+ ($.definition (/.Stack it)
+ "A first-in, last-out sequential data-structure.")
- ($.definition /.next
- ""
- [(next stack)])
+ ($.definition /.value
+ "Yields the top value in the stack, if any."
+ [(value stack)])
- ($.definition /.top
- ""
- [(top value stack)])]
- []))
+ ($.definition /.next
+ ""
+ [(next stack)])
+
+ ($.definition /.top
+ ""
+ [(top value stack)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/stream.lux b/stdlib/source/documentation/lux/data/collection/stream.lux
index 095642068..d32960d0d 100644
--- a/stdlib/source/documentation/lux/data/collection/stream.lux
+++ b/stdlib/source/documentation/lux/data/collection/stream.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except list pattern)
+ [lux (.except)
["$" documentation]
[data
[text (.only \n)
@@ -8,53 +8,54 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.head)
- ($.definition /.tail)
- ($.definition /.functor)
- ($.definition /.comonad)
- ($.definition /.while)
- ($.definition /.until)
- ($.definition /.first)
- ($.definition /.after)
- ($.definition /.split_when)
- ($.definition /.split_at)
-
- ($.definition (/.Stream it)
- "An infinite sequence of values.")
-
- ($.definition /.iterations
- "A stateful way of infinitely calculating the values of a stream."
- [(iterations step init)])
-
- ($.definition /.repeated
- "Repeat a value forever."
- [(repeated x)])
-
- ($.definition /.cycle
- "Go over the elements of a list forever."
- [(cycle [start next])])
-
- ($.definition /.item
- ""
- [(item idx stream)])
-
- ($.definition /.only
- "A new stream only with items that satisfy the predicate."
- [(only predicate stream)])
-
- ($.definition /.partition
- (format "Split a stream in two based on a predicate."
- \n "The left side contains all entries for which the predicate is #1."
- \n "The right side contains all entries for which the predicate is #0.")
- [(partition left? xs)])
-
- ($.definition /.pattern
- (format "Allows destructuring of streams in pattern-matching expressions."
- \n "Caveat emptor: Only use it for destructuring, and not for testing values within the streams.")
- [(let [(pattern x y z _tail) (some_stream_func +1 +2 +3)]
- (func x y z))])]
- []))
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
+
+ ($.definition /.head)
+ ($.definition /.tail)
+ ($.definition /.functor)
+ ($.definition /.comonad)
+ ($.definition /.while)
+ ($.definition /.until)
+ ($.definition /.first)
+ ($.definition /.after)
+ ($.definition /.split_when)
+ ($.definition /.split_at)
+
+ ($.definition (/.Stream it)
+ "An infinite sequence of values.")
+
+ ($.definition /.iterations
+ "A stateful way of infinitely calculating the values of a stream."
+ [(iterations step init)])
+
+ ($.definition /.repeated
+ "Repeat a value forever."
+ [(repeated x)])
+
+ ($.definition /.cycle
+ "Go over the elements of a list forever."
+ [(cycle [start next])])
+
+ ($.definition /.item
+ ""
+ [(item idx stream)])
+
+ ($.definition /.only
+ "A new stream only with items that satisfy the predicate."
+ [(only predicate stream)])
+
+ ($.definition /.partition
+ (format "Split a stream in two based on a predicate."
+ \n "The left side contains all entries for which the predicate is #1."
+ \n "The right side contains all entries for which the predicate is #0.")
+ [(partition left? xs)])
+
+ ($.definition /.pattern
+ (format "Allows destructuring of streams in pattern-matching expressions."
+ \n "Caveat emptor: Only use it for destructuring, and not for testing values within the streams.")
+ [(let [(pattern x y z _tail) (some_stream_func +1 +2 +3)]
+ (func x y z))])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/tree.lux b/stdlib/source/documentation/lux/data/collection/tree.lux
index 139d88ca3..ef03b419c 100644
--- a/stdlib/source/documentation/lux/data/collection/tree.lux
+++ b/stdlib/source/documentation/lux/data/collection/tree.lux
@@ -1,10 +1,12 @@
(.require
[library
- [lux (.except list)
+ [lux (.except)
["$" documentation]
[data
["[0]" text (.only \n)
- ["%" \\format (.only format)]]]]]
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list (.use "[1]#[0]" monoid)]]]]]
["[0]" \\parser]
[\\library
["[0]" /]]
@@ -12,78 +14,83 @@
["[1][0]" finger]
["[1][0]" zipper]])
-(`` (.def \\parser
- (.List $.Module)
- ($.module \\parser._
- ""
- [($.definition \\parser.cannot_move_further)
+(`` (def \\parser
+ (List $.Documentation)
+ (list ($.module \\parser._
+ "")
- ($.definition (\\parser.Parser it)
- "A parser of arbitrary trees.")
+ ($.definition \\parser.cannot_move_further)
- ($.definition \\parser.result'
- "Applies the parser against a tree zipper."
- [(result' parser zipper)])
+ ($.definition (\\parser.Parser it)
+ "A parser of arbitrary trees.")
- ($.definition \\parser.result
- "Applies the parser against a tree."
- [(result parser tree)])
+ ($.definition \\parser.result'
+ "Applies the parser against a tree zipper."
+ [(result' parser zipper)])
- ($.definition \\parser.value
- "Yields the value inside the current tree node.")
+ ($.definition \\parser.result
+ "Applies the parser against a tree."
+ [(result parser tree)])
- (,, (with_template [<name> <doc>]
- [($.definition <name>
- <doc>)]
+ ($.definition \\parser.value
+ "Yields the value inside the current tree node.")
- [\\parser.down "Move down."]
- [\\parser.up "Move up."]
+ (,, (with_template [<name> <doc>]
+ [($.definition <name>
+ <doc>)]
- [\\parser.right "Move to the right."]
- [\\parser.rightmost "Move to the rightmost node."]
+ [\\parser.down "Move down."]
+ [\\parser.up "Move up."]
- [\\parser.left "Move to the left."]
- [\\parser.leftmost "Move to the leftmost node."]
-
- [\\parser.next "Move to the next node."]
- [\\parser.end "Move to the last node."]
-
- [\\parser.previous "Move to the previous node."]
- [\\parser.start "Move to the root node."]
- ))]
- [])))
+ [\\parser.right "Move to the right."]
+ [\\parser.rightmost "Move to the rightmost node."]
+
+ [\\parser.left "Move to the left."]
+ [\\parser.leftmost "Move to the leftmost node."]
+
+ [\\parser.next "Move to the next node."]
+ [\\parser.end "Move to the last node."]
+
+ [\\parser.previous "Move to the previous node."]
+ [\\parser.start "Move to the root node."]
+ ))
+ )))
(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.equivalence)
- ($.definition /.functor)
- ($.definition /.mix)
-
- ($.definition (/.Tree it)
- "A generic tree data-structure.")
-
- ($.definition /.flat
- "All the leaf values of the tree, in order."
- [(flat tree)])
-
- ($.definition /.leaf
- ""
- [(leaf value)])
-
- ($.definition /.branch
- ""
- [(branch value children)])
-
- ($.definition /.tree
- "Tree literals."
- [(is (Tree Nat)
- (tree 12
- {34 {}
- 56 {}
- 78 {90 {}}}))])]
- [..\\parser
-
- /finger.documentation
- /zipper.documentation]))
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
+
+ ($.definition /.equivalence)
+ ($.definition /.functor)
+ ($.definition /.mix)
+
+ ($.definition (/.Tree it)
+ "A generic tree data-structure.")
+
+ ($.definition /.flat
+ "All the leaf values of the tree, in order."
+ [(flat tree)])
+
+ ($.definition /.leaf
+ ""
+ [(leaf value)])
+
+ ($.definition /.branch
+ ""
+ [(branch value children)])
+
+ ($.definition /.tree
+ "Tree literals."
+ [(is (Tree Nat)
+ (tree 12
+ {34 {}
+ 56 {}
+ 78 {90 {}}}))])
+
+ (all list#composite
+ ..\\parser
+ /finger.documentation
+ /zipper.documentation
+ )
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/tree/finger.lux b/stdlib/source/documentation/lux/data/collection/tree/finger.lux
index cc6573633..dacba465b 100644
--- a/stdlib/source/documentation/lux/data/collection/tree/finger.lux
+++ b/stdlib/source/documentation/lux/data/collection/tree/finger.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except list)
+ [lux (.except)
["$" documentation]
[data
["[0]" text (.only \n)
@@ -8,40 +8,41 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.tag)
- ($.definition /.root)
+(def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition (/.Tree @ tag value)
- "A finger tree.")
+ ($.definition /.tag)
+ ($.definition /.root)
- ($.definition (/.Builder @ tag)
- "A builder for finter tree structures.")
+ ($.definition (/.Tree @ tag value)
+ "A finger tree.")
- ($.definition /.builder
- "A new builder using the given monoid."
- [(builder monoid)])
+ ($.definition (/.Builder @ tag)
+ "A builder for finter tree structures.")
- ($.definition /.value
- ""
- [(value tree)])
+ ($.definition /.builder
+ "A new builder using the given monoid."
+ [(builder monoid)])
- ($.definition /.tags
- ""
- [(tags tree)])
+ ($.definition /.value
+ ""
+ [(value tree)])
- ($.definition /.values
- ""
- [(values tree)])
+ ($.definition /.tags
+ ""
+ [(tags tree)])
- ($.definition /.one
- "Finds one value that meets the predicate."
- [(one predicate tree)])
+ ($.definition /.values
+ ""
+ [(values tree)])
- ($.definition /.exists?
- "Verifies that a value exists which meets the predicate."
- [(exists? predicate tree)])]
- []))
+ ($.definition /.one
+ "Finds one value that meets the predicate."
+ [(one predicate tree)])
+
+ ($.definition /.exists?
+ "Verifies that a value exists which meets the predicate."
+ [(exists? predicate tree)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/collection/tree/zipper.lux b/stdlib/source/documentation/lux/data/collection/tree/zipper.lux
index 7d33d944a..052f816fb 100644
--- a/stdlib/source/documentation/lux/data/collection/tree/zipper.lux
+++ b/stdlib/source/documentation/lux/data/collection/tree/zipper.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except list)
+ [lux (.except)
["$" documentation]
[data
["[0]" text (.only \n)
@@ -8,50 +8,51 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.equivalence)
- ($.definition /.zipper)
- ($.definition /.tree)
- ($.definition /.value)
- ($.definition /.leaf?)
- ($.definition /.branch?)
- ($.definition /.start?)
- ($.definition /.down)
- ($.definition /.up)
- ($.definition /.right)
- ($.definition /.rightmost)
- ($.definition /.left)
- ($.definition /.leftmost)
- ($.definition /.next)
- ($.definition /.previous)
- ($.definition /.end)
- ($.definition /.start)
- ($.definition /.end?)
- ($.definition /.remove)
- ($.definition /.insert_left)
- ($.definition /.insert_right)
- ($.definition /.functor)
- ($.definition /.comonad)
+(def .public documentation
+ (.List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition (/.Zipper it)
- "Tree zippers, for easy navigation and editing of trees.")
+ ($.definition /.equivalence)
+ ($.definition /.zipper)
+ ($.definition /.tree)
+ ($.definition /.value)
+ ($.definition /.leaf?)
+ ($.definition /.branch?)
+ ($.definition /.start?)
+ ($.definition /.down)
+ ($.definition /.up)
+ ($.definition /.right)
+ ($.definition /.rightmost)
+ ($.definition /.left)
+ ($.definition /.leftmost)
+ ($.definition /.next)
+ ($.definition /.previous)
+ ($.definition /.end)
+ ($.definition /.start)
+ ($.definition /.end?)
+ ($.definition /.remove)
+ ($.definition /.insert_left)
+ ($.definition /.insert_right)
+ ($.definition /.functor)
+ ($.definition /.comonad)
- ($.definition /.set
- ""
- [(set value zipper)])
+ ($.definition (/.Zipper it)
+ "Tree zippers, for easy navigation and editing of trees.")
- ($.definition /.update
- ""
- [(update transform zipper)])
+ ($.definition /.set
+ ""
+ [(set value zipper)])
- ($.definition /.interpose
- ""
- [(interpose value zipper)])
+ ($.definition /.update
+ ""
+ [(update transform zipper)])
- ($.definition /.adopt
- ""
- [(adopt value zipper)])]
- []))
+ ($.definition /.interpose
+ ""
+ [(interpose value zipper)])
+
+ ($.definition /.adopt
+ ""
+ [(adopt value zipper)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/color.lux b/stdlib/source/documentation/lux/data/color.lux
index 5c2f37e09..b6ed59dab 100644
--- a/stdlib/source/documentation/lux/data/color.lux
+++ b/stdlib/source/documentation/lux/data/color.lux
@@ -4,7 +4,9 @@
["$" documentation]
[data
["[0]" text (.only \n)
- ["%" \\format (.only format)]]]
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list]]]
[meta
["[0]" code (.only)
["<[1]>" \\parser]]
@@ -20,88 +22,91 @@
(syntax (_ [[_ name] <code>.symbol])
(in (list (code.text (format "A " (text.replaced "_" "-" name) " palette."))))))
-(`` (.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.of_rgb)
- ($.definition /.rgb)
- ($.definition /.equivalence)
- ($.definition /.hash)
- ($.definition /.black)
- ($.definition /.white)
- ($.definition /.addition)
- ($.definition /.subtraction)
- ($.definition /.hsl)
- ($.definition /.of_hsl)
- ($.definition /.hsb)
- ($.definition /.of_hsb)
- ($.definition /.cmyk)
- ($.definition /.of_cmyk)
- ($.definition /.gray_scale)
- ($.definition /.Spread)
- ($.definition /.Palette)
- ($.definition /.darker)
- ($.definition /.brighter)
- ($.definition /.saturated)
- ($.definition /.un_saturated)
-
- ($.definition /.RGB
- "Red-Green-Blue color format.")
-
- ($.definition /.HSL
- "Hue-Saturation-Lightness color format.")
-
- ($.definition /.CMYK
- "Cyan-Magenta-Yellow-Key color format.")
-
- ($.definition /.HSB
- "Hue-Saturation-Brightness color format.")
-
- ($.definition /.Color
- "A color value, independent of color format.")
-
- ($.definition /.complement
- "The opposite color."
- [(complement color)])
-
- ($.definition /.interpolated
- ""
- [(interpolated ratio end start)])
-
- ($.definition /.analogous
- (palette_documentation /.analogous)
- [(analogous spread variations color)])
-
- ($.definition /.monochromatic
- (palette_documentation /.monochromatic)
- [(monochromatic spread variations color)])
-
- ($.definition /.Alpha
- "The degree of transparency of a pigment.")
-
- ($.definition /.transparent
- "The maximum degree of transparency.")
-
- ($.definition /.translucent
- "The average degree of transparency.")
-
- ($.definition /.opaque
- "The minimum degree of transparency.")
-
- ($.definition /.Pigment
- "A color with some degree of transparency.")
-
- (,, (with_template [<name>]
- [(`` ($.definition <name>
- (format "A "
- (text.replaced "_" "-" (,, (template.text [<name>])))
- " color scheme.")))]
-
- [/.triad]
- [/.clash]
- [/.split_complement]
- [/.square]
- [/.tetradic]
- ))]
- [/named.documentation])))
+(`` (def .public documentation
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
+
+ ($.definition /.of_rgb)
+ ($.definition /.rgb)
+ ($.definition /.equivalence)
+ ($.definition /.hash)
+ ($.definition /.black)
+ ($.definition /.white)
+ ($.definition /.addition)
+ ($.definition /.subtraction)
+ ($.definition /.hsl)
+ ($.definition /.of_hsl)
+ ($.definition /.hsb)
+ ($.definition /.of_hsb)
+ ($.definition /.cmyk)
+ ($.definition /.of_cmyk)
+ ($.definition /.gray_scale)
+ ($.definition /.Spread)
+ ($.definition /.Palette)
+ ($.definition /.darker)
+ ($.definition /.brighter)
+ ($.definition /.saturated)
+ ($.definition /.un_saturated)
+
+ ($.definition /.RGB
+ "Red-Green-Blue color format.")
+
+ ($.definition /.HSL
+ "Hue-Saturation-Lightness color format.")
+
+ ($.definition /.CMYK
+ "Cyan-Magenta-Yellow-Key color format.")
+
+ ($.definition /.HSB
+ "Hue-Saturation-Brightness color format.")
+
+ ($.definition /.Color
+ "A color value, independent of color format.")
+
+ ($.definition /.complement
+ "The opposite color."
+ [(complement color)])
+
+ ($.definition /.interpolated
+ ""
+ [(interpolated ratio end start)])
+
+ ($.definition /.analogous
+ (palette_documentation /.analogous)
+ [(analogous spread variations color)])
+
+ ($.definition /.monochromatic
+ (palette_documentation /.monochromatic)
+ [(monochromatic spread variations color)])
+
+ ($.definition /.Alpha
+ "The degree of transparency of a pigment.")
+
+ ($.definition /.transparent
+ "The maximum degree of transparency.")
+
+ ($.definition /.translucent
+ "The average degree of transparency.")
+
+ ($.definition /.opaque
+ "The minimum degree of transparency.")
+
+ ($.definition /.Pigment
+ "A color with some degree of transparency.")
+
+ (,, (with_template [<name>]
+ [(`` ($.definition <name>
+ (format "A "
+ (text.replaced "_" "-" (,, (template.text [<name>])))
+ " color scheme.")))]
+
+ [/.triad]
+ [/.clash]
+ [/.split_complement]
+ [/.square]
+ [/.tetradic]
+ ))
+
+ /named.documentation
+ )))
diff --git a/stdlib/source/documentation/lux/data/color/named.lux b/stdlib/source/documentation/lux/data/color/named.lux
index 239281ab1..4ed4c3324 100644
--- a/stdlib/source/documentation/lux/data/color/named.lux
+++ b/stdlib/source/documentation/lux/data/color/named.lux
@@ -12,159 +12,160 @@
["[0]" / (.only)
["/[1]" //]]])
-(`` (.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [(,, (with_template [<name>]
- [($.definition <name>
- (let [[red green blue] (//.rgb <name>)
- [_ name] (symbol <name>)]
- (format "R:" (hex#encoded red)
- " G:" (hex#encoded green)
- " B:" (hex#encoded blue)
- " | " (text.replaced "_" " " name))))]
+(`` (def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- [/.alice_blue]
- [/.antique_white]
- [/.aqua]
- [/.aquamarine]
- [/.azure]
- [/.beige]
- [/.bisque]
- [/.black]
- [/.blanched_almond]
- [/.blue]
- [/.blue_violet]
- [/.brown]
- [/.burly_wood]
- [/.cadet_blue]
- [/.chartreuse]
- [/.chocolate]
- [/.coral]
- [/.cornflower_blue]
- [/.cornsilk]
- [/.crimson]
- [/.cyan]
- [/.dark_blue]
- [/.dark_cyan]
- [/.dark_goldenrod]
- [/.dark_gray]
- [/.dark_green]
- [/.dark_khaki]
- [/.dark_magenta]
- [/.dark_olive_green]
- [/.dark_orange]
- [/.dark_orchid]
- [/.dark_red]
- [/.dark_salmon]
- [/.dark_sea_green]
- [/.dark_slate_blue]
- [/.dark_slate_gray]
- [/.dark_turquoise]
- [/.dark_violet]
- [/.deep_pink]
- [/.deep_sky_blue]
- [/.dim_gray]
- [/.dodger_blue]
- [/.fire_brick]
- [/.floral_white]
- [/.forest_green]
- [/.fuchsia]
- [/.gainsboro]
- [/.ghost_white]
- [/.gold]
- [/.goldenrod]
- [/.gray]
- [/.green]
- [/.green_yellow]
- [/.honey_dew]
- [/.hot_pink]
- [/.indian_red]
- [/.indigo]
- [/.ivory]
- [/.khaki]
- [/.lavender]
- [/.lavender_blush]
- [/.lawn_green]
- [/.lemon_chiffon]
- [/.light_blue]
- [/.light_coral]
- [/.light_cyan]
- [/.light_goldenrod_yellow]
- [/.light_gray]
- [/.light_green]
- [/.light_pink]
- [/.light_salmon]
- [/.light_sea_green]
- [/.light_sky_blue]
- [/.light_slate_gray]
- [/.light_steel_blue]
- [/.light_yellow]
- [/.lime]
- [/.lime_green]
- [/.linen]
- [/.magenta]
- [/.maroon]
- [/.medium_aquamarine]
- [/.medium_blue]
- [/.medium_orchid]
- [/.medium_purple]
- [/.medium_sea_green]
- [/.medium_slate_blue]
- [/.medium_spring_green]
- [/.medium_turquoise]
- [/.medium_violet_red]
- [/.midnight_blue]
- [/.mint_cream]
- [/.misty_rose]
- [/.moccasin]
- [/.navajo_white]
- [/.navy]
- [/.old_lace]
- [/.olive]
- [/.olive_drab]
- [/.orange]
- [/.orange_red]
- [/.orchid]
- [/.pale_goldenrod]
- [/.pale_green]
- [/.pale_turquoise]
- [/.pale_violet_red]
- [/.papaya_whip]
- [/.peach_puff]
- [/.peru]
- [/.pink]
- [/.plum]
- [/.powder_blue]
- [/.purple]
- [/.rebecca_purple]
- [/.red]
- [/.rosy_brown]
- [/.royal_blue]
- [/.saddle_brown]
- [/.salmon]
- [/.sandy_brown]
- [/.sea_green]
- [/.sea_shell]
- [/.sienna]
- [/.silver]
- [/.sky_blue]
- [/.slate_blue]
- [/.slate_gray]
- [/.snow]
- [/.spring_green]
- [/.steel_blue]
- [/.tan]
- [/.teal]
- [/.thistle]
- [/.tomato]
- [/.turquoise]
- [/.violet]
- [/.wheat]
- [/.white]
- [/.white_smoke]
- [/.yellow]
- [/.yellow_green]
- ))]
- [])))
+ (,, (with_template [<name>]
+ [($.definition <name>
+ (let [[red green blue] (//.rgb <name>)
+ [_ name] (symbol <name>)]
+ (format "R:" (hex#encoded red)
+ " G:" (hex#encoded green)
+ " B:" (hex#encoded blue)
+ " | " (text.replaced "_" " " name))))]
+
+ [/.alice_blue]
+ [/.antique_white]
+ [/.aqua]
+ [/.aquamarine]
+ [/.azure]
+ [/.beige]
+ [/.bisque]
+ [/.black]
+ [/.blanched_almond]
+ [/.blue]
+ [/.blue_violet]
+ [/.brown]
+ [/.burly_wood]
+ [/.cadet_blue]
+ [/.chartreuse]
+ [/.chocolate]
+ [/.coral]
+ [/.cornflower_blue]
+ [/.cornsilk]
+ [/.crimson]
+ [/.cyan]
+ [/.dark_blue]
+ [/.dark_cyan]
+ [/.dark_goldenrod]
+ [/.dark_gray]
+ [/.dark_green]
+ [/.dark_khaki]
+ [/.dark_magenta]
+ [/.dark_olive_green]
+ [/.dark_orange]
+ [/.dark_orchid]
+ [/.dark_red]
+ [/.dark_salmon]
+ [/.dark_sea_green]
+ [/.dark_slate_blue]
+ [/.dark_slate_gray]
+ [/.dark_turquoise]
+ [/.dark_violet]
+ [/.deep_pink]
+ [/.deep_sky_blue]
+ [/.dim_gray]
+ [/.dodger_blue]
+ [/.fire_brick]
+ [/.floral_white]
+ [/.forest_green]
+ [/.fuchsia]
+ [/.gainsboro]
+ [/.ghost_white]
+ [/.gold]
+ [/.goldenrod]
+ [/.gray]
+ [/.green]
+ [/.green_yellow]
+ [/.honey_dew]
+ [/.hot_pink]
+ [/.indian_red]
+ [/.indigo]
+ [/.ivory]
+ [/.khaki]
+ [/.lavender]
+ [/.lavender_blush]
+ [/.lawn_green]
+ [/.lemon_chiffon]
+ [/.light_blue]
+ [/.light_coral]
+ [/.light_cyan]
+ [/.light_goldenrod_yellow]
+ [/.light_gray]
+ [/.light_green]
+ [/.light_pink]
+ [/.light_salmon]
+ [/.light_sea_green]
+ [/.light_sky_blue]
+ [/.light_slate_gray]
+ [/.light_steel_blue]
+ [/.light_yellow]
+ [/.lime]
+ [/.lime_green]
+ [/.linen]
+ [/.magenta]
+ [/.maroon]
+ [/.medium_aquamarine]
+ [/.medium_blue]
+ [/.medium_orchid]
+ [/.medium_purple]
+ [/.medium_sea_green]
+ [/.medium_slate_blue]
+ [/.medium_spring_green]
+ [/.medium_turquoise]
+ [/.medium_violet_red]
+ [/.midnight_blue]
+ [/.mint_cream]
+ [/.misty_rose]
+ [/.moccasin]
+ [/.navajo_white]
+ [/.navy]
+ [/.old_lace]
+ [/.olive]
+ [/.olive_drab]
+ [/.orange]
+ [/.orange_red]
+ [/.orchid]
+ [/.pale_goldenrod]
+ [/.pale_green]
+ [/.pale_turquoise]
+ [/.pale_violet_red]
+ [/.papaya_whip]
+ [/.peach_puff]
+ [/.peru]
+ [/.pink]
+ [/.plum]
+ [/.powder_blue]
+ [/.purple]
+ [/.rebecca_purple]
+ [/.red]
+ [/.rosy_brown]
+ [/.royal_blue]
+ [/.saddle_brown]
+ [/.salmon]
+ [/.sandy_brown]
+ [/.sea_green]
+ [/.sea_shell]
+ [/.sienna]
+ [/.silver]
+ [/.sky_blue]
+ [/.slate_blue]
+ [/.slate_gray]
+ [/.snow]
+ [/.spring_green]
+ [/.steel_blue]
+ [/.tan]
+ [/.teal]
+ [/.thistle]
+ [/.tomato]
+ [/.turquoise]
+ [/.violet]
+ [/.wheat]
+ [/.white]
+ [/.white_smoke]
+ [/.yellow]
+ [/.yellow_green]
+ ))
+ )))
diff --git a/stdlib/source/documentation/lux/data/format.lux b/stdlib/source/documentation/lux/data/format.lux
index 7dbf22055..b1aaea3b6 100644
--- a/stdlib/source/documentation/lux/data/format.lux
+++ b/stdlib/source/documentation/lux/data/format.lux
@@ -12,8 +12,8 @@
["[1][0]" tar]
["[1][0]" xml]])
-(.def .public documentation
- (.List $.Module)
+(def .public documentation
+ (List $.Documentation)
(list.together
(list /json.documentation
/tar.documentation
diff --git a/stdlib/source/documentation/lux/data/format/json.lux b/stdlib/source/documentation/lux/data/format/json.lux
index 93bc3add9..48a62f2e0 100644
--- a/stdlib/source/documentation/lux/data/format/json.lux
+++ b/stdlib/source/documentation/lux/data/format/json.lux
@@ -4,7 +4,9 @@
["$" documentation]
[data
[text (.only \n)
- ["%" \\format (.only format)]]]
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list]]]
[meta
[macro
["[0]" template]]]]]
@@ -12,122 +14,126 @@
[\\library
["[0]" /]])
-(`` (.def \\parser
- (.List $.Module)
- ($.module \\parser._
- ""
- [($.definition \\parser.unconsumed_input)
- ($.definition \\parser.empty_input)
- ($.definition \\parser.unexpected_value)
- ($.definition \\parser.value_mismatch)
-
- ($.definition (\\parser.Parser it)
- "A JSON parser.")
-
- ($.definition \\parser.result
- (format "Executes the parser against a JSON object."
- \n "Verifies that all of the JSON was consumed by the parser.")
- [(result parser json)])
-
- ($.definition \\parser.any
- "Just returns the JSON input without applying any logic.")
-
- (,, (with_template [<name>]
- [(`` ($.definition <name>
- (format "Reads a JSON value as " (,, (template.text [<name>])) ".")))]
-
- [\\parser.null]
- [\\parser.boolean]
- [\\parser.number]
- [\\parser.string]
- ))
-
- (,, (with_template [<test> <check> <read>]
- [(`` ($.definition <test>
- (format "Asks whether a JSON value is a " (,, (template.text [<read>])) ".")))
- (`` ($.definition <check>
- (format "Ensures a JSON value is a " (,, (template.text [<read>])) ".")))]
-
- [\\parser.boolean? \\parser.this_boolean ..boolean]
- [\\parser.number? \\parser.this_number ..number]
- [\\parser.string? \\parser.this_string ..string]
- ))
-
- ($.definition \\parser.nullable
- "Enhances parser by adding NULL-handling."
- [(nullable parser)])
-
- ($.definition \\parser.array
- "Parses the contents of a JSON array."
- [(array parser)])
-
- ($.definition \\parser.object
- (format "Parses the contents of a JSON object."
- \n "Use this with the 'field' combinator.")
- [(object parser)])
-
- ($.definition \\parser.field
- (format "Parses a field inside a JSON object."
- \n "Use this inside the 'object' combinator.")
- [(field field_name parser)])
-
- ($.definition \\parser.dictionary
- "Parses a dictionary-like JSON object.")]
- [])))
+(`` (def \\parser
+ (List $.Documentation)
+ (list ($.module \\parser._
+ "")
+
+ ($.definition \\parser.unconsumed_input)
+ ($.definition \\parser.empty_input)
+ ($.definition \\parser.unexpected_value)
+ ($.definition \\parser.value_mismatch)
+
+ ($.definition (\\parser.Parser it)
+ "A JSON parser.")
+
+ ($.definition \\parser.result
+ (format "Executes the parser against a JSON object."
+ \n "Verifies that all of the JSON was consumed by the parser.")
+ [(result parser json)])
+
+ ($.definition \\parser.any
+ "Just returns the JSON input without applying any logic.")
+
+ (,, (with_template [<name>]
+ [(`` ($.definition <name>
+ (format "Reads a JSON value as " (,, (template.text [<name>])) ".")))]
+
+ [\\parser.null]
+ [\\parser.boolean]
+ [\\parser.number]
+ [\\parser.string]
+ ))
+
+ (,, (with_template [<test> <check> <read>]
+ [(`` ($.definition <test>
+ (format "Asks whether a JSON value is a " (,, (template.text [<read>])) ".")))
+ (`` ($.definition <check>
+ (format "Ensures a JSON value is a " (,, (template.text [<read>])) ".")))]
+
+ [\\parser.boolean? \\parser.this_boolean ..boolean]
+ [\\parser.number? \\parser.this_number ..number]
+ [\\parser.string? \\parser.this_string ..string]
+ ))
+
+ ($.definition \\parser.nullable
+ "Enhances parser by adding NULL-handling."
+ [(nullable parser)])
+
+ ($.definition \\parser.array
+ "Parses the contents of a JSON array."
+ [(array parser)])
+
+ ($.definition \\parser.object
+ (format "Parses the contents of a JSON object."
+ \n "Use this with the 'field' combinator.")
+ [(object parser)])
+
+ ($.definition \\parser.field
+ (format "Parses a field inside a JSON object."
+ \n "Use this inside the 'object' combinator.")
+ [(field field_name parser)])
+
+ ($.definition \\parser.dictionary
+ "Parses a dictionary-like JSON object.")
+ )))
(`` (.def .public documentation
- (.List $.Module)
- ($.module /._
- (format "Functionality for reading and writing values in the JSON format."
- \n "For more information, please see: http://www.json.org/")
- [($.definition /.Null)
- ($.definition /.Boolean)
- ($.definition /.Number)
- ($.definition /.String)
- ($.definition /.JSON)
- ($.definition /.Array)
- ($.definition /.Object)
- ($.definition /.null?)
- ($.definition /.object)
- ($.definition /.equivalence)
- ($.definition /.format)
- ($.definition /.codec)
-
- ($.definition /.json
- "A simple way to produce JSON literals."
- ["null"
- (json #null)]
- ["true"
- (json #1)]
- ["123.456"
- (json +123.456)]
- ["'this is a string'"
- (json "this is a string")]
- ["['this' 'is' 'an' 'array']"
- (json ["this" "is" "an" "array"])]
- ["{'this' 'is', 'an' 'object'}"
- (json {"this" "is" "an" "object"})])
-
- ($.definition /.fields
- "Get all the fields in a JSON object."
- [(fields json)])
-
- ($.definition /.field
- "A JSON object field getter."
- [(field key json)])
-
- ($.definition /.has
- "A JSON object field setter."
- [(has key value json)])
-
- (,, (with_template [<name> <desc>]
- [($.definition <name>
- (format "A JSON object field getter for " <desc> "."))]
-
- [/.boolean_field "booleans"]
- [/.number_field "numbers"]
- [/.string_field "strings"]
- [/.array_field "arrays"]
- [/.object_field "objects"]
- ))]
- [..\\parser])))
+ (List $.Documentation)
+ (list.partial ($.module /._
+ (format "Functionality for reading and writing values in the JSON format."
+ \n "For more information, please see: http://www.json.org/"))
+
+ ($.definition /.Null)
+ ($.definition /.Boolean)
+ ($.definition /.Number)
+ ($.definition /.String)
+ ($.definition /.JSON)
+ ($.definition /.Array)
+ ($.definition /.Object)
+ ($.definition /.null?)
+ ($.definition /.object)
+ ($.definition /.equivalence)
+ ($.definition /.format)
+ ($.definition /.codec)
+
+ ($.definition /.json
+ "A simple way to produce JSON literals."
+ ["null"
+ (json #null)]
+ ["true"
+ (json #1)]
+ ["123.456"
+ (json +123.456)]
+ ["'this is a string'"
+ (json "this is a string")]
+ ["['this' 'is' 'an' 'array']"
+ (json ["this" "is" "an" "array"])]
+ ["{'this' 'is', 'an' 'object'}"
+ (json {"this" "is" "an" "object"})])
+
+ ($.definition /.fields
+ "Get all the fields in a JSON object."
+ [(fields json)])
+
+ ($.definition /.field
+ "A JSON object field getter."
+ [(field key json)])
+
+ ($.definition /.has
+ "A JSON object field setter."
+ [(has key value json)])
+
+ (,, (with_template [<name> <desc>]
+ [($.definition <name>
+ (format "A JSON object field getter for " <desc> "."))]
+
+ [/.boolean_field "booleans"]
+ [/.number_field "numbers"]
+ [/.string_field "strings"]
+ [/.array_field "arrays"]
+ [/.object_field "objects"]
+ ))
+
+ ..\\parser
+ )))
diff --git a/stdlib/source/documentation/lux/data/format/tar.lux b/stdlib/source/documentation/lux/data/format/tar.lux
index 9de7d8ca9..ec8c7f373 100644
--- a/stdlib/source/documentation/lux/data/format/tar.lux
+++ b/stdlib/source/documentation/lux/data/format/tar.lux
@@ -8,79 +8,80 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.not_a_small_number)
- ($.definition /.small_limit)
- ($.definition /.Small)
- ($.definition /.small)
- ($.definition /.from_small)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition /.not_a_big_number)
- ($.definition /.big_limit)
- ($.definition /.Big)
- ($.definition /.big)
- ($.definition /.from_big)
+ ($.definition /.not_a_small_number)
+ ($.definition /.small_limit)
+ ($.definition /.Small)
+ ($.definition /.small)
+ ($.definition /.from_small)
- ($.definition /.wrong_character)
- ($.definition /.not_ascii)
- ($.definition /.name_size)
- ($.definition /.path_size)
+ ($.definition /.not_a_big_number)
+ ($.definition /.big_limit)
+ ($.definition /.Big)
+ ($.definition /.big)
+ ($.definition /.from_big)
- ($.definition /.Name)
- ($.definition /.name_is_too_long)
- ($.definition /.name)
- ($.definition /.from_name)
- ($.definition /.anonymous)
+ ($.definition /.wrong_character)
+ ($.definition /.not_ascii)
+ ($.definition /.name_size)
+ ($.definition /.path_size)
- ($.definition /.Path)
- ($.definition /.path_is_too_long)
- ($.definition /.path)
- ($.definition /.from_path)
- ($.definition /.no_path)
+ ($.definition /.Name)
+ ($.definition /.name_is_too_long)
+ ($.definition /.name)
+ ($.definition /.from_name)
+ ($.definition /.anonymous)
- ($.definition /.invalid_link_flag)
- ($.definition /.Mode)
- ($.definition /.mode)
- ($.definition /.and)
- ($.definition /.invalid_mode)
+ ($.definition /.Path)
+ ($.definition /.path_is_too_long)
+ ($.definition /.path)
+ ($.definition /.from_path)
+ ($.definition /.no_path)
- ($.definition /.none)
-
- ($.definition /.execute_by_other)
- ($.definition /.write_by_other)
- ($.definition /.read_by_other)
+ ($.definition /.invalid_link_flag)
+ ($.definition /.Mode)
+ ($.definition /.mode)
+ ($.definition /.and)
+ ($.definition /.invalid_mode)
- ($.definition /.execute_by_group)
- ($.definition /.write_by_group)
- ($.definition /.read_by_group)
+ ($.definition /.none)
+
+ ($.definition /.execute_by_other)
+ ($.definition /.write_by_other)
+ ($.definition /.read_by_other)
- ($.definition /.execute_by_owner)
- ($.definition /.write_by_owner)
- ($.definition /.read_by_owner)
+ ($.definition /.execute_by_group)
+ ($.definition /.write_by_group)
+ ($.definition /.read_by_group)
- ($.definition /.save_text)
- ($.definition /.set_group_id_on_execution)
- ($.definition /.set_user_id_on_execution)
-
- ($.definition /.Content)
- ($.definition /.content)
- ($.definition /.data)
- ($.definition /.ID)
- ($.definition /.no_id)
- ($.definition /.Owner)
- ($.definition /.Ownership)
- ($.definition /.File)
- ($.definition /.Normal)
- ($.definition /.Symbolic_Link)
- ($.definition /.Directory)
- ($.definition /.Contiguous)
- ($.definition /.Entry)
- ($.definition /.Tar)
- ($.definition /.format)
- ($.definition /.wrong_checksum)
- ($.definition /.invalid_end_of_archive)
- ($.definition /.parser)]
- []))
+ ($.definition /.execute_by_owner)
+ ($.definition /.write_by_owner)
+ ($.definition /.read_by_owner)
+
+ ($.definition /.save_text)
+ ($.definition /.set_group_id_on_execution)
+ ($.definition /.set_user_id_on_execution)
+
+ ($.definition /.Content)
+ ($.definition /.content)
+ ($.definition /.data)
+ ($.definition /.ID)
+ ($.definition /.no_id)
+ ($.definition /.Owner)
+ ($.definition /.Ownership)
+ ($.definition /.File)
+ ($.definition /.Normal)
+ ($.definition /.Symbolic_Link)
+ ($.definition /.Directory)
+ ($.definition /.Contiguous)
+ ($.definition /.Entry)
+ ($.definition /.Tar)
+ ($.definition /.format)
+ ($.definition /.wrong_checksum)
+ ($.definition /.invalid_end_of_archive)
+ ($.definition /.parser)
+ ))
diff --git a/stdlib/source/documentation/lux/data/format/xml.lux b/stdlib/source/documentation/lux/data/format/xml.lux
index 60c2841e9..22c80ea1f 100644
--- a/stdlib/source/documentation/lux/data/format/xml.lux
+++ b/stdlib/source/documentation/lux/data/format/xml.lux
@@ -4,70 +4,76 @@
["$" documentation]
[data
[text (.only \n)
- ["%" \\format (.only format)]]]]]
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list]]]]]
["[0]" \\parser]
[\\library
["[0]" /]])
-(.def \\parser
- (.List $.Module)
- ($.module \\parser._
- ""
- [($.definition \\parser.empty_input)
- ($.definition \\parser.unexpected_input)
- ($.definition \\parser.wrong_tag)
- ($.definition \\parser.unknown_attribute)
- ($.definition \\parser.unconsumed_inputs)
- ($.definition \\parser.nowhere)
-
- ($.definition (\\parser.Parser it)
- "A parser of XML-encoded data.")
-
- ($.definition \\parser.result
- (format "Applies a parser against a stream of XML documents."
- \n "Verifies that all of the inputs are consumed by the parser.")
- [(result parser documents)])
-
- ($.definition \\parser.text
- "Yields text from a text node.")
-
- ($.definition \\parser.tag
- "Yields the tag from the next node.")
-
- ($.definition \\parser.attribute
- "Yields the value of an attribute in the current node."
- [(attribute name)])
-
- ($.definition \\parser.node
- "Parses the contents of the next node if the tag matches."
- [(node expected parser)])
-
- ($.definition \\parser.any
- "Yields the next node.")
-
- ($.definition \\parser.somewhere
- "Applies the parser somewhere among the remaining inputs; instead of demanding that the parser succeeds against the immediate inputs."
- [(somewhere parser)])]
- []))
-
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.Tag)
- ($.definition /.Attribute)
- ($.definition /.Attrs)
- ($.definition /.XML)
- ($.definition /.codec)
- ($.definition /.equivalence)
-
- ($.definition /.attributes
- "An empty set of XML attributes.")
-
- ($.definition /.tag
- "The text format of a XML tag."
- [(tag name)])
-
- ($.definition /.attribute
- "The text format of a XML attribute.")]
- [..\\parser]))
+(def \\parser
+ (List $.Documentation)
+ (list ($.module \\parser._
+ "")
+
+ ($.definition \\parser.empty_input)
+ ($.definition \\parser.unexpected_input)
+ ($.definition \\parser.wrong_tag)
+ ($.definition \\parser.unknown_attribute)
+ ($.definition \\parser.unconsumed_inputs)
+ ($.definition \\parser.nowhere)
+
+ ($.definition (\\parser.Parser it)
+ "A parser of XML-encoded data.")
+
+ ($.definition \\parser.result
+ (format "Applies a parser against a stream of XML documents."
+ \n "Verifies that all of the inputs are consumed by the parser.")
+ [(result parser documents)])
+
+ ($.definition \\parser.text
+ "Yields text from a text node.")
+
+ ($.definition \\parser.tag
+ "Yields the tag from the next node.")
+
+ ($.definition \\parser.attribute
+ "Yields the value of an attribute in the current node."
+ [(attribute name)])
+
+ ($.definition \\parser.node
+ "Parses the contents of the next node if the tag matches."
+ [(node expected parser)])
+
+ ($.definition \\parser.any
+ "Yields the next node.")
+
+ ($.definition \\parser.somewhere
+ "Applies the parser somewhere among the remaining inputs; instead of demanding that the parser succeeds against the immediate inputs."
+ [(somewhere parser)])
+ ))
+
+(def .public documentation
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
+
+ ($.definition /.Tag)
+ ($.definition /.Attribute)
+ ($.definition /.Attrs)
+ ($.definition /.XML)
+ ($.definition /.codec)
+ ($.definition /.equivalence)
+
+ ($.definition /.attributes
+ "An empty set of XML attributes.")
+
+ ($.definition /.tag
+ "The text format of a XML tag."
+ [(tag name)])
+
+ ($.definition /.attribute
+ "The text format of a XML attribute.")
+
+ ..\\parser
+ ))
diff --git a/stdlib/source/documentation/lux/data/identity.lux b/stdlib/source/documentation/lux/data/identity.lux
index acf3d9bed..c150d7d97 100644
--- a/stdlib/source/documentation/lux/data/identity.lux
+++ b/stdlib/source/documentation/lux/data/identity.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except nat int rev list or and)
+ [lux (.except)
["$" documentation]
[data
[text (.only \n)
@@ -8,15 +8,16 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.functor)
- ($.definition /.apply)
- ($.definition /.monad)
- ($.definition /.comonad)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition (/.Identity it)
- "A value, as is, without any extra structure super-imposed on it.")]
- []))
+ ($.definition /.functor)
+ ($.definition /.apply)
+ ($.definition /.monad)
+ ($.definition /.comonad)
+
+ ($.definition (/.Identity it)
+ "A value, as is, without any extra structure super-imposed on it.")
+ ))
diff --git a/stdlib/source/documentation/lux/data/product.lux b/stdlib/source/documentation/lux/data/product.lux
index 05cb39ca8..a589fdd9c 100644
--- a/stdlib/source/documentation/lux/data/product.lux
+++ b/stdlib/source/documentation/lux/data/product.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except left right)
+ [lux (.except)
["$" documentation]
[data
[text
@@ -8,36 +8,37 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- "Functionality for working with tuples (particularly 2-tuples/pairs)."
- [($.definition /.equivalence)
- ($.definition /.hash)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "Functionality for working with tuples (particularly 2-tuples/pairs).")
- ($.definition /.left
- "The left side of a pair.")
+ ($.definition /.equivalence)
+ ($.definition /.hash)
- ($.definition /.right
- "The right side of a pair.")
+ ($.definition /.left
+ "The left side of a pair.")
- ($.definition /.curried
- "Converts a 2-argument function into nested single-argument functions."
- [(curried f)])
+ ($.definition /.right
+ "The right side of a pair.")
- ($.definition /.uncurried
- "Converts nested single-argument functions into a 2-argument function."
- [(uncurried f)])
+ ($.definition /.curried
+ "Converts a 2-argument function into nested single-argument functions."
+ [(curried f)])
- ($.definition /.swapped
- ""
- [(swapped [left right])])
+ ($.definition /.uncurried
+ "Converts nested single-argument functions into a 2-argument function."
+ [(uncurried f)])
- ($.definition /.then
- "Apply functions to both sides of a pair."
- [(then f g)])
+ ($.definition /.swapped
+ ""
+ [(swapped [left right])])
- ($.definition /.forked
- "Yields a pair by applying both functions to a single value."
- [(forked f g)])]
- []))
+ ($.definition /.then
+ "Apply functions to both sides of a pair."
+ [(then f g)])
+
+ ($.definition /.forked
+ "Yields a pair by applying both functions to a single value."
+ [(forked f g)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/sum.lux b/stdlib/source/documentation/lux/data/sum.lux
index b7a41851d..973522394 100644
--- a/stdlib/source/documentation/lux/data/sum.lux
+++ b/stdlib/source/documentation/lux/data/sum.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except left right)
+ [lux (.except)
["$" documentation]
[data
[text (.only \n)
@@ -8,27 +8,28 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- "Functionality for working with variants (particularly 2-variants)."
- [($.definition /.lefts)
- ($.definition /.rights)
- ($.definition /.partition)
- ($.definition /.equivalence)
- ($.definition /.hash)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "Functionality for working with variants (particularly 2-variants).")
- ($.definition /.left
- "Lifts value to the left side of a 2-variant.")
+ ($.definition /.lefts)
+ ($.definition /.rights)
+ ($.definition /.partition)
+ ($.definition /.equivalence)
+ ($.definition /.hash)
- ($.definition /.right
- "Lifts value to the right side of a 2-variant.")
+ ($.definition /.left
+ "Lifts value to the left side of a 2-variant.")
- ($.definition /.either
- "Applies a function to either side of a 2-variant."
- [(either on_left on_right)])
+ ($.definition /.right
+ "Lifts value to the right side of a 2-variant.")
- ($.definition /.then
- "Applies functions to both sides of a 2-variant."
- [(then on_left on_right)])]
- []))
+ ($.definition /.either
+ "Applies a function to either side of a 2-variant."
+ [(either on_left on_right)])
+
+ ($.definition /.then
+ "Applies functions to both sides of a 2-variant."
+ [(then on_left on_right)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/text.lux b/stdlib/source/documentation/lux/data/text.lux
index f5271ed99..10b2616a7 100644
--- a/stdlib/source/documentation/lux/data/text.lux
+++ b/stdlib/source/documentation/lux/data/text.lux
@@ -2,6 +2,9 @@
[library
[lux (.except)
["$" documentation]
+ [data
+ [collection
+ ["[0]" list (.use "[1]#[0]" monoid)]]]
[meta
[macro
["[0]" template]]]]]
@@ -16,352 +19,359 @@
[\\library
["[0]" / (.only \n)]])
-(.def \\format
- (.List $.Module)
- ($.module \\format._
- ""
- [($.definition \\format.functor)
-
- ($.definition \\format.bit)
- ($.definition \\format.nat)
- ($.definition \\format.int)
- ($.definition \\format.rev)
- ($.definition \\format.frac)
- ($.definition \\format.text)
-
- ($.definition \\format.ratio)
- ($.definition \\format.symbol)
- ($.definition \\format.location)
- ($.definition \\format.code)
- ($.definition \\format.type)
-
- ($.definition \\format.instant)
- ($.definition \\format.duration)
- ($.definition \\format.date)
- ($.definition \\format.time)
- ($.definition \\format.day)
- ($.definition \\format.month)
-
- ($.definition \\format.xml)
- ($.definition \\format.json)
-
- ($.definition \\format.nat_2)
- ($.definition \\format.nat_8)
- ($.definition \\format.nat_10)
- ($.definition \\format.nat_16)
- ($.definition \\format.int_2)
- ($.definition \\format.int_8)
- ($.definition \\format.int_10)
- ($.definition \\format.int_16)
- ($.definition \\format.rev_2)
- ($.definition \\format.rev_8)
- ($.definition \\format.rev_10)
- ($.definition \\format.rev_16)
- ($.definition \\format.frac_2)
- ($.definition \\format.frac_8)
- ($.definition \\format.frac_10)
- ($.definition \\format.frac_16)
-
- ($.definition \\format.mod)
- ($.definition \\format.list)
- ($.definition \\format.maybe)
-
- ($.definition (\\format.Format it)
- "A way to produce readable text from values.")
-
- ($.definition \\format.format
- "Text interpolation."
- [(format "Static part " (text static) " does not match URI: " uri)])]
- []))
-
-(`` (.def \\parser
- (.List $.Module)
- ($.module \\parser._
- ""
- [($.definition \\parser.unconsumed_input)
- ($.definition \\parser.expected_to_fail)
- ($.definition \\parser.cannot_parse)
- ($.definition \\parser.cannot_slice)
- ($.definition \\parser.cannot_match)
- ($.definition \\parser.character_should_be)
- ($.definition \\parser.character_should_not_be)
- ($.definition \\parser.character_does_not_satisfy_predicate)
-
- ($.definition \\parser.Offset
- "An offset into a block of text.")
-
- ($.definition (\\parser.Parser it)
- "A parser for text.")
-
- ($.definition \\parser.Slice
- "A slice of a block of text.")
-
- ($.definition \\parser.result
- (format "Executes a parser against a block of text."
- \n "Verifies that the entire input has been processed.")
- [(result parser input)])
-
- ($.definition \\parser.offset
- "Yields the current offset into the input.")
-
- ($.definition \\parser.any
- "Yields the next character without applying any logic.")
-
- ($.definition \\parser.any!
- "Yields the next character (as a slice) without applying any logic.")
-
- (,, (with_template [<name> <caveat>]
- [(`` ($.definition <name>
- (format "Produce a character" (,, (template.text [<caveat>])) " if the parser fails.")))]
-
- [\\parser.not ""]
- [\\parser.not! " (as a slice)"]
- ))
-
- ($.definition \\parser.this
- "Checks that a specific text shows up in the input."
- [(this reference)])
-
- ($.definition \\parser.end
- "Ensure the parser's input is empty.")
-
- ($.definition \\parser.next
- "Yields the next character (without consuming it from the input).")
-
- ($.definition \\parser.remaining
- "Get all of the remaining input (without consuming it).")
-
- ($.definition \\parser.range
- "Only yields characters within a range."
- [(range bottom top)])
-
- (,, (with_template [<name> <desc>]
- [($.definition <name>
- (format "Only yields " <desc> " characters."))]
-
- [\\parser.upper "uppercase"]
- [\\parser.lower "lowercase"]
- [\\parser.decimal "decimal"]
- [\\parser.octal "octal"]
- ))
-
- ($.definition \\parser.alpha
- "Yields alphabetic characters.")
-
- ($.definition \\parser.alpha_num
- "Yields alphanumeric characters.")
-
- ($.definition \\parser.hexadecimal
- "Yields hexadecimal digits.")
-
- (,, (with_template [<name> <description_modifier>]
- [($.definition <name>
- (format "Yields characters that are" <description_modifier> " part of a piece of text."))]
-
- [\\parser.one_of ""]
- [\\parser.none_of " not"]
- ))
-
- (,, (with_template [<name> <description_modifier>]
- [($.definition <name>
- (format "Yields characters (as a slice) that are" <description_modifier> " part of a piece of text."))]
-
- [\\parser.one_of! ""]
- [\\parser.none_of! " not"]
- ))
-
- ($.definition \\parser.satisfies
- "Yields characters that satisfy a predicate."
- [(satisfies parser)])
-
- ($.definition \\parser.space
- "Yields white-space.")
-
- ($.definition \\parser.and
- "Yields the outputs of both parsers composed together."
- [(and left right)])
-
- ($.definition \\parser.and!
- "Yields the outputs of both parsers composed together (as a slice)."
- [(and! left right)])
-
- (,, (with_template [<text> <slice>]
- [(`` ($.definition <text>
- (format "Yields " (,, (template.text [<name>])) " characters as a single continuous text.")))
- (`` ($.definition <slice>
- (format "Yields " (,, (template.text [<name>])) " characters as a single continuous text (as a slice).")))]
-
- [\\parser.some \\parser.some!]
- [\\parser.many \\parser.many!]
- ))
-
- (,, (with_template [<text> <slice> <doc_modifier>]
- [(`` ($.definition <text>
- (format "Yields " <doc_modifier> " N characters.")))
- (`` ($.definition <slice>
- (format "Yields " <doc_modifier> " N characters (as a slice).")))]
-
- [\\parser.exactly \\parser.exactly! "exactly"]
- [\\parser.at_most \\parser.at_most! "at most"]
- [\\parser.at_least \\parser.at_least! "at least"]
- ))
-
- ($.definition \\parser.between
- ""
- [(between minimum additional parser)])
-
- ($.definition \\parser.between!
- ""
- [(between! minimum additional parser)])
-
- ($.definition \\parser.enclosed
- ""
- [(enclosed [start end] parser)])
-
- ($.definition \\parser.local
- "Applies a parser against the given input."
- [(local local_input parser)])
-
- ($.definition \\parser.slice
- "Converts a slice to a block of text."
- [(slice parser)])
-
- ($.definition \\parser.then
- "Embeds a text parser into an arbitrary parser that yields text."
- [(then structured text)])]
- [])))
-
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.of_char)
-
- ($.definition /.\0)
- ($.definition /.null)
- ($.definition /.\a)
- ($.definition /.alarm)
- ($.definition /.\b)
- ($.definition /.back_space)
- ($.definition /.\t)
- ($.definition /.tab)
- ($.definition /.\n)
- ($.definition /.new_line)
- ($.definition /.\v)
- ($.definition /.vertical_tab)
- ($.definition /.\f)
- ($.definition /.form_feed)
- ($.definition /.\r)
- ($.definition /.carriage_return)
- ($.definition /.\'')
- ($.definition /.double_quote)
-
- ($.definition /.size)
- ($.definition /.format)
- ($.definition /.equivalence)
- ($.definition /.order)
- ($.definition /.monoid)
- ($.definition /.hash)
- ($.definition /.together)
- ($.definition /.empty?)
- ($.definition /.space)
- ($.definition /.lower_cased)
- ($.definition /.upper_cased)
-
- ($.definition /.Char
- "A character code number.")
-
- ($.definition /.line_feed
- "Same as 'new_line'.")
-
- ($.definition /.char
- "Yields the character at the specified index."
- [(char index input)])
-
- ($.definition /.index_since
- ""
- [(index_since from pattern input)])
-
- ($.definition /.index
- ""
- [(index pattern input)])
-
- ($.definition /.last_index
- ""
- [(last_index part text)])
-
- ($.definition /.starts_with?
- ""
- [(starts_with? prefix x)])
-
- ($.definition /.ends_with?
- ""
- [(ends_with? postfix x)])
-
- ($.definition /.enclosed_by?
- ""
- [(enclosed_by? boundary value)])
-
- ($.definition /.contains?
- ""
- [(contains? sub text)])
-
- ($.definition /.prefix
- ""
- [(prefix param subject)])
-
- ($.definition /.suffix
- ""
- [(suffix param subject)])
-
- ($.definition /.enclosed
- "Surrounds the given content text with left and right side additions."
- [(enclosed [left right] content)])
-
- ($.definition /.enclosed'
- "Surrounds the given content text with the same boundary text."
- [(enclosed' boundary content)])
-
- ($.definition /.clip
- "Clips a chunk of text from the input at the specified offset and of the specified size."
- [(clip offset size input)])
-
- ($.definition /.clip_since
- "Clips the remaining text from the input at the specified offset."
- [(clip_since offset input)])
-
- ($.definition /.split_at
- ""
- [(split_at at x)])
-
- ($.definition /.split_by
- ""
- [(split_by token sample)])
-
- ($.definition /.all_split_by
- ""
- [(all_split_by token sample)])
-
- ($.definition /.replaced_once
- ""
- [(replaced_once pattern replacement template)])
-
- ($.definition /.replaced
- ""
- [(replaced pattern replacement template)])
-
- ($.definition /.interposed
- ""
- [(interposed separator texts)])
-
- ($.definition /.space?
- "Checks whether the character is white-space."
- [(space? char)])]
- [..\\format
- ..\\parser
-
- /buffer.documentation
- /encoding.documentation
- /escape.documentation
- /regex.documentation
- /unicode.documentation]))
+(def \\format
+ (List $.Documentation)
+ (list ($.module \\format._
+ "")
+
+ ($.definition \\format.functor)
+
+ ($.definition \\format.bit)
+ ($.definition \\format.nat)
+ ($.definition \\format.int)
+ ($.definition \\format.rev)
+ ($.definition \\format.frac)
+ ($.definition \\format.text)
+
+ ($.definition \\format.ratio)
+ ($.definition \\format.symbol)
+ ($.definition \\format.location)
+ ($.definition \\format.code)
+ ($.definition \\format.type)
+
+ ($.definition \\format.instant)
+ ($.definition \\format.duration)
+ ($.definition \\format.date)
+ ($.definition \\format.time)
+ ($.definition \\format.day)
+ ($.definition \\format.month)
+
+ ($.definition \\format.xml)
+ ($.definition \\format.json)
+
+ ($.definition \\format.nat_2)
+ ($.definition \\format.nat_8)
+ ($.definition \\format.nat_10)
+ ($.definition \\format.nat_16)
+ ($.definition \\format.int_2)
+ ($.definition \\format.int_8)
+ ($.definition \\format.int_10)
+ ($.definition \\format.int_16)
+ ($.definition \\format.rev_2)
+ ($.definition \\format.rev_8)
+ ($.definition \\format.rev_10)
+ ($.definition \\format.rev_16)
+ ($.definition \\format.frac_2)
+ ($.definition \\format.frac_8)
+ ($.definition \\format.frac_10)
+ ($.definition \\format.frac_16)
+
+ ($.definition \\format.mod)
+ ($.definition \\format.list)
+ ($.definition \\format.maybe)
+
+ ($.definition (\\format.Format it)
+ "A way to produce readable text from values.")
+
+ ($.definition \\format.format
+ "Text interpolation."
+ [(format "Static part " (text static) " does not match URI: " uri)])
+ ))
+
+(`` (def \\parser
+ (List $.Documentation)
+ (list ($.module \\parser._
+ "")
+
+ ($.definition \\parser.unconsumed_input)
+ ($.definition \\parser.expected_to_fail)
+ ($.definition \\parser.cannot_parse)
+ ($.definition \\parser.cannot_slice)
+ ($.definition \\parser.cannot_match)
+ ($.definition \\parser.character_should_be)
+ ($.definition \\parser.character_should_not_be)
+ ($.definition \\parser.character_does_not_satisfy_predicate)
+
+ ($.definition \\parser.Offset
+ "An offset into a block of text.")
+
+ ($.definition (\\parser.Parser it)
+ "A parser for text.")
+
+ ($.definition \\parser.Slice
+ "A slice of a block of text.")
+
+ ($.definition \\parser.result
+ (format "Executes a parser against a block of text."
+ \n "Verifies that the entire input has been processed.")
+ [(result parser input)])
+
+ ($.definition \\parser.offset
+ "Yields the current offset into the input.")
+
+ ($.definition \\parser.any
+ "Yields the next character without applying any logic.")
+
+ ($.definition \\parser.any!
+ "Yields the next character (as a slice) without applying any logic.")
+
+ (,, (with_template [<name> <caveat>]
+ [(`` ($.definition <name>
+ (format "Produce a character" (,, (template.text [<caveat>])) " if the parser fails.")))]
+
+ [\\parser.not ""]
+ [\\parser.not! " (as a slice)"]
+ ))
+
+ ($.definition \\parser.this
+ "Checks that a specific text shows up in the input."
+ [(this reference)])
+
+ ($.definition \\parser.end
+ "Ensure the parser's input is empty.")
+
+ ($.definition \\parser.next
+ "Yields the next character (without consuming it from the input).")
+
+ ($.definition \\parser.remaining
+ "Get all of the remaining input (without consuming it).")
+
+ ($.definition \\parser.range
+ "Only yields characters within a range."
+ [(range bottom top)])
+
+ (,, (with_template [<name> <desc>]
+ [($.definition <name>
+ (format "Only yields " <desc> " characters."))]
+
+ [\\parser.upper "uppercase"]
+ [\\parser.lower "lowercase"]
+ [\\parser.decimal "decimal"]
+ [\\parser.octal "octal"]
+ ))
+
+ ($.definition \\parser.alpha
+ "Yields alphabetic characters.")
+
+ ($.definition \\parser.alpha_num
+ "Yields alphanumeric characters.")
+
+ ($.definition \\parser.hexadecimal
+ "Yields hexadecimal digits.")
+
+ (,, (with_template [<name> <description_modifier>]
+ [($.definition <name>
+ (format "Yields characters that are" <description_modifier> " part of a piece of text."))]
+
+ [\\parser.one_of ""]
+ [\\parser.none_of " not"]
+ ))
+
+ (,, (with_template [<name> <description_modifier>]
+ [($.definition <name>
+ (format "Yields characters (as a slice) that are" <description_modifier> " part of a piece of text."))]
+
+ [\\parser.one_of! ""]
+ [\\parser.none_of! " not"]
+ ))
+
+ ($.definition \\parser.satisfies
+ "Yields characters that satisfy a predicate."
+ [(satisfies parser)])
+
+ ($.definition \\parser.space
+ "Yields white-space.")
+
+ ($.definition \\parser.and
+ "Yields the outputs of both parsers composed together."
+ [(and left right)])
+
+ ($.definition \\parser.and!
+ "Yields the outputs of both parsers composed together (as a slice)."
+ [(and! left right)])
+
+ (,, (with_template [<text> <slice>]
+ [(`` ($.definition <text>
+ (format "Yields " (,, (template.text [<name>])) " characters as a single continuous text.")))
+ (`` ($.definition <slice>
+ (format "Yields " (,, (template.text [<name>])) " characters as a single continuous text (as a slice).")))]
+
+ [\\parser.some \\parser.some!]
+ [\\parser.many \\parser.many!]
+ ))
+
+ (,, (with_template [<text> <slice> <doc_modifier>]
+ [(`` ($.definition <text>
+ (format "Yields " <doc_modifier> " N characters.")))
+ (`` ($.definition <slice>
+ (format "Yields " <doc_modifier> " N characters (as a slice).")))]
+
+ [\\parser.exactly \\parser.exactly! "exactly"]
+ [\\parser.at_most \\parser.at_most! "at most"]
+ [\\parser.at_least \\parser.at_least! "at least"]
+ ))
+
+ ($.definition \\parser.between
+ ""
+ [(between minimum additional parser)])
+
+ ($.definition \\parser.between!
+ ""
+ [(between! minimum additional parser)])
+
+ ($.definition \\parser.enclosed
+ ""
+ [(enclosed [start end] parser)])
+
+ ($.definition \\parser.local
+ "Applies a parser against the given input."
+ [(local local_input parser)])
+
+ ($.definition \\parser.slice
+ "Converts a slice to a block of text."
+ [(slice parser)])
+
+ ($.definition \\parser.then
+ "Embeds a text parser into an arbitrary parser that yields text."
+ [(then structured text)])
+ )))
+
+(def .public documentation
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
+
+ ($.definition /.of_char)
+
+ ($.definition /.\0)
+ ($.definition /.null)
+ ($.definition /.\a)
+ ($.definition /.alarm)
+ ($.definition /.\b)
+ ($.definition /.back_space)
+ ($.definition /.\t)
+ ($.definition /.tab)
+ ($.definition /.\n)
+ ($.definition /.new_line)
+ ($.definition /.\v)
+ ($.definition /.vertical_tab)
+ ($.definition /.\f)
+ ($.definition /.form_feed)
+ ($.definition /.\r)
+ ($.definition /.carriage_return)
+ ($.definition /.\'')
+ ($.definition /.double_quote)
+
+ ($.definition /.size)
+ ($.definition /.format)
+ ($.definition /.equivalence)
+ ($.definition /.order)
+ ($.definition /.monoid)
+ ($.definition /.hash)
+ ($.definition /.together)
+ ($.definition /.empty?)
+ ($.definition /.space)
+ ($.definition /.lower_cased)
+ ($.definition /.upper_cased)
+
+ ($.definition /.Char
+ "A character code number.")
+
+ ($.definition /.line_feed
+ "Same as 'new_line'.")
+
+ ($.definition /.char
+ "Yields the character at the specified index."
+ [(char index input)])
+
+ ($.definition /.index_since
+ ""
+ [(index_since from pattern input)])
+
+ ($.definition /.index
+ ""
+ [(index pattern input)])
+
+ ($.definition /.last_index
+ ""
+ [(last_index part text)])
+
+ ($.definition /.starts_with?
+ ""
+ [(starts_with? prefix x)])
+
+ ($.definition /.ends_with?
+ ""
+ [(ends_with? postfix x)])
+
+ ($.definition /.enclosed_by?
+ ""
+ [(enclosed_by? boundary value)])
+
+ ($.definition /.contains?
+ ""
+ [(contains? sub text)])
+
+ ($.definition /.prefix
+ ""
+ [(prefix param subject)])
+
+ ($.definition /.suffix
+ ""
+ [(suffix param subject)])
+
+ ($.definition /.enclosed
+ "Surrounds the given content text with left and right side additions."
+ [(enclosed [left right] content)])
+
+ ($.definition /.enclosed'
+ "Surrounds the given content text with the same boundary text."
+ [(enclosed' boundary content)])
+
+ ($.definition /.clip
+ "Clips a chunk of text from the input at the specified offset and of the specified size."
+ [(clip offset size input)])
+
+ ($.definition /.clip_since
+ "Clips the remaining text from the input at the specified offset."
+ [(clip_since offset input)])
+
+ ($.definition /.split_at
+ ""
+ [(split_at at x)])
+
+ ($.definition /.split_by
+ ""
+ [(split_by token sample)])
+
+ ($.definition /.all_split_by
+ ""
+ [(all_split_by token sample)])
+
+ ($.definition /.replaced_once
+ ""
+ [(replaced_once pattern replacement template)])
+
+ ($.definition /.replaced
+ ""
+ [(replaced pattern replacement template)])
+
+ ($.definition /.interposed
+ ""
+ [(interposed separator texts)])
+
+ ($.definition /.space?
+ "Checks whether the character is white-space."
+ [(space? char)])
+
+ (all list#composite
+ ..\\format
+ ..\\parser
+
+ /buffer.documentation
+ /encoding.documentation
+ /escape.documentation
+ /regex.documentation
+ /unicode.documentation
+ )
+ ))
diff --git a/stdlib/source/documentation/lux/data/text/buffer.lux b/stdlib/source/documentation/lux/data/text/buffer.lux
index 6c8fc5c5f..be0eff147 100644
--- a/stdlib/source/documentation/lux/data/text/buffer.lux
+++ b/stdlib/source/documentation/lux/data/text/buffer.lux
@@ -8,15 +8,16 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.empty)
- ($.definition /.then)
- ($.definition /.size)
- ($.definition /.text)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition /.Buffer
- "Immutable text buffer for efficient text concatenation.")]
- []))
+ ($.definition /.empty)
+ ($.definition /.then)
+ ($.definition /.size)
+ ($.definition /.text)
+
+ ($.definition /.Buffer
+ "Immutable text buffer for efficient text concatenation.")
+ ))
diff --git a/stdlib/source/documentation/lux/data/text/encoding.lux b/stdlib/source/documentation/lux/data/text/encoding.lux
index 2acadb26e..e5e324f22 100644
--- a/stdlib/source/documentation/lux/data/text/encoding.lux
+++ b/stdlib/source/documentation/lux/data/text/encoding.lux
@@ -4,167 +4,172 @@
["$" documentation]
[data
[text (.only \n)
- ["%" \\format (.only format)]]]]]
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list]]]]]
[\\library
["[0]" /]]
["[0]" /
["[1][0]" utf8]])
-(`` (.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.name)
+(`` (def .public documentation
+ (List $.Documentation)
+ (list.partial ($.module /._
+ "")
- ($.definition /.Encoding
- "Encoding formats for text.")
+ ($.definition /.name)
- (,, (with_template [<name>]
- [($.definition <name>
- (format "'" (/.name <name>) "' text encoding. "))]
+ ($.definition /.Encoding
+ "Encoding formats for text.")
- [/.ascii]
+ (,, (with_template [<name>]
+ [($.definition <name>
+ (format "'" (/.name <name>) "' text encoding. "))]
- [/.ibm_037]
- [/.ibm_273]
- [/.ibm_277]
- [/.ibm_278]
- [/.ibm_280]
- [/.ibm_284]
- [/.ibm_285]
- [/.ibm_290]
- [/.ibm_297]
- [/.ibm_300]
- [/.ibm_420]
- [/.ibm_424]
- [/.ibm_437]
- [/.ibm_500]
- [/.ibm_737]
- [/.ibm_775]
- [/.ibm_833]
- [/.ibm_834]
- [/.ibm_838]
- [/.ibm_850]
- [/.ibm_852]
- [/.ibm_855]
- [/.ibm_856]
- [/.ibm_857]
- [/.ibm_858]
- [/.ibm_860]
- [/.ibm_861]
- [/.ibm_862]
- [/.ibm_863]
- [/.ibm_864]
- [/.ibm_865]
- [/.ibm_866]
- [/.ibm_868]
- [/.ibm_869]
- [/.ibm_870]
- [/.ibm_871]
- [/.ibm_874]
- [/.ibm_875]
- [/.ibm_918]
- [/.ibm_921]
- [/.ibm_922]
- [/.ibm_930]
- [/.ibm_933]
- [/.ibm_935]
- [/.ibm_937]
- [/.ibm_939]
- [/.ibm_942]
- [/.ibm_942c]
- [/.ibm_943]
- [/.ibm_943c]
- [/.ibm_948]
- [/.ibm_949]
- [/.ibm_949c]
- [/.ibm_950]
- [/.ibm_964]
- [/.ibm_970]
- [/.ibm_1006]
- [/.ibm_1025]
- [/.ibm_1026]
- [/.ibm_1046]
- [/.ibm_1047]
- [/.ibm_1097]
- [/.ibm_1098]
- [/.ibm_1112]
- [/.ibm_1122]
- [/.ibm_1123]
- [/.ibm_1124]
- [/.ibm_1140]
- [/.ibm_1141]
- [/.ibm_1142]
- [/.ibm_1143]
- [/.ibm_1144]
- [/.ibm_1145]
- [/.ibm_1146]
- [/.ibm_1147]
- [/.ibm_1148]
- [/.ibm_1149]
- [/.ibm_1166]
- [/.ibm_1364]
- [/.ibm_1381]
- [/.ibm_1383]
- [/.ibm_33722]
-
- [/.iso_2022_cn]
- [/.iso2022_cn_cns]
- [/.iso2022_cn_gb]
- [/.iso_2022_jp]
- [/.iso_2022_jp_2]
- [/.iso_2022_kr]
- [/.iso_8859_1]
- [/.iso_8859_2]
- [/.iso_8859_3]
- [/.iso_8859_4]
- [/.iso_8859_5]
- [/.iso_8859_6]
- [/.iso_8859_7]
- [/.iso_8859_8]
- [/.iso_8859_9]
- [/.iso_8859_11]
- [/.iso_8859_13]
- [/.iso_8859_15]
+ [/.ascii]
- [/.mac_arabic]
- [/.mac_central_europe]
- [/.mac_croatian]
- [/.mac_cyrillic]
- [/.mac_dingbat]
- [/.mac_greek]
- [/.mac_hebrew]
- [/.mac_iceland]
- [/.mac_roman]
- [/.mac_romania]
- [/.mac_symbol]
- [/.mac_thai]
- [/.mac_turkish]
- [/.mac_ukraine]
-
- [/.utf_8]
- [/.utf_16]
- [/.utf_32]
+ [/.ibm_037]
+ [/.ibm_273]
+ [/.ibm_277]
+ [/.ibm_278]
+ [/.ibm_280]
+ [/.ibm_284]
+ [/.ibm_285]
+ [/.ibm_290]
+ [/.ibm_297]
+ [/.ibm_300]
+ [/.ibm_420]
+ [/.ibm_424]
+ [/.ibm_437]
+ [/.ibm_500]
+ [/.ibm_737]
+ [/.ibm_775]
+ [/.ibm_833]
+ [/.ibm_834]
+ [/.ibm_838]
+ [/.ibm_850]
+ [/.ibm_852]
+ [/.ibm_855]
+ [/.ibm_856]
+ [/.ibm_857]
+ [/.ibm_858]
+ [/.ibm_860]
+ [/.ibm_861]
+ [/.ibm_862]
+ [/.ibm_863]
+ [/.ibm_864]
+ [/.ibm_865]
+ [/.ibm_866]
+ [/.ibm_868]
+ [/.ibm_869]
+ [/.ibm_870]
+ [/.ibm_871]
+ [/.ibm_874]
+ [/.ibm_875]
+ [/.ibm_918]
+ [/.ibm_921]
+ [/.ibm_922]
+ [/.ibm_930]
+ [/.ibm_933]
+ [/.ibm_935]
+ [/.ibm_937]
+ [/.ibm_939]
+ [/.ibm_942]
+ [/.ibm_942c]
+ [/.ibm_943]
+ [/.ibm_943c]
+ [/.ibm_948]
+ [/.ibm_949]
+ [/.ibm_949c]
+ [/.ibm_950]
+ [/.ibm_964]
+ [/.ibm_970]
+ [/.ibm_1006]
+ [/.ibm_1025]
+ [/.ibm_1026]
+ [/.ibm_1046]
+ [/.ibm_1047]
+ [/.ibm_1097]
+ [/.ibm_1098]
+ [/.ibm_1112]
+ [/.ibm_1122]
+ [/.ibm_1123]
+ [/.ibm_1124]
+ [/.ibm_1140]
+ [/.ibm_1141]
+ [/.ibm_1142]
+ [/.ibm_1143]
+ [/.ibm_1144]
+ [/.ibm_1145]
+ [/.ibm_1146]
+ [/.ibm_1147]
+ [/.ibm_1148]
+ [/.ibm_1149]
+ [/.ibm_1166]
+ [/.ibm_1364]
+ [/.ibm_1381]
+ [/.ibm_1383]
+ [/.ibm_33722]
+
+ [/.iso_2022_cn]
+ [/.iso2022_cn_cns]
+ [/.iso2022_cn_gb]
+ [/.iso_2022_jp]
+ [/.iso_2022_jp_2]
+ [/.iso_2022_kr]
+ [/.iso_8859_1]
+ [/.iso_8859_2]
+ [/.iso_8859_3]
+ [/.iso_8859_4]
+ [/.iso_8859_5]
+ [/.iso_8859_6]
+ [/.iso_8859_7]
+ [/.iso_8859_8]
+ [/.iso_8859_9]
+ [/.iso_8859_11]
+ [/.iso_8859_13]
+ [/.iso_8859_15]
- [/.windows_31j]
- [/.windows_874]
- [/.windows_949]
- [/.windows_950]
- [/.windows_1250]
- [/.windows_1252]
- [/.windows_1251]
- [/.windows_1253]
- [/.windows_1254]
- [/.windows_1255]
- [/.windows_1256]
- [/.windows_1257]
- [/.windows_1258]
- [/.windows_iso2022jp]
- [/.windows_50220]
- [/.windows_50221]
-
- [/.cesu_8]
- [/.koi8_r]
- [/.koi8_u]
- ))]
- [/utf8.documentation])))
+ [/.mac_arabic]
+ [/.mac_central_europe]
+ [/.mac_croatian]
+ [/.mac_cyrillic]
+ [/.mac_dingbat]
+ [/.mac_greek]
+ [/.mac_hebrew]
+ [/.mac_iceland]
+ [/.mac_roman]
+ [/.mac_romania]
+ [/.mac_symbol]
+ [/.mac_thai]
+ [/.mac_turkish]
+ [/.mac_ukraine]
+
+ [/.utf_8]
+ [/.utf_16]
+ [/.utf_32]
+
+ [/.windows_31j]
+ [/.windows_874]
+ [/.windows_949]
+ [/.windows_950]
+ [/.windows_1250]
+ [/.windows_1252]
+ [/.windows_1251]
+ [/.windows_1253]
+ [/.windows_1254]
+ [/.windows_1255]
+ [/.windows_1256]
+ [/.windows_1257]
+ [/.windows_1258]
+ [/.windows_iso2022jp]
+ [/.windows_50220]
+ [/.windows_50221]
+
+ [/.cesu_8]
+ [/.koi8_r]
+ [/.koi8_u]
+ ))
+
+ /utf8.documentation
+ )))
diff --git a/stdlib/source/documentation/lux/data/text/encoding/utf8.lux b/stdlib/source/documentation/lux/data/text/encoding/utf8.lux
index afe5d2b41..7a22b7cf5 100644
--- a/stdlib/source/documentation/lux/data/text/encoding/utf8.lux
+++ b/stdlib/source/documentation/lux/data/text/encoding/utf8.lux
@@ -8,10 +8,11 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.codec
- "A codec for binary encoding of text as UTF-8.")]
- []))
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
+
+ ($.definition /.codec
+ "A codec for binary encoding of text as UTF-8.")
+ ))
diff --git a/stdlib/source/documentation/lux/data/text/escape.lux b/stdlib/source/documentation/lux/data/text/escape.lux
index 91c23806d..5b85c8359 100644
--- a/stdlib/source/documentation/lux/data/text/escape.lux
+++ b/stdlib/source/documentation/lux/data/text/escape.lux
@@ -8,28 +8,29 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.escapable?)
- ($.definition /.dangling_escape)
- ($.definition /.invalid_escape)
- ($.definition /.invalid_unicode_escape)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition /.escaped
- "Yields a escaped version of the text."
- [(escaped text)])
+ ($.definition /.escapable?)
+ ($.definition /.dangling_escape)
+ ($.definition /.invalid_escape)
+ ($.definition /.invalid_unicode_escape)
- ($.definition /.un_escaped
- (format "Yields an un-escaped text."
- \n "Fails if it was improperly escaped.")
- [(un_escaped text)])
+ ($.definition /.escaped
+ "Yields a escaped version of the text."
+ [(escaped text)])
- ($.definition /.literal
- "If given a escaped text literal, expands to an un-escaped version."
- [(/.literal "Line 1\nLine 2")
- "=>"
- (format "Line 1" \n
- "Line 2")])]
- []))
+ ($.definition /.un_escaped
+ (format "Yields an un-escaped text."
+ \n "Fails if it was improperly escaped.")
+ [(un_escaped text)])
+
+ ($.definition /.literal
+ "If given a escaped text literal, expands to an un-escaped version."
+ [(/.literal "Line 1\nLine 2")
+ "=>"
+ (format "Line 1" \n
+ "Line 2")])
+ ))
diff --git a/stdlib/source/documentation/lux/data/text/regex.lux b/stdlib/source/documentation/lux/data/text/regex.lux
index cd8511743..090b88c41 100644
--- a/stdlib/source/documentation/lux/data/text/regex.lux
+++ b/stdlib/source/documentation/lux/data/text/regex.lux
@@ -1,6 +1,6 @@
(.require
[library
- [lux (.except pattern)
+ [lux (.except)
["$" documentation]
[data
[text (.only \n)
@@ -8,68 +8,69 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.incorrect_quantification)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition /.regex
- "Create lexers using regular-expression syntax."
- ["Literals"
- (regex "a")]
- ["Wildcards"
- (regex ".")]
- ["Escaping"
- (regex "\.")]
- ["Character classes"
- (regex "\d")
- (regex "\p{Lower}")
- (regex "[abc]")
- (regex "[a-z]")
- (regex "[a-zA-Z]")
- (regex "[a-z&&[def]]")]
- ["Negation"
- (regex "[^abc]")
- (regex "[^a-z]")
- (regex "[^a-zA-Z]")
- (regex "[a-z&&[^bc]]")
- (regex "[a-z&&[^m-p]]")]
- ["Combinations"
- (regex "aa")
- (regex "a?")
- (regex "a*")
- (regex "a+")]
- ["Specific amounts"
- (regex "a{2}")]
- ["At least"
- (regex "a{1,}")]
- ["At most"
- (regex "a{,1}")]
- ["Between"
- (regex "a{1,2}")]
- ["Groups"
- (regex "a(.)c")
- (regex "a(b+)c")
- (regex "(\d{3})-(\d{3})-(\d{4})")
- (regex "(\d{3})-(?:\d{3})-(\d{4})")
- (regex "(?<code>\d{3})-\k<code>-(\d{4})")
- (regex "(?<code>\d{3})-\k<code>-(\d{4})-\0")
- (regex "(\d{3})-((\d{3})-(\d{4}))")]
- ["Alternation"
- (regex "a|b")
- (regex "a(.)(.)|b(.)(.)")])
+ ($.definition /.incorrect_quantification)
- ($.definition /.pattern
- "Allows you to test text against regular expressions."
- [(case some_text
- (pattern "(\d{3})-(\d{3})-(\d{4})"
- [_ country_code area_code place_code])
- do_some_thing_when_number
+ ($.definition /.regex
+ "Create lexers using regular-expression syntax."
+ ["Literals"
+ (regex "a")]
+ ["Wildcards"
+ (regex ".")]
+ ["Escaping"
+ (regex "\.")]
+ ["Character classes"
+ (regex "\d")
+ (regex "\p{Lower}")
+ (regex "[abc]")
+ (regex "[a-z]")
+ (regex "[a-zA-Z]")
+ (regex "[a-z&&[def]]")]
+ ["Negation"
+ (regex "[^abc]")
+ (regex "[^a-z]")
+ (regex "[^a-zA-Z]")
+ (regex "[a-z&&[^bc]]")
+ (regex "[a-z&&[^m-p]]")]
+ ["Combinations"
+ (regex "aa")
+ (regex "a?")
+ (regex "a*")
+ (regex "a+")]
+ ["Specific amounts"
+ (regex "a{2}")]
+ ["At least"
+ (regex "a{1,}")]
+ ["At most"
+ (regex "a{,1}")]
+ ["Between"
+ (regex "a{1,2}")]
+ ["Groups"
+ (regex "a(.)c")
+ (regex "a(b+)c")
+ (regex "(\d{3})-(\d{3})-(\d{4})")
+ (regex "(\d{3})-(?:\d{3})-(\d{4})")
+ (regex "(?<code>\d{3})-\k<code>-(\d{4})")
+ (regex "(?<code>\d{3})-\k<code>-(\d{4})-\0")
+ (regex "(\d{3})-((\d{3})-(\d{4}))")]
+ ["Alternation"
+ (regex "a|b")
+ (regex "a(.)(.)|b(.)(.)")])
- (pattern "\w+")
- do_some_thing_when_word
+ ($.definition /.pattern
+ "Allows you to test text against regular expressions."
+ [(case some_text
+ (pattern "(\d{3})-(\d{3})-(\d{4})"
+ [_ country_code area_code place_code])
+ do_some_thing_when_number
- _
- do_something_else)])]
- []))
+ (pattern "\w+")
+ do_some_thing_when_word
+
+ _
+ do_something_else)])
+ ))
diff --git a/stdlib/source/documentation/lux/data/text/unicode.lux b/stdlib/source/documentation/lux/data/text/unicode.lux
index 6248d9bb9..df6b2a4d9 100644
--- a/stdlib/source/documentation/lux/data/text/unicode.lux
+++ b/stdlib/source/documentation/lux/data/text/unicode.lux
@@ -11,8 +11,8 @@
["[1][0]" block]
["[1][0]" set]])
-(.def .public documentation
- (.List $.Module)
+(def .public documentation
+ (List $.Documentation)
(list.together
(list /block.documentation
/set.documentation
diff --git a/stdlib/source/documentation/lux/data/text/unicode/block.lux b/stdlib/source/documentation/lux/data/text/unicode/block.lux
index 3c5ea5c8f..7aa0355ab 100644
--- a/stdlib/source/documentation/lux/data/text/unicode/block.lux
+++ b/stdlib/source/documentation/lux/data/text/unicode/block.lux
@@ -11,142 +11,143 @@
[\\library
["[0]" /]])
-(`` (.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.monoid)
- ($.definition /.start)
- ($.definition /.end)
- ($.definition /.size)
- ($.definition /.equivalence)
- ($.definition /.hash)
+(`` (def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition /.Block
- "A block of valid unicode characters.")
+ ($.definition /.monoid)
+ ($.definition /.start)
+ ($.definition /.end)
+ ($.definition /.size)
+ ($.definition /.equivalence)
+ ($.definition /.hash)
- ($.definition /.block
- ""
- [(block start additional)])
+ ($.definition /.Block
+ "A block of valid unicode characters.")
- ($.definition /.within?
- ""
- [(within? block char)])
+ ($.definition /.block
+ ""
+ [(block start additional)])
- (,, (with_template [<name>]
- [($.definition <name>
- (let [[_ name] (symbol <name>)]
- (format (hex#encoded (/.start <name>))
- "-" (hex#encoded (/.end <name>))
- " | " (text.replaced "_" " " name))))]
+ ($.definition /.within?
+ ""
+ [(within? block char)])
- [/.basic_latin]
- [/.latin_1_supplement]
- [/.latin_extended_a]
- [/.latin_extended_b]
- [/.ipa_extensions]
- [/.spacing_modifier_letters]
- [/.combining_diacritical_marks]
- [/.greek_and_coptic]
- [/.cyrillic]
- [/.cyrillic_supplementary]
- [/.armenian]
- [/.hebrew]
- [/.arabic]
- [/.syriac]
- [/.thaana]
- [/.devanagari]
- [/.bengali]
- [/.gurmukhi]
- [/.gujarati]
- [/.oriya]
- [/.tamil]
- [/.telugu]
- [/.kannada]
- [/.malayalam]
- [/.sinhala]
- [/.thai]
- [/.lao]
- [/.tibetan]
- [/.myanmar]
- [/.georgian]
- [/.hangul_jamo]
- [/.ethiopic]
- [/.cherokee]
- [/.unified_canadian_aboriginal_syllabics]
- [/.ogham]
- [/.runic]
- [/.tagalog]
- [/.hanunoo]
- [/.buhid]
- [/.tagbanwa]
- [/.khmer]
- [/.mongolian]
- [/.limbu]
- [/.tai_le]
- [/.khmer_symbols]
- [/.phonetic_extensions]
- [/.latin_extended_additional]
- [/.greek_extended]
- [/.general_punctuation]
- [/.superscripts_and_subscripts]
- [/.currency_symbols]
- [/.combining_diacritical_marks_for_symbols]
- [/.letterlike_symbols]
- [/.number_forms]
- [/.arrows]
- [/.mathematical_operators]
- [/.miscellaneous_technical]
- [/.control_pictures]
- [/.optical_character_recognition]
- [/.enclosed_alphanumerics]
- [/.box_drawing]
- [/.block_elements]
- [/.geometric_shapes]
- [/.miscellaneous_symbols]
- [/.dingbats]
- [/.miscellaneous_mathematical_symbols_a]
- [/.supplemental_arrows_a]
- [/.braille_patterns]
- [/.supplemental_arrows_b]
- [/.miscellaneous_mathematical_symbols_b]
- [/.supplemental_mathematical_operators]
- [/.miscellaneous_symbols_and_arrows]
- [/.cjk_radicals_supplement]
- [/.kangxi_radicals]
- [/.ideographic_description_characters]
- [/.cjk_symbols_and_punctuation]
- [/.hiragana]
- [/.katakana]
- [/.bopomofo]
- [/.hangul_compatibility_jamo]
- [/.kanbun]
- [/.bopomofo_extended]
- [/.katakana_phonetic_extensions]
- [/.enclosed_cjk_letters_and_months]
- [/.cjk_compatibility]
- [/.cjk_unified_ideographs_extension_a]
- [/.yijing_hexagram_symbols]
- [/.cjk_unified_ideographs]
- [/.yi_syllables]
- [/.yi_radicals]
- [/.hangul_syllables]
- [/.high_surrogates]
- [/.high_private_use_surrogates]
- [/.low_surrogates]
- [/.private_use_area]
- [/.cjk_compatibility_ideographs]
- [/.alphabetic_presentation_forms]
- [/.arabic_presentation_forms_a]
- [/.variation_selectors]
- [/.combining_half_marks]
- [/.cjk_compatibility_forms]
- [/.small_form_variants]
- [/.arabic_presentation_forms_b]
- [/.halfwidth_and_fullwidth_forms]
- [/.specials]
- [/.numeric]
- [/.upper_case]
- [/.lower_case]
- ))]
- [])))
+ (,, (with_template [<name>]
+ [($.definition <name>
+ (let [[_ name] (symbol <name>)]
+ (format (hex#encoded (/.start <name>))
+ "-" (hex#encoded (/.end <name>))
+ " | " (text.replaced "_" " " name))))]
+
+ [/.basic_latin]
+ [/.latin_1_supplement]
+ [/.latin_extended_a]
+ [/.latin_extended_b]
+ [/.ipa_extensions]
+ [/.spacing_modifier_letters]
+ [/.combining_diacritical_marks]
+ [/.greek_and_coptic]
+ [/.cyrillic]
+ [/.cyrillic_supplementary]
+ [/.armenian]
+ [/.hebrew]
+ [/.arabic]
+ [/.syriac]
+ [/.thaana]
+ [/.devanagari]
+ [/.bengali]
+ [/.gurmukhi]
+ [/.gujarati]
+ [/.oriya]
+ [/.tamil]
+ [/.telugu]
+ [/.kannada]
+ [/.malayalam]
+ [/.sinhala]
+ [/.thai]
+ [/.lao]
+ [/.tibetan]
+ [/.myanmar]
+ [/.georgian]
+ [/.hangul_jamo]
+ [/.ethiopic]
+ [/.cherokee]
+ [/.unified_canadian_aboriginal_syllabics]
+ [/.ogham]
+ [/.runic]
+ [/.tagalog]
+ [/.hanunoo]
+ [/.buhid]
+ [/.tagbanwa]
+ [/.khmer]
+ [/.mongolian]
+ [/.limbu]
+ [/.tai_le]
+ [/.khmer_symbols]
+ [/.phonetic_extensions]
+ [/.latin_extended_additional]
+ [/.greek_extended]
+ [/.general_punctuation]
+ [/.superscripts_and_subscripts]
+ [/.currency_symbols]
+ [/.combining_diacritical_marks_for_symbols]
+ [/.letterlike_symbols]
+ [/.number_forms]
+ [/.arrows]
+ [/.mathematical_operators]
+ [/.miscellaneous_technical]
+ [/.control_pictures]
+ [/.optical_character_recognition]
+ [/.enclosed_alphanumerics]
+ [/.box_drawing]
+ [/.block_elements]
+ [/.geometric_shapes]
+ [/.miscellaneous_symbols]
+ [/.dingbats]
+ [/.miscellaneous_mathematical_symbols_a]
+ [/.supplemental_arrows_a]
+ [/.braille_patterns]
+ [/.supplemental_arrows_b]
+ [/.miscellaneous_mathematical_symbols_b]
+ [/.supplemental_mathematical_operators]
+ [/.miscellaneous_symbols_and_arrows]
+ [/.cjk_radicals_supplement]
+ [/.kangxi_radicals]
+ [/.ideographic_description_characters]
+ [/.cjk_symbols_and_punctuation]
+ [/.hiragana]
+ [/.katakana]
+ [/.bopomofo]
+ [/.hangul_compatibility_jamo]
+ [/.kanbun]
+ [/.bopomofo_extended]
+ [/.katakana_phonetic_extensions]
+ [/.enclosed_cjk_letters_and_months]
+ [/.cjk_compatibility]
+ [/.cjk_unified_ideographs_extension_a]
+ [/.yijing_hexagram_symbols]
+ [/.cjk_unified_ideographs]
+ [/.yi_syllables]
+ [/.yi_radicals]
+ [/.hangul_syllables]
+ [/.high_surrogates]
+ [/.high_private_use_surrogates]
+ [/.low_surrogates]
+ [/.private_use_area]
+ [/.cjk_compatibility_ideographs]
+ [/.alphabetic_presentation_forms]
+ [/.arabic_presentation_forms_a]
+ [/.variation_selectors]
+ [/.combining_half_marks]
+ [/.cjk_compatibility_forms]
+ [/.small_form_variants]
+ [/.arabic_presentation_forms_b]
+ [/.halfwidth_and_fullwidth_forms]
+ [/.specials]
+ [/.numeric]
+ [/.upper_case]
+ [/.lower_case]
+ ))
+ )))
diff --git a/stdlib/source/documentation/lux/data/text/unicode/set.lux b/stdlib/source/documentation/lux/data/text/unicode/set.lux
index 268affa1b..68fbb3446 100644
--- a/stdlib/source/documentation/lux/data/text/unicode/set.lux
+++ b/stdlib/source/documentation/lux/data/text/unicode/set.lux
@@ -8,31 +8,32 @@
[\\library
["[0]" /]])
-(.def .public documentation
- (.List $.Module)
- ($.module /._
- ""
- [($.definition /.Set)
- ($.definition /.composite)
- ($.definition /.character)
- ($.definition /.non_character)
- ($.definition /.full)
- ($.definition /.start)
- ($.definition /.end)
- ($.definition /.equivalence)
+(def .public documentation
+ (List $.Documentation)
+ (list ($.module /._
+ "")
- ($.definition /.ascii)
- ($.definition /.alphabetic)
- ($.definition /.alpha_numeric)
- ($.definition /.numeric)
- ($.definition /.upper_case)
- ($.definition /.lower_case)
+ ($.definition /.Set)
+ ($.definition /.composite)
+ ($.definition /.character)
+ ($.definition /.non_character)
+ ($.definition /.full)
+ ($.definition /.start)
+ ($.definition /.end)
+ ($.definition /.equivalence)
- ($.definition /.set
- ""
- [(set [head tail])])
+ ($.definition /.ascii)
+ ($.definition /.alphabetic)
+ ($.definition /.alpha_numeric)
+ ($.definition /.numeric)
+ ($.definition /.upper_case)
+ ($.definition /.lower_case)
- ($.definition /.member?
- ""
- [(member? set character)])]
- []))
+ ($.definition /.set
+ ""
+ [(set [head tail])])
+
+ ($.definition /.member?
+ ""
+ [(member? set character)])
+ ))
diff --git a/stdlib/source/library/lux/test.lux b/stdlib/source/library/lux/test.lux
index a29acfefe..eafb394a5 100644
--- a/stdlib/source/library/lux/test.lux
+++ b/stdlib/source/library/lux/test.lux
@@ -33,116 +33,51 @@
["[0]" symbol]
["[0]" code (.only)
["<[1]>" \\parser]]
- [macro
+ [macro (.only with_symbols)
[syntax (.only syntax)]]]
[world
["[0]" environment]
["[0]" console]
[time
["[0]" instant]
- ["[0]" duration (.only Duration)]]]]])
-
-(type .public Coverage
- (Set Symbol))
-
-(type .public Tally
- (Record
- [#successes Nat
- #failures Nat
- #expected Coverage
- #actual Coverage]))
-
-(def (total parameter subject)
- (-> Tally Tally Tally)
- [#successes (n.+ (the #successes parameter) (the #successes subject))
- #failures (n.+ (the #failures parameter) (the #failures subject))
- #expected (set.union (the #expected parameter)
- (the #expected subject))
- #actual (set.union (the #actual parameter)
- (the #actual subject))])
-
-(def start
- Tally
- [#successes 0
- #failures 0
- #expected (set.empty symbol.hash)
- #actual (set.empty symbol.hash)])
-
-(with_template [<name> <category>]
- [(def <name>
- Tally
- (revised <category> .++ ..start))]
-
- [success_tally #successes]
- [failure_tally #failures]
- )
-
-(type .public Assertion
- (Async [Tally Text]))
+ ["[0]" duration (.only Duration)]]]]]
+ [/
+ ["//" unit]])
(type .public Test
- (Random Assertion))
-
-(def separator
- text.new_line)
-
-(def .public (and' left right)
- (-> Assertion Assertion Assertion)
- (let [[read! write!] (is [(Async [Tally Text])
- (async.Resolver [Tally Text])]
- (async.async []))
- _ (|> left
- (async.upon! (function (_ [l_tally l_documentation])
- (async.upon! (function (_ [r_tally r_documentation])
- (write! [(..total l_tally r_tally)
- (format l_documentation ..separator r_documentation)]))
- right)))
- io.run!)]
- read!))
+ (Random //.Test))
(def .public (and left right)
(-> Test Test Test)
(do [! random.monad]
[left left]
- (at ! each (..and' left) right)))
-
-(def (context' description)
- (-> Text Test Test)
- (random#each (async#each (function (_ [tally documentation])
- [tally (|> documentation
- (text.all_split_by ..separator)
- (list#each (|>> (format text.tab)))
- (text.interposed ..separator)
- (format description ..separator))]))))
+ (at ! each (//.and left) right)))
(def .public context
(-> Text Test Test)
- (|>> %.text context'))
-
-(def failure_prefix "[Failure] ")
-(def success_prefix "[Success] ")
+ (|>> %.text
+ //.context
+ random#each))
(def .public failure
(-> Text Test)
- (|>> (format ..failure_prefix)
- [..failure_tally]
- async#in
+ (|>> //.failure
random#in))
-(def .public (assertion message condition)
- (-> Text Bit Assertion)
- (<| async#in
- (if condition
- [..success_tally (format ..success_prefix message)]
- [..failure_tally (format ..failure_prefix message)])))
+(def .public success
+ (-> Text Test)
+ (|>> //.success
+ random#in))
-(def .public (property message condition)
+(def .public (test message condition)
(-> Text Bit Test)
- (random#in (..assertion (%.text message) condition)))
+ (random#in (//.test message condition)))
(def .public (lifted message random)
(-> Text (Random Bit) Test)
- (random#each (..assertion (%.text message)) random))
+ (do random.monad
+ [it random]
+ (test message it)))
(def pcg_32_magic_inc
Nat
@@ -159,8 +94,11 @@
[prng result])))
(def failed?
- (-> Tally Bit)
- (|>> (the #failures) (n.> 0)))
+ (-> //.Tally Bit)
+ (|>> (the //.#failures) (n.> 0)))
+
+(def separator
+ text.new_line)
(def (times_failure seed documentation)
(-> Seed Text Text)
@@ -189,21 +127,21 @@
product.right))))])))))
(def (description duration tally)
- (-> Duration Tally Text)
- (let [successes (the #successes tally)
- failures (the #failures tally)
- missing (set.difference (the #actual tally)
- (the #expected tally))
- unexpected (set.difference (the #expected tally)
- (the #actual tally))
- report (is (-> Coverage Text)
+ (-> Duration //.Tally Text)
+ (let [successes (the //.#successes tally)
+ failures (the //.#failures tally)
+ missing (set.difference (the //.#actual tally)
+ (the //.#expected tally))
+ unexpected (set.difference (the //.#expected tally)
+ (the //.#actual tally))
+ report (is (-> //.Coverage Text)
(|>> set.list
(list.sorted (at symbol.order <))
(exception.listing %.symbol)))
- expected_coverage (set.size (the #expected tally))
+ expected_coverage (set.size (the //.#expected tally))
unexpected_coverage (set.size unexpected)
actual_coverage (n.- unexpected_coverage
- (set.size (the #actual tally)))
+ (set.size (the //.#actual tally)))
coverage (case expected_coverage
0 "N/A"
expected (let [missing_ratio (f./ (n.frac expected)
@@ -266,128 +204,30 @@
(console.write_line report console))
<else>))]
(async.future (at environment.default exit
- (case (the #failures tally)
+ (case (the //.#failures tally)
0 ..success_exit_code
_ ..failure_exit_code)))))
-(def definition_separator " & ")
-
-(def clean_up_marker (text.of_char (hex "05")))
-
-(def coverage_format
- (%.Format Symbol)
- (|>> %.symbol (format ..clean_up_marker)))
-
-(def .public (with_coverage' coverage condition)
- (-> (List Symbol) Bit Assertion)
- (let [message (|> coverage
- (list#each ..coverage_format)
- (text.interposed ..definition_separator))
- coverage (set.of_list symbol.hash coverage)]
- (|> (..assertion message condition)
- (async#each (function (_ [tally documentation])
- [(revised #actual (set.union coverage) tally)
- documentation])))))
-
-(def .public (with_coverage coverage condition)
- (-> (List Symbol) Bit Test)
- (|> (..with_coverage' coverage condition)
- random#in))
-
-(def .public (for' coverage test)
- (-> (List Symbol) Test Test)
- (let [context (|> coverage
- (list#each ..coverage_format)
- (text.interposed ..definition_separator))
- coverage (set.of_list symbol.hash coverage)]
- (random#each (async#each (function (_ [tally documentation])
- [(revised #actual (set.union coverage) tally)
- documentation]))
- (..context' context test))))
-
-(def (symbol_code symbol)
- (-> Symbol Code)
- (code.tuple (list (code.text (symbol.module symbol))
- (code.text (symbol.short symbol)))))
-
-(def .public reference
- (syntax (_ [name <code>.symbol])
- (do meta.monad
- [_ (meta.export name)]
- (in (list (symbol_code name))))))
-
-(def coverage_separator
- Text
- (text.of_char 31))
-
-(def encoded_coverage
- (-> (List Text) Text)
- (list#mix (function (_ short aggregate)
- (case aggregate
- "" short
- _ (format aggregate ..coverage_separator short)))
- ""))
-
-(def (coverage_definitions module encoding)
- (-> Text Text Coverage)
- (loop (again [remaining encoding
- output (set.of_list symbol.hash (list))])
- (case (text.split_by ..coverage_separator remaining)
- {.#Some [head tail]}
- (again tail (set.has [module head] output))
-
- {.#None}
- (set.has [module remaining] output))))
-
-(with_template [<macro> <function>]
- [(def .public <macro>
- (syntax (_ [coverage (<code>.tuple (<>.many <code>.any))
- condition <code>.any])
- (let [coverage (list#each (function (_ definition)
- (` (..reference (, definition))))
- coverage)]
- (in (list (` (<function> (is (.List .Symbol)
- (.list (,* coverage)))
- (, condition))))))))]
-
- [coverage' ..with_coverage']
- [coverage ..with_coverage]
- )
+(def .public coverage
+ (syntax (_ [coverage <code>.any
+ condition <code>.any])
+ (in (list (` (at random.monad (,' in) (//.coverage (, coverage) (, condition))))))))
(def .public for
- (syntax (_ [coverage (<code>.tuple (<>.many <code>.any))
+ (syntax (_ [coverage <code>.any
test <code>.any])
- (let [coverage (list#each (function (_ definition)
- (` (..reference (, definition))))
- coverage)]
- (in (list (` (..for' (is (.List .Symbol)
- (.list (,* coverage)))
- (, test))))))))
-
-(def .public (covering' module coverage test)
- (-> Text Text Test Test)
- (let [coverage (..coverage_definitions module coverage)]
- (|> (..context' module test)
- (random#each (async#each (function (_ [tally documentation])
- [(revised #expected (set.union coverage) tally)
- (|> documentation
- (text.replaced (format ..clean_up_marker module symbol.separator) "")
- (text.replaced ..clean_up_marker ""))]))))))
+ (in (list (` (at random.functor
+ (,' each)
+ (|>> (//.for (, coverage)))
+ (, test)))))))
(def .public covering
- (syntax (_ [module <code>.symbol
+ (syntax (_ [module <code>.any
test <code>.any])
- (do meta.monad
- [.let [module (symbol.module module)]
- definitions (meta.definitions module)
- .let [coverage (|> definitions
- (list#mix (function (_ [short [exported? _]] aggregate)
- (if exported?
- {.#Item short aggregate}
- aggregate))
- {.#End})
- ..encoded_coverage)]]
- (in (list (` (..covering' (, (code.text module)) (, (code.text coverage)) (, test))))))))
+ (in (list (` (at random.functor
+ (,' each)
+ (|>> (//.covering (, module)))
+ (, test)))))))
(exception .public (error_during_execution [error Text])
(exception.report
@@ -397,13 +237,13 @@
(-> (List Test) Test)
(case (list.size tests)
0
- (random#in (async#in [..start ""]))
+ (random#in (async#in [//.start ""]))
expected_tests
(do random.monad
[seed random.nat
.let [prng (random.pcg_32 [..pcg_32_magic_inc seed])
- run! (is (-> Test Assertion)
+ run! (is (-> Test //.Test)
(|>> (random.result prng)
product.right
(function (_ _))
@@ -413,11 +253,11 @@
output
{try.#Failure error}
- (..assertion (exception.error ..error_during_execution [error]) false))))
- state (is (Atom (Dictionary Nat [Tally Text]))
+ (//.test (exception.error ..error_during_execution [error]) false))))
+ state (is (Atom (Dictionary Nat [//.Tally Text]))
(atom.atom (dictionary.empty n.order)))
- [read! write!] (is [Assertion
- (async.Resolver [Tally Text])]
+ [read! write!] (is [//.Test
+ (async.Resolver [//.Tally Text])]
(async.async []))
_ (list#mix (function (_ test index)
(exec
@@ -431,7 +271,7 @@
(list#each product.right))]
(write! [(|> assertions
(list#each product.left)
- (list#mix ..total ..start))
+ (list#mix //.total //.start))
(|> assertions
(list#each product.right)
(text.interposed ..separator))]))
diff --git a/stdlib/source/library/lux/test/unit.lux b/stdlib/source/library/lux/test/unit.lux
new file mode 100644
index 000000000..0077c18a9
--- /dev/null
+++ b/stdlib/source/library/lux/test/unit.lux
@@ -0,0 +1,223 @@
+(.require
+ [library
+ [lux (.except and for)
+ [abstract
+ [monad (.only do)]]
+ [control
+ ["<>" parser]
+ ["[0]" io]
+ [concurrency
+ ["[0]" async (.only Async) (.use "[1]#[0]" monad)]]]
+ [data
+ ["[0]" text (.only)
+ ["%" \\format (.only format)]]
+ [collection
+ ["[0]" list (.use "[1]#[0]" functor mix)]
+ ["[0]" set (.only Set)]]]
+ [math
+ [number (.only hex)
+ ["n" nat]]]
+ ["[0]" meta (.only)
+ ["[0]" symbol]
+ ["[0]" code (.only)
+ ["<[1]>" \\parser]]
+ [macro
+ [syntax (.only syntax)]]]]])
+
+(type .public Coverage
+ (Set Symbol))
+
+(type .public Tally
+ (Record
+ [#successes Nat
+ #failures Nat
+ #expected Coverage
+ #actual Coverage]))
+
+(def .public (total parameter subject)
+ (-> Tally Tally Tally)
+ [#successes (n.+ (the #successes parameter) (the #successes subject))
+ #failures (n.+ (the #failures parameter) (the #failures subject))
+ #expected (set.union (the #expected parameter)
+ (the #expected subject))
+ #actual (set.union (the #actual parameter)
+ (the #actual subject))])
+
+(def .public start
+ Tally
+ [#successes 0
+ #failures 0
+ #expected (set.empty symbol.hash)
+ #actual (set.empty symbol.hash)])
+
+(with_template [<name> <category>]
+ [(def <name>
+ Tally
+ (revised <category> .++ ..start))]
+
+ [success_tally #successes]
+ [failure_tally #failures]
+ )
+
+(type .public Test
+ (Async [Tally Text]))
+
+(def separator
+ text.new_line)
+
+(def .public (and left right)
+ (-> Test Test Test)
+ (let [[read! write!] (is [(Async [Tally Text])
+ (async.Resolver [Tally Text])]
+ (async.async []))
+ _ (|> left
+ (async.upon! (function (_ [l_tally l_documentation])
+ (async.upon! (function (_ [r_tally r_documentation])
+ (write! [(..total l_tally r_tally)
+ (format l_documentation ..separator r_documentation)]))
+ right)))
+ io.run!)]
+ read!))
+
+(def (context' description)
+ (-> Text Test Test)
+ (async#each (function (_ [tally documentation])
+ [tally (|> documentation
+ (text.all_split_by ..separator)
+ (list#each (|>> (format text.tab)))
+ (text.interposed ..separator)
+ (format description ..separator))])))
+
+(def .public context
+ (-> Text Test Test)
+ (|>> %.text context'))
+
+(def failure_prefix "[Failure] ")
+(def success_prefix "[Success] ")
+
+(def .public failure
+ (-> Text Test)
+ (|>> (format ..failure_prefix)
+ [..failure_tally]
+ async#in))
+
+(def .public success
+ (-> Text Test)
+ (|>> (format ..success_prefix)
+ [..success_tally]
+ async#in))
+
+(def .public (test message condition)
+ (-> Text Bit Test)
+ (if condition
+ (success message)
+ (failure message)))
+
+(def definition_separator " & ")
+
+(def clean_up_marker (text.of_char (hex "05")))
+
+(def coverage_format
+ (%.Format Symbol)
+ (|>> %.symbol (format ..clean_up_marker)))
+
+(def .public reference
+ (let [symbol (is (-> Symbol Code)
+ (function (_ symbol)
+ (` (is Symbol
+ [(, (code.text (symbol.module symbol)))
+ (, (code.text (symbol.short symbol)))]))))]
+ (syntax (_ [name <code>.symbol])
+ (do meta.monad
+ [_ (meta.export name)]
+ (in (list (symbol name)))))))
+
+(def coverage_separator
+ Text
+ (text.of_char 31))
+
+(def encoded_coverage
+ (-> (List Text) Text)
+ (list#mix (function (_ short aggregate)
+ (case aggregate
+ "" short
+ _ (format aggregate ..coverage_separator short)))
+ ""))
+
+(def (coverage_definitions module encoding)
+ (-> Text Text Coverage)
+ (loop (again [remaining encoding
+ output (set.of_list symbol.hash (list))])
+ (case (text.split_by ..coverage_separator remaining)
+ {.#Some [head tail]}
+ (again tail (set.has [module head] output))
+
+ {.#None}
+ (set.has [module remaining] output))))
+
+(def .public (with_coverage coverage condition)
+ (-> (List Symbol) Bit Test)
+ (let [message (|> coverage
+ (list#each ..coverage_format)
+ (text.interposed ..definition_separator))
+ coverage (set.of_list symbol.hash coverage)]
+ (|> (..test message condition)
+ (async#each (function (_ [tally documentation])
+ [(revised #actual (set.union coverage) tally)
+ documentation])))))
+
+(def .public coverage
+ (syntax (_ [coverage (<code>.tuple (<>.many <code>.any))
+ condition <code>.any])
+ (let [coverage (list#each (function (_ definition)
+ (` (..reference (, definition))))
+ coverage)]
+ (in (list (` (..with_coverage (is (.List .Symbol)
+ (.list (,* coverage)))
+ (, condition))))))))
+
+(def .public (for' coverage test)
+ (-> (List Symbol) Test Test)
+ (let [context (|> coverage
+ (list#each ..coverage_format)
+ (text.interposed ..definition_separator))
+ coverage (set.of_list symbol.hash coverage)]
+ (async#each (function (_ [tally documentation])
+ [(revised #actual (set.union coverage) tally)
+ documentation])
+ (..context' context test))))
+
+(def .public for
+ (syntax (_ [coverage (<code>.tuple (<>.many <code>.any))
+ test <code>.any])
+ (let [coverage (list#each (function (_ definition)
+ (` (..reference (, definition))))
+ coverage)]
+ (in (list (` (..for' (is (.List .Symbol)
+ (.list (,* coverage)))
+ (, test))))))))
+
+(def .public (covering' module coverage test)
+ (-> Text Text Test Test)
+ (let [coverage (..coverage_definitions module coverage)]
+ (|> (..context' module test)
+ (async#each (function (_ [tally documentation])
+ [(revised #expected (set.union coverage) tally)
+ (|> documentation
+ (text.replaced (format ..clean_up_marker module symbol.separator) "")
+ (text.replaced ..clean_up_marker ""))])))))
+
+(def .public covering
+ (syntax (_ [module <code>.symbol
+ test <code>.any])
+ (do meta.monad
+ [.let [module (symbol.module module)]
+ definitions (meta.definitions module)
+ .let [coverage (|> definitions
+ (list#mix (function (_ [short [exported? _]] aggregate)
+ (if exported?
+ {.#Item short aggregate}
+ aggregate))
+ {.#End})
+ ..encoded_coverage)]]
+ (in (list (` (..covering' (, (code.text module)) (, (code.text coverage)) (, test))))))))
diff --git a/stdlib/source/specification/aedifex/repository.lux b/stdlib/source/specification/aedifex/repository.lux
index 9cc2e0f2d..a0812b443 100644
--- a/stdlib/source/specification/aedifex/repository.lux
+++ b/stdlib/source/specification/aedifex/repository.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -12,7 +11,9 @@
["[0]" binary (.only)
["_[1]" \\test]]]
[math
- ["[0]" random]]]]
+ ["[0]" random]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\program
["[0]" / (.only)
["[1][0]" remote]
@@ -27,7 +28,7 @@
(-> Artifact Artifact (/.Repository Async) Test)
(do random.monad
[expected (_binary.random 100)]
- (in (all _.and'
+ (in (all unit.and
(do async.monad
[.let [good_uri (/remote.uri (the //artifact.#version valid_artifact) valid_artifact //artifact/extension.lux_library)]
good_upload! (at subject upload good_uri expected)
@@ -36,7 +37,7 @@
.let [bad_uri (/remote.uri (the //artifact.#version invalid_artifact) invalid_artifact //artifact/extension.lux_library)]
bad_upload! (at subject upload bad_uri expected)
bad_download! (at subject download bad_uri)]
- (_.coverage' [/.Repository]
+ (unit.coverage [/.Repository]
(let [successfull_flow!
(case [good_upload! good_download!]
[{try.#Success _} {try.#Success actual}]
diff --git a/stdlib/source/specification/compositor/analysis/type.lux b/stdlib/source/specification/compositor/analysis/type.lux
index 6675fad09..89ee8646f 100644
--- a/stdlib/source/specification/compositor/analysis/type.lux
+++ b/stdlib/source/specification/compositor/analysis/type.lux
@@ -56,8 +56,8 @@
[[typeC exprT exprC] ..check
[other_typeC other_exprT other_exprC] ..check]
(all _.and
- (_.property "lux check"
+ (_.test "lux check"
(check_success+ expander state "lux check" (list typeC exprC) exprT))
- (_.property "lux coerce"
+ (_.test "lux coerce"
(check_success+ expander state "lux coerce" (list typeC other_exprC) exprT))
)))
diff --git a/stdlib/source/specification/compositor/generation/case.lux b/stdlib/source/specification/compositor/generation/case.lux
index 5e00820b2..6ac785a12 100644
--- a/stdlib/source/specification/compositor/generation/case.lux
+++ b/stdlib/source/specification/compositor/generation/case.lux
@@ -101,7 +101,7 @@
(-> Runner Test)
(do r.monad
[value r.safe_frac]
- (_.property (%.symbol (symbol synthesis.branch/let))
+ (_.test (%.symbol (symbol synthesis.branch/let))
(|> (synthesis.branch/let [(synthesis.f64 value)
0
(synthesis.variable/local 0)])
@@ -114,7 +114,7 @@
[on_true r.safe_frac
on_false (|> r.safe_frac (r.only (|>> (f.= on_true) not)))
verdict r.bit]
- (_.property (%.symbol (symbol synthesis.branch/if))
+ (_.test (%.symbol (symbol synthesis.branch/if))
(|> (synthesis.branch/if [(synthesis.bit verdict)
(synthesis.f64 on_true)
(synthesis.f64 on_false)])
@@ -127,7 +127,7 @@
[[inputS pathS] ..case
on_success r.safe_frac
on_failure (|> r.safe_frac (r.only (|>> (f.= on_success) not)))]
- (_.property (%.symbol (symbol synthesis.branch/case))
+ (_.test (%.symbol (symbol synthesis.branch/case))
(|> (synthesis.branch/case
[inputS
(all synthesis.path/alt
@@ -243,11 +243,11 @@
(def (special_spec run)
(-> Runner Test)
(all _.and
- (_.property "==="
+ (_.test "==="
(and (text#= (synthesis.%path special_path)
(synthesis.%path special_pattern_path))
(at synthesis.path_equivalence = special_path special_pattern_path)))
- (_.property "CODE"
+ (_.test "CODE"
(|> special_input
(run "special_input")
(pipe.case
@@ -256,7 +256,7 @@
{try.#Failure _}
false)))
- (_.property "PATTERN_MATCHING 0"
+ (_.test "PATTERN_MATCHING 0"
(|> (synthesis.branch/case [special_input
special_path])
(run "special_path")
@@ -266,7 +266,7 @@
{try.#Failure _}
false)))
- (_.property "PATTERN_MATCHING 1"
+ (_.test "PATTERN_MATCHING 1"
(|> (synthesis.branch/case [special_input
special_pattern_path])
(run "special_pattern_path")
diff --git a/stdlib/source/specification/compositor/generation/common.lux b/stdlib/source/specification/compositor/generation/common.lux
index eb1a1ac70..ba691bde7 100644
--- a/stdlib/source/specification/compositor/generation/common.lux
+++ b/stdlib/source/specification/compositor/generation/common.lux
@@ -40,7 +40,7 @@
[param r.i64
subject r.i64]
(with_expansions [<binary> (with_template [<extension> <reference> <param_expr>]
- [(_.property <extension>
+ [(_.test <extension>
(|> {synthesis.#Extension <extension> (list (synthesis.i64 param)
(synthesis.i64 subject))}
(run (..safe <extension>))
@@ -60,7 +60,7 @@
)]
(all _.and
<binary>
- (_.property "lux i64 arithmetic-right-shift"
+ (_.test "lux i64 arithmetic-right-shift"
(|> {synthesis.#Extension "lux i64 arithmetic-right-shift"
(list (synthesis.i64 subject)
(synthesis.i64 param))}
@@ -83,7 +83,7 @@
subject r.i64]
(`` (all _.and
(,, (with_template [<extension> <type> <prepare> <comp> <subject_expr>]
- [(_.property <extension>
+ [(_.test <extension>
(|> {synthesis.#Extension <extension> (list (synthesis.i64 subject))}
(run (..safe <extension>))
(pipe.case
@@ -101,7 +101,7 @@
(as Int))]
))
(,, (with_template [<extension> <reference> <outputT> <comp>]
- [(_.property <extension>
+ [(_.test <extension>
(|> {synthesis.#Extension <extension> (list (synthesis.i64 param)
(synthesis.i64 subject))}
(run (..safe <extension>))
@@ -133,7 +133,7 @@
subject ..simple_frac]
(`` (all _.and
(,, (with_template [<extension> <reference> <comp>]
- [(_.property <extension>
+ [(_.test <extension>
(|> {synthesis.#Extension <extension> (list (synthesis.f64 param)
(synthesis.f64 subject))}
(run (..safe <extension>))
@@ -146,7 +146,7 @@
["lux f64 %" f.% f.=]
))
(,, (with_template [<extension> <text>]
- [(_.property <extension>
+ [(_.test <extension>
(|> {synthesis.#Extension <extension> (list (synthesis.f64 param)
(synthesis.f64 subject))}
(run (..safe <extension>))
@@ -162,7 +162,7 @@
["lux f64 <" f.<]
))
(,, (with_template [<extension> <reference>]
- [(_.property <extension>
+ [(_.test <extension>
(|> {synthesis.#Extension <extension> (list)}
(run (..safe <extension>))
(//case.verify <reference>)))]
@@ -171,7 +171,7 @@
["lux f64 max" ("lux f64 max")]
["lux f64 smallest" ("lux f64 smallest")]
))
- (_.property "'lux f64 i64 && 'lux i64 f64'"
+ (_.test "'lux f64 i64 && 'lux i64 f64'"
(|> (run (..safe "lux f64 i64")
(|> subject synthesis.f64
(list) {synthesis.#Extension "lux f64 i64"}
@@ -197,7 +197,7 @@
pre_rep_all (|> sample_lower (list.repeated sample_size) (text.interposed sample_upper))
post_rep_all (|> sample_lower (list.repeated sample_size) (text.interposed sample_alpha))]]
(all _.and
- (_.property "Can compare texts for equality."
+ (_.test "Can compare texts for equality."
(and (|> {synthesis.#Extension "lux text =" (list sample_lowerS sample_lowerS)}
(run (..safe "lux text ="))
(pipe.case
@@ -214,7 +214,7 @@
_
false))))
- (_.property "Can compare texts for order."
+ (_.test "Can compare texts for order."
(|> {synthesis.#Extension "lux text <" (list sample_lowerS sample_upperS)}
(run (..safe "lux text <"))
(pipe.case
@@ -223,7 +223,7 @@
{try.#Failure _}
false)))
- (_.property "Can get length of text."
+ (_.test "Can get length of text."
(|> {synthesis.#Extension "lux text size" (list sample_lowerS)}
(run (..safe "lux text size"))
(pipe.case
@@ -232,7 +232,7 @@
_
false)))
- (_.property "Can concatenate text."
+ (_.test "Can concatenate text."
(|> {synthesis.#Extension "lux text size" (list concatenatedS)}
(run (..safe "lux text size"))
(pipe.case
@@ -241,7 +241,7 @@
_
false)))
- (_.property "Can find index of sub-text."
+ (_.test "Can find index of sub-text."
(and (|> {synthesis.#Extension "lux text index"
(list concatenatedS sample_lowerS
(synthesis.i64 +0))}
@@ -281,10 +281,10 @@
_
false))))]
- (_.property "Can clip text to extract sub-text."
+ (_.test "Can clip text to extract sub-text."
(and (test_clip 0 sample_size sample_lower)
(test_clip sample_size sample_size sample_upper))))
- (_.property "Can extract individual characters from text."
+ (_.test "Can extract individual characters from text."
(|> {synthesis.#Extension "lux text char"
(list sample_lowerS
(synthesis.i64 char_idx))}
@@ -305,7 +305,7 @@
(do r.monad
[message (r.alphabetic 5)]
(all _.and
- (_.property "Can log messages."
+ (_.test "Can log messages."
(|> {synthesis.#Extension "lux io log"
(list (synthesis.text (format "LOG: " message)))}
(run (..safe "lux io log"))
@@ -315,7 +315,7 @@
{try.#Failure _}
false)))
- (_.property "Can throw runtime errors."
+ (_.test "Can throw runtime errors."
(and (|> {synthesis.#Extension "lux try"
(list (synthesis.function/abstraction
[synthesis.#environment (list)
diff --git a/stdlib/source/specification/compositor/generation/function.lux b/stdlib/source/specification/compositor/generation/function.lux
index 7fc24cfb8..2fb9714e0 100644
--- a/stdlib/source/specification/compositor/generation/function.lux
+++ b/stdlib/source/specification/compositor/generation/function.lux
@@ -55,12 +55,12 @@
.let [expectation (maybe.trusted (list.item (-- local) inputs))
inputsS (list#each (|>> synthesis.f64) inputs)]]
(all _.and
- (_.property "Can read arguments."
+ (_.test "Can read arguments."
(|> (synthesis.function/apply [synthesis.#function functionS
synthesis.#arguments inputsS])
(run "with_local")
(//case.verify expectation)))
- (_.property "Can partially apply functions."
+ (_.test "Can partially apply functions."
(or (n.= 1 arity)
(let [preS (list.first partial_arity inputsS)
postS (list.after partial_arity inputsS)
@@ -70,7 +70,7 @@
synthesis.#arguments postS])
(run "partial_application")
(//case.verify expectation)))))
- (_.property "Can read environment."
+ (_.test "Can read environment."
(or (n.= 1 arity)
(let [environment (|> partial_arity
(enum.range n.enum 1)
diff --git a/stdlib/source/specification/compositor/generation/primitive.lux b/stdlib/source/specification/compositor/generation/primitive.lux
index 9e6ea2e02..fcb6bd050 100644
--- a/stdlib/source/specification/compositor/generation/primitive.lux
+++ b/stdlib/source/specification/compositor/generation/primitive.lux
@@ -32,7 +32,7 @@
(,, (with_template [<evaluation_name> <synthesis> <gen> <test>]
[(do r.monad
[expected <gen>]
- (_.property (%.symbol (symbol <synthesis>))
+ (_.test (%.symbol (symbol <synthesis>))
(|> (run <evaluation_name> (<synthesis> expected))
(pipe.case
{try.#Success actual}
diff --git a/stdlib/source/specification/compositor/generation/reference.lux b/stdlib/source/specification/compositor/generation/reference.lux
index 7159afe1b..27441f349 100644
--- a/stdlib/source/specification/compositor/generation/reference.lux
+++ b/stdlib/source/specification/compositor/generation/reference.lux
@@ -29,7 +29,7 @@
(do r.monad
[name ..symbol
expected r.safe_frac]
- (_.property "Definitions."
+ (_.test "Definitions."
(|> (define name (synthesis.f64 expected))
(pipe.case
{try.#Success actual}
@@ -43,7 +43,7 @@
(do [! r.monad]
[register (|> r.nat (at ! each (n.% 100)))
expected r.safe_frac]
- (_.property "Local variables."
+ (_.test "Local variables."
(|> (synthesis.branch/let [(synthesis.f64 expected)
register
(synthesis.variable/local register)])
diff --git a/stdlib/source/specification/compositor/generation/structure.lux b/stdlib/source/specification/compositor/generation/structure.lux
index 523ad990e..5521c6303 100644
--- a/stdlib/source/specification/compositor/generation/structure.lux
+++ b/stdlib/source/specification/compositor/generation/structure.lux
@@ -35,7 +35,7 @@
tag_in (|> r.nat (at ! each (n.% num_tags)))
.let [last?_in (|> num_tags -- (n.= tag_in))]
value_in r.i64]
- (_.property (%.symbol (symbol synthesis.variant))
+ (_.test (%.symbol (symbol synthesis.variant))
(|> (synthesis.variant [analysis.#lefts (if last?_in
(-- tag_in)
tag_in)
@@ -69,7 +69,7 @@
(do [! r.monad]
[size (|> r.nat (at ! each (|>> (n.% 10) (n.max 2))))
tuple_in (r.list size r.i64)]
- (_.property (%.symbol (symbol synthesis.tuple))
+ (_.test (%.symbol (symbol synthesis.tuple))
(|> (synthesis.tuple (list#each (|>> synthesis.i64) tuple_in))
(run "tuple")
(pipe.case
diff --git a/stdlib/source/specification/lux/abstract/apply.lux b/stdlib/source/specification/lux/abstract/apply.lux
index 9c29ed974..460469078 100644
--- a/stdlib/source/specification/lux/abstract/apply.lux
+++ b/stdlib/source/specification/lux/abstract/apply.lux
@@ -21,7 +21,7 @@
(All (_ f) (-> (Injection f) (Comparison f) (Apply f) Test))
(do [! random.monad]
[sample (at ! each injection random.nat)]
- (_.property "Identity."
+ (_.test "Identity."
((comparison n.=)
(/#on sample (injection function.identity))
sample))))
@@ -31,7 +31,7 @@
(do [! random.monad]
[sample random.nat
increase (at ! each n.+ random.nat)]
- (_.property "Homomorphism."
+ (_.test "Homomorphism."
((comparison n.=)
(/#on (injection sample) (injection increase))
(injection (increase sample))))))
@@ -41,7 +41,7 @@
(do [! random.monad]
[sample random.nat
increase (at ! each n.+ random.nat)]
- (_.property "Interchange."
+ (_.test "Interchange."
((comparison n.=)
(/#on (injection sample) (injection increase))
(/#on (injection increase) (injection (is (-> (-> Nat Nat) Nat)
@@ -56,7 +56,7 @@
(at ! each n.+ random.nat))
decrease (is (Random :$/1:)
(at ! each n.- random.nat))]
- (_.property "Composition."
+ (_.test "Composition."
((comparison n.=)
(|> (injection (is (-> :$/1: :$/1: :$/1:)
function.composite))
diff --git a/stdlib/source/specification/lux/abstract/codec.lux b/stdlib/source/specification/lux/abstract/codec.lux
index acbc07647..7ed8612b1 100644
--- a/stdlib/source/specification/lux/abstract/codec.lux
+++ b/stdlib/source/specification/lux/abstract/codec.lux
@@ -18,7 +18,7 @@
(do random.monad
[expected generator]
(_.for [/.Codec]
- (_.property "Isomorphism."
+ (_.test "Isomorphism."
(case (|> expected @//encoded @//decoded)
{try.#Success actual}
(@//= expected actual)
diff --git a/stdlib/source/specification/lux/abstract/comonad.lux b/stdlib/source/specification/lux/abstract/comonad.lux
index 897c29f06..9bd0ec336 100644
--- a/stdlib/source/specification/lux/abstract/comonad.lux
+++ b/stdlib/source/specification/lux/abstract/comonad.lux
@@ -21,7 +21,7 @@
(|>> _//out (n.+ diff)))
random.nat)
.let [start (injection sample)]]
- (_.property "Left identity."
+ (_.test "Left identity."
(n.= (morphism start)
(|> start _//disjoint (_//each morphism) _//out)))))
@@ -31,7 +31,7 @@
[sample random.nat
.let [start (injection sample)
== (comparison n.=)]]
- (_.property "Right identity."
+ (_.test "Right identity."
(== start
(|> start _//disjoint (_//each _//out))))))
@@ -47,7 +47,7 @@
random.nat)
.let [start (injection sample)
== (comparison n.=)]]
- (_.property "Associativity."
+ (_.test "Associativity."
(== (|> start _//disjoint (_//each (|>> _//disjoint (_//each increase) decrease)))
(|> start _//disjoint (_//each increase) _//disjoint (_//each decrease))))))
diff --git a/stdlib/source/specification/lux/abstract/enum.lux b/stdlib/source/specification/lux/abstract/enum.lux
index a1cf2820e..84cd03321 100644
--- a/stdlib/source/specification/lux/abstract/enum.lux
+++ b/stdlib/source/specification/lux/abstract/enum.lux
@@ -15,7 +15,7 @@
[sample gen_sample]
(<| (_.for [/.Enum])
(all _.and
- (_.property "Successor and predecessor are inverse functions."
+ (_.test "Successor and predecessor are inverse functions."
(and (_#= (|> sample _#succ _#pred)
sample)
(_#= (|> sample _#pred _#succ)
diff --git a/stdlib/source/specification/lux/abstract/equivalence.lux b/stdlib/source/specification/lux/abstract/equivalence.lux
index b2b643d4f..215a015fe 100644
--- a/stdlib/source/specification/lux/abstract/equivalence.lux
+++ b/stdlib/source/specification/lux/abstract/equivalence.lux
@@ -18,7 +18,7 @@
right random]
(<| (_.for [/.Equivalence])
(all _.and
- (_.property "Reflexivity"
+ (_.test "Reflexivity"
(/#= left left))
- (_.property "Symmetry"
+ (_.test "Symmetry"
(bit#= (/#= left right) (/#= right left)))))))
diff --git a/stdlib/source/specification/lux/abstract/functor.lux b/stdlib/source/specification/lux/abstract/functor.lux
index e1be8eba2..383037e9e 100644
--- a/stdlib/source/specification/lux/abstract/functor.lux
+++ b/stdlib/source/specification/lux/abstract/functor.lux
@@ -26,20 +26,20 @@
(All (_ f) (-> (Injection f) (Comparison f) (Functor f) Test))
(do [! random.monad]
[sample (at ! each injection random.nat)]
- (_.property "Identity."
- ((comparison n.=)
- (@//each function.identity sample)
- sample))))
+ (_.test "Identity."
+ ((comparison n.=)
+ (@//each function.identity sample)
+ sample))))
(def (homomorphism injection comparison (open "@//[0]"))
(All (_ f) (-> (Injection f) (Comparison f) (Functor f) Test))
(do [! random.monad]
[sample random.nat
increase (at ! each n.+ random.nat)]
- (_.property "Homomorphism."
- ((comparison n.=)
- (@//each increase (injection sample))
- (injection (increase sample))))))
+ (_.test "Homomorphism."
+ ((comparison n.=)
+ (@//each increase (injection sample))
+ (injection (increase sample))))))
(def (composition injection comparison (open "@//[0]"))
(All (_ f) (-> (Injection f) (Comparison f) (Functor f) Test))
@@ -47,10 +47,10 @@
[sample (at ! each injection random.nat)
increase (at ! each n.+ random.nat)
decrease (at ! each n.- random.nat)]
- (_.property "Composition."
- ((comparison n.=)
- (|> sample (@//each increase) (@//each decrease))
- (|> sample (@//each (|>> increase decrease)))))))
+ (_.test "Composition."
+ ((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 6099ce42a..3f02e35c8 100644
--- a/stdlib/source/specification/lux/abstract/functor/contravariant.lux
+++ b/stdlib/source/specification/lux/abstract/functor/contravariant.lux
@@ -16,7 +16,7 @@
(def (identity equivalence value (open "@//[0]"))
(All (_ f a) (-> (Equivalence (f a)) (f a) (Functor f) Test))
- (_.property "Law of identity."
+ (_.test "Law of identity."
(equivalence
(@//each function.identity value)
value)))
diff --git a/stdlib/source/specification/lux/abstract/interval.lux b/stdlib/source/specification/lux/abstract/interval.lux
index e0a012e9b..51688e4ce 100644
--- a/stdlib/source/specification/lux/abstract/interval.lux
+++ b/stdlib/source/specification/lux/abstract/interval.lux
@@ -16,8 +16,8 @@
(do random.monad
[sample gen_sample]
(all _.and
- (_.property "No value is bigger than the top."
+ (_.test "No value is bigger than the top."
(@//< @//top sample))
- (_.property "No value is smaller than the bottom."
+ (_.test "No value is smaller than the bottom."
(order.> @//order @//bottom sample))
))))
diff --git a/stdlib/source/specification/lux/abstract/monad.lux b/stdlib/source/specification/lux/abstract/monad.lux
index e95ddf67d..3613a3214 100644
--- a/stdlib/source/specification/lux/abstract/monad.lux
+++ b/stdlib/source/specification/lux/abstract/monad.lux
@@ -18,7 +18,7 @@
morphism (at ! each (function (_ diff)
(|>> (n.+ diff) _//in))
random.nat)]
- (_.property "Left identity."
+ (_.test "Left identity."
((comparison n.=)
(|> (injection sample) (_//each morphism) _//conjoint)
(morphism sample)))))
@@ -27,7 +27,7 @@
(All (_ f) (-> (Injection f) (Comparison f) (/.Monad f) Test))
(do random.monad
[sample random.nat]
- (_.property "Right identity."
+ (_.test "Right identity."
((comparison n.=)
(|> (injection sample) (_//each _//in) _//conjoint)
(injection sample)))))
@@ -42,7 +42,7 @@
decrease (at ! each (function (_ diff)
(|>> (n.- diff) _//in))
random.nat)]
- (_.property "Associativity."
+ (_.test "Associativity."
((comparison n.=)
(|> (injection sample) (_//each increase) _//conjoint (_//each decrease) _//conjoint)
(|> (injection sample) (_//each (|>> increase (_//each decrease) _//conjoint)) _//conjoint)))))
diff --git a/stdlib/source/specification/lux/abstract/monoid.lux b/stdlib/source/specification/lux/abstract/monoid.lux
index dedaca77b..78f387f5f 100644
--- a/stdlib/source/specification/lux/abstract/monoid.lux
+++ b/stdlib/source/specification/lux/abstract/monoid.lux
@@ -20,13 +20,13 @@
right gen_sample]
(<| (_.for [/.Monoid])
(all _.and
- (_.property "Left identity."
+ (_.test "Left identity."
(_#= sample
(_#composite _#identity sample)))
- (_.property "Right identity."
+ (_.test "Right identity."
(_#= sample
(_#composite sample _#identity)))
- (_.property "Associativity."
+ (_.test "Associativity."
(_#= (_#composite left (_#composite mid right))
(_#composite (_#composite left mid) right)))
))))
diff --git a/stdlib/source/specification/lux/abstract/order.lux b/stdlib/source/specification/lux/abstract/order.lux
index 4d448c958..3ec435fb8 100644
--- a/stdlib/source/specification/lux/abstract/order.lux
+++ b/stdlib/source/specification/lux/abstract/order.lux
@@ -16,7 +16,7 @@
(do random.monad
[parameter generator
subject generator]
- (_.property "Values are either ordered, or they are equal. All options(_ are mutually exclusive."
+ (_.test "Values are either ordered, or they are equal. All options(_ are mutually exclusive."
(cond (@//< parameter subject)
(not (or (@//< subject parameter)
(@//= parameter subject)))
@@ -34,7 +34,7 @@
(not (or (@//= parameter value)
(@//= subject value))))
generator)]
- (_.property "Transitive property."
+ (_.test "Transitive property."
(if (@//< parameter subject)
(let [greater? (and (@//< subject extra)
(@//< parameter extra))
diff --git a/stdlib/source/specification/lux/world/console.lux b/stdlib/source/specification/lux/world/console.lux
index 78953c351..cb17b4338 100644
--- a/stdlib/source/specification/lux/world/console.lux
+++ b/stdlib/source/specification/lux/world/console.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -13,7 +12,9 @@
["[0]" text (.only)
["%" \\format (.only format)]]]
[math
- ["[0]" random]]]]
+ ["[0]" random]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" /]])
@@ -52,7 +53,7 @@
_
false)]]
- (_.coverage' [/.Console]
+ (unit.coverage [/.Console]
(and can_write!
can_read!
can_close!))))))
diff --git a/stdlib/source/specification/lux/world/environment.lux b/stdlib/source/specification/lux/world/environment.lux
index 2163fc2e1..fb6600bfe 100644
--- a/stdlib/source/specification/lux/world/environment.lux
+++ b/stdlib/source/specification/lux/world/environment.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -14,7 +13,9 @@
["[0]" dictionary]
["[0]" list]]]
[math
- ["[0]" random]]]]
+ ["[0]" random]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" /]])
@@ -24,7 +25,7 @@
[exit random.int]
(in (do [! async.monad]
[environment (/.environment ! subject)]
- (_.coverage' [/.Environment]
+ (unit.coverage [/.Environment]
(and (not (dictionary.empty? environment))
(list.every? (|>> text.empty? not)
(dictionary.keys environment))
diff --git a/stdlib/source/specification/lux/world/file.lux b/stdlib/source/specification/lux/world/file.lux
index dc6cb6528..0f642d2aa 100644
--- a/stdlib/source/specification/lux/world/file.lux
+++ b/stdlib/source/specification/lux/world/file.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -28,7 +27,9 @@
["n" nat]]]
[world
[time
- ["[0]" instant (.only Instant) (.use "[1]#[0]" equivalence)]]]]]
+ ["[0]" instant (.only Instant) (.use "[1]#[0]" equivalence)]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" /]])
@@ -41,17 +42,17 @@
in
(do async.monad
[fs (async.future fs)]
- (all _.and'
- (_.coverage' [/.rooted]
+ (all unit.and
+ (unit.coverage [/.rooted]
(let [path (/.rooted fs parent child)]
(and (text.starts_with? parent path)
(text.ends_with? child path))))
- (_.coverage' [/.parent]
+ (unit.coverage [/.parent]
(|> (/.rooted fs parent child)
(/.parent fs)
(maybe#each (text#= parent))
(maybe.else false)))
- (_.coverage' [/.name]
+ (unit.coverage [/.name]
(|> (/.rooted fs parent child)
(/.name fs)
(text#= child)))
@@ -198,7 +199,7 @@
move&delete
(..move&delete fs parent child alternate_child)])
- (_.coverage' [/.System]
+ (unit.coverage [/.System]
(and directory?&make_directory
file?&write
file_size&read&append
@@ -228,8 +229,8 @@
cannot_make_directory!/0 (/.make_directories ! fs "")
cannot_make_directory!/1 (/.make_directories ! fs (at fs separator))])
- (all _.and'
- (_.coverage' [/.make_directories]
+ (all unit.and
+ (unit.coverage [/.make_directories]
(and (not pre_dir/0)
(not pre_dir/1)
(not pre_dir/2)
@@ -239,7 +240,7 @@
post_dir/0
post_dir/1
post_dir/2))
- (_.coverage' [/.cannot_make_directory]
+ (unit.coverage [/.cannot_make_directory]
(and (case cannot_make_directory!/0
{try.#Success _}
false
@@ -263,12 +264,12 @@
[fs (async.future fs)
make_file!/0 (/.make_file ! fs (utf8#encoded file/0) file/0)
make_file!/1 (/.make_file ! fs (utf8#encoded file/0) file/0)])
- (all _.and'
- (_.coverage' [/.make_file]
+ (all unit.and
+ (unit.coverage [/.make_file]
(case make_file!/0
{try.#Success _} true
{try.#Failure error} false))
- (_.coverage' [/.cannot_make_file]
+ (unit.coverage [/.cannot_make_file]
(case make_file!/1
{try.#Success _}
false
@@ -306,7 +307,7 @@
post_file/1 (/.exists? ! fs file)
post_dir/0 (at fs directory? dir)
post_dir/1 (/.exists? ! fs dir)])
- (_.coverage' [/.exists?]
+ (unit.coverage [/.exists?]
(and (not pre_file/0)
(not pre_file/1)
(not pre_dir/0)
diff --git a/stdlib/source/specification/lux/world/shell.lux b/stdlib/source/specification/lux/world/shell.lux
index ddf544c55..bf507b536 100644
--- a/stdlib/source/specification/lux/world/shell.lux
+++ b/stdlib/source/specification/lux/world/shell.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -16,7 +15,9 @@
["[0]" random]
[number
["n" nat]
- ["i" int]]]]]
+ ["i" int]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -34,11 +35,11 @@
)
(def (can_wait! process)
- (-> (/.Process Async) _.Assertion)
+ (-> (/.Process Async) unit.Test)
(|> (at process await [])
(async#each (|>> (try#each (i.= /.normal))
(try.else false)
- (_.coverage' [/.Exit /.normal])))
+ (unit.coverage [/.Exit /.normal])))
async#conjoint))
(def (can_read! expected process)
@@ -80,13 +81,13 @@
(do !
[can_read! (..can_read! message echo)
can_destroy! (..can_destroy! sleep)]
- (all _.and'
- (_.coverage' <shell_coverage>
+ (all unit.and
+ (unit.coverage <shell_coverage>
(and can_read!
can_destroy!))
(..can_wait! echo)
))
_
- (_.coverage' <shell_coverage>
+ (unit.coverage <shell_coverage>
false))))))))
diff --git a/stdlib/source/test/aedifex/cache.lux b/stdlib/source/test/aedifex/cache.lux
index 515ca42b7..9dbb8405b 100644
--- a/stdlib/source/test/aedifex/cache.lux
+++ b/stdlib/source/test/aedifex/cache.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except Type)
- ["_" test (.only Test)]
[abstract
["[0]" monad (.only do)]]
[control
@@ -25,7 +24,9 @@
["n" nat]]]
[world
["[0]" file]
- ["[0]" program]]]]
+ ["[0]" program]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[//
["@[0]" profile]
["@[0]" artifact]
@@ -111,7 +112,7 @@
(in (do async.monad
[wrote! (/.write_one program fs dependency expected_package)
read! (/.read_one program fs dependency)]
- (_.coverage' [/.write_one /.read_one]
+ (unit.coverage [/.write_one /.read_one]
(<| (try.else false)
(do try.monad
[_ wrote!
@@ -132,7 +133,7 @@
(in (do async.monad
[wrote! (/.write_all program fs expected)
read! (/.read_all program fs (dictionary.keys expected) //dependency/resolution.empty)]
- (_.coverage' [/.write_all /.read_all]
+ (unit.coverage [/.write_all /.read_all]
(<| (try.else false)
(do try.monad
[_ wrote!
diff --git a/stdlib/source/test/aedifex/cli.lux b/stdlib/source/test/aedifex/cli.lux
index d0aef0468..b83d643b8 100644
--- a/stdlib/source/test/aedifex/cli.lux
+++ b/stdlib/source/test/aedifex/cli.lux
@@ -72,7 +72,7 @@
Test
(do random.monad
[expected ..command]
- (_.property "Without profile."
+ (_.test "Without profile."
(|> expected
..format
(cli.result /.command)
@@ -89,7 +89,7 @@
(do random.monad
[expected_profile (random.alphabetic 1)
expected_command ..command]
- (_.property "With profile."
+ (_.test "With profile."
(|> expected_command
..format
(list.partial "with" expected_profile)
diff --git a/stdlib/source/test/aedifex/command/auto.lux b/stdlib/source/test/aedifex/command/auto.lux
index 8cc8177a1..10c249e3e 100644
--- a/stdlib/source/test/aedifex/command/auto.lux
+++ b/stdlib/source/test/aedifex/command/auto.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -31,7 +30,9 @@
["[0]" file
["[0]" watch]]
[time
- ["[0]" instant]]]]]
+ ["[0]" instant]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
["[0]" //
["$[0]" version]
["$[0]" build]]
@@ -120,6 +121,6 @@
(at ! each (n.= expected_runs)))]
(in {try.#Success (and correct_number_of_runs!
no_dangling_process!)})))]
- (_.coverage' [/.do!]
+ (unit.coverage [/.do!]
(try.else false verdict))))
))))
diff --git a/stdlib/source/test/aedifex/command/build.lux b/stdlib/source/test/aedifex/command/build.lux
index 7ae2a8c72..81907a9ad 100644
--- a/stdlib/source/test/aedifex/command/build.lux
+++ b/stdlib/source/test/aedifex/command/build.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -22,7 +21,9 @@
[world
["[0]" file]
["[0]" shell (.only Shell)]
- ["[0]" program]]]]
+ ["[0]" program]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
["[0]" //
["@[0]" version]
["$/[1]" //
@@ -162,7 +163,7 @@
(in (do async.monad
[outcome (/.do! (@version.echo "") (program.async (program.mock environment.empty home working_directory)) fs shell ///dependency/resolution.empty
(with_target empty_profile))]
- (_.coverage' [/.no_specified_program]
+ (unit.coverage [/.no_specified_program]
(case outcome
{try.#Success _}
false
@@ -171,7 +172,7 @@
(exception.match? /.no_specified_program error)))))
(in (do async.monad
[outcome (/.do! (@version.echo "") (program.async (program.mock environment.empty home working_directory)) fs shell ///dependency/resolution.empty profile)]
- (_.coverage' [/.Lux /.no_available_lux]
+ (unit.coverage [/.Lux /.no_available_lux]
(case outcome
{try.#Success _}
false
@@ -190,15 +191,15 @@
end (at console read_line [])]
(in (and (text#= /.start start)
(text#= /.success end))))]
- (_.coverage' [/.do!
- /.lux_group
- /.jvm_lux_name
- /.js_lux_name
- /.python_lux_name
- /.lua_lux_name
- /.ruby_lux_name
- /.start
- /.success]
+ (unit.coverage [/.do!
+ /.lux_group
+ /.jvm_lux_name
+ /.js_lux_name
+ /.python_lux_name
+ /.lua_lux_name
+ /.ruby_lux_name
+ /.start
+ /.success]
(try.else false verdict)))))
(do !
[.let [console (@version.echo "")]
@@ -212,7 +213,7 @@
end (at console read_line [])]
(in (and (text#= /.start start)
(text#= /.failure end))))]
- (_.coverage' [/.failure]
+ (unit.coverage [/.failure]
(try.else false verdict)))))
(do !
[expected/0 (random.alphabetic 5)
@@ -243,7 +244,7 @@
(text#= expected/1 actual/1)
(text#= expected/2 actual/2)
end!)))]
- (_.coverage' [<log!>]
+ (unit.coverage [<log!>]
(try.else false verdict)))))]
[#0 /.log_output!]
diff --git a/stdlib/source/test/aedifex/command/clean.lux b/stdlib/source/test/aedifex/command/clean.lux
index f4e220aa1..bbc47ccfe 100644
--- a/stdlib/source/test/aedifex/command/clean.lux
+++ b/stdlib/source/test/aedifex/command/clean.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
["[0]" monad (.only do)]]
[control
@@ -21,7 +20,9 @@
[number
["n" nat]]]
[world
- ["[0]" file (.only Path)]]]]
+ ["[0]" file (.only Path)]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[//
["@[0]" version]
[//
@@ -115,5 +116,5 @@
(and sub_exists!/pre
(not sub_exists!/post))
(text#= (/.success target_path) logging))))]
- (_.coverage' [/.do! /.success]
+ (unit.coverage [/.do! /.success]
(try.else false verdict)))))))
diff --git a/stdlib/source/test/aedifex/command/deploy.lux b/stdlib/source/test/aedifex/command/deploy.lux
index 6a146cc44..dfa352553 100644
--- a/stdlib/source/test/aedifex/command/deploy.lux
+++ b/stdlib/source/test/aedifex/command/deploy.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -32,7 +31,9 @@
[world
["[0]" file]
["[0]" program (.only Program)]
- ["[0]" shell]]]]
+ ["[0]" shell]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[//
["$[0]" build]
["$[0]" install]
@@ -130,5 +131,5 @@
deployed_pom!
deployed_sha-1!
deployed_md5!)))]
- (_.coverage' [/.do! /.success]
+ (unit.coverage [/.do! /.success]
(try.else false verdict)))))))
diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux
index 4d08505b0..905afb575 100644
--- a/stdlib/source/test/aedifex/command/deps.lux
+++ b/stdlib/source/test/aedifex/command/deps.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]
["[0]" predicate]]
@@ -25,7 +24,9 @@
["[0]" random (.only Random)]]
[world
["[0]" program]
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
["[0]" //
["@[0]" version]
["$/[1]" //
@@ -126,5 +127,5 @@
had_dependee_after!
had_depender_after!)))]
- (_.coverage' [/.do!]
+ (unit.coverage [/.do!]
(try.else false verdict)))))))
diff --git a/stdlib/source/test/aedifex/command/install.lux b/stdlib/source/test/aedifex/command/install.lux
index 3221f640a..930cc17f4 100644
--- a/stdlib/source/test/aedifex/command/install.lux
+++ b/stdlib/source/test/aedifex/command/install.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
["[0]" monad (.only do)]]
[control
@@ -21,7 +20,9 @@
["[0]" random]]
[world
["[0]" file]
- ["[0]" program (.only Program)]]]]
+ ["[0]" program (.only Program)]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[//
["$[0]" version]
[//
@@ -91,13 +92,13 @@
(in (and succeeded!
library_exists!
pom_exists!)))]
- (_.coverage' [/.do! /.success]
+ (unit.coverage [/.do! /.success]
(try.else false verdict))))
(in (do [! async.monad]
[.let [fs (file.mock /)
program (program.async (program.mock environment.empty home working_directory))]
logging (..execute! program fs (has ///.#identity {.#None} sample))]
- (_.coverage' [/.failure]
+ (unit.coverage [/.failure]
(|> logging
(try#each (text#= /.failure))
(try.else false)))))
diff --git a/stdlib/source/test/aedifex/command/pom.lux b/stdlib/source/test/aedifex/command/pom.lux
index 9390cb51b..21deefa0f 100644
--- a/stdlib/source/test/aedifex/command/pom.lux
+++ b/stdlib/source/test/aedifex/command/pom.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -18,7 +17,9 @@
[math
["[0]" random]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[//
["@[0]" version]
[//
@@ -57,11 +58,11 @@
(binary#= expected actual)]]
(in (and logging!
expected_content!)))]
- (_.coverage' [/.do! /.success]
+ (unit.coverage [/.do! /.success]
(try.else false verdict)))
{try.#Failure error}
- (_.coverage' [/.do!]
+ (unit.coverage [/.do!]
(case (the ///.#identity sample)
{.#Some _}
false
diff --git a/stdlib/source/test/aedifex/command/test.lux b/stdlib/source/test/aedifex/command/test.lux
index d65fbd491..440123f65 100644
--- a/stdlib/source/test/aedifex/command/test.lux
+++ b/stdlib/source/test/aedifex/command/test.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -21,7 +20,9 @@
[world
["[0]" file]
["[0]" shell]
- ["[0]" program]]]]
+ ["[0]" program]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
["[0]" //
["@[0]" version]
["@[0]" build]
@@ -74,8 +75,8 @@
(text#= //build.success build_end))
(and (text#= /.start test_start)
(text#= /.success test_end)))))]
- (_.coverage' [/.do!
- /.start /.success]
+ (unit.coverage [/.do!
+ /.start /.success]
(try.else false verdict)))))
(let [fs (file.mock (at file.default separator))
console (@version.echo "")]
@@ -110,6 +111,6 @@
(text#= //build.success build_end))
(and (text#= /.start test_start)
(text#= /.failure test_end)))))]
- (_.coverage' [/.failure]
+ (unit.coverage [/.failure]
(try.else false verdict)))))
))))
diff --git a/stdlib/source/test/aedifex/command/version.lux b/stdlib/source/test/aedifex/command/version.lux
index fa22f379b..1becba8d2 100644
--- a/stdlib/source/test/aedifex/command/version.lux
+++ b/stdlib/source/test/aedifex/command/version.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -20,7 +19,9 @@
[compiler
["[0]" version]]]
[world
- ["[0]" console (.only Console Mock)]]]]
+ ["[0]" console (.only Console Mock)]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[///
["@[0]" profile]]
[\\program
@@ -73,5 +74,5 @@
logging (at console read_line [])]
(in (text#= (version.format lux_version.latest)
logging)))]
- (_.coverage' [/.do!]
+ (unit.coverage [/.do!]
(try.else false verdict)))))))
diff --git a/stdlib/source/test/aedifex/dependency/deployment.lux b/stdlib/source/test/aedifex/dependency/deployment.lux
index fee8caf9d..2eeb0abb8 100644
--- a/stdlib/source/test/aedifex/dependency/deployment.lux
+++ b/stdlib/source/test/aedifex/dependency/deployment.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]
["[0]" hash (.only Hash)]]
@@ -31,7 +30,9 @@
["[0]" http
["[1]" client]
["[1]/[0]" status]
- ["@[1]" /]]]]]]
+ ["@[1]" /]]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
["$[0]" // (.only)
["[1]/" //
["[1][0]" package]]]
@@ -159,7 +160,7 @@
(in (do async.monad
[?outcome (/.one repository dependency package)
cache (async.future (atom.read! cache))]
- (_.coverage' [/.one]
+ (unit.coverage [/.one]
(|> ?outcome
(try#each (verify_one 1 address package cache expected_artifact))
(try.else false))))))
@@ -182,7 +183,7 @@
(in (do async.monad
[?outcome (/.all repository resolution)
cache (async.future (atom.read! cache))]
- (_.coverage' [/.all]
+ (unit.coverage [/.all]
(|> ?outcome
(try#each (function (_ actual_artifacts)
(let [expected_deployments!
diff --git a/stdlib/source/test/aedifex/dependency/resolution.lux b/stdlib/source/test/aedifex/dependency/resolution.lux
index e724392a5..153d4b4ac 100644
--- a/stdlib/source/test/aedifex/dependency/resolution.lux
+++ b/stdlib/source/test/aedifex/dependency/resolution.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except all)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]
["[0]" predicate]
@@ -26,7 +25,9 @@
["[0]" set]
["[0]" list]]]
[math
- ["[0]" random (.only Random)]]]]
+ ["[0]" random (.only Random)]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
["$[0]" ///
["[1][0]" package]
["[1][0]" repository]
@@ -262,7 +263,7 @@
[actual_package (/.one (///repository.mock good [])
[///dependency.#artifact expected_artifact
///dependency.#type ///artifact/type.lux_library])]
- (_.coverage' [/.one]
+ (unit.coverage [/.one]
(case actual_package
{try.#Success actual_package}
(at ///package.equivalence =
@@ -276,7 +277,7 @@
[actual_package (/.one (///repository.mock <bad> [])
[///dependency.#artifact expected_artifact
///dependency.#type ///artifact/type.lux_library])]
- (_.coverage' [<exception>]
+ (unit.coverage [<exception>]
(case actual_package
{try.#Failure error}
(exception.match? <exception> error)
@@ -311,7 +312,7 @@
(///repository.mock good []))
[///dependency.#artifact expected_artifact
///dependency.#type ///artifact/type.lux_library])]
- (_.coverage' [/.any]
+ (unit.coverage [/.any]
(case actual_package
{try.#Success actual_package}
(at ///package.equivalence =
@@ -327,7 +328,7 @@
(///repository.mock bad_md5 []))
[///dependency.#artifact expected_artifact
///dependency.#type ///artifact/type.lux_library])]
- (_.coverage' [/.cannot_resolve]
+ (unit.coverage [/.cannot_resolve]
(case actual_package
{try.#Failure error}
(exception.match? /.cannot_resolve error)
@@ -416,7 +417,7 @@
(///repository.mock ..nope []))
(list depender)
/.empty)]
- (_.coverage' [/.all]
+ (unit.coverage [/.all]
(and (dictionary.key? resolution depender)
(list.any? (///dependency#= depender) successes)
diff --git a/stdlib/source/test/aedifex/input.lux b/stdlib/source/test/aedifex/input.lux
index 23192f590..b9f8195f6 100644
--- a/stdlib/source/test/aedifex/input.lux
+++ b/stdlib/source/test/aedifex/input.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -18,7 +17,9 @@
[math
["[0]" random]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[//
["$[0]" profile]]
[\\program
@@ -63,5 +64,5 @@
(revised //.#sources ..with_default_source)
(revised //.#repositories ..with_default_repository))
actual)))]
- (_.coverage' [/.read]
+ (unit.coverage [/.read]
(try.else false verdict)))))))
diff --git a/stdlib/source/test/aedifex/metadata/artifact.lux b/stdlib/source/test/aedifex/metadata/artifact.lux
index ed5b95b3b..1e05fbc3a 100644
--- a/stdlib/source/test/aedifex/metadata/artifact.lux
+++ b/stdlib/source/test/aedifex/metadata/artifact.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]
[\\specification
@@ -34,7 +33,9 @@
["[0]" year]
["[0]" month]
["[0]" instant]
- ["[0]" duration]]]]]
+ ["[0]" duration]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\program
["[0]" / (.only)
["/[1]" // (.only)
@@ -105,7 +106,7 @@
(in (do async.monad
[wrote? (/.write repository artifact expected)
actual (/.read repository artifact)]
- (_.coverage' [/.write /.read]
+ (unit.coverage [/.write /.read]
(and (case wrote?
{try.#Success _} true
{try.#Failure _} false)
diff --git a/stdlib/source/test/aedifex/metadata/snapshot.lux b/stdlib/source/test/aedifex/metadata/snapshot.lux
index 773dd262b..983b78d6d 100644
--- a/stdlib/source/test/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/test/aedifex/metadata/snapshot.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]
[\\specification
@@ -34,7 +33,9 @@
["[0]" year]
["[0]" month]
["[0]" instant (.only Instant)]
- ["[0]" duration]]]]]
+ ["[0]" duration]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
["$[0]" ///
["[1][0]" artifact
["[1]/[0]" type]
@@ -117,7 +118,7 @@
(in (do async.monad
[wrote? (/.write repository artifact expected)
actual (/.read repository artifact)]
- (_.coverage' [/.write /.read]
+ (unit.coverage [/.write /.read]
(and (case wrote?
{try.#Success _} true
{try.#Failure _} false)
diff --git a/stdlib/source/test/aedifex/repository/local.lux b/stdlib/source/test/aedifex/repository/local.lux
index 8eadfd24c..811a8e4e9 100644
--- a/stdlib/source/test/aedifex/repository/local.lux
+++ b/stdlib/source/test/aedifex/repository/local.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -19,7 +18,9 @@
["[0]" random]]
[world
["[0]" file]
- ["[0]" program]]]]
+ ["[0]" program]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\program
["[0]" /]])
@@ -42,7 +43,7 @@
[before_upload (at repo download uri)
_ (at repo upload uri expected)
actual (at repo download uri)]
- (_.coverage' [/.repository]
+ (unit.coverage [/.repository]
(and (case before_upload
{try.#Success _} false
{try.#Failure _} true)
diff --git a/stdlib/source/test/lux/abstract/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux
index 0ea65a1ca..4a747951f 100644
--- a/stdlib/source/test/lux/abstract/equivalence.lux
+++ b/stdlib/source/test/lux/abstract/equivalence.lux
@@ -88,7 +88,7 @@
Test
(<| (_.covering \\polytypic._)
(_.for [\\polytypic.equivalence]
- (for @.old (_.property "PLACEHOLDER" true)
+ (for @.old (_.test "PLACEHOLDER" true)
(\\specification.spec ..equivalence ..random)))))
(def .public test
diff --git a/stdlib/source/test/lux/abstract/interval.lux b/stdlib/source/test/lux/abstract/interval.lux
index 438a02394..8953e1d80 100644
--- a/stdlib/source/test/lux/abstract/interval.lux
+++ b/stdlib/source/test/lux/abstract/interval.lux
@@ -93,11 +93,11 @@
left_outer ..outer
right_outer ..outer]
(all _.and
- (_.property "The union of an interval to itself yields the same interval."
+ (_.test "The union of an interval to itself yields the same interval."
(/#= some_interval (/.union some_interval some_interval)))
- (_.property "The union of 2 inner intervals is another inner interval."
+ (_.test "The union of 2 inner intervals is another inner interval."
(/.inner? (/.union left_inner right_inner)))
- (_.property "The union of 2 outer intervals yields an inner interval when their complements don't overlap, and an outer when they do."
+ (_.test "The union of 2 outer intervals yields an inner interval when their complements don't overlap, and an outer when they do."
(if (/.overlaps? (/.complement left_outer) (/.complement right_outer))
(/.outer? (/.union left_outer right_outer))
(/.inner? (/.union left_outer right_outer))))
@@ -114,13 +114,13 @@
left_outer ..outer
right_outer ..outer]
(all _.and
- (_.property "The intersection of an interval to itself yields the same interval."
+ (_.test "The intersection of an interval to itself yields the same interval."
(/#= some_interval (/.intersection some_interval some_interval)))
- (_.property "The intersection of 2 inner intervals yields an inner interval when they overlap, and an outer when they don't."
+ (_.test "The intersection of 2 inner intervals yields an inner interval when they overlap, and an outer when they don't."
(if (/.overlaps? left_inner right_inner)
(/.inner? (/.intersection left_inner right_inner))
(/.outer? (/.intersection left_inner right_inner))))
- (_.property "The intersection of 2 outer intervals is another outer interval."
+ (_.test "The intersection of 2 outer intervals is another outer interval."
(/.outer? (/.intersection left_outer right_outer)))
)))
@@ -129,9 +129,9 @@
(do random.monad
[some_interval ..interval]
(all _.and
- (_.property "The complement of a complement is the same as the original."
+ (_.test "The complement of a complement is the same as the original."
(/#= some_interval (|> some_interval /.complement /.complement)))
- (_.property "The complement of an interval does not overlap it."
+ (_.test "The complement of an interval does not overlap it."
(not (/.overlaps? some_interval (/.complement some_interval))))
)))
@@ -199,22 +199,22 @@
_
(undefined)))))]
(all _.and
- (_.property "Every interval is nested into itself."
+ (_.test "Every interval is nested into itself."
(/.nested? some_interval some_interval))
(let [small_inner (/.between n.enum x1 x2)
large_inner (/.between n.enum x0 x3)]
- (_.property "Inner intervals can be nested inside one another."
+ (_.test "Inner intervals can be nested inside one another."
(and (/.nested? large_inner small_inner)
(not (/.nested? small_inner large_inner)))))
(let [small_outer (/.between n.enum x2 x1)
large_outer (/.between n.enum x3 x0)]
- (_.property "Outer intervals can be nested inside one another."
+ (_.test "Outer intervals can be nested inside one another."
(and (/.nested? small_outer large_outer)
(not (/.nested? large_outer small_outer)))))
(let [left_inner (/.between n.enum x0 x1)
right_inner (/.between n.enum x2 x3)
outer (/.between n.enum x0 x3)]
- (_.property "Inners can be nested inside outers."
+ (_.test "Inners can be nested inside outers."
(and (/.nested? outer left_inner)
(/.nested? outer right_inner))))
)))
@@ -233,17 +233,17 @@
_
(undefined)))))]
(all _.and
- (_.property "No interval overlaps with itself."
+ (_.test "No interval overlaps with itself."
(not (/.overlaps? some_interval some_interval)))
(let [left_inner (/.between n.enum x0 x2)
right_inner (/.between n.enum x1 x3)]
- (_.property "Inner intervals can overlap one another."
+ (_.test "Inner intervals can overlap one another."
(and (/.overlaps? left_inner right_inner)
(/.overlaps? right_inner left_inner))))
(let [left_inner (/.between n.enum x0 x2)
right_inner (/.between n.enum x1 x3)
outer (/.between n.enum x1 x2)]
- (_.property "Inners can overlap outers."
+ (_.test "Inners can overlap outers."
(and (/.overlaps? outer left_inner)
(/.overlaps? outer right_inner))))
)))
diff --git a/stdlib/source/test/lux/control/concurrency/actor.lux b/stdlib/source/test/lux/control/concurrency/actor.lux
index d3ecb4887..e4f3755c2 100644
--- a/stdlib/source/test/lux/control/concurrency/actor.lux
+++ b/stdlib/source/test/lux/control/concurrency/actor.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -17,7 +16,9 @@
[math
["[0]" random]
[number
- ["n" nat]]]]]
+ ["n" nat]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -101,7 +102,7 @@
(/.poison! actor)))
_ (async.delay 100)
result (async.future (async.value read))]
- (_.coverage' [/.poisoned]
+ (unit.coverage [/.poisoned]
(case result
{.#Some error}
(exception.match? /.poisoned error)
@@ -114,8 +115,8 @@
[actor (/.spawn! /.default 0)
sent? (/.mail! ++! actor)]
(in (..mailed? sent?))))]
- (_.coverage' [/.Behavior /.Mail
- /.default /.spawn! /.mail!]
+ (unit.coverage [/.Behavior /.Mail
+ /.default /.spawn! /.mail!]
sent?)))
(in (do async.monad
@@ -123,7 +124,7 @@
[counter (/.spawn! /.default 0)
_ (/.poison! counter)]
(/.mail! ++! counter)))]
- (_.coverage' [/.dead]
+ (unit.coverage [/.dead]
(case result
{try.#Success outcome}
false
@@ -141,7 +142,7 @@
alive? (/.alive? actor)
obituary (/.obituary' actor)]
(in {try.#Success [actor sent? alive? obituary]})))]
- (_.coverage' [/.Obituary /.obituary']
+ (unit.coverage [/.Obituary /.obituary']
(case result
{try.#Success [actor sent? alive? {.#Some [error state (list single_pending_message)]}]}
(and (..mailed? sent?)
@@ -162,7 +163,7 @@
(in (and (n.= 1 output_1)
(n.= 2 output_2)
(n.= 3 output_3))))]
- (_.coverage' [/.Message /.tell!]
+ (unit.coverage [/.Message /.tell!]
(case result
{try.#Success outcome}
outcome
@@ -196,6 +197,6 @@
(in agent)))
_ (/.obituary agent)
actual (async.future (atom.read! sink))]
- (_.coverage' [/.Stop /.observe! /.obituary]
+ (unit.coverage [/.Stop /.observe! /.obituary]
(at (list.equivalence n.equivalence) = expected (sequence.list actual))))))
))))
diff --git a/stdlib/source/test/lux/control/concurrency/async.lux b/stdlib/source/test/lux/control/concurrency/async.lux
index 42d938ddd..3cdaf2da4 100644
--- a/stdlib/source/test/lux/control/concurrency/async.lux
+++ b/stdlib/source/test/lux/control/concurrency/async.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]
[\\specification
@@ -21,7 +20,9 @@
[world
[time
["[0]" instant]
- ["[0]" duration]]]]]
+ ["[0]" duration]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -73,22 +74,22 @@
(/.async []))]
resolved? (/.future (resolver expected))
actual async]
- (_.coverage' [/.Async /.Resolver /.async]
+ (unit.coverage [/.Async /.Resolver /.async]
(and resolved?
(n.= expected actual)))))
(in (do /.monad
[actual (/.resolved expected)]
- (_.coverage' [/.resolved]
+ (unit.coverage [/.resolved]
(n.= expected actual))))
(in (do /.monad
[actual (/.future (io.io expected))]
- (_.coverage' [/.future]
+ (unit.coverage [/.future]
(n.= expected actual))))
(in (do /.monad
[pre (/.future instant.now)
actual (/.schedule! waiting_time (io.io expected))
post (/.future instant.now)]
- (_.coverage' [/.schedule!]
+ (unit.coverage [/.schedule!]
(and (n.= expected actual)
(i.>= (.int waiting_time)
(duration.millis (instant.span pre post)))))))
@@ -96,20 +97,20 @@
[pre (/.future instant.now)
_ (/.delay waiting_time)
post (/.future instant.now)]
- (_.coverage' [/.delay]
+ (unit.coverage [/.delay]
(i.>= (.int waiting_time)
(duration.millis (instant.span pre post))))))
(in (do /.monad
[[leftA rightA] (/.and (/.future (io.io leftE))
(/.future (io.io rightE)))]
- (_.coverage' [/.and]
+ (unit.coverage [/.and]
(n.= (n.+ leftE rightE)
(n.+ leftA rightA)))))
(in (do /.monad
[pre (/.future instant.now)
actual (/.after waiting_time expected)
post (/.future instant.now)]
- (_.coverage' [/.after]
+ (unit.coverage [/.after]
(and (n.= expected actual)
(i.>= (.int waiting_time)
(duration.millis (instant.span pre post)))))))
@@ -118,7 +119,7 @@
(/.after waiting_time dummy))
?right (/.or (/.after waiting_time dummy)
(in rightE))]
- (_.coverage' [/.or]
+ (unit.coverage [/.or]
(case [?left ?right]
[{.#Left leftA} {.#Right rightA}]
(n.= (n.+ leftE rightE)
@@ -131,7 +132,7 @@
(/.after waiting_time dummy))
rightA (/.either (/.after waiting_time dummy)
(in rightE))]
- (_.coverage' [/.either]
+ (unit.coverage [/.either]
(n.= (n.+ leftE rightE)
(n.+ leftA rightA)))))
(in (do /.monad
@@ -139,7 +140,7 @@
.let [[async resolver] (is [(/.Async Nat) (/.Resolver Nat)]
(/.async []))]
?never (/.future (/.value async))]
- (_.coverage' [/.value]
+ (unit.coverage [/.value]
(case [?actual ?never]
[{.#Some actual} {.#None}]
(n.= expected actual)
@@ -151,13 +152,13 @@
.let [[async resolver] (is [(/.Async Nat) (/.Resolver Nat)]
(/.async []))]
nope (/.future (/.resolved? async))]
- (_.coverage' [/.resolved?]
+ (unit.coverage [/.resolved?]
(and yep
(not nope)))))
(in (do /.monad
[?none (/.within 0 (/.after waiting_time dummy))
?actual (/.within waiting_time (in expected))]
- (_.coverage' [/.within]
+ (unit.coverage [/.within]
(case [?none ?actual]
[{.#None} {.#Some actual}]
(n.= expected actual)
@@ -171,6 +172,6 @@
(atom.write! value box))
(/.resolved expected)))
actual (/.future (atom.read! box))]
- (_.coverage' [/.upon!]
+ (unit.coverage [/.upon!]
(n.= expected actual))))
))))
diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux
index 05fd6360c..147b8d2cb 100644
--- a/stdlib/source/test/lux/control/concurrency/frp.lux
+++ b/stdlib/source/test/lux/control/concurrency/frp.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 (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -121,14 +122,14 @@
async.resolved
/.of_async
/.list)]
- (_.coverage' [/.of_async /.list]
+ (unit.coverage [/.of_async /.list]
(list#= (list sample)
output))))
(in (do async.monad
[output (|> inputs
(/.sequential 0)
/.list)]
- (_.coverage' [/.sequential]
+ (unit.coverage [/.sequential]
(list#= inputs
output))))
(in (do async.monad
@@ -136,7 +137,7 @@
(/.sequential 0)
(/.only n.even?)
/.list)]
- (_.coverage' [/.only]
+ (unit.coverage [/.only]
(list#= (list.only n.even? inputs)
output))))
(in (do [! async.monad]
@@ -160,14 +161,14 @@
atom.read!
async.future
(at ! each sequence.list))]
- (_.coverage' [/.Subscriber /.subscribe!]
+ (unit.coverage [/.Subscriber /.subscribe!]
(list#= inputs listened))))
(in (do async.monad
[actual (/.mix (function (_ input total)
(async.resolved (n.+ input total)))
0
(/.sequential 0 inputs))]
- (_.coverage' [/.mix]
+ (unit.coverage [/.mix]
(n.= (list#mix n.+ 0 inputs)
actual))))
(in (do async.monad
@@ -177,7 +178,7 @@
(async.resolved (n.+ input total)))
0)
/.list)]
- (_.coverage' [/.mixes]
+ (unit.coverage [/.mixes]
(list#= (list.mixes n.+ 0 inputs)
actual))))
(in (do async.monad
@@ -187,7 +188,7 @@
(/.sequential 0)
(/.distinct n.equivalence)
/.list)]
- (_.coverage' [/.distinct]
+ (unit.coverage [/.distinct]
(list#= (list distinct/0 distinct/1 distinct/2)
actual))))
(do !
@@ -201,12 +202,12 @@
enough_polls!
(n.= amount_of_polls (list.size actual))]]
- (_.coverage' [/.poll]
+ (unit.coverage [/.poll]
(and correct_values!
enough_polls!))))
(in (do [! async.monad]
[actual (..take_amount amount_of_polls (/.periodic polling_delay))]
- (_.coverage' [/.periodic]
+ (unit.coverage [/.periodic]
(n.= amount_of_polls (list.size actual)))))))
(in (do async.monad
[.let [max_iterations 10]
@@ -218,7 +219,7 @@
current]}
{.#None}))))
/.list)]
- (_.coverage' [/.iterations]
+ (unit.coverage [/.iterations]
(and (n.= max_iterations (list.size actual))
(list#= (list.mixes n.+ sample (list.repeated (-- max_iterations) shift))
actual)))))
diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux
index ac4bd63b3..5254ce02f 100644
--- a/stdlib/source/test/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
["[0]" monad (.only do)]
["[0]" enum]]
@@ -26,7 +25,9 @@
[meta
["@" target]
[type
- ["[0]" refinement]]]]]
+ ["[0]" refinement]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" /]])
@@ -43,7 +44,7 @@
.let [semaphore (/.semaphore initial_open_positions)]]
(in (do async.monad
[result (async.within ..delay (/.wait! semaphore))]
- (_.coverage' [/.semaphore]
+ (unit.coverage [/.semaphore]
(case result
{.#Some _}
true
@@ -56,7 +57,7 @@
(in (do [! async.monad]
[_ (monad.each ! /.wait! (list.repeated initial_open_positions semaphore))
result (async.within ..delay (/.wait! semaphore))]
- (_.coverage' [/.wait!]
+ (unit.coverage [/.wait!]
(case result
{.#Some _}
false
@@ -72,7 +73,7 @@
result/0 (async.within ..delay block)
open_positions (/.signal! semaphore)
result/1 (async.within ..delay block)]
- (_.coverage' [/.signal!]
+ (unit.coverage [/.signal!]
(case [result/0 result/1 open_positions]
[{.#None} {.#Some _} {try.#Success +0}]
true
@@ -84,7 +85,7 @@
.let [semaphore (/.semaphore initial_open_positions)]]
(in (do async.monad
[outcome (/.signal! semaphore)]
- (_.coverage' [/.semaphore_is_maxed_out]
+ (unit.coverage [/.semaphore_is_maxed_out]
(case outcome
{try.#Failure error}
(exception.match? /.semaphore_is_maxed_out error)
@@ -123,7 +124,7 @@
[_ processA
_ processB
.let [outcome (io.run! (atom.read! resource))]]
- (_.coverage' [/.mutex /.synchronize!]
+ (unit.coverage [/.mutex /.synchronize!]
(or (text#= (format expected_As expected_Bs)
outcome)
(text#= (format expected_Bs expected_As)
@@ -171,7 +172,7 @@
(waiter resource barrier id))))
(monad.all !))
.let [outcome (io.run! (atom.read! resource))]]
- (_.coverage' [/.barrier /.block!]
+ (unit.coverage [/.barrier /.block!]
(and (text.ends_with? expected_ending outcome)
(list.every? (function (_ id)
(text.contains? (%.nat id) outcome))
diff --git a/stdlib/source/test/lux/control/concurrency/stm.lux b/stdlib/source/test/lux/control/concurrency/stm.lux
index c5f5ce325..cb6fc3e81 100644
--- a/stdlib/source/test/lux/control/concurrency/stm.lux
+++ b/stdlib/source/test/lux/control/concurrency/stm.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
["[0]" monad (.only Monad do)]
[\\specification
@@ -17,7 +16,9 @@
[math
["[0]" random]
[number
- ["n" nat]]]]]
+ ["n" nat]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -52,11 +53,11 @@
(in (do async.monad
[actual (/.commit! (at /.monad in expected))]
- (_.coverage' [/.commit!]
+ (unit.coverage [/.commit!]
(n.= expected actual))))
(in (do async.monad
[actual (/.commit! (/.read (/.var expected)))]
- (_.coverage' [/.Var /.var /.read]
+ (unit.coverage [/.Var /.var /.read]
(n.= expected actual))))
(in (do async.monad
[actual (let [box (/.var dummy)]
@@ -68,7 +69,7 @@
[_ (/.write expected box)
actual (/.read box)]
(in (n.= expected actual)))))]
- (_.coverage' [/.write]
+ (unit.coverage [/.write]
(and (n.= expected actual)
verdict))))
(in (do async.monad
@@ -76,7 +77,7 @@
output (/.commit! (do /.monad
[_ (/.update (n.+ expected) box)]
(/.read box)))]
- (_.coverage' [/.update]
+ (unit.coverage [/.update]
(n.= (n.+ expected dummy)
output))))
(in (do async.monad
@@ -87,7 +88,7 @@
_ (async.future (at sink close))
_ (/.commit! (/.update (n.* 3) box))
changes (frp.list follower)]
- (_.coverage' [/.changes]
+ (unit.coverage [/.changes]
(at (list.equivalence n.equivalence) =
(list expected (n.* 2 expected))
changes))))
@@ -97,7 +98,7 @@
(list#each (function (_ _) (/.commit! (/.update ++ var))))
(monad.all !))
cummulative (/.commit! (/.read var))]
- (_.coverage' [/.STM]
+ (unit.coverage [/.STM]
(n.= iterations_per_process
cummulative)))))
))))
diff --git a/stdlib/source/test/lux/control/concurrency/thread.lux b/stdlib/source/test/lux/control/concurrency/thread.lux
index da2a9ea37..83a626c4f 100644
--- a/stdlib/source/test/lux/control/concurrency/thread.lux
+++ b/stdlib/source/test/lux/control/concurrency/thread.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -14,7 +13,9 @@
[world
[time
["[0]" instant (.only Instant)]
- ["[0]" duration]]]]]
+ ["[0]" duration]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -41,7 +42,7 @@
(atom.write! [execution_time expected] box))))
_ (async.delay (n.* 2 delay))
[execution_time actual] (async.future (atom.read! box))]
- (_.coverage' [/.schedule!]
+ (unit.coverage [/.schedule!]
(let [expected_delay!
(i.>= (.int delay)
(duration.millis (instant.span reference_time execution_time)))
diff --git a/stdlib/source/test/lux/control/security/capability.lux b/stdlib/source/test/lux/control/security/capability.lux
index ecc9d22ba..d02572381 100644
--- a/stdlib/source/test/lux/control/security/capability.lux
+++ b/stdlib/source/test/lux/control/security/capability.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -11,7 +10,9 @@
[math
["[0]" random]
[number
- ["n" nat]]]]]
+ ["n" nat]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" /]])
@@ -40,6 +41,6 @@
(in (let [capability (..can_io (function (_ _) (io.io expected)))]
(do async.monad
[actual (/.use (/.async capability) [])]
- (_.coverage' [/.async]
+ (unit.coverage [/.async]
(n.= expected actual)))))
)))))
diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux
index 3fffb74a1..b64a685a2 100644
--- a/stdlib/source/test/lux/data/format/json.lux
+++ b/stdlib/source/test/lux/data/format/json.lux
@@ -260,7 +260,7 @@
Test
(<| (_.covering \\polytypic._)
(_.for [\\polytypic.codec]
- (for @.old (_.property "PLACEHOLDER" true)
+ (for @.old (_.test "PLACEHOLDER" true)
($codec.spec ..equivalence ..codec ..gen_record)))))
(def .public random
diff --git a/stdlib/source/test/lux/data/text/regex.lux b/stdlib/source/test/lux/data/text/regex.lux
index 661222696..7485c1d05 100644
--- a/stdlib/source/test/lux/data/text/regex.lux
+++ b/stdlib/source/test/lux/data/text/regex.lux
@@ -72,7 +72,7 @@
(def basics
Test
- (_.property "Can parse character literals."
+ (_.test "Can parse character literals."
(and (should_pass (/.regex "a") "a")
(should_fail (/.regex "a") ".")
(should_pass (/.regex "\.") ".")
@@ -81,30 +81,30 @@
(def system_character_classes
Test
(all _.and
- (_.property "Can parse anything."
+ (_.test "Can parse anything."
(should_pass (/.regex ".") "a"))
- (_.property "Can parse digits."
+ (_.test "Can parse digits."
(and (should_pass (/.regex "\d") "0")
(should_fail (/.regex "\d") "m")))
- (_.property "Can parse non digits."
+ (_.test "Can parse non digits."
(and (should_pass (/.regex "\D") "m")
(should_fail (/.regex "\D") "0")))
- (_.property "Can parse white-space."
+ (_.test "Can parse white-space."
(and (should_pass (/.regex "\s") " ")
(should_fail (/.regex "\s") "m")))
- (_.property "Can parse non white-space."
+ (_.test "Can parse non white-space."
(and (should_pass (/.regex "\S") "m")
(should_fail (/.regex "\S") " ")))
- (_.property "Can parse word characters."
+ (_.test "Can parse word characters."
(and (should_pass (/.regex "\w") "_")
(should_fail (/.regex "\w") "^")))
- (_.property "Can parse non word characters."
+ (_.test "Can parse non word characters."
(and (should_pass (/.regex "\W") ".")
(should_fail (/.regex "\W") "a")))
))
@@ -112,46 +112,46 @@
(def special_system_character_classes
Test
(all _.and
- (_.property "Lower-case."
+ (_.test "Lower-case."
(and (should_pass (/.regex "\p{Lower}") "m")
(should_fail (/.regex "\p{Lower}") "M")))
- (_.property "Upper-case."
+ (_.test "Upper-case."
(and (should_pass (/.regex "\p{Upper}") "M")
(should_fail (/.regex "\p{Upper}") "m")))
- (_.property "Alphabetic."
+ (_.test "Alphabetic."
(and (should_pass (/.regex "\p{Alpha}") "M")
(should_fail (/.regex "\p{Alpha}") "0")))
- (_.property "Numeric digits."
+ (_.test "Numeric digits."
(and (should_pass (/.regex "\p{Digit}") "1")
(should_fail (/.regex "\p{Digit}") "n")))
- (_.property "Alphanumeric."
+ (_.test "Alphanumeric."
(and (should_pass (/.regex "\p{Alnum}") "1")
(should_fail (/.regex "\p{Alnum}") ".")))
- (_.property "Whitespace."
+ (_.test "Whitespace."
(and (should_pass (/.regex "\p{Space}") " ")
(should_fail (/.regex "\p{Space}") ".")))
- (_.property "Hexadecimal."
+ (_.test "Hexadecimal."
(and (should_pass (/.regex "\p{HexDigit}") "a")
(should_fail (/.regex "\p{HexDigit}") ".")))
- (_.property "Octal."
+ (_.test "Octal."
(and (should_pass (/.regex "\p{OctDigit}") "6")
(should_fail (/.regex "\p{OctDigit}") ".")))
- (_.property "Blank."
+ (_.test "Blank."
(and (should_pass (/.regex "\p{Blank}") text.tab)
(should_fail (/.regex "\p{Blank}") ".")))
- (_.property "ASCII."
+ (_.test "ASCII."
(and (should_pass (/.regex "\p{ASCII}") text.tab)
(should_fail (/.regex "\p{ASCII}") (text.of_char (hex "1234")))))
- (_.property "Control characters."
+ (_.test "Control characters."
(and (should_pass (/.regex "\p{Contrl}") (text.of_char (hex "12")))
(should_fail (/.regex "\p{Contrl}") "a")))
- (_.property "Punctuation."
+ (_.test "Punctuation."
(and (should_pass (/.regex "\p{Punct}") "@")
(should_fail (/.regex "\p{Punct}") "a")))
- (_.property "Graph."
+ (_.test "Graph."
(and (should_pass (/.regex "\p{Graph}") "@")
(should_fail (/.regex "\p{Graph}") " ")))
- (_.property "Print."
+ (_.test "Print."
(and (should_pass (/.regex "\p{Print}") (text.of_char (hex "20")))
(should_fail (/.regex "\p{Print}") (text.of_char (hex "1234")))))
))
@@ -159,30 +159,30 @@
(def custom_character_classes
Test
(all _.and
- (_.property "Can parse using custom character classes."
+ (_.test "Can parse using custom character classes."
(and (should_pass (/.regex "[abc]") "a")
(should_fail (/.regex "[abc]") "m")))
- (_.property "Can parse using character ranges."
+ (_.test "Can parse using character ranges."
(and (should_pass (/.regex "[a-z]") "a")
(should_pass (/.regex "[a-z]") "m")
(should_pass (/.regex "[a-z]") "z")))
- (_.property "Can combine character ranges."
+ (_.test "Can combine character ranges."
(and (should_pass (/.regex "[a-zA-Z]") "a")
(should_pass (/.regex "[a-zA-Z]") "m")
(should_pass (/.regex "[a-zA-Z]") "z")
(should_pass (/.regex "[a-zA-Z]") "A")
(should_pass (/.regex "[a-zA-Z]") "M")
(should_pass (/.regex "[a-zA-Z]") "Z")))
- (_.property "Can negate custom character classes."
+ (_.test "Can negate custom character classes."
(and (should_fail (/.regex "[^abc]") "a")
(should_pass (/.regex "[^abc]") "m")))
- (_.property "Can negate character ranges.."
+ (_.test "Can negate character ranges.."
(and (should_fail (/.regex "[^a-z]") "a")
(should_pass (/.regex "[^a-z]") "0")))
- (_.property "Can parse negate combinations of character ranges."
+ (_.test "Can parse negate combinations of character ranges."
(and (should_fail (/.regex "[^a-zA-Z]") "a")
(should_pass (/.regex "[^a-zA-Z]") "0")))
- (_.property "Can make custom character classes more specific."
+ (_.test "Can make custom character classes more specific."
(and (let [RE (/.regex "[a-z&&[def]]")]
(and (should_fail RE "a")
(should_pass RE "d")))
@@ -198,7 +198,7 @@
(def references
Test
(let [number (/.regex "\d+")]
- (_.property "Can build complex regexs by combining simpler ones."
+ (_.test "Can build complex regexs by combining simpler ones."
(should_check ["809-345-6789" "809" "345" "6789"]
(/.regex "(\@<number>)-(\@<number>)-(\@<number>)")
"809-345-6789"))))
@@ -206,18 +206,18 @@
(def fuzzy_quantifiers
Test
(all _.and
- (_.property "Can sequentially combine patterns."
+ (_.test "Can sequentially combine patterns."
(text_should_pass "aa" (/.regex "aa") "aa"))
- (_.property "Can match patterns optionally."
+ (_.test "Can match patterns optionally."
(and (text_should_pass "a" (/.regex "a?") "a")
(text_should_pass "" (/.regex "a?") "")))
- (_.property "Can match a pattern 0 or more times."
+ (_.test "Can match a pattern 0 or more times."
(and (text_should_pass "aaa" (/.regex "a*") "aaa")
(text_should_pass "" (/.regex "a*") "")))
- (_.property "Can match a pattern 1 or more times."
+ (_.test "Can match a pattern 1 or more times."
(and (text_should_pass "aaa" (/.regex "a+") "aaa")
(text_should_pass "a" (/.regex "a+") "a")
(should_fail (/.regex "a+") "")))
@@ -226,21 +226,21 @@
(def crisp_quantifiers
Test
(all _.and
- (_.property "Can match a pattern N times."
+ (_.test "Can match a pattern N times."
(and (text_should_pass "aa" (/.regex "a{2}") "aa")
(text_should_pass "a" (/.regex "a{1}") "a")
(should_fail (/.regex "a{3}") "aa")))
- (_.property "Can match a pattern at-least N times."
+ (_.test "Can match a pattern at-least N times."
(and (text_should_pass "aa" (/.regex "a{1,}") "aa")
(text_should_pass "aa" (/.regex "a{2,}") "aa")
(should_fail (/.regex "a{3,}") "aa")))
- (_.property "Can match a pattern at-most N times."
+ (_.test "Can match a pattern at-most N times."
(and (text_should_pass "aa" (/.regex "a{,2}") "aa")
(text_should_pass "aa" (/.regex "a{,3}") "aa")))
- (_.property "Can match a pattern between N and M times."
+ (_.test "Can match a pattern between N and M times."
(and (text_should_pass "a" (/.regex "a{1,2}") "a")
(text_should_pass "aa" (/.regex "a{1,2}") "aa")))
))
@@ -248,7 +248,7 @@
(def groups
Test
(all _.and
- (_.property "Can extract groups of sub-matches specified in a pattern."
+ (_.test "Can extract groups of sub-matches specified in a pattern."
(and (should_check ["abc" "b"] (/.regex "a(.)c") "abc")
(should_check ["abbbbbc" "bbbbb"] (/.regex "a(b+)c") "abbbbbc")
(should_check ["809-345-6789" "809" "345" "6789"] (/.regex "(\d{3})-(\d{3})-(\d{4})") "809-345-6789")
@@ -257,18 +257,18 @@
(should_check ["809-809-6789" "809" "6789"] (/.regex "(?<code>\d{3})-\k<code>-(\d{4})") "809-809-6789")
(should_check ["809-809-6789-6789" "809" "6789"] (/.regex "(?<code>\d{3})-\k<code>-(\d{4})-\0") "809-809-6789-6789")))
- (_.property "Can specify groups within groups."
+ (_.test "Can specify groups within groups."
(should_check ["809-345-6789" "809" ["345-6789" "345" "6789"]] (/.regex "(\d{3})-((\d{3})-(\d{4}))") "809-345-6789"))
))
(def alternation
Test
(all _.and
- (_.property "Can specify alternative patterns."
+ (_.test "Can specify alternative patterns."
(and (should_check ["a" {0 #0 []}] (/.regex "a|b") "a")
(should_check ["b" {0 #1 []}] (/.regex "a|b") "b")
(should_fail (/.regex "a|b") "c")))
- (_.property "Can have groups within alternations."
+ (_.test "Can have groups within alternations."
(and (should_check ["abc" {0 #0 ["b" "c"]}] (/.regex "a(.)(.)|b(.)(.)") "abc")
(should_check ["bcd" {0 #1 ["c" "d"]}] (/.regex "a(.)(.)|b(.)(.)") "bcd")
(should_fail (/.regex "a(.)(.)|b(.)(.)") "cde")
diff --git a/stdlib/source/test/lux/ffi.php.lux b/stdlib/source/test/lux/ffi.php.lux
index b047e35fa..324bd7b81 100644
--- a/stdlib/source/test/lux/ffi.php.lux
+++ b/stdlib/source/test/lux/ffi.php.lux
@@ -21,5 +21,5 @@
(do [! random.monad]
[]
(<| (_.covering /._)
- (_.property "TBD"
+ (_.test "TBD"
true))))
diff --git a/stdlib/source/test/lux/ffi.scm.lux b/stdlib/source/test/lux/ffi.scm.lux
index b047e35fa..324bd7b81 100644
--- a/stdlib/source/test/lux/ffi.scm.lux
+++ b/stdlib/source/test/lux/ffi.scm.lux
@@ -21,5 +21,5 @@
(do [! random.monad]
[]
(<| (_.covering /._)
- (_.property "TBD"
+ (_.test "TBD"
true))))
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 ac89471ba..5de7ad7d3 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
@@ -61,11 +61,11 @@
[antiT antiC] (|> ..primitive
(r.only (|>> product.left (type#= primT) not)))]
(all _.and
- (_.property "Can test for reference equality."
+ (_.test "Can test for reference equality."
(check_success+ "lux is" (list primC primC) Bit))
- (_.property "Reference equality must be done with elements of the same type."
+ (_.test "Reference equality must be done with elements of the same type."
(check_failure+ "lux is" (list primC antiC) Bit))
- (_.property "Can 'try' risky IO computations."
+ (_.test "Can 'try' risky IO computations."
(check_success+ "lux try"
(list (` ("lux io error" "YOLO")))
(type_literal (Either Text primT))))
@@ -78,23 +78,23 @@
signedC (|> r.int (at ! each code.int))
paramC (|> r.nat (at ! each code.nat))]
(all _.and
- (_.property "i64 'and'."
+ (_.test "i64 'and'."
(check_success+ "lux i64 and" (list paramC subjectC) Nat))
- (_.property "i64 'or'."
+ (_.test "i64 'or'."
(check_success+ "lux i64 or" (list paramC subjectC) Nat))
- (_.property "i64 'xor'."
+ (_.test "i64 'xor'."
(check_success+ "lux i64 xor" (list paramC subjectC) Nat))
- (_.property "i64 left-shift."
+ (_.test "i64 left-shift."
(check_success+ "lux i64 left-shift" (list paramC subjectC) Nat))
- (_.property "i64 logical-right-shift."
+ (_.test "i64 logical-right-shift."
(check_success+ "lux i64 logical-right-shift" (list paramC subjectC) Nat))
- (_.property "i64 arithmetic-right-shift."
+ (_.test "i64 arithmetic-right-shift."
(check_success+ "lux i64 arithmetic-right-shift" (list paramC signedC) Int))
- (_.property "i64 equivalence."
+ (_.test "i64 equivalence."
(check_success+ "lux i64 =" (list paramC subjectC) Bit))
- (_.property "i64 addition."
+ (_.test "i64 addition."
(check_success+ "lux i64 +" (list paramC subjectC) Int))
- (_.property "i64 subtraction."
+ (_.test "i64 subtraction."
(check_success+ "lux i64 -" (list paramC subjectC) Int))
)))
@@ -104,17 +104,17 @@
[subjectC (|> r.int (at ! each code.int))
paramC (|> r.int (at ! each code.int))]
(all _.and
- (_.property "Can multiply integers."
+ (_.test "Can multiply integers."
(check_success+ "lux i64 *" (list paramC subjectC) Int))
- (_.property "Can divide integers."
+ (_.test "Can divide integers."
(check_success+ "lux i64 /" (list paramC subjectC) Int))
- (_.property "Can calculate remainder of integers."
+ (_.test "Can calculate remainder of integers."
(check_success+ "lux i64 %" (list paramC subjectC) Int))
- (_.property "Can compare integers."
+ (_.test "Can compare integers."
(check_success+ "lux i64 <" (list paramC subjectC) Bit))
- (_.property "Can convert integer to text."
+ (_.test "Can convert integer to text."
(check_success+ "lux i64 char" (list subjectC) Text))
- (_.property "Can convert integer to fraction."
+ (_.test "Can convert integer to fraction."
(check_success+ "lux i64 f64" (list subjectC) Frac))
)))
@@ -125,31 +125,31 @@
paramC (|> r.safe_frac (at ! each code.frac))
encodedC (|> r.safe_frac (at ! each (|>> %.frac code.text)))]
(all _.and
- (_.property "Can add frac numbers."
+ (_.test "Can add frac numbers."
(check_success+ "lux f64 +" (list paramC subjectC) Frac))
- (_.property "Can subtract frac numbers."
+ (_.test "Can subtract frac numbers."
(check_success+ "lux f64 -" (list paramC subjectC) Frac))
- (_.property "Can multiply frac numbers."
+ (_.test "Can multiply frac numbers."
(check_success+ "lux f64 *" (list paramC subjectC) Frac))
- (_.property "Can divide frac numbers."
+ (_.test "Can divide frac numbers."
(check_success+ "lux f64 /" (list paramC subjectC) Frac))
- (_.property "Can calculate remainder of frac numbers."
+ (_.test "Can calculate remainder of frac numbers."
(check_success+ "lux f64 %" (list paramC subjectC) Frac))
- (_.property "Can test equivalence of frac numbers."
+ (_.test "Can test equivalence of frac numbers."
(check_success+ "lux f64 =" (list paramC subjectC) Bit))
- (_.property "Can compare frac numbers."
+ (_.test "Can compare frac numbers."
(check_success+ "lux f64 <" (list paramC subjectC) Bit))
- (_.property "Can obtain minimum frac number."
+ (_.test "Can obtain minimum frac number."
(check_success+ "lux f64 min" (list) Frac))
- (_.property "Can obtain maximum frac number."
+ (_.test "Can obtain maximum frac number."
(check_success+ "lux f64 max" (list) Frac))
- (_.property "Can obtain smallest frac number."
+ (_.test "Can obtain smallest frac number."
(check_success+ "lux f64 smallest" (list) Frac))
- (_.property "Can convert frac number to integer."
+ (_.test "Can convert frac number to integer."
(check_success+ "lux f64 i64" (list subjectC) Int))
- (_.property "Can convert frac number to text."
+ (_.test "Can convert frac number to text."
(check_success+ "lux f64 encode" (list subjectC) Text))
- (_.property "Can convert text to frac number."
+ (_.test "Can convert text to frac number."
(check_success+ "lux f64 decode" (list encodedC) (type_literal (Maybe Frac))))
)))
@@ -162,19 +162,19 @@
fromC (|> r.nat (at ! each code.nat))
toC (|> r.nat (at ! each code.nat))]
(all _.and
- (_.property "Can test text equivalence."
+ (_.test "Can test text equivalence."
(check_success+ "lux text =" (list paramC subjectC) Bit))
- (_.property "Compare texts in lexicographical order."
+ (_.test "Compare texts in lexicographical order."
(check_success+ "lux text <" (list paramC subjectC) Bit))
- (_.property "Can concatenate one text to another."
+ (_.test "Can concatenate one text to another."
(check_success+ "lux text concat" (list subjectC paramC) Text))
- (_.property "Can find the index of a piece of text inside a larger one that (may) contain it."
+ (_.test "Can find the index of a piece of text inside a larger one that (may) contain it."
(check_success+ "lux text index" (list fromC paramC subjectC) (type_literal (Maybe Nat))))
- (_.property "Can query the size/length of a text."
+ (_.test "Can query the size/length of a text."
(check_success+ "lux text size" (list subjectC) Nat))
- (_.property "Can obtain the character code of a text at a given index."
+ (_.test "Can obtain the character code of a text at a given index."
(check_success+ "lux text char" (list fromC subjectC) Nat))
- (_.property "Can clip a piece of text between 2 indices."
+ (_.test "Can clip a piece of text between 2 indices."
(check_success+ "lux text clip" (list fromC toC subjectC) Text))
)))
@@ -184,9 +184,9 @@
[logC (|> (r.unicode 5) (at ! each code.text))
exitC (|> r.int (at ! each code.int))]
(all _.and
- (_.property "Can log messages to standard output."
+ (_.test "Can log messages to standard output."
(check_success+ "lux io log" (list logC) Any))
- (_.property "Can throw a run-time error."
+ (_.test "Can throw a run-time error."
(check_success+ "lux io error" (list logC) Nothing))
)))
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 07414ac90..62d7d5db2 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
@@ -78,7 +78,7 @@
(,, (with_template [<analysis> <synthesis> <generator>]
[(do r.monad
[expected <generator>]
- (_.property (%.symbol (symbol <synthesis>))
+ (_.test (%.symbol (symbol <synthesis>))
(|> {////analysis.#Primitive {<analysis> expected}}
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
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 d17044f40..8da9fae17 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
@@ -44,7 +44,7 @@
(-- tagA)
tagA)]
memberA //primitive.primitive]
- (_.property "Can synthesize variants."
+ (_.test "Can synthesize variants."
(|> (////analysis.variant [lefts right? memberA])
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
@@ -63,7 +63,7 @@
(do [! r.monad]
[size (|> r.nat (at ! each (|>> (n.% 10) (n.max 2))))
membersA (r.list size //primitive.primitive)]
- (_.property "Can synthesize tuple."
+ (_.test "Can synthesize tuple."
(|> (////analysis.tuple membersA)
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
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 a87bcbd66..fa6f6fade 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/syntax.lux
@@ -75,7 +75,7 @@
(do [! r.monad]
[sample code^]
(all _.and
- (_.property "Can parse Lux code."
+ (_.test "Can parse Lux code."
(case (let [source_code (%.code sample)]
(/.parse "" (dictionary.empty text.hash) (text.size source_code)
[location.dummy 0 source_code]))
@@ -86,7 +86,7 @@
(at code.equivalence = parsed sample)))
(do !
[other code^]
- (_.property "Can parse multiple Lux code nodes."
+ (_.test "Can parse multiple Lux code nodes."
(let [source_code (format (%.code sample) " " (%.code other))
source_code//size (text.size source_code)]
(case (/.parse "" (dictionary.empty text.hash) source_code//size
@@ -124,7 +124,7 @@
[sample code^
comment comment^]
(all _.and
- (_.property "Can handle comments."
+ (_.test "Can handle comments."
(case (let [source_code (format comment (%.code sample))
source_code//size (text.size source_code)]
(/.parse "" (dictionary.empty text.hash) source_code//size
diff --git a/stdlib/source/test/lux/meta/compiler/meta/cache.lux b/stdlib/source/test/lux/meta/compiler/meta/cache.lux
index 68ba4e7fb..e52d9f4c2 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -11,7 +10,9 @@
[math
["[0]" random]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" /]]
["[0]" /
@@ -36,7 +37,7 @@
outcome (/.enable! ! fs context)
post/0 (at fs directory? (/.path fs context))
post/1 (/.enabled? fs context)]
- (_.coverage' [/.path /.enabled? /.enable!]
+ (unit.coverage [/.path /.enabled? /.enable!]
(and (not pre/0)
(not pre/1)
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 09821245e..09263a7d3 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache/archive.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -17,7 +16,9 @@
[number
["n" nat]]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
["/[1]" // (.only)
@@ -72,7 +73,7 @@
cached? (/.cache! fs context archive)
actual (at fs read (/.descriptor fs context))
post/0 (at fs file? (/.descriptor fs context))]
- (_.coverage' [/.descriptor /.cache!]
+ (unit.coverage [/.descriptor /.cache!]
(and (not pre/0)
(|> (do try.monad
[_ enabled?
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 7d3fa626d..aff81fd7e 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache/artifact.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -16,7 +15,9 @@
[number
["n" nat]]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
["/[1]" //
@@ -41,7 +42,7 @@
write! (/.cache! fs context @module @artifact expected)
post (at fs file? (/.path fs context @module @artifact))
read! (/.cache fs context @module @artifact)]
- (_.coverage' [/.path /.cache! /.cache]
+ (unit.coverage [/.path /.cache! /.cache]
(and (not pre)
(case write!
{try.#Success _} true
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 bce9082e5..bf12dcc3a 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache/module.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -12,7 +11,9 @@
[math
["[0]" random]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" /]]
["$[0]" ///
@@ -60,7 +61,7 @@
outcome (/.enable! ! fs context @module)
post/0 (at fs directory? (/.path fs context @module))
post/1 (/.enabled? fs context @module)]
- (_.coverage' [/.path /.enabled? /.enable!]
+ (unit.coverage [/.path /.enabled? /.enable!]
(and (not pre/0)
(not pre/1)
@@ -78,7 +79,7 @@
outcome (/.enable! ! (..bad fs) context @module)
post/0 (at fs directory? (/.path fs context @module))
post/1 (/.enabled? fs context @module)]
- (_.coverage' [/.cannot_enable]
+ (unit.coverage [/.cannot_enable]
(and (not pre/0)
(not pre/1)
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 c5bc1dfb5..cf0b520f2 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/cache/purge.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -23,7 +22,9 @@
[number
["n" nat]]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
["/[1]" //
@@ -124,7 +125,7 @@
pre (at fs directory_files dir)
_ (/.purge! fs context id/0)
post (at fs directory_files dir)]
- (_.coverage' [/.purge!]
+ (unit.coverage [/.purge!]
(<| (try.else false)
(do try.monad
[pre pre]
diff --git a/stdlib/source/test/lux/meta/compiler/meta/export.lux b/stdlib/source/test/lux/meta/compiler/meta/export.lux
index d9fb14ace..e1dd299b0 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/export.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/export.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -27,7 +26,9 @@
[number
["n" nat]]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -73,8 +74,8 @@
export_tar (at fs read (format target / /.file))
export_tar (at ! in (<binary>.result tar.parser export_tar))]
(in [library_tar export_tar]))]
- (all _.and'
- (_.coverage' [/.library /.mode /.ownership]
+ (all unit.and
+ (unit.coverage [/.library /.mode /.ownership]
(|> it
(try#each (|>> product.left
sequence.list
@@ -97,7 +98,7 @@
_
false)))
(try.else false)))
- (_.coverage' [/.export /.file]
+ (unit.coverage [/.export /.file]
(|> it
(try#each (|>> product.right
sequence.list
diff --git a/stdlib/source/test/lux/meta/compiler/meta/import.lux b/stdlib/source/test/lux/meta/compiler/meta/import.lux
index fc2e79616..30ba445cd 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/import.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/import.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -30,7 +29,9 @@
[number
["n" nat]]]
[world
- ["[0]" file]]]]
+ ["[0]" file]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -118,7 +119,7 @@
_ (at fs write library/0 library_content/0)
_ (at fs write library/1 library_content/1)]
(/.import fs (list library/0 library/1)))]
- (_.coverage' [/.import]
+ (unit.coverage [/.import]
(and (|> it/0
(try#each imported?)
(try.else false))
@@ -131,7 +132,7 @@
_ (at fs write library/0 library_content)
_ (/.import fs (list library/0 library/0))]
(in false))]
- (_.coverage' [/.duplicate]
+ (unit.coverage [/.duplicate]
(exception.otherwise (exception.match? /.duplicate) it))))
(in (do [! async.monad]
[it/0 (do (try.with !)
@@ -149,7 +150,7 @@
_ (at fs write library/0 library_content/-2)
_ (/.import fs (list library/0))]
(in false))]
- (_.coverage' [/.useless_tar_entry]
+ (unit.coverage [/.useless_tar_entry]
(and (exception.otherwise (exception.match? /.useless_tar_entry) it/0)
(exception.otherwise (exception.match? /.useless_tar_entry) it/1)
(exception.otherwise (exception.match? /.useless_tar_entry) it/2)))))
diff --git a/stdlib/source/test/lux/meta/macro/context.lux b/stdlib/source/test/lux/meta/macro/context.lux
index 52df97710..865d6abe8 100644
--- a/stdlib/source/test/lux/meta/macro/context.lux
+++ b/stdlib/source/test/lux/meta/macro/context.lux
@@ -8,5 +8,5 @@
(def .public test
Test
(<| (_.covering /._)
- (_.property "TBD" false)
+ (_.test "TBD" false)
))
diff --git a/stdlib/source/test/lux/meta/static.lux b/stdlib/source/test/lux/meta/static.lux
index aa67ab7a2..0a0d784a9 100644
--- a/stdlib/source/test/lux/meta/static.lux
+++ b/stdlib/source/test/lux/meta/static.lux
@@ -23,7 +23,7 @@
(def .public test
Test
(<| (_.covering /._)
- (for @.old (_.property "PLACEHOLDER" true))
+ (for @.old (_.test "PLACEHOLDER" true))
(_.for [meta.eval])
(`` (all _.and
(,, (with_template [<static> <random> <=> <+> <tag>]
diff --git a/stdlib/source/test/lux/meta/symbol.lux b/stdlib/source/test/lux/meta/symbol.lux
index 6972cd346..1c54441cc 100644
--- a/stdlib/source/test/lux/meta/symbol.lux
+++ b/stdlib/source/test/lux/meta/symbol.lux
@@ -50,7 +50,7 @@
($order.spec /.order (..random sizeM1 sizeS1)))
(_.for [/.codec]
(_.and ($codec.spec /.equivalence /.codec (..random sizeM1 sizeS1))
- (_.property "Encoding a symbol without a module component results in text equal to the short of the symbol."
+ (_.test "Encoding a symbol without a module component results in text equal to the short of the symbol."
(if (text.empty? module1)
(same? short1 (at /.codec encoded symbol1))
true))))
@@ -66,7 +66,7 @@
(_.for [.symbol]
(let [(open "/#[0]") /.equivalence]
(all _.and
- (_.property "Can obtain Symbol from a symbol."
+ (_.test "Can obtain Symbol from a symbol."
(and (/#= [.prelude "yolo"] (.symbol .yolo))
(/#= ["test/lux/meta/symbol" "yolo"] (.symbol ..yolo))
(/#= ["" "yolo"] (.symbol yolo))
diff --git a/stdlib/source/test/lux/meta/target/jvm.lux b/stdlib/source/test/lux/meta/target/jvm.lux
index 28fff6e38..b3758f810 100644
--- a/stdlib/source/test/lux/meta/target/jvm.lux
+++ b/stdlib/source/test/lux/meta/target/jvm.lux
@@ -912,7 +912,7 @@
try.trusted
(binary.result /class.format))
loader (/loader.memory (/loader.new_library []))]]
- (_.property "PUTSTATIC & PUTFIELD & GETFIELD & GETSTATIC"
+ (_.test "PUTSTATIC & PUTFIELD & GETFIELD & GETSTATIC"
(case (do try.monad
[_ (/loader.define class_name bytecode loader)
class (io.run! (/loader.load class_name loader))
@@ -1732,7 +1732,7 @@
try.trusted
(binary.result /class.format))
loader (/loader.memory (/loader.new_library []))]]
- (_.property "Class & interface inheritance"
+ (_.test "Class & interface inheritance"
(case (do try.monad
[_ (/loader.define abstract_class abstract_bytecode loader)
_ (/loader.define interface_class interface_bytecode loader)
diff --git a/stdlib/source/test/lux/meta/type/resource.lux b/stdlib/source/test/lux/meta/type/resource.lux
index 65618e66a..0935d0c2e 100644
--- a/stdlib/source/test/lux/meta/type/resource.lux
+++ b/stdlib/source/test/lux/meta/type/resource.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
["[0]" monad (.only)
[indexed (.only do)]]]
@@ -22,7 +21,9 @@
["<[1]>" \\parser]]
[macro
[syntax (.only syntax)]
- ["[0]" expansion]]]]]
+ ["[0]" expansion]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only Res)]])
@@ -126,7 +127,7 @@
(do (/.monad !)
<bindings>
(in (format left right))))]
- (_.coverage' <coverage>
+ (unit.coverage <coverage>
(text#= (format pre post)
outcome))))]
diff --git a/stdlib/source/test/lux/test.lux b/stdlib/source/test/lux/test.lux
index 3e47848dc..956969668 100644
--- a/stdlib/source/test/lux/test.lux
+++ b/stdlib/source/test/lux/test.lux
@@ -20,16 +20,17 @@
[number
["n" nat]]]]]
[\\library
- ["[0]" /]])
+ ["[0]" / (.only)
+ ["[0]" unit]]])
(def (verify expected_message/0 expected_message/1 successes failures [tally message])
- (-> Text Text Nat Nat [/.Tally Text] Bit)
+ (-> Text Text Nat Nat [unit.Tally Text] Bit)
(and (text.contains? expected_message/0 message)
(text.contains? expected_message/1 message)
- (n.= successes (the /.#successes tally))
- (n.= failures (the /.#failures tally))))
+ (n.= successes (the unit.#successes tally))
+ (n.= failures (the unit.#failures tally))))
-(def assertion
+(def unit_test
/.Test
(do [! random.monad]
[expected_message/0 (random.lower_case 5)
@@ -37,25 +38,25 @@
(random.lower_case 5))]
(all /.and
(in (do async.monad
- [[success_tally success_message] (/.assertion expected_message/0 true)
- [failure_tally failure_message] (/.assertion expected_message/0 false)]
- (/.coverage' [/.assertion /.Tally]
+ [[success_tally success_message] (unit.test expected_message/0 true)
+ [failure_tally failure_message] (unit.test expected_message/0 false)]
+ (unit.coverage [unit.test unit.Tally]
(and (text.ends_with? expected_message/0 success_message)
(text.ends_with? expected_message/0 failure_message)
- (and (n.= 1 (the /.#successes success_tally))
- (n.= 0 (the /.#failures success_tally)))
- (and (n.= 0 (the /.#successes failure_tally))
- (n.= 1 (the /.#failures failure_tally)))))))
+ (and (n.= 1 (the unit.#successes success_tally))
+ (n.= 0 (the unit.#failures success_tally)))
+ (and (n.= 0 (the unit.#successes failure_tally))
+ (n.= 1 (the unit.#failures failure_tally)))))))
(in (do async.monad
- [tt (/.and' (/.assertion expected_message/0 true)
- (/.assertion expected_message/1 true))
- ff (/.and' (/.assertion expected_message/0 false)
- (/.assertion expected_message/1 false))
- tf (/.and' (/.assertion expected_message/0 true)
- (/.assertion expected_message/1 false))
- ft (/.and' (/.assertion expected_message/0 false)
- (/.assertion expected_message/1 true))]
- (/.coverage' [/.and']
+ [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)
@@ -72,49 +73,49 @@
(do !
[sample random.nat
.let [wrote? (io.run! (write sample))]]
- (/.property "" wrote?)))
+ (/.test "" wrote?)))
post (<| (/.seed seed)
(do !
[actual random.nat]
(in (do async.monad
[expected read]
- (/.assertion "" (n.= expected actual))))))]
+ (unit.test "" (n.= expected actual))))))]
(in (do async.monad
[[pre_tally pre_message] pre
[post_tally post_message] post]
- (/.coverage' [/.seed]
- (and (and (n.= 1 (the /.#successes pre_tally))
- (n.= 0 (the /.#failures pre_tally)))
- (and (n.= 1 (the /.#successes post_tally))
- (n.= 0 (the /.#failures post_tally)))))))))
+ (unit.coverage [/.seed]
+ (and (and (n.= 1 (the unit.#successes pre_tally))
+ (n.= 0 (the unit.#failures pre_tally)))
+ (and (n.= 1 (the unit.#successes post_tally))
+ (n.= 0 (the unit.#failures post_tally)))))))))
(def times
/.Test
(all /.and
(do [! random.monad]
- [times_assertion (/.times 0 (/.property "" true))]
+ [times_unit_test (/.times 0 (/.test "" true))]
(in (do async.monad
- [[tally error] times_assertion]
- (/.coverage' [/.must_try_test_at_least_once]
+ [[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 /.#successes tally))
- (n.= 1 (the /.#failures tally)))))))
+ (n.= 0 (the unit.#successes tally))
+ (n.= 1 (the unit.#failures tally)))))))
(do [! random.monad]
[expected (at ! each (|>> (n.% 10) ++) random.nat)
.let [counter (is (Atom Nat)
(atom.atom 0))]
- times_assertion (<| (/.times expected)
+ times_unit_test (<| (/.times expected)
(do !
[_ (in [])
.let [_ (io.run! (atom.update! ++ counter))]]
- (/.property "" true)))]
+ (/.test "" true)))]
(in (do async.monad
- [[tally error] times_assertion
+ [[tally error] times_unit_test
actual (async.future (atom.read! counter))]
- (/.coverage' [/.times]
+ (unit.coverage [/.times]
(and (n.= expected actual)
- (n.= 1 (the /.#successes tally))
- (n.= 0 (the /.#failures tally)))))))
+ (n.= 1 (the unit.#successes tally))
+ (n.= 0 (the unit.#failures tally)))))))
))
(def in_parallel
@@ -124,40 +125,40 @@
[expected (at ! each (|>> (n.% 10) ++) random.nat)
.let [counter (is (Atom Nat)
(atom.atom 0))]
- assertion (<| /.in_parallel
+ unit_test (<| /.in_parallel
(list.repeated expected)
(is /.Test)
(do !
[_ (in [])
.let [_ (io.run! (atom.update! ++ counter))]]
- (/.property "" true)))]
+ (/.test "" true)))]
(in (do async.monad
- [[tally error] assertion
+ [[tally error] unit_test
actual (async.future (atom.read! counter))]
- (/.coverage' [/.in_parallel]
+ (unit.coverage [/.in_parallel]
(and (n.= expected actual)
- (n.= expected (the /.#successes tally))
- (n.= 0 (the /.#failures tally)))))))
+ (n.= expected (the unit.#successes tally))
+ (n.= 0 (the unit.#failures tally)))))))
(do [! random.monad]
[expected (at ! each (|>> (n.% 10) ++) random.nat)
.let [counter (is (Atom Nat)
(atom.atom 0))]
- assertion (<| /.in_parallel
+ unit_test (<| /.in_parallel
(list.repeated expected)
(is /.Test)
(do !
[_ (in [])
.let [_ (undefined)
_ (io.run! (atom.update! ++ counter))]]
- (/.property "" true)))]
+ (/.test "" true)))]
(in (do async.monad
- [[tally error] assertion
+ [[tally error] unit_test
actual (async.future (atom.read! counter))]
- (/.coverage' [/.error_during_execution]
+ (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 /.#successes tally))
- ran_all_tests! (n.= expected (the /.#failures tally))]
+ no_successes! (n.= 0 (the unit.#successes tally))
+ ran_all_tests! (n.= expected (the unit.#failures tally))]
(and correct_error!
no_complete_run!
no_successes!
@@ -171,49 +172,49 @@
/.Test
(all /.and
(do random.monad
- [not_covering (/.property "" true)
- covering (/.covering .._ (/.property "" true))]
+ [not_covering (/.test "" true)
+ covering (/.covering .._ (/.test "" true))]
(in (do async.monad
[[not_covering _] not_covering
[covering _] covering]
- (/.coverage' [/.covering]
- (and (and (set.empty? (the /.#expected not_covering))
- (set.empty? (the /.#actual not_covering)))
- (and (not (set.empty? (the /.#expected covering)))
- (set.empty? (the /.#actual covering))))))))
+ (unit.coverage [/.covering]
+ (and (and (set.empty? (the unit.#expected not_covering))
+ (set.empty? (the unit.#actual not_covering)))
+ (and (not (set.empty? (the unit.#expected covering)))
+ (set.empty? (the unit.#actual covering))))))))
(do random.monad
- [not_covering (/.covering .._ (/.property "" true))
+ [not_covering (/.covering .._ (/.test "" true))
covering (/.covering .._ (/.coverage [..dummy_target] true))]
(in (do async.monad
[[not_covering _] not_covering
[covering _] covering]
- (/.coverage' [/.coverage]
- (and (and (not (set.empty? (the /.#expected not_covering)))
- (not (set.member? (the /.#actual not_covering) (symbol ..dummy_target))))
- (and (not (set.empty? (the /.#expected covering)))
- (set.member? (the /.#actual covering) (symbol ..dummy_target))))))))
+ (unit.coverage [/.coverage]
+ (and (and (not (set.empty? (the unit.#expected not_covering)))
+ (not (set.member? (the unit.#actual not_covering) (symbol ..dummy_target))))
+ (and (not (set.empty? (the unit.#expected covering)))
+ (set.member? (the unit.#actual covering) (symbol ..dummy_target))))))))
(do random.monad
- [not_covering (/.covering .._ (/.property "" true))
- covering (/.covering .._ (in (/.coverage' [..dummy_target] true)))]
+ [not_covering (/.covering .._ (/.test "" true))
+ covering (/.covering .._ (in (unit.coverage [..dummy_target] true)))]
(in (do async.monad
[[not_covering _] not_covering
[covering _] covering]
- (/.coverage' [/.coverage']
- (and (and (not (set.empty? (the /.#expected not_covering)))
- (not (set.member? (the /.#actual not_covering) (symbol ..dummy_target))))
- (and (not (set.empty? (the /.#expected covering)))
- (set.member? (the /.#actual covering) (symbol ..dummy_target))))))))
+ (unit.coverage [unit.coverage]
+ (and (and (not (set.empty? (the unit.#expected not_covering)))
+ (not (set.member? (the unit.#actual not_covering) (symbol ..dummy_target))))
+ (and (not (set.empty? (the unit.#expected covering)))
+ (set.member? (the unit.#actual covering) (symbol ..dummy_target))))))))
(do random.monad
- [not_covering (/.covering .._ (/.property "" true))
- covering (/.covering .._ (/.for [..dummy_target] (/.property "" true)))]
+ [not_covering (/.covering .._ (/.test "" true))
+ covering (/.covering .._ (/.for [..dummy_target] (/.test "" true)))]
(in (do async.monad
[[not_covering _] not_covering
[covering _] covering]
- (/.coverage' [/.for]
- (and (and (not (set.empty? (the /.#expected not_covering)))
- (not (set.member? (the /.#actual not_covering) (symbol ..dummy_target))))
- (and (not (set.empty? (the /.#expected covering)))
- (set.member? (the /.#actual covering) (symbol ..dummy_target))))))))
+ (unit.coverage [/.for]
+ (and (and (not (set.empty? (the unit.#expected not_covering)))
+ (not (set.member? (the unit.#actual not_covering) (symbol ..dummy_target))))
+ (and (not (set.empty? (the unit.#expected covering)))
+ (set.member? (the unit.#actual covering) (symbol ..dummy_target))))))))
))
(def .public test
@@ -227,78 +228,78 @@
expected_message/1 (random.only (|>> (text#= expected_message/0) not)
(random.lower_case 5))]
(all /.and
- (/.for [/.Assertion]
- ..assertion)
+ (/.for [unit.Test]
+ ..unit_test)
(/.for [/.Seed]
seed)
(do !
- [success_assertion (/.property expected_message/0 true)
- failure_assertion (/.property expected_message/0 false)]
+ [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_assertion
- [failure_tally failure_message] failure_assertion]
- (/.coverage' [/.property]
+ [[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 /.#successes success_tally))
- (n.= 0 (the /.#failures success_tally)))
- (and (n.= 0 (the /.#successes failure_tally))
- (n.= 1 (the /.#failures failure_tally))))))))
+ (and (n.= 1 (the unit.#successes success_tally))
+ (n.= 0 (the unit.#failures success_tally)))
+ (and (n.= 0 (the unit.#successes failure_tally))
+ (n.= 1 (the unit.#failures failure_tally))))))))
(do !
- [tt (/.and (/.property expected_message/0 true)
- (/.property expected_message/1 true))
- ff (/.and (/.property expected_message/0 false)
- (/.property expected_message/1 false))
- tf (/.and (/.property expected_message/0 true)
- (/.property expected_message/1 false))
- ft (/.and (/.property expected_message/0 false)
- (/.property expected_message/1 true))]
+ [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]
- (/.coverage' [/.and]
+ (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_assertion (/.context expected_context (/.property expected_message/0 true))
- failure_assertion (/.context expected_context (/.property expected_message/0 false))]
+ [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_assertion
- [failure_tally failure_message] failure_assertion]
- (/.coverage' [/.context]
+ [[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 /.#successes success_tally))
- (n.= 0 (the /.#failures success_tally)))
- (and (n.= 0 (the /.#successes failure_tally))
- (n.= 1 (the /.#failures failure_tally))))))))
+ (and (n.= 1 (the unit.#successes success_tally))
+ (n.= 0 (the unit.#failures success_tally)))
+ (and (n.= 0 (the unit.#successes failure_tally))
+ (n.= 1 (the unit.#failures failure_tally))))))))
(do !
- [failure_assertion (/.failure expected_message/0)]
+ [failure_unit_test (/.failure expected_message/0)]
(in (do async.monad
- [[failure_tally failure_message] failure_assertion]
- (/.coverage' [/.failure]
+ [[failure_tally failure_message] failure_unit_test]
+ (unit.coverage [/.failure]
(and (text.contains? expected_message/0 failure_message)
- (and (n.= 0 (the /.#successes failure_tally))
- (n.= 1 (the /.#failures failure_tally))))))))
+ (and (n.= 0 (the unit.#successes failure_tally))
+ (n.= 1 (the unit.#failures failure_tally))))))))
(do !
- [success_assertion (/.lifted expected_message/0 (in true))
- failure_assertion (/.lifted expected_message/0 (in false))]
+ [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_assertion
- [failure_tally failure_message] failure_assertion]
- (/.coverage' [/.lifted]
+ [[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 /.#successes success_tally))
- (n.= 0 (the /.#failures success_tally)))
- (and (n.= 0 (the /.#successes failure_tally))
- (n.= 1 (the /.#failures failure_tally))))))))
+ (and (n.= 1 (the unit.#successes success_tally))
+ (n.= 0 (the unit.#failures success_tally)))
+ (and (n.= 0 (the unit.#successes failure_tally))
+ (n.= 1 (the unit.#failures failure_tally))))))))
..times
..in_parallel
..coverage
diff --git a/stdlib/source/test/lux/world/file.lux b/stdlib/source/test/lux/world/file.lux
index faebedb1f..ff12cb791 100644
--- a/stdlib/source/test/lux/world/file.lux
+++ b/stdlib/source/test/lux/world/file.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
["[0]" monad (.only do)]]
[control
@@ -24,7 +23,9 @@
["^" pattern]]]
[world
[time
- ["[0]" instant (.only Instant)]]]]]
+ ["[0]" instant (.only Instant)]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
["[0]" /
["[1][0]" watch]]
[\\library
@@ -255,7 +256,7 @@
(in (do async.monad
[.let [fs (/.mock /)]
? (at fs delete file)]
- (_.coverage' [/.cannot_delete]
+ (unit.coverage [/.cannot_delete]
(case ?
{try.#Failure error}
(exception.match? /.cannot_delete error)
@@ -265,7 +266,7 @@
(in (do async.monad
[.let [fs (/.mock /)]
? (at fs read file)]
- (_.coverage' [/.cannot_find_file]
+ (unit.coverage [/.cannot_find_file]
(case ?
{try.#Failure error}
(exception.match? /.cannot_find_file error)
@@ -276,7 +277,7 @@
[.let [fs (/.mock /)]
?/0 (at fs directory_files file)
?/1 (at fs sub_directories file)]
- (_.coverage' [/.cannot_find_directory]
+ (unit.coverage [/.cannot_find_directory]
(case [?/0 ?/1]
[{try.#Failure error/0} {try.#Failure error/1}]
(and (exception.match? /.cannot_find_directory error/0)
diff --git a/stdlib/source/test/lux/world/file/watch.lux b/stdlib/source/test/lux/world/file/watch.lux
index 9977934a0..a56fce833 100644
--- a/stdlib/source/test/lux/world/file/watch.lux
+++ b/stdlib/source/test/lux/world/file/watch.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -18,7 +17,9 @@
[collection
["[0]" list]]]
[math
- ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]]]
+ ["[0]" random (.only Random) (.use "[1]#[0]" monad)]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
["/[1]" //]]]
@@ -74,7 +75,7 @@
(in (do async.monad
[?concern (at watcher concern directory)
?stop (at watcher stop directory)]
- (_.coverage' [/.not_being_watched]
+ (unit.coverage [/.not_being_watched]
(and (case ?concern
{try.#Failure error}
(exception.match? /.not_being_watched error)
@@ -182,7 +183,7 @@
after_creation!
after_modification!
after_deletion!)))]
- (_.coverage' [/.mock /.polling]
+ (unit.coverage [/.mock /.polling]
(try.else false verdict)))))
(do random.monad
[directory (random.alphabetic 5)
@@ -190,7 +191,7 @@
[fs watcher] (/.mock /)]]
(in (do async.monad
[started? (at watcher start /.all directory)]
- (_.coverage' [/.cannot_poll_a_non_existent_directory]
+ (unit.coverage [/.cannot_poll_a_non_existent_directory]
(case started?
{try.#Success _}
false
diff --git a/stdlib/source/test/lux/world/net/http/client.lux b/stdlib/source/test/lux/world/net/http/client.lux
index bd73d7e87..fcba904f9 100644
--- a/stdlib/source/test/lux/world/net/http/client.lux
+++ b/stdlib/source/test/lux/world/net/http/client.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only Monad do)]]
[control
@@ -23,7 +22,9 @@
[math
["[0]" random (.only Random)]
[number
- ["[0]" nat]]]]]
+ ["[0]" nat]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
["/[1]" // (.only)
@@ -119,7 +120,7 @@
(verification ! <expected>))]
<cases>))]
- (_.coverage' [/.async]
+ (unit.coverage [/.async]
(and (,, (with_template [<definition> <expected>]
[<expected>]
diff --git a/stdlib/source/test/lux/world/shell.lux b/stdlib/source/test/lux/world/shell.lux
index 09126a8a3..0e3b16ce9 100644
--- a/stdlib/source/test/lux/world/shell.lux
+++ b/stdlib/source/test/lux/world/shell.lux
@@ -1,7 +1,6 @@
(.require
[library
[lux (.except)
- ["_" test (.only Test)]
[abstract
[monad (.only do)]]
[control
@@ -18,7 +17,9 @@
["[0]" random]
[number
["n" nat]
- ["i" int]]]]]
+ ["i" int]]]
+ ["_" test (.only Test)
+ ["[0]" unit]]]]
[\\library
["[0]" / (.only)
[//
@@ -123,6 +124,6 @@
wrote!
destroyed!
(i.= exit await))))]
- (_.coverage' [/.Shell]
+ (unit.coverage [/.Shell]
(try.else false verdict)))))
)))