diff options
Diffstat (limited to '')
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) |