aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Julian2021-07-15 00:45:15 -0400
committerEduardo Julian2021-07-15 00:45:15 -0400
commit0abd5bd3c0e38e352e9ba38268e04e1c858ab01e (patch)
treefe0af9e70413e9fc4f3848e0642920fca501c626
parent89ca40f2f101b2b38187eab5cf905371cd47eb57 (diff)
Re-named "spec" hierarchy to "specification".
-rw-r--r--documentation/bookmark/compiler.md6
-rw-r--r--documentation/bookmark/floating_point.md5
-rw-r--r--documentation/bookmark/inspiration.md2
-rw-r--r--documentation/bookmark/logging.md1
-rw-r--r--documentation/bookmark/money.md4
-rw-r--r--documentation/bookmark/platform/js.md4
-rw-r--r--documentation/bookmark/platform/jvm.md1
-rw-r--r--documentation/bookmark/platform/ruby.md4
-rw-r--r--documentation/bookmark/probabilistic_data_structure.md1
-rw-r--r--documentation/bookmark/process.md8
-rw-r--r--documentation/bookmark/program_transformation.md4
-rw-r--r--documentation/bookmark/regular_expression.md4
-rw-r--r--documentation/bookmark/time.md3
-rw-r--r--documentation/bookmark/type_theory.md7
-rw-r--r--documentation/bookmark/type_theory/cost_analysis.md1
-rw-r--r--documentation/bookmark/type_theory/dependent_types.md1
-rw-r--r--documentation/bookmark/type_theory/linear.md4
-rw-r--r--documentation/bookmark/type_theory/unit.md4
-rw-r--r--documentation/bookmark/user_interface/graphic.md1
-rw-r--r--stdlib/source/library/lux/ffi.lua.lux2
-rw-r--r--stdlib/source/library/lux/math.lux3
-rw-r--r--stdlib/source/library/lux/world/console.lux16
-rw-r--r--stdlib/source/specification/aedifex/repository.lux (renamed from stdlib/source/spec/aedifex/repository.lux)0
-rw-r--r--stdlib/source/specification/compositor.lux (renamed from stdlib/source/spec/compositor.lux)0
-rw-r--r--stdlib/source/specification/compositor/analysis/type.lux (renamed from stdlib/source/spec/compositor/analysis/type.lux)0
-rw-r--r--stdlib/source/specification/compositor/common.lux (renamed from stdlib/source/spec/compositor/common.lux)0
-rw-r--r--stdlib/source/specification/compositor/generation/case.lux (renamed from stdlib/source/spec/compositor/generation/case.lux)0
-rw-r--r--stdlib/source/specification/compositor/generation/common.lux (renamed from stdlib/source/spec/compositor/generation/common.lux)0
-rw-r--r--stdlib/source/specification/compositor/generation/function.lux (renamed from stdlib/source/spec/compositor/generation/function.lux)0
-rw-r--r--stdlib/source/specification/compositor/generation/primitive.lux (renamed from stdlib/source/spec/compositor/generation/primitive.lux)0
-rw-r--r--stdlib/source/specification/compositor/generation/reference.lux (renamed from stdlib/source/spec/compositor/generation/reference.lux)0
-rw-r--r--stdlib/source/specification/compositor/generation/structure.lux (renamed from stdlib/source/spec/compositor/generation/structure.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/apply.lux (renamed from stdlib/source/spec/lux/abstract/apply.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/codec.lux (renamed from stdlib/source/spec/lux/abstract/codec.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/comonad.lux (renamed from stdlib/source/spec/lux/abstract/comonad.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/enum.lux (renamed from stdlib/source/spec/lux/abstract/enum.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/equivalence.lux (renamed from stdlib/source/spec/lux/abstract/equivalence.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/fold.lux (renamed from stdlib/source/spec/lux/abstract/fold.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/functor.lux (renamed from stdlib/source/spec/lux/abstract/functor.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/functor/contravariant.lux (renamed from stdlib/source/spec/lux/abstract/functor/contravariant.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/hash.lux (renamed from stdlib/source/spec/lux/abstract/hash.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/interval.lux (renamed from stdlib/source/spec/lux/abstract/interval.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/monad.lux (renamed from stdlib/source/spec/lux/abstract/monad.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/monoid.lux (renamed from stdlib/source/spec/lux/abstract/monoid.lux)0
-rw-r--r--stdlib/source/specification/lux/abstract/order.lux (renamed from stdlib/source/spec/lux/abstract/order.lux)0
-rw-r--r--stdlib/source/specification/lux/world/console.lux (renamed from stdlib/source/spec/lux/world/console.lux)0
-rw-r--r--stdlib/source/specification/lux/world/file.lux (renamed from stdlib/source/spec/lux/world/file.lux)0
-rw-r--r--stdlib/source/specification/lux/world/program.lux (renamed from stdlib/source/spec/lux/world/program.lux)0
-rw-r--r--stdlib/source/specification/lux/world/shell.lux (renamed from stdlib/source/spec/lux/world/shell.lux)0
-rw-r--r--stdlib/source/test/aedifex/artifact.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/build.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/stamp.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/time.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/version.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/version/value.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/time.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/versioning.lux2
-rw-r--r--stdlib/source/test/aedifex/cli.lux2
-rw-r--r--stdlib/source/test/aedifex/dependency.lux2
-rw-r--r--stdlib/source/test/aedifex/dependency/resolution.lux2
-rw-r--r--stdlib/source/test/aedifex/dependency/status.lux2
-rw-r--r--stdlib/source/test/aedifex/hash.lux2
-rw-r--r--stdlib/source/test/aedifex/metadata/artifact.lux2
-rw-r--r--stdlib/source/test/aedifex/metadata/snapshot.lux2
-rw-r--r--stdlib/source/test/aedifex/package.lux2
-rw-r--r--stdlib/source/test/aedifex/profile.lux2
-rw-r--r--stdlib/source/test/aedifex/project.lux2
-rw-r--r--stdlib/source/test/aedifex/repository.lux2
-rw-r--r--stdlib/source/test/aedifex/repository/identity.lux2
-rw-r--r--stdlib/source/test/aedifex/repository/origin.lux2
-rw-r--r--stdlib/source/test/lux/abstract/comonad/cofree.lux2
-rw-r--r--stdlib/source/test/lux/abstract/equivalence.lux2
-rw-r--r--stdlib/source/test/lux/abstract/hash.lux2
-rw-r--r--stdlib/source/test/lux/abstract/interval.lux2
-rw-r--r--stdlib/source/test/lux/abstract/monad/free.lux2
-rw-r--r--stdlib/source/test/lux/abstract/order.lux2
-rw-r--r--stdlib/source/test/lux/abstract/predicate.lux2
-rw-r--r--stdlib/source/test/lux/control/concurrency/frp.lux2
-rw-r--r--stdlib/source/test/lux/control/concurrency/promise.lux2
-rw-r--r--stdlib/source/test/lux/control/concurrency/stm.lux2
-rw-r--r--stdlib/source/test/lux/control/continuation.lux2
-rw-r--r--stdlib/source/test/lux/control/function.lux2
-rw-r--r--stdlib/source/test/lux/control/function/mixin.lux2
-rw-r--r--stdlib/source/test/lux/control/io.lux2
-rw-r--r--stdlib/source/test/lux/control/parser.lux2
-rw-r--r--stdlib/source/test/lux/control/reader.lux2
-rw-r--r--stdlib/source/test/lux/control/region.lux2
-rw-r--r--stdlib/source/test/lux/control/security/policy.lux2
-rw-r--r--stdlib/source/test/lux/control/state.lux2
-rw-r--r--stdlib/source/test/lux/control/thread.lux2
-rw-r--r--stdlib/source/test/lux/control/try.lux2
-rw-r--r--stdlib/source/test/lux/control/writer.lux2
-rw-r--r--stdlib/source/test/lux/data/binary.lux2
-rw-r--r--stdlib/source/test/lux/data/bit.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/array.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/bits.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary/ordered.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary/plist.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/list.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/queue.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/row.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/sequence.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/set.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/set/multi.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/set/ordered.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/stack.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/tree.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/tree/zipper.lux2
-rw-r--r--stdlib/source/test/lux/data/color.lux2
-rw-r--r--stdlib/source/test/lux/data/format/binary.lux2
-rw-r--r--stdlib/source/test/lux/data/format/json.lux2
-rw-r--r--stdlib/source/test/lux/data/format/xml.lux2
-rw-r--r--stdlib/source/test/lux/data/identity.lux2
-rw-r--r--stdlib/source/test/lux/data/lazy.lux2
-rw-r--r--stdlib/source/test/lux/data/maybe.lux2
-rw-r--r--stdlib/source/test/lux/data/name.lux2
-rw-r--r--stdlib/source/test/lux/data/product.lux2
-rw-r--r--stdlib/source/test/lux/data/sum.lux2
-rw-r--r--stdlib/source/test/lux/data/text.lux2
-rw-r--r--stdlib/source/test/lux/data/text/encoding.lux2
-rw-r--r--stdlib/source/test/lux/data/text/encoding/utf8.lux2
-rw-r--r--stdlib/source/test/lux/data/text/format.lux2
-rw-r--r--stdlib/source/test/lux/data/text/unicode/block.lux2
-rw-r--r--stdlib/source/test/lux/data/text/unicode/set.lux2
-rw-r--r--stdlib/source/test/lux/ffi.lua.lux54
-rw-r--r--stdlib/source/test/lux/locale.lux2
-rw-r--r--stdlib/source/test/lux/locale/language.lux2
-rw-r--r--stdlib/source/test/lux/locale/territory.lux2
-rw-r--r--stdlib/source/test/lux/macro/code.lux2
-rw-r--r--stdlib/source/test/lux/macro/poly/equivalence.lux2
-rw-r--r--stdlib/source/test/lux/macro/poly/json.lux2
-rw-r--r--stdlib/source/test/lux/macro/syntax/annotations.lux2
-rw-r--r--stdlib/source/test/lux/macro/syntax/check.lux2
-rw-r--r--stdlib/source/test/lux/macro/syntax/declaration.lux2
-rw-r--r--stdlib/source/test/lux/macro/syntax/definition.lux2
-rw-r--r--stdlib/source/test/lux/macro/syntax/input.lux2
-rw-r--r--stdlib/source/test/lux/macro/syntax/type/variable.lux2
-rw-r--r--stdlib/source/test/lux/math.lux11
-rw-r--r--stdlib/source/test/lux/math/logic/continuous.lux2
-rw-r--r--stdlib/source/test/lux/math/logic/fuzzy.lux2
-rw-r--r--stdlib/source/test/lux/math/modular.lux2
-rw-r--r--stdlib/source/test/lux/math/number/complex.lux2
-rw-r--r--stdlib/source/test/lux/math/number/frac.lux2
-rw-r--r--stdlib/source/test/lux/math/number/i16.lux2
-rw-r--r--stdlib/source/test/lux/math/number/i32.lux2
-rw-r--r--stdlib/source/test/lux/math/number/i64.lux2
-rw-r--r--stdlib/source/test/lux/math/number/i8.lux2
-rw-r--r--stdlib/source/test/lux/math/number/int.lux2
-rw-r--r--stdlib/source/test/lux/math/number/nat.lux2
-rw-r--r--stdlib/source/test/lux/math/number/ratio.lux2
-rw-r--r--stdlib/source/test/lux/math/number/rev.lux2
-rw-r--r--stdlib/source/test/lux/meta.lux2
-rw-r--r--stdlib/source/test/lux/meta/location.lux2
-rw-r--r--stdlib/source/test/lux/test.lux56
-rw-r--r--stdlib/source/test/lux/time.lux2
-rw-r--r--stdlib/source/test/lux/time/date.lux2
-rw-r--r--stdlib/source/test/lux/time/day.lux2
-rw-r--r--stdlib/source/test/lux/time/duration.lux2
-rw-r--r--stdlib/source/test/lux/time/instant.lux2
-rw-r--r--stdlib/source/test/lux/time/month.lux2
-rw-r--r--stdlib/source/test/lux/time/year.lux2
-rw-r--r--stdlib/source/test/lux/type.lux2
-rw-r--r--stdlib/source/test/lux/type/check.lux2
-rw-r--r--stdlib/source/test/lux/type/quotient.lux2
-rw-r--r--stdlib/source/test/lux/type/unit.lux2
-rw-r--r--stdlib/source/test/lux/world/console.lux2
-rw-r--r--stdlib/source/test/lux/world/file.lux2
-rw-r--r--stdlib/source/test/lux/world/file/watch.lux13
-rw-r--r--stdlib/source/test/lux/world/output/video/resolution.lux2
-rw-r--r--stdlib/source/test/lux/world/program.lux2
-rw-r--r--stdlib/source/test/lux/world/shell.lux2
173 files changed, 320 insertions, 140 deletions
diff --git a/documentation/bookmark/compiler.md b/documentation/bookmark/compiler.md
index 326bfff9b..5d582a174 100644
--- a/documentation/bookmark/compiler.md
+++ b/documentation/bookmark/compiler.md
@@ -1,8 +1,14 @@
+# Methodology
+
+1. [Collapsing Towers of Interpreters](https://www.cs.purdue.edu/homes/rompf/papers/amin-popl18.pdf)
+1. [Miniphases: Compilation using Modular and Efficient Tree Transformations](https://infoscience.epfl.ch/record/228518/files/paper.pdf)
+
# Security
1. [A Brief Tour of Formally Secure Compilation](http://ceur-ws.org/Vol-2315/paper03.pdf)
# Framework
+1. [The GENTLE Compiler Construction System](http://gentle.compilertools.net/index.html)
1. [Nanopass Framework: Clean Compiler Creation Language](http://nanopass.org/)
diff --git a/documentation/bookmark/floating_point.md b/documentation/bookmark/floating_point.md
index 55c84d2f2..56cbc3eb9 100644
--- a/documentation/bookmark/floating_point.md
+++ b/documentation/bookmark/floating_point.md
@@ -1,3 +1,7 @@
+# Comparison
+
+1. [Approximate Equality for Floating Point](https://github.com/apple/swift-evolution/blob/master/proposals/0259-approximately-equal.md)
+
# Random generation
1. [Uniform random floats: How to generate a double-precision floating-point number in [0, 1] uniformly at random given a uniform random source of bits](https://mumble.net/~campbell/2014/04/28/uniform-random-float)
@@ -12,6 +16,7 @@
# Reference
+1. [How Java’s Floating-Point Hurts Everyone Everywhere](https://people.eecs.berkeley.edu/~wkahan/JAVAhurt.pdf)
1. [What aspect of portable floating point did Java back down on?](https://retrocomputing.stackexchange.com/questions/18143/what-aspect-of-portable-floating-point-did-java-back-down-on)
# Algorithm
diff --git a/documentation/bookmark/inspiration.md b/documentation/bookmark/inspiration.md
index be02d1bd7..87b095b6f 100644
--- a/documentation/bookmark/inspiration.md
+++ b/documentation/bookmark/inspiration.md
@@ -39,7 +39,7 @@
1. [Local State is Poison](https://awelonblue.wordpress.com/2012/10/21/local-state-is-poison/)
1. [The dark side of ergonomics](https://vorner.github.io/2018/04/08/Dark-side-of-ergonomics.html)
-1. []()
+1. [A Plea for Lean Software](https://cr.yp.to/bib/1995/wirth.pdf)
# Robustness
diff --git a/documentation/bookmark/logging.md b/documentation/bookmark/logging.md
index cb4cc64ed..8f89b529e 100644
--- a/documentation/bookmark/logging.md
+++ b/documentation/bookmark/logging.md
@@ -1,5 +1,6 @@
# Reference
+1. [The Value of Correlation IDs](https://www.rapid7.com/blog/post/2016/12/23/the-value-of-correlation-ids/)
1. [IceCream — Never use print() to debug again](https://github.com/gruns/icecream)
1. [Capabilities of Elixir's Logger](https://blog.appsignal.com/2020/10/13/capabilities-of-elixir-logger.html)
diff --git a/documentation/bookmark/money.md b/documentation/bookmark/money.md
new file mode 100644
index 000000000..ecae99905
--- /dev/null
+++ b/documentation/bookmark/money.md
@@ -0,0 +1,4 @@
+# Reference
+
+1. [Dinero.js: Dinero.js is a library for working with monetary values in JavaScript.](https://dinerojs.com/)
+
diff --git a/documentation/bookmark/platform/js.md b/documentation/bookmark/platform/js.md
new file mode 100644
index 000000000..4a5a5b4c0
--- /dev/null
+++ b/documentation/bookmark/platform/js.md
@@ -0,0 +1,4 @@
+# Reference
+
+1. [Maybe you don't need Rust and WASM to speed up your JS ](https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html)
+
diff --git a/documentation/bookmark/platform/jvm.md b/documentation/bookmark/platform/jvm.md
index db2b13a6c..7e8969b91 100644
--- a/documentation/bookmark/platform/jvm.md
+++ b/documentation/bookmark/platform/jvm.md
@@ -1,5 +1,6 @@
# Reference
+1. [Beware of computation in static initializer](https://pangin.pro/posts/computation-in-static-initializer)
1. [JVM Internals](https://blog.jamesdbloom.com/JVMInternals.html)
1. [JVM Anatomy Quarks](https://shipilev.net/jvm/anatomy-quarks/)
diff --git a/documentation/bookmark/platform/ruby.md b/documentation/bookmark/platform/ruby.md
new file mode 100644
index 000000000..8b124a598
--- /dev/null
+++ b/documentation/bookmark/platform/ruby.md
@@ -0,0 +1,4 @@
+# Reference
+
+1. [Weird Ruby: Positive and Negative Strings](https://metaredux.com/posts/2019/05/10/weird-ruby-positive-and-negative-strings.html)
+
diff --git a/documentation/bookmark/probabilistic_data_structure.md b/documentation/bookmark/probabilistic_data_structure.md
index 0e1fe5986..10529136d 100644
--- a/documentation/bookmark/probabilistic_data_structure.md
+++ b/documentation/bookmark/probabilistic_data_structure.md
@@ -5,6 +5,7 @@
# Reference
+1. [Ribbon filter: practically smaller than Bloom and Xor](https://arxiv.org/abs/2103.02515)
1. [Teaching Bloom Filters new tricks](https://toao.com/blog/teaching-bloom-filters-new-tricks)
1. [Xor Filters: Faster and Smaller Than Bloom Filters](https://lemire.me/blog/2019/12/19/xor-filters-faster-and-smaller-than-bloom-filters/)
1. [Morton Filters: Faster, Space-Efficient Cuckoo Filters via Biasing, Compression, and Decoupled Logical Sparsity](http://www.vldb.org/pvldb/vol11/p1041-breslow.pdf)
diff --git a/documentation/bookmark/process.md b/documentation/bookmark/process.md
index be1326cbb..e13ea3a19 100644
--- a/documentation/bookmark/process.md
+++ b/documentation/bookmark/process.md
@@ -1,3 +1,11 @@
+# Architecture
+
+1. [Why Write ADRs](https://github.blog/2020-08-13-why-write-adrs/)
+
+# Release
+
+1. [semantic-release: Fully automated version management and package publishing](https://github.com/semantic-release/semantic-release)
+
# Reference
1. [Conventional Commits: A specification for adding human and machine readable meaning to commit messages](https://www.conventionalcommits.org/en/v1.0.0/)
diff --git a/documentation/bookmark/program_transformation.md b/documentation/bookmark/program_transformation.md
new file mode 100644
index 000000000..a29095910
--- /dev/null
+++ b/documentation/bookmark/program_transformation.md
@@ -0,0 +1,4 @@
+# Reference
+
+1. [The Program Transformation Wiki](http://program-transformation.org/)
+
diff --git a/documentation/bookmark/regular_expression.md b/documentation/bookmark/regular_expression.md
new file mode 100644
index 000000000..584f5649d
--- /dev/null
+++ b/documentation/bookmark/regular_expression.md
@@ -0,0 +1,4 @@
+# Reference
+
+1. [Paper: Hyperscan: A Fast Multi-pattern Regex Matcher for Modern CPUs](https://branchfree.org/2019/02/28/paper-hyperscan-a-fast-multi-pattern-regex-matcher-for-modern-cpus/)
+
diff --git a/documentation/bookmark/time.md b/documentation/bookmark/time.md
index caa6f16a6..6053c5d87 100644
--- a/documentation/bookmark/time.md
+++ b/documentation/bookmark/time.md
@@ -1,4 +1,7 @@
# Reference
+1. [Calendarific: Worldwide Holidays and Observances RESTful API](https://calendarific.com/)
+1. [UTC with Smoothed Leap Seconds (UTC-SLS)](https://www.cl.cam.ac.uk/~mgk25/time/utc-sls/)
+1. [Hashed and Hierarchical Timing Wheels](https://paulcavallaro.com/blog/hashed-and-hierarchical-timing-wheels/)
1. [Storing UTC is not a silver bullet](https://codeblog.jonskeet.uk/2019/03/27/storing-utc-is-not-a-silver-bullet/)
diff --git a/documentation/bookmark/type_theory.md b/documentation/bookmark/type_theory.md
new file mode 100644
index 000000000..b27a26a37
--- /dev/null
+++ b/documentation/bookmark/type_theory.md
@@ -0,0 +1,7 @@
+# Reference
+
+1. [Statically typed PostgreSQL queries in TypeScript](https://www.cs.mcgill.ca/~mxia3/2016/11/18/Statically-typed-PostgreSQL-queries-and-typescript-schemats/)
+1. [Lambdas are Codatatypes](http://blog.ielliott.io/lambdas-are-codatatypes/)
+1. [SPL LIFT— Statically Analyzing Software Product Linesin Minutes Instead of Years](https://www.bodden.de/pubs/bmb+13spllift.pdf)
+1. [jQuery, but for types](https://willcrichton.net/notes/jquery-for-types/)
+
diff --git a/documentation/bookmark/type_theory/cost_analysis.md b/documentation/bookmark/type_theory/cost_analysis.md
index 6e92c792e..61f16fe8d 100644
--- a/documentation/bookmark/type_theory/cost_analysis.md
+++ b/documentation/bookmark/type_theory/cost_analysis.md
@@ -1,4 +1,5 @@
# Reference
+1. [TiML: a functional language for practical complexity analysis with invariants](https://dl.acm.org/doi/10.1145/3133903)
1. [Liquidate Your Assets: Reasoning about Resource Usage in Liquid Haskell](http://www.cs.nott.ac.uk/~pszgmh/liquidate.pdf)
diff --git a/documentation/bookmark/type_theory/dependent_types.md b/documentation/bookmark/type_theory/dependent_types.md
index 68fef10f3..c46522210 100644
--- a/documentation/bookmark/type_theory/dependent_types.md
+++ b/documentation/bookmark/type_theory/dependent_types.md
@@ -5,6 +5,7 @@
# Reference
+1. [Programming up to Congruence](http://www.cs.yale.edu/homes/vilhelm/papers/popl15congruence.pdf)
1. [From Scheme to Dependent Types in 100 lines by Gershom Bazerman (Part 1)](https://vimeo.com/134561872)
1. [From Scheme to Dependent Types in 100 Lines by Gershom Bazerman (Part 2)](https://vimeo.com/135746080)
1. [Program = Proof](http://www.lix.polytechnique.fr/Labo/Samuel.Mimram/teaching/INF551/course.pdf)
diff --git a/documentation/bookmark/type_theory/linear.md b/documentation/bookmark/type_theory/linear.md
new file mode 100644
index 000000000..00f70e422
--- /dev/null
+++ b/documentation/bookmark/type_theory/linear.md
@@ -0,0 +1,4 @@
+# Reference
+
+1. [Chu construction on linear logic](http://boxbase.org/entries/2019/jul/15/chu-construction/)
+
diff --git a/documentation/bookmark/type_theory/unit.md b/documentation/bookmark/type_theory/unit.md
new file mode 100644
index 000000000..5f5306117
--- /dev/null
+++ b/documentation/bookmark/type_theory/unit.md
@@ -0,0 +1,4 @@
+# Reference
+
+1. [unittyped: An extendable library for type-safe computations including units.](https://hackage.haskell.org/package/unittyped)
+
diff --git a/documentation/bookmark/user_interface/graphic.md b/documentation/bookmark/user_interface/graphic.md
index 35d3115ec..43304c329 100644
--- a/documentation/bookmark/user_interface/graphic.md
+++ b/documentation/bookmark/user_interface/graphic.md
@@ -4,6 +4,7 @@
# Widget
+1. [imask.js: vanilla javascript input mask](https://imask.js.org/)
1. [Progress bar.js](https://kimmobrunfeldt.github.io/progressbar.js/)
# Design
diff --git a/stdlib/source/library/lux/ffi.lua.lux b/stdlib/source/library/lux/ffi.lua.lux
index 0099865f5..bb224c575 100644
--- a/stdlib/source/library/lux/ffi.lua.lux
+++ b/stdlib/source/library/lux/ffi.lua.lux
@@ -27,7 +27,7 @@
(template [<name>]
[(with_expansions [<brand> (template.identifier [<name> "'"])]
- (abstract: #export <brand> Any)
+ (abstract: <brand> Any)
(type: #export <name>
(..Object <brand>)))]
diff --git a/stdlib/source/library/lux/math.lux b/stdlib/source/library/lux/math.lux
index 0070bcfa3..65c3c01d0 100644
--- a/stdlib/source/library/lux/math.lux
+++ b/stdlib/source/library/lux/math.lux
@@ -36,6 +36,9 @@
[ceil "jvm invokestatic:java.lang.Math:ceil:double"]
[floor "jvm invokestatic:java.lang.Math:floor:double"]
+
+ [root/2 "jvm invokestatic:java.lang.Math:sqrt:double"]
+ [root/3 "jvm invokestatic:java.lang.Math:cbrt:double"]
)
(def: #export (pow param subject)
(-> Frac Frac Frac)
diff --git a/stdlib/source/library/lux/world/console.lux b/stdlib/source/library/lux/world/console.lux
index 41652fdd7..5020554a1 100644
--- a/stdlib/source/library/lux/world/console.lux
+++ b/stdlib/source/library/lux/world/console.lux
@@ -16,14 +16,6 @@
["." text (#+ Char)
["%" format (#+ format)]]]]])
-(template [<name>]
- [(exception: #export (<name>)
- "")]
-
- [cannot_open]
- [cannot_close]
- )
-
(interface: #export (Console !)
(: (-> [] (! (Try Char)))
read)
@@ -66,6 +58,14 @@
(#static in java/io/InputStream)
(#static out java/io/PrintStream)])
+ (template [<name>]
+ [(exception: #export (<name>)
+ "")]
+
+ [cannot_open]
+ [cannot_close]
+ )
+
(def: #export default
(IO (Try (Console IO)))
(do io.monad
diff --git a/stdlib/source/spec/aedifex/repository.lux b/stdlib/source/specification/aedifex/repository.lux
index de9a05fde..de9a05fde 100644
--- a/stdlib/source/spec/aedifex/repository.lux
+++ b/stdlib/source/specification/aedifex/repository.lux
diff --git a/stdlib/source/spec/compositor.lux b/stdlib/source/specification/compositor.lux
index 08a294282..08a294282 100644
--- a/stdlib/source/spec/compositor.lux
+++ b/stdlib/source/specification/compositor.lux
diff --git a/stdlib/source/spec/compositor/analysis/type.lux b/stdlib/source/specification/compositor/analysis/type.lux
index 7cbd5884b..7cbd5884b 100644
--- a/stdlib/source/spec/compositor/analysis/type.lux
+++ b/stdlib/source/specification/compositor/analysis/type.lux
diff --git a/stdlib/source/spec/compositor/common.lux b/stdlib/source/specification/compositor/common.lux
index ed3b53f30..ed3b53f30 100644
--- a/stdlib/source/spec/compositor/common.lux
+++ b/stdlib/source/specification/compositor/common.lux
diff --git a/stdlib/source/spec/compositor/generation/case.lux b/stdlib/source/specification/compositor/generation/case.lux
index 2424aa330..2424aa330 100644
--- a/stdlib/source/spec/compositor/generation/case.lux
+++ b/stdlib/source/specification/compositor/generation/case.lux
diff --git a/stdlib/source/spec/compositor/generation/common.lux b/stdlib/source/specification/compositor/generation/common.lux
index 3d377b7ca..3d377b7ca 100644
--- a/stdlib/source/spec/compositor/generation/common.lux
+++ b/stdlib/source/specification/compositor/generation/common.lux
diff --git a/stdlib/source/spec/compositor/generation/function.lux b/stdlib/source/specification/compositor/generation/function.lux
index 6d0f8d541..6d0f8d541 100644
--- a/stdlib/source/spec/compositor/generation/function.lux
+++ b/stdlib/source/specification/compositor/generation/function.lux
diff --git a/stdlib/source/spec/compositor/generation/primitive.lux b/stdlib/source/specification/compositor/generation/primitive.lux
index 3b6dd657b..3b6dd657b 100644
--- a/stdlib/source/spec/compositor/generation/primitive.lux
+++ b/stdlib/source/specification/compositor/generation/primitive.lux
diff --git a/stdlib/source/spec/compositor/generation/reference.lux b/stdlib/source/specification/compositor/generation/reference.lux
index 665175ab4..665175ab4 100644
--- a/stdlib/source/spec/compositor/generation/reference.lux
+++ b/stdlib/source/specification/compositor/generation/reference.lux
diff --git a/stdlib/source/spec/compositor/generation/structure.lux b/stdlib/source/specification/compositor/generation/structure.lux
index 7c45d2a9b..7c45d2a9b 100644
--- a/stdlib/source/spec/compositor/generation/structure.lux
+++ b/stdlib/source/specification/compositor/generation/structure.lux
diff --git a/stdlib/source/spec/lux/abstract/apply.lux b/stdlib/source/specification/lux/abstract/apply.lux
index 691e8c01c..691e8c01c 100644
--- a/stdlib/source/spec/lux/abstract/apply.lux
+++ b/stdlib/source/specification/lux/abstract/apply.lux
diff --git a/stdlib/source/spec/lux/abstract/codec.lux b/stdlib/source/specification/lux/abstract/codec.lux
index f58f6ce91..f58f6ce91 100644
--- a/stdlib/source/spec/lux/abstract/codec.lux
+++ b/stdlib/source/specification/lux/abstract/codec.lux
diff --git a/stdlib/source/spec/lux/abstract/comonad.lux b/stdlib/source/specification/lux/abstract/comonad.lux
index 85d00b8f2..85d00b8f2 100644
--- a/stdlib/source/spec/lux/abstract/comonad.lux
+++ b/stdlib/source/specification/lux/abstract/comonad.lux
diff --git a/stdlib/source/spec/lux/abstract/enum.lux b/stdlib/source/specification/lux/abstract/enum.lux
index ddb2a80f1..ddb2a80f1 100644
--- a/stdlib/source/spec/lux/abstract/enum.lux
+++ b/stdlib/source/specification/lux/abstract/enum.lux
diff --git a/stdlib/source/spec/lux/abstract/equivalence.lux b/stdlib/source/specification/lux/abstract/equivalence.lux
index 4d6d0900a..4d6d0900a 100644
--- a/stdlib/source/spec/lux/abstract/equivalence.lux
+++ b/stdlib/source/specification/lux/abstract/equivalence.lux
diff --git a/stdlib/source/spec/lux/abstract/fold.lux b/stdlib/source/specification/lux/abstract/fold.lux
index 2b4a7617f..2b4a7617f 100644
--- a/stdlib/source/spec/lux/abstract/fold.lux
+++ b/stdlib/source/specification/lux/abstract/fold.lux
diff --git a/stdlib/source/spec/lux/abstract/functor.lux b/stdlib/source/specification/lux/abstract/functor.lux
index cfa6cc2ff..cfa6cc2ff 100644
--- a/stdlib/source/spec/lux/abstract/functor.lux
+++ b/stdlib/source/specification/lux/abstract/functor.lux
diff --git a/stdlib/source/spec/lux/abstract/functor/contravariant.lux b/stdlib/source/specification/lux/abstract/functor/contravariant.lux
index cba839e94..cba839e94 100644
--- a/stdlib/source/spec/lux/abstract/functor/contravariant.lux
+++ b/stdlib/source/specification/lux/abstract/functor/contravariant.lux
diff --git a/stdlib/source/spec/lux/abstract/hash.lux b/stdlib/source/specification/lux/abstract/hash.lux
index 4722a48a0..4722a48a0 100644
--- a/stdlib/source/spec/lux/abstract/hash.lux
+++ b/stdlib/source/specification/lux/abstract/hash.lux
diff --git a/stdlib/source/spec/lux/abstract/interval.lux b/stdlib/source/specification/lux/abstract/interval.lux
index 5b74bc34d..5b74bc34d 100644
--- a/stdlib/source/spec/lux/abstract/interval.lux
+++ b/stdlib/source/specification/lux/abstract/interval.lux
diff --git a/stdlib/source/spec/lux/abstract/monad.lux b/stdlib/source/specification/lux/abstract/monad.lux
index 869eb24c7..869eb24c7 100644
--- a/stdlib/source/spec/lux/abstract/monad.lux
+++ b/stdlib/source/specification/lux/abstract/monad.lux
diff --git a/stdlib/source/spec/lux/abstract/monoid.lux b/stdlib/source/specification/lux/abstract/monoid.lux
index f8626fe74..f8626fe74 100644
--- a/stdlib/source/spec/lux/abstract/monoid.lux
+++ b/stdlib/source/specification/lux/abstract/monoid.lux
diff --git a/stdlib/source/spec/lux/abstract/order.lux b/stdlib/source/specification/lux/abstract/order.lux
index 61fc22611..61fc22611 100644
--- a/stdlib/source/spec/lux/abstract/order.lux
+++ b/stdlib/source/specification/lux/abstract/order.lux
diff --git a/stdlib/source/spec/lux/world/console.lux b/stdlib/source/specification/lux/world/console.lux
index f454b61c9..f454b61c9 100644
--- a/stdlib/source/spec/lux/world/console.lux
+++ b/stdlib/source/specification/lux/world/console.lux
diff --git a/stdlib/source/spec/lux/world/file.lux b/stdlib/source/specification/lux/world/file.lux
index 7bdefb173..7bdefb173 100644
--- a/stdlib/source/spec/lux/world/file.lux
+++ b/stdlib/source/specification/lux/world/file.lux
diff --git a/stdlib/source/spec/lux/world/program.lux b/stdlib/source/specification/lux/world/program.lux
index e79429627..e79429627 100644
--- a/stdlib/source/spec/lux/world/program.lux
+++ b/stdlib/source/specification/lux/world/program.lux
diff --git a/stdlib/source/spec/lux/world/shell.lux b/stdlib/source/specification/lux/world/shell.lux
index c4fc51b99..c4fc51b99 100644
--- a/stdlib/source/spec/lux/world/shell.lux
+++ b/stdlib/source/specification/lux/world/shell.lux
diff --git a/stdlib/source/test/aedifex/artifact.lux b/stdlib/source/test/aedifex/artifact.lux
index 6a1021b4c..6afbbf27c 100644
--- a/stdlib/source/test/aedifex/artifact.lux
+++ b/stdlib/source/test/aedifex/artifact.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
[hash (#+ Hash)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
[concurrency
diff --git a/stdlib/source/test/aedifex/artifact/snapshot.lux b/stdlib/source/test/aedifex/artifact/snapshot.lux
index 94d98cf22..5f29620c9 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/build.lux b/stdlib/source/test/aedifex/artifact/snapshot/build.lux
index 731219b91..8b0be9f1d 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/build.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/build.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux b/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux
index ba0c9f368..00be1c227 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/stamp.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/time.lux b/stdlib/source/test/aedifex/artifact/snapshot/time.lux
index 9cfe28fb0..820214cba 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/time.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/time.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version.lux b/stdlib/source/test/aedifex/artifact/snapshot/version.lux
index f0fc26321..a4a090246 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/version.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/version.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux
index dcb23646d..c55b71cd1 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/artifact/time.lux b/stdlib/source/test/aedifex/artifact/time.lux
index f4fc185be..f69566096 100644
--- a/stdlib/source/test/aedifex/artifact/time.lux
+++ b/stdlib/source/test/aedifex/artifact/time.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/artifact/versioning.lux b/stdlib/source/test/aedifex/artifact/versioning.lux
index 9efdca98a..a16794e98 100644
--- a/stdlib/source/test/aedifex/artifact/versioning.lux
+++ b/stdlib/source/test/aedifex/artifact/versioning.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/cli.lux b/stdlib/source/test/aedifex/cli.lux
index d2eed16d7..71ea72b8c 100644
--- a/stdlib/source/test/aedifex/cli.lux
+++ b/stdlib/source/test/aedifex/cli.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
[pipe (#+ case>)]
diff --git a/stdlib/source/test/aedifex/dependency.lux b/stdlib/source/test/aedifex/dependency.lux
index d12434d1f..7ce95f716 100644
--- a/stdlib/source/test/aedifex/dependency.lux
+++ b/stdlib/source/test/aedifex/dependency.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random (#+ Random)]]]]
diff --git a/stdlib/source/test/aedifex/dependency/resolution.lux b/stdlib/source/test/aedifex/dependency/resolution.lux
index 638199af3..deb74abcd 100644
--- a/stdlib/source/test/aedifex/dependency/resolution.lux
+++ b/stdlib/source/test/aedifex/dependency/resolution.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
["." predicate]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try]
diff --git a/stdlib/source/test/aedifex/dependency/status.lux b/stdlib/source/test/aedifex/dependency/status.lux
index a3ac5df4e..f886c031f 100644
--- a/stdlib/source/test/aedifex/dependency/status.lux
+++ b/stdlib/source/test/aedifex/dependency/status.lux
@@ -3,7 +3,7 @@
[lux #*
["_" test (#+ Test)]
[abstract
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random (#+ Random) ("#\." monad)]]]]
diff --git a/stdlib/source/test/aedifex/hash.lux b/stdlib/source/test/aedifex/hash.lux
index 9064dac8b..524110c35 100644
--- a/stdlib/source/test/aedifex/hash.lux
+++ b/stdlib/source/test/aedifex/hash.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." codec]]]
[control
diff --git a/stdlib/source/test/aedifex/metadata/artifact.lux b/stdlib/source/test/aedifex/metadata/artifact.lux
index b84eca173..5e5f67bec 100644
--- a/stdlib/source/test/aedifex/metadata/artifact.lux
+++ b/stdlib/source/test/aedifex/metadata/artifact.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/metadata/snapshot.lux b/stdlib/source/test/aedifex/metadata/snapshot.lux
index d34eb60a9..5a821c452 100644
--- a/stdlib/source/test/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/test/aedifex/metadata/snapshot.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/aedifex/package.lux b/stdlib/source/test/aedifex/package.lux
index ef23f35ce..55bca8ce3 100644
--- a/stdlib/source/test/aedifex/package.lux
+++ b/stdlib/source/test/aedifex/package.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try]
diff --git a/stdlib/source/test/aedifex/profile.lux b/stdlib/source/test/aedifex/profile.lux
index 418756ffd..c593f1706 100644
--- a/stdlib/source/test/aedifex/profile.lux
+++ b/stdlib/source/test/aedifex/profile.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
[hash (#+ Hash)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." monoid]]]
[control
diff --git a/stdlib/source/test/aedifex/project.lux b/stdlib/source/test/aedifex/project.lux
index e1b4b051a..bdeee7993 100644
--- a/stdlib/source/test/aedifex/project.lux
+++ b/stdlib/source/test/aedifex/project.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." monoid]]]
[control
diff --git a/stdlib/source/test/aedifex/repository.lux b/stdlib/source/test/aedifex/repository.lux
index c86f3d52d..67cc4c10f 100644
--- a/stdlib/source/test/aedifex/repository.lux
+++ b/stdlib/source/test/aedifex/repository.lux
@@ -29,7 +29,7 @@
["#." remote]
[//
["@." artifact]]]
- [\\spec
+ [\\specification
["$." /]]
[\\program
["." /
diff --git a/stdlib/source/test/aedifex/repository/identity.lux b/stdlib/source/test/aedifex/repository/identity.lux
index 061bd9de0..74daecb4d 100644
--- a/stdlib/source/test/aedifex/repository/identity.lux
+++ b/stdlib/source/test/aedifex/repository/identity.lux
@@ -3,7 +3,7 @@
[lux #*
["_" test (#+ Test)]
[abstract
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random (#+ Random)]]]]
diff --git a/stdlib/source/test/aedifex/repository/origin.lux b/stdlib/source/test/aedifex/repository/origin.lux
index 6531726fe..daf8e8667 100644
--- a/stdlib/source/test/aedifex/repository/origin.lux
+++ b/stdlib/source/test/aedifex/repository/origin.lux
@@ -3,7 +3,7 @@
[lux #*
["_" test (#+ Test)]
[abstract
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random (#+ Random)]]]]
diff --git a/stdlib/source/test/lux/abstract/comonad/cofree.lux b/stdlib/source/test/lux/abstract/comonad/cofree.lux
index 82647f79d..d44c592d0 100644
--- a/stdlib/source/test/lux/abstract/comonad/cofree.lux
+++ b/stdlib/source/test/lux/abstract/comonad/cofree.lux
@@ -5,7 +5,7 @@
[abstract
[functor (#+ Functor)]
[comonad (#+ CoMonad)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." comonad]]]
[control
diff --git a/stdlib/source/test/lux/abstract/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux
index 5b0bfced8..753494f48 100644
--- a/stdlib/source/test/lux/abstract/equivalence.lux
+++ b/stdlib/source/test/lux/abstract/equivalence.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
[functor
["$." contravariant]]]]
[data
diff --git a/stdlib/source/test/lux/abstract/hash.lux b/stdlib/source/test/lux/abstract/hash.lux
index 4c9bc67f6..894860935 100644
--- a/stdlib/source/test/lux/abstract/hash.lux
+++ b/stdlib/source/test/lux/abstract/hash.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
[functor
["$." contravariant]]]]
[data
diff --git a/stdlib/source/test/lux/abstract/interval.lux b/stdlib/source/test/lux/abstract/interval.lux
index 718663b4b..f5dd14646 100644
--- a/stdlib/source/test/lux/abstract/interval.lux
+++ b/stdlib/source/test/lux/abstract/interval.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
["." order]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
[pipe (#+ case>)]]
diff --git a/stdlib/source/test/lux/abstract/monad/free.lux b/stdlib/source/test/lux/abstract/monad/free.lux
index a56c01fd5..2a5a562f2 100644
--- a/stdlib/source/test/lux/abstract/monad/free.lux
+++ b/stdlib/source/test/lux/abstract/monad/free.lux
@@ -6,7 +6,7 @@
[functor (#+ Functor)]
[apply (#+ Apply)]
[monad (#+ Monad do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/abstract/order.lux b/stdlib/source/test/lux/abstract/order.lux
index 2173691de..e9ced25ce 100644
--- a/stdlib/source/test/lux/abstract/order.lux
+++ b/stdlib/source/test/lux/abstract/order.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
[functor
["$." contravariant]]]]
[data
diff --git a/stdlib/source/test/lux/abstract/predicate.lux b/stdlib/source/test/lux/abstract/predicate.lux
index 0535b5802..197953c49 100644
--- a/stdlib/source/test/lux/abstract/predicate.lux
+++ b/stdlib/source/test/lux/abstract/predicate.lux
@@ -5,7 +5,7 @@
[abstract
[equivalence (#+ Equivalence)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." monoid]
[functor
["$." contravariant]]]]
diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux
index 45d626600..c23428089 100644
--- a/stdlib/source/test/lux/control/concurrency/frp.lux
+++ b/stdlib/source/test/lux/control/concurrency/frp.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/concurrency/promise.lux b/stdlib/source/test/lux/control/concurrency/promise.lux
index 6b6b0ac14..be2655334 100644
--- a/stdlib/source/test/lux/control/concurrency/promise.lux
+++ b/stdlib/source/test/lux/control/concurrency/promise.lux
@@ -5,7 +5,7 @@
["@" target]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/concurrency/stm.lux b/stdlib/source/test/lux/control/concurrency/stm.lux
index 6667274b5..23248f387 100644
--- a/stdlib/source/test/lux/control/concurrency/stm.lux
+++ b/stdlib/source/test/lux/control/concurrency/stm.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
["." monad (#+ Monad do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/continuation.lux b/stdlib/source/test/lux/control/continuation.lux
index bec8160c1..d13a3ee78 100644
--- a/stdlib/source/test/lux/control/continuation.lux
+++ b/stdlib/source/test/lux/control/continuation.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/function.lux b/stdlib/source/test/lux/control/function.lux
index 8669e4220..46836db21 100644
--- a/stdlib/source/test/lux/control/function.lux
+++ b/stdlib/source/test/lux/control/function.lux
@@ -5,7 +5,7 @@
[abstract
[equivalence (#+ Equivalence)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." monoid]]]
[data
["." text ("#!." equivalence)]]
diff --git a/stdlib/source/test/lux/control/function/mixin.lux b/stdlib/source/test/lux/control/function/mixin.lux
index a74ca04d4..339216526 100644
--- a/stdlib/source/test/lux/control/function/mixin.lux
+++ b/stdlib/source/test/lux/control/function/mixin.lux
@@ -6,7 +6,7 @@
[equivalence (#+ Equivalence)]
[predicate (#+ Predicate)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." monoid]]]
[control
["." state (#+ State)]]
diff --git a/stdlib/source/test/lux/control/io.lux b/stdlib/source/test/lux/control/io.lux
index 1db7423e8..e101459c2 100644
--- a/stdlib/source/test/lux/control/io.lux
+++ b/stdlib/source/test/lux/control/io.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/parser.lux b/stdlib/source/test/lux/control/parser.lux
index ff8520b10..e9696fef8 100644
--- a/stdlib/source/test/lux/control/parser.lux
+++ b/stdlib/source/test/lux/control/parser.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
[equivalence (#+ Equivalence)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/reader.lux b/stdlib/source/test/lux/control/reader.lux
index b0edaa401..47ddbd8b2 100644
--- a/stdlib/source/test/lux/control/reader.lux
+++ b/stdlib/source/test/lux/control/reader.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux
index 2d2c5e1f9..fceb62bc7 100644
--- a/stdlib/source/test/lux/control/region.lux
+++ b/stdlib/source/test/lux/control/region.lux
@@ -9,7 +9,7 @@
[apply (#+ Apply)]
["." monad (#+ Monad do)]
["." enum]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/security/policy.lux b/stdlib/source/test/lux/control/security/policy.lux
index 87beb9a3a..577439ab5 100644
--- a/stdlib/source/test/lux/control/security/policy.lux
+++ b/stdlib/source/test/lux/control/security/policy.lux
@@ -5,7 +5,7 @@
[abstract
[hash (#+ Hash)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/state.lux b/stdlib/source/test/lux/control/state.lux
index 2c1541dbf..53622408d 100644
--- a/stdlib/source/test/lux/control/state.lux
+++ b/stdlib/source/test/lux/control/state.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/thread.lux b/stdlib/source/test/lux/control/thread.lux
index f3ad379dd..43d755145 100644
--- a/stdlib/source/test/lux/control/thread.lux
+++ b/stdlib/source/test/lux/control/thread.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/control/try.lux b/stdlib/source/test/lux/control/try.lux
index 9f131cffd..0872db2da 100644
--- a/stdlib/source/test/lux/control/try.lux
+++ b/stdlib/source/test/lux/control/try.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]
diff --git a/stdlib/source/test/lux/control/writer.lux b/stdlib/source/test/lux/control/writer.lux
index 8d440ddd0..51f2ea36d 100644
--- a/stdlib/source/test/lux/control/writer.lux
+++ b/stdlib/source/test/lux/control/writer.lux
@@ -6,7 +6,7 @@
[equivalence (#+ Equivalence)]
[monoid (#+ Monoid)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/data/binary.lux b/stdlib/source/test/lux/data/binary.lux
index 347d9080b..879c0c722 100644
--- a/stdlib/source/test/lux/data/binary.lux
+++ b/stdlib/source/test/lux/data/binary.lux
@@ -5,7 +5,7 @@
[abstract
["." monad (#+ do)]
["." enum]
- [\\spec
+ [\\specification
["$." equivalence]
["$." monoid]]]
[control
diff --git a/stdlib/source/test/lux/data/bit.lux b/stdlib/source/test/lux/data/bit.lux
index 499b32779..fda210668 100644
--- a/stdlib/source/test/lux/data/bit.lux
+++ b/stdlib/source/test/lux/data/bit.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." monoid]
diff --git a/stdlib/source/test/lux/data/collection/array.lux b/stdlib/source/test/lux/data/collection/array.lux
index 20d554bea..ccf1d3484 100644
--- a/stdlib/source/test/lux/data/collection/array.lux
+++ b/stdlib/source/test/lux/data/collection/array.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." monoid]
["$." fold]
diff --git a/stdlib/source/test/lux/data/collection/bits.lux b/stdlib/source/test/lux/data/collection/bits.lux
index f505b0fce..bc59e6b34 100644
--- a/stdlib/source/test/lux/data/collection/bits.lux
+++ b/stdlib/source/test/lux/data/collection/bits.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
["." predicate]
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random (#+ Random)]
diff --git a/stdlib/source/test/lux/data/collection/dictionary.lux b/stdlib/source/test/lux/data/collection/dictionary.lux
index c28ff6f51..c38df7030 100644
--- a/stdlib/source/test/lux/data/collection/dictionary.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary.lux
@@ -5,7 +5,7 @@
[abstract
[hash (#+ Hash)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." functor (#+ Injection)]]]
[control
diff --git a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
index 66d8098d3..bfa0175bb 100644
--- a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
@@ -6,7 +6,7 @@
[monad (#+ do)]
[equivalence (#+ Equivalence)]
[order (#+ Order)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[data
["." product]
diff --git a/stdlib/source/test/lux/data/collection/dictionary/plist.lux b/stdlib/source/test/lux/data/collection/dictionary/plist.lux
index 3d24c3943..450d3b733 100644
--- a/stdlib/source/test/lux/data/collection/dictionary/plist.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary/plist.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[data
["." bit ("#\." equivalence)]
diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux
index c46ccb681..5f1befd45 100644
--- a/stdlib/source/test/lux/data/collection/list.lux
+++ b/stdlib/source/test/lux/data/collection/list.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
["." enum]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." monoid]
diff --git a/stdlib/source/test/lux/data/collection/queue.lux b/stdlib/source/test/lux/data/collection/queue.lux
index 93dd8828f..3181c9bcc 100644
--- a/stdlib/source/test/lux/data/collection/queue.lux
+++ b/stdlib/source/test/lux/data/collection/queue.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." functor (#+ Injection)]]]
[data
diff --git a/stdlib/source/test/lux/data/collection/row.lux b/stdlib/source/test/lux/data/collection/row.lux
index 6f858efe6..6b7b09fdc 100644
--- a/stdlib/source/test/lux/data/collection/row.lux
+++ b/stdlib/source/test/lux/data/collection/row.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." monoid]
["$." fold]
diff --git a/stdlib/source/test/lux/data/collection/sequence.lux b/stdlib/source/test/lux/data/collection/sequence.lux
index bbac12c34..8a8adf0a0 100644
--- a/stdlib/source/test/lux/data/collection/sequence.lux
+++ b/stdlib/source/test/lux/data/collection/sequence.lux
@@ -6,7 +6,7 @@
[monad (#+ do)]
[equivalence (#+ Equivalence)]
["." enum]
- [\\spec
+ [\\specification
["$." functor]
["$." comonad]]]
[data
diff --git a/stdlib/source/test/lux/data/collection/set.lux b/stdlib/source/test/lux/data/collection/set.lux
index e543dce57..021df152d 100644
--- a/stdlib/source/test/lux/data/collection/set.lux
+++ b/stdlib/source/test/lux/data/collection/set.lux
@@ -5,7 +5,7 @@
[abstract
[hash (#+ Hash)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." monoid]]]
diff --git a/stdlib/source/test/lux/data/collection/set/multi.lux b/stdlib/source/test/lux/data/collection/set/multi.lux
index a6f95a3f0..1fd15a14f 100644
--- a/stdlib/source/test/lux/data/collection/set/multi.lux
+++ b/stdlib/source/test/lux/data/collection/set/multi.lux
@@ -6,7 +6,7 @@
[hash (#+ Hash)]
[monad (#+ do)]
["." predicate]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]]]
[data
diff --git a/stdlib/source/test/lux/data/collection/set/ordered.lux b/stdlib/source/test/lux/data/collection/set/ordered.lux
index 0a6b441b7..dd3ba8802 100644
--- a/stdlib/source/test/lux/data/collection/set/ordered.lux
+++ b/stdlib/source/test/lux/data/collection/set/ordered.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
[order (#+ Order)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[data
["." bit ("#\." equivalence)]
diff --git a/stdlib/source/test/lux/data/collection/stack.lux b/stdlib/source/test/lux/data/collection/stack.lux
index e671b3cee..c007ee050 100644
--- a/stdlib/source/test/lux/data/collection/stack.lux
+++ b/stdlib/source/test/lux/data/collection/stack.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." functor (#+ Injection)]]]
[data
diff --git a/stdlib/source/test/lux/data/collection/tree.lux b/stdlib/source/test/lux/data/collection/tree.lux
index ed27499c3..ff281844a 100644
--- a/stdlib/source/test/lux/data/collection/tree.lux
+++ b/stdlib/source/test/lux/data/collection/tree.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
["." monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." fold]
["$." functor]]]
diff --git a/stdlib/source/test/lux/data/collection/tree/zipper.lux b/stdlib/source/test/lux/data/collection/tree/zipper.lux
index b45e96213..06e53f225 100644
--- a/stdlib/source/test/lux/data/collection/tree/zipper.lux
+++ b/stdlib/source/test/lux/data/collection/tree/zipper.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." functor]
["$." comonad]]]
diff --git a/stdlib/source/test/lux/data/color.lux b/stdlib/source/test/lux/data/color.lux
index b218a15ed..578771b59 100644
--- a/stdlib/source/test/lux/data/color.lux
+++ b/stdlib/source/test/lux/data/color.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." monoid]]]
diff --git a/stdlib/source/test/lux/data/format/binary.lux b/stdlib/source/test/lux/data/format/binary.lux
index 3457833ae..547f90f63 100644
--- a/stdlib/source/test/lux/data/format/binary.lux
+++ b/stdlib/source/test/lux/data/format/binary.lux
@@ -5,7 +5,7 @@
[abstract
[equivalence (#+ Equivalence)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." monoid]]]
[data
["." binary ("#\." equivalence)]]
diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux
index 8fa74ed9e..9bd1c09b5 100644
--- a/stdlib/source/test/lux/data/format/json.lux
+++ b/stdlib/source/test/lux/data/format/json.lux
@@ -5,7 +5,7 @@
["." meta]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." codec]]]
[control
diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux
index 5e4585d7f..7c9267b16 100644
--- a/stdlib/source/test/lux/data/format/xml.lux
+++ b/stdlib/source/test/lux/data/format/xml.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ Monad do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." codec]]]
[control
diff --git a/stdlib/source/test/lux/data/identity.lux b/stdlib/source/test/lux/data/identity.lux
index c1359fd42..030d441b1 100644
--- a/stdlib/source/test/lux/data/identity.lux
+++ b/stdlib/source/test/lux/data/identity.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]
diff --git a/stdlib/source/test/lux/data/lazy.lux b/stdlib/source/test/lux/data/lazy.lux
index 9972de30d..0c93ae612 100644
--- a/stdlib/source/test/lux/data/lazy.lux
+++ b/stdlib/source/test/lux/data/lazy.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]
diff --git a/stdlib/source/test/lux/data/maybe.lux b/stdlib/source/test/lux/data/maybe.lux
index 51388c7a2..4f5accd9b 100644
--- a/stdlib/source/test/lux/data/maybe.lux
+++ b/stdlib/source/test/lux/data/maybe.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." monoid]
diff --git a/stdlib/source/test/lux/data/name.lux b/stdlib/source/test/lux/data/name.lux
index 958d236bf..e6f8b46c0 100644
--- a/stdlib/source/test/lux/data/name.lux
+++ b/stdlib/source/test/lux/data/name.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." order]
diff --git a/stdlib/source/test/lux/data/product.lux b/stdlib/source/test/lux/data/product.lux
index ed086d66a..fd361c2f6 100644
--- a/stdlib/source/test/lux/data/product.lux
+++ b/stdlib/source/test/lux/data/product.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random]
diff --git a/stdlib/source/test/lux/data/sum.lux b/stdlib/source/test/lux/data/sum.lux
index b06d4ea79..cff19b801 100644
--- a/stdlib/source/test/lux/data/sum.lux
+++ b/stdlib/source/test/lux/data/sum.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
pipe]
diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux
index 5b13a9076..73696ae46 100644
--- a/stdlib/source/test/lux/data/text.lux
+++ b/stdlib/source/test/lux/data/text.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." order]
diff --git a/stdlib/source/test/lux/data/text/encoding.lux b/stdlib/source/test/lux/data/text/encoding.lux
index 53bc78299..ea8605b82 100644
--- a/stdlib/source/test/lux/data/text/encoding.lux
+++ b/stdlib/source/test/lux/data/text/encoding.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." codec]]]
[control
["." try]]
diff --git a/stdlib/source/test/lux/data/text/encoding/utf8.lux b/stdlib/source/test/lux/data/text/encoding/utf8.lux
index 222e6e19b..a537a0277 100644
--- a/stdlib/source/test/lux/data/text/encoding/utf8.lux
+++ b/stdlib/source/test/lux/data/text/encoding/utf8.lux
@@ -3,7 +3,7 @@
[lux #*
["_" test (#+ Test)]
[abstract
- [\\spec
+ [\\specification
["$." codec]]]
[data
["." text]]
diff --git a/stdlib/source/test/lux/data/text/format.lux b/stdlib/source/test/lux/data/text/format.lux
index f35683b33..e7a34a90c 100644
--- a/stdlib/source/test/lux/data/text/format.lux
+++ b/stdlib/source/test/lux/data/text/format.lux
@@ -6,7 +6,7 @@
[monad (#+ do)]
[equivalence (#+ Equivalence)]
[functor
- [\\spec
+ [\\specification
["$." contravariant]]]]
[control
["." try]]
diff --git a/stdlib/source/test/lux/data/text/unicode/block.lux b/stdlib/source/test/lux/data/text/unicode/block.lux
index e4affc97a..3b1f3866c 100644
--- a/stdlib/source/test/lux/data/text/unicode/block.lux
+++ b/stdlib/source/test/lux/data/text/unicode/block.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." monoid]]]
diff --git a/stdlib/source/test/lux/data/text/unicode/set.lux b/stdlib/source/test/lux/data/text/unicode/set.lux
index 3ef15de08..e70816efe 100644
--- a/stdlib/source/test/lux/data/text/unicode/set.lux
+++ b/stdlib/source/test/lux/data/text/unicode/set.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[data
["." product]
diff --git a/stdlib/source/test/lux/ffi.lua.lux b/stdlib/source/test/lux/ffi.lua.lux
index c8d4ea6d5..a1f181edc 100644
--- a/stdlib/source/test/lux/ffi.lua.lux
+++ b/stdlib/source/test/lux/ffi.lua.lux
@@ -5,21 +5,57 @@
[abstract
[monad (#+ do)]]
[control
- ["." try]]
- [data
- ["." text ("#\." equivalence)]]
+ ["." io]]
[math
- ["." random (#+ Random)]
+ ["." random]
[number
- ["." nat]
- ["." frac]]]]]
+ ["i" int]]]]]
[\\library
["." /]])
+(/.import: (os/getenv [/.String] #io #? /.String))
+
(def: #export test
Test
(do {! random.monad}
- []
+ [boolean random.bit
+ integer random.int
+ float random.frac
+ string (random.ascii/lower 1)]
(<| (_.covering /._)
- (_.test "TBD"
- true))))
+ (`` ($_ _.and
+ (~~ (template [<type> <sample>]
+ [(_.cover [<type>]
+ (exec
+ (: <type> <sample>)
+ true))]
+
+ [/.Boolean boolean]
+ [/.Integer integer]
+ [/.Float float]
+ [/.String string]
+ ))
+ (_.for [/.Object]
+ ($_ _.and
+ (~~ (template [<type>]
+ [(_.cover [<type>]
+ (exec
+ (|> []
+ (:as <type>)
+ (: (Ex [a] (/.Object a))))
+ true))]
+
+ [/.Nil]
+ [/.Table]
+ ))))
+ (_.cover [/.Function /.closure]
+ (exec
+ (|> (/.closure [input/0] input/0)
+ (: /.Function)
+ (: (Ex [a] (/.Object a))))
+ true))
+ (_.cover [/.import:]
+ (case (io.run (..os/getenv string))
+ (#.Some _) true
+ #.None true))
+ )))))
diff --git a/stdlib/source/test/lux/locale.lux b/stdlib/source/test/lux/locale.lux
index 54b29cff7..3bb0be6ab 100644
--- a/stdlib/source/test/lux/locale.lux
+++ b/stdlib/source/test/lux/locale.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]]]
[math
diff --git a/stdlib/source/test/lux/locale/language.lux b/stdlib/source/test/lux/locale/language.lux
index 39bc71aae..19bdd5f25 100644
--- a/stdlib/source/test/lux/locale/language.lux
+++ b/stdlib/source/test/lux/locale/language.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
[hash (#+ Hash)]
- [\\spec
+ [\\specification
["$." hash]]]
[data
["." maybe]
diff --git a/stdlib/source/test/lux/locale/territory.lux b/stdlib/source/test/lux/locale/territory.lux
index fadbe2890..0d2b463c6 100644
--- a/stdlib/source/test/lux/locale/territory.lux
+++ b/stdlib/source/test/lux/locale/territory.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
[hash (#+ Hash)]
- [\\spec
+ [\\specification
["$." hash]]]
[data
["." maybe]
diff --git a/stdlib/source/test/lux/macro/code.lux b/stdlib/source/test/lux/macro/code.lux
index 576ccb54a..8a037cc08 100644
--- a/stdlib/source/test/lux/macro/code.lux
+++ b/stdlib/source/test/lux/macro/code.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try (#+ Try)]]
diff --git a/stdlib/source/test/lux/macro/poly/equivalence.lux b/stdlib/source/test/lux/macro/poly/equivalence.lux
index c8cd7c7bf..6682c2375 100644
--- a/stdlib/source/test/lux/macro/poly/equivalence.lux
+++ b/stdlib/source/test/lux/macro/poly/equivalence.lux
@@ -8,7 +8,7 @@
[equivalence (#+ Equivalence)
[\\poly
["." /]]]
- [\\spec
+ [\\specification
["$." equivalence]]]
[data
["." bit]
diff --git a/stdlib/source/test/lux/macro/poly/json.lux b/stdlib/source/test/lux/macro/poly/json.lux
index e369dac92..4137ad271 100644
--- a/stdlib/source/test/lux/macro/poly/json.lux
+++ b/stdlib/source/test/lux/macro/poly/json.lux
@@ -8,7 +8,7 @@
[monad (#+ do)]
["." equivalence (#+ Equivalence)
["poly/#" \\poly]]
- [\\spec
+ [\\specification
["$." equivalence]
["$." codec]]]
[control
diff --git a/stdlib/source/test/lux/macro/syntax/annotations.lux b/stdlib/source/test/lux/macro/syntax/annotations.lux
index 00d71c949..cd6396535 100644
--- a/stdlib/source/test/lux/macro/syntax/annotations.lux
+++ b/stdlib/source/test/lux/macro/syntax/annotations.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try]
diff --git a/stdlib/source/test/lux/macro/syntax/check.lux b/stdlib/source/test/lux/macro/syntax/check.lux
index 626471c73..36ad565a2 100644
--- a/stdlib/source/test/lux/macro/syntax/check.lux
+++ b/stdlib/source/test/lux/macro/syntax/check.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try]
diff --git a/stdlib/source/test/lux/macro/syntax/declaration.lux b/stdlib/source/test/lux/macro/syntax/declaration.lux
index 761ba87cc..0d1e61874 100644
--- a/stdlib/source/test/lux/macro/syntax/declaration.lux
+++ b/stdlib/source/test/lux/macro/syntax/declaration.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try]
diff --git a/stdlib/source/test/lux/macro/syntax/definition.lux b/stdlib/source/test/lux/macro/syntax/definition.lux
index c98b1e853..e6acc2847 100644
--- a/stdlib/source/test/lux/macro/syntax/definition.lux
+++ b/stdlib/source/test/lux/macro/syntax/definition.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try]
diff --git a/stdlib/source/test/lux/macro/syntax/input.lux b/stdlib/source/test/lux/macro/syntax/input.lux
index 34357f79a..e292cde72 100644
--- a/stdlib/source/test/lux/macro/syntax/input.lux
+++ b/stdlib/source/test/lux/macro/syntax/input.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try]
diff --git a/stdlib/source/test/lux/macro/syntax/type/variable.lux b/stdlib/source/test/lux/macro/syntax/type/variable.lux
index 8ff84f36f..18197bf3e 100644
--- a/stdlib/source/test/lux/macro/syntax/type/variable.lux
+++ b/stdlib/source/test/lux/macro/syntax/type/variable.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
["." try ("#\." functor)]
diff --git a/stdlib/source/test/lux/math.lux b/stdlib/source/test/lux/math.lux
index a43d63a2b..db314f400 100644
--- a/stdlib/source/test/lux/math.lux
+++ b/stdlib/source/test/lux/math.lux
@@ -77,6 +77,17 @@
(let [round'd (/.round sample)]
(and (|> round'd f.int i.frac (f.= round'd))
(f.<= +1.0 (f.abs (f.- sample round'd))))))
+ (_.cover [/.root/2]
+ (let [sample (f.abs sample)]
+ (|> sample
+ /.root/2
+ (/.pow +2.0)
+ (f.approximately? ..margin_of_error sample))))
+ (_.cover [/.root/3]
+ (|> sample
+ /.root/3
+ (/.pow +3.0)
+ (f.approximately? ..margin_of_error sample)))
))
(do {! random.monad}
[#let [~= (f.approximately? ..margin_of_error)]
diff --git a/stdlib/source/test/lux/math/logic/continuous.lux b/stdlib/source/test/lux/math/logic/continuous.lux
index 5ff4c46cc..ab7049221 100644
--- a/stdlib/source/test/lux/math/logic/continuous.lux
+++ b/stdlib/source/test/lux/math/logic/continuous.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." monoid]]]
[math
["." random]
diff --git a/stdlib/source/test/lux/math/logic/fuzzy.lux b/stdlib/source/test/lux/math/logic/fuzzy.lux
index ea39da68a..657285025 100644
--- a/stdlib/source/test/lux/math/logic/fuzzy.lux
+++ b/stdlib/source/test/lux/math/logic/fuzzy.lux
@@ -5,7 +5,7 @@
[abstract
[equivalence (#+ Equivalence)]
[monad (#+ do)]
- [\\spec
+ [\\specification
[functor
["$." contravariant]]]]
[data
diff --git a/stdlib/source/test/lux/math/modular.lux b/stdlib/source/test/lux/math/modular.lux
index 5322b162b..090481806 100644
--- a/stdlib/source/test/lux/math/modular.lux
+++ b/stdlib/source/test/lux/math/modular.lux
@@ -6,7 +6,7 @@
[abstract
[monad (#+ do)]
["." predicate]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." monoid]
diff --git a/stdlib/source/test/lux/math/number/complex.lux b/stdlib/source/test/lux/math/number/complex.lux
index 2670d53dc..cd4f1146c 100644
--- a/stdlib/source/test/lux/math/number/complex.lux
+++ b/stdlib/source/test/lux/math/number/complex.lux
@@ -5,7 +5,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." codec]]]
diff --git a/stdlib/source/test/lux/math/number/frac.lux b/stdlib/source/test/lux/math/number/frac.lux
index 093511510..9a5133a97 100644
--- a/stdlib/source/test/lux/math/number/frac.lux
+++ b/stdlib/source/test/lux/math/number/frac.lux
@@ -6,7 +6,7 @@
["." ffi]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." order]
diff --git a/stdlib/source/test/lux/math/number/i16.lux b/stdlib/source/test/lux/math/number/i16.lux
index 4720a13b7..5a9e36f88 100644
--- a/stdlib/source/test/lux/math/number/i16.lux
+++ b/stdlib/source/test/lux/math/number/i16.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random (#+ Random)]]]]
diff --git a/stdlib/source/test/lux/math/number/i32.lux b/stdlib/source/test/lux/math/number/i32.lux
index 66d65fa40..4cced31ad 100644
--- a/stdlib/source/test/lux/math/number/i32.lux
+++ b/stdlib/source/test/lux/math/number/i32.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random (#+ Random)]]]]
diff --git a/stdlib/source/test/lux/math/number/i64.lux b/stdlib/source/test/lux/math/number/i64.lux
index 942930af0..94260d6ee 100644
--- a/stdlib/source/test/lux/math/number/i64.lux
+++ b/stdlib/source/test/lux/math/number/i64.lux
@@ -6,7 +6,7 @@
["." bit ("#\." equivalence)]]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." monoid]]]
diff --git a/stdlib/source/test/lux/math/number/i8.lux b/stdlib/source/test/lux/math/number/i8.lux
index c5fee1fcf..8b454883d 100644
--- a/stdlib/source/test/lux/math/number/i8.lux
+++ b/stdlib/source/test/lux/math/number/i8.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[math
["." random (#+ Random)]]]]
diff --git a/stdlib/source/test/lux/math/number/int.lux b/stdlib/source/test/lux/math/number/int.lux
index 47e381985..9b650e795 100644
--- a/stdlib/source/test/lux/math/number/int.lux
+++ b/stdlib/source/test/lux/math/number/int.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." order]
diff --git a/stdlib/source/test/lux/math/number/nat.lux b/stdlib/source/test/lux/math/number/nat.lux
index ff3eb64d1..9577b25db 100644
--- a/stdlib/source/test/lux/math/number/nat.lux
+++ b/stdlib/source/test/lux/math/number/nat.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." order]
diff --git a/stdlib/source/test/lux/math/number/ratio.lux b/stdlib/source/test/lux/math/number/ratio.lux
index 838e8ca81..0d67d6f69 100644
--- a/stdlib/source/test/lux/math/number/ratio.lux
+++ b/stdlib/source/test/lux/math/number/ratio.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." monoid]
diff --git a/stdlib/source/test/lux/math/number/rev.lux b/stdlib/source/test/lux/math/number/rev.lux
index 70ab24c61..1a2eb29e5 100644
--- a/stdlib/source/test/lux/math/number/rev.lux
+++ b/stdlib/source/test/lux/math/number/rev.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." order]
diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux
index 3b3bf1ae2..9276f4a18 100644
--- a/stdlib/source/test/lux/meta.lux
+++ b/stdlib/source/test/lux/meta.lux
@@ -6,7 +6,7 @@
[abstract
[equivalence (#+ Equivalence)]
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/meta/location.lux b/stdlib/source/test/lux/meta/location.lux
index 2aaa797a0..421c872dd 100644
--- a/stdlib/source/test/lux/meta/location.lux
+++ b/stdlib/source/test/lux/meta/location.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[data
["." text]]
diff --git a/stdlib/source/test/lux/test.lux b/stdlib/source/test/lux/test.lux
index 9c3e0f506..d7c05641c 100644
--- a/stdlib/source/test/lux/test.lux
+++ b/stdlib/source/test/lux/test.lux
@@ -12,7 +12,8 @@
[data
["." text ("#\." equivalence)]
[collection
- ["." list]]]
+ ["." list]
+ ["." set]]]
[math
["." random]
[number
@@ -162,6 +163,58 @@
ran_all_tests!))))))
))
+(def: #export dummy_target
+ "YOLO")
+
+(def: coverage
+ /.Test
+ ($_ /.and
+ (do random.monad
+ [not_covering (/.test "" true)
+ covering (/.covering .._ (/.test "" true))]
+ (wrap (do promise.monad
+ [[not_covering _] not_covering
+ [covering _] covering]
+ (/.cover' [/.covering]
+ (and (and (set.empty? (get@ #/.expected_coverage not_covering))
+ (set.empty? (get@ #/.actual_coverage not_covering)))
+ (and (not (set.empty? (get@ #/.expected_coverage covering)))
+ (set.empty? (get@ #/.actual_coverage covering))))))))
+ (do random.monad
+ [not_covering (/.covering .._ (/.test "" true))
+ covering (/.covering .._ (/.cover [..dummy_target] true))]
+ (wrap (do promise.monad
+ [[not_covering _] not_covering
+ [covering _] covering]
+ (/.cover' [/.cover]
+ (and (and (not (set.empty? (get@ #/.expected_coverage not_covering)))
+ (not (set.member? (get@ #/.actual_coverage not_covering) (name_of ..dummy_target))))
+ (and (not (set.empty? (get@ #/.expected_coverage covering)))
+ (set.member? (get@ #/.actual_coverage covering) (name_of ..dummy_target))))))))
+ (do random.monad
+ [not_covering (/.covering .._ (/.test "" true))
+ covering (/.covering .._ (wrap (/.cover' [..dummy_target] true)))]
+ (wrap (do promise.monad
+ [[not_covering _] not_covering
+ [covering _] covering]
+ (/.cover' [/.cover']
+ (and (and (not (set.empty? (get@ #/.expected_coverage not_covering)))
+ (not (set.member? (get@ #/.actual_coverage not_covering) (name_of ..dummy_target))))
+ (and (not (set.empty? (get@ #/.expected_coverage covering)))
+ (set.member? (get@ #/.actual_coverage covering) (name_of ..dummy_target))))))))
+ (do random.monad
+ [not_covering (/.covering .._ (/.test "" true))
+ covering (/.covering .._ (/.for [..dummy_target] (/.test "" true)))]
+ (wrap (do promise.monad
+ [[not_covering _] not_covering
+ [covering _] covering]
+ (/.cover' [/.for]
+ (and (and (not (set.empty? (get@ #/.expected_coverage not_covering)))
+ (not (set.member? (get@ #/.actual_coverage not_covering) (name_of ..dummy_target))))
+ (and (not (set.empty? (get@ #/.expected_coverage covering)))
+ (set.member? (get@ #/.actual_coverage covering) (name_of ..dummy_target))))))))
+ ))
+
(def: #export test
/.Test
(<| (/.covering /._)
@@ -247,4 +300,5 @@
(n.= 1 (get@ #/.failures failure_tally))))))))
..times
..in_parallel
+ ..coverage
))))
diff --git a/stdlib/source/test/lux/time.lux b/stdlib/source/test/lux/time.lux
index 17b17c61a..77933544c 100644
--- a/stdlib/source/test/lux/time.lux
+++ b/stdlib/source/test/lux/time.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." enum]
diff --git a/stdlib/source/test/lux/time/date.lux b/stdlib/source/test/lux/time/date.lux
index cb9d46978..cb8ab50c8 100644
--- a/stdlib/source/test/lux/time/date.lux
+++ b/stdlib/source/test/lux/time/date.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." enum]
diff --git a/stdlib/source/test/lux/time/day.lux b/stdlib/source/test/lux/time/day.lux
index d2499309b..03544b180 100644
--- a/stdlib/source/test/lux/time/day.lux
+++ b/stdlib/source/test/lux/time/day.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." enum]
diff --git a/stdlib/source/test/lux/time/duration.lux b/stdlib/source/test/lux/time/duration.lux
index a3014cc1a..1d2fa1ce7 100644
--- a/stdlib/source/test/lux/time/duration.lux
+++ b/stdlib/source/test/lux/time/duration.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." enum]
diff --git a/stdlib/source/test/lux/time/instant.lux b/stdlib/source/test/lux/time/instant.lux
index 6fef2f55e..377a47db1 100644
--- a/stdlib/source/test/lux/time/instant.lux
+++ b/stdlib/source/test/lux/time/instant.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." enum]
diff --git a/stdlib/source/test/lux/time/month.lux b/stdlib/source/test/lux/time/month.lux
index 202048cac..d6f124244 100644
--- a/stdlib/source/test/lux/time/month.lux
+++ b/stdlib/source/test/lux/time/month.lux
@@ -5,7 +5,7 @@
[abstract
[monad (#+ do)]
["." predicate]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]
["$." order]
diff --git a/stdlib/source/test/lux/time/year.lux b/stdlib/source/test/lux/time/year.lux
index ba364eaab..b1e2691db 100644
--- a/stdlib/source/test/lux/time/year.lux
+++ b/stdlib/source/test/lux/time/year.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." codec]]]
diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/type.lux
index 3a01acaab..b6c24bde2 100644
--- a/stdlib/source/test/lux/type.lux
+++ b/stdlib/source/test/lux/type.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
["." monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[control
[pipe (#+ case>)]]
diff --git a/stdlib/source/test/lux/type/check.lux b/stdlib/source/test/lux/type/check.lux
index 949009d5b..40079eae9 100644
--- a/stdlib/source/test/lux/type/check.lux
+++ b/stdlib/source/test/lux/type/check.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
["." monad (#+ do)]
- [\\spec
+ [\\specification
["$." functor (#+ Injection Comparison)]
["$." apply]
["$." monad]]]
diff --git a/stdlib/source/test/lux/type/quotient.lux b/stdlib/source/test/lux/type/quotient.lux
index 11d711ac7..5d39b91f2 100644
--- a/stdlib/source/test/lux/type/quotient.lux
+++ b/stdlib/source/test/lux/type/quotient.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
["." monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]]]
[data
["." text ("#\." equivalence)
diff --git a/stdlib/source/test/lux/type/unit.lux b/stdlib/source/test/lux/type/unit.lux
index 6789d7b65..1bed08707 100644
--- a/stdlib/source/test/lux/type/unit.lux
+++ b/stdlib/source/test/lux/type/unit.lux
@@ -7,7 +7,7 @@
[abstract
[monad (#+ do)]
[equivalence (#+ Equivalence)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." order]
["$." enum]]]
diff --git a/stdlib/source/test/lux/world/console.lux b/stdlib/source/test/lux/world/console.lux
index 055ee1466..c34a5c488 100644
--- a/stdlib/source/test/lux/world/console.lux
+++ b/stdlib/source/test/lux/world/console.lux
@@ -15,7 +15,7 @@
["." random]]]]
[\\library
["." /]]
- [\\spec
+ [\\specification
["$." /]])
(exception: dead)
diff --git a/stdlib/source/test/lux/world/file.lux b/stdlib/source/test/lux/world/file.lux
index 1074749f4..ecc596399 100644
--- a/stdlib/source/test/lux/world/file.lux
+++ b/stdlib/source/test/lux/world/file.lux
@@ -12,7 +12,7 @@
["#." watch]]
[\\library
["." /]]
- [\\spec
+ [\\specification
["$." /]])
(def: #export test
diff --git a/stdlib/source/test/lux/world/file/watch.lux b/stdlib/source/test/lux/world/file/watch.lux
index a4a8748ed..bbbcdf680 100644
--- a/stdlib/source/test/lux/world/file/watch.lux
+++ b/stdlib/source/test/lux/world/file/watch.lux
@@ -183,4 +183,17 @@
after_deletion!)))]
(_.cover' [/.mock /.polling]
(try.default false verdict)))))
+ (do random.monad
+ [directory (random.ascii/alpha 5)
+ #let [/ "/"
+ [fs watcher] (/.mock /)]]
+ (wrap (do promise.monad
+ [started? ( \ watcher start /.all directory)]
+ (_.cover' [/.cannot_poll_a_non_existent_directory]
+ (case started?
+ (#try.Success _)
+ false
+
+ (#try.Failure error)
+ (exception.match? /.cannot_poll_a_non_existent_directory error))))))
)))
diff --git a/stdlib/source/test/lux/world/output/video/resolution.lux b/stdlib/source/test/lux/world/output/video/resolution.lux
index 1cfcd0ae8..671b1952c 100644
--- a/stdlib/source/test/lux/world/output/video/resolution.lux
+++ b/stdlib/source/test/lux/world/output/video/resolution.lux
@@ -4,7 +4,7 @@
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
- [\\spec
+ [\\specification
["$." equivalence]
["$." hash]]]
[data
diff --git a/stdlib/source/test/lux/world/program.lux b/stdlib/source/test/lux/world/program.lux
index fafda5f91..0028cfe9c 100644
--- a/stdlib/source/test/lux/world/program.lux
+++ b/stdlib/source/test/lux/world/program.lux
@@ -25,7 +25,7 @@
["." /
[//
[file (#+ Path)]]]]
- [\\spec
+ [\\specification
["$." /]])
(def: (environment env_size)
diff --git a/stdlib/source/test/lux/world/shell.lux b/stdlib/source/test/lux/world/shell.lux
index 8d117eefa..749441a7a 100644
--- a/stdlib/source/test/lux/world/shell.lux
+++ b/stdlib/source/test/lux/world/shell.lux
@@ -25,7 +25,7 @@
["." /
[//
[file (#+ Path)]]]]
- [\\spec
+ [\\specification
["$." /]])
(exception: dead)