aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--documentation/bookmark/concurrency/crdt_conflict_free_replicated_data_types.md5
-rw-r--r--licentia/source/program/licentia/document.lux4
-rw-r--r--licentia/source/program/licentia/license/black_list.lux2
-rw-r--r--licentia/source/program/licentia/license/notice.lux2
-rw-r--r--licentia/source/program/licentia/output.lux4
-rw-r--r--lux-cl/source/program.lux4
-rw-r--r--lux-js/source/program.lux14
-rw-r--r--lux-jvm/source/luxc/lang/directive/jvm.lux38
-rw-r--r--lux-jvm/source/luxc/lang/host/jvm/def.lux8
-rw-r--r--lux-jvm/source/luxc/lang/host/jvm/inst.lux6
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux2
-rw-r--r--lux-jvm/source/program.lux4
-rw-r--r--lux-jvm/test/test/luxc/lang/translation/jvm.lux4
-rw-r--r--lux-lua/source/program.lux26
-rw-r--r--lux-mode/lux-mode.el2
-rw-r--r--lux-php/source/program.lux18
-rw-r--r--lux-python/source/program.lux8
-rw-r--r--lux-r/source/program.lux4
-rw-r--r--lux-ruby/source/program.lux8
-rw-r--r--lux-scheme/source/program.lux10
-rw-r--r--stdlib/source/documentation/lux.lux7
-rw-r--r--stdlib/source/documentation/lux/abstract.lux43
-rw-r--r--stdlib/source/documentation/lux/abstract/apply.lux5
-rw-r--r--stdlib/source/documentation/lux/abstract/codec.lux13
-rw-r--r--stdlib/source/documentation/lux/abstract/comonad.lux1
-rw-r--r--stdlib/source/documentation/lux/abstract/comonad/cofree.lux1
-rw-r--r--stdlib/source/documentation/lux/abstract/enum.lux1
-rw-r--r--stdlib/source/documentation/lux/abstract/equivalence.lux1
-rw-r--r--stdlib/source/documentation/lux/abstract/fold.lux24
-rw-r--r--stdlib/source/documentation/lux/abstract/functor.lux5
-rw-r--r--stdlib/source/documentation/lux/abstract/functor/contravariant.lux1
-rw-r--r--stdlib/source/documentation/lux/abstract/hash.lux20
-rw-r--r--stdlib/source/documentation/lux/abstract/interval.lux57
-rw-r--r--stdlib/source/documentation/lux/abstract/monad.lux1
-rw-r--r--stdlib/source/documentation/lux/abstract/monad/free.lux1
-rw-r--r--stdlib/source/documentation/lux/abstract/monoid.lux21
-rw-r--r--stdlib/source/documentation/lux/abstract/order.lux48
-rw-r--r--stdlib/source/documentation/lux/abstract/predicate.lux50
-rw-r--r--stdlib/source/documentation/lux/control.lux61
-rw-r--r--stdlib/source/documentation/lux/control/concatenative.lux288
-rw-r--r--stdlib/source/documentation/lux/control/concurrency.lux28
-rw-r--r--stdlib/source/documentation/lux/control/concurrency/actor.lux131
-rw-r--r--stdlib/source/documentation/lux/control/concurrency/async.lux96
-rw-r--r--stdlib/source/documentation/lux/control/concurrency/atom.lux39
-rw-r--r--stdlib/source/documentation/lux/control/concurrency/frp.lux66
-rw-r--r--stdlib/source/documentation/lux/control/concurrency/semaphore.lux69
-rw-r--r--stdlib/source/documentation/lux/control/concurrency/stm.lux52
-rw-r--r--stdlib/source/documentation/lux/control/concurrency/thread.lux26
-rw-r--r--stdlib/source/documentation/lux/control/continuation.lux53
-rw-r--r--stdlib/source/documentation/lux/control/exception.lux78
-rw-r--r--stdlib/source/documentation/lux/control/function.lux48
-rw-r--r--stdlib/source/documentation/lux/control/io.lux36
-rw-r--r--stdlib/source/documentation/lux/control/lazy.lux32
-rw-r--r--stdlib/source/documentation/lux/control/maybe.lux57
-rw-r--r--stdlib/source/library/lux.lux76
-rw-r--r--stdlib/source/library/lux/abstract/apply.lux5
-rw-r--r--stdlib/source/library/lux/abstract/codec.lux2
-rw-r--r--stdlib/source/library/lux/abstract/fold.lux2
-rw-r--r--stdlib/source/library/lux/abstract/functor.lux2
-rw-r--r--stdlib/source/library/lux/abstract/functor/contravariant.lux2
-rw-r--r--stdlib/source/library/lux/abstract/hash.lux2
-rw-r--r--stdlib/source/library/lux/abstract/interval.lux6
-rw-r--r--stdlib/source/library/lux/abstract/monoid.lux2
-rw-r--r--stdlib/source/library/lux/abstract/order.lux9
-rw-r--r--stdlib/source/library/lux/abstract/predicate.lux17
-rw-r--r--stdlib/source/library/lux/control/concatenative.lux93
-rw-r--r--stdlib/source/library/lux/control/concurrency/actor.lux239
-rw-r--r--stdlib/source/library/lux/control/concurrency/async.lux21
-rw-r--r--stdlib/source/library/lux/control/concurrency/atom.lux9
-rw-r--r--stdlib/source/library/lux/control/concurrency/frp.lux9
-rw-r--r--stdlib/source/library/lux/control/concurrency/semaphore.lux41
-rw-r--r--stdlib/source/library/lux/control/concurrency/stm.lux9
-rw-r--r--stdlib/source/library/lux/control/concurrency/thread.lux2
-rw-r--r--stdlib/source/library/lux/control/continuation.lux32
-rw-r--r--stdlib/source/library/lux/control/exception.lux34
-rw-r--r--stdlib/source/library/lux/control/function.lux18
-rw-r--r--stdlib/source/library/lux/control/io.lux8
-rw-r--r--stdlib/source/library/lux/control/lazy.lux4
-rw-r--r--stdlib/source/library/lux/control/maybe.lux26
-rw-r--r--stdlib/source/library/lux/control/parser.lux2
-rw-r--r--stdlib/source/library/lux/control/parser/analysis.lux3
-rw-r--r--stdlib/source/library/lux/control/parser/binary.lux6
-rw-r--r--stdlib/source/library/lux/control/parser/cli.lux4
-rw-r--r--stdlib/source/library/lux/control/parser/code.lux14
-rw-r--r--stdlib/source/library/lux/control/parser/text.lux6
-rw-r--r--stdlib/source/library/lux/control/parser/type.lux2
-rw-r--r--stdlib/source/library/lux/control/reader.lux8
-rw-r--r--stdlib/source/library/lux/control/region.lux2
-rw-r--r--stdlib/source/library/lux/control/state.lux2
-rw-r--r--stdlib/source/library/lux/control/try.lux4
-rw-r--r--stdlib/source/library/lux/control/writer.lux6
-rw-r--r--stdlib/source/library/lux/data/bit.lux2
-rw-r--r--stdlib/source/library/lux/data/collection/dictionary/ordered.lux2
-rw-r--r--stdlib/source/library/lux/data/collection/list.lux8
-rw-r--r--stdlib/source/library/lux/data/collection/row.lux12
-rw-r--r--stdlib/source/library/lux/data/collection/sequence.lux18
-rw-r--r--stdlib/source/library/lux/data/format/binary.lux14
-rw-r--r--stdlib/source/library/lux/data/format/css.lux6
-rw-r--r--stdlib/source/library/lux/data/format/css/value.lux16
-rw-r--r--stdlib/source/library/lux/data/format/html.lux4
-rw-r--r--stdlib/source/library/lux/data/format/json.lux6
-rw-r--r--stdlib/source/library/lux/data/format/markdown.lux6
-rw-r--r--stdlib/source/library/lux/data/format/tar.lux38
-rw-r--r--stdlib/source/library/lux/data/format/xml.lux4
-rw-r--r--stdlib/source/library/lux/data/text.lux2
-rw-r--r--stdlib/source/library/lux/data/text/escape.lux6
-rw-r--r--stdlib/source/library/lux/data/text/format.lux2
-rw-r--r--stdlib/source/library/lux/data/text/regex.lux10
-rw-r--r--stdlib/source/library/lux/data/text/unicode/set.lux8
-rw-r--r--stdlib/source/library/lux/debug.lux2
-rw-r--r--stdlib/source/library/lux/documentation.lux32
-rw-r--r--stdlib/source/library/lux/extension.lux48
-rw-r--r--stdlib/source/library/lux/ffi.jvm.lux16
-rw-r--r--stdlib/source/library/lux/ffi.old.lux20
-rw-r--r--stdlib/source/library/lux/macro/syntax.lux2
-rw-r--r--stdlib/source/library/lux/macro/syntax/definition.lux4
-rw-r--r--stdlib/source/library/lux/macro/template.lux8
-rw-r--r--stdlib/source/library/lux/math/modulus.lux4
-rw-r--r--stdlib/source/library/lux/math/number/frac.lux2
-rw-r--r--stdlib/source/library/lux/math/number/i16.lux2
-rw-r--r--stdlib/source/library/lux/math/number/i32.lux2
-rw-r--r--stdlib/source/library/lux/math/number/i64.lux2
-rw-r--r--stdlib/source/library/lux/math/number/i8.lux2
-rw-r--r--stdlib/source/library/lux/meta.lux10
-rw-r--r--stdlib/source/library/lux/target/common_lisp.lux6
-rw-r--r--stdlib/source/library/lux/target/js.lux16
-rw-r--r--stdlib/source/library/lux/target/jvm/attribute.lux4
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode.lux42
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode/address.lux2
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux6
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux2
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode/instruction.lux46
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode/jump.lux4
-rw-r--r--stdlib/source/library/lux/target/jvm/constant/pool.lux2
-rw-r--r--stdlib/source/library/lux/target/jvm/constant/tag.lux2
-rw-r--r--stdlib/source/library/lux/target/jvm/encoding/signed.lux4
-rw-r--r--stdlib/source/library/lux/target/jvm/encoding/unsigned.lux4
-rw-r--r--stdlib/source/library/lux/target/jvm/magic.lux4
-rw-r--r--stdlib/source/library/lux/target/jvm/modifier.lux2
-rw-r--r--stdlib/source/library/lux/target/jvm/type/alias.lux2
-rw-r--r--stdlib/source/library/lux/target/jvm/type/descriptor.lux4
-rw-r--r--stdlib/source/library/lux/target/jvm/type/parser.lux8
-rw-r--r--stdlib/source/library/lux/target/jvm/type/signature.lux8
-rw-r--r--stdlib/source/library/lux/target/jvm/version.lux8
-rw-r--r--stdlib/source/library/lux/target/lua.lux14
-rw-r--r--stdlib/source/library/lux/target/php.lux10
-rw-r--r--stdlib/source/library/lux/target/python.lux16
-rw-r--r--stdlib/source/library/lux/target/r.lux16
-rw-r--r--stdlib/source/library/lux/target/ruby.lux18
-rw-r--r--stdlib/source/library/lux/target/scheme.lux6
-rw-r--r--stdlib/source/library/lux/test.lux10
-rw-r--r--stdlib/source/library/lux/time.lux2
-rw-r--r--stdlib/source/library/lux/time/date.lux12
-rw-r--r--stdlib/source/library/lux/time/instant.lux2
-rw-r--r--stdlib/source/library/lux/time/year.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/default/init.lux32
-rw-r--r--stdlib/source/library/lux/tool/compiler/default/platform.lux28
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/directive.lux12
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/inference.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/module.lux26
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/reference.lux10
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/scope.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/structure.lux31
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/type.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/directive.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux84
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux10
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux76
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux46
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux72
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/case.lux36
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function.lux18
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial/count.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/apply.lux20
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/init.lux10
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/new.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/reset.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/loop.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/program.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/reference.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/runtime.lux78
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/value.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/variable.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux14
-rw-r--r--stdlib/source/library/lux/tool/compiler/phase.lux6
-rw-r--r--stdlib/source/library/lux/tool/interpreter.lux10
-rw-r--r--stdlib/source/library/lux/type.lux38
-rw-r--r--stdlib/source/library/lux/type/abstract.lux6
-rw-r--r--stdlib/source/library/lux/type/implicit.lux6
-rw-r--r--stdlib/source/library/lux/type/poly.lux (renamed from stdlib/source/library/lux/macro/poly.lux)4
-rw-r--r--stdlib/source/library/lux/type/refinement.lux2
-rw-r--r--stdlib/source/library/lux/type/resource.lux2
-rw-r--r--stdlib/source/library/lux/world/db/sql.lux10
-rw-r--r--stdlib/source/library/lux/world/net/http/request.lux2
-rw-r--r--stdlib/source/library/lux/world/net/http/route.lux2
-rw-r--r--stdlib/source/library/lux/world/program.lux2
-rw-r--r--stdlib/source/poly/lux/abstract/equivalence.lux4
-rw-r--r--stdlib/source/poly/lux/abstract/functor.lux8
-rw-r--r--stdlib/source/poly/lux/data/format/json.lux6
-rw-r--r--stdlib/source/program/aedifex/artifact.lux2
-rw-r--r--stdlib/source/program/aedifex/artifact/time/date.lux6
-rw-r--r--stdlib/source/program/aedifex/artifact/time/time.lux10
-rw-r--r--stdlib/source/program/aedifex/command/build.lux2
-rw-r--r--stdlib/source/program/aedifex/metadata/artifact.lux16
-rw-r--r--stdlib/source/program/aedifex/pom.lux2
-rw-r--r--stdlib/source/program/compositor.lux2
-rw-r--r--stdlib/source/program/scriptum.lux44
-rw-r--r--stdlib/source/specification/compositor/generation/case.lux2
-rw-r--r--stdlib/source/specification/compositor/generation/common.lux4
-rw-r--r--stdlib/source/specification/compositor/generation/function.lux2
-rw-r--r--stdlib/source/specification/compositor/generation/structure.lux4
-rw-r--r--stdlib/source/specification/lux/abstract/apply.lux2
-rw-r--r--stdlib/source/test/aedifex/command/deps.lux4
-rw-r--r--stdlib/source/test/aedifex/dependency/deployment.lux2
-rw-r--r--stdlib/source/test/aedifex/dependency/resolution.lux6
-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/lux.lux2
-rw-r--r--stdlib/source/test/lux/abstract/apply.lux4
-rw-r--r--stdlib/source/test/lux/abstract/codec.lux4
-rw-r--r--stdlib/source/test/lux/abstract/functor.lux4
-rw-r--r--stdlib/source/test/lux/abstract/monoid.lux4
-rw-r--r--stdlib/source/test/lux/control/concurrency/semaphore.lux8
-rw-r--r--stdlib/source/test/lux/control/continuation.lux34
-rw-r--r--stdlib/source/test/lux/control/function.lux4
-rw-r--r--stdlib/source/test/lux/control/maybe.lux10
-rw-r--r--stdlib/source/test/lux/control/parser.lux6
-rw-r--r--stdlib/source/test/lux/control/parser/text.lux8
-rw-r--r--stdlib/source/test/lux/control/reader.lux4
-rw-r--r--stdlib/source/test/lux/control/region.lux4
-rw-r--r--stdlib/source/test/lux/control/state.lux4
-rw-r--r--stdlib/source/test/lux/control/try.lux4
-rw-r--r--stdlib/source/test/lux/control/writer.lux6
-rw-r--r--stdlib/source/test/lux/data/binary.lux4
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary.lux8
-rw-r--r--stdlib/source/test/lux/data/collection/list.lux6
-rw-r--r--stdlib/source/test/lux/data/collection/row.lux8
-rw-r--r--stdlib/source/test/lux/data/collection/sequence.lux43
-rw-r--r--stdlib/source/test/lux/data/format/tar.lux2
-rw-r--r--stdlib/source/test/lux/data/format/xml.lux2
-rw-r--r--stdlib/source/test/lux/data/text.lux6
-rw-r--r--stdlib/source/test/lux/data/text/encoding.lux2
-rw-r--r--stdlib/source/test/lux/data/text/format.lux2
-rw-r--r--stdlib/source/test/lux/data/text/unicode/set.lux6
-rw-r--r--stdlib/source/test/lux/debug.lux2
-rw-r--r--stdlib/source/test/lux/documentation.lux131
-rw-r--r--stdlib/source/test/lux/extension.lux20
-rw-r--r--stdlib/source/test/lux/ffi.jvm.lux6
-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.lux2
-rw-r--r--stdlib/source/test/lux/meta.lux6
-rw-r--r--stdlib/source/test/lux/target/jvm.lux546
-rw-r--r--stdlib/source/test/lux/test.lux6
-rw-r--r--stdlib/source/test/lux/time/year.lux6
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux8
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux2
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux14
-rw-r--r--stdlib/source/test/lux/type.lux8
-rw-r--r--stdlib/source/test/lux/type/poly.lux (renamed from stdlib/source/test/lux/macro/poly.lux)0
-rw-r--r--stdlib/source/test/lux/type/poly/equivalence.lux (renamed from stdlib/source/test/lux/macro/poly/equivalence.lux)7
-rw-r--r--stdlib/source/test/lux/type/poly/functor.lux (renamed from stdlib/source/test/lux/macro/poly/functor.lux)3
-rw-r--r--stdlib/source/test/lux/type/poly/json.lux (renamed from stdlib/source/test/lux/macro/poly/json.lux)6
-rw-r--r--stdlib/source/test/lux/type/refinement.lux6
-rw-r--r--stdlib/source/test/lux/world/input/keyboard.lux2
-rw-r--r--stdlib/source/test/lux/world/output/video/resolution.lux2
279 files changed, 3019 insertions, 1899 deletions
diff --git a/documentation/bookmark/concurrency/crdt_conflict_free_replicated_data_types.md b/documentation/bookmark/concurrency/crdt_conflict_free_replicated_data_types.md
new file mode 100644
index 000000000..320b06496
--- /dev/null
+++ b/documentation/bookmark/concurrency/crdt_conflict_free_replicated_data_types.md
@@ -0,0 +1,5 @@
+# Reference
+
+1. [Automerge: A New Foundation for Collaboration Software — Martin Kleppman](https://www.youtube.com/watch?v=UUGdMHrdzIU)
+1. [Automerge](https://github.com/automerge/automerge)
+
diff --git a/licentia/source/program/licentia/document.lux b/licentia/source/program/licentia/document.lux
index 94348f030..c7806ab6a 100644
--- a/licentia/source/program/licentia/document.lux
+++ b/licentia/source/program/licentia/document.lux
@@ -26,13 +26,13 @@
(def: .public paragraph
(-> (List Text) Text)
(|>> (list\map ..sentence)
- (text.join_with text.new_line)))
+ (text.interposed text.new_line)))
(template [<name> <word>]
[(def: .public <name>
(-> (List Text) Text)
... https://en.wikipedia.org/wiki/Serial_comma
- (text.join_with (format ", " <word> " ")))]
+ (text.interposed (format ", " <word> " ")))]
[or "or"]
[and "and"]
diff --git a/licentia/source/program/licentia/license/black_list.lux b/licentia/source/program/licentia/license/black_list.lux
index 96fafb6c7..577f53242 100644
--- a/licentia/source/program/licentia/license/black_list.lux
+++ b/licentia/source/program/licentia/license/black_list.lux
@@ -28,6 +28,6 @@
entities (|> black_list
(get@ #//.entities)
(list\map ..entity)
- (text.join_with text.new_line))]
+ (text.interposed text.new_line))]
(format scope " " effect justification ":" text.new_line
entities)))
diff --git a/licentia/source/program/licentia/license/notice.lux b/licentia/source/program/licentia/license/notice.lux
index cbac11e8b..87308f87b 100644
--- a/licentia/source/program/licentia/license/notice.lux
+++ b/licentia/source/program/licentia/license/notice.lux
@@ -31,4 +31,4 @@
(def: .public copyright
(-> (List //copyright.Holder) Text)
(|>> (list\map ..copyright_holder)
- (text.join_with text.new_line)))
+ (text.interposed text.new_line)))
diff --git a/licentia/source/program/licentia/output.lux b/licentia/source/program/licentia/output.lux
index 9b753b4c6..bef7014b3 100644
--- a/licentia/source/program/licentia/output.lux
+++ b/licentia/source/program/licentia/output.lux
@@ -274,12 +274,12 @@
($.block ($.section {#$.title (format "Denial of " _.license)
#$.content (|> black_lists
(list\map black_list.black_list)
- (text.join_with ..black_list_spacing))})))
+ (text.interposed ..black_list_spacing))})))
($.section {#$.title "Definitions"
#$.content (|> definition.all
(list\map (|>> ..definition $.block))
- (text.join_with ""))})
+ (text.interposed ""))})
($.block ($.section {#$.title (format "Acceptance of " _.license)
#$.content limitation.acceptance}))
diff --git a/lux-cl/source/program.lux b/lux-cl/source/program.lux
index 09b9b02cd..dfff7fb92 100644
--- a/lux-cl/source/program.lux
+++ b/lux-cl/source/program.lux
@@ -322,7 +322,7 @@
(wrap [global value definition]))))
(def: (ingest context content)
- (|> content (\ encoding.utf8 decode) try.assume (:as (_.Expression Any))))
+ (|> content (\ encoding.utf8 decode) try.trusted (:as (_.Expression Any))))
(def: (re_learn context content)
(run! content))
@@ -377,7 +377,7 @@
(:as Operation)
(function (@self state))
(:as Try)
- try.assume
+ try.trusted
(:as Try)
(exec
("lux io log" "TODO: Extender")
diff --git a/lux-js/source/program.lux b/lux-js/source/program.lux
index f58fa3d40..22e12f197 100644
--- a/lux-js/source/program.lux
+++ b/lux-js/source/program.lux
@@ -198,7 +198,7 @@
(org/openjdk/nashorn/api/scripting/AbstractJSObject
[] (call self {this java/lang/Object} {args [java/lang/Object]}) java/lang/Object
(|> (java/util/Arrays::copyOfRange value
- (|> args (array.read! 0) maybe.assume (:as Int))
+ (|> args (array.read! 0) maybe.trusted (:as Int))
(.int (array.size value)))
js_object
(:as java/lang/Object)))
@@ -242,7 +242,7 @@
(::slice js_object value))
(^ (static runtime.variant_tag_field))
- (|> value (array.read! 0) maybe.assume)
+ (|> value (array.read! 0) maybe.trusted)
(^ (static runtime.variant_flag_field))
(case (array.read! 1 value)
@@ -253,7 +253,7 @@
(ffi.null))
(^ (static runtime.variant_value_field))
- (|> value (array.read! 2) maybe.assume js_object (:as java/lang/Object))
+ (|> value (array.read! 2) maybe.trusted js_object (:as java/lang/Object))
_
(panic! (exception.construct ..unknown_member [(:as Text member) (:as java/lang/Object value)])))
@@ -262,7 +262,7 @@
[] (getSlot self {idx int}) java/lang/Object
(|> value
(array.read! (|> idx java/lang/Integer::longValue (:as Nat)))
- maybe.assume
+ maybe.trusted
js_object
(:as java/lang/Object)))
)))
@@ -487,7 +487,7 @@
(def: define! (..define! interpreter))
(def: (ingest context content)
- (|> content (\ utf8.codec decode) try.assumed (:as _.Statement)))
+ (|> content (\ utf8.codec decode) try.trusted (:as _.Statement)))
(def: (re_learn context custom content)
(..execute! interpreter content))
@@ -546,7 +546,7 @@
(def: define! ..define!)
(def: (ingest context content)
- (|> content (\ utf8.codec decode) try.assumed (:as _.Statement)))
+ (|> content (\ utf8.codec decode) try.trusted (:as _.Statement)))
(def: (re_learn context custom content)
(..execute! content))
@@ -613,7 +613,7 @@
(:as Operation)
(function (@self state))
(:as Try)
- try.assumed
+ try.trusted
(:as Try)
(do try.monad
[handler (try.of_maybe (..ensure_function handler))
diff --git a/lux-jvm/source/luxc/lang/directive/jvm.lux b/lux-jvm/source/luxc/lang/directive/jvm.lux
index 7f1df4db3..99ac39c78 100644
--- a/lux-jvm/source/luxc/lang/directive/jvm.lux
+++ b/lux-jvm/source/luxc/lang/directive/jvm.lux
@@ -572,8 +572,8 @@
_ (|> handlerV
(..true_handler extender)
(extension.install extender (:as Text name))
- directive.lift_generation)
- _ (directive.lift_generation
+ directive.lifted_generation)
+ _ (directive.lifted_generation
(generation.log! (format "Generation " (%.text (:as Text name)))))]
(in directive.no_requirements))
@@ -601,7 +601,7 @@
(Parser <type>)
(do {! <>.monad}
[raw <code>.text]
- (<>.lift (<text>.result <parser> raw))))]
+ (<>.lifted (<text>.result <parser> raw))))]
[class_declaration Declaration parser.declaration']
[class (Type Class) parser.class]
@@ -1012,7 +1012,7 @@
self arguments constructor_argumentsC
bodyC] method]
analyse directive.analysis]
- (directive.lift_analysis
+ (directive.lifted_analysis
(do !
[mapping (//A.with_fresh_type_vars class_tvars luxT.fresh)
mapping (//A.with_fresh_type_vars method_tvars mapping)
@@ -1047,7 +1047,7 @@
method_tvars self arguments returnJ exceptionsJ
bodyC] method]
analyse directive.analysis]
- (directive.lift_analysis
+ (directive.lifted_analysis
(do !
[mapping (//A.with_fresh_type_vars class_tvars luxT.fresh)
.let [parent_type (/type.class super_name super_tvars)]
@@ -1077,7 +1077,7 @@
self arguments returnJ exceptionsJ
bodyC] method]
analyse directive.analysis]
- (directive.lift_analysis
+ (directive.lifted_analysis
(do !
[mapping (//A.with_fresh_type_vars class_tvars luxT.fresh)
mapping (//A.with_fresh_type_vars method_tvars mapping)
@@ -1105,7 +1105,7 @@
arguments returnJ exceptionsJ
bodyC] method]
analyse directive.analysis]
- (directive.lift_analysis
+ (directive.lifted_analysis
(do !
[mapping (//A.with_fresh_type_vars method_tvars luxT.fresh)
arguments' (monad.map !
@@ -1160,7 +1160,7 @@
self arguments constructor_argumentsA
bodyA] method]
synthesise directive.synthesis]
- (directive.lift_synthesis
+ (directive.lifted_synthesis
(do !
[constructor_argumentsS (monad.map ! (function (_ [typeJ termA])
(\ ! map (|>> [typeJ])
@@ -1183,7 +1183,7 @@
method_tvars self arguments returnJ exceptionsJ
bodyA] method]
synthesise directive.synthesis]
- (directive.lift_synthesis
+ (directive.lifted_synthesis
(do !
[bodyS (synthesise archive (#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)))]
(in [[super_name super_tvars] method_name strict_floating_point? annotations
@@ -1202,7 +1202,7 @@
self arguments returnJ exceptionsJ
bodyA] method]
synthesise directive.synthesis]
- (directive.lift_synthesis
+ (directive.lifted_synthesis
(do !
[bodyS (synthesise archive (#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)))]
(in [name privacy final? strict_floating_point? annotations method_tvars
@@ -1221,7 +1221,7 @@
arguments returnJ exceptionsJ
bodyA] method]
synthesise directive.synthesis]
- (directive.lift_synthesis
+ (directive.lifted_synthesis
(do !
[bodyS (synthesise archive (#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)))]
(in [name privacy strict_floating_point? annotations method_tvars
@@ -1263,7 +1263,7 @@
self arguments constructor_argumentsS
bodyS] method]
generate directive.generation]
- (directive.lift_generation
+ (directive.lifted_generation
(do !
[constructor_argumentsG (monad.map ! (|>> product.right (generate archive))
constructor_argumentsS)
@@ -1297,7 +1297,7 @@
method_tvars self arguments returnJ exceptionsJ
bodyS] method]
generate directive.generation]
- (directive.lift_generation
+ (directive.lifted_generation
(do !
[bodyG (generate archive (//G.hidden_method_body (list.size arguments) bodyS))
.let [argumentsT (list\map product.right arguments)]]
@@ -1318,7 +1318,7 @@
self arguments returnJ exceptionsJ
bodyS] method]
generate directive.generation]
- (directive.lift_generation
+ (directive.lifted_generation
(do !
[bodyG (generate archive (//G.hidden_method_body (list.size arguments) bodyS))
.let [argumentsT (list\map product.right arguments)]]
@@ -1343,7 +1343,7 @@
arguments returnJ exceptionsJ
bodyS] method]
generate directive.generation]
- (directive.lift_generation
+ (directive.lifted_generation
(do !
[bodyG (generate archive (//G.hidden_method_body (list.size arguments) bodyS))
.let [argumentsT (list\map product.right arguments)]]
@@ -1421,14 +1421,14 @@
fields
methodsC)]
... Necessary for reflection to work properly during analysis.
- _ (directive.lift_generation
+ _ (directive.lifted_generation
(generation.execute! header))
.let [supers (: (List (Type Class))
(list& super_class super_interfaces))]
_ (|> methodsC
(list.all ..convert_overriden_method)
(//A.require_complete_method_concretion class_loader supers)
- directive.lift_analysis)
+ directive.lifted_analysis)
methodsA (monad.map ! (method_analysis archive declaration supers) methodsC)
methodsS (monad.map ! (method_synthesis archive) methodsA)
methodsG (monad.map ! (method_generation archive super_class) methodsS)
@@ -1439,7 +1439,7 @@
super_interfaces
(def.fuse (list\compose (list\map ..field_header fields)
methodsG)))]]]
- (directive.lift_generation
+ (directive.lifted_generation
(do !
[artifact_id (generation.learn_custom class_name)
_ (generation.execute! directive)
@@ -1466,7 +1466,7 @@
(def.abstract_method #jvm.Public jvm.noneM name
(/type.method [type_variables arguments return exceptions]))))
def.fuse))]]]
- (directive.lift_generation
+ (directive.lifted_generation
(do !
[artifact_id (generation.learn_custom class_name)
_ (generation.execute! directive)
diff --git a/lux-jvm/source/luxc/lang/host/jvm/def.lux b/lux-jvm/source/luxc/lang/host/jvm/def.lux
index 064224c6e..f8233222d 100644
--- a/lux-jvm/source/luxc/lang/host/jvm/def.lux
+++ b/lux-jvm/source/luxc/lang/host/jvm/def.lux
@@ -138,7 +138,7 @@
(param_signature super)
(|> interfaces
(list@map param_signature)
- (text.join_with ""))))
+ (text.interposed ""))))
(def: (constraints_signature constraints super interfaces)
(-> (List Constraint) (Type Class) (List (Type Class))
@@ -148,13 +148,13 @@
(format "<"
(|> constraints
(list@map formal_param)
- (text.join_with ""))
+ (text.interposed ""))
">"))]
(format formal_params
(..signature super)
(|> interfaces
(list@map ..signature)
- (text.join_with "")))))
+ (text.interposed "")))))
(def: class_computes
Int
@@ -300,4 +300,4 @@
singleton
(#.Item head tail)
- (function.compose (fuse tail) head)))
+ (function.composite (fuse tail) head)))
diff --git a/lux-jvm/source/luxc/lang/host/jvm/inst.lux b/lux-jvm/source/luxc/lang/host/jvm/inst.lux
index 90732578e..0c724ca87 100644
--- a/lux-jvm/source/luxc/lang/host/jvm/inst.lux
+++ b/lux-jvm/source/luxc/lang/host/jvm/inst.lux
@@ -375,7 +375,7 @@
labels_array (ffi.array org/objectweb/asm/Label array_size)
_ (loop [idx 0]
(if (n.< array_size idx)
- (let [[key label] (maybe.assume (list.item idx keys+labels))]
+ (let [[key label] (maybe.trusted (list.item idx keys+labels))]
(exec
(ffi.array_write idx (ffi.long_to_int key) keys_array)
(ffi.array_write idx label labels_array)
@@ -392,7 +392,7 @@
_ (loop [idx 0]
(if (n.< num_labels idx)
(exec (ffi.array_write idx
- (maybe.assume (list.item idx labels))
+ (maybe.trusted (list.item idx labels))
labels_array)
(recur (inc idx)))
[]))]
@@ -466,4 +466,4 @@
singleton
(#.Item head tail)
- (function.compose (fuse tail) head)))
+ (function.composite (fuse tail) head)))
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
index 492911d40..20962c13d 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
@@ -1115,7 +1115,7 @@
[(synthesis.variable/foreign foreign_id)
(|> global_mapping
(dictionary.value capture)
- maybe.assume)]))
+ maybe.trusted)]))
(dictionary.of_list synthesis.hash))]
[ownerT name
strict_fp? annotations vars
diff --git a/lux-jvm/source/program.lux b/lux-jvm/source/program.lux
index 72a245f9d..767101102 100644
--- a/lux-jvm/source/program.lux
+++ b/lux-jvm/source/program.lux
@@ -213,7 +213,7 @@
[instanceG (function.function' (#.Some [0 (.nat -1)]) expression.translate archive [(list) 4 ..how_to_wrap_a_phase])
phase_wrapper (generation.evaluate! [0 (.nat -2)] instanceG)]
(in (function (_ phase)
- (<| try.assumed
+ (<| try.trusted
(: (Try java/lang/Object))
(do try.monad
[apply_method (|> phase_wrapper
@@ -255,7 +255,7 @@
(:as Operation)
(function (@self state))
(:as Try)
- try.assumed
+ try.trusted
(:as Try)
(do try.monad
[method (|> handler
diff --git a/lux-jvm/test/test/luxc/lang/translation/jvm.lux b/lux-jvm/test/test/luxc/lang/translation/jvm.lux
index b4781b637..99af8d8c9 100644
--- a/lux-jvm/test/test/luxc/lang/translation/jvm.lux
+++ b/lux-jvm/test/test/luxc/lang/translation/jvm.lux
@@ -422,8 +422,8 @@
class-idx (|> r.nat (:: @ map (n/% num-classes)))
instance-idx (|> r.nat (:: @ map (n/% num-instances)))
exception-message (r.text +5)
- #let [class (maybe.assume (list.nth class-idx classes))
- [instance-class instance-gen] (maybe.assume (list.nth instance-idx instances))
+ #let [class (maybe.trusted (list.nth class-idx classes))
+ [instance-class instance-gen] (maybe.trusted (list.nth instance-idx instances))
exception-message$ (` ["java.lang.String" (~ (code.text exception-message))])]
sample r.int
monitor r.int
diff --git a/lux-lua/source/program.lux b/lux-lua/source/program.lux
index ffaf3a8e9..2a530ba13 100644
--- a/lux-lua/source/program.lux
+++ b/lux-lua/source/program.lux
@@ -188,7 +188,7 @@
(net/sandius/rembulan/impl/DefaultTable
[] (rawget self {idx long}) java/lang/Object
- (|> value (array.read! (|> idx (:as Nat) dec)) maybe.assume re_wrap))
+ (|> value (array.read! (|> idx (:as Nat) dec)) maybe.trusted re_wrap))
(net/sandius/rembulan/impl/DefaultTable
[] (rawget self {field java/lang/Object}) java/lang/Object
@@ -196,7 +196,7 @@
(#.Some field)
(case (net/sandius/rembulan/ByteString::decode field)
(^ (static runtime.variant_tag_field))
- (|> value (array.read! 0) maybe.assume)
+ (|> value (array.read! 0) maybe.trusted)
(^ (static runtime.variant_flag_field))
(case (array.read! 1 value)
@@ -207,7 +207,7 @@
(ffi.null))
(^ (static runtime.variant_value_field))
- (|> value (array.read! 2) maybe.assume re_wrap)
+ (|> value (array.read! 2) maybe.trusted re_wrap)
_
(panic! (exception.construct ..unknown_kind_of_object field)))
@@ -215,7 +215,7 @@
#.None
(case (ffi.check java/lang/Long field)
(#.Some idx)
- (|> value (array.read! (|> idx (:as Nat) dec)) maybe.assume re_wrap)
+ (|> value (array.read! (|> idx (:as Nat) dec)) maybe.trusted re_wrap)
#.None
(panic! (exception.construct ..unknown_kind_of_object field)))))
@@ -319,7 +319,7 @@
... (net/sandius/rembulan/impl/ImmutableTable$Builder::build (net/sandius/rembulan/impl/ImmutableTable$Builder::new))
(:as java/lang/Object (lux_structure (:as (Array java/lang/Object) lux)))))
executor)]
- (|> output (array.read! 0) maybe.assume (:as java/lang/Object) ..read)))
+ (|> output (array.read! 0) maybe.trusted (:as java/lang/Object) ..read)))
(def: (expander baggage macro inputs lux)
(-> Baggage Expander)
@@ -552,7 +552,7 @@
(#.Some value)
(read value)))))
- _ (try.assumed (run! ..rembulan_prelude))]
+ _ (try.trusted (run! ..rembulan_prelude))]
[[state_context executor]
(: (Host _.Expression _.Statement)
(implementation
@@ -572,7 +572,7 @@
(wrap [global value definition]))))
(def: (ingest context content)
- (|> content (\ utf8.codec decode) try.assumed (:as _.Statement)))
+ (|> content (\ utf8.codec decode) try.trusted (:as _.Statement)))
(def: (re_learn context custom content)
(run! content))
@@ -610,7 +610,7 @@
(wrap [global value definition]))))
(def: (ingest context content)
- (|> content (\ utf8.codec decode) try.assumed (:as _.Statement)))
+ (|> content (\ utf8.codec decode) try.trusted (:as _.Statement)))
(def: (re_learn context custom content)
(run! content))
@@ -657,7 +657,7 @@
{input/0 java/lang/Object})
void
(<| (..return %)
- try.assumed
+ try.trusted
(do try.monad
[input/0 (..read input/0)]
(case partial_application
@@ -683,7 +683,7 @@
{input/1 java/lang/Object})
void
(<| (..return %)
- try.assumed
+ try.trusted
(do try.monad
[input/0 (..read input/0)
input/1 (..read input/1)]
@@ -708,7 +708,7 @@
{input/2 java/lang/Object})
void
(<| (..return %)
- try.assumed
+ try.trusted
(do try.monad
[input/0 (..read input/0)
input/1 (..read input/1)
@@ -735,7 +735,7 @@
(:as Operation)
(function (@self state))
(:as Try)
- try.assumed
+ try.trusted
(:as Try)
(do try.monad
[handler (try.of_maybe (..ensure_function handler))
@@ -750,7 +750,7 @@
executor)]
(|> output
(array.read! 0)
- maybe.assume
+ maybe.trusted
(:as java/lang/Object)
..read)))))
diff --git a/lux-mode/lux-mode.el b/lux-mode/lux-mode.el
index 0c059874e..7349017a2 100644
--- a/lux-mode/lux-mode.el
+++ b/lux-mode/lux-mode.el
@@ -369,7 +369,7 @@ Called by `imenu--generic-function'."
(control//contract (altRE "pre" "post"))
;; Type
(type//syntax (altRE "Variant" "Or" "Tuple" "And" "->" "All" "Ex" "Rec" "primitive" "type"))
- (type//checking (altRE ":" ":as" ":let" ":~" ":expected" ":of" ":cast" ":sharing" ":by_example" ":hole"))
+ (type//checking (altRE ":" ":as" ":let" ":~" ":expected" ":of" ":sharing" ":by_example" ":hole"))
(type//abstract (altRE "abstract:" ":abstraction" ":representation" ":transmutation" "\\^:representation"))
(type//unit (altRE "unit:" "scale:"))
(type//poly (altRE "poly:" "derived:"))
diff --git a/lux-php/source/program.lux b/lux-php/source/program.lux
index 72a064810..688626084 100644
--- a/lux-php/source/program.lux
+++ b/lux-php/source/program.lux
@@ -268,7 +268,7 @@
php/runtime/Memory
(|> value
(array.read! index)
- maybe.assume
+ maybe.trusted
(..value_wrapper lux_structure)))
(php/runtime/Memory
@@ -280,7 +280,7 @@
(^ (static runtime.variant_tag_field))
(|> value
(array.read! 0)
- maybe.assume
+ maybe.trusted
(:as java/lang/Integer)
php/runtime/memory/LongMemory::valueOf)
@@ -295,7 +295,7 @@
(^ (static runtime.variant_value_field))
(|> value
(array.read! 2)
- maybe.assume
+ maybe.trusted
(..value_wrapper lux_structure))
(^ (static runtime.tuple_size_field))
@@ -316,7 +316,7 @@
(if (n.< size idx)
(let [value (|> host_object
(php/runtime/memory/ArrayMemory::get (php/runtime/memory/LongMemory::new (.int idx)))
- maybe.assume
+ maybe.trusted
(:as php/runtime/memory/ReferenceMemory)
php/runtime/memory/ReferenceMemory::getValue)]
(case (ffi.check php/runtime/memory/NullMemory value)
@@ -345,18 +345,18 @@
(-> Reader php/runtime/memory/ArrayMemory (Try Any))
(case [(|> host_object
(php/runtime/memory/ArrayMemory::get ..variant_tag_field)
- maybe.assume
+ maybe.trusted
read)
(|> host_object
(php/runtime/memory/ArrayMemory::get ..variant_value_field)
- maybe.assume
+ maybe.trusted
read)]
[(#try.Success tag) (#try.Success value)]
(#try.Success [(java/lang/Long::intValue (:as java/lang/Long tag))
(: Any
(case (|> host_object
(php/runtime/memory/ArrayMemory::get ..variant_flag_field)
- maybe.assume
+ maybe.trusted
(:as php/runtime/memory/ReferenceMemory)
php/runtime/memory/ReferenceMemory::getValue
(ffi.check php/runtime/memory/NullMemory))
@@ -490,7 +490,7 @@
(wrap [global value definition]))))
(def: (ingest context content)
- (|> content (\ utf8.codec decode) try.assume (:as _.Statement)))
+ (|> content (\ utf8.codec decode) try.trusted (:as _.Statement)))
(def: (re_learn context content)
(run! content))
@@ -529,7 +529,7 @@
(:as Operation)
(function (@self state))
(:as Try)
- try.assume
+ try.trusted
(:as Try)
(do try.monad
[handler (try.from_maybe (..ensure_macro handler))
diff --git a/lux-python/source/program.lux b/lux-python/source/program.lux
index 547a1cd24..6204a721b 100644
--- a/lux-python/source/program.lux
+++ b/lux-python/source/program.lux
@@ -289,7 +289,7 @@
(def: (ingest context content)
(|> content
(\ utf8.codec decode)
- try.assumed
+ try.trusted
(:as (_.Statement Any))))
(def: (re_learn context custom content)
@@ -329,7 +329,7 @@
(def: define! define!)
(def: (ingest context content)
- (|> content (\ utf8.codec decode) try.assumed (:as (_.Statement Any))))
+ (|> content (\ utf8.codec decode) try.trusted (:as (_.Statement Any))))
(def: (re_learn context content)
(execute! content))
@@ -358,7 +358,7 @@
{inputs [org/python/core/PyObject]}
{keywords [java/lang/String]})
org/python/core/PyObject
- (try.assumed
+ (try.trusted
(case (array.to_list inputs)
(^ (list))
(\ try.monad wrap (host_phase (list) phase))
@@ -429,7 +429,7 @@
(:as Operation)
(function (_ state))
(:as Try)
- try.assumed
+ try.trusted
(:as Try)
(do try.monad
[handler (try.of_maybe (..ensure_function handler))
diff --git a/lux-r/source/program.lux b/lux-r/source/program.lux
index ec796e0d2..969653315 100644
--- a/lux-r/source/program.lux
+++ b/lux-r/source/program.lux
@@ -526,7 +526,7 @@
(wrap [global value definition]))))
(def: (ingest context content)
- (|> content (\ utf8.codec decode) try.assume (:as _.Expression)))
+ (|> content (\ utf8.codec decode) try.trusted (:as _.Expression)))
(def: (re_learn context content)
(run! content))
@@ -566,7 +566,7 @@
(:as Operation)
(function (@self state))
(:as Try)
- try.assume
+ try.trusted
(:as Try)
(exec
("lux io log" "TODO: Extender")
diff --git a/lux-ruby/source/program.lux b/lux-ruby/source/program.lux
index 3e6a4d638..b54acaaa9 100644
--- a/lux-ruby/source/program.lux
+++ b/lux-ruby/source/program.lux
@@ -397,7 +397,7 @@
(^ (static runtime.variant_tag_field))
(|> value
(array.read! 0)
- maybe.assume
+ maybe.trusted
(:as java/lang/Integer)
java/lang/Integer::longValue
(org/jruby/RubyFixnum::new ..initial_ruby_runtime))
@@ -636,7 +636,7 @@
(def: (ingest context content)
(|> content
(\ utf8.codec decode)
- try.assumed
+ try.trusted
(:as _.Statement)))
(def: (re_learn context custom content)
@@ -699,7 +699,7 @@
{inputs [org/jruby/runtime/builtin/IRubyObject]}
{_ org/jruby/runtime/Block})
org/jruby/runtime/builtin/IRubyObject
- (<| try.assumed
+ (<| try.trusted
(let [inputs (array.to_list inputs)])
(case inputs
(^ (list))
@@ -772,7 +772,7 @@
(:as Operation)
(function (@self state))
(:as Try)
- try.assumed
+ try.trusted
(:as Try)
(do try.monad
[handler (try.of_maybe (..ensure_macro handler))
diff --git a/lux-scheme/source/program.lux b/lux-scheme/source/program.lux
index 7a82b96bb..f16b8cdcc 100644
--- a/lux-scheme/source/program.lux
+++ b/lux-scheme/source/program.lux
@@ -184,7 +184,7 @@
false)
(|> value
(array.read! 0)
- maybe.assume
+ maybe.trusted
(:as java/lang/Integer)
gnu/math/IntNum::new)))
(gnu/lists/Pair
@@ -192,7 +192,7 @@
(if cdr?
(|> value
(array.read! 2)
- maybe.assume
+ maybe.trusted
lux_value)
(variant_value lux_value true value)))))
@@ -211,7 +211,7 @@
[] (getRaw self {idx int}) java/lang/Object
(|> value
(array.read! (|> idx java/lang/Integer::longValue (:as Nat)))
- maybe.assume
+ maybe.trusted
lux_value))
(gnu/lists/SimpleVector
[] (getBuffer self) java/lang/Object
@@ -380,7 +380,7 @@
(wrap [global value definition]))))
(def: (ingest context content)
- (|> content (\ encoding.utf8 decode) try.assume (:as _.Expression)))
+ (|> content (\ encoding.utf8 decode) try.trusted (:as _.Expression)))
(def: (re_learn context content)
(run! content))
@@ -423,7 +423,7 @@
(:as Operation)
(function (@self state))
(:as Try)
- try.assume
+ try.trusted
(:as Try)
(do try.monad
[handler (try.from_maybe (..ensure_macro (:as Macro handler)))
diff --git a/stdlib/source/documentation/lux.lux b/stdlib/source/documentation/lux.lux
index 5131a9607..1f30de85c 100644
--- a/stdlib/source/documentation/lux.lux
+++ b/stdlib/source/documentation/lux.lux
@@ -9,7 +9,8 @@
[\\library
["." /]]
["." / #_
- ["#." abstract]])
+ ["#." abstract]
+ ["#." control]])
(documentation: /.:of
"Generates the type corresponding to a given expression."
@@ -24,8 +25,10 @@
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..:of]
- [/abstract.documentation]))
+ [/abstract.documentation
+ /control.documentation]))
(program: inputs
(io.io (debug.log! ($.documentation ..documentation))))
diff --git a/stdlib/source/documentation/lux/abstract.lux b/stdlib/source/documentation/lux/abstract.lux
index a4e7ec807..9cc80dcac 100644
--- a/stdlib/source/documentation/lux/abstract.lux
+++ b/stdlib/source/documentation/lux/abstract.lux
@@ -13,30 +13,29 @@
["#." comonad]
["#." enum]
["#." equivalence]
- ... ["#." hash]
- ... ["#." fold]
+ ["#." fold]
["#." functor]
- ... ["#." interval]
+ ["#." hash]
+ ["#." interval]
["#." monad]
- ... ["#." monoid]
- ... ["#." order]
- ... ["#." predicate]
- ])
+ ["#." monoid]
+ ["#." order]
+ ["#." predicate]])
(.def: .public documentation
(.List $.Module)
- (list.joined (list
- /apply.documentation
- /codec.documentation
- /comonad.documentation
- /enum.documentation
- /equivalence.documentation
- ... /hash.documentation
- ... /fold.documentation
- ... /interval.documentation
- ... /monoid.documentation
- ... /order.documentation
- ... /predicate.documentation
- /functor.documentation
- /monad.documentation
- )))
+ (list.joined
+ (list /apply.documentation
+ /codec.documentation
+ /comonad.documentation
+ /enum.documentation
+ /equivalence.documentation
+ /fold.documentation
+ /functor.documentation
+ /hash.documentation
+ /interval.documentation
+ /monad.documentation
+ /monoid.documentation
+ /order.documentation
+ /predicate.documentation
+ )))
diff --git a/stdlib/source/documentation/lux/abstract/apply.lux b/stdlib/source/documentation/lux/abstract/apply.lux
index ba611918d..0ba31d5a4 100644
--- a/stdlib/source/documentation/lux/abstract/apply.lux
+++ b/stdlib/source/documentation/lux/abstract/apply.lux
@@ -8,12 +8,13 @@
(documentation: /.Apply
"Applicative functors.")
-(documentation: /.compose
+(documentation: /.composite
"Applicative functor composition.")
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..Apply
- ..compose]
+ ..composite]
[]))
diff --git a/stdlib/source/documentation/lux/abstract/codec.lux b/stdlib/source/documentation/lux/abstract/codec.lux
index dc83d6fce..d4f3dbeb0 100644
--- a/stdlib/source/documentation/lux/abstract/codec.lux
+++ b/stdlib/source/documentation/lux/abstract/codec.lux
@@ -8,17 +8,18 @@
(documentation: /.Codec
"A way to move back-and-forth between a type and an alternative representation for it.")
-(documentation: /.compose
+(documentation: /.composite
"Codec composition."
[(: (Codec c a)
- (compose (: (Codec c b)
- cb_codec)
- (: (Codec b a)
- ba_codec)))])
+ (composite (: (Codec c b)
+ cb_codec)
+ (: (Codec b a)
+ ba_codec)))])
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..Codec
- ..compose]
+ ..composite]
[]))
diff --git a/stdlib/source/documentation/lux/abstract/comonad.lux b/stdlib/source/documentation/lux/abstract/comonad.lux
index 10f39e86d..f1e220593 100644
--- a/stdlib/source/documentation/lux/abstract/comonad.lux
+++ b/stdlib/source/documentation/lux/abstract/comonad.lux
@@ -24,6 +24,7 @@
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..CoMonad
..be]
[/cofree.documentation]))
diff --git a/stdlib/source/documentation/lux/abstract/comonad/cofree.lux b/stdlib/source/documentation/lux/abstract/comonad/cofree.lux
index 332cae864..2330b5c78 100644
--- a/stdlib/source/documentation/lux/abstract/comonad/cofree.lux
+++ b/stdlib/source/documentation/lux/abstract/comonad/cofree.lux
@@ -11,6 +11,7 @@
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..CoFree
($.default /.functor)
($.default /.comonad)]
diff --git a/stdlib/source/documentation/lux/abstract/enum.lux b/stdlib/source/documentation/lux/abstract/enum.lux
index 2853ba8ca..779b97a77 100644
--- a/stdlib/source/documentation/lux/abstract/enum.lux
+++ b/stdlib/source/documentation/lux/abstract/enum.lux
@@ -15,6 +15,7 @@
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..Enum
..range]
[]))
diff --git a/stdlib/source/documentation/lux/abstract/equivalence.lux b/stdlib/source/documentation/lux/abstract/equivalence.lux
index 0be66e537..fb393d7c9 100644
--- a/stdlib/source/documentation/lux/abstract/equivalence.lux
+++ b/stdlib/source/documentation/lux/abstract/equivalence.lux
@@ -18,6 +18,7 @@
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..Equivalence
..rec
($.default /.functor)]
diff --git a/stdlib/source/documentation/lux/abstract/fold.lux b/stdlib/source/documentation/lux/abstract/fold.lux
new file mode 100644
index 000000000..33a12a91c
--- /dev/null
+++ b/stdlib/source/documentation/lux/abstract/fold.lux
@@ -0,0 +1,24 @@
+(.module:
+ [library
+ [lux
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Fold
+ "Iterate over a structure's values to build a summary value.")
+
+(documentation: /.with_monoid
+ "Fold over a foldable structure using the monoid's identity as the initial value."
+ [(with_monoid monoid fold value)])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Fold
+ ..with_monoid]
+ []))
diff --git a/stdlib/source/documentation/lux/abstract/functor.lux b/stdlib/source/documentation/lux/abstract/functor.lux
index 1ca3b082a..3de919eb5 100644
--- a/stdlib/source/documentation/lux/abstract/functor.lux
+++ b/stdlib/source/documentation/lux/abstract/functor.lux
@@ -16,12 +16,13 @@
(documentation: /.product
"Product composition for functors.")
-(documentation: /.compose
+(documentation: /.composite
"Functor composition.")
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[($.default /.Functor)
($.default /.Fix)
($.default /.Or)
@@ -29,5 +30,5 @@
($.default /.Then)
..sum
..product
- ..compose]
+ ..composite]
[/contravariant.documentation]))
diff --git a/stdlib/source/documentation/lux/abstract/functor/contravariant.lux b/stdlib/source/documentation/lux/abstract/functor/contravariant.lux
index 15f2332ed..7720babde 100644
--- a/stdlib/source/documentation/lux/abstract/functor/contravariant.lux
+++ b/stdlib/source/documentation/lux/abstract/functor/contravariant.lux
@@ -11,5 +11,6 @@
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..Functor]
[]))
diff --git a/stdlib/source/documentation/lux/abstract/hash.lux b/stdlib/source/documentation/lux/abstract/hash.lux
new file mode 100644
index 000000000..88fdd0a6e
--- /dev/null
+++ b/stdlib/source/documentation/lux/abstract/hash.lux
@@ -0,0 +1,20 @@
+(.module:
+ [library
+ [lux
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Hash
+ "A way to produce hash-codes for a type's instances.")
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Hash
+ ($.default /.functor)]
+ []))
diff --git a/stdlib/source/documentation/lux/abstract/interval.lux b/stdlib/source/documentation/lux/abstract/interval.lux
new file mode 100644
index 000000000..f4c57de2a
--- /dev/null
+++ b/stdlib/source/documentation/lux/abstract/interval.lux
@@ -0,0 +1,57 @@
+(.module:
+ [library
+ [lux
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Interval
+ "A representation of top and bottom boundaries for an ordered type.")
+
+(documentation: /.borders?
+ "Where a value is at the border of an interval.")
+
+(documentation: /.union
+ "An interval that spans both predecessors.")
+
+(documentation: /.intersection
+ "An interval spanned by both predecessors.")
+
+(documentation: /.complement
+ "The inverse of an interval.")
+
+(documentation: /.meets?
+ "Whether an interval meets another one on its bottom/lower side.")
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Interval
+ ..borders?
+ ..union
+ ..intersection
+ ..complement
+ ..meets?
+ ($.default /.between)
+ ($.default /.singleton)
+ ($.default /.inner?)
+ ($.default /.outer?)
+ ($.default /.singleton?)
+ ($.default /.within?)
+ ($.default /.starts_with?)
+ ($.default /.ends_with?)
+ ($.default /.precedes?)
+ ($.default /.succeeds?)
+ ($.default /.before?)
+ ($.default /.after?)
+ ($.default /.touches?)
+ ($.default /.starts?)
+ ($.default /.finishes?)
+ ($.default /.equivalence)
+ ($.default /.nested?)
+ ($.default /.overlaps?)]
+ []))
diff --git a/stdlib/source/documentation/lux/abstract/monad.lux b/stdlib/source/documentation/lux/abstract/monad.lux
index 7293f9a1d..dd472057d 100644
--- a/stdlib/source/documentation/lux/abstract/monad.lux
+++ b/stdlib/source/documentation/lux/abstract/monad.lux
@@ -44,6 +44,7 @@
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..Monad
..do
..bind
diff --git a/stdlib/source/documentation/lux/abstract/monad/free.lux b/stdlib/source/documentation/lux/abstract/monad/free.lux
index c29516a1c..24f9ac79f 100644
--- a/stdlib/source/documentation/lux/abstract/monad/free.lux
+++ b/stdlib/source/documentation/lux/abstract/monad/free.lux
@@ -11,6 +11,7 @@
(.def: .public documentation
(.List $.Module)
($.module /._
+ ""
[..Free
($.default /.functor)
($.default /.apply)
diff --git a/stdlib/source/documentation/lux/abstract/monoid.lux b/stdlib/source/documentation/lux/abstract/monoid.lux
new file mode 100644
index 000000000..e9c7a590e
--- /dev/null
+++ b/stdlib/source/documentation/lux/abstract/monoid.lux
@@ -0,0 +1,21 @@
+(.module:
+ [library
+ [lux
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Monoid
+ (format "A way to compose values."
+ \n "Includes an identity value which does not alter any other value when combined with."))
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Monoid
+ ($.default /.composite)]
+ []))
diff --git a/stdlib/source/documentation/lux/abstract/order.lux b/stdlib/source/documentation/lux/abstract/order.lux
new file mode 100644
index 000000000..ef7826d0f
--- /dev/null
+++ b/stdlib/source/documentation/lux/abstract/order.lux
@@ -0,0 +1,48 @@
+(.module:
+ [library
+ [lux
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Order
+ "A signature for types that possess some sense of ordering among their elements.")
+
+(documentation: /.Comparison
+ "An arbitrary comparison between two values, with the knowledge of how to order them.")
+
+(documentation: /.<=
+ "Less than or equal.")
+
+(documentation: /.>
+ "Greater than.")
+
+(documentation: /.>=
+ "Greater than or equal.")
+
+(documentation: /.Choice
+ "A choice comparison between two values, with the knowledge of how to order them.")
+
+(documentation: /.min
+ "Minimum.")
+
+(documentation: /.max
+ "Maximum.")
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Order
+ ..Comparison
+ ..<=
+ ..>
+ ..>=
+ ..Choice
+ ..min
+ ..max
+ ($.default /.functor)]
+ []))
diff --git a/stdlib/source/documentation/lux/abstract/predicate.lux b/stdlib/source/documentation/lux/abstract/predicate.lux
new file mode 100644
index 000000000..a71326b98
--- /dev/null
+++ b/stdlib/source/documentation/lux/abstract/predicate.lux
@@ -0,0 +1,50 @@
+(.module:
+ [library
+ [lux
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Predicate
+ "A question that can be asked of a value, yield either false (#0) or true (#1).")
+
+(documentation: /.none
+ "A predicate that always fails.")
+
+(documentation: /.or
+ "A predicate that meets either predecessor.")
+
+(documentation: /.all
+ "A predicate that always succeeds.")
+
+(documentation: /.and
+ "A predicate that meets both predecessors.")
+
+(documentation: /.complement
+ "The opposite of a predicate.")
+
+(documentation: /.difference
+ "A predicate that meeds 'base', but not 'sub'.")
+
+(documentation: /.rec
+ "Ties the knot for a recursive predicate.")
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Predicate
+ ..none
+ ..or
+ ..all
+ ..and
+ ..complement
+ ..difference
+ ..rec
+ ($.default /.union)
+ ($.default /.intersection)
+ ($.default /.functor)]
+ []))
diff --git a/stdlib/source/documentation/lux/control.lux b/stdlib/source/documentation/lux/control.lux
new file mode 100644
index 000000000..4fcbe7a98
--- /dev/null
+++ b/stdlib/source/documentation/lux/control.lux
@@ -0,0 +1,61 @@
+(.module:
+ [library
+ [lux #*
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]
+ [collection
+ ["." list]]]]]
+ ["." / #_
+ ["#." concatenative]
+ ["#." concurrency]
+ ["#." continuation]
+ ["#." exception]
+ ["#." function]
+ ["#." io]
+ ["#." lazy]
+ ["#." maybe]
+ ... ["#." parser]
+ ... ["#." pipe]
+ ... ["#." reader]
+ ... ["#." region]
+ ... ["#." remember]
+ ... [security
+ ... ["#." policy]
+ ... ["#." capability]]
+ ... ["#." state]
+ ... ["#." thread]
+ ... ["#." try]
+ ... ["#." writer]
+ ])
+
+... (def: security
+... Test
+... ($_ _.and
+... /policy.documentation
+... /capability.documentation
+... ))
+
+(.def: .public documentation
+ (.List $.Module)
+ (list.joined
+ (list /concatenative.documentation
+ /concurrency.documentation
+ /continuation.documentation
+ /exception.documentation
+ /function.documentation
+ /io.documentation
+ /lazy.documentation
+ /maybe.documentation
+ ... /parser.documentation
+ ... /pipe.documentation
+ ... /reader.documentation
+ ... /region.documentation
+ ... /remember.documentation
+ ... ..security
+ ... /state.documentation
+ ... /thread.documentation
+ ... /try.documentation
+ ... /writer.documentation
+ )))
diff --git a/stdlib/source/documentation/lux/control/concatenative.lux b/stdlib/source/documentation/lux/control/concatenative.lux
new file mode 100644
index 000000000..495bc5512
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concatenative.lux
@@ -0,0 +1,288 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]
+ [collection
+ ["." list ("#\." monad)]]]
+ [macro
+ ["." template]]
+ [math
+ [number
+ ["n" nat]
+ ["i" int]
+ ["r" rev]
+ ["f" frac]]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.=>
+ "Concatenative function types."
+ [(=> [Nat] [Nat])]
+ [(All [a]
+ (-> a (=> [] [a])))]
+ [(All [t]
+ (=> [t] []))]
+ [(All [a b c]
+ (=> [a b c] [b c a]))]
+ [(All [___a ___z]
+ (=> {then (=> ___a ___z)
+ else (=> ___a ___z)}
+ ___a [Bit then else] ___z))])
+
+(documentation: /.||>
+ "A self-contained sequence of concatenative instructions."
+ [(same? value
+ (||> (push sample)))]
+ [(||> (push 123)
+ dup
+ n/=)])
+
+(documentation: /.word:
+ "A named concatenative function."
+ [(word: square
+ (=> [Nat] [Nat])
+
+ dup
+ (apply/2 n.*))])
+
+(documentation: /.apply
+ "A generator for functions that turn arity N functions into arity N concatenative functions."
+ [(: (=> [Nat] [Nat])
+ ((apply 1) inc))])
+
+(template [<arity>]
+ [(with_expansions [<name> (template.identifier [/._] ["apply/" <arity>])
+ <doc> (template.text ["Lift a function of arity " <arity>
+ " into a concatenative function of arity " <arity> "."])
+ <function_of_arity> (template.identifier ["function_of_arity_" <arity>])]
+ (documentation: <name>
+ <doc>
+ [(<arity> <function_of_arity>)]))]
+
+ [1] [2] [3] [4]
+ [5] [6] [7] [8]
+ )
+
+(documentation: /.push
+ "Push a value onto the stack.")
+
+(documentation: /.drop
+ "Drop/pop a value from the top of the stack.")
+
+(documentation: /.nip
+ "Drop the second-to-last value from the top of the stack.")
+
+(documentation: /.dup
+ "Duplicate the top of the stack.")
+
+(documentation: /.swap
+ "Swaps the 2 topmost stack values.")
+
+(documentation: /.rotL
+ "Rotes the 3 topmost stack values to the left.")
+
+(documentation: /.rotR
+ "Rotes the 3 topmost stack values to the right.")
+
+(documentation: /.&&
+ "Groups the 2 topmost stack values as a 2-tuple.")
+
+(documentation: /.||L
+ "Left-injects the top into sum.")
+
+(documentation: /.||R
+ "Right-injects the top into sum.")
+
+(template [<input> <word> <func>]
+ [(`` (documentation: (~~ (template.identifier [/._] [<word>]))
+ (~~ (template.text [<func> " for " <input> " arithmetic."]))))]
+
+ [Nat n/+ n.+]
+ [Nat n/- n.-]
+ [Nat n/* n.*]
+ [Nat n// n./]
+ [Nat n/% n.%]
+ [Nat n/= n.=]
+ [Nat n/< n.<]
+ [Nat n/<= n.<=]
+ [Nat n/> n.>]
+ [Nat n/>= n.>=]
+
+ [Int i/+ i.+]
+ [Int i/- i.-]
+ [Int i/* i.*]
+ [Int i// i./]
+ [Int i/% i.%]
+ [Int i/= i.=]
+ [Int i/< i.<]
+ [Int i/<= i.<=]
+ [Int i/> i.>]
+ [Int i/>= i.>=]
+
+ [Rev r/+ r.+]
+ [Rev r/- r.-]
+ [Rev r/* r.*]
+ [Rev r// r./]
+ [Rev r/% r.%]
+ [Rev r/= r.=]
+ [Rev r/< r.<]
+ [Rev r/<= r.<=]
+ [Rev r/> r.>]
+ [Rev r/>= r.>=]
+
+ [Frac f/+ f.+]
+ [Frac f/- f.-]
+ [Frac f/* f.*]
+ [Frac f// f./]
+ [Frac f/% f.%]
+ [Frac f/= f.=]
+ [Frac f/< f.<]
+ [Frac f/<= f.<=]
+ [Frac f/> f.>]
+ [Frac f/>= f.>=]
+ )
+
+(documentation: /.if
+ "If expression."
+ [(same? "then"
+ (||> (push true)
+ (push "then")
+ (push "else")
+ if))])
+
+(documentation: /.call
+ "Executes an anonymous block on the stack.")
+
+(documentation: /.loop
+ "Executes a block as a loop until it yields #0 to stop.")
+
+(documentation: /.dip
+ "Executes a block on the stack, save for the topmost value.")
+
+(documentation: /.dip/2
+ "Executes a block on the stack, save for the 2 topmost values.")
+
+(documentation: /.do
+ "Do-while loop expression."
+ [(n.= (inc sample)
+ (||> (push sample)
+ (push (push false))
+ (push (|>> (push 1) n/+))
+ do while))])
+
+(documentation: /.while
+ "While loop expression."
+ [(n.= (n.+ distance start)
+ (||> (push start)
+ (push (|>> dup
+ (push start) n/-
+ (push distance) n/<))
+ (push (|>> (push 1) n/+))
+ while))])
+
+(documentation: /.compose
+ "Function composition."
+ [(n.= (n.+ 2 sample)
+ (||> (push sample)
+ (push (|>> (push 1) n/+))
+ (push (|>> (push 1) n/+))
+ compose
+ call))])
+
+(documentation: /.partial
+ "Partial application."
+ [(n.= (n.+ sample sample)
+ (||> (push sample)
+ (push sample)
+ (push n/+)
+ partial
+ call))])
+
+(documentation: /.when
+ "Only execute the block when #1.")
+
+(documentation: /.?
+ "Choose the top value when #0 and the second-to-top when #1.")
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..=>
+ ..||>
+ ..word:
+ ..apply
+ ..apply/1
+ ..apply/2
+ ..apply/3
+ ..apply/4
+ ..apply/5
+ ..apply/6
+ ..apply/7
+ ..apply/8
+ ..push
+ ..drop
+ ..nip
+ ..dup
+ ..swap
+ ..rotL
+ ..rotR
+ ..&&
+ ..||L
+ ..||R
+ ..if
+ ..call
+ ..loop
+ ..dip
+ ..dip/2
+ ..do
+ ..while
+ ..compose
+ ..partial
+ ..when
+ ..?
+
+ ..n/+
+ ..n/-
+ ..n/*
+ ..n//
+ ..n/%
+ ..n/=
+ ..n/<
+ ..n/<=
+ ..n/>
+ ..n/>=
+ ..i/+
+ ..i/-
+ ..i/*
+ ..i//
+ ..i/%
+ ..i/=
+ ..i/<
+ ..i/<=
+ ..i/>
+ ..i/>=
+ ..r/+
+ ..r/-
+ ..r/*
+ ..r//
+ ..r/%
+ ..r/=
+ ..r/<
+ ..r/<=
+ ..r/>
+ ..r/>=
+ ..f/+
+ ..f/-
+ ..f/*
+ ..f//
+ ..f/%
+ ..f/=
+ ..f/<
+ ..f/<=
+ ..f/>
+ ..f/>=]
+ []))
diff --git a/stdlib/source/documentation/lux/control/concurrency.lux b/stdlib/source/documentation/lux/control/concurrency.lux
new file mode 100644
index 000000000..f9b751494
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concurrency.lux
@@ -0,0 +1,28 @@
+(.module:
+ [library
+ [lux #*
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]
+ [collection
+ ["." list]]]]]
+ ["." / #_
+ ["#." actor]
+ ["#." async]
+ ["#." atom]
+ ["#." frp]
+ ["#." semaphore]
+ ["#." stm]
+ ["#." thread]])
+
+(.def: .public documentation
+ (.List $.Module)
+ (list.joined
+ (list /actor.documentation
+ /async.documentation
+ /atom.documentation
+ /frp.documentation
+ /semaphore.documentation
+ /stm.documentation
+ /thread.documentation)))
diff --git a/stdlib/source/documentation/lux/control/concurrency/actor.lux b/stdlib/source/documentation/lux/control/concurrency/actor.lux
new file mode 100644
index 000000000..29513888c
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concurrency/actor.lux
@@ -0,0 +1,131 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]
+ [collection
+ ["." list ("#\." monad)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Actor
+ "An entity that can react to messages (mail) sent to it concurrently.")
+
+(documentation: /.Mail
+ "A one-way message sent to an actor, without expecting a reply.")
+
+(documentation: /.Obituary
+ "Details on the death of an actor.")
+
+(documentation: /.Behavior
+ "An actor's behavior when mail is received and when a fatal error occurs.")
+
+(documentation: /.spawn!
+ "Given a behavior and initial state, spawns an actor and returns it.")
+
+(documentation: /.obituary
+ "Await for an actor to stop working.")
+
+(documentation: /.mail!
+ "Send mail to an actor.")
+
+(documentation: /.Message
+ "A two-way message sent to an actor, expecting a reply.")
+
+(documentation: /.tell!
+ "Communicate with an actor through message-passing.")
+
+(documentation: /.default
+ "Default actor behavior.")
+
+(documentation: /.poison!
+ (format "Kills the actor by sending mail that will kill it upon processing,"
+ \n "but allows the actor to handle previous mail."))
+
+(with_expansions [<examples> (as_is (actor: .public (stack a)
+ {}
+
+ (List a)
+
+ ((on_mail mail state self)
+ (do (try.with async.monad)
+ [.let [_ (debug.log! "BEFORE")]
+ output (mail state self)
+ .let [_ (debug.log! "AFTER")]]
+ (in output)))
+
+ (message: .public (push {value a} state self)
+ (List a)
+ (let [state' (#.Item value state)]
+ (async.resolved (#try.Success [state' state'])))))
+
+ (actor: .public counter
+ {}
+
+ Nat
+
+ (message: .public (count! {increment Nat} state self)
+ Any
+ (let [state' (n.+ increment state)]
+ (async.resolved (#try.Success [state' state']))))
+
+ (message: .public (read! state self)
+ Nat
+ (async.resolved (#try.Success [state state])))))]
+ (documentation: /.actor:
+ (format "Defines a named actor, with its behavior and internal state."
+ \n "Messages for the actor must be defined after the on_mail handler.")
+ [<examples>])
+
+ (documentation: /.actor
+ (format "Defines an anonymous actor, with its behavior and internal state."
+ \n "Messages for the actor must be defined after the on_mail handler.")
+ [(actor {Nat
+ 123}
+ ((on_mail message state self)
+ (message (inc state) self)))])
+
+ (documentation: /.message:
+ (format "A message can access the actor's state through the state parameter."
+ \n "A message can also access the actor itself through the self parameter."
+ \n "A message's output must be an async containing a 2-tuple with the updated state and a return value."
+ \n "A message may succeed or fail (in case of failure, the actor dies).")
+ [<examples>]))
+
+(documentation: /.Stop
+ "A signal to stop an actor from observing a channel.")
+
+(documentation: /.observe!
+ (format "Use an actor to observe a channel by transforming each datum"
+ \n "flowing through the channel into mail the actor can process."
+ \n "Can stop observing the channel by executing the Stop value."))
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ "The actor model of concurrency."
+ [..Actor
+ ..Mail
+ ..Obituary
+ ..Behavior
+ ..spawn!
+ ..obituary
+ ..mail!
+ ..Message
+ ..tell!
+ ..default
+ ..poison!
+ ..actor:
+ ..actor
+ ..message:
+ ..Stop
+ ..observe!
+ ($.default /.poisoned)
+ ($.default /.dead)
+ ($.default /.alive?)
+ ($.default /.obituary')]
+ []))
diff --git a/stdlib/source/documentation/lux/control/concurrency/async.lux b/stdlib/source/documentation/lux/control/concurrency/async.lux
new file mode 100644
index 000000000..2842ed06b
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concurrency/async.lux
@@ -0,0 +1,96 @@
+(.module:
+ [library
+ [lux (#- or and)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Async
+ "Represents values produced by asynchronous computations (unlike IO, which is synchronous).")
+
+(documentation: /.Resolver
+ (format "The function used to give a value to an async."
+ \n "Will signal 'true' if the async has been resolved for the 1st time, 'false' otherwise."))
+
+(documentation: /.resolved
+ "Produces an async that has already been resolved to the given value."
+ [(resolved value)])
+
+(documentation: /.async
+ "Creates a fresh async that has not been resolved yet."
+ [(async _)])
+
+(documentation: /.value
+ "Polls an async for its value.")
+
+(documentation: /.upon!
+ "Executes the given function as soon as the async has been resolved."
+ [(upon! function async)])
+
+(documentation: /.resolved?
+ "Checks whether an async's value has already been resolved.")
+
+(documentation: /.and
+ "Combines the results of both asyncs, in-order."
+ [(and left right)])
+
+(documentation: /.or
+ (format "Yields the results of whichever async gets resolved first."
+ \n "You can tell which one was resolved first through pattern-matching.")
+ [(or left right)])
+
+(documentation: /.either
+ (format "Yields the results of whichever async gets resolved first."
+ \n "You cannot tell which one was resolved first.")
+ [(either left right)])
+
+(documentation: /.schedule!
+ (format "Runs an I/O computation on its own thread (after a specified delay)."
+ \n "Returns an async that will eventually host its result.")
+ [(schedule! milli_seconds computation)])
+
+(documentation: /.future
+ (format "Runs an I/O computation on its own thread."
+ \n "Returns an async that will eventually host its result.")
+ [(future computation)])
+
+(documentation: /.delayed
+ "Delivers a value after a certain period has passed."
+ [(delayed milli_seconds value)])
+
+(documentation: /.delay
+ "An async that will be resolved after the specified amount of milli-seconds."
+ [(delay milli_seconds)])
+
+(documentation: /.time_out
+ "Wait for an async to be resolved within the specified amount of milli-seconds."
+ [(time_out milli_seconds async)])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Async
+ ..Resolver
+ ..resolved
+ ..async
+ ..value
+ ..upon!
+ ..resolved?
+ ..and
+ ..or
+ ..either
+ ..schedule!
+ ..future
+ ..delayed
+ ..delay
+ ..time_out
+ ($.default /.functor)
+ ($.default /.apply)
+ ($.default /.monad)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/concurrency/atom.lux b/stdlib/source/documentation/lux/control/concurrency/atom.lux
new file mode 100644
index 000000000..8b35c1c7e
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concurrency/atom.lux
@@ -0,0 +1,39 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Atom
+ "Atomic references that are safe to mutate concurrently.")
+
+(documentation: /.compare_and_swap!
+ (format "Only mutates an atom if you can present its current value."
+ \n "That guarantees that atom was not updated since you last read from it."))
+
+(documentation: /.update!
+ (format "Updates an atom by applying a function to its current value."
+ \n "If it fails to update it (because some other process wrote to it first), it will retry until it succeeds."
+ \n "The retries will be done with the new values of the atom, as they show up."))
+
+(documentation: /.write!
+ (format "Writes the given value to an atom."
+ \n "If it fails to write it (because some other process wrote to it first), it will retry until it succeeds."))
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Atom
+ ..compare_and_swap!
+ ..update!
+ ..write!
+ ($.default /.atom)
+ ($.default /.read!)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/concurrency/frp.lux b/stdlib/source/documentation/lux/control/concurrency/frp.lux
new file mode 100644
index 000000000..71f740782
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concurrency/frp.lux
@@ -0,0 +1,66 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Channel
+ "An asynchronous channel to distribute values.")
+
+(documentation: /.Sink
+ "The tail-end of a channel, which can be written-to to fee the channel.")
+
+(documentation: /.channel
+ "Creates a brand-new channel and hands it over, along with the sink to write to it."
+ [(channel _)])
+
+(documentation: /.Subscriber
+ "A function that can receive every value fed into a channel.")
+
+(documentation: /.only
+ (format "Produces a new channel based on the old one, only with values"
+ \n "that pass the test.")
+ [(only pass? channel)])
+
+(documentation: /.of_async
+ "A one-element channel containing the output from an async."
+ [(of_async async)])
+
+(documentation: /.fold
+ "Asynchronous fold over channels."
+ [(fold f init channel)])
+
+(documentation: /.sequential
+ "Transforms the given list into a channel with the same elements."
+ [(sequential milli_seconds values)])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Channel
+ ..Sink
+ ..channel
+ ..Subscriber
+ ..only
+ ..of_async
+ ..fold
+ ..sequential
+ ($.default /.channel_is_already_closed)
+ ($.default /.functor)
+ ($.default /.apply)
+ ($.default /.monad)
+ ($.default /.subscribe!)
+ ($.default /.folds)
+ ($.default /.poll)
+ ($.default /.periodic)
+ ($.default /.iterations)
+ ($.default /.distinct)
+ ($.default /.list)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/concurrency/semaphore.lux b/stdlib/source/documentation/lux/control/concurrency/semaphore.lux
new file mode 100644
index 000000000..4530b5455
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concurrency/semaphore.lux
@@ -0,0 +1,69 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Semaphore
+ "A tool for controlling access to resources by multiple concurrent processes.")
+
+(documentation: /.semaphore
+ ""
+ [(semaphore initial_open_positions)])
+
+(documentation: /.wait!
+ (format "Wait on a semaphore until there are open positions."
+ \n "After finishing your work, you must 'signal' to the semaphore that you're done.")
+ [(wait! semaphore)])
+
+(documentation: /.signal!
+ "Signal to a semaphore that you're done with your work, and that there is a new open position."
+ [(signal! semaphore)])
+
+(documentation: /.Mutex
+ "A mutual-exclusion lock that can only be acquired by one process at a time.")
+
+(documentation: /.mutex
+ "Creates a brand-new mutex."
+ [(mutex _)])
+
+(documentation: /.synchronize!
+ "Runs the procedure with exclusive control of the mutex."
+ [(synchronize! mutex procedure)])
+
+(documentation: /.limit
+ "Produce a limit for a barrier.")
+
+(documentation: /.Limit
+ "A limit for barriers.")
+
+(documentation: /.Barrier
+ "A barrier that blocks all processes from proceeding until a given number of processes are parked at the barrier.")
+
+(documentation: /.block!
+ "Wait on a barrier until all processes have arrived and met the barrier's limit.")
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Semaphore
+ ..semaphore
+ ..wait!
+ ..signal!
+ ..Mutex
+ ..mutex
+ ..synchronize!
+ ..limit
+ ..Limit
+ ..Barrier
+ ..block!
+ ($.default /.semaphore_is_maxed_out)
+ ($.default /.barrier)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/concurrency/stm.lux b/stdlib/source/documentation/lux/control/concurrency/stm.lux
new file mode 100644
index 000000000..ebb46e87a
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concurrency/stm.lux
@@ -0,0 +1,52 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Var
+ "A mutable cell containing a value, and observers that will be alerted of any change to it.")
+
+(documentation: /.var
+ "Creates a new STM var, with a default value."
+ [(var value)])
+
+(documentation: /.follow!
+ "Creates a channel that will receive all changes to the value of the given var."
+ [(follow! target)])
+
+(documentation: /.STM
+ "A computation which updates a transaction and produces a value.")
+
+(documentation: /.update
+ "Update a var's value, and return a tuple with the old and the new values."
+ [(update function var)])
+
+(documentation: /.commit!
+ (format "Commits a transaction and returns its result (asynchronously)."
+ \n "Note that a transaction may be re-run an indeterminate number of times if other transactions involving the same variables successfully commit first."
+ \n "For this reason, it's important to note that transactions must be free from side-effects, such as I/O.")
+ [(commit! procedure)])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Var
+ ..var
+ ..follow!
+ ..STM
+ ..update
+ ..commit!
+ ($.default /.read)
+ ($.default /.write)
+ ($.default /.functor)
+ ($.default /.apply)
+ ($.default /.monad)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/concurrency/thread.lux b/stdlib/source/documentation/lux/control/concurrency/thread.lux
new file mode 100644
index 000000000..6de9b7fb7
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/concurrency/thread.lux
@@ -0,0 +1,26 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.parallelism
+ "How many processes can run in parallel.")
+
+(documentation: /.schedule!
+ "Executes an I/O procedure after some milli-seconds."
+ [(schedule! milli_seconds action)])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..parallelism
+ ..schedule!]
+ []))
diff --git a/stdlib/source/documentation/lux/control/continuation.lux b/stdlib/source/documentation/lux/control/continuation.lux
new file mode 100644
index 000000000..ebb778373
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/continuation.lux
@@ -0,0 +1,53 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Cont
+ "Continuations.")
+
+(documentation: /.continued
+ "Continues a continuation thunk."
+ [(continued next cont)])
+
+(documentation: /.result
+ "Forces a continuation thunk to be evaluated."
+ [(result cont)])
+
+(documentation: /.with_current
+ "Call with current continuation."
+ [(with_current
+ (function (_ go)
+ (do /.monad
+ [.let [nexus (function (nexus val)
+ (go [nexus val]))]
+ _ (go [nexus init])]
+ (in (undefined)))))])
+
+(documentation: /.pending
+ "Turns any expression into a function that is pending a continuation."
+ [(pending (some_function some_input))])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Cont
+ ..continued
+ ..result
+ ..with_current
+ ..pending
+ ($.default /.reset)
+ ($.default /.shift)
+ ($.default /.functor)
+ ($.default /.apply)
+ ($.default /.monad)
+ ($.default /.portal)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/exception.lux b/stdlib/source/documentation/lux/control/exception.lux
new file mode 100644
index 000000000..ec225630a
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/exception.lux
@@ -0,0 +1,78 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Exception
+ "An exception provides a way to decorate error messages.")
+
+(documentation: /.match?
+ "Is this exception the cause of the error message?"
+ [(match? exception error)])
+
+(documentation: /.when
+ (format "If a particular exception is detected on a possibly-erroneous value, handle it."
+ \n "If no exception was detected, or a different one from the one being checked, then pass along the original value.")
+ [(when exception then try)])
+
+(documentation: /.otherwise
+ "If no handler could be found to catch the exception, then run a function as a last-resort measure."
+ [(otherwise else try)])
+
+(documentation: /.error
+ "Constructs an error message from an exception."
+ [(error exception message)])
+
+(documentation: /.except
+ "Decorate an error message with an Exception and lift it into the error-handling context."
+ [(except exception message)])
+
+(documentation: /.exception:
+ (format "Define a new exception type."
+ \n "It mostly just serves as a way to tag error messages for later catching.")
+ ["Simple case:"
+ (exception: .public some_exception)]
+ ["Complex case:"
+ (exception: .public [arbitrary type variables] (some_exception {optional Text} {arguments Int})
+ optional_body)])
+
+(documentation: /.report
+ "An error report."
+ [(: Text
+ (report ["Row 0" value/0]
+ ["Row 1" value/1]
+ ,,,
+ ["Row N" value/N]))])
+
+(documentation: /.listing
+ (format "A numbered report of the entries on a list."
+ \n "NOTE: 0-based numbering.")
+ [(listing format entries)])
+
+(documentation: /.with
+ "If a computation fails, prepends the exception to the error."
+ [(with exception message computation)])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Exception
+ ..match?
+ ..when
+ ..otherwise
+ ..error
+ ..except
+ ..exception:
+ ..report
+ ..listing
+ ..with
+ ($.default /.assertion)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/function.lux b/stdlib/source/documentation/lux/control/function.lux
new file mode 100644
index 000000000..889cc8655
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/function.lux
@@ -0,0 +1,48 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.identity
+ (format "Identity function."
+ \n "Does nothing to its argument and just returns it.")
+ [(same? (identity value)
+ value)])
+
+(documentation: /.composite
+ "Function composition."
+ [(= ((composite f g) "foo")
+ (f (g "foo")))])
+
+(documentation: /.constant
+ "Create constant functions."
+ [(= ((constant "foo") "bar")
+ "foo")])
+
+(documentation: /.flipped
+ "Flips the order of the arguments of a function."
+ [(= ((flipped f) "foo" "bar")
+ (f "bar" "foo"))])
+
+(documentation: /.apply
+ "Simple 1-argument function application."
+ [(apply input function)])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..identity
+ ..composite
+ ..constant
+ ..flipped
+ ..apply
+ ($.default /.monoid)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/io.lux b/stdlib/source/documentation/lux/control/io.lux
new file mode 100644
index 000000000..81cf08740
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/io.lux
@@ -0,0 +1,36 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.IO
+ "A type that represents synchronous, effectful computations that may interact with the outside world.")
+
+(documentation: /.io
+ (format "Delays the evaluation of an expression, by wrapping it in an IO 'thunk'."
+ \n "Great for wrapping effectful computations (which will not be performed until the IO is 'run!').")
+ [(io (exec
+ (log! msg)
+ "Some value..."))])
+
+(documentation: /.run!
+ "A way to execute IO computations and perform their side-effects.")
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..IO
+ ..io
+ ..run!
+ ($.default /.functor)
+ ($.default /.apply)
+ ($.default /.monad)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/lazy.lux b/stdlib/source/documentation/lux/control/lazy.lux
new file mode 100644
index 000000000..7a5b3217d
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/lazy.lux
@@ -0,0 +1,32 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.Lazy
+ (format "A value specified by an expression that is calculated only at the last moment possible."
+ \n "Afterwards, the value is cached for future reference."))
+
+(documentation: /.lazy
+ "Specifies a lazy value by providing the expression that computes it."
+ [(lazy eager_computation)])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..Lazy
+ ..lazy
+ ($.default /.value)
+ ($.default /.equivalence)
+ ($.default /.functor)
+ ($.default /.apply)
+ ($.default /.monad)]
+ []))
diff --git a/stdlib/source/documentation/lux/control/maybe.lux b/stdlib/source/documentation/lux/control/maybe.lux
new file mode 100644
index 000000000..dabdcde5e
--- /dev/null
+++ b/stdlib/source/documentation/lux/control/maybe.lux
@@ -0,0 +1,57 @@
+(.module:
+ [library
+ [lux (#- if loop)
+ ["$" documentation (#+ documentation:)]
+ [data
+ [text (#+ \n)
+ ["%" format (#+ format)]]]
+ [macro
+ ["." template]]]]
+ [\\library
+ ["." /]])
+
+(documentation: /.lifted
+ "Wraps a monadic value with Maybe machinery."
+ [(lifted monad)])
+
+(documentation: /.else
+ (format "Allows you to provide a default value that will be used"
+ \n "if a (Maybe x) value turns out to be #.None."
+ \n "Note: the expression for the default value will not be computed if the base computation succeeds.")
+ [(else +20 (#.Some +10))
+ "=>"
+ +10]
+ [(else +20 #.None)
+ "=>"
+ +20])
+
+(documentation: /.trusted
+ (format "Assumes that a Maybe value is a #.Some and yields its value."
+ \n "Raises/throws a runtime error otherwise."
+ \n "WARNING: Use with caution.")
+ [(trusted trusted_computation)])
+
+(documentation: /.when
+ "Can be used as a guard in (co)monadic be/do expressions."
+ [(do monad
+ [value (do_something 1 2 3)
+ /.when (passes_test? value)]
+ (do_something_else 4 5 6))])
+
+(.def: .public documentation
+ (.List $.Module)
+ ($.module /._
+ ""
+ [..lifted
+ ..else
+ ..trusted
+ ..when
+ ($.default /.monoid)
+ ($.default /.functor)
+ ($.default /.apply)
+ ($.default /.monad)
+ ($.default /.equivalence)
+ ($.default /.hash)
+ ($.default /.with)
+ ($.default /.list)]
+ []))
diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux
index f534a51d9..f9be2bf36 100644
--- a/stdlib/source/library/lux.lux
+++ b/stdlib/source/library/lux.lux
@@ -1981,7 +1981,7 @@
(failure "Wrong syntax for <|")}
(list\reverse tokens)))
-(def:''' .private (compose f g)
+(def:''' .private (function\composite f g)
(list [(tag$ ["library/lux" "doc"])
(text$ "Function composition.")])
(All [a b c]
@@ -2097,7 +2097,7 @@
#1
("lux i64 =" reference sample)))
-(def:''' .private (list\join xs)
+(def:''' .private (list\joined xs)
#End
(All [a]
(-> ($' List ($' List a)) ($' List a)))
@@ -2119,8 +2119,8 @@
(if (every? (function' [size] ("lux i64 =" num_bindings size))
(list\map list\size data'))
(|> data'
- (list\map (compose apply (replacement_environment bindings')))
- list\join
+ (list\map (function\composite apply (replacement_environment bindings')))
+ list\joined
in_meta)
(failure "Irregular arguments tuples for template.")))
@@ -2355,7 +2355,7 @@
(do meta_monad
[top_level_expansion (("lux type as" Macro' macro) args)
recursive_expansion (monad\map meta_monad expansion top_level_expansion)]
- (in (list\join recursive_expansion)))
+ (in (list\joined recursive_expansion)))
#None
(in_meta (list token))}
@@ -2376,23 +2376,23 @@
(do meta_monad
[expansion (("lux type as" Macro' macro) args)
expansion' (monad\map meta_monad full_expansion expansion)]
- (in (list\join expansion')))
+ (in (list\joined expansion')))
#None
(do meta_monad
[args' (monad\map meta_monad full_expansion args)]
- (in (list (form$ (#Item (identifier$ name) (list\join args'))))))}
+ (in (list (form$ (#Item (identifier$ name) (list\joined args'))))))}
?macro))
[_ (#Form members)]
(do meta_monad
[members' (monad\map meta_monad full_expansion members)]
- (in (list (form$ (list\join members')))))
+ (in (list (form$ (list\joined members')))))
[_ (#Tuple members)]
(do meta_monad
[members' (monad\map meta_monad full_expansion members)]
- (in (list (tuple$ (list\join members')))))
+ (in (list (tuple$ (list\joined members')))))
[_ (#Record pairs)]
(do meta_monad
@@ -2807,7 +2807,7 @@
_
(let' [pairs (|> patterns
(list\map (function' [pattern] (list pattern body)))
- (list\join))]
+ (list\joined))]
(in_meta (list\compose pairs branches))))
_
(failure "Wrong syntax for ^or")))
@@ -3568,10 +3568,10 @@
_
(failure "Invalid implementation member."))))
- (list\join tokens'))]
+ (list\joined tokens'))]
(in (list (record$ members)))))
-(def: (text\join_with separator parts)
+(def: (text\interposed separator parts)
(-> Text (List Text) Text)
(case parts
#End
@@ -3822,7 +3822,7 @@
_
(failure "Interfaces require typed members!"))))
- (list\join methods')))
+ (list\joined methods')))
.let [def_name (local_identifier$ name)
interface_type (record$ (list\map (: (-> [Text Code] [Code Code])
(function (_ [module_name m_type])
@@ -4010,23 +4010,14 @@
(relative_ups ("lux i64 +" 1 relatives) input)
relatives)))
-(def: (list\take amount list)
- (All [a] (-> Nat (List a) (List a)))
- (case [amount list]
- (^or [0 _] [_ #End])
- #End
-
- [_ (#Item head tail)]
- (#Item head (list\take ("lux i64 -" 1 amount) tail))))
-
-(def: (list\drop amount list)
+(def: (list\after amount list)
(All [a] (-> Nat (List a) (List a)))
(case [amount list]
(^or [0 _] [_ #End])
list
[_ (#Item _ tail)]
- (list\drop ("lux i64 -" 1 amount) tail)))
+ (list\after ("lux i64 -" 1 amount) tail)))
(def: (absolute_module_name nested? relative_root module)
(-> Bit Text Text (Meta Text))
@@ -4042,10 +4033,9 @@
(if (n/< (list\size parts) jumps)
(let [prefix (|> parts
list\reverse
- (list\drop jumps)
+ (list\after jumps)
list\reverse
- (list\interposed ..module_separator)
- (text\join_with ""))
+ (text\interposed ..module_separator))
clean ("lux text clip" relatives (|> module "lux text size" ("lux i64 -" relatives)) module)
output (case ("lux text size" clean)
0 prefix
@@ -4130,7 +4120,7 @@
"Wrong syntax for import @ " current_module
..\n (code\encode token)))))))
imports)]
- (in (list\join imports'))))
+ (in (list\joined imports'))))
(def: (exported_definitions module state)
(-> Text (Meta (List Text)))
@@ -4155,7 +4145,7 @@
(list)))))
(let [{#module_hash _ #module_aliases _ #definitions definitions #imports _ #tags tags #types types #module_annotations _ #module_state _} =module]
definitions))]
- (#Right state (list\join to_alias)))
+ (#Right state (list\joined to_alias)))
#None
(#Left ($_ text\compose
@@ -4541,7 +4531,7 @@
(function (_ [sub_tag_index sname stype])
(open_declaration alias tags' sub_tag_index sname source+ stype)))
(enumeration (zipped/2 tags' members')))]
- (in_meta (list\join decls')))
+ (in_meta (list\joined decls')))
_
(in_meta (list (` ("lux def" (~ (local_identifier$ (..module_alias "" short alias)))
@@ -4576,7 +4566,7 @@
(function (_ [tag_index sname stype])
(open_declaration alias tags tag_index sname source stype)))
(enumeration (zipped/2 tags members)))]
- (in_meta (list\join decls')))
+ (in_meta (list\joined decls')))
_
(failure (text\compose "Can only 'open:' structs: " (type\encode struct_type)))))
@@ -4685,7 +4675,7 @@
(list\map (function (_ name)
(` (open: (~ (text$ alias)) (~ (identifier$ [module_name name])))))
structs))))
- list\join)]]
+ list\joined)]]
(in (list\compose defs openings))))
(macro: (refer tokens)
@@ -4851,7 +4841,7 @@
(#Item (list new_binding old_record) accesses')]))
[record (: (List (List Code)) #End)]
pairs)
- accesses (list\join (list\reverse accesses'))]]
+ accesses (list\joined (list\reverse accesses'))]]
(in (list (` (let [(~+ accesses)]
(~ update_expr)))))))
@@ -4998,8 +4988,8 @@
(let [apply (: (-> Replacement_Environment (List Code))
(function (_ env) (list\map (realized_template env) templates)))]
(|> data'
- (list\map (compose apply (replacement_environment bindings')))
- list\join
+ (list\map (function\composite apply (replacement_environment bindings')))
+ list\joined
in))
#None))))
(#Some output)
@@ -5074,9 +5064,9 @@
(def: (location_padding baseline [_ old_line old_column] [_ new_line new_column])
(-> Nat Location Location Text)
(if ("lux i64 =" old_line new_line)
- (text\join_with "" (repeated (.int ("lux i64 -" old_column new_column)) " "))
- (let [extra_lines (text\join_with "" (repeated (.int ("lux i64 -" old_line new_line)) ..\n))
- space_padding (text\join_with "" (repeated (.int ("lux i64 -" baseline new_column)) " "))]
+ (text\interposed "" (repeated (.int ("lux i64 -" old_column new_column)) " "))
+ (let [extra_lines (text\interposed "" (repeated (.int ("lux i64 -" old_line new_line)) ..\n))
+ space_padding (text\interposed "" (repeated (.int ("lux i64 -" baseline new_column)) " "))]
(text\compose extra_lines space_padding))))
(def: (text\size x)
@@ -5093,7 +5083,7 @@
(function (_ [left right])
(list left right)))]
(|>> (list\map pair_list)
- list\join)))
+ list\joined)))
(def: (example_documentation prev_location baseline example)
(-> Location Nat Code [Location Text])
@@ -5139,7 +5129,7 @@
(|> comment
(text\all_split_by ..\n)
(list\map (function (_ line) ($_ text\compose "... " line ..\n)))
- (text\join_with ""))
+ (text\interposed ""))
(#Documentation_Example example)
(let [baseline (baseline_column example)
@@ -5162,7 +5152,7 @@
(in_meta (list (` [(~ location_code)
(#.Text (~ (|> tokens
(list\map (|>> ..documentation_fragment ..fragment_documentation))
- (text\join_with "")
+ (text\interposed "")
text$)))]))))
(def: (interleaved xs ys)
@@ -5324,7 +5314,7 @@
[[location (<tag> elems)]
(do maybe_monad
[placements (monad\map maybe_monad (with_expansions' label tokens) elems)]
- (in (list [location (<tag> (list\join placements))])))])
+ (in (list [location (<tag> (list\joined placements))])))])
([#Tuple]
[#Form])
@@ -5973,7 +5963,7 @@
.let [[labels labelled] =raw]]
(in (list (` (with_expansions [(~+ (|> labels
(list\map (function (_ [label expansion]) (list label expansion)))
- list\join))]
+ list\joined))]
(~ labelled))))))
_
diff --git a/stdlib/source/library/lux/abstract/apply.lux b/stdlib/source/library/lux/abstract/apply.lux
index adac4d3a2..7b57f5671 100644
--- a/stdlib/source/library/lux/abstract/apply.lux
+++ b/stdlib/source/library/lux/abstract/apply.lux
@@ -12,13 +12,14 @@
(-> (f (-> a b)) (f a) (f b)))
apply))
-(implementation: .public (compose f_monad f_apply g_apply)
+(implementation: .public (composite f_monad f_apply g_apply)
(All [F G]
(-> (Monad F) (Apply F) (Apply G)
... TODO: Replace (All [a] (F (G a))) with (functor.Then F G)
(Apply (All [a] (F (G a))))))
- (def: &functor (functor.compose (get@ #&functor f_apply) (get@ #&functor g_apply)))
+ (def: &functor
+ (functor.composite (get@ #&functor f_apply) (get@ #&functor g_apply)))
(def: (apply fgf fgx)
... TODO: Switch from this version to the one below (in comments) ASAP.
diff --git a/stdlib/source/library/lux/abstract/codec.lux b/stdlib/source/library/lux/abstract/codec.lux
index 0c3901361..53c95a816 100644
--- a/stdlib/source/library/lux/abstract/codec.lux
+++ b/stdlib/source/library/lux/abstract/codec.lux
@@ -13,7 +13,7 @@
(: (-> m (Try a))
decode))
-(implementation: .public (compose cb_codec ba_codec)
+(implementation: .public (composite cb_codec ba_codec)
(All [a b c]
(-> (Codec c b) (Codec b a)
(Codec c a)))
diff --git a/stdlib/source/library/lux/abstract/fold.lux b/stdlib/source/library/lux/abstract/fold.lux
index 1a7ba054f..ba8a93381 100644
--- a/stdlib/source/library/lux/abstract/fold.lux
+++ b/stdlib/source/library/lux/abstract/fold.lux
@@ -5,13 +5,11 @@
[monoid (#+ Monoid)]])
(interface: .public (Fold F)
- {#.doc "Iterate over a structure's values to build a summary value."}
(: (All [a b]
(-> (-> b a a) a (F b) a))
fold))
(def: .public (with_monoid monoid fold value)
- {#.doc "Fold over a foldable structure using the monoid's identity as the initial value."}
(All [F a]
(-> (Monoid a) (Fold F) (F a) a))
(let [(^open "/\.") monoid]
diff --git a/stdlib/source/library/lux/abstract/functor.lux b/stdlib/source/library/lux/abstract/functor.lux
index d06f82ed7..6f7053018 100644
--- a/stdlib/source/library/lux/abstract/functor.lux
+++ b/stdlib/source/library/lux/abstract/functor.lux
@@ -38,7 +38,7 @@
(type: .public (Then f g)
(All [a] (f (g a))))
-(def: .public (compose (^open "f\.") (^open "g\."))
+(def: .public (composite (^open "f\.") (^open "g\."))
(All [F G] (-> (Functor F) (Functor G) (Functor (..Then F G))))
(implementation
(def: (map f fga)
diff --git a/stdlib/source/library/lux/abstract/functor/contravariant.lux b/stdlib/source/library/lux/abstract/functor/contravariant.lux
index 1cf16ce24..9c5fe673a 100644
--- a/stdlib/source/library/lux/abstract/functor/contravariant.lux
+++ b/stdlib/source/library/lux/abstract/functor/contravariant.lux
@@ -3,8 +3,6 @@
[lux #*]])
(interface: .public (Functor f)
- {#.doc (example "The contravariant functor.")}
-
(: (All [a b]
(-> (-> b a)
(-> (f a) (f b))))
diff --git a/stdlib/source/library/lux/abstract/hash.lux b/stdlib/source/library/lux/abstract/hash.lux
index 3a27317de..3180691f3 100644
--- a/stdlib/source/library/lux/abstract/hash.lux
+++ b/stdlib/source/library/lux/abstract/hash.lux
@@ -7,8 +7,6 @@
["." contravariant]]])
(interface: .public (Hash a)
- {#.doc (example "A way to produce hash-codes for a type's instances."
- "A necessity when working with some data-structures, such as dictionaries or sets.")}
(: (Equivalence a)
&equivalence)
(: (-> a Nat)
diff --git a/stdlib/source/library/lux/abstract/interval.lux b/stdlib/source/library/lux/abstract/interval.lux
index 5961039b9..cea44c57b 100644
--- a/stdlib/source/library/lux/abstract/interval.lux
+++ b/stdlib/source/library/lux/abstract/interval.lux
@@ -8,7 +8,6 @@
[enum (#+ Enum)]])
(interface: .public (Interval a)
- {#.doc "A representation of top and bottom boundaries for an ordered type."}
(: (Enum a)
&enum)
@@ -70,13 +69,11 @@
)
(def: .public (borders? interval elem)
- {#.doc (example "Where a value is at the border of an interval.")}
(All [a] (-> (Interval a) a Bit))
(or (starts_with? elem interval)
(ends_with? elem interval)))
(implementation: .public (union left right)
- {#.doc (example "An interval that spans both predecessors.")}
(All [a] (-> (Interval a) (Interval a) (Interval a)))
(def: &enum (get@ #&enum right))
@@ -84,7 +81,6 @@
(def: top (order.max (\ right &order) (\ left top) (\ right top))))
(implementation: .public (intersection left right)
- {#.doc (example "An interval spanned by both predecessors.")}
(All [a] (-> (Interval a) (Interval a) (Interval a)))
(def: &enum (get@ #&enum right))
@@ -92,7 +88,6 @@
(def: top (order.min (\ right &order) (\ left top) (\ right top))))
(implementation: .public (complement interval)
- {#.doc (example "The inverse of an interval.")}
(All [a] (-> (Interval a) (Interval a)))
(def: &enum (get@ #&enum interval))
@@ -122,7 +117,6 @@
)
(def: .public (meets? reference sample)
- {#.doc (example "Whether an interval meets another one on its bottom/lower side.")}
(All [a] (-> (Interval a) (Interval a) Bit))
(let [(^open ",\.") reference
limit (\ reference bottom)]
diff --git a/stdlib/source/library/lux/abstract/monoid.lux b/stdlib/source/library/lux/abstract/monoid.lux
index 4e55a9a3b..53c3288c6 100644
--- a/stdlib/source/library/lux/abstract/monoid.lux
+++ b/stdlib/source/library/lux/abstract/monoid.lux
@@ -10,7 +10,7 @@
(: (-> a a a)
compose))
-(def: .public (compose left right)
+(def: .public (composite left right)
(All [l r] (-> (Monoid l) (Monoid r) (Monoid [l r])))
(implementation
(def: identity
diff --git a/stdlib/source/library/lux/abstract/order.lux b/stdlib/source/library/lux/abstract/order.lux
index 17bb2109d..279c3beb0 100644
--- a/stdlib/source/library/lux/abstract/order.lux
+++ b/stdlib/source/library/lux/abstract/order.lux
@@ -9,8 +9,6 @@
["." contravariant]]])
(interface: .public (Order a)
- {#.doc "A signature for types that possess some sense of ordering among their elements."}
-
(: (Equivalence a)
&equivalence)
@@ -19,37 +17,30 @@
)
(type: .public (Comparison a)
- {#.doc (example "An arbitrary comparison between two values, with the knowledge of how to order them.")}
(-> (Order a) a a Bit))
(def: .public (<= order parameter subject)
- {#.doc (example "Less than or equal.")}
Comparison
(or (\ order < parameter subject)
(\ order = parameter subject)))
(def: .public (> order parameter subject)
- {#.doc (example "Greater than.")}
Comparison
(\ order < subject parameter))
(def: .public (>= order parameter subject)
- {#.doc (example "Greater than or equal.")}
Comparison
(or (\ order < subject parameter)
(\ order = subject parameter)))
(type: .public (Choice a)
- {#.doc (example "A choice comparison between two values, with the knowledge of how to order them.")}
(-> (Order a) a a a))
(def: .public (min order x y)
- {#.doc (example "Minimum.")}
Choice
(if (\ order < y x) x y))
(def: .public (max order x y)
- {#.doc (example "Maximum.")}
Choice
(if (\ order < y x) y x))
diff --git a/stdlib/source/library/lux/abstract/predicate.lux b/stdlib/source/library/lux/abstract/predicate.lux
index a3702c20c..20101f7a9 100644
--- a/stdlib/source/library/lux/abstract/predicate.lux
+++ b/stdlib/source/library/lux/abstract/predicate.lux
@@ -9,29 +9,21 @@
["." contravariant]]])
(type: .public (Predicate a)
- {#.doc (example "A question that can be asked of a value, yield either false (#0) or true (#1).")}
(-> a Bit))
-(template [<identity_name> <identity_value> <composition_name> <composition>
- <identity_doc> <composition_doc>]
+(template [<identity_name> <identity_value> <composition_name> <composition>]
[(def: .public <identity_name>
- {#.doc <identity_doc>}
Predicate
(function.constant <identity_value>))
(def: .public (<composition_name> left right)
- {#.doc <composition_doc>}
(All [a] (-> (Predicate a) (Predicate a) (Predicate a)))
(function (_ value)
(<composition> (left value)
(right value))))]
- [none #0 or .or
- (example "A predicate that always fails.")
- (example "A predicate that meets either predecessor.")]
- [all #1 and .and
- (example "A predicate that always succeeds.")
- (example "A predicate that meets both predecessors.")]
+ [none #0 or .or]
+ [all #1 and .and]
)
(template [<name> <identity> <composition>]
@@ -46,19 +38,16 @@
)
(def: .public (complement predicate)
- {#.doc (example "The opposite of a predicate.")}
(All [a] (-> (Predicate a) (Predicate a)))
(|>> predicate not))
(def: .public (difference sub base)
- {#.doc (example "A predicate that meeds 'base', but not 'sub'.")}
(All [a] (-> (Predicate a) (Predicate a) (Predicate a)))
(function (_ value)
(.and (base value)
(not (sub value)))))
(def: .public (rec predicate)
- {#.doc (example "Ties the knot for a recursive predicate.")}
(All [a]
(-> (-> (Predicate a) (Predicate a))
(Predicate a)))
diff --git a/stdlib/source/library/lux/control/concatenative.lux b/stdlib/source/library/lux/control/concatenative.lux
index 2dbcfda97..03ae8afe6 100644
--- a/stdlib/source/library/lux/control/concatenative.lux
+++ b/stdlib/source/library/lux/control/concatenative.lux
@@ -26,7 +26,8 @@
["<>" parser ("#\." monad)
["<.>" code (#+ Parser)]]])
-(type: Alias [Text Code])
+(type: Alias
+ [Text Code])
(type: Stack
{#bottom (Maybe Nat)
@@ -67,20 +68,11 @@
_
(meta.failure (format "Cannot expand to more than a single AST/Code node:" text.new_line
- (|> expansion (list\map %.code) (text.join_with " ")))))))
+ (|> expansion (list\map %.code) (text.interposed " ")))))))
(syntax: .public (=> [aliases aliases^
inputs stack^
outputs stack^])
- {#.doc (example "Concatenative function types."
- (=> [Nat] [Nat])
- (All [a] (-> a (=> [] [a])))
- (All [t] (=> [t] []))
- (All [a b c] (=> [a b c] [b c a]))
- (All [___a ___z]
- (=> {then (=> ___a ___z)
- else (=> ___a ___z)}
- ___a [Bit then else] ___z)))}
(let [de_alias (function (_ aliased)
(list\fold (function (_ [from to] pre)
(code.replaced (code.local_identifier from) to pre))
@@ -104,7 +96,9 @@
(-> (~ (de_alias inputC))
(~ (de_alias outputC))))))))))))
-(def: begin! Any [])
+(def: begin!
+ Any
+ [])
(def: end!
(All [a] (-> [Any a] a))
@@ -112,13 +106,6 @@
top))
(syntax: .public (||> [commands (<>.some <code>.any)])
- {#.doc (example "A self-contained sequence of concatenative instructions."
- (same? value
- (||> (..push sample)))
-
- (||> (push 123)
- dup
- n/=))}
(in (list (` (|> (~! ..begin!) (~+ commands) ((~! ..end!)))))))
(def: word
@@ -135,21 +122,12 @@
)))
(syntax: .public (word: [[export_policy name annotations type commands] ..word])
- {#.doc (example "A named concatenative function."
- (word: square
- (=> [Nat] [Nat])
-
- dup
- (apply/2 n.*)))}
(in (list (` (def: (~ export_policy) (~ (code.local_identifier name))
(~ (|annotations|.format annotations))
(~ type)
(|>> (~+ commands)))))))
(syntax: .public (apply [arity (<>.only (n.> 0) <code>.nat)])
- {#.doc (example "A generator for functions that turn arity N functions into arity N concatenative functions."
- (: (=> [Nat] [Nat])
- ((apply 1) inc)))}
(with_identifiers [g! g!func g!stack g!output]
(monad.do {! meta.monad}
[g!inputs (|> (macro.identifier "input") (list.repeated arity) (monad.seq !))]
@@ -161,80 +139,65 @@
[(~ g!stack) ((~ g!func) (~+ g!inputs))])))))))))
(template [<arity>]
- [(with_expansions [<name> (template.identifier ["apply/" <arity>])
- <doc> (template.text ["Lift a function of arity " <arity>
- " into a concatenative function of arity " <arity> "."])]
- (def: .public <name>
- {#.doc (example <doc>)}
- (apply <arity>)))]
+ [(`` (def: .public (~~ (template.identifier ["apply/" <arity>]))
+ (..apply <arity>)))]
[1] [2] [3] [4]
[5] [6] [7] [8]
)
(def: .public (push x)
- {#.doc (example "Push a value onto the stack.")}
(All [a] (-> a (=> [] [a])))
(function (_ stack)
[stack x]))
(def: .public drop
- {#.doc (example "Drop/pop a value from the top of the stack.")}
(All [t] (=> [t] []))
(function (_ [stack top])
stack))
(def: .public nip
- {#.doc (example "Drop the second-to-last value from the top of the stack.")}
(All [_ a] (=> [_ a] [a]))
(function (_ [[stack _] top])
[stack top]))
(def: .public dup
- {#.doc (example "Duplicate the top of the stack.")}
(All [a] (=> [a] [a a]))
(function (_ [stack top])
[[stack top] top]))
(def: .public swap
- {#.doc (example "Swaps the 2 topmost stack values.")}
(All [a b] (=> [a b] [b a]))
(function (_ [[stack l] r])
[[stack r] l]))
(def: .public rotL
- {#.doc (example "Rotes the 3 topmost stack values to the left.")}
(All [a b c] (=> [a b c] [b c a]))
(function (_ [[[stack a] b] c])
[[[stack b] c] a]))
(def: .public rotR
- {#.doc (example "Rotes the 3 topmost stack values to the right.")}
(All [a b c] (=> [a b c] [c a b]))
(function (_ [[[stack a] b] c])
[[[stack c] a] b]))
(def: .public &&
- {#.doc (example "Groups the 2 topmost stack values as a 2-tuple.")}
(All [a b] (=> [a b] [(Tuple a b)]))
(function (_ [[stack l] r])
[stack [l r]]))
(def: .public ||L
- {#.doc (example "Left-injects the top into sum.")}
(All [a b] (=> [a] [(Or a b)]))
(function (_ [stack l])
[stack (0 #0 l)]))
(def: .public ||R
- {#.doc (example "Right-injects the top into sum.")}
(All [a b] (=> [b] [(Or a b)]))
(function (_ [stack r])
[stack (0 #1 r)]))
(template [<input> <output> <word> <func>]
[(`` (def: .public <word>
- {#.doc (example (~~ (template.text [<func> " for " <input> " arithmetic."])))}
(=> [<input> <input>] [<output>])
(function (_ [[stack subject] param])
[stack (<func> param subject)])))]
@@ -285,12 +248,6 @@
)
(def: .public if
- {#.doc (example "If expression."
- (same? "then"
- (||> (push true)
- (push "then")
- (push "else")
- if)))}
(All [___a ___z]
(=> {then (=> ___a ___z)
else (=> ___a ___z)}
@@ -301,7 +258,6 @@
(else stack))))
(def: .public call
- {#.doc (example "Executes an anonymous block on the stack.")}
(All [___a ___z]
(=> {quote (=> ___a ___z)}
___a [quote] ___z))
@@ -309,7 +265,6 @@
(quote stack)))
(def: .public loop
- {#.doc (example "Executes a block as a loop until it yields #0 to stop.")}
(All [___]
(=> {test (=> ___ ___ [Bit])}
___ [test] ___))
@@ -320,7 +275,6 @@
stack'))))
(def: .public dip
- {#.doc (example "Executes a block on the stack, save for the topmost value.")}
(All [___ a]
(=> ___ [a (=> ___ ___)]
___ [a]))
@@ -328,7 +282,6 @@
[(quote stack) a]))
(def: .public dip/2
- {#.doc (example "Executes a block on the stack, save for the 2 topmost values.")}
(All [___ a b]
(=> ___ [a b (=> ___ ___)]
___ [a b]))
@@ -336,12 +289,6 @@
[[(quote stack) a] b]))
(def: .public do
- {#.doc (example "Do-while loop expression."
- (n.= (inc sample)
- (||> (push sample)
- (push (push false))
- (push (|>> (push 1) n/+))
- do while)))}
(All [___a ___z]
(=> {body (=> ___a ___z)
pred (=> ___z ___a [Bit])}
@@ -351,14 +298,6 @@
[[(body stack) pred] body]))
(def: .public while
- {#.doc (example "While loop expression."
- (n.= (n.+ distance start)
- (||> (push start)
- (push (|>> dup
- (push start) n/-
- (push distance) n/<))
- (push (|>> (push 1) n/+))
- while)))}
(All [___a ___z]
(=> {body (=> ___z ___a)
pred (=> ___a ___z [Bit])}
@@ -371,13 +310,6 @@
stack'))))
(def: .public compose
- {#.doc (example "Function composition."
- (n.= (n.+ 2 sample)
- (||> (push sample)
- (push (|>> (push 1) n/+))
- (push (|>> (push 1) n/+))
- compose
- call)))}
(All [___a ___ ___z]
(=> [(=> ___a ___) (=> ___ ___z)]
[(=> ___a ___z)]))
@@ -385,13 +317,6 @@
[stack (|>> f g)]))
(def: .public partial
- {#.doc (example "Partial application."
- (n.= (n.+ sample sample)
- (||> (push sample)
- (push sample)
- (push n/+)
- partial
- call)))}
(All [___a ___z a]
(=> ___a [a (=> ___a [a] ___z)]
___a [(=> ___a ___z)]))
@@ -399,7 +324,6 @@
[stack (|>> (push arg) quote)]))
(word: .public when
- {#.doc (example "Only execute the block when #1.")}
(All [___]
(=> {body (=> ___ ___)}
___ [Bit body]
@@ -410,7 +334,6 @@
if)
(word: .public ?
- {#.doc (example "Choose the top value when #0 and the second-to-top when #1.")}
(All [a]
(=> [Bit a a] [a]))
rotL
diff --git a/stdlib/source/library/lux/control/concurrency/actor.lux b/stdlib/source/library/lux/control/concurrency/actor.lux
index 1557a9f89..e51be0b98 100644
--- a/stdlib/source/library/lux/control/concurrency/actor.lux
+++ b/stdlib/source/library/lux/control/concurrency/actor.lux
@@ -1,5 +1,4 @@
(.module:
- {#.doc "The actor model of concurrency."}
[library
[lux #*
["." debug]
@@ -64,27 +63,23 @@
(in #.End))))
(abstract: .public (Actor s)
- {#.doc (example "An entity that can react to messages (mail) sent to it concurrently.")}
+ {}
{#obituary [(Async <Obituary>)
(Resolver <Obituary>)]
#mailbox (Atom <Mailbox>)}
(type: .public (Mail s)
- {#.doc (example "A one-way message sent to an actor, without expecting a reply.")}
<Mail>)
(type: .public (Obituary s)
- {#.doc (example "Details on the death of an actor.")}
<Obituary>)
(type: .public (Behavior o s)
- {#.doc (example "An actor's behavior when mail is received and when a fatal error occurs.")}
{#on_init (-> o s)
#on_mail (-> (Mail s) s (Actor s) (Async (Try s)))})
(def: .public (spawn! behavior init)
- {#.doc (example "Given a behavior and initial state, spawns an actor and returns it.")}
(All [o s] (-> (Behavior o s) o (IO (Actor s))))
(io (let [[on_init on_mail] behavior
self (:sharing [o s]
@@ -130,14 +125,12 @@
(async.value obituary)))
(def: .public obituary
- {#.doc (example "Await for an actor to stop working.")}
(All [s] (-> (Actor s) (Async (Obituary s))))
(|>> :representation
(get@ #obituary)
product.left))
(def: .public (mail! mail actor)
- {#.doc (example "Send mail to an actor.")}
(All [s] (-> (Mail s) (Actor s) (IO (Try Any))))
(do {! io.monad}
[alive? (..alive? actor)]
@@ -163,7 +156,6 @@
(in (exception.except ..dead [])))))
(type: .public (Message s o)
- {#.doc (example "A two-way message sent to an actor, expecting a reply.")}
(-> s (Actor s) (Async (Try [s o]))))
(def: (mail message)
@@ -191,7 +183,6 @@
(async.resolved (#try.Failure error))))))]))
(def: .public (tell! message actor)
- {#.doc (example "Communicate with an actor through message-passing.")}
(All [s o] (-> (Message s o) (Actor s) (Async (Try o))))
(let [[async mail] (..mail message)]
(do async.monad
@@ -210,14 +201,11 @@
(mail state self))
(def: .public default
- {#.doc (example "Default actor behavior.")}
(All [s] (Behavior s s))
{#on_init function.identity
#on_mail ..default_on_mail})
(def: .public (poison! actor)
- {#.doc (example "Kills the actor by sending mail that will kill it upon processing,"
- "but allows the actor to handle previous mail.")}
(All [s] (-> (Actor s) (IO (Try Any))))
(..mail! (function (_ state self)
(async.resolved (exception.except ..poisoned [])))
@@ -270,151 +258,102 @@
(<>.and <code>.any private)
(<>.and (<>\in (` .private)) private))))
-(with_expansions [<examples> (as_is (actor: .public (stack a)
- {}
-
- (List a)
-
- ((on_mail mail state self)
- (do (try.with async.monad)
- [.let [_ (debug.log! "BEFORE")]
- output (mail state self)
- .let [_ (debug.log! "AFTER")]]
- (in output)))
-
- (message: .public (push {value a} state self)
- (List a)
- (let [state' (#.Item value state)]
- (async.resolved (#try.Success [state' state'])))))
-
- (actor: .public counter
- {}
-
- Nat
-
- (message: .public (count! {increment Nat} state self)
- Any
- (let [state' (n.+ increment state)]
- (async.resolved (#try.Success [state' state']))))
-
- (message: .public (read! state self)
- Nat
- (async.resolved (#try.Success [state state])))))]
- (syntax: .public (actor: [[export_policy [name vars] annotations state_type [?on_mail messages]] ..actorP])
- {#.doc (example "Defines a named actor, with its behavior and internal state."
- "Messages for the actor must be defined after the on_mail handler."
- <examples>)}
- (with_identifiers [g!_]
- (do meta.monad
- [g!type (macro.identifier (format name "_abstract_type"))
- .let [g!actor (code.local_identifier name)
- g!vars (list\map code.local_identifier vars)]]
- (in (list (` ((~! abstract:) (~ export_policy) ((~ g!type) (~+ g!vars))
- {}
-
- (~ state_type)
-
- (def: (~ export_policy) (~ g!actor)
- (All [(~+ g!vars)]
- (..Behavior (~ state_type) ((~ g!type) (~+ g!vars))))
- {#..on_init (|>> ((~! abstract.:abstraction) (~ g!type)))
- #..on_mail (~ (..on_mail g!_ ?on_mail))})
-
- (~+ messages))))))))
-
- (syntax: .public (actor [[state_type init] (<code>.record (<>.and <code>.any <code>.any))
- [?on_mail messages] behavior^])
- {#.doc (example "Defines an anonymous actor, with its behavior and internal state."
- "Messages for the actor must be defined after the on_mail handler."
- (actor {Nat
- 123}
- ((on_mail message state self)
- (message (inc state) self))))}
- (with_identifiers [g!_]
- (in (list (` (: ((~! io.IO) (..Actor (~ state_type)))
- (..spawn! (: (..Behavior (~ state_type) (~ state_type))
- {#..on_init (|>>)
- #..on_mail (~ (..on_mail g!_ ?on_mail))})
- (: (~ state_type)
- (~ init)))))))))
-
- (type: Signature
- {#vars (List Text)
- #name Text
- #inputs (List |input|.Input)
- #state Text
- #self Text})
-
- (def: signature^
- (Parser Signature)
- (<code>.form ($_ <>.and
- (<>.else (list) (<code>.tuple (<>.some <code>.local_identifier)))
- <code>.local_identifier
- (<>.some |input|.parser)
- <code>.local_identifier
- <code>.local_identifier)))
-
- (def: reference^
- (Parser [Name (List Text)])
- (<>.either (<code>.form (<>.and <code>.identifier (<>.some <code>.local_identifier)))
- (<>.and <code>.identifier (\ <>.monad in (list)))))
-
- (def: messageP
- (Parser [Code Signature |annotations|.Annotations Code Code])
- (let [private ($_ <>.and
- ..signature^
- (<>.else |annotations|.empty |annotations|.parser)
- <code>.any
- <code>.any)]
- ($_ <>.either
- (<>.and <code>.any private)
- (<>.and (<>\in (` .private)) private))))
-
- (syntax: .public (message: [[export_policy signature annotations output_type body] ..messageP])
- {#.doc (example "A message can access the actor's state through the state parameter."
- "A message can also access the actor itself through the self parameter."
- "A message's output must be an async containing a 2-tuple with the updated state and a return value."
- "A message may succeed or fail (in case of failure, the actor dies)."
-
- <examples>)}
- (with_identifiers [g!_ g!return]
- (do meta.monad
- [actor_scope abstract.current
- .let [g!type (code.local_identifier (get@ #abstract.name actor_scope))
- g!message (code.local_identifier (get@ #name signature))
- g!actor_vars (get@ #abstract.type_vars actor_scope)
- g!all_vars (|> signature (get@ #vars) (list\map code.local_identifier) (list\compose g!actor_vars))
- g!inputsC (|> signature (get@ #inputs) (list\map product.left))
- g!inputsT (|> signature (get@ #inputs) (list\map product.right))
- g!state (|> signature (get@ #state) code.local_identifier)
- g!self (|> signature (get@ #self) code.local_identifier)]]
- (in (list (` (def: (~ export_policy) ((~ g!message) (~+ g!inputsC))
- (~ (|annotations|.format annotations))
- (All [(~+ g!all_vars)]
- (-> (~+ g!inputsT)
- (..Message (~ (get@ #abstract.abstraction actor_scope))
- (~ output_type))))
- (function ((~ g!_) (~ g!state) (~ g!self))
- (let [(~ g!state) (:as (~ (get@ #abstract.representation actor_scope))
- (~ g!state))]
- (|> (~ body)
- (: ((~! async.Async) ((~! try.Try) [(~ (get@ #abstract.representation actor_scope))
- (~ output_type)])))
- (:as ((~! async.Async) ((~! try.Try) [(~ (get@ #abstract.abstraction actor_scope))
- (~ output_type)]))))))))
- ))))))
+(syntax: .public (actor: [[export_policy [name vars] annotations state_type [?on_mail messages]] ..actorP])
+ (with_identifiers [g!_]
+ (do meta.monad
+ [g!type (macro.identifier (format name "_abstract_type"))
+ .let [g!actor (code.local_identifier name)
+ g!vars (list\map code.local_identifier vars)]]
+ (in (list (` ((~! abstract:) (~ export_policy) ((~ g!type) (~+ g!vars))
+ {}
+
+ (~ state_type)
+
+ (def: (~ export_policy) (~ g!actor)
+ (All [(~+ g!vars)]
+ (..Behavior (~ state_type) ((~ g!type) (~+ g!vars))))
+ {#..on_init (|>> ((~! abstract.:abstraction) (~ g!type)))
+ #..on_mail (~ (..on_mail g!_ ?on_mail))})
+
+ (~+ messages))))))))
+
+(syntax: .public (actor [[state_type init] (<code>.record (<>.and <code>.any <code>.any))
+ [?on_mail messages] behavior^])
+ (with_identifiers [g!_]
+ (in (list (` (: ((~! io.IO) (..Actor (~ state_type)))
+ (..spawn! (: (..Behavior (~ state_type) (~ state_type))
+ {#..on_init (|>>)
+ #..on_mail (~ (..on_mail g!_ ?on_mail))})
+ (: (~ state_type)
+ (~ init)))))))))
+
+(type: Signature
+ {#vars (List Text)
+ #name Text
+ #inputs (List |input|.Input)
+ #state Text
+ #self Text})
+
+(def: signature^
+ (Parser Signature)
+ (<code>.form ($_ <>.and
+ (<>.else (list) (<code>.tuple (<>.some <code>.local_identifier)))
+ <code>.local_identifier
+ (<>.some |input|.parser)
+ <code>.local_identifier
+ <code>.local_identifier)))
+
+(def: reference^
+ (Parser [Name (List Text)])
+ (<>.either (<code>.form (<>.and <code>.identifier (<>.some <code>.local_identifier)))
+ (<>.and <code>.identifier (\ <>.monad in (list)))))
+
+(def: messageP
+ (Parser [Code Signature |annotations|.Annotations Code Code])
+ (let [private ($_ <>.and
+ ..signature^
+ (<>.else |annotations|.empty |annotations|.parser)
+ <code>.any
+ <code>.any)]
+ ($_ <>.either
+ (<>.and <code>.any private)
+ (<>.and (<>\in (` .private)) private))))
+
+(syntax: .public (message: [[export_policy signature annotations output_type body] ..messageP])
+ (with_identifiers [g!_ g!return]
+ (do meta.monad
+ [actor_scope abstract.current
+ .let [g!type (code.local_identifier (get@ #abstract.name actor_scope))
+ g!message (code.local_identifier (get@ #name signature))
+ g!actor_vars (get@ #abstract.type_vars actor_scope)
+ g!all_vars (|> signature (get@ #vars) (list\map code.local_identifier) (list\compose g!actor_vars))
+ g!inputsC (|> signature (get@ #inputs) (list\map product.left))
+ g!inputsT (|> signature (get@ #inputs) (list\map product.right))
+ g!state (|> signature (get@ #state) code.local_identifier)
+ g!self (|> signature (get@ #self) code.local_identifier)]]
+ (in (list (` (def: (~ export_policy) ((~ g!message) (~+ g!inputsC))
+ (~ (|annotations|.format annotations))
+ (All [(~+ g!all_vars)]
+ (-> (~+ g!inputsT)
+ (..Message (~ (get@ #abstract.abstraction actor_scope))
+ (~ output_type))))
+ (function ((~ g!_) (~ g!state) (~ g!self))
+ (let [(~ g!state) (:as (~ (get@ #abstract.representation actor_scope))
+ (~ g!state))]
+ (|> (~ body)
+ (: ((~! async.Async) ((~! try.Try) [(~ (get@ #abstract.representation actor_scope))
+ (~ output_type)])))
+ (:as ((~! async.Async) ((~! try.Try) [(~ (get@ #abstract.abstraction actor_scope))
+ (~ output_type)]))))))))
+ )))))
(type: .public Stop
- {#.doc (example "A signal to stop an actor from observing a channel.")}
(IO Any))
(def: continue! true)
(def: stop! false)
(def: .public (observe! action channel actor)
- {#.doc (example "Use an actor to observe a channel by transforming each datum"
- "flowing through the channel into mail the actor can process."
- "Can stop observing the channel by executing the Stop value.")}
(All [e s] (-> (-> e Stop (Mail s)) (Channel e) (Actor s) (IO Any)))
(let [signal (: (Atom Bit)
(atom.atom ..continue!))
diff --git a/stdlib/source/library/lux/control/concurrency/async.lux b/stdlib/source/library/lux/control/concurrency/async.lux
index 32f1913b6..3dcb864b6 100644
--- a/stdlib/source/library/lux/control/concurrency/async.lux
+++ b/stdlib/source/library/lux/control/concurrency/async.lux
@@ -18,13 +18,11 @@
["." atom (#+ Atom atom)]])
(abstract: .public (Async a)
- {#.doc "Represents values produced by asynchronous computations (unlike IO, which is synchronous)."}
+ {}
(Atom [(Maybe a) (List (-> a (IO Any)))])
(type: .public (Resolver a)
- {#.doc (example "The function used to give a value to an async."
- "Will signal 'true' if the async has been resolved for the 1st time, 'false' otherwise.")}
(-> a (IO Bit)))
(def: (resolver async)
@@ -50,25 +48,21 @@
(resolve value))))))))
(def: .public (resolved value)
- {#.doc (example "Produces an async that has already been resolved to the given value.")}
(All [a] (-> a (Async a)))
(:abstraction (atom [(#.Some value) (list)])))
(def: .public (async _)
- {#.doc (example "Creates a fresh async that has not been resolved yet.")}
(All [a] (-> Any [(Async a) (Resolver a)]))
(let [async (:abstraction (atom [#.None (list)]))]
[async (..resolver async)]))
(def: .public value
- {#.doc "Polls an async for its value."}
(All [a] (-> (Async a) (IO (Maybe a))))
(|>> :representation
atom.read!
(\ io.functor map product.left)))
(def: .public (upon! f async)
- {#.doc (example "Executes the given function as soon as the async has been resolved.")}
(All [a] (-> (-> a (IO Any)) (Async a) (IO Any)))
(do {! io.monad}
[.let [async (:representation async)]
@@ -87,7 +81,6 @@
)
(def: .public resolved?
- {#.doc "Checks whether an async's value has already been resolved."}
(All [a] (-> (Async a) (IO Bit)))
(|>> ..value
(\ io.functor map
@@ -133,7 +126,6 @@
ma))))
(def: .public (and left right)
- {#.doc (example "Combines the results of both asyncs, in-order.")}
(All [a b] (-> (Async a) (Async b) (Async [a b])))
(let [[read! write!] (:sharing [a b]
[(Async a) (Async b)]
@@ -150,8 +142,6 @@
read!))
(def: .public (or left right)
- {#.doc (example "Yields the results of whichever async gets resolved first."
- "You can tell which one was resolved first through pattern-matching.")}
(All [a b] (-> (Async a) (Async b) (Async (Or a b))))
(let [[a|b resolve] (..async [])]
(with_expansions
@@ -166,8 +156,6 @@
a|b))))
(def: .public (either left right)
- {#.doc (example "Yields the results of whichever async gets resolved first."
- "You cannot tell which one was resolved first.")}
(All [a] (-> (Async a) (Async a) (Async a)))
(let [[left||right resolve] (..async [])]
(`` (exec
@@ -179,8 +167,6 @@
left||right))))
(def: .public (schedule! milli_seconds computation)
- {#.doc (example "Runs an I/O computation on its own thread (after a specified delay)."
- "Returns an async that will eventually host its result.")}
(All [a] (-> Nat (IO a) (Async a)))
(let [[!out resolve] (..async [])]
(exec
@@ -192,22 +178,17 @@
!out)))
(def: .public future
- {#.doc (example "Runs an I/O computation on its own thread."
- "Returns an async that will eventually host its result.")}
(All [a] (-> (IO a) (Async a)))
(..schedule! 0))
(def: .public (delayed milli_seconds value)
- {#.doc "Delivers a value after a certain period has passed."}
(All [a] (-> Nat a (Async a)))
(..schedule! milli_seconds (io value)))
(def: .public (delay milli_seconds)
- {#.doc "An async that will be resolved after the specified amount of milli-seconds."}
(-> Nat (Async Any))
(..delayed milli_seconds []))
(def: .public (time_out milli_seconds async)
- {#.doc "Wait for an async to be resolved within the specified amount of milli-seconds."}
(All [a] (-> Nat (Async a) (Async (Maybe a))))
(..or (..delay milli_seconds) async))
diff --git a/stdlib/source/library/lux/control/concurrency/atom.lux b/stdlib/source/library/lux/control/concurrency/atom.lux
index 07e2640f8..b6d9461f0 100644
--- a/stdlib/source/library/lux/control/concurrency/atom.lux
+++ b/stdlib/source/library/lux/control/concurrency/atom.lux
@@ -47,7 +47,7 @@
@.scheme "scheme array read"}
(as_is))]
(abstract: .public (Atom a)
- {#.doc "Atomic references that are safe to mutate concurrently."}
+ {}
(with_expansions [<jvm> (java/util/concurrent/atomic/AtomicReference a)]
(for {@.old <jvm>
@@ -69,8 +69,6 @@
(<read> 0 (:representation atom))))))
(def: .public (compare_and_swap! current new atom)
- {#.doc (example "Only mutates an atom if you can present its current value."
- "That guarantees that atom was not updated since you last read from it.")}
(All [a] (-> a a (Atom a) (IO Bit)))
(io.io (with_expansions [<jvm> (java/util/concurrent/atomic/AtomicReference::compareAndSet current new (:representation atom))]
(for {@.old <jvm>
@@ -83,9 +81,6 @@
))
(def: .public (update! f atom)
- {#.doc (example "Updates an atom by applying a function to its current value."
- "If it fails to update it (because some other process wrote to it first), it will retry until it succeeds."
- "The retries will be done with the new values of the atom, as they show up.")}
(All [a] (-> (-> a a) (Atom a) (IO [a a])))
(loop [_ []]
(do io.monad
@@ -97,8 +92,6 @@
(recur [])))))
(def: .public (write! value atom)
- {#.doc (example "Writes the given value to an atom."
- "If it fails to write it (because some other process wrote to it first), it will retry until it succeeds.")}
(All [a] (-> a (Atom a) (IO a)))
(|> atom
(..update! (function.constant value))
diff --git a/stdlib/source/library/lux/control/concurrency/frp.lux b/stdlib/source/library/lux/control/concurrency/frp.lux
index 676aa0b8a..e14fb6505 100644
--- a/stdlib/source/library/lux/control/concurrency/frp.lux
+++ b/stdlib/source/library/lux/control/concurrency/frp.lux
@@ -18,13 +18,11 @@
["." async (#+ Async) ("#\." functor)]])
(type: .public (Channel a)
- {#.doc "An asynchronous channel to distribute values."}
(Async (Maybe [a (Channel a)])))
(exception: .public channel_is_already_closed)
(interface: .public (Sink a)
- {#.doc (example "The tail-end of a channel, which can be written-to to fee the channel.")}
(: (IO (Try Any))
close)
(: (-> a (IO (Try Any)))
@@ -80,7 +78,6 @@
(recur []))))))))))
(def: .public (channel _)
- {#.doc (example "Creates a brand-new channel and hands it over, along with the sink to write to it.")}
(All [a] (-> Any [(Channel a) (Sink a)]))
(let [[async resolve] (async.async [])]
[async (..sink resolve)]))
@@ -150,7 +147,6 @@
output))))
(type: .public (Subscriber a)
- {#.doc (example "A function that can receive every value fed into a channel.")}
(-> a (IO (Maybe Any))))
(def: .public (subscribe! subscriber channel)
@@ -174,8 +170,6 @@
[])))
(def: .public (only pass? channel)
- {#.doc (example "Produces a new channel based on the old one, only with values"
- "that pass the test.")}
(All [a] (-> (-> a Bit) (Channel a) (Channel a)))
(do async.monad
[item channel]
@@ -190,14 +184,12 @@
(in #.None))))
(def: .public (of_async async)
- {#.doc (example "A one-element channel containing the output from an async.")}
(All [a] (-> (Async a) (Channel a)))
(async\map (function (_ value)
(#.Some [value ..empty]))
async))
(def: .public (fold f init channel)
- {#.doc "Asynchronous fold over channels."}
(All [a b]
(-> (-> b a (Async a)) a (Channel b)
(Async a)))
@@ -291,7 +283,6 @@
(in #.End))))
(def: .public (sequential milli_seconds values)
- {#.doc (example "Transforms the given list into a channel with the same elements.")}
(All [a] (-> Nat (List a) (Channel a)))
(case values
#.End
diff --git a/stdlib/source/library/lux/control/concurrency/semaphore.lux b/stdlib/source/library/lux/control/concurrency/semaphore.lux
index f7f4f5f50..c266617a5 100644
--- a/stdlib/source/library/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/library/lux/control/concurrency/semaphore.lux
@@ -30,7 +30,7 @@
#waiting_list (Queue (Resolver Any))})
(abstract: .public Semaphore
- {#.doc "A tool for controlling access to resources by multiple concurrent processes."}
+ {}
(Atom State)
@@ -46,25 +46,24 @@
#waiting_list queue.empty}))))
(def: .public (wait! semaphore)
- {#.doc (example "Wait on a semaphore until there are open positions."
- "After finishing your work, you must 'signal' to the semaphore that you're done.")}
(Ex [k] (-> Semaphore (Async Any)))
(let [semaphore (:representation semaphore)
[signal sink] (: [(Async Any) (Resolver Any)]
(async.async []))]
- (exec (io.run!
- (with_expansions [<had_open_position?> (as_is (get@ #open_positions) (i.> -1))]
- (do io.monad
- [[_ state'] (atom.update! (|>> (update@ #open_positions dec)
- (if> [<had_open_position?>]
- []
- [(update@ #waiting_list (queue.end sink))]))
- semaphore)]
- (with_expansions [<go_ahead> (sink [])
- <get_in_line> (in false)]
- (if (|> state' <had_open_position?>)
- <go_ahead>
- <get_in_line>)))))
+ (exec
+ (io.run!
+ (with_expansions [<had_open_position?> (as_is (get@ #open_positions) (i.> -1))]
+ (do io.monad
+ [[_ state'] (atom.update! (|>> (update@ #open_positions dec)
+ (if> [<had_open_position?>]
+ []
+ [(update@ #waiting_list (queue.end sink))]))
+ semaphore)]
+ (with_expansions [<go_ahead> (sink [])
+ <get_in_line> (in false)]
+ (if (|> state' <had_open_position?>)
+ <go_ahead>
+ <get_in_line>)))))
signal)))
(exception: .public (semaphore_is_maxed_out {max_positions Nat})
@@ -72,7 +71,6 @@
["Max Positions" (%.nat max_positions)]))
(def: .public (signal! semaphore)
- {#.doc (example "Signal to a semaphore that you're done with your work, and that there is a new open position.")}
(Ex [k] (-> Semaphore (Async (Try Int))))
(let [semaphore (:representation semaphore)]
(async.future
@@ -98,12 +96,11 @@
)
(abstract: .public Mutex
- {#.doc "A mutual-exclusion lock that can only be acquired by one process at a time."}
+ {}
Semaphore
(def: .public (mutex _)
- {#.doc (example "Creates a brand-new mutex.")}
(-> Any Mutex)
(:abstraction (semaphore 1)))
@@ -116,7 +113,6 @@
(|>> :representation ..signal!))
(def: .public (synchronize! mutex procedure)
- {#.doc (example "Runs the procedure with exclusive control of the mutex.")}
(All [a] (-> Mutex (IO (Async a)) (Async a)))
(do async.monad
[_ (..acquire! mutex)
@@ -126,15 +122,13 @@
)
(def: .public limit
- {#.doc (example "Produce a limit for a barrier.")}
(refinement.refiner (n.> 0)))
(type: .public Limit
- {#.doc (example "A limit for barriers.")}
(:~ (refinement.type limit)))
(abstract: .public Barrier
- {#.doc "A barrier that blocks all processes from proceeding until a given number of processes are parked at the barrier."}
+ {}
{#limit Limit
#count (Atom Nat)
@@ -174,7 +168,6 @@
)
(def: .public (block! barrier)
- {#.doc (example "Wait on a barrier until all processes have arrived and met the barrier's limit.")}
(-> Barrier (Async Any))
(do async.monad
[_ (..start! barrier)]
diff --git a/stdlib/source/library/lux/control/concurrency/stm.lux b/stdlib/source/library/lux/control/concurrency/stm.lux
index f3bdbcbb6..a41d12aba 100644
--- a/stdlib/source/library/lux/control/concurrency/stm.lux
+++ b/stdlib/source/library/lux/control/concurrency/stm.lux
@@ -24,12 +24,11 @@
(-> a (IO Any)))
(abstract: .public (Var a)
- {#.doc "A mutable cell containing a value, and observers that will be alerted of any change to it."}
+ {}
(Atom [a (List (Sink a))])
(def: .public (var value)
- {#.doc "Creates a new STM var, with a default value."}
(All [a] (-> a (Var a)))
(:abstraction (atom.atom [value (list)])))
@@ -67,7 +66,6 @@
(write! new_value var))))
(def: .public (follow! target)
- {#.doc "Creates a channel that will receive all changes to the value of the given var."}
(All [a] (-> (Var a) (IO [(Channel a) (Sink a)])))
(do io.monad
[.let [[channel sink] (frp.channel [])]
@@ -86,7 +84,6 @@
(List (Ex [a] (Tx_Frame a))))
(type: .public (STM a)
- {#.doc "A computation which updates a transaction and produces a value."}
(-> Tx [Tx a]))
(def: (var_value var tx)
@@ -175,7 +172,6 @@
(ma tx')))))
(def: .public (update f var)
- {#.doc "Update a var's value, and return a tuple with the old and the new values."}
(All [a] (-> (-> a a) (Var a) (STM [a a])))
(do ..monad
[a (..read var)
@@ -261,9 +257,6 @@
)))
(def: .public (commit! stm_proc)
- {#.doc (example "Commits a transaction and returns its result (asynchronously)."
- "Note that a transaction may be re-run an indeterminate number of times if other transactions involving the same variables successfully commit first."
- "For this reason, it's important to note that transactions must be free from side-effects, such as I/O.")}
(All [a] (-> (STM a) (Async a)))
(let [[output resolver] (async.async [])]
(exec
diff --git a/stdlib/source/library/lux/control/concurrency/thread.lux b/stdlib/source/library/lux/control/concurrency/thread.lux
index 6d47059b0..e067d1ac5 100644
--- a/stdlib/source/library/lux/control/concurrency/thread.lux
+++ b/stdlib/source/library/lux/control/concurrency/thread.lux
@@ -65,7 +65,6 @@
))
(def: .public parallelism
- {#.doc (example "How many processes can run in parallel.")}
Nat
(with_expansions [<jvm> (|> (java/lang/Runtime::getRuntime)
(java/lang/Runtime::availableProcessors)
@@ -102,7 +101,6 @@
[]))
(def: .public (schedule! milli_seconds action)
- {#.doc (example "Executes an I/O procedure after some milli-seconds.")}
(-> Nat (IO Any) (IO Any))
(with_expansions [<jvm> (as_is (let [runnable (ffi.object [] [java/lang/Runnable]
[]
diff --git a/stdlib/source/library/lux/control/continuation.lux b/stdlib/source/library/lux/control/continuation.lux
index e9b702f55..9a65c9d3e 100644
--- a/stdlib/source/library/lux/control/continuation.lux
+++ b/stdlib/source/library/lux/control/continuation.lux
@@ -14,21 +14,17 @@
["." code]]]])
(type: .public (Cont i o)
- {#.doc "Continuations."}
(-> (-> i o) o))
-(def: .public (continue next cont)
- {#.doc "Continues a continuation thunk."}
+(def: .public (continued next cont)
(All [i o] (-> (-> i o) (Cont i o) o))
(cont next))
-(def: .public (result cont)
- {#.doc "Forces a continuation thunk to be evaluated."}
+(def: .public result
(All [a] (-> (Cont a a) a))
- (cont function.identity))
+ (..continued function.identity))
-(def: .public (call/cc f)
- {#.doc "Call with current continuation."}
+(def: .public (with_current f)
(All [a b z]
(-> (-> (-> a (Cont b z))
(Cont a z))
@@ -38,8 +34,6 @@
k)))
(syntax: .public (pending [expr <code>.any])
- {#.doc (example "Turns any expression into a function that is pending a continuation."
- (pending (some_function some_input)))}
(with_identifiers [g!_ g!k]
(in (list (` (.function ((~ g!_) (~ g!k)) ((~ g!k) (~ expr))))))))
@@ -61,7 +55,8 @@
(All [o] (Functor (All [i] (Cont i o))))
(def: (map f fv)
- (function (_ k) (fv (function.compose k f)))))
+ (function (_ k)
+ (fv (function.composite k f)))))
(implementation: .public apply
(All [o] (Apply (All [i] (Cont i o))))
@@ -84,7 +79,7 @@
(def: (join ffa)
(function (_ k)
- (ffa (continue k)))))
+ (ffa (continued k)))))
(def: .public (portal init)
(All [i o z]
@@ -92,9 +87,10 @@
(Cont [(-> i (Cont o z))
i]
z)))
- (call/cc (function (_ k)
- (do ..monad
- [.let [nexus (function (nexus val)
- (k [nexus val]))]
- _ (k [nexus init])]
- (in (undefined))))))
+ (with_current
+ (function (_ k)
+ (do ..monad
+ [.let [nexus (function (nexus val)
+ (k [nexus val]))]
+ _ (k [nexus init])]
+ (in (undefined))))))
diff --git a/stdlib/source/library/lux/control/exception.lux b/stdlib/source/library/lux/control/exception.lux
index 9a9e7f845..f89611e19 100644
--- a/stdlib/source/library/lux/control/exception.lux
+++ b/stdlib/source/library/lux/control/exception.lux
@@ -28,18 +28,14 @@
["//" try (#+ Try)]])
(type: .public (Exception a)
- {#.doc "An exception provides a way to decorate error messages."}
{#label Text
#constructor (-> a Text)})
(def: .public (match? exception error)
- {#.doc (example "Is this exception the cause of the error message?")}
(All [e] (-> (Exception e) Text Bit))
(text.starts_with? (get@ #label exception) error))
(def: .public (when exception then try)
- {#.doc (example "If a particular exception is detected on a possibly-erroneous value, handle it."
- "If no exception was detected, or a different one from the one being checked, then pass along the original value.")}
(All [e a]
(-> (Exception e) (-> Text a) (Try a)
(Try a)))
@@ -52,12 +48,11 @@
(if (text.starts_with? reference error)
(#//.Success (|> error
(text.clip' (text.size reference))
- maybe.assume
+ maybe.trusted
then))
(#//.Failure error)))))
(def: .public (otherwise else try)
- {#.doc "If no handler could be found to catch the exception, then run a function as a last-resort measure."}
(All [a]
(-> (-> Text a) (Try a) a))
(case try
@@ -68,12 +63,10 @@
(else error)))
(def: .public (error exception message)
- {#.doc "Constructs an error message from an exception."}
(All [e] (-> (Exception e) e Text))
((get@ #..constructor exception) message))
(def: .public (except exception message)
- {#.doc "Decorate an error message with an Exception and lift it into the error-handling context."}
(All [e a] (-> (Exception e) e (Try a)))
(#//.Failure (..error exception message)))
@@ -98,15 +91,9 @@
)))
(syntax: .public (exception: [[export_policy t_vars [name inputs] body] ..exception])
- {#.doc (example "Define a new exception type."
- "It mostly just serves as a way to tag error messages for later catching."
+ {#.doc (example
""
- "Simple case:"
- (exception: .public some_exception)
- ""
- "Complex case:"
- (exception: .public [arbitrary type variables] (some_exception {optional Text} {arguments Int})
- optional_body))}
+ )}
(macro.with_identifiers [g!descriptor]
(do meta.monad
[current_module meta.current_module_name
@@ -132,14 +119,14 @@
on_new_line (|> " "
(list.repeated (n.+ (text.size header_separator)
largest_header_size))
- (text.join_with "")
+ text.joined
(text\compose text.new_line))
on_entry (: (-> [Text Text] Text)
(function (_ [header message])
(let [padding (|> " "
(list.repeated (n.- (text.size header)
largest_header_size))
- (text.join_with ""))]
+ text.joined)]
(|> message
(text.replaced text.new_line on_new_line)
($_ text\compose padding header header_separator)))))]
@@ -154,19 +141,11 @@
tail))))
(syntax: .public (report [entries (<>.many (<code>.tuple (<>.and <code>.any <code>.any)))])
- {#.doc (example "An error report."
- (: Text
- (report ["Row 0" value/0]
- ["Row 1" value/1]
- ,,,
- ["Row N" value/N])))}
(in (list (` ((~! report') (list (~+ (|> entries
(list\map (function (_ [header message])
(` [(~ header) (~ message)])))))))))))
(def: .public (listing format entries)
- {#.doc (example "A numbered report of the entries on a list."
- "NOTE: 0-based numbering.")}
(All [a]
(-> (-> a Text) (List a) Text))
(|> entries
@@ -181,7 +160,7 @@
(def: separator
(let [gap ($_ "lux text concat" text.new_line text.new_line)
- horizontal_line (|> "-" (list.repeated 64) (text.join_with ""))]
+ horizontal_line (|> "-" (list.repeated 64) text.joined)]
($_ "lux text concat"
gap
horizontal_line
@@ -195,7 +174,6 @@
error))
(def: .public (with exception message computation)
- {#.doc (example "If a computation fails, prepends the exception to the error.")}
(All [e a] (-> (Exception e) e (Try a) (Try a)))
(case computation
(#//.Failure error)
diff --git a/stdlib/source/library/lux/control/function.lux b/stdlib/source/library/lux/control/function.lux
index d0bc286ae..865ea6930 100644
--- a/stdlib/source/library/lux/control/function.lux
+++ b/stdlib/source/library/lux/control/function.lux
@@ -5,38 +5,24 @@
[monoid (#+ Monoid)]]]])
(def: .public identity
- {#.doc (example "Identity function."
- "Does nothing to its argument and just returns it."
- (same? (identity value)
- value))}
(All [a] (-> a a))
(|>>))
-(def: .public (compose f g)
- {#.doc (example "Function composition."
- (= ((compose f g) "foo")
- (f (g "foo"))))}
+(def: .public (composite f g)
(All [a b c]
(-> (-> b c) (-> a b) (-> a c)))
(|>> g f))
(def: .public (constant value)
- {#.doc (example "Create constant functions."
- (= ((constant "foo") "bar")
- "foo"))}
(All [o] (-> o (All [i] (-> i o))))
(function (_ _) value))
(def: .public (flipped f)
- {#.doc (example "Flips the order of the arguments of a function."
- (= ((flipped f) "foo" "bar")
- (f "bar" "foo")))}
(All [a b c]
(-> (-> a b c) (-> b a c)))
(function (_ x y) (f y x)))
(def: .public (apply input function)
- {#.doc (example "Simple 1-argument function application.")}
(All [i o]
(-> i (-> i o) o))
(function input))
@@ -45,4 +31,4 @@
(All [a] (Monoid (-> a a)))
(def: identity ..identity)
- (def: compose ..compose))
+ (def: compose ..composite))
diff --git a/stdlib/source/library/lux/control/io.lux b/stdlib/source/library/lux/control/io.lux
index 321b7159e..1b3b58f7b 100644
--- a/stdlib/source/library/lux/control/io.lux
+++ b/stdlib/source/library/lux/control/io.lux
@@ -16,7 +16,7 @@
["." template]]]])
(abstract: .public (IO a)
- {#.doc "A type that represents synchronous, effectful computations that may interact with the outside world."}
+ {}
(-> Any a)
@@ -34,17 +34,11 @@
[((:representation io) [])])
(syntax: .public (io [computation <code>.any])
- {#.doc (example "Delays the evaluation of an expression, by wrapping it in an IO 'thunk'."
- "Great for wrapping effectful computations (which will not be performed until the IO is 'run!')."
- (io (exec
- (log! msg)
- "Some value...")))}
(with_identifiers [g!func g!arg]
(in (list (` ((~! ..label) (function ((~ g!func) (~ g!arg))
(~ computation))))))))
(def: .public run!
- {#.doc "A way to execute IO computations and perform their side-effects."}
(All [a] (-> (IO a) a))
(|>> run!'))
diff --git a/stdlib/source/library/lux/control/lazy.lux b/stdlib/source/library/lux/control/lazy.lux
index dec12c5f5..46901a3c1 100644
--- a/stdlib/source/library/lux/control/lazy.lux
+++ b/stdlib/source/library/lux/control/lazy.lux
@@ -18,8 +18,7 @@
abstract]]])
(abstract: .public (Lazy a)
- {#.doc (example "A value specified by an expression that is calculated only at the last moment possible."
- "Afterwards, the value is cached for future reference.")}
+ {}
(-> [] a)
@@ -42,7 +41,6 @@
((:representation lazy) [])))
(syntax: .public (lazy [expression <code>.any])
- {#.doc (example "Specifies a lazy value by providing the expression that computes it.")}
(with_identifiers [g!_]
(in (list (` ((~! lazy') (function ((~ g!_) (~ g!_)) (~ expression))))))))
diff --git a/stdlib/source/library/lux/control/maybe.lux b/stdlib/source/library/lux/control/maybe.lux
index 2d9b56039..74b5f06d2 100644
--- a/stdlib/source/library/lux/control/maybe.lux
+++ b/stdlib/source/library/lux/control/maybe.lux
@@ -96,7 +96,8 @@
(implementation: .public (with monad)
(All [M] (-> (Monad M) (Monad (All [a] (M (Maybe a))))))
- (def: &functor (functor.compose (get@ #monad.&functor monad) ..functor))
+ (def: &functor
+ (functor.composite (get@ #monad.&functor monad) ..functor))
(def: in (|>> (\ ..monad in) (\ monad in)))
@@ -110,22 +111,11 @@
(#.Some Mma)
Mma))))
-(def: .public (lift monad)
- {#.doc (example "Wraps a monadic value with Maybe machinery.")}
+(def: .public (lifted monad)
(All [M a] (-> (Monad M) (-> (M a) (M (Maybe a)))))
(\ monad map (\ ..monad in)))
(macro: .public (else tokens state)
- {#.doc (example "Allows you to provide a default value that will be used"
- "if a (Maybe x) value turns out to be #.None."
- "Note: the expression for the default value will not be computed if the base computation succeeds."
- (else +20 (#.Some +10))
- "=>"
- +10
- --------------------------
- (else +20 #.None)
- "=>"
- +20)}
(case tokens
(^ (.list else maybe))
(let [g!temp (: Code [location.dummy (#.Identifier ["" ""])])]
@@ -139,10 +129,7 @@
_
(#.Left "Wrong syntax for else")))
-(def: .public assume
- {#.doc (example "Assumes that a Maybe value is a #.Some and yields its value."
- "Raises/throws a runtime error otherwise."
- "WARNING: Use with caution.")}
+(def: .public trusted
(All [a] (-> (Maybe a) a))
(|>> (..else (undefined))))
@@ -156,11 +143,6 @@
(#.Item value #.End)))
(macro: .public (when tokens state)
- {#.doc (example "Can be used as a guard in (co)monadic be/do expressions."
- (do monad
- [value (do_something 1 2 3)
- ..when (passes_test? value)]
- (do_something_else 4 5 6)))}
(case tokens
(^ (.list test then))
(#.Right [state (.list (` (.if (~ test)
diff --git a/stdlib/source/library/lux/control/parser.lux b/stdlib/source/library/lux/control/parser.lux
index 4c86373f5..f4e304045 100644
--- a/stdlib/source/library/lux/control/parser.lux
+++ b/stdlib/source/library/lux/control/parser.lux
@@ -230,7 +230,7 @@
(function (_ input)
(#try.Failure message)))
-(def: .public (lift operation)
+(def: .public (lifted operation)
{#.doc (example "Lift a potentially failed computation into a parser.")}
(All [s a] (-> (Try a) (Parser s a)))
(function (_ input)
diff --git a/stdlib/source/library/lux/control/parser/analysis.lux b/stdlib/source/library/lux/control/parser/analysis.lux
index 94e7ca9c1..fb32f4608 100644
--- a/stdlib/source/library/lux/control/parser/analysis.lux
+++ b/stdlib/source/library/lux/control/parser/analysis.lux
@@ -37,8 +37,7 @@
(format text.new_line "Remaining input: "
(|> asts
(list\map /.%analysis)
- (list.interposed " ")
- (text.join_with ""))))
+ (text.interposed " "))))
(exception: .public (cannot_parse {input (List Analysis)})
(exception.report
diff --git a/stdlib/source/library/lux/control/parser/binary.lux b/stdlib/source/library/lux/control/parser/binary.lux
index 7cf526d41..d2d195888 100644
--- a/stdlib/source/library/lux/control/parser/binary.lux
+++ b/stdlib/source/library/lux/control/parser/binary.lux
@@ -121,7 +121,7 @@
(^template [<number> <tag> <parser>]
[<number> (\ ! map (|>> <tag>) <parser>)])
((~~ (template.spliced <case>+)))
- _ (//.lift (exception.except ..invalid_tag [(~~ (template.amount <case>+)) flag])))))])
+ _ (//.lifted (exception.except ..invalid_tag [(~~ (template.amount <case>+)) flag])))))])
(def: .public (or left right)
(All [l r] (-> (Parser l) (Parser r) (Parser (Or l r))))
@@ -153,7 +153,7 @@
(case value
0 (in #0)
1 (in #1)
- _ (//.lift (exception.except ..not_a_bit [value])))))
+ _ (//.lifted (exception.except ..not_a_bit [value])))))
(def: .public (segment size)
{#.doc (example "Parses a chunk of data of a given size.")}
@@ -185,7 +185,7 @@
(Parser Text)
(do //.monad
[utf8 <binary>]
- (//.lift (\ utf8.codec decode utf8)))))]
+ (//.lifted (\ utf8.codec decode utf8)))))]
[08 utf8/8 ..binary/8]
[16 utf8/16 ..binary/16]
diff --git a/stdlib/source/library/lux/control/parser/cli.lux b/stdlib/source/library/lux/control/parser/cli.lux
index cc9bf19ab..3dd50a349 100644
--- a/stdlib/source/library/lux/control/parser/cli.lux
+++ b/stdlib/source/library/lux/control/parser/cli.lux
@@ -24,7 +24,7 @@
(#try.Success output)
_
- (#try.Failure (format "Remaining CLI inputs: " (text.join_with " " remaining))))
+ (#try.Failure (format "Remaining CLI inputs: " (text.interposed " " remaining))))
(#try.Failure try)
(#try.Failure try)))
@@ -85,7 +85,7 @@
(function (_ inputs)
(case inputs
#.End (#try.Success [inputs []])
- _ (#try.Failure (format "Unknown parameters: " (text.join_with " " inputs))))))
+ _ (#try.Failure (format "Unknown parameters: " (text.interposed " " inputs))))))
(def: .public (named name value)
{#.doc (example "Parses a named parameter and yields its value.")}
diff --git a/stdlib/source/library/lux/control/parser/code.lux b/stdlib/source/library/lux/control/parser/code.lux
index d22039f4a..93a2f65d9 100644
--- a/stdlib/source/library/lux/control/parser/code.lux
+++ b/stdlib/source/library/lux/control/parser/code.lux
@@ -31,10 +31,11 @@
{#.doc "A Lux code parser."}
(//.Parser (List Code)))
-(def: (remaining_inputs codes)
+(def: remaining_inputs
(-> (List Code) Text)
- ($_ text\compose text.new_line "Remaining input: "
- (|> codes (list\map code.format) (list.interposed " ") (text.join_with ""))))
+ (|>> (list\map code.format)
+ (text.interposed " ")
+ ($_ text\compose text.new_line "Remaining input: ")))
(def: .public any
{#.doc "Yields the next input without applying any logic."}
@@ -189,9 +190,10 @@
(#try.Success value)
_
- (#try.Failure (text\compose "Unconsumed inputs: "
- (|> (list\map code.format unconsumed)
- (text.join_with ", ")))))))
+ (#try.Failure (|> unconsumed
+ (list\map code.format)
+ (text.interposed ", ")
+ (text\compose "Unconsumed inputs: "))))))
(def: .public (local inputs parser)
{#.doc "Runs parser against the given list of inputs."}
diff --git a/stdlib/source/library/lux/control/parser/text.lux b/stdlib/source/library/lux/control/parser/text.lux
index ffe6e6f27..fb2c59128 100644
--- a/stdlib/source/library/lux/control/parser/text.lux
+++ b/stdlib/source/library/lux/control/parser/text.lux
@@ -39,7 +39,7 @@
(def: (remaining' offset tape)
(-> Offset Text Text)
- (|> tape (/.split_at offset) maybe.assume product.right))
+ (|> tape (/.split_at offset) maybe.trusted product.right))
(exception: .public (unconsumed_input {offset Offset} {tape Text})
(exception.report
@@ -174,7 +174,7 @@
(-> Nat Nat (Parser Text))
(do //.monad
[char any
- .let [char' (maybe.assume (/.char 0 char))]
+ .let [char' (maybe.trusted (/.char 0 char))]
_ (//.assertion ($_ /\compose "Character is not within range: " (/.of_char bottom) "-" (/.of_char top))
(.and (n.>= bottom char')
(n.<= top char')))]
@@ -392,4 +392,4 @@
(//.Parser s a)))
(do //.monad
[raw text]
- (//.lift (..result structured raw))))
+ (//.lifted (..result structured raw))))
diff --git a/stdlib/source/library/lux/control/parser/type.lux b/stdlib/source/library/lux/control/parser/type.lux
index 619526cdb..8016080b5 100644
--- a/stdlib/source/library/lux/control/parser/type.lux
+++ b/stdlib/source/library/lux/control/parser/type.lux
@@ -58,7 +58,7 @@
(exception.report
["Types" (|> remaining
(list\map (|>> %.type (format text.new_line "* ")))
- (text.join_with ""))]))
+ (text.interposed ""))]))
(type: .public Env
{#.doc (example "An environment for type parsing.")}
diff --git a/stdlib/source/library/lux/control/reader.lux b/stdlib/source/library/lux/control/reader.lux
index 73737cb54..09fcd2058 100644
--- a/stdlib/source/library/lux/control/reader.lux
+++ b/stdlib/source/library/lux/control/reader.lux
@@ -57,9 +57,11 @@
{#.doc "Monad transformer for Reader."}
(All [M] (-> (Monad M) (All [e] (Monad (All [a] (Reader e (M a)))))))
- (def: &functor (functor.compose ..functor (get@ #monad.&functor monad)))
+ (def: &functor
+ (functor.composite ..functor (get@ #monad.&functor monad)))
- (def: in (|>> (\ monad in) (\ ..monad in)))
+ (def: in
+ (|>> (\ monad in) (\ ..monad in)))
(def: (join eMeMa)
(function (_ env)
@@ -67,7 +69,7 @@
[eMa (result env eMeMa)]
(result env eMa)))))
-(def: .public lift
+(def: .public lifted
{#.doc "Lift monadic values to the Reader wrapper."}
(All [M e a] (-> (M a) (Reader e (M a))))
(\ ..monad in))
diff --git a/stdlib/source/library/lux/control/region.lux b/stdlib/source/library/lux/control/region.lux
index ba3962400..191c6a328 100644
--- a/stdlib/source/library/lux/control/region.lux
+++ b/stdlib/source/library/lux/control/region.lux
@@ -154,7 +154,7 @@
(All [r] (Region r ! a))))
(failure monad (exception.error exception message)))
-(def: .public (lift monad operation)
+(def: .public (lifted monad operation)
{#.doc (example "Lift an effectful computation into a region-based computation.")}
(All [! a]
(-> (Monad !) (! a)
diff --git a/stdlib/source/library/lux/control/state.lux b/stdlib/source/library/lux/control/state.lux
index 9cb56fb89..470751832 100644
--- a/stdlib/source/library/lux/control/state.lux
+++ b/stdlib/source/library/lux/control/state.lux
@@ -142,7 +142,7 @@
[[state' sMa] (sMsMa state)]
(sMa state')))))
-(def: .public (lift monad ma)
+(def: .public (lifted monad ma)
{#.doc "Lift monadic values to the +State wrapper."}
(All [M s a] (-> (Monad M) (M a) (+State M s a)))
(function (_ state)
diff --git a/stdlib/source/library/lux/control/try.lux b/stdlib/source/library/lux/control/try.lux
index 7e785b6fa..c7dc9f1d9 100644
--- a/stdlib/source/library/lux/control/try.lux
+++ b/stdlib/source/library/lux/control/try.lux
@@ -65,7 +65,7 @@
(All [!] (-> (Monad !) (Monad (All [a] (! (Try a))))))
(def: &functor
- (functor.compose (get@ #monad.&functor monad) ..functor))
+ (functor.composite (get@ #monad.&functor monad) ..functor))
(def: in
(|>> (\ ..monad in)
@@ -101,7 +101,7 @@
false
)))
-(def: .public (assumed try)
+(def: .public (trusted try)
{#.doc (example "Assumes a Try value succeeded, and yields its value."
"If it didn't, raises the error as a runtime error."
"WARNING: Use with caution.")}
diff --git a/stdlib/source/library/lux/control/writer.lux b/stdlib/source/library/lux/control/writer.lux
index fe7511a68..18a0fc7e1 100644
--- a/stdlib/source/library/lux/control/writer.lux
+++ b/stdlib/source/library/lux/control/writer.lux
@@ -55,8 +55,8 @@
(All [l M] (-> (Monoid l) (Monad M) (Monad (All [a] (M (Writer l a))))))
(def: &functor
- (functor.compose (get@ #monad.&functor monad)
- ..functor))
+ (functor.composite (get@ #monad.&functor monad)
+ ..functor))
(def: in
(let [writer (..monad monoid)]
@@ -72,7 +72,7 @@
[l2 a] Mla]
(in [(\ monoid compose l1 l2) a]))))
-(def: .public (lift monoid monad)
+(def: .public (lifted monoid monad)
{#.doc (example "Wraps a monadic value with Writer machinery.")}
(All [l M a]
(-> (Monoid l) (Monad M)
diff --git a/stdlib/source/library/lux/data/bit.lux b/stdlib/source/library/lux/data/bit.lux
index 22ff7fe2f..efdca1f5b 100644
--- a/stdlib/source/library/lux/data/bit.lux
+++ b/stdlib/source/library/lux/data/bit.lux
@@ -64,4 +64,4 @@
{#.doc (example "Generates the complement of a predicate."
"That is a predicate that returns the oposite of the original predicate.")}
(All [a] (-> (-> a Bit) (-> a Bit)))
- (function.compose not))
+ (function.composite not))
diff --git a/stdlib/source/library/lux/data/collection/dictionary/ordered.lux b/stdlib/source/library/lux/data/collection/dictionary/ordered.lux
index e6b05bf51..84e883b1d 100644
--- a/stdlib/source/library/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/library/lux/data/collection/dictionary/ordered.lux
@@ -266,7 +266,7 @@
outcome (recur side_root)]
(if (same? side_root outcome)
?root
- (#.Some (<add> (maybe.assume outcome)
+ (#.Some (<add> (maybe.trusted outcome)
root))))]
[_\< #left ..with_left]
diff --git a/stdlib/source/library/lux/data/collection/list.lux b/stdlib/source/library/lux/data/collection/list.lux
index 7298a5039..8cba7efb2 100644
--- a/stdlib/source/library/lux/data/collection/list.lux
+++ b/stdlib/source/library/lux/data/collection/list.lux
@@ -592,9 +592,11 @@
{#.doc (.example "Enhances a monad with List functionality.")}
(All [M] (-> (Monad M) (Monad (All [a] (M (List a))))))
- (def: &functor (functor.compose (get@ #monad.&functor monad) ..functor))
+ (def: &functor
+ (functor.composite (get@ #monad.&functor monad) ..functor))
- (def: in (|>> (\ ..monad in) (\ monad in)))
+ (def: in
+ (|>> (\ ..monad in) (\ monad in)))
(def: (join MlMla)
(do {! monad}
@@ -606,7 +608,7 @@
(monad.seq ! lMla))]
(in (..joined lla)))))
-(def: .public (lift monad)
+(def: .public (lifted monad)
{#.doc (.example "Wraps a monadic value with List machinery.")}
(All [M a] (-> (Monad M) (-> (M a) (M (List a)))))
(\ monad map (\ ..monad in)))
diff --git a/stdlib/source/library/lux/data/collection/row.lux b/stdlib/source/library/lux/data/collection/row.lux
index 230de34a1..6a4b88587 100644
--- a/stdlib/source/library/lux/data/collection/row.lux
+++ b/stdlib/source/library/lux/data/collection/row.lux
@@ -126,13 +126,13 @@
(array.copy! tail_size 0 tail 0)
(array.write! tail_size val))))
-(def: (put' level idx val hierarchy)
+(def: (has' level idx val hierarchy)
(All [a] (-> Level Index a (Hierarchy a) (Hierarchy a)))
(let [sub_idx (branch_idx (i64.right_shifted level idx))]
(case (array.read! sub_idx hierarchy)
(#.Some (#Hierarchy sub_node))
(|> (array.clone hierarchy)
- (array.write! sub_idx (#Hierarchy (put' (level_down level) idx val sub_node))))
+ (array.write! sub_idx (#Hierarchy (has' (level_down level) idx val sub_node))))
(^multi (#.Some (#Base base))
(n.= 0 (level_down level)))
@@ -279,7 +279,7 @@
#.None
(exception.except ..incorrect_row_structure []))))
-(def: .public (put idx val row)
+(def: .public (has idx val row)
(All [a] (-> Nat a (Row a) (Try (Row a))))
(let [row_size (get@ #size row)]
(if (within_bounds? row idx)
@@ -289,7 +289,7 @@
(|>> array.clone (array.write! (branch_idx idx) val)))}
(|>> array.clone (array.write! (branch_idx idx) val)))
row)
- (update@ #root (put' (get@ #level row) idx val)
+ (update@ #root (has' (get@ #level row) idx val)
row)))
(exception.except ..index_out_of_bounds [row idx]))))
@@ -297,7 +297,7 @@
(All [a] (-> Nat (-> a a) (Row a) (Try (Row a))))
(do try.monad
[val (..item idx row)]
- (..put idx (f val) row)))
+ (..has idx (f val) row)))
(def: .public (pop row)
(All [a] (-> (Row a) (Row a)))
@@ -316,7 +316,7 @@
(update@ #size dec)
(set@ #tail (|> (array.empty new_tail_size)
(array.copy! new_tail_size 0 old_tail 0)))))
- (maybe.assume
+ (maybe.trusted
(do maybe.monad
[new_tail (base_for (n.- 2 row_size) row)
.let [[level' root'] (let [init_level (get@ #level row)]
diff --git a/stdlib/source/library/lux/data/collection/sequence.lux b/stdlib/source/library/lux/data/collection/sequence.lux
index d60fd99d4..a7d2cc0b4 100644
--- a/stdlib/source/library/lux/data/collection/sequence.lux
+++ b/stdlib/source/library/lux/data/collection/sequence.lux
@@ -23,11 +23,12 @@
{#.doc "An infinite sequence of values."}
(Cont [a (Sequence a)]))
-(def: .public (iterations f x)
- {#.doc "Create a sequence by applying a function to a value, and to its result, on and on..."}
- (All [a]
- (-> (-> a a) a (Sequence a)))
- (//.pending [x (iterations f (f x))]))
+(def: .public (iterations step init)
+ {#.doc "A stateful way of infinitely calculating the values of a sequence."}
+ (All [a b]
+ (-> (-> a [a b]) a (Sequence b)))
+ (let [[next x] (step init)]
+ (//.pending [x (iterations step next)])))
(def: .public (repeated x)
{#.doc "Repeat a value forever."}
@@ -101,13 +102,6 @@
[split_at Nat (n.= 0 pred) (dec pred)]
)
-(def: .public (unfold step init)
- {#.doc "A stateful way of infinitely calculating the values of a sequence."}
- (All [a b]
- (-> (-> a [a b]) a (Sequence b)))
- (let [[next x] (step init)]
- (//.pending [x (unfold step next)])))
-
(def: .public (only predicate sequence)
{#.doc (example "A new sequence only with items that satisfy the predicate.")}
(All [a] (-> (-> a Bit) (Sequence a) (Sequence a)))
diff --git a/stdlib/source/library/lux/data/format/binary.lux b/stdlib/source/library/lux/data/format/binary.lux
index e16c2cebd..e23ade3fb 100644
--- a/stdlib/source/library/lux/data/format/binary.lux
+++ b/stdlib/source/library/lux/data/format/binary.lux
@@ -78,7 +78,7 @@
[(n.+ <size> offset)
(|> binary
(<write> offset value)
- try.assumed)])]))]
+ try.trusted)])]))]
[bits/8 /.size/8 binary.write/8!]
[bits/16 /.size/16 binary.write/16!]
@@ -97,7 +97,7 @@
(function (_ [offset binary])
(|> binary
(binary.write/8! offset <number>)
- try.assumed
+ try.trusted
[(.inc offset)]
caseT))])])
([0 #.Left left]
@@ -142,7 +142,7 @@
[size
(function (_ [offset binary])
[(n.+ size offset)
- (try.assumed
+ (try.trusted
(binary.copy (n.min size (binary.size value))
0
value
@@ -159,7 +159,7 @@
[size'
(function (_ [offset binary])
[(n.+ size' offset)
- (try.assumed
+ (try.trusted
(do try.monad
[_ (<write> offset size binary)]
(binary.copy size 0 value (n.+ <size> offset) binary)))])]))))]
@@ -202,7 +202,7 @@
specification\identity))]
[(n.+ <size> size)
(function (_ [offset binary])
- (try.assumed
+ (try.trusted
(do try.monad
[_ (<write> offset capped_count binary)]
(in (mutation [(n.+ <size> offset) binary])))))])))]
@@ -247,7 +247,7 @@
(function (_ [offset binary])
(|> binary
(binary.write/8! offset <number>)
- try.assumed
+ try.trusted
[(.inc offset)]
caseT))])])
([0 #.Primitive (..and ..text (..list recur))]
@@ -282,7 +282,7 @@
(function (_ [offset binary])
(|> binary
(binary.write/8! offset <number>)
- try.assumed
+ try.trusted
[(.inc offset)]
caseT))])])
([0 #.Bit ..bit]
diff --git a/stdlib/source/library/lux/data/format/css.lux b/stdlib/source/library/lux/data/format/css.lux
index d86deb7e5..7ec9a0d35 100644
--- a/stdlib/source/library/lux/data/format/css.lux
+++ b/stdlib/source/library/lux/data/format/css.lux
@@ -67,7 +67,7 @@
with_unicode)
(list\map (function (_ [property value])
(format property ": " value ";")))
- (text.join_with /style.separator)
+ (text.interposed /style.separator)
(text.enclosed ["{" "}"])
(format "@font-face")
:abstraction)))
@@ -98,7 +98,7 @@
(format (/value.percentage (get@ #when frame)) " {"
(/style.inline (get@ #what frame))
"}")))
- (text.join_with ..css_separator))
+ (text.interposed ..css_separator))
"}")))
(template: (!compose <pre> <post>)
@@ -115,7 +115,7 @@
:representation
(text.all_split_by ..css_separator)
(list\map (|>> (format (/selector.selector (|> selector (combinator (/selector.tag "")))))))
- (text.join_with ..css_separator)
+ (text.interposed ..css_separator)
:abstraction))
(def: .public (dependent combinator selector style inner)
diff --git a/stdlib/source/library/lux/data/format/css/value.lux b/stdlib/source/library/lux/data/format/css/value.lux
index c2fb914c2..0c8e8f70f 100644
--- a/stdlib/source/library/lux/data/format/css/value.lux
+++ b/stdlib/source/library/lux/data/format/css/value.lux
@@ -61,7 +61,7 @@
(let [raw (%.frac value)]
(if (f.< +0.0 value)
raw
- (|> raw (text.split_at 1) maybe.assume product.right))))
+ (|> raw (text.split_at 1) maybe.trusted product.right))))
(abstract: .public (Value brand)
{}
@@ -786,7 +786,7 @@
(def: (apply name inputs)
(-> Text (List Text) Value)
(|> inputs
- (text.join_with ..value_separator)
+ (text.interposed ..value_separator)
(text.enclosed ["(" ")"])
(format name)
:abstraction))
@@ -1042,7 +1042,7 @@
(|> blur (maybe.else ..default_shadow_length) :representation)
(|> spread (maybe.else ..default_shadow_length) :representation)
(:representation color))
- (text.join_with " ")
+ (text.interposed " ")
(list)
(..apply "drop-shadow")))
@@ -1119,7 +1119,7 @@
(|> spread (maybe.else ..default_shadow_length) :representation)
(:representation color)
with_inset)
- (text.join_with " ")
+ (text.interposed " ")
:abstraction)))
(type: .public Rectangle
@@ -1172,7 +1172,7 @@
(#.Item _)
(|> options
(list\map ..font_name)
- (text.join_with ",")
+ (text.interposed ",")
(:abstraction Value))
#.End
@@ -1212,9 +1212,9 @@
(:abstraction "."))]
(|>> (list\map (|>> (list\map (|>> (maybe.else empty)
:representation))
- (text.join_with ..grid_column_separator)
+ (text.interposed ..grid_column_separator)
(text.enclosed ["'" "'"])))
- (text.join_with ..grid_row_separator)
+ (text.interposed ..grid_row_separator)
:abstraction)))
(def: .public (resolution dpi)
@@ -1248,7 +1248,7 @@
(-> [Quote Quote] [Quote Quote] (Value Quotes))
(|> (list left0 right0 left1 right1)
(list\map (|>> ..quote_text %.text))
- (text.join_with ..quote_separator)
+ (text.interposed ..quote_separator)
:abstraction))
(def: .public (matrix_2d [a b] [c d] [tx ty])
diff --git a/stdlib/source/library/lux/data/format/html.lux b/stdlib/source/library/lux/data/format/html.lux
index 3c3566a56..3a8daf5c0 100644
--- a/stdlib/source/library/lux/data/format/html.lux
+++ b/stdlib/source/library/lux/data/format/html.lux
@@ -64,7 +64,7 @@
(-> Attributes Text)
(|>> (list\map (function (_ [key val])
(format key "=" text.double_quote (..safe val) text.double_quote)))
- (text.join_with " ")))
+ (text.interposed " ")))
(def: (open tag attributes)
(-> Tag Attributes Text)
@@ -259,7 +259,7 @@
(Format Polygon)
(|> (list& first second third extra)
(list\map %coord)
- (text.join_with ..coord_separator)))
+ (text.interposed ..coord_separator)))
(type: .public Shape
(#Rectangle Rectangle)
diff --git a/stdlib/source/library/lux/data/format/json.lux b/stdlib/source/library/lux/data/format/json.lux
index 7f6ca24a8..c6a7ebef0 100644
--- a/stdlib/source/library/lux/data/format/json.lux
+++ b/stdlib/source/library/lux/data/format/json.lux
@@ -227,7 +227,7 @@
value (let [raw (\ f.decimal encode value)]
(if (f.< +0.0 value)
raw
- (|> raw (text.split_at 1) maybe.assume product.right))))))
+ (|> raw (text.split_at 1) maybe.trusted product.right))))))
(def: escape "\")
(def: escaped_dq (text\compose ..escape text.double_quote))
@@ -256,7 +256,7 @@
(-> (-> JSON Text) (-> Array Text))
(|>> (row\map format)
row.list
- (text.join_with ..value_separator)
+ (text.interposed ..value_separator)
(text.enclosed [..array_start ..array_end])))
(def: (kv_format format [key value])
@@ -271,7 +271,7 @@
(-> (-> JSON Text) (-> Object Text))
(|>> dictionary.entries
(list\map (..kv_format format))
- (text.join_with ..value_separator)
+ (text.interposed ..value_separator)
(text.enclosed [..object_start ..object_end])))
(def: .public (format json)
diff --git a/stdlib/source/library/lux/data/format/markdown.lux b/stdlib/source/library/lux/data/format/markdown.lux
index 281425105..11254a92c 100644
--- a/stdlib/source/library/lux/data/format/markdown.lux
+++ b/stdlib/source/library/lux/data/format/markdown.lux
@@ -93,7 +93,7 @@
(if (text.empty? line)
line
(format with line))))
- (text.join_with text.new_line)))
+ (text.interposed text.new_line)))
(def: indent
(-> Text Text)
@@ -121,7 +121,7 @@
#.None
""))))
- (text.join_with text.new_line)
+ (text.interposed text.new_line)
..block))
(def: .public bullet_list
@@ -139,7 +139,7 @@
#.None
""))))
- (text.join_with text.new_line)
+ (text.interposed text.new_line)
..block))
(def: .public snippet
diff --git a/stdlib/source/library/lux/data/format/tar.lux b/stdlib/source/library/lux/data/format/tar.lux
index 8dd91b2ee..7f1346df1 100644
--- a/stdlib/source/library/lux/data/format/tar.lux
+++ b/stdlib/source/library/lux/data/format/tar.lux
@@ -44,7 +44,7 @@
max_size)
padding (|> "0"
(list.repeated padding_size)
- (text.join_with ""))]
+ text.joined)]
(format padding number)))
(def: blank " ")
@@ -132,9 +132,9 @@
(Parser Small)
(do <>.monad
[digits (<binary>.segment ..small_size)
- digits (<>.lift (\ utf8.codec decode digits))
+ digits (<>.lifted (\ utf8.codec decode digits))
_ ..small_suffix]
- (<>.lift
+ (<>.lifted
(do {! try.monad}
[value (\ n.octal decode digits)]
(..small value)))))
@@ -143,12 +143,12 @@
(Parser Big)
(do <>.monad
[digits (<binary>.segment ..big_size)
- digits (<>.lift (\ utf8.codec decode digits))
+ digits (<>.lifted (\ utf8.codec decode digits))
end <binary>.bits/8
_ (let [expected (`` (char (~~ (static ..blank))))]
(<>.assertion (exception.error ..wrong_character [expected end])
(n.= expected end)))]
- (<>.lift
+ (<>.lifted
(do {! try.monad}
[value (\ n.octal decode digits)]
(..big value)))))
@@ -201,9 +201,9 @@
(Parser [Nat Checksum])
(do <>.monad
[ascii (<binary>.segment ..small_size)
- digits (<>.lift (\ utf8.codec decode ascii))
+ digits (<>.lifted (\ utf8.codec decode ascii))
_ ..small_suffix
- value (<>.lift
+ value (<>.lifted
(\ n.octal decode digits))]
(in [value
(:abstraction (format digits ..checksum_suffix))])))
@@ -285,7 +285,7 @@
.let [expected (`` (char (~~ (static ..null))))]
_ (<>.assertion (exception.error ..wrong_character [expected end])
(n.= expected end))]
- (<>.lift
+ (<>.lifted
(do {! try.monad}
[ascii (..un_padded string)
text (\ utf8.codec decode ascii)]
@@ -293,7 +293,7 @@
(def: .public <none>
<type>
- (try.assumed (<in> "")))
+ (try.trusted (<in> "")))
)]
[Name Text ..name_size name_is_too_long name from_name name_writer name_parser anonymous]
@@ -329,7 +329,7 @@
.let [expected (`` (char (~~ (static ..null))))]
_ (<>.assertion (exception.error ..wrong_character [expected end])
(n.= expected end))]
- (<>.lift
+ (<>.lifted
(\ try.monad map (|>> :abstraction)
(\ utf8.codec decode string)))))
)
@@ -436,7 +436,7 @@
(<options>)
_
- (<>.lift
+ (<>.lifted
(exception.except ..invalid_link_flag [(.nat linkflag)]))))))
)
@@ -459,7 +459,7 @@
(Writer Mode)
(|>> :representation
..small
- try.assumed
+ try.trusted
..small_writer))
(exception: .public (invalid_mode {value Nat})
@@ -520,7 +520,7 @@
(if (n.<= (:representation ..maximum_mode)
value)
(in (:abstraction value))
- (<>.lift
+ (<>.lifted
(exception.except ..invalid_mode [value]))))))
)
@@ -584,7 +584,7 @@
(def: no_device
Device
- (try.assumed (..small 0)))
+ (try.trusted (..small 0)))
(type: .public Tar
(Row Entry))
@@ -777,7 +777,7 @@
modification_time ..big_parser
[actual checksum_code] ..checksum_parser
_ (let [expected (expected_checksum checksum_code binary_header)]
- (<>.lift
+ (<>.lifted
(exception.assertion ..wrong_checksum [expected actual]
(n.= expected actual))))
link_flag ..link_flag_parser
@@ -817,7 +817,7 @@
.let [size (get@ #size header)
rounded_size (..rounded_content_size size)]
content (<binary>.segment (..from_big size))
- content (<>.lift (..content content))
+ content (<>.lifted (..content content))
_ (<binary>.segment (n.- (..from_big size) rounded_size))]
(in [(get@ #path header)
(|> header
@@ -838,7 +838,7 @@
(-> Link_Flag (-> Header Path) (Parser Path))
(do <>.monad
[header ..header_parser
- _ (<>.lift
+ _ (<>.lifted
(exception.assertion ..wrong_link_flag [expected (get@ #link_flag header)]
(n.= (..link_flag expected)
(..link_flag (get@ #link_flag header)))))]
@@ -864,7 +864,7 @@
(do <>.monad
[block (<binary>.segment ..block_size)]
(let [actual (..checksum block)]
- (<>.lift
+ (<>.lifted
(exception.assertion ..wrong_checksum [0 actual]
(n.= 0 actual))))))
@@ -875,7 +875,7 @@
(do <>.monad
[_ (<>.at_most 2 end_of_archive_block_parser)
done? <binary>.end?]
- (<>.lift
+ (<>.lifted
(exception.assertion ..invalid_end_of_archive []
done?))))
diff --git a/stdlib/source/library/lux/data/format/xml.lux b/stdlib/source/library/lux/data/format/xml.lux
index 637ba71f7..67722607c 100644
--- a/stdlib/source/library/lux/data/format/xml.lux
+++ b/stdlib/source/library/lux/data/format/xml.lux
@@ -239,7 +239,7 @@
dictionary.entries
(list\map (function (_ [key value])
($_ text\compose (..attribute key) "=" text.double_quote (sanitize_value value) text.double_quote)))
- (text.join_with " "))))]
+ (text.interposed " "))))]
(function (_ input)
($_ text\compose
..xml_header text.new_line
@@ -269,7 +269,7 @@
($_ text\compose prefix "<" tag attrs ">"
(|> xml_children
(list\map (|>> (recur (text\compose prefix text.tab)) (text\compose text.new_line)))
- (text.join_with ""))
+ text.joined)
text.new_line prefix "</" tag ">")))))
))))
(def: decode
diff --git a/stdlib/source/library/lux/data/text.lux b/stdlib/source/library/lux/data/text.lux
index e2f781d64..2670bdae3 100644
--- a/stdlib/source/library/lux/data/text.lux
+++ b/stdlib/source/library/lux/data/text.lux
@@ -297,7 +297,7 @@
(|>> list.reversed
(list\fold compose identity))))
-(def: .public (join_with separator texts)
+(def: .public (interposed separator texts)
(-> Text (List Text) Text)
(case separator
"" (..joined texts)
diff --git a/stdlib/source/library/lux/data/text/escape.lux b/stdlib/source/library/lux/data/text/escape.lux
index fe56f754b..f46331176 100644
--- a/stdlib/source/library/lux/data/text/escape.lux
+++ b/stdlib/source/library/lux/data/text/escape.lux
@@ -23,7 +23,7 @@
(template [<char> <sigil>]
[(def: <char>
- (|> <sigil> (//.char 0) maybe.assume))]
+ (|> <sigil> (//.char 0) maybe.trusted))]
[sigil_char ..sigil]
[\u_sigil "u"]
@@ -31,7 +31,7 @@
(template [<literal> <sigil> <escaped>]
[(def: <sigil>
- (|> <literal> (//.char 0) maybe.assume))
+ (|> <literal> (//.char 0) maybe.trusted))
(def: <escaped>
(format ..sigil <literal>))]
@@ -50,7 +50,7 @@
(template [<char> <text>]
[(def: <char>
- (|> <text> (//.char 0) maybe.assume))]
+ (|> <text> (//.char 0) maybe.trusted))]
[\0 //.\0]
[\a //.\a]
diff --git a/stdlib/source/library/lux/data/text/format.lux b/stdlib/source/library/lux/data/text/format.lux
index 3438e3f96..1a274b692 100644
--- a/stdlib/source/library/lux/data/text/format.lux
+++ b/stdlib/source/library/lux/data/text/format.lux
@@ -121,7 +121,7 @@
(def: .public (list formatter)
(All [a] (-> (Format a) (Format (List a))))
(|>> (list\map (|>> formatter (format " ")))
- (text.join_with "")
+ text.joined
(text.enclosed ["(list" ")"])))
(def: .public (maybe format)
diff --git a/stdlib/source/library/lux/data/text/regex.lux b/stdlib/source/library/lux/data/text/regex.lux
index 795bee383..4998e9ce9 100644
--- a/stdlib/source/library/lux/data/text/regex.lux
+++ b/stdlib/source/library/lux/data/text/regex.lux
@@ -52,11 +52,9 @@
(-> Text (Parser Text))
(<>.after (<text>.this reference) (<>\in reference)))
-(def: (join_text^ part^)
+(def: join_text^
(-> (Parser (List Text)) (Parser Text))
- (do <>.monad
- [parts part^]
- (in (//.join_with "" parts))))
+ (\ <>.monad map //.joined))
(def: name_char^
(Parser Text)
@@ -87,9 +85,9 @@
(def: re_range^
(Parser Code)
(do {! <>.monad}
- [from (|> regex_char^ (\ ! map (|>> (//.char 0) maybe.assume)))
+ [from (|> regex_char^ (\ ! map (|>> (//.char 0) maybe.trusted)))
_ (<text>.this "-")
- to (|> regex_char^ (\ ! map (|>> (//.char 0) maybe.assume)))]
+ to (|> regex_char^ (\ ! map (|>> (//.char 0) maybe.trusted)))]
(in (` ((~! <text>.range) (~ (code.nat from)) (~ (code.nat to)))))))
(def: re_char^
diff --git a/stdlib/source/library/lux/data/text/unicode/set.lux b/stdlib/source/library/lux/data/text/unicode/set.lux
index ab3c1672b..be47d038a 100644
--- a/stdlib/source/library/lux/data/text/unicode/set.lux
+++ b/stdlib/source/library/lux/data/text/unicode/set.lux
@@ -31,7 +31,7 @@
(Tree :@: Block [])
- (def: .public (compose left right)
+ (def: .public (composite left right)
(-> Set Set Set)
(:abstraction
(\ builder branch
@@ -47,7 +47,7 @@
(-> [Block (List Block)] Set)
(list\fold (: (-> Block Set Set)
(function (_ block set)
- (..compose (..singleton block) set)))
+ (..composite (..singleton block) set)))
(..singleton head)
tail))
@@ -154,7 +154,7 @@
(def: .public character
Set
- ($_ ..compose
+ ($_ ..composite
..character/0
..character/1
..character/2
@@ -197,7 +197,7 @@
(def: .public full
Set
- ($_ ..compose
+ ($_ ..composite
..character
..non_character
))
diff --git a/stdlib/source/library/lux/debug.lux b/stdlib/source/library/lux/debug.lux
index 488933f58..8183fb6ff 100644
--- a/stdlib/source/library/lux/debug.lux
+++ b/stdlib/source/library/lux/debug.lux
@@ -137,7 +137,7 @@
<adaption>
array.list
(list\map inspection)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["[" "]"])))))
(def: .public (inspection value)
diff --git a/stdlib/source/library/lux/documentation.lux b/stdlib/source/library/lux/documentation.lux
index 798bf3056..8651dbdcc 100644
--- a/stdlib/source/library/lux/documentation.lux
+++ b/stdlib/source/library/lux/documentation.lux
@@ -72,13 +72,15 @@
(def: (padding reference_column [_ old_line old_column] [_ new_line new_column])
(-> Nat Location Location Text)
(if (n.= old_line new_line)
- (text.joined (list.repeated (n.- old_column new_column) " "))
- (format (if (n.< new_line old_line)
- (text.joined (list.repeated (n.- old_line new_line) \n))
- "")
- (if (n.< new_column reference_column)
- (text.joined (list.repeated (n.- reference_column new_column) " "))
- ""))))
+ (if (n.< old_column new_column)
+ ""
+ (text.joined (list.repeated (n.- old_column new_column) " ")))
+ (format (if (n.< old_line new_line)
+ ""
+ (text.joined (list.repeated (n.- old_line new_line) \n)))
+ (if (n.< reference_column new_column)
+ ""
+ (text.joined (list.repeated (n.- reference_column new_column) " "))))))
(def: un_paired
(All [a] (-> (List [a a]) (List a)))
@@ -186,7 +188,7 @@
(-> Example Code)
(|>> (list\map ..fragment_documentation)
(list.interposed ..blank_line)
- (text.join_with "")
+ (text.interposed "")
code.text))
(syntax: (minimal_definition_documentation
@@ -239,6 +241,7 @@
(type: .public #rec Module
{#module Text
+ #description Text
#expected (Set Text)
#definitions (List Definition)})
@@ -284,20 +287,23 @@
(|>> (text.all_split_by ..expected_separator)
(set.of_list text.hash)))
-(def: (module' name expected definitions)
- (-> Text Text (List Definition) Module)
+(def: (module' name description expected definitions)
+ (-> Text Text Text (List Definition) Module)
{#module name
+ #description description
#expected (..expected expected)
#definitions definitions})
(syntax: .public (module [[name _] ..qualified_identifier
+ description <code>.any
definitions (<code>.tuple (<>.some <code>.any))
subs (<code>.tuple (<>.some <code>.any))])
(do meta.monad
[expected (meta.exports name)]
(in (list (` (: (List Module)
- (list& ((~! module')
+ (list& ((~! ..module')
(~ (code.text name))
+ (~ description)
(~ (code.text (|> expected
(list\map product.left)
..expected_format)))
@@ -321,6 +327,10 @@
($_ md.then
... Name
(md.heading/1 (get@ #module module))
+ ... Description
+ (<| md.paragraph
+ md.text
+ (get@ #description module))
... Definitions
(md.heading/2 "Definitions")
(|> module
diff --git a/stdlib/source/library/lux/extension.lux b/stdlib/source/library/lux/extension.lux
index 0f81e4bda..acc859dba 100644
--- a/stdlib/source/library/lux/extension.lux
+++ b/stdlib/source/library/lux/extension.lux
@@ -19,33 +19,12 @@
[compiler
["." phase]]]]])
-(type: Input
- {#variable Text
- #parser Code})
-
-(def: (simple default)
- (-> Code (Parser Input))
- ($_ <>.and
- <c>.local_identifier
- (<>\in default)))
-
-(def: complex
- (Parser Input)
- (<c>.record ($_ <>.and
- <c>.local_identifier
- <c>.any)))
-
-(def: (input default)
- (-> Code (Parser Input))
- (<>.either (..simple default)
- ..complex))
-
(type: Declaration
{#name Code
#label Text
#phase Text
#archive Text
- #inputs (List Input)})
+ #inputs (List Code)})
(def: (declaration default)
(-> Code (Parser Declaration))
@@ -54,28 +33,25 @@
<c>.local_identifier
<c>.local_identifier
<c>.local_identifier
- (<>.some (..input default)))))
+ (<c>.tuple (<>.some <c>.any)))))
(template [<any> <end> <and> <result> <extension> <name>]
[(syntax: .public (<name> [[name extension phase archive inputs] (..declaration (` <any>))
body <c>.any])
- (let [g!parser (case (list\map product.right inputs)
- #.End
- (` <end>)
-
- parsers
- (` (.$_ <and> (~+ parsers))))
- g!name (code.local_identifier extension)
+ (let [g!name (code.local_identifier extension)
g!phase (code.local_identifier phase)
g!archive (code.local_identifier archive)]
- (with_identifiers [g!handler g!inputs g!error]
+ (with_identifiers [g!handler g!inputs g!error g!_]
(in (list (` (<extension> (~ name)
(.function ((~ g!handler) (~ g!name) (~ g!phase) (~ g!archive) (~ g!inputs))
- (.case ((~! <result>) (~ g!parser) (~ g!inputs))
- (#.Right [(~+ (list\map (|>> product.left
- code.local_identifier)
- inputs))])
- (~ body)
+ (.case ((~! <result>)
+ ((~! monad.do) (~! <>.monad)
+ [(~+ inputs)
+ (~ g!_) <end>]
+ (.\ (~! <>.monad) (~' in) (~ body)))
+ (~ g!inputs))
+ (#.Right (~ g!_))
+ (~ g!_)
(#.Left (~ g!error))
((~! phase.failure) (~ g!error)))
diff --git a/stdlib/source/library/lux/ffi.jvm.lux b/stdlib/source/library/lux/ffi.jvm.lux
index 1030a353a..52fdef075 100644
--- a/stdlib/source/library/lux/ffi.jvm.lux
+++ b/stdlib/source/library/lux/ffi.jvm.lux
@@ -1,6 +1,6 @@
(.module:
[library
- ["." lux (#- Type type int char interface:)
+ ["." lux (#- Type type int char interface: :as)
["#_." type ("#\." equivalence)]
[abstract
["." monad (#+ Monad do)]
@@ -1455,8 +1455,8 @@
... else
(let [g!temp (` ((~' ~') (~ (code.identifier ["" " Ω "]))))]
(` (let [(~ g!temp) (~ return_term)]
- (if (not (..null? (:as (primitive "java.lang.Object")
- (~ g!temp))))
+ (if (not (..null? (.:as (primitive "java.lang.Object")
+ (~ g!temp))))
(~ g!temp)
(panic! "Cannot produce null references from method calls."))))))
@@ -1729,11 +1729,11 @@
(|>> ("jvm member invoke virtual" [] "java.lang.Class" "isInterface" [])
"jvm object cast"
(: ..Boolean)
- (:as Bit)))
+ (.:as Bit)))
(def: load_class
(-> External (Try (primitive "java.lang.Class" [Any])))
- (|>> (:as (primitive "java.lang.String"))
+ (|>> (.:as (primitive "java.lang.String"))
["Ljava/lang/String;"]
("jvm member invoke static" [] "java.lang.Class" "forName" [])
try))
@@ -1897,7 +1897,7 @@
(text.starts_with? descriptor.array_prefix name)
(case params
#.End
- (let [[_ unprefixed] (maybe.assume (text.split_by descriptor.array_prefix name))]
+ (let [[_ unprefixed] (maybe.trusted (text.split_by descriptor.array_prefix name))]
(\ meta.monad map type.array
(lux_type->jvm_type (#.Primitive unprefixed (list)))))
@@ -2062,8 +2062,8 @@
["Signature" (..signature type)]
["Reflection" (..reflection type)]))
-(syntax: .public (:cast [type (..type^ (list))
- object <code>.any])
+(syntax: .public (:as [type (..type^ (list))
+ object <code>.any])
(case [(parser.array? type)
(parser.class? type)]
(^or [(#.Some _) _] [_ (#.Some _)])
diff --git a/stdlib/source/library/lux/ffi.old.lux b/stdlib/source/library/lux/ffi.old.lux
index 0e041f5a1..29c286b23 100644
--- a/stdlib/source/library/lux/ffi.old.lux
+++ b/stdlib/source/library/lux/ffi.old.lux
@@ -299,7 +299,7 @@
(code.identifier ["" name])
(#.Some [pname pbounds])
- (class_type' mode type_params in_array? (maybe.assume (list.head pbounds))))
+ (class_type' mode type_params in_array? (maybe.trusted (list.head pbounds))))
(#GenericClass name+params)
(generic_class_type' mode type_params in_array? name+params
@@ -352,7 +352,7 @@
type_var_class
(#.Some [pname pbounds])
- (simple_class$ env (maybe.assume (list.head pbounds))))
+ (simple_class$ env (maybe.trusted (list.head pbounds))))
(^or (#GenericWildcard #.None) (#GenericWildcard (#.Some [#LowerBound _])))
type_var_class
@@ -451,7 +451,7 @@
(<code>.form (<>.after (<code>.this! (' ::new!))
(<code>.tuple (<>.exactly (list.size arg_decls) <code>.any)))))
.let [arg_decls' (: (List Text) (list\map (|>> product.right (simple_class$ params)) arg_decls))]]
- (in (` ((~ (code.text (format "jvm new" ":" class_name ":" (text.join_with "," arg_decls'))))
+ (in (` ((~ (code.text (format "jvm new" ":" class_name ":" (text.interposed "," arg_decls'))))
(~+ args))))))
(def: (static_method_parser params class_name method_name arg_decls)
@@ -462,7 +462,7 @@
(<code>.form (<>.after (<code>.this! (code.identifier ["" dotted_name]))
(<code>.tuple (<>.exactly (list.size arg_decls) <code>.any)))))
.let [arg_decls' (: (List Text) (list\map (|>> product.right (simple_class$ params)) arg_decls))]]
- (in (`' ((~ (code.text (format "jvm invokestatic" ":" class_name ":" method_name ":" (text.join_with "," arg_decls'))))
+ (in (`' ((~ (code.text (format "jvm invokestatic" ":" class_name ":" method_name ":" (text.interposed "," arg_decls'))))
(~+ args))))))
(template [<name> <jvm_op>]
@@ -474,7 +474,7 @@
(<code>.form (<>.after (<code>.this! (code.identifier ["" dotted_name]))
(<code>.tuple (<>.exactly (list.size arg_decls) <code>.any)))))
.let [arg_decls' (: (List Text) (list\map (|>> product.right (simple_class$ params)) arg_decls))]]
- (in (`' ((~ (code.text (format <jvm_op> ":" class_name ":" method_name ":" (text.join_with "," arg_decls'))))
+ (in (`' ((~ (code.text (format <jvm_op> ":" class_name ":" method_name ":" (text.interposed "," arg_decls'))))
(~' _jvm_this) (~+ args))))))]
[special_method_parser "jvm invokespecial"]
@@ -949,7 +949,7 @@
(def: spaced
(-> (List JVM_Code) JVM_Code)
- (text.join_with " "))
+ (text.interposed " "))
(def: (privacy_modifier$ pm)
(-> Privacy JVM_Code)
@@ -972,7 +972,7 @@
(def: (annotation$ [name params])
(-> Annotation JVM_Code)
- (format "(" name " " "{" (text.join_with text.tab (list\map annotation_param$ params)) "}" ")"))
+ (format "(" name " " "{" (text.interposed text.tab (list\map annotation_param$ params)) "}" ")"))
(def: (bound_kind$ kind)
(-> BoundKind JVM_Code)
@@ -1100,7 +1100,7 @@
(in (`' ((~ (code.text (format "jvm invokespecial"
":" (get@ #super_class_name super_class)
":" name
- ":" (text.join_with "," arg_decls'))))
+ ":" (text.interposed "," arg_decls'))))
(~' _jvm_this) (~+ args)))))))]
(with_parens
(spaced (list "override"
@@ -1528,7 +1528,7 @@
(#ConstructorDecl [commons _])
(do meta.monad
[.let [def_name (code.identifier ["" (..import_name import_format method_prefix (get@ #import_member_alias commons))])
- jvm_extension (code.text (format "jvm new" ":" full_name ":" (text.join_with "," arg_classes)))
+ jvm_extension (code.text (format "jvm new" ":" full_name ":" (text.interposed "," arg_classes)))
jvm_interop (|> (` ((~ jvm_extension)
(~+ (jvm_extension_inputs (get@ #import_member_mode commons) arg_classes arg_function_inputs))))
(decorate_return_maybe class member)
@@ -1559,7 +1559,7 @@
["invokeinterface"
(list g!obj)]
)))
- jvm_extension (code.text (format "jvm " jvm_op ":" full_name ":" import_method_name ":" (text.join_with "," arg_classes)))
+ jvm_extension (code.text (format "jvm " jvm_op ":" full_name ":" import_method_name ":" (text.interposed "," arg_classes)))
jvm_interop (|> [(simple_class$ (list) (get@ #import_method_return method))
(` ((~ jvm_extension) (~+ (list\map un_quote object_ast))
(~+ (jvm_extension_inputs (get@ #import_member_mode commons) arg_classes arg_function_inputs))))]
diff --git a/stdlib/source/library/lux/macro/syntax.lux b/stdlib/source/library/lux/macro/syntax.lux
index 2067663ad..cdb788bc9 100644
--- a/stdlib/source/library/lux/macro/syntax.lux
+++ b/stdlib/source/library/lux/macro/syntax.lux
@@ -114,7 +114,7 @@
((~ g!body) (~ g!state))
(#.Left (~ g!error))
- (#.Left ((~! text.join_with) (~! text.new_line) (list (~ error_msg) (~ g!error))))}
+ (#.Left ((~! text.interposed) (~! text.new_line) (list (~ error_msg) (~ g!error))))}
((~! </>.result)
(: ((~! </>.Parser) (Meta (List Code)))
((~! do) (~! <>.monad)
diff --git a/stdlib/source/library/lux/macro/syntax/definition.lux b/stdlib/source/library/lux/macro/syntax/definition.lux
index b0322f507..7ebf281d4 100644
--- a/stdlib/source/library/lux/macro/syntax/definition.lux
+++ b/stdlib/source/library/lux/macro/syntax/definition.lux
@@ -108,7 +108,7 @@
me_raw (|> raw
macro.full_expansion
(meta.result compiler)
- <>.lift)]
+ <>.lifted)]
(<| (<code>.local me_raw)
<code>.form
(<>.after (<code>.text! ..extension))
@@ -138,5 +138,5 @@
(in [])
(#.Right _)
- (<>.lift (exception.except ..lacks_type! [definition])))]
+ (<>.lifted (exception.except ..lacks_type! [definition])))]
(in definition)))
diff --git a/stdlib/source/library/lux/macro/template.lux b/stdlib/source/library/lux/macro/template.lux
index b5a364ffd..8de4f2501 100644
--- a/stdlib/source/library/lux/macro/template.lux
+++ b/stdlib/source/library/lux/macro/template.lux
@@ -91,7 +91,7 @@
(text [#0 123 +456 +789.0 "abc" .def ..ghi])
"=>"
"#0123+456+789.0abcdefghi")}
- (in (list (|> simple (text.join_with "") code.text))))
+ (in (list (|> simple (text.interposed "") code.text))))
(template [<a/an> <name> <simple> <complex> <short_example> <full_example>]
[(`` (syntax: .public (<name> [name (<>.or (<>.and (..part true) (..part false))
@@ -107,11 +107,11 @@
<full_example>)}
(case name
(#.Left [simple complex])
- (in (list (<complex> [(text.join_with "" simple)
- (text.join_with "" complex)])))
+ (in (list (<complex> [(text.interposed "" simple)
+ (text.interposed "" complex)])))
(#.Right simple)
- (in (list (|> simple (text.join_with "") <simple>))))))]
+ (in (list (|> simple (text.interposed "") <simple>))))))]
["An" identifier code.local_identifier code.identifier
abcdefghi
diff --git a/stdlib/source/library/lux/math/modulus.lux b/stdlib/source/library/lux/math/modulus.lux
index 92d9a5903..3c360bf60 100644
--- a/stdlib/source/library/lux/math/modulus.lux
+++ b/stdlib/source/library/lux/math/modulus.lux
@@ -55,7 +55,7 @@
"Failure!"
(literal 0))}
- (meta.lift
+ (meta.lifted
(do try.monad
[_ (..modulus divisor)]
- (in (list (` ((~! try.assumed) (..modulus (~ (code.int divisor))))))))))
+ (in (list (` ((~! try.trusted) (..modulus (~ (code.int divisor))))))))))
diff --git a/stdlib/source/library/lux/math/number/frac.lux b/stdlib/source/library/lux/math/number/frac.lux
index 981424626..9e49975f8 100644
--- a/stdlib/source/library/lux/math/number/frac.lux
+++ b/stdlib/source/library/lux/math/number/frac.lux
@@ -233,7 +233,7 @@
[(def: <name>
(|> <hex>
(\ //nat.hex decode)
- try.assumed
+ try.trusted
<cast>))]
[.i64 "FFF8000000000000" not_a_number_bits]
diff --git a/stdlib/source/library/lux/math/number/i16.lux b/stdlib/source/library/lux/math/number/i16.lux
index 3bbbbe6f4..59d067f31 100644
--- a/stdlib/source/library/lux/math/number/i16.lux
+++ b/stdlib/source/library/lux/math/number/i16.lux
@@ -10,7 +10,7 @@
["." i64 (#+ Sub)]])
(def: sub
- (maybe.assume (i64.sub 16)))
+ (maybe.trusted (i64.sub 16)))
(def: .public I16
{#.doc (example "A 16-bit integer.")}
diff --git a/stdlib/source/library/lux/math/number/i32.lux b/stdlib/source/library/lux/math/number/i32.lux
index bd0a705cf..75e6c6ec3 100644
--- a/stdlib/source/library/lux/math/number/i32.lux
+++ b/stdlib/source/library/lux/math/number/i32.lux
@@ -10,7 +10,7 @@
["." i64 (#+ Sub)]])
(def: sub
- (maybe.assume (i64.sub 32)))
+ (maybe.trusted (i64.sub 32)))
(def: .public I32
{#.doc (example "A 32-bit integer.")}
diff --git a/stdlib/source/library/lux/math/number/i64.lux b/stdlib/source/library/lux/math/number/i64.lux
index df8d01dbe..fd0c5545b 100644
--- a/stdlib/source/library/lux/math/number/i64.lux
+++ b/stdlib/source/library/lux/math/number/i64.lux
@@ -169,7 +169,7 @@
(repetitions size "1")
(repetitions size "0")))
- high (try.assumed (\ n.binary decode pattern))
+ high (try.trusted (\ n.binary decode pattern))
low (..right_rotated size high)]
(function (_ value)
(..or (..right_shifted size (..and high value))
diff --git a/stdlib/source/library/lux/math/number/i8.lux b/stdlib/source/library/lux/math/number/i8.lux
index ba935b2d8..e0721117c 100644
--- a/stdlib/source/library/lux/math/number/i8.lux
+++ b/stdlib/source/library/lux/math/number/i8.lux
@@ -10,7 +10,7 @@
["." i64 (#+ Sub)]])
(def: sub
- (maybe.assume (i64.sub 8)))
+ (maybe.trusted (i64.sub 8)))
(def: .public I8
{#.doc (example "An 8-bit integer.")}
diff --git a/stdlib/source/library/lux/meta.lux b/stdlib/source/library/lux/meta.lux
index 72f0b2b51..b415adb91 100644
--- a/stdlib/source/library/lux/meta.lux
+++ b/stdlib/source/library/lux/meta.lux
@@ -298,7 +298,7 @@
(-> (List Text) Text)
(|>> ..without_lux_runtime
(list.sorted text\<)
- (text.join_with ..listing_separator)))
+ (text.interposed ..listing_separator)))
(def: .public (definition name)
{#.doc "Looks-up a definition's whole data in the available modules (including the current one)."}
@@ -344,7 +344,7 @@
#.None))))))
list.joined
(list.sorted text\<)
- (text.join_with ..listing_separator))
+ (text.interposed ..listing_separator))
imports (|> this_module
(get@ #.imports)
..module_listing)
@@ -352,7 +352,7 @@
(get@ #.module_aliases)
(list\map (function (_ [alias real]) ($_ text\compose alias " => " real)))
(list.sorted text\<)
- (text.join_with ..listing_separator))]
+ (text.interposed ..listing_separator))]
($_ text\compose
" Candidates: " candidates text.new_line
" Imports: " imports text.new_line
@@ -536,7 +536,7 @@
" Known tags: " (|> =module
(get@ #.tags)
(list\map (|>> product.left [module] name\encode (text.prefix text.new_line)))
- (text.join_with ""))
+ text.joined)
)))))
(def: .public (tag_lists module)
@@ -591,7 +591,7 @@
(function (_ lux)
(#try.Success [lux (get@ #.type_context lux)])))
-(def: .public (lift result)
+(def: .public (lifted result)
(All [a] (-> (Try a) (Meta a)))
(case result
(#try.Success output)
diff --git a/stdlib/source/library/lux/target/common_lisp.lux b/stdlib/source/library/lux/target/common_lisp.lux
index b57326480..a53fac36f 100644
--- a/stdlib/source/library/lux/target/common_lisp.lux
+++ b/stdlib/source/library/lux/target/common_lisp.lux
@@ -147,7 +147,7 @@
(def: .public args
(-> (List Var/1) Var/*)
(|>> (list\map ..code)
- (text.join_with " ")
+ (text.interposed " ")
..as_form
:abstraction))
@@ -160,7 +160,7 @@
(#.Item _)
(|> singles
(list\map ..code)
- (text.join_with " ")
+ (text.interposed " ")
(text.suffix " ")))
(format "&rest " (:representation rest))
..as_form
@@ -169,7 +169,7 @@
(def: form
(-> (List (Expression Any)) Expression)
(|>> (list\map ..code)
- (text.join_with " ")
+ (text.interposed " ")
..as_form
:abstraction))
diff --git a/stdlib/source/library/lux/target/js.lux b/stdlib/source/library/lux/target/js.lux
index 2e3d62147..95c49a200 100644
--- a/stdlib/source/library/lux/target/js.lux
+++ b/stdlib/source/library/lux/target/js.lux
@@ -120,7 +120,7 @@
(def: .public array
(-> (List Expression) Computation)
(|>> (list\map ..code)
- (text.join_with ..argument_separator)
+ (text.interposed ..argument_separator)
..element
:abstraction))
@@ -140,7 +140,7 @@
(-> Expression (List Expression) Computation)
(|> inputs
(list\map ..code)
- (text.join_with ..argument_separator)
+ (text.interposed ..argument_separator)
..expression
(format (:representation function))
:abstraction))
@@ -153,7 +153,7 @@
(-> (List [Text Expression]) Computation)
(|>> (list\map (.function (_ [key val])
(format (:representation (..string key)) ..field_separator (:representation val))))
- (text.join_with ..argument_separator)
+ (text.interposed ..argument_separator)
(text.enclosed ["{" "}"])
..expression
:abstraction))
@@ -185,7 +185,7 @@
(format "function " (:representation name)
(|> inputs
(list\map ..code)
- (text.join_with ..argument_separator)
+ (text.interposed ..argument_separator)
..expression)
" ")
:abstraction))
@@ -204,7 +204,7 @@
(format "function"
(|> inputs
(list\map ..code)
- (text.join_with ..argument_separator)
+ (text.interposed ..argument_separator)
..expression)
" ")
..expression
@@ -286,7 +286,7 @@
(|> (format "new " (:representation constructor)
(|> inputs
(list\map ..code)
- (text.join_with ..argument_separator)
+ (text.interposed ..argument_separator)
..expression))
..expression
:abstraction))
@@ -411,9 +411,9 @@
(list\map (.function (_ [when then])
(format (|> when
(list\map (|>> :representation (text.enclosed ["case " ":"])))
- (text.join_with text.new_line))
+ (text.interposed text.new_line))
(..nested (:representation then)))))
- (text.join_with text.new_line))
+ (text.interposed text.new_line))
text.new_line
(case default
(#.Some default)
diff --git a/stdlib/source/library/lux/target/jvm/attribute.lux b/stdlib/source/library/lux/target/jvm/attribute.lux
index 72e054d5f..1dd3c323e 100644
--- a/stdlib/source/library/lux/target/jvm/attribute.lux
+++ b/stdlib/source/library/lux/target/jvm/attribute.lux
@@ -87,7 +87,7 @@
(def: (constant' @name index)
(-> (Index UTF8) (Constant Any) Attribute)
(#Constant {#name @name
- #length (|> /constant.length //unsigned.u4 try.assumed)
+ #length (|> /constant.length //unsigned.u4 try.trusted)
#info index}))
(def: .public (constant index)
@@ -104,7 +104,7 @@
#length (|> specification
(/code.length ..length)
//unsigned.u4
- try.assumed)
+ try.trusted)
#info specification}))
(def: .public (code specification)
diff --git a/stdlib/source/library/lux/target/jvm/bytecode.lux b/stdlib/source/library/lux/target/jvm/bytecode.lux
index b742f16cc..87b0a75c5 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode.lux
@@ -198,7 +198,7 @@
[]]]))))
(template [<name> <frames>]
- [(def: <name> U2 (|> <frames> //unsigned.u2 try.assumed))]
+ [(def: <name> U2 (|> <frames> //unsigned.u2 try.trusted))]
[$0 0]
[$1 1]
@@ -210,7 +210,7 @@
)
(template [<name> <registry>]
- [(def: <name> Registry (|> <registry> //unsigned.u2 try.assumed /registry.registry))]
+ [(def: <name> Registry (|> <registry> //unsigned.u2 try.trusted /registry.registry))]
[@_ 0]
[@0 1]
@@ -436,7 +436,7 @@
(-> S1 (Bytecode Any))
(..bytecode $0 $1 @_ _.bipush [byte]))
-(def: (lift resource)
+(def: (lifted resource)
(All [a]
(-> (Resource a)
(Bytecode a)))
@@ -450,7 +450,7 @@
(def: .public (string value)
(-> //constant.UTF8 (Bytecode Any))
(do ..monad
- [index (..lift (//constant/pool.string value))]
+ [index (..lifted (//constant/pool.string value))]
(case (|> index //index.value //unsigned.value //unsigned.u1)
(#try.Success index)
(..bytecode $0 $1 @_ _.ldc [index])
@@ -475,7 +475,7 @@
<specializations>
_ (do ..monad
- [index (..lift (<constant> (<constructor> value)))]
+ [index (..lifted (<constant> (<constructor> value)))]
(case (|> index //index.value //unsigned.value //unsigned.u1)
(#try.Success index)
(..bytecode $0 $1 @_ _.ldc [index])
@@ -497,7 +497,7 @@
(def: (arbitrary_float value)
(-> java/lang/Float (Bytecode Any))
(do ..monad
- [index (..lift (//constant/pool.float (//constant.float value)))]
+ [index (..lifted (//constant/pool.float (//constant.float value)))]
(case (|> index //index.value //unsigned.value //unsigned.u1)
(#try.Success index)
(..bytecode $0 $1 @_ _.ldc [index])
@@ -537,7 +537,7 @@
<specializations>
_ (do ..monad
- [index (..lift (<constant> (<constructor> value)))]
+ [index (..lifted (<constant> (<constructor> value)))]
(..bytecode $0 $2 @_ <wide> [index]))))]
[long Int //constant.long //constant/pool.long _.ldc2_w/long
@@ -549,7 +549,7 @@
(def: (arbitrary_double value)
(-> java/lang/Double (Bytecode Any))
(do ..monad
- [index (..lift (//constant/pool.double (//constant.double (:as Frac value))))]
+ [index (..lifted (//constant/pool.double (//constant.double (:as Frac value))))]
(..bytecode $0 $2 @_ _.ldc2_w/double [index])))
(def: double_bits
@@ -821,7 +821,7 @@
(in [..no_exceptions (bytecode jump)])]
[goto_w _.goto_w
(in [..no_exceptions (bytecode jump)])
- (in [..no_exceptions (bytecode (/jump.lift jump))])]
+ (in [..no_exceptions (bytecode (/jump.lifted jump))])]
)
(def: (big_jump jump)
@@ -831,7 +831,7 @@
big
(#.Right small)
- (/jump.lift small)))
+ (/jump.lifted small)))
(exception: .public invalid_tableswitch)
@@ -924,7 +924,7 @@
(-> (Type <category>) (Bytecode Any))
(do ..monad
[... TODO: Make sure it's impossible to have indexes greater than U2.
- index (..lift (//constant/pool.class (//name.internal (..reflection class))))]
+ index (..lifted (//constant/pool.class (//name.internal (..reflection class))))]
(..bytecode <consumption> <production> @_ <instruction> [index])))]
[$0 $1 new Class _.new]
@@ -949,8 +949,8 @@
(case (|> dimensions //unsigned.value)
0 (..except ..multiarray_cannot_be_zero_dimensional [class])
_ (in [])))
- index (..lift (//constant/pool.class (//name.internal (..reflection class))))]
- (..bytecode (//unsigned.lift/2 dimensions) $1 @_ _.multianewarray [index dimensions])))
+ index (..lifted (//constant/pool.class (//name.internal (..reflection class))))]
+ (..bytecode (//unsigned.lifted/2 dimensions) $1 @_ _.multianewarray [index dimensions])))
(def: (type_size type)
(-> (Type Return) Nat)
@@ -969,7 +969,7 @@
(-> (Type Class) Text (Type Method) (Bytecode Any))
(let [[type_variables inputs output exceptions] (parser.method type)]
(do ..monad
- [index (<| ..lift
+ [index (<| ..lifted
(<method> (..reflection class))
{#//constant/pool.name method
#//constant/pool.descriptor (type.descriptor type)})
@@ -977,10 +977,10 @@
(list\map ..type_size)
(list\fold n.+ (if <static?> 0 1))
//unsigned.u1
- try.assumed)
- production (|> output ..type_size //unsigned.u1 try.assumed)]]
- (..bytecode (//unsigned.lift/2 consumption)
- (//unsigned.lift/2 production)
+ try.trusted)
+ production (|> output ..type_size //unsigned.u1 try.trusted)]]
+ (..bytecode (//unsigned.lifted/2 consumption)
+ (//unsigned.lifted/2 production)
@_
<instruction> [index consumption production]))))]
@@ -994,7 +994,7 @@
[(def: .public (<name> class field type)
(-> (Type Class) Text (Type Value) (Bytecode Any))
(do ..monad
- [index (<| ..lift
+ [index (<| ..lifted
(//constant/pool.field (..reflection class))
{#//constant/pool.name field
#//constant/pool.descriptor (type.descriptor type)})]
@@ -1017,7 +1017,7 @@
(def: .public (try @start @end @handler catch)
(-> Label Label Label (Type Class) (Bytecode Any))
(do ..monad
- [@catch (..lift (//constant/pool.class (//name.internal (..reflection catch))))]
+ [@catch (..lifted (//constant/pool.class (//name.internal (..reflection catch))))]
(function (_ [pool environment tracker])
(#try.Success
[[pool
@@ -1038,7 +1038,7 @@
_.empty])))
[]]]))))
-(def: .public (compose pre post)
+(def: .public (composite pre post)
(All [pre post]
(-> (Bytecode pre) (Bytecode post) (Bytecode post)))
(do ..monad
diff --git a/stdlib/source/library/lux/target/jvm/bytecode/address.lux b/stdlib/source/library/lux/target/jvm/bytecode/address.lux
index d7f2f612f..669b49548 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode/address.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode/address.lux
@@ -34,7 +34,7 @@
(def: .public start
Address
- (|> 0 ///unsigned.u2 try.assumed :abstraction))
+ (|> 0 ///unsigned.u2 try.trusted :abstraction))
(def: .public (move distance)
(-> U2 (-> Address (Try Address)))
diff --git a/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux b/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux
index ddc600162..43cb70e87 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/registry.lux
@@ -78,10 +78,10 @@
(template [<name> <extra>]
[(def: .public <name>
(-> Register Registry)
- (let [extra (|> <extra> /////unsigned.u2 try.assumed)]
- (|>> /////unsigned.lift/2
+ (let [extra (|> <extra> /////unsigned.u2 try.trusted)]
+ (|>> /////unsigned.lifted/2
(/////unsigned.+/2 extra)
- try.assumed
+ try.trusted
:abstraction)))]
[for ..normal]
diff --git a/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux b/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux
index 5499207cf..ac3934f87 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode/environment/limit/stack.lux
@@ -25,7 +25,7 @@
(template [<frames> <name>]
[(def: .public <name>
Stack
- (|> <frames> /////unsigned.u2 maybe.assume :abstraction))]
+ (|> <frames> /////unsigned.u2 maybe.trusted :abstraction))]
[0 empty]
[1 catch]
diff --git a/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux b/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
index 22777c083..7f8638dca 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
@@ -59,7 +59,7 @@
(type: Opcode Nat)
(template [<name> <size>]
- [(def: <name> Size (|> <size> ///unsigned.u2 try.assumed))]
+ [(def: <name> Size (|> <size> ///unsigned.u2 try.trusted))]
[opcode_size 1]
[register_size 1]
@@ -74,7 +74,7 @@
(function (_ [offset binary])
[(n.+ (///unsigned.value ..opcode_size)
offset)
- (try.assumed
+ (try.trusted
(binary.write/8! offset opcode binary))]))
(def: nullary
@@ -90,7 +90,7 @@
Size
(|> ..opcode_size
(///unsigned.+/2 <size>)
- try.assumed))]
+ try.trusted))]
[size/1 ..register_size]
[size/2 ..index_size]
@@ -103,7 +103,7 @@
(-> Opcode <inputT> Mutation)
(function (_ [offset binary])
[(n.+ (///unsigned.value <shift>) offset)
- (try.assumed
+ (try.trusted
(do try.monad
[_ (binary.write/8! offset opcode binary)]
(<writer> (n.+ (///unsigned.value ..opcode_size) offset)
@@ -129,7 +129,7 @@
(-> Opcode <inputT> Mutation)
(function (_ [offset binary])
[(n.+ (///unsigned.value <shift>) offset)
- (try.assumed
+ (try.trusted
(do try.monad
[_ (binary.write/8! offset opcode binary)]
(<writer> (n.+ (///unsigned.value ..opcode_size) offset)
@@ -150,14 +150,14 @@
(def: size/11
Size
(|> ..opcode_size
- (///unsigned.+/2 ..register_size) try.assumed
- (///unsigned.+/2 ..byte_size) try.assumed))
+ (///unsigned.+/2 ..register_size) try.trusted
+ (///unsigned.+/2 ..byte_size) try.trusted))
(def: (binary/11' opcode input0 input1)
(-> Opcode U1 U1 Mutation)
(function (_ [offset binary])
[(n.+ (///unsigned.value ..size/11) offset)
- (try.assumed
+ (try.trusted
(do try.monad
[_ (binary.write/8! offset opcode binary)
_ (binary.write/8! (n.+ (///unsigned.value ..opcode_size) offset)
@@ -177,14 +177,14 @@
(def: size/21
Size
(|> ..opcode_size
- (///unsigned.+/2 ..index_size) try.assumed
- (///unsigned.+/2 ..byte_size) try.assumed))
+ (///unsigned.+/2 ..index_size) try.trusted
+ (///unsigned.+/2 ..byte_size) try.trusted))
(def: (binary/21' opcode input0 input1)
(-> Opcode U2 U1 Mutation)
(function (_ [offset binary])
[(n.+ (///unsigned.value ..size/21) offset)
- (try.assumed
+ (try.trusted
(do try.monad
[_ (binary.write/8! offset opcode binary)
_ (binary.write/16! (n.+ (///unsigned.value ..opcode_size) offset)
@@ -204,15 +204,15 @@
(def: size/211
Size
(|> ..opcode_size
- (///unsigned.+/2 ..index_size) try.assumed
- (///unsigned.+/2 ..byte_size) try.assumed
- (///unsigned.+/2 ..byte_size) try.assumed))
+ (///unsigned.+/2 ..index_size) try.trusted
+ (///unsigned.+/2 ..byte_size) try.trusted
+ (///unsigned.+/2 ..byte_size) try.trusted))
(def: (trinary/211' opcode input0 input1 input2)
(-> Opcode U2 U1 U1 Mutation)
(function (_ [offset binary])
[(n.+ (///unsigned.value ..size/211) offset)
- (try.assumed
+ (try.trusted
(do try.monad
[_ (binary.write/8! offset opcode binary)
_ (binary.write/16! (n.+ (///unsigned.value ..opcode_size) offset)
@@ -242,7 +242,7 @@
(|>> :representation))
(template [<code> <name>]
- [(def: .public <name> (|> <code> ///unsigned.u1 try.assumed :abstraction))]
+ [(def: .public <name> (|> <code> ///unsigned.u1 try.trusted :abstraction))]
[04 t_boolean]
[05 t_char]
@@ -573,7 +573,7 @@
[["C5" multianewarray [[index (Index Class)] [count U1]] [(///index.value index) count]]]]
[..trinary/211
- [["B9" invokeinterface [[index (Index (Reference Method))] [count U1] [output_count U1]] [(///index.value index) count (try.assumed (///unsigned.u1 0))]]]]
+ [["B9" invokeinterface [[index (Index (Reference Method))] [count U1] [output_count U1]] [(///index.value index) count (try.trusted (///unsigned.u1 0))]]]]
))
(def: (switch_padding offset)
@@ -598,14 +598,14 @@
(n.* (///unsigned.value ..big_jump_size)
(inc amount_of_afterwards)))
///unsigned.u2
- try.assumed)))]
+ try.trusted)))]
[estimator
(function (_ minimum default [at_minimum afterwards])
(let [amount_of_afterwards (list.size afterwards)
estimator (estimator amount_of_afterwards)]
(function (_ [size mutation])
(let [padding (switch_padding size)
- tableswitch_size (try.assumed
+ tableswitch_size (try.trusted
(do {! try.monad}
[size (///unsigned.u2 size)]
(\ ! map (|>> estimator ///unsigned.value)
@@ -613,7 +613,7 @@
tableswitch_mutation (: Mutation
(function (_ [offset binary])
[(n.+ tableswitch_size offset)
- (try.assumed
+ (try.trusted
(do {! try.monad}
[amount_of_afterwards (|> amount_of_afterwards .int ///signed.s4)
maximum (///signed.+/4 minimum amount_of_afterwards)
@@ -662,14 +662,14 @@
(///unsigned.value ..integer_size)
(n.* amount_of_cases case_size))
///unsigned.u2
- try.assumed)))]
+ try.trusted)))]
[estimator
(function (_ default cases)
(let [amount_of_cases (list.size cases)
estimator (estimator amount_of_cases)]
(function (_ [size mutation])
(let [padding (switch_padding size)
- lookupswitch_size (try.assumed
+ lookupswitch_size (try.trusted
(do {! try.monad}
[size (///unsigned.u2 size)]
(\ ! map (|>> estimator ///unsigned.value)
@@ -677,7 +677,7 @@
lookupswitch_mutation (: Mutation
(function (_ [offset binary])
[(n.+ lookupswitch_size offset)
- (try.assumed
+ (try.trusted
(do {! try.monad}
[_ (binary.write/8! offset (hex "AB") binary)
.let [offset (n.+ (///unsigned.value ..opcode_size) offset)]
diff --git a/stdlib/source/library/lux/target/jvm/bytecode/jump.lux b/stdlib/source/library/lux/target/jvm/bytecode/jump.lux
index 53fdd6081..74821d838 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode/jump.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode/jump.lux
@@ -22,6 +22,6 @@
(type: .public Big_Jump S4)
-(def: .public lift
+(def: .public lifted
(-> Jump Big_Jump)
- ///signed.lift/4)
+ ///signed.lifted/4)
diff --git a/stdlib/source/library/lux/target/jvm/constant/pool.lux b/stdlib/source/library/lux/target/jvm/constant/pool.lux
index a82683e1b..2278889b8 100644
--- a/stdlib/source/library/lux/target/jvm/constant/pool.lux
+++ b/stdlib/source/library/lux/target/jvm/constant/pool.lux
@@ -154,5 +154,5 @@
(def: .public empty
Pool
- [(|> 1 //unsigned.u2 try.assumed //index.index)
+ [(|> 1 //unsigned.u2 try.trusted //index.index)
row.empty])
diff --git a/stdlib/source/library/lux/target/jvm/constant/tag.lux b/stdlib/source/library/lux/target/jvm/constant/tag.lux
index 7d53837f0..54b4dbba1 100644
--- a/stdlib/source/library/lux/target/jvm/constant/tag.lux
+++ b/stdlib/source/library/lux/target/jvm/constant/tag.lux
@@ -28,7 +28,7 @@
(template [<code> <name>]
[(def: .public <name>
Tag
- (|> <code> ///unsigned.u1 try.assumed :abstraction))]
+ (|> <code> ///unsigned.u1 try.trusted :abstraction))]
[01 utf8]
[03 integer]
diff --git a/stdlib/source/library/lux/target/jvm/encoding/signed.lux b/stdlib/source/library/lux/target/jvm/encoding/signed.lux
index 196f60380..8fed13354 100644
--- a/stdlib/source/library/lux/target/jvm/encoding/signed.lux
+++ b/stdlib/source/library/lux/target/jvm/encoding/signed.lux
@@ -93,8 +93,8 @@
(-> <from> <to>)
(|>> :transmutation))]
- [lift/2 S1 S2]
- [lift/4 S2 S4]
+ [lifted/2 S1 S2]
+ [lifted/4 S2 S4]
)
(template [<writer_name> <type> <writer>]
diff --git a/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux b/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux
index e9084bb9d..8a889a1ad 100644
--- a/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux
+++ b/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux
@@ -107,8 +107,8 @@
(-> <from> <to>)
(|>> :transmutation))]
- [lift/2 U1 U2]
- [lift/4 U2 U4]
+ [lifted/2 U1 U2]
+ [lifted/4 U2 U4]
)
(template [<writer_name> <type> <writer>]
diff --git a/stdlib/source/library/lux/target/jvm/magic.lux b/stdlib/source/library/lux/target/jvm/magic.lux
index c08360f9e..b2b547fcf 100644
--- a/stdlib/source/library/lux/target/jvm/magic.lux
+++ b/stdlib/source/library/lux/target/jvm/magic.lux
@@ -14,7 +14,9 @@
(def: .public code
Magic
- (|> (hex "CAFEBABE") //unsigned.u4 try.assumed))
+ (|> (hex "CAFEBABE")
+ //unsigned.u4
+ try.trusted))
(def: .public writer
//unsigned.writer/4)
diff --git a/stdlib/source/library/lux/target/jvm/modifier.lux b/stdlib/source/library/lux/target/jvm/modifier.lux
index 523a9a722..c7eb021b2 100644
--- a/stdlib/source/library/lux/target/jvm/modifier.lux
+++ b/stdlib/source/library/lux/target/jvm/modifier.lux
@@ -43,7 +43,7 @@
(template: (!wrap value)
[(|> value
//unsigned.u2
- try.assumed
+ try.trusted
:abstraction)])
(template: (!unwrap value)
diff --git a/stdlib/source/library/lux/target/jvm/type/alias.lux b/stdlib/source/library/lux/target/jvm/type/alias.lux
index 6b3a2ee45..5ba678bf6 100644
--- a/stdlib/source/library/lux/target/jvm/type/alias.lux
+++ b/stdlib/source/library/lux/target/jvm/type/alias.lux
@@ -128,4 +128,4 @@
return (..return aliasing)
exceptions (<>.some (..exception aliasing))]
(in (//.method [type_variables inputs return exceptions]))))
- try.assumed))
+ try.trusted))
diff --git a/stdlib/source/library/lux/target/jvm/type/descriptor.lux b/stdlib/source/library/lux/target/jvm/type/descriptor.lux
index 60e8eead3..9c0f56021 100644
--- a/stdlib/source/library/lux/target/jvm/type/descriptor.lux
+++ b/stdlib/source/library/lux/target/jvm/type/descriptor.lux
@@ -98,7 +98,7 @@
(:abstraction
(format (|> inputs
(list\map ..descriptor)
- (text.join_with "")
+ text.joined
(text.enclosed ["(" ")"]))
(:representation output))))
@@ -122,5 +122,5 @@
(n.- prefix_size)
(n.- suffix_size)))
(\ maybe.monad map ///name.internal)
- maybe.assume))))))
+ maybe.trusted))))))
)
diff --git a/stdlib/source/library/lux/target/jvm/type/parser.lux b/stdlib/source/library/lux/target/jvm/type/parser.lux
index 6712f7ee0..2bbbca6ca 100644
--- a/stdlib/source/library/lux/target/jvm/type/parser.lux
+++ b/stdlib/source/library/lux/target/jvm/type/parser.lux
@@ -98,7 +98,7 @@
(|>> //.signature
//signature.signature
(<text>.result ..var')
- try.assumed))
+ try.trusted))
(template [<name> <prefix> <constructor>]
[(def: <name>
@@ -166,7 +166,7 @@
(|>> //.signature
//signature.signature
(<text>.result (..class'' ..parameter))
- try.assumed))
+ try.trusted))
(def: .public value
(Parser (Type Value))
@@ -224,7 +224,7 @@
(|>> //.signature
//signature.signature
(<text>.result parser)
- try.assumed)))
+ try.trusted)))
(template [<name> <category> <parser>]
[(def: .public <name>
@@ -262,4 +262,4 @@
(|>> //.signature
//signature.signature
(<text>.result ..declaration')
- try.assumed))
+ try.trusted))
diff --git a/stdlib/source/library/lux/target/jvm/type/signature.lux b/stdlib/source/library/lux/target/jvm/type/signature.lux
index 23038130a..683ba1432 100644
--- a/stdlib/source/library/lux/target/jvm/type/signature.lux
+++ b/stdlib/source/library/lux/target/jvm/type/signature.lux
@@ -94,7 +94,7 @@
(format ..parameters_start
(|> parameters
(list\map ..signature)
- (text.join_with ""))
+ text.joined)
..parameters_end))
//descriptor.class_suffix)))
@@ -130,18 +130,18 @@
(|> type_variables
(list\map (|>> ..var_name
(text.suffix ..class_bound)))
- (text.join_with "")
+ text.joined
(text.enclosed [..parameters_start
..parameters_end])))
(|> inputs
(list\map ..signature)
- (text.join_with "")
+ text.joined
(text.enclosed [..arguments_start
..arguments_end]))
(:representation output)
(|> exceptions
(list\map (|>> :representation (format ..exception_prefix)))
- (text.join_with "")))))
+ text.joined))))
(implementation: .public equivalence
(All [category] (Equivalence (Signature category)))
diff --git a/stdlib/source/library/lux/target/jvm/version.lux b/stdlib/source/library/lux/target/jvm/version.lux
index f5db348ef..7fbf55c35 100644
--- a/stdlib/source/library/lux/target/jvm/version.lux
+++ b/stdlib/source/library/lux/target/jvm/version.lux
@@ -13,12 +13,16 @@
(def: .public default_minor
Minor
- (|> 0 //unsigned.u2 try.assumed))
+ (|> 0
+ //unsigned.u2
+ try.trusted))
(template [<number> <name>]
[(def: .public <name>
Major
- (|> <number> //unsigned.u2 try.assumed))]
+ (|> <number>
+ //unsigned.u2
+ try.trusted))]
[45 v1_1]
[46 v1_2]
diff --git a/stdlib/source/library/lux/target/lua.lux b/stdlib/source/library/lux/target/lua.lux
index 0bf872340..b79db8fc4 100644
--- a/stdlib/source/library/lux/target/lua.lux
+++ b/stdlib/source/library/lux/target/lua.lux
@@ -141,13 +141,13 @@
(def: .public multi
(-> (List Expression) Literal)
(|>> (list\map ..code)
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
:abstraction))
(def: .public array
(-> (List Expression) Literal)
(|>> (list\map ..code)
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["{" "}"])
:abstraction))
@@ -155,7 +155,7 @@
(-> (List [Text Expression]) Literal)
(|>> (list\map (.function (_ [key value])
(format key " = " (:representation value))))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["{" "}"])
:abstraction))
@@ -177,7 +177,7 @@
(-> (List Expression) Expression Computation)
(|> args
(list\map ..code)
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["(" ")"])
(format (:representation func))
:abstraction))
@@ -186,7 +186,7 @@
(-> Text (List Expression) Expression Computation)
(|> args
(list\map ..code)
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["(" ")"])
(format (:representation table) ":" method)
:abstraction))
@@ -256,7 +256,7 @@
(def: locations
(-> (List Location) Text)
(|>> (list\map ..code)
- (text.join_with ..input_separator)))
+ (text.interposed ..input_separator)))
(def: .public (local vars)
(-> (List Var) Statement)
@@ -306,7 +306,7 @@
(:abstraction
(format "for " (|> vars
(list\map ..code)
- (text.join_with ..input_separator))
+ (text.interposed ..input_separator))
" in " (:representation source) " do"
(..nested (:representation body!))
text.new_line "end")))
diff --git a/stdlib/source/library/lux/target/php.lux b/stdlib/source/library/lux/target/php.lux
index 16ebbe5af..11aea7808 100644
--- a/stdlib/source/library/lux/target/php.lux
+++ b/stdlib/source/library/lux/target/php.lux
@@ -183,7 +183,7 @@
(def: arguments
(-> (List Expression) Text)
- (|>> (list\map ..code) (text.join_with ..input_separator) ..group))
+ (|>> (list\map ..code) (text.interposed ..input_separator) ..group))
(def: .public (apply/* args func)
(-> (List Expression) Expression Computation)
@@ -201,7 +201,7 @@
(.if reference?
(format "&" (:representation var))
(:representation var))))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
..group))
(template [<name> <reference?>]
@@ -310,7 +310,7 @@
(-> (List Expression) Literal)
(|> values
(list\map ..code)
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
..group
(format "array")
:abstraction))
@@ -324,7 +324,7 @@
(|> kvs
(list\map (function (_ [key value])
(format (:representation key) " => " (:representation value))))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
..group
(format "array")
:abstraction))
@@ -493,7 +493,7 @@
text.new_line
(|> excepts
(list\map catch)
- (text.join_with text.new_line)))))
+ (text.interposed text.new_line)))))
(template [<name> <keyword>]
[(def: .public <name>
diff --git a/stdlib/source/library/lux/target/python.lux b/stdlib/source/library/lux/target/python.lux
index 4fd525f46..c8a62c58b 100644
--- a/stdlib/source/library/lux/target/python.lux
+++ b/stdlib/source/library/lux/target/python.lux
@@ -192,7 +192,7 @@
(format left_delimiter
(|> entries
(list\map entry_serializer)
- (text.join_with ", "))
+ (text.interposed ", "))
right_delimiter))))
(template [<name> <pre> <post>]
@@ -224,7 +224,7 @@
(-> (Expression Any) (List (Expression Any)) (Computation Any))
(<| :abstraction
... ..expression
- (format (:representation func) "(" (text.join_with ", " (list\map ..code args)) ")")))
+ (format (:representation func) "(" (text.interposed ", " (list\map ..code args)) ")")))
(template [<name> <brand> <prefix>]
[(def: (<name> var)
@@ -243,7 +243,7 @@
(format (:representation func)
(format "(" (|> args
(list\map (function (_ arg) (format (:representation arg) ", ")))
- (text.join_with ""))
+ text.joined)
(<splat> extra) ")"))))]
[apply_poly splat_poly]
@@ -323,13 +323,13 @@
(-> (List (Var Any)) (Expression Any) (Computation Any))
(<| :abstraction
..expression
- (format "lambda " (|> arguments (list\map ..code) (text.join_with ", ")) ": "
+ (format "lambda " (|> arguments (list\map ..code) (text.interposed ", ")) ": "
(:representation body))))
(def: .public (set vars value)
(-> (List (Location Any)) (Expression Any) (Statement Any))
(:abstraction
- (format (|> vars (list\map ..code) (text.join_with ", "))
+ (format (|> vars (list\map ..code) (text.interposed ", "))
" = "
(:representation value))))
@@ -406,10 +406,10 @@
(..nested (:representation body!))
(|> excepts
(list\map (function (_ [classes exception catch!])
- (format text.new_line "except (" (text.join_with ", " (list\map ..code classes))
+ (format text.new_line "except (" (text.interposed ", " (list\map ..code classes))
") as " (:representation exception) ":"
(..nested (:representation catch!)))))
- (text.join_with "")))))
+ text.joined))))
(template [<name> <keyword> <pre>]
[(def: .public (<name> value)
@@ -437,7 +437,7 @@
(-> SVar (List (Ex [k] (Var k))) (Statement Any) (Statement Any))
(:abstraction
(format "def " (:representation name)
- "(" (|> args (list\map ..code) (text.join_with ", ")) "):"
+ "(" (|> args (list\map ..code) (text.interposed ", ")) "):"
(..nested (:representation body)))))
(def: .public (import module_name)
diff --git a/stdlib/source/library/lux/target/r.lux b/stdlib/source/library/lux/target/r.lux
index a41440b7a..15804b77b 100644
--- a/stdlib/source/library/lux/target/r.lux
+++ b/stdlib/source/library/lux/target/r.lux
@@ -168,12 +168,14 @@
(def: .public (apply args func)
(-> (List Expression) Expression Expression)
(let [func (:representation func)
- spacing (|> " " (list.repeated (text.size func)) (text.join_with ""))]
+ spacing (|> " "
+ (list.repeated (text.size func))
+ text.joined)]
(:abstraction
(format func "("
(|> args
(list\map ..code)
- (text.join_with (format "," text.new_line))
+ (text.interposed (format "," text.new_line))
..nested)
")"))))
@@ -197,10 +199,10 @@
(..self_contained
(format (:representation func)
(format "("
- (text.join_with "," (list\map ..code args)) ","
- (text.join_with "," (list\map (.function (_ [key val])
- (format key "=" (:representation val)))
- kw_args))
+ (text.interposed "," (list\map ..code args)) ","
+ (text.interposed "," (list\map (.function (_ [key val])
+ (format key "=" (:representation val)))
+ kw_args))
")"))))
(syntax: (arity_inputs [arity <code>.nat])
@@ -326,7 +328,7 @@
(def: .public (function inputs body)
(-> (List (Ex [k] (Var k))) Expression Expression)
- (let [args (|> inputs (list\map ..code) (text.join_with ", "))]
+ (let [args (|> inputs (list\map ..code) (text.interposed ", "))]
(..self_contained
(format "function(" args ") "
(.._block (:representation body))))))
diff --git a/stdlib/source/library/lux/target/ruby.lux b/stdlib/source/library/lux/target/ruby.lux
index b717ef7cb..032ebb265 100644
--- a/stdlib/source/library/lux/target/ruby.lux
+++ b/stdlib/source/library/lux/target/ruby.lux
@@ -201,7 +201,7 @@
(def: .public array
(-> (List Expression) Literal)
(|>> (list\map (|>> :representation))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["[" "]"])
:abstraction))
@@ -209,7 +209,7 @@
(-> (List [Expression Expression]) Literal)
(|>> (list\map (.function (_ [k v])
(format (:representation k) " => " (:representation v))))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["{" "}"])
:abstraction))
@@ -217,7 +217,7 @@
(-> (List Expression) Expression Computation)
(|> args
(list\map (|>> :representation))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["(" ")"])
(format (:representation func))
:abstraction))
@@ -226,7 +226,7 @@
(-> (List Expression) Expression Computation)
(|> args
(list\map (|>> :representation))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["[" "]"])
(format (:representation lambda))
:abstraction))
@@ -268,7 +268,7 @@
(:abstraction
(format (|> vars
(list\map (|>> :representation))
- (text.join_with ..input_separator))
+ (text.interposed ..input_separator))
" = " (:representation value) ..statement_suffix)))
(def: (block content)
@@ -318,10 +318,10 @@
(format "begin" (..nested (:representation body!))
(|> rescues
(list\map (.function (_ [classes exception rescue])
- (format text.new_line "rescue " (text.join_with ..input_separator classes)
+ (format text.new_line "rescue " (text.interposed ..input_separator classes)
" => " (:representation exception)
(..nested (:representation rescue)))))
- (text.join_with text.new_line)))))
+ (text.interposed text.new_line)))))
(def: .public (catch expectation body!)
(-> Expression Statement Statement)
@@ -357,7 +357,7 @@
(format "def " (:representation name)
(|> args
(list\map (|>> :representation))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed ["(" ")"]))
(..nested (:representation body!)))))
@@ -365,7 +365,7 @@
(-> (Maybe LVar) (List Var) Statement Literal)
(let [proc (|> (format (|> args
(list\map (|>> :representation))
- (text.join_with ..input_separator)
+ (text.interposed ..input_separator)
(text.enclosed' "|"))
(..nested (:representation body!)))
(text.enclosed ["{" "}"])
diff --git a/stdlib/source/library/lux/target/scheme.lux b/stdlib/source/library/lux/target/scheme.lux
index 6dcc744ca..7e910a91f 100644
--- a/stdlib/source/library/lux/target/scheme.lux
+++ b/stdlib/source/library/lux/target/scheme.lux
@@ -86,14 +86,14 @@
(|> (format " . " (:representation rest))
(format (|> mandatory
(list\map ..code)
- (text.join_with " ")))
+ (text.interposed " ")))
(text.enclosed ["(" ")"])
:abstraction))
#.None
(|> mandatory
(list\map ..code)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["(" ")"])
:abstraction)))
@@ -164,7 +164,7 @@
(|> tail
(list\map (|>> :representation ..nested))
(#.Item (:representation head))
- (text.join_with nested_new_line)
+ (text.interposed nested_new_line)
(text.enclosed ["(" ")"])
:abstraction)))))
diff --git a/stdlib/source/library/lux/test.lux b/stdlib/source/library/lux/test.lux
index 867304aa7..dbd87627e 100644
--- a/stdlib/source/library/lux/test.lux
+++ b/stdlib/source/library/lux/test.lux
@@ -116,7 +116,7 @@
[tally (|> documentation
(text.all_split_by ..separator)
(list\map (|>> (format context_prefix)))
- (text.join_with ..separator)
+ (text.interposed ..separator)
(format description ..separator))]))))
(def: failure_prefix "[Failure] ")
@@ -143,7 +143,7 @@
(-> Text Bit Test)
(random\in (..assertion message condition)))
-(def: .public (lift message random)
+(def: .public (lifted message random)
(-> Text (Random Bit) Test)
(random\map (..assertion message) random))
@@ -273,7 +273,7 @@
(-> (List Name) Bit Assertion)
(let [message (|> coverage
(list\map %.name)
- (text.join_with " & "))
+ (text.interposed " & "))
coverage (set.of_list name.hash coverage)]
(|> (..assertion message condition)
(async\map (function (_ [tally documentation])
@@ -289,7 +289,7 @@
(-> (List Name) Test Test)
(let [context (|> coverage
(list\map %.name)
- (text.join_with " & "))
+ (text.interposed " & "))
coverage (set.of_list name.hash coverage)]
(random\map (async\map (function (_ [tally documentation])
[(update@ #actual_coverage (set.union coverage) tally)
@@ -441,7 +441,7 @@
(list\fold ..total ..start))
(|> assertions
(list\map product.right)
- (text.join_with ..separator))]))
+ (text.interposed ..separator))]))
(in []))))
(run! test)))
(list.enumeration tests)))]]
diff --git a/stdlib/source/library/lux/time.lux b/stdlib/source/library/lux/time.lux
index 9429e7081..eb0928f5c 100644
--- a/stdlib/source/library/lux/time.lux
+++ b/stdlib/source/library/lux/time.lux
@@ -74,7 +74,7 @@
[value <sub_parser>]
(if (n.< <maximum> value)
(in value)
- (<>.lift (exception.except <exception> [value])))))]
+ (<>.lifted (exception.except <exception> [value])))))]
[..hours hour_parser invalid_hour ..section_parser]
[..minutes minute_parser invalid_minute ..section_parser]
diff --git a/stdlib/source/library/lux/time/date.lux b/stdlib/source/library/lux/time/date.lux
index 310be7a0e..75e5609ea 100644
--- a/stdlib/source/library/lux/time/date.lux
+++ b/stdlib/source/library/lux/time/date.lux
@@ -87,7 +87,7 @@
(def: .public epoch
Date
- (try.assumed
+ (try.trusted
(..date //year.epoch
#//month.January
..minimum_day)))
@@ -166,7 +166,7 @@
(if (and (n.>= <minimum> value)
(n.<= <maximum> value))
(in value)
- (<>.lift (exception.except <exception> [value])))))]
+ (<>.lifted (exception.except <exception> [value])))))]
[1 12 month_parser invalid_month]
)
@@ -178,9 +178,9 @@
_ (<text>.this ..separator)
utc_month ..month_parser
_ (<text>.this ..separator)
- .let [month (maybe.assume (dictionary.value utc_month ..month_by_number))]
+ .let [month (maybe.trusted (dictionary.value utc_month ..month_by_number))]
utc_day ..section_parser]
- (<>.lift (..date utc_year month utc_day))))
+ (<>.lifted (..date utc_year month utc_day))))
(def: (format value)
(-> Date Text)
@@ -337,9 +337,9 @@
(inc year)
year)]
... Coercing, because the year is already in internal form.
- (try.assumed
+ (try.trusted
(..date (:as Year year)
- (maybe.assume (dictionary.value month ..month_by_number))
+ (maybe.trusted (dictionary.value month ..month_by_number))
day))))
(implementation: .public enum
diff --git a/stdlib/source/library/lux/time/instant.lux b/stdlib/source/library/lux/time/instant.lux
index cc19a4ecc..36e0b2504 100644
--- a/stdlib/source/library/lux/time/instant.lux
+++ b/stdlib/source/library/lux/time/instant.lux
@@ -122,7 +122,7 @@
duration.millis
.nat
//.of_millis
- try.assumed))
+ try.trusted))
(def: (format instant)
(-> Instant Text)
diff --git a/stdlib/source/library/lux/time/year.lux b/stdlib/source/library/lux/time/year.lux
index e7ed644ce..dd303ed85 100644
--- a/stdlib/source/library/lux/time/year.lux
+++ b/stdlib/source/library/lux/time/year.lux
@@ -125,9 +125,9 @@
[sign (<>.or (<text>.this "-") (in []))
digits (<text>.many <text>.decimal)
raw_year (<>.codec i.decimal (in (text\compose "+" digits)))]
- (<>.lift (..year (case sign
- (#.Left _) (i.* -1 raw_year)
- (#.Right _) raw_year)))))
+ (<>.lifted (..year (case sign
+ (#.Left _) (i.* -1 raw_year)
+ (#.Right _) raw_year)))))
(implementation: .public codec
{#.doc (example "Based on ISO 8601."
diff --git a/stdlib/source/library/lux/tool/compiler/default/init.lux b/stdlib/source/library/lux/tool/compiler/default/init.lux
index 6af02e080..e8b91db8c 100644
--- a/stdlib/source/library/lux/tool/compiler/default/init.lux
+++ b/stdlib/source/library/lux/tool/compiler/default/init.lux
@@ -127,7 +127,7 @@
(do ///phase.monad
[.let [module (get@ #///.module input)]
_ (///directive.set_current_module module)]
- (///directive.lift_analysis
+ (///directive.lifted_analysis
(do {! ///phase.monad}
[_ (module.create hash module)
_ (monad.map ! module.import dependencies)
@@ -141,15 +141,15 @@
(All [anchor expression directive]
(///directive.Operation anchor expression directive [.Module (Payload directive)])))
(do ///phase.monad
- [_ (///directive.lift_analysis
+ [_ (///directive.lifted_analysis
(module.set_compiled module))
analysis_module (<| (: (Operation .Module))
- ///directive.lift_analysis
- extension.lift
+ ///directive.lifted_analysis
+ extension.lifted
meta.current_module)
- final_buffer (///directive.lift_generation
+ final_buffer (///directive.lifted_generation
///generation.buffer)
- final_registry (///directive.lift_generation
+ final_registry (///directive.lifted_generation
///generation.get_registry)]
(in [analysis_module [final_buffer
final_registry]])))
@@ -162,9 +162,9 @@
(///directive.Operation anchor expression directive
(Payload directive)))))
(do ///phase.monad
- [buffer (///directive.lift_generation
+ [buffer (///directive.lifted_generation
///generation.buffer)
- registry (///directive.lift_generation
+ registry (///directive.lifted_generation
///generation.get_registry)]
(in [buffer registry])))
@@ -177,9 +177,9 @@
[Requirements (Payload directive)]))))
(do ///phase.monad
[.let [[pre_buffer pre_registry] pre_payoad]
- _ (///directive.lift_generation
+ _ (///directive.lifted_generation
(///generation.set_buffer pre_buffer))
- _ (///directive.lift_generation
+ _ (///directive.lifted_generation
(///generation.set_registry pre_registry))
requirements (let [execute! (directiveP.phase expander)]
(execute! archive code))
@@ -193,7 +193,7 @@
(///directive.Operation anchor expression directive
[Source Requirements (Payload directive)]))))
(do ///phase.monad
- [[source code] (///directive.lift_analysis
+ [[source code] (///directive.lifted_analysis
(..read source reader))
[requirements post_payload] (process_directive archive expander pre_payload code)]
(in [source requirements post_payload])))
@@ -205,7 +205,7 @@
(///directive.Operation anchor expression directive
(Maybe [Source Requirements (Payload directive)])))))
(do ///phase.monad
- [reader (///directive.lift_analysis
+ [reader (///directive.lifted_analysis
(..reader module aliases source))]
(function (_ state)
(case (///phase.result' state (..iteration' archive expander reader source pre_payload))
@@ -273,12 +273,12 @@
(recur (<| (///phase.result' state)
(do {! ///phase.monad}
[analysis_module (<| (: (Operation .Module))
- ///directive.lift_analysis
- extension.lift
+ ///directive.lifted_analysis
+ extension.lifted
meta.current_module)
- _ (///directive.lift_generation
+ _ (///directive.lifted_generation
(///generation.set_buffer temporary_buffer))
- _ (///directive.lift_generation
+ _ (///directive.lifted_generation
(///generation.set_registry temporary_registry))
_ (|> requirements
(get@ #///directive.referrals)
diff --git a/stdlib/source/library/lux/tool/compiler/default/platform.lux b/stdlib/source/library/lux/tool/compiler/default/platform.lux
index f19ec248c..53cb07e22 100644
--- a/stdlib/source/library/lux/tool/compiler/default/platform.lux
+++ b/stdlib/source/library/lux/tool/compiler/default/platform.lux
@@ -150,14 +150,14 @@
(///directive.Operation <type_vars>
[Archive [Descriptor (Document .Module) Output]])))
(do ///phase.monad
- [[registry payload] (///directive.lift_generation
+ [[registry payload] (///directive.lifted_generation
(..compile_runtime! platform))
.let [[descriptor document] [(..runtime_descriptor registry) ..runtime_document]]
- archive (///phase.lift (if (archive.reserved? archive archive.runtime_module)
- (archive.has archive.runtime_module [descriptor document payload] archive)
- (do try.monad
- [[_ archive] (archive.reserve archive.runtime_module archive)]
- (archive.has archive.runtime_module [descriptor document payload] archive))))]
+ archive (///phase.lifted (if (archive.reserved? archive archive.runtime_module)
+ (archive.has archive.runtime_module [descriptor document payload] archive)
+ (do try.monad
+ [[_ archive] (archive.reserve archive.runtime_module archive)]
+ (archive.has archive.runtime_module [descriptor document payload] archive))))]
(in [archive [descriptor document payload]])))
(def: (initialize_state extender
@@ -182,13 +182,13 @@
(///directive.Operation <type_vars> Any)
(do ///phase.monad
- [_ (///directive.lift_analysis
+ [_ (///directive.lifted_analysis
(///analysis.install analysis_state))
- _ (///directive.lift_analysis
+ _ (///directive.lifted_analysis
(extension.with extender analysers))
- _ (///directive.lift_synthesis
+ _ (///directive.lifted_synthesis
(extension.with extender synthesizers))
- _ (///directive.lift_generation
+ _ (///directive.lifted_generation
(extension.with extender (:expected generators)))
_ (extension.with extender (:expected directives))]
(in [])))
@@ -201,7 +201,7 @@
(let [phase_wrapper (get@ #phase_wrapper platform)]
(|> archive
phase_wrapper
- ///directive.lift_generation
+ ///directive.lifted_generation
(///phase.result' state))))
(def: (complete_extensions host_directive_bundle phase_wrapper [analysers synthesizers generators directives])
@@ -520,7 +520,7 @@
(-> Module <State+> <State+>))
(|> (///directive.set_current_module module)
(///phase.result' state)
- try.assumed
+ try.trusted
product.left))
(def: .public (compile import static expander platform compilation context)
@@ -586,7 +586,7 @@
.let [archive (|> archive,document+
(list\map product.left)
(list\fold archive.merged archive))]]
- (in [archive (try.assumed
+ (in [archive (try.trusted
(..updated_state archive state))])))
(async\in (exception.except ..cannot_import_twice [module duplicates])))]
(case ((get@ #///.process compilation)
@@ -594,7 +594,7 @@
... TODO: The context shouldn't need to be re-set either.
(|> (///directive.set_current_module module)
(///phase.result' state)
- try.assumed
+ try.trusted
product.left)
archive)
(#try.Success [state more|done])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux
index eb325ddd0..571185dee 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux
@@ -355,7 +355,7 @@
(#Tuple members)
(|> members
(list\map %analysis)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["[" "]"])))
(#Reference reference)
@@ -369,7 +369,7 @@
(format " ")
(format (|> environment
(list\map %analysis)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["[" "]"])))
(text.enclosed ["(" ")"]))
@@ -378,13 +378,13 @@
..application
#.Item
(list\map %analysis)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["(" ")"]))
(#Extension name parameters)
(|> parameters
(list\map %analysis)
- (text.join_with " ")
+ (text.interposed " ")
(format (%.text name) " ")
(text.enclosed ["(" ")"]))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux
index 5ae124d96..1859802d6 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/evaluation.lux
@@ -46,12 +46,12 @@
(do phase.monad
[exprA (type.with_type type
(analyze archive exprC))
- module (extensionP.lift
+ module (extensionP.lifted
meta.current_module_name)]
- (phase.lift (do try.monad
- [exprS (|> exprA (synthesisP.phase archive) (phase.result synthesis_state))]
- (phase.result generation_state
- (do phase.monad
- [exprO (generate archive exprS)
- module_id (generation.module_id module archive)]
- (generation.evaluate! (..context [module_id count]) exprO)))))))))
+ (phase.lifted (do try.monad
+ [exprS (|> exprA (synthesisP.phase archive) (phase.result synthesis_state))]
+ (phase.result generation_state
+ (do phase.monad
+ [exprO (generate archive exprS)
+ module_id (generation.module_id module archive)]
+ (generation.evaluate! (..context [module_id count]) exprO)))))))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/directive.lux b/stdlib/source/library/lux/tool/compiler/language/lux/directive.lux
index 5383d2ae4..478697fd4 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/directive.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/directive.lux
@@ -80,18 +80,18 @@
(Operation anchor expression directive output)))
(|>> (phase.sub [(get@ [<component> #..state])
(set@ [<component> #..state])])
- extension.lift))]
+ extension.lifted))]
- [lift_analysis #..analysis analysis.Operation]
- [lift_synthesis #..synthesis synthesis.Operation]
- [lift_generation #..generation (generation.Operation anchor expression directive)]
+ [lifted_analysis #..analysis analysis.Operation]
+ [lifted_synthesis #..synthesis synthesis.Operation]
+ [lifted_generation #..generation (generation.Operation anchor expression directive)]
)
(def: .public (set_current_module module)
(All [anchor expression directive]
(-> Module (Operation anchor expression directive Any)))
(do phase.monad
- [_ (..lift_analysis
+ [_ (..lifted_analysis
(analysis.set_current_module module))]
- (..lift_generation
+ (..lifted_generation
(generation.enter_module module))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis.lux
index b9b230b42..c8cfe9c0e 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis.lux
@@ -116,11 +116,11 @@
(case functionA
(#/.Reference (#reference.Constant def_name))
(do !
- [?macro (//extension.lift (meta.macro def_name))]
+ [?macro (//extension.lifted (meta.macro def_name))]
(case ?macro
(#.Some macro)
(do !
- [expansion (//extension.lift (/macro.expand_one expander def_name macro argsC+))]
+ [expansion (//extension.lifted (/macro.expand_one expander def_name macro argsC+))]
(compile archive expansion))
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux
index 2188bb54a..9463eeb8f 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux
@@ -102,7 +102,7 @@
(do ///.monad
[[var_id varT] (//type.with_env
check.var)]
- (recur envs (maybe.assume (type.applied (list varT) caseT))))
+ (recur envs (maybe.trusted (type.applied (list varT) caseT))))
(#.Apply inputT funcT)
(.case funcT
@@ -277,7 +277,7 @@
[[ex_id exT] (//type.with_env
check.existential)]
(analyse_pattern num_tags
- (maybe.assume (type.applied (list exT) inputT'))
+ (maybe.trusted (type.applied (list exT) inputT'))
pattern
next))
@@ -287,8 +287,8 @@
(^ [location (#.Form (list& [_ (#.Tag tag)] values))])
(/.with_location location
(do ///.monad
- [tag (///extension.lift (meta.normal tag))
- [idx group variantT] (///extension.lift (meta.tag tag))
+ [tag (///extension.lifted (meta.normal tag))
+ [idx group variantT] (///extension.lifted (meta.tag tag))
_ (//type.with_env
(check.check inputT variantT))
.let [[lefts right?] (/.choice (list.size group) idx)]]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux
index 996272df7..25c85514e 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux
@@ -80,7 +80,7 @@
dictionary.entries
(list\map (function (_ [idx coverage])
(format (%.nat idx) " " (%coverage coverage))))
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["{" "}"])
(format (%.nat (..cases ?max_cases)) " ")
(text.enclosed ["(#Variant " ")"]))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux
index 8063f450d..69e75f374 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux
@@ -40,12 +40,12 @@
list.enumeration
(list\map (.function (_ [idx argC])
(format (%.nat idx) " " (%.code argC))))
- (text.join_with text.new_line))]))
+ (text.interposed text.new_line))]))
(def: .public (function analyse function_name arg_name archive body)
(-> Phase Text Text Phase)
(do {! ///.monad}
- [functionT (///extension.lift meta.expected_type)]
+ [functionT (///extension.lifted meta.expected_type)]
(loop [expectedT functionT]
(/.with_stack ..cannot_analyse [expectedT function_name arg_name body]
(case expectedT
@@ -64,7 +64,7 @@
[(<tag> _)
(do !
[[_ instanceT] (//type.with_env <instancer>)]
- (recur (maybe.assume (type.applied (list instanceT) expectedT))))])
+ (recur (maybe.trusted (type.applied (list instanceT) expectedT))))])
([#.UnivQ check.existential]
[#.ExQ check.var])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/inference.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/inference.lux
index af25a5856..6282980be 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/inference.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/inference.lux
@@ -96,7 +96,7 @@
(def: new_named_type
(Operation Type)
(do ///.monad
- [location (///extension.lift meta.location)
+ [location (///extension.lifted meta.location)
[ex_id _] (//type.with_env check.existential)]
(in (named_type location ex_id))))
@@ -123,13 +123,13 @@
(#.UnivQ _)
(do ///.monad
[[var_id varT] (//type.with_env check.var)]
- (general archive analyse (maybe.assume (type.applied (list varT) inferT)) args))
+ (general archive analyse (maybe.trusted (type.applied (list varT) inferT)) args))
(#.ExQ _)
(do {! ///.monad}
[[var_id varT] (//type.with_env check.var)
output (general archive analyse
- (maybe.assume (type.applied (list varT) inferT))
+ (maybe.trusted (type.applied (list varT) inferT))
args)
bound? (//type.with_env
(check.bound? var_id))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/module.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/module.lux
index db51c3d77..d5e2fd691 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/module.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/module.lux
@@ -36,7 +36,7 @@
(template [<name>]
[(exception: .public (<name> {tags (List Text)} {owner Type})
(exception.report
- ["Tags" (text.join_with " " tags)]
+ ["Tags" (text.interposed " " tags)]
["Type" (%.type owner)]))]
[cannot_declare_tags_for_unnamed_type]
@@ -80,7 +80,7 @@
(def: .public (set_annotations annotations)
(-> Code (Operation Any))
- (///extension.lift
+ (///extension.lifted
(do ///.monad
[self_name meta.current_module_name
self meta.current_module]
@@ -97,7 +97,7 @@
(def: .public (import module)
(-> Text (Operation Any))
- (///extension.lift
+ (///extension.lifted
(do ///.monad
[self_name meta.current_module_name]
(function (_ state)
@@ -112,7 +112,7 @@
(def: .public (alias alias module)
(-> Text Text (Operation Any))
- (///extension.lift
+ (///extension.lifted
(do ///.monad
[self_name meta.current_module_name]
(function (_ state)
@@ -124,7 +124,7 @@
(def: .public (exists? module)
(-> Text (Operation Bit))
- (///extension.lift
+ (///extension.lifted
(function (_ state)
(|> state
(get@ #.modules)
@@ -134,7 +134,7 @@
(def: .public (define name definition)
(-> Text Global (Operation Any))
- (///extension.lift
+ (///extension.lifted
(do ///.monad
[self_name meta.current_module_name
self meta.current_module]
@@ -155,7 +155,7 @@
(def: .public (create hash name)
(-> Nat Text (Operation Any))
- (///extension.lift
+ (///extension.lifted
(function (_ state)
(#try.Success [(update@ #.modules
(plist.has name (..empty hash))
@@ -168,13 +168,13 @@
[_ (create hash name)
output (/.with_current_module name
action)
- module (///extension.lift (meta.module name))]
+ module (///extension.lifted (meta.module name))]
(in [module output])))
(template [<setter> <asker> <tag>]
[(def: .public (<setter> module_name)
(-> Text (Operation Any))
- (///extension.lift
+ (///extension.lifted
(function (_ state)
(case (|> state (get@ #.modules) (plist.value module_name))
(#.Some module)
@@ -194,7 +194,7 @@
(def: .public (<asker> module_name)
(-> Text (Operation Bit))
- (///extension.lift
+ (///extension.lifted
(function (_ state)
(case (|> state (get@ #.modules) (plist.value module_name))
(#.Some module)
@@ -214,7 +214,7 @@
(template [<name> <tag> <type>]
[(def: (<name> module_name)
(-> Text (Operation <type>))
- (///extension.lift
+ (///extension.lifted
(function (_ state)
(case (|> state (get@ #.modules) (plist.value module_name))
(#.Some module)
@@ -246,7 +246,7 @@
(def: .public (declare_tags tags exported? type)
(-> (List Tag) Bit Type (Operation Any))
(do ///.monad
- [self_name (///extension.lift meta.current_module_name)
+ [self_name (///extension.lifted meta.current_module_name)
[type_module type_name] (case type
(#.Named type_name _)
(in type_name)
@@ -256,7 +256,7 @@
_ (ensure_undeclared_tags self_name tags)
_ (///.assertion cannot_declare_tags_for_foreign_type [tags type]
(text\= self_name type_module))]
- (///extension.lift
+ (///extension.lifted
(function (_ state)
(case (|> state (get@ #.modules) (plist.value self_name))
(#.Some module)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/reference.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/reference.lux
index 92e43368e..92a7a8f9c 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/reference.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/reference.lux
@@ -33,7 +33,7 @@
(-> Name (Operation Analysis))
(with_expansions [<return> (in (|> def_name ///reference.constant #/.Reference))]
(do {! ///.monad}
- [constant (///extension.lift (meta.definition def_name))]
+ [constant (///extension.lifted (meta.definition def_name))]
(case constant
(#.Left real_def_name)
(definition real_def_name)
@@ -41,13 +41,13 @@
(#.Right [exported? actualT def_anns _])
(do !
[_ (//type.infer actualT)
- (^@ def_name [::module ::name]) (///extension.lift (meta.normal def_name))
- current (///extension.lift meta.current_module_name)]
+ (^@ def_name [::module ::name]) (///extension.lifted (meta.normal def_name))
+ current (///extension.lifted meta.current_module_name)]
(if (text\= current ::module)
<return>
(if exported?
(do !
- [imported! (///extension.lift (meta.imported_by? ::module current))]
+ [imported! (///extension.lifted (meta.imported_by? ::module current))]
(if imported!
<return>
(/.except foreign_module_has_not_been_imported [current ::module])))
@@ -78,7 +78,7 @@
#.None
(do !
- [this_module (///extension.lift meta.current_module_name)]
+ [this_module (///extension.lifted meta.current_module_name)]
(definition [this_module simple_name]))))
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/scope.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/scope.lux
index 98c36ec05..052173d1f 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/scope.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/scope.lux
@@ -78,7 +78,7 @@
(def: .public (find name)
(-> Text (Operation (Maybe [Type Variable])))
- (///extension.lift
+ (///extension.lifted
(function (_ state)
(let [[inner outer] (|> state
(get@ #.scopes)
@@ -183,7 +183,7 @@
(def: .public next_local
(Operation Register)
- (///extension.lift
+ (///extension.lifted
(function (_ state)
(case (get@ #.scopes state)
(#.Item top _)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/structure.lux
index 8f254c5d6..56924a102 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/structure.lux
@@ -95,7 +95,7 @@
(let [tag (/.tag lefts right?)]
(function (recur valueC)
(do {! ///.monad}
- [expectedT (///extension.lift meta.expected_type)
+ [expectedT (///extension.lifted meta.expected_type)
expectedT' (//type.with_env
(check.clean expectedT))]
(/.with_stack ..cannot_analyse_variant [expectedT' tag valueC]
@@ -135,7 +135,7 @@
[(<tag> _)
(do !
[[instance_id instanceT] (//type.with_env <instancer>)]
- (//type.with_type (maybe.assume (type.applied (list instanceT) expectedT))
+ (//type.with_type (maybe.trusted (type.applied (list instanceT) expectedT))
(recur valueC)))])
([#.UnivQ check.existential]
[#.ExQ check.var])
@@ -168,7 +168,7 @@
(def: (typed_product archive analyse members)
(-> Archive Phase (List Code) (Operation Analysis))
(do {! ///.monad}
- [expectedT (///extension.lift meta.expected_type)
+ [expectedT (///extension.lifted meta.expected_type)
membersA+ (: (Operation (List Analysis))
(loop [membersT+ (type.flat_tuple expectedT)
membersC+ members]
@@ -195,7 +195,7 @@
(def: .public (product archive analyse membersC)
(-> Archive Phase (List Code) (Operation Analysis))
(do {! ///.monad}
- [expectedT (///extension.lift meta.expected_type)]
+ [expectedT (///extension.lifted meta.expected_type)]
(/.with_stack ..cannot_analyse_tuple [expectedT membersC]
(case expectedT
(#.Product _)
@@ -228,7 +228,7 @@
[(<tag> _)
(do !
[[instance_id instanceT] (//type.with_env <instancer>)]
- (//type.with_type (maybe.assume (type.applied (list instanceT) expectedT))
+ (//type.with_type (maybe.trusted (type.applied (list instanceT) expectedT))
(product archive analyse membersC)))])
([#.UnivQ check.existential]
[#.ExQ check.var])
@@ -262,17 +262,17 @@
(def: .public (tagged_sum analyse tag archive valueC)
(-> Phase Name Phase)
(do {! ///.monad}
- [tag (///extension.lift (meta.normal tag))
- [idx group variantT] (///extension.lift (meta.tag tag))
+ [tag (///extension.lifted (meta.normal tag))
+ [idx group variantT] (///extension.lifted (meta.tag tag))
.let [case_size (list.size group)
[lefts right?] (/.choice case_size idx)]
- expectedT (///extension.lift meta.expected_type)]
+ expectedT (///extension.lifted meta.expected_type)]
(case expectedT
(#.Var _)
(do !
[inferenceT (//inference.variant idx case_size variantT)
[inferredT valueA+] (//inference.general archive analyse inferenceT (list valueC))]
- (in (/.variant [lefts right? (|> valueA+ list.head maybe.assume)])))
+ (in (/.variant [lefts right? (|> valueA+ list.head maybe.trusted)])))
_
(..sum analyse lefts right? archive valueC))))
@@ -288,7 +288,7 @@
(case key
[_ (#.Tag key)]
(do ///.monad
- [key (///extension.lift (meta.normal key))]
+ [key (///extension.lifted (meta.normal key))]
(in [key val]))
_
@@ -307,8 +307,8 @@
(#.Item [head_k head_v] _)
(do {! ///.monad}
- [head_k (///extension.lift (meta.normal head_k))
- [_ tag_set recordT] (///extension.lift (meta.tag head_k))
+ [head_k (///extension.lifted (meta.normal head_k))
+ [_ tag_set recordT] (///extension.lifted (meta.tag head_k))
.let [size_record (list.size record)
size_ts (list.size tag_set)]
_ (if (n.= size_ts size_record)
@@ -319,7 +319,7 @@
idx->val (monad.fold !
(function (_ [key val] idx->val)
(do !
- [key (///extension.lift (meta.normal key))]
+ [key (///extension.lifted (meta.normal key))]
(case (dictionary.value key tag->idx)
(#.Some idx)
(if (dictionary.key? idx->val idx)
@@ -331,7 +331,8 @@
(: (Dictionary Nat Code)
(dictionary.empty n.hash))
record)
- .let [ordered_tuple (list\map (function (_ idx) (maybe.assume (dictionary.value idx idx->val)))
+ .let [ordered_tuple (list\map (function (_ idx)
+ (maybe.trusted (dictionary.value idx idx->val)))
tuple_range)]]
(in [ordered_tuple recordT]))
))
@@ -349,7 +350,7 @@
(do {! ///.monad}
[members (normal members)
[membersC recordT] (order members)
- expectedT (///extension.lift meta.expected_type)]
+ expectedT (///extension.lifted meta.expected_type)]
(case expectedT
(#.Var _)
(do !
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/type.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/type.lux
index 374663c95..ed980b1e6 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/type.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/type.lux
@@ -40,7 +40,7 @@
(def: .public (infer actualT)
(-> Type (Operation Any))
(do ///.monad
- [expectedT (///extension.lift meta.expected_type)]
+ [expectedT (///extension.lifted meta.expected_type)]
(with_env
(check.check expectedT actualT))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/directive.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/directive.lux
index 8bb5d475f..81fc21caa 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/directive.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/directive.lux
@@ -47,21 +47,21 @@
(^ [_ (#.Form (list& macro inputs))])
(do {! //.monad}
- [expansion (/.lift_analysis
+ [expansion (/.lifted_analysis
(do !
[macroA (//analysis/type.with_type Macro
(analyze archive macro))]
(case macroA
(^ (///analysis.constant macro_name))
(do !
- [?macro (//extension.lift (meta.macro macro_name))
+ [?macro (//extension.lifted (meta.macro macro_name))
macro (case ?macro
(#.Some macro)
(in macro)
#.None
(//.except ..macro_was_not_found macro_name))]
- (//extension.lift (///analysis/macro.expand expander macro_name macro inputs)))
+ (//extension.lifted (///analysis/macro.expand expander macro_name macro inputs)))
_
(//.except ..invalid_macro_call code))))]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension.lux
index 354f40fd2..206ae9f64 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension.lux
@@ -164,7 +164,7 @@
(function (_ [bundle state])
(#try.Success [[bundle (transform state)] []])))
-(def: .public (lift action)
+(def: .public (lifted action)
(All [s i o v]
(-> (//.Operation s v)
(//.Operation [(Bundle s i o) s] v)))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux
index 6fc53dd20..aa1730655 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux
@@ -137,7 +137,7 @@
(def: (ensure_fresh_class! class_loader name)
(-> java/lang/ClassLoader External (Operation Any))
(do phase.monad
- [class (phase.lift (reflection!.load class_loader name))]
+ [class (phase.lifted (reflection!.load class_loader name))]
(phase.assertion ..deprecated_class [name]
(|> class
java/lang/Class::getDeclaredAnnotations
@@ -401,7 +401,7 @@
(|> objectJ
..signature
(<text>.result jvm_parser.array)
- phase.lift)))
+ phase.lifted)))
(def: (primitive_array_length_handler primitive_type)
(-> (Type Primitive) Handler)
@@ -460,7 +460,7 @@
(do phase.monad
[lengthA (typeA.with_type ..int
(analyse archive lengthC))
- expectedT (///.lift meta.expected_type)
+ expectedT (///.lifted meta.expected_type)
expectedJT (jvm_array_type expectedT)
elementJT (case (jvm_parser.array? expectedJT)
(#.Some elementJT)
@@ -556,7 +556,7 @@
[jvm.char]))
(text.starts_with? descriptor.array_prefix name)
- (let [[_ unprefixed] (maybe.assume (text.split_by descriptor.array_prefix name))]
+ (let [[_ unprefixed] (maybe.trusted (text.split_by descriptor.array_prefix name))]
(\ phase.monad map jvm.array
(check_jvm (#.Primitive unprefixed (list)))))
@@ -750,7 +750,7 @@
(case args
(^ (list))
(do phase.monad
- [expectedT (///.lift meta.expected_type)
+ [expectedT (///.lifted meta.expected_type)
_ (check_object expectedT)]
(in (#/////analysis.Extension extension_name (list))))
@@ -797,7 +797,7 @@
[exceptionT exceptionA] (typeA.with_inference
(analyse archive exceptionC))
exception_class (check_object exceptionT)
- ? (phase.lift (reflection!.sub? class_loader "java.lang.Throwable" exception_class))
+ ? (phase.lifted (reflection!.sub? class_loader "java.lang.Throwable" exception_class))
_ (: (Operation Any)
(if ?
(in [])
@@ -817,7 +817,7 @@
(do phase.monad
[_ (..ensure_fresh_class! class_loader class)
_ (typeA.infer (#.Primitive "java.lang.Class" (list (#.Primitive class (list)))))
- _ (phase.lift (reflection!.load class_loader class))]
+ _ (phase.lifted (reflection!.load class_loader class))]
(in (#/////analysis.Extension extension_name (list (/////analysis.text class)))))
_
@@ -837,7 +837,7 @@
[objectT objectA] (typeA.with_inference
(analyse archive objectC))
object_class (check_object objectT)
- ? (phase.lift (reflection!.sub? class_loader object_class sub_class))]
+ ? (phase.lifted (reflection!.sub? class_loader object_class sub_class))]
(if ?
(in (#/////analysis.Extension extension_name (list (/////analysis.text sub_class) objectA)))
(/////analysis.except cannot_possibly_be_an_instance (format sub_class " !<= " object_class)))))]))
@@ -862,14 +862,14 @@
(def: (class_candidate_parents class_loader source_name fromT target_name target_class)
(-> java/lang/ClassLoader External .Type External (java/lang/Class java/lang/Object) (Operation (List [[Text .Type] Bit])))
(do {! phase.monad}
- [source_class (phase.lift (reflection!.load class_loader source_name))
- mapping (phase.lift (reflection!.correspond source_class fromT))]
+ [source_class (phase.lifted (reflection!.load class_loader source_name))
+ mapping (phase.lifted (reflection!.correspond source_class fromT))]
(monad.map !
(function (_ superJT)
(do !
- [superJT (phase.lift (reflection!.type superJT))
+ [superJT (phase.lifted (reflection!.type superJT))
.let [super_name (|> superJT ..reflection)]
- super_class (phase.lift (reflection!.load class_loader super_name))
+ super_class (phase.lifted (reflection!.load class_loader super_name))
superT (reflection_type mapping superJT)]
(in [[super_name superT] (java/lang/Class::isAssignableFrom super_class target_class)])))
(case (java/lang/Class::getGenericSuperclass source_class)
@@ -890,7 +890,7 @@
(function (_ superT)
(do {! phase.monad}
[super_name (\ ! map ..reflection (check_jvm superT))
- super_class (phase.lift (reflection!.load class_loader super_name))]
+ super_class (phase.lifted (reflection!.load class_loader super_name))]
(in [[super_name superT]
(java/lang/Class::isAssignableFrom super_class target_class)])))
(list& super_classT super_interfacesT+))
@@ -904,7 +904,7 @@
(case args
(^ (list fromC))
(do {! phase.monad}
- [toT (///.lift meta.expected_type)
+ [toT (///.lifted meta.expected_type)
target_name (\ ! map ..reflection (check_jvm toT))
[fromT fromA] (typeA.with_inference
(analyse archive fromC))
@@ -934,11 +934,11 @@
(not (dictionary.key? ..boxes source_name)))
_ (phase.assertion ..primitives_are_not_objects [target_name]
(not (dictionary.key? ..boxes target_name)))
- target_class (phase.lift (reflection!.load class_loader target_name))
+ target_class (phase.lifted (reflection!.load class_loader target_name))
_ (if (text\= ..inheritance_relationship_type_name source_name)
(in [])
(do !
- [source_class (phase.lift (reflection!.load class_loader source_name))]
+ [source_class (phase.lifted (reflection!.load class_loader source_name))]
(phase.assertion ..cannot_cast [fromT toT fromC]
(java/lang/Class::isAssignableFrom source_class target_class))))]
(loop [[current_name currentT] [source_name fromT]]
@@ -986,7 +986,7 @@
(function (_ extension_name analyse archive [class field])
(do phase.monad
[_ (..ensure_fresh_class! class_loader class)
- [final? deprecated? fieldJT] (phase.lift
+ [final? deprecated? fieldJT] (phase.lifted
(do try.monad
[class (reflection!.load class_loader class)]
(reflection!.static_field field class)))
@@ -1007,7 +1007,7 @@
(do phase.monad
[_ (..ensure_fresh_class! class_loader class)
_ (typeA.infer Any)
- [final? deprecated? fieldJT] (phase.lift
+ [final? deprecated? fieldJT] (phase.lifted
(do try.monad
[class (reflection!.load class_loader class)]
(reflection!.static_field field class)))
@@ -1032,7 +1032,7 @@
[_ (..ensure_fresh_class! class_loader class)
[objectT objectA] (typeA.with_inference
(analyse archive objectC))
- [deprecated? mapping fieldJT] (phase.lift
+ [deprecated? mapping fieldJT] (phase.lifted
(do try.monad
[class (reflection!.load class_loader class)
[final? deprecated? fieldJT] (reflection!.virtual_field field class)
@@ -1058,7 +1058,7 @@
[objectT objectA] (typeA.with_inference
(analyse archive objectC))
_ (typeA.infer objectT)
- [final? deprecated? mapping fieldJT] (phase.lift
+ [final? deprecated? mapping fieldJT] (phase.lifted
(do try.monad
[class (reflection!.load class_loader class)
[final? deprecated? fieldJT] (reflection!.virtual_field field class)
@@ -1091,7 +1091,7 @@
[parameters (|> (java/lang/reflect/Method::getGenericParameterTypes method)
array.list
(monad.map try.monad reflection!.type)
- phase.lift)
+ phase.lifted)
.let [modifiers (java/lang/reflect/Method::getModifiers method)
correct_class? (java/lang/Object::equals class (java/lang/reflect/Method::getDeclaringClass method))
correct_method? (text\= method_name (java/lang/reflect/Method::getName method))
@@ -1137,7 +1137,7 @@
[parameters (|> (java/lang/reflect/Constructor::getGenericParameterTypes constructor)
array.list
(monad.map try.monad reflection!.type)
- phase.lift)]
+ phase.lifted)]
(in (and (java/lang/Object::equals class (java/lang/reflect/Constructor::getDeclaringClass constructor))
(n.= (list.size inputsJT) (list.size parameters))
(list\fold (function (_ [expectedJC actualJC] prev)
@@ -1191,18 +1191,18 @@
(do {! phase.monad}
[inputsT (|> (java/lang/reflect/Method::getGenericParameterTypes method)
array.list
- (monad.map ! (|>> reflection!.type phase.lift))
+ (monad.map ! (|>> reflection!.type phase.lifted))
(phase\map (monad.map ! (..reflection_type mapping)))
phase\join)
outputT (|> method
java/lang/reflect/Method::getGenericReturnType
reflection!.return
- phase.lift
+ phase.lifted
(phase\map (..reflection_return mapping))
phase\join)
exceptionsT (|> (java/lang/reflect/Method::getGenericExceptionTypes method)
array.list
- (monad.map ! (|>> reflection!.type phase.lift))
+ (monad.map ! (|>> reflection!.type phase.lifted))
(phase\map (monad.map ! (..reflection_type mapping)))
phase\join)
.let [methodT (<| (type.univ_q (dictionary.size mapping))
@@ -1231,12 +1231,12 @@
(do {! phase.monad}
[inputsT (|> (java/lang/reflect/Constructor::getGenericParameterTypes constructor)
array.list
- (monad.map ! (|>> reflection!.type phase.lift))
+ (monad.map ! (|>> reflection!.type phase.lifted))
(phase\map (monad.map ! (reflection_type mapping)))
phase\join)
exceptionsT (|> (java/lang/reflect/Constructor::getGenericExceptionTypes constructor)
array.list
- (monad.map ! (|>> reflection!.type phase.lift))
+ (monad.map ! (|>> reflection!.type phase.lifted))
(phase\map (monad.map ! (reflection_type mapping)))
phase\join)
.let [objectT (#.Primitive (java/lang/Class::getName owner) owner_tvarsT)
@@ -1285,7 +1285,7 @@
(def: (method_candidate class_loader actual_class_tvars class_name actual_method_tvars method_name method_style inputsJT)
(-> java/lang/ClassLoader (List (Type Var)) External (List (Type Var)) Text Method_Style (List (Type Value)) (Operation Method_Signature))
(do {! phase.monad}
- [class (phase.lift (reflection!.load class_loader class_name))
+ [class (phase.lifted (reflection!.load class_loader class_name))
.let [expected_class_tvars (class_type_variables class)]
candidates (|> class
java/lang/Class::getDeclaredMethods
@@ -1318,7 +1318,7 @@
(def: (constructor_candidate class_loader actual_class_tvars class_name actual_method_tvars inputsJT)
(-> java/lang/ClassLoader (List (Type Var)) External (List (Type Var)) (List (Type Value)) (Operation Method_Signature))
(do {! phase.monad}
- [class (phase.lift (reflection!.load class_loader class_name))
+ [class (phase.lifted (reflection!.load class_loader class_name))
.let [expected_class_tvars (class_type_variables class)]
candidates (|> class
java/lang/Class::getConstructors
@@ -1436,7 +1436,7 @@
(do phase.monad
[_ (..ensure_fresh_class! class_loader class_name)
.let [argsT (list\map product.left argsTC)]
- class (phase.lift (reflection!.load class_loader class_name))
+ class (phase.lifted (reflection!.load class_loader class_name))
_ (phase.assertion non_interface class_name
(java/lang/reflect/Modifier::isInterface (java/lang/Class::getModifiers class)))
[methodT deprecated? exceptionsT] (..method_candidate class_loader class_tvars class_name method_tvars method #Interface argsT)
@@ -1914,14 +1914,14 @@
[parent_parameters (|> parent_parameters
(monad.map maybe.monad jvm_parser.var?)
try.of_maybe
- phase.lift)]
+ phase.lifted)]
(|> super_parameters
(monad.map ! (..reflection_type mapping))
(\ ! map (|>> (list.zipped/2 parent_parameters)))))
- (phase.lift (exception.except ..mismatched_super_parameters [parent_name expected_count actual_count]))))
+ (phase.lifted (exception.except ..mismatched_super_parameters [parent_name expected_count actual_count]))))
#.None
- (phase.lift (exception.except ..unknown_super [parent_name supers])))))
+ (phase.lifted (exception.except ..unknown_super [parent_name supers])))))
(def: .public (with_fresh_type_vars vars mapping)
(-> (List (Type Var)) Mapping (Operation Mapping))
@@ -2060,7 +2060,7 @@
(-> java/lang/ClassLoader (Type Class) (Operation Aliasing))
(do phase.monad
[.let [[name actual_parameters] (jvm_parser.read_class class)]
- class (phase.lift (reflection!.load class_loader name))
+ class (phase.lifted (reflection!.load class_loader name))
.let [expected_parameters (|> (java/lang/Class::getTypeParameters class)
array.list
(list\map (|>> java/lang/reflect/TypeVariable::getName)))]
@@ -2086,8 +2086,8 @@
(def: .public (require_complete_method_concretion class_loader supers methods)
(-> java/lang/ClassLoader (List (Type Class)) (List (Overriden_Method Code)) (Operation Any))
(do {! phase.monad}
- [required_abstract_methods (phase.lift (all_abstract_methods class_loader supers))
- available_methods (phase.lift (all_methods class_loader supers))
+ [required_abstract_methods (phase.lifted (all_abstract_methods class_loader supers))
+ available_methods (phase.lifted (all_methods class_loader supers))
overriden_methods (monad.map ! (function (_ [parent_type method_name
strict_fp? annotations type_vars
self_name arguments return exceptions
@@ -2139,12 +2139,12 @@
(monad.map check.monad
(|>> ..signature (luxT.check (luxT.class mapping)))
super_interfaces))
- selfT (///.lift (do meta.monad
- [where meta.current_module_name
- id meta.seed]
- (in (inheritance_relationship_type (#.Primitive (..anonymous_class_name where id) (list))
- super_classT
- super_interfaceT+))))
+ selfT (///.lifted (do meta.monad
+ [where meta.current_module_name
+ id meta.seed]
+ (in (inheritance_relationship_type (#.Primitive (..anonymous_class_name where id) (list))
+ super_classT
+ super_interfaceT+))))
_ (typeA.infer selfT)
constructor_argsA+ (monad.map ! (function (_ [type term])
(do !
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux
index 979af197a..d26820e9a 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux
@@ -90,7 +90,7 @@
(do <>.monad
[raw <code>.text]
(case (text.size raw)
- 1 (in (|> raw (text.char 0) maybe.assume))
+ 1 (in (|> raw (text.char 0) maybe.trusted))
_ (<>.failure (exception.error ..char_text_must_be_size_1 [raw])))))
(def: lux::syntax_char_case!
@@ -104,7 +104,7 @@
(do {! ////.monad}
[input (typeA.with_type text.Char
(phase archive input))
- expectedT (///.lift meta.expected_type)
+ expectedT (///.lifted meta.expected_type)
conditionals (monad.map ! (function (_ [cases branch])
(do !
[branch (typeA.with_type expectedT
@@ -164,7 +164,7 @@
(case args
(^ (list typeC valueC))
(do {! ////.monad}
- [seed (///.lift meta.seed)
+ [seed (///.lifted meta.seed)
actualT (\ ! map (|>> (:as Type))
(eval archive seed Type typeC))
_ (typeA.infer actualT)]
@@ -180,7 +180,7 @@
(case args
(^ (list typeC valueC))
(do {! ////.monad}
- [seed (///.lift meta.seed)
+ [seed (///.lifted meta.seed)
actualT (\ ! map (|>> (:as Type))
(eval archive seed Type typeC))
_ (typeA.infer actualT)
@@ -210,7 +210,7 @@
[_ (typeA.infer .Macro)
input_type (loop [input_name (name_of .Macro')]
(do !
- [input_type (///.lift (meta.definition (name_of .Macro')))]
+ [input_type (///.lifted (meta.definition (name_of .Macro')))]
(case input_type
(#.Definition [exported? def_type def_data def_value])
(in (:as Type def_value))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux
index 04e197099..61f4e3763 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux
@@ -223,7 +223,7 @@
(function (_ methodC)
(do phase.monad
[methodA (: (Operation analysis.Analysis)
- (directive.lift_analysis
+ (directive.lifted_analysis
(case methodC
(#Constructor method)
(jvm.analyse_constructor_method analyse selfT mapping method)
@@ -236,7 +236,7 @@
(#Overriden_Method method)
(jvm.analyse_overriden_method analyse selfT mapping method))))]
- (directive.lift_synthesis
+ (directive.lifted_synthesis
(synthesize methodA)))))
(def: jvm::class
@@ -260,17 +260,17 @@
fields
methods])
(do {! phase.monad}
- [parameters (directive.lift_analysis
+ [parameters (directive.lifted_analysis
(typeA.with_env
(jvm.parameter_types parameters)))
.let [mapping (list\fold (function (_ [parameterJ parameterT] mapping)
(dictionary.has (parser.name parameterJ) parameterT mapping))
luxT.fresh
parameters)]
- super_classT (directive.lift_analysis
+ super_classT (directive.lifted_analysis
(typeA.with_env
(luxT.check (luxT.class mapping) (..signature super_class))))
- super_interfaceT+ (directive.lift_analysis
+ super_interfaceT+ (directive.lifted_analysis
(typeA.with_env
(monad.map check.monad
(|>> ..signature (luxT.check (luxT.class mapping)))
@@ -278,13 +278,13 @@
.let [selfT (jvm.inheritance_relationship_type (#.Primitive name (list\map product.right parameters))
super_classT
super_interfaceT+)]
- state (extension.lift phase.get_state)
+ state (extension.lifted phase.get_state)
.let [analyse (get@ [#directive.analysis #directive.phase] state)
synthesize (get@ [#directive.synthesis #directive.phase] state)
generate (get@ [#directive.generation #directive.phase] state)]
methods (monad.map ! (..method_definition [mapping selfT] [analyse synthesize generate])
methods)
- ... _ (directive.lift_generation
+ ... _ (directive.lifted_generation
... (generation.save! true ["" name]
... [name
... (class.class version.v6_0
@@ -294,7 +294,7 @@
... (list\map ..field_definition fields)
... (list) ... TODO: Add methods
... (row.row))]))
- _ (directive.lift_generation
+ _ (directive.lifted_generation
(generation.log! (format "Class " name)))]
(in directive.no_requirements)))]))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux
index 04df2b765..604292cdd 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux
@@ -73,7 +73,7 @@
Type
Synthesis
(Operation anchor expression directive [Type expression Any])))
- (/////directive.lift_generation
+ (/////directive.lifted_generation
(do phase.monad
[module /////generation.module
id /////generation.next
@@ -86,16 +86,16 @@
(All [anchor expression directive]
(-> Archive Type Code (Operation anchor expression directive [Type expression Any])))
(do phase.monad
- [state (///.lift phase.get_state)
+ [state (///.lifted phase.get_state)
.let [analyse (get@ [#/////directive.analysis #/////directive.phase] state)
synthesize (get@ [#/////directive.synthesis #/////directive.phase] state)
generate (get@ [#/////directive.generation #/////directive.phase] state)]
- [_ codeA] (/////directive.lift_analysis
+ [_ codeA] (/////directive.lifted_analysis
(/////analysis.with_scope
(typeA.with_fresh_env
(typeA.with_type type
(analyse archive codeC)))))
- codeS (/////directive.lift_synthesis
+ codeS (/////directive.lifted_synthesis
(synthesize archive codeA))]
(evaluate!' archive generate type codeS)))
@@ -108,11 +108,11 @@
Type
Synthesis
(Operation anchor expression directive [Type expression Any])))
- (/////directive.lift_generation
+ (/////directive.lifted_generation
(do phase.monad
[codeG (generate archive codeS)
id (/////generation.learn name)
- module_id (phase.lift (archive.id module archive))
+ module_id (phase.lifted (archive.id module archive))
[target_name value directive] (/////generation.define! [module_id id] #.None codeG)
_ (/////generation.save! id #.None directive)]
(in [code//type codeG value]))))
@@ -122,11 +122,11 @@
(-> Archive Name (Maybe Type) Code
(Operation anchor expression directive [Type expression Any])))
(do {! phase.monad}
- [state (///.lift phase.get_state)
+ [state (///.lifted phase.get_state)
.let [analyse (get@ [#/////directive.analysis #/////directive.phase] state)
synthesize (get@ [#/////directive.synthesis #/////directive.phase] state)
generate (get@ [#/////directive.generation #/////directive.phase] state)]
- [_ code//type codeA] (/////directive.lift_analysis
+ [_ code//type codeA] (/////directive.lifted_analysis
(/////analysis.with_scope
(typeA.with_fresh_env
(case expected
@@ -143,7 +143,7 @@
[codeA (typeA.with_type expected
(analyse archive codeC))]
(in [expected codeA]))))))
- codeS (/////directive.lift_synthesis
+ codeS (/////directive.lifted_synthesis
(synthesize archive codeA))]
(definition' archive generate name code//type codeS)))
@@ -158,12 +158,12 @@
Synthesis
(Operation anchor expression directive [expression Any])))
(do phase.monad
- [current_module (/////directive.lift_analysis
- (///.lift meta.current_module_name))]
- (/////directive.lift_generation
+ [current_module (/////directive.lifted_analysis
+ (///.lifted meta.current_module_name))]
+ (/////directive.lifted_generation
(do phase.monad
[codeG (generate archive codeS)
- module_id (phase.lift (archive.id current_module archive))
+ module_id (phase.lifted (archive.id current_module archive))
id (<learn> extension)
[target_name value directive] (/////generation.define! [module_id id] #.None codeG)
_ (/////generation.save! id #.None directive)]
@@ -174,16 +174,16 @@
(-> Archive Text Type Code
(Operation anchor expression directive [expression Any])))
(do phase.monad
- [state (///.lift phase.get_state)
+ [state (///.lifted phase.get_state)
.let [analyse (get@ [#/////directive.analysis #/////directive.phase] state)
synthesize (get@ [#/////directive.synthesis #/////directive.phase] state)
generate (get@ [#/////directive.generation #/////directive.phase] state)]
- [_ codeA] (/////directive.lift_analysis
+ [_ codeA] (/////directive.lifted_analysis
(/////analysis.with_scope
(typeA.with_fresh_env
(typeA.with_type codeT
(analyse archive codeC)))))
- codeS (/////directive.lift_synthesis
+ codeS (/////directive.lifted_synthesis
(synthesize archive codeA))]
(<partial> archive generate extension codeT codeS)))]
@@ -212,7 +212,7 @@
(def: (announce_definition! short type)
(All [anchor expression directive]
(-> Text Type (Operation anchor expression directive Any)))
- (/////directive.lift_generation
+ (/////directive.lifted_generation
(/////generation.log! (format short " : " (%.type type)))))
(def: (lux::def expander host_analysis)
@@ -221,13 +221,13 @@
(case inputsC+
(^ (list [_ (#.Identifier ["" short_name])] valueC annotationsC exported?C))
(do phase.monad
- [current_module (/////directive.lift_analysis
- (///.lift meta.current_module_name))
+ [current_module (/////directive.lifted_analysis
+ (///.lifted meta.current_module_name))
.let [full_name [current_module short_name]]
[type valueT value] (..definition archive full_name #.None valueC)
[_ _ exported?] (evaluate! archive Bit exported?C)
[_ _ annotations] (evaluate! archive Code annotationsC)
- _ (/////directive.lift_analysis
+ _ (/////directive.lifted_analysis
(module.define short_name (#.Right [(:as Bit exported?) type (:as Code annotations) value])))
_ (..refresh expander host_analysis)
_ (..announce_definition! short_name type)]
@@ -242,15 +242,15 @@
[($_ <>.and <code>.local_identifier <code>.any <code>.any (<code>.tuple (<>.some <code>.text)) <code>.any)
(function (_ extension_name phase archive [short_name valueC annotationsC tags exported?C])
(do phase.monad
- [current_module (/////directive.lift_analysis
- (///.lift meta.current_module_name))
+ [current_module (/////directive.lifted_analysis
+ (///.lifted meta.current_module_name))
.let [full_name [current_module short_name]]
[_ _ exported?] (evaluate! archive Bit exported?C)
[_ _ annotations] (evaluate! archive Code annotationsC)
.let [exported? (:as Bit exported?)
annotations (:as Code annotations)]
[type valueT value] (..definition archive full_name (#.Some .Type) valueC)
- _ (/////directive.lift_analysis
+ _ (/////directive.lifted_analysis
(do phase.monad
[_ (module.define short_name (#.Right [exported? type annotations value]))]
(module.declare_tags tags exported? (:as Type value))))
@@ -272,7 +272,7 @@
(do {! phase.monad}
[[_ _ annotationsV] (evaluate! archive Code annotationsC)
.let [annotationsV (:as Code annotationsV)]
- _ (/////directive.lift_analysis
+ _ (/////directive.lifted_analysis
(do !
[_ (monad.map ! (function (_ [module alias])
(do !
@@ -294,8 +294,8 @@
(def: (define_alias alias original)
(-> Text Name (/////analysis.Operation Any))
(do phase.monad
- [current_module (///.lift meta.current_module_name)
- constant (///.lift (meta.definition original))]
+ [current_module (///.lifted meta.current_module_name)
+ constant (///.lifted (meta.definition original))]
(case constant
(#.Left de_aliased)
(phase.except ..cannot_alias_an_alias [[current_module alias] original de_aliased])
@@ -309,7 +309,7 @@
[($_ <>.and <code>.local_identifier <code>.identifier)
(function (_ extension_name phase archive [alias def_name])
(do phase.monad
- [_ (///.lift
+ [_ (///.lifted
(phase.sub [(get@ [#/////directive.analysis #/////directive.state])
(set@ [#/////directive.analysis #/////directive.state])]
(define_alias alias def_name)))]
@@ -336,7 +336,7 @@
<type>
(:expected handlerV)))
- _ (/////directive.lift_generation
+ _ (/////directive.lifted_generation
(/////generation.log! (format <description> " " (%.text (:as Text name)))))]
(in /////directive.no_requirements))
@@ -346,17 +346,17 @@
["Analysis"
def::analysis
/////analysis.Handler /////analysis.Handler
- /////directive.lift_analysis
+ /////directive.lifted_analysis
..analyser]
["Synthesis"
def::synthesis
/////synthesis.Handler /////synthesis.Handler
- /////directive.lift_synthesis
+ /////directive.lifted_synthesis
..synthesizer]
["Generation"
def::generation
(/////generation.Handler anchorT expressionT directiveT) (/////generation.Handler anchor expression directive)
- /////directive.lift_generation
+ /////directive.lifted_generation
..generator]
["Directive"
def::directive
@@ -376,12 +376,12 @@
Code
(Operation anchor expression directive Synthesis)))
(do phase.monad
- [[_ programA] (/////directive.lift_analysis
+ [[_ programA] (/////directive.lifted_analysis
(/////analysis.with_scope
(typeA.with_fresh_env
(typeA.with_type (type (-> (List Text) (IO Any)))
(analyse archive programC)))))]
- (/////directive.lift_synthesis
+ (/////directive.lifted_synthesis
(synthesize archive programA))))
(def: (define_program archive module_id generate program programS)
@@ -404,15 +404,15 @@
(case inputsC+
(^ (list programC))
(do phase.monad
- [state (///.lift phase.get_state)
+ [state (///.lifted phase.get_state)
.let [analyse (get@ [#/////directive.analysis #/////directive.phase] state)
synthesize (get@ [#/////directive.synthesis #/////directive.phase] state)
generate (get@ [#/////directive.generation #/////directive.phase] state)]
programS (prepare_program archive analyse synthesize programC)
- current_module (/////directive.lift_analysis
- (///.lift meta.current_module_name))
- module_id (phase.lift (archive.id current_module archive))
- _ (/////directive.lift_generation
+ current_module (/////directive.lifted_analysis
+ (///.lifted meta.current_module_name))
+ module_id (phase.lifted (archive.id current_module archive))
+ _ (/////directive.lifted_generation
(define_program archive module_id generate program programS))]
(in /////directive.no_requirements))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux
index 770e1cce0..a8caf13bf 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux
@@ -67,13 +67,13 @@
(def: lux_int
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.i2l
(///value.wrap type.long)))
(def: jvm_int
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
(///value.unwrap type.long)
_.l2i))
@@ -87,7 +87,7 @@
(do _.monad
[@then _.new_label
@end _.new_label]
- ($_ _.compose
+ ($_ _.composite
(bytecode @then)
(_.getstatic $Boolean "FALSE" $Boolean)
(_.goto @end)
@@ -116,9 +116,9 @@
[branchG (phase archive branch)
@branch ///runtime.forge_label]
(in [(list\map (function (_ char)
- [(try.assumed (signed.s4 (.int char))) @branch])
+ [(try.trusted (signed.s4 (.int char))) @branch])
chars)
- ($_ _.compose
+ ($_ _.composite
(_.set_label @branch)
branchG
(_.goto @end))])))
@@ -131,7 +131,7 @@
(monad.seq _.monad))]]
(in (do _.monad
[@else _.new_label]
- ($_ _.compose
+ ($_ _.composite
inputG (///value.unwrap type.long) _.l2i
(_.lookupswitch @else table)
conditionalsG
@@ -142,14 +142,14 @@
(def: (lux::is [referenceG sampleG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
referenceG
sampleG
(..predicate _.if_acmpeq)))
(def: (lux::try riskyG)
(Unary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
riskyG
(_.checkcast ///function.class)
///runtime.try))
@@ -164,7 +164,7 @@
(template [<name> <op>]
[(def: (<name> [maskG inputG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
inputG (///value.unwrap type.long)
maskG (///value.unwrap type.long)
<op> (///value.wrap type.long)))]
@@ -177,7 +177,7 @@
(template [<name> <op>]
[(def: (<name> [shiftG inputG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
inputG (///value.unwrap type.long)
shiftG ..jvm_int
<op> (///value.wrap type.long)))]
@@ -189,7 +189,7 @@
(template [<name> <type> <op>]
[(def: (<name> [paramG subjectG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
subjectG (///value.unwrap <type>)
paramG (///value.unwrap <type>)
<op> (///value.wrap <type>)))]
@@ -211,7 +211,7 @@
[(template [<name> <reference>]
[(def: (<name> [paramG subjectG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
subjectG (///value.unwrap <type>)
paramG (///value.unwrap <type>)
<cmp>
@@ -232,27 +232,27 @@
(template [<name> <prepare> <transform>]
[(def: (<name> inputG)
(Unary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
inputG
<prepare>
<transform>))]
[i64::f64
(///value.unwrap type.long)
- ($_ _.compose
+ ($_ _.composite
_.l2d
(///value.wrap type.double))]
[i64::char
(///value.unwrap type.long)
- ($_ _.compose
+ ($_ _.composite
_.l2i
_.i2c
(..::toString ..$Character type.char))]
[f64::i64
(///value.unwrap type.double)
- ($_ _.compose
+ ($_ _.composite
_.d2l
(///value.wrap type.long))]
@@ -301,7 +301,7 @@
(def: (text::size inputG)
(Unary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
inputG
..ensure_string
(_.invokevirtual ..$String "length" (type.method [(list) type.int (list)]))
@@ -312,7 +312,7 @@
(template [<name> <pre_subject> <pre_param> <op> <post>]
[(def: (<name> [paramG subjectG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
subjectG <pre_subject>
paramG <pre_param>
<op> <post>))]
@@ -330,14 +330,14 @@
(def: (text::concat [leftG rightG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
leftG ..ensure_string
rightG ..ensure_string
(_.invokevirtual ..$String "concat" (type.method [(list ..$String) ..$String (list)]))))
(def: (text::clip [startG endG subjectG])
(Trinary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
subjectG ..ensure_string
startG ..jvm_int
endG ..jvm_int
@@ -349,7 +349,7 @@
(do _.monad
[@not_found _.new_label
@end _.new_label]
- ($_ _.compose
+ ($_ _.composite
textG ..ensure_string
partG ..ensure_string
startG ..jvm_int
@@ -380,7 +380,7 @@
(def: string_method (type.method [(list ..$String) type.void (list)]))
(def: (io::log messageG)
(Unary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
(_.getstatic ..$System "out" ..$PrintStream)
messageG
..ensure_string
@@ -389,7 +389,7 @@
(def: (io::error messageG)
(Unary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
(_.new ..$Error)
_.dup
messageG
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux
index a79807c28..a749fb6cd 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux
@@ -72,7 +72,7 @@
(template [<name> <0> <1>]
[(def: <name>
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
<0>
<1>))]
@@ -86,7 +86,7 @@
(Unary (Bytecode Any))
(if (same? _.nop <conversion>)
inputG
- ($_ _.compose
+ ($_ _.composite
inputG
<conversion>)))]
@@ -149,7 +149,7 @@
(template [<name> <op>]
[(def: (<name> [xG yG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
xG
yG
<op>))]
@@ -201,7 +201,7 @@
(do _.monad
[@then _.new_label
@end _.new_label]
- ($_ _.compose
+ ($_ _.composite
xG
yG
(<op> @then)
@@ -224,7 +224,7 @@
(do _.monad
[@then _.new_label
@end _.new_label]
- ($_ _.compose
+ ($_ _.composite
xG
yG
<op>
@@ -357,7 +357,7 @@
(function (_ extension_name generate archive arrayS)
(do //////.monad
[arrayG (generate archive arrayS)]
- (in ($_ _.compose
+ (in ($_ _.composite
arrayG
(_.checkcast (type.array jvm_primitive))
_.arraylength))))]))
@@ -369,7 +369,7 @@
(function (_ extension_name generate archive [elementJT arrayS])
(do //////.monad
[arrayG (generate archive arrayS)]
- (in ($_ _.compose
+ (in ($_ _.composite
arrayG
(_.checkcast (type.array elementJT))
_.arraylength))))]))
@@ -381,7 +381,7 @@
(function (_ extension_name generate archive [lengthS])
(do //////.monad
[lengthG (generate archive lengthS)]
- (in ($_ _.compose
+ (in ($_ _.composite
lengthG
(_.newarray jvm_primitive)))))]))
@@ -392,7 +392,7 @@
(function (_ extension_name generate archive [objectJT lengthS])
(do //////.monad
[lengthG (generate archive lengthS)]
- (in ($_ _.compose
+ (in ($_ _.composite
lengthG
(_.anewarray objectJT)))))]))
@@ -404,7 +404,7 @@
(do //////.monad
[arrayG (generate archive arrayS)
idxG (generate archive idxS)]
- (in ($_ _.compose
+ (in ($_ _.composite
arrayG
(_.checkcast (type.array jvm_primitive))
idxG
@@ -418,7 +418,7 @@
(do //////.monad
[arrayG (generate archive arrayS)
idxG (generate archive idxS)]
- (in ($_ _.compose
+ (in ($_ _.composite
arrayG
(_.checkcast (type.array elementJT))
idxG
@@ -433,7 +433,7 @@
[arrayG (generate archive arrayS)
idxG (generate archive idxS)
valueG (generate archive valueS)]
- (in ($_ _.compose
+ (in ($_ _.composite
arrayG
(_.checkcast (type.array jvm_primitive))
_.dup
@@ -450,7 +450,7 @@
[arrayG (generate archive arrayS)
idxG (generate archive idxS)
valueG (generate archive valueS)]
- (in ($_ _.compose
+ (in ($_ _.composite
arrayG
(_.checkcast (type.array elementJT))
_.dup
@@ -517,7 +517,7 @@
(do _.monad
[@then _.new_label
@end _.new_label]
- ($_ _.compose
+ ($_ _.composite
objectG
(_.ifnull @then)
..falseG
@@ -528,7 +528,7 @@
(def: (object::synchronized [monitorG exprG])
(Binary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
monitorG
_.dup
_.monitorenter
@@ -538,7 +538,7 @@
(def: (object::throw exceptionG)
(Unary (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
exceptionG
_.athrow))
@@ -552,7 +552,7 @@
(function (_ extension_name generate archive [class])
(do //////.monad
[]
- (in ($_ _.compose
+ (in ($_ _.composite
(_.string class)
(_.invokestatic ..$Class "forName" (type.method [(list ..$String) ..$Class (list)]))))))]))
@@ -563,7 +563,7 @@
(function (_ extension_name generate archive [class objectS])
(do //////.monad
[objectG (generate archive objectS)]
- (in ($_ _.compose
+ (in ($_ _.composite
objectG
(_.instanceof (type.class class (list)))
(_.invokestatic ..$Boolean "valueOf" (type.method [(list type.boolean) ..$Boolean (list)]))))))]))
@@ -586,7 +586,7 @@
(text\= <object>
to))
(let [$<object> (type.class <object> (list))]
- ($_ _.compose
+ ($_ _.composite
valueG
(_.invokestatic $<object> "valueOf" (type.method [(list <type>) $<object> (list)]))))
@@ -595,7 +595,7 @@
(text\= (..reflection <type>)
to))
(let [$<object> (type.class <object> (list))]
- ($_ _.compose
+ ($_ _.composite
valueG
(_.checkcast $<object>)
(_.invokevirtual $<object> <unwrap> (type.method [(list) <type> (list)]))))]
@@ -662,13 +662,13 @@
.let [$class (type.class class (list))]]
(case (dictionary.value unboxed ..primitives)
(#.Some primitive)
- (in ($_ _.compose
+ (in ($_ _.composite
valueG
(_.putstatic $class field primitive)
..unitG))
#.None
- (in ($_ _.compose
+ (in ($_ _.composite
valueG
(_.checkcast $class)
(_.putstatic $class field $class)
@@ -688,7 +688,7 @@
#.None
(_.getfield $class field (type.class unboxed (list))))]]
- (in ($_ _.compose
+ (in ($_ _.composite
objectG
(_.checkcast $class)
getG))))]))
@@ -708,10 +708,10 @@
#.None
(let [$unboxed (type.class unboxed (list))]
- ($_ _.compose
+ ($_ _.composite
(_.checkcast $unboxed)
(_.putfield $class field $unboxed))))]]
- (in ($_ _.compose
+ (in ($_ _.composite
objectG
(_.checkcast $class)
_.dup
@@ -733,7 +733,7 @@
(in [valueT valueG])
(#.Left valueT)
- (in [valueT ($_ _.compose
+ (in [valueT ($_ _.composite
valueG
(_.checkcast valueT))]))))
@@ -753,7 +753,7 @@
(function (_ extension_name generate archive [class method outputT inputsTS])
(do {! //////.monad}
[inputsTG (monad.map ! (generate_input generate archive) inputsTS)]
- (in ($_ _.compose
+ (in ($_ _.composite
(monad.map _.monad product.right inputsTG)
(_.invokestatic class method (type.method [(list\map product.left inputsTG) outputT (list)]))
(prepare_output outputT)))))]))
@@ -767,7 +767,7 @@
(do {! //////.monad}
[objectG (generate archive objectS)
inputsTG (monad.map ! (generate_input generate archive) inputsTS)]
- (in ($_ _.compose
+ (in ($_ _.composite
objectG
(_.checkcast class)
(monad.map _.monad product.right inputsTG)
@@ -786,7 +786,7 @@
(function (_ extension_name generate archive [class inputsTS])
(do {! //////.monad}
[inputsTG (monad.map ! (generate_input generate archive) inputsTS)]
- (in ($_ _.compose
+ (in ($_ _.composite
(_.new class)
_.dup
(monad.map _.monad product.right inputsTG)
@@ -946,13 +946,13 @@
list.size
list.indices
(monad.map _.monad (.function (_ register)
- ($_ _.compose
+ ($_ _.composite
(_.aload 0)
(_.aload (inc register))
(_.putfield class (///reference.foreign_name register) $Object)))))]
(method.method method.public "<init>" (anonymous_init_method env)
(list)
- (#.Some ($_ _.compose
+ (#.Some ($_ _.composite
(_.aload 0)
(monad.map _.monad product.right inputsTG)
(_.invokespecial super_class "<init>" (type.method [(list\map product.left inputsTG) type.void (list)]))
@@ -963,7 +963,7 @@
(-> Phase Archive (Type category.Class) (Environment Synthesis) (Operation (Bytecode Any)))
(do {! //////.monad}
[captureG+ (monad.map ! (generate archive) env)]
- (in ($_ _.compose
+ (in ($_ _.composite
(_.new class)
_.dup
(monad.seq _.monad captureG+)
@@ -978,7 +978,7 @@
(#.Left returnT)
(case (type.primitive? returnT)
(#.Left returnT)
- ($_ _.compose
+ ($_ _.composite
(_.checkcast returnT)
_.areturn)
@@ -1040,7 +1040,7 @@
[(#//////variable.Foreign foreign_id)
(|> global_mapping
(dictionary.value capture)
- maybe.assume)]))
+ maybe.trusted)]))
(dictionary.from_list //////variable.hash))]
[ownerT name
strict_fp? annotations vars
@@ -1066,12 +1066,12 @@
returnT
exceptionsT])
(list)
- (#.Some ($_ _.compose
+ (#.Some ($_ _.composite
bodyG
(returnG returnT)))))))
normalized_methods)
bytecode (<| (\ ! map (format.result class.writer))
- //////.lift
+ //////.lifted
(class.class version.v6_0 ($_ modifier\compose class.public class.final)
(name.internal anonymous_class_name)
(name.internal (..reflection super_class))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/case.lux
index d7a20b360..aebb30404 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/case.lux
@@ -42,7 +42,7 @@
1 _.pop
2 _.pop2
_ ... (n.> 2)
- ($_ _.compose
+ ($_ _.composite
_.pop2
(pop_alt (n.- 2 stack_depth)))))
@@ -60,19 +60,19 @@
(def: peek
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.dup
(//runtime.get //runtime.stack_head)))
(def: pop
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
(//runtime.get //runtime.stack_tail)
(_.checkcast //type.stack)))
(def: (left_projection lefts)
(-> Nat (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
(_.checkcast //type.tuple)
(..int lefts)
(.case lefts
@@ -84,7 +84,7 @@
(def: (right_projection lefts)
(-> Nat (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
(_.checkcast //type.tuple)
(..int lefts)
//runtime.right_projection))
@@ -96,14 +96,14 @@
(operation\in ..pop)
(#synthesis.Bind register)
- (operation\in ($_ _.compose
+ (operation\in ($_ _.composite
..peek
(_.astore register)))
(#synthesis.Then bodyS)
(do phase.monad
[bodyG (phase archive bodyS)]
- (in ($_ _.compose
+ (in ($_ _.composite
(..pop_alt stack_depth)
bodyG
(_.goto @end))))
@@ -114,7 +114,7 @@
(do _.monad
[@success _.new_label
@fail _.new_label]
- ($_ _.compose
+ ($_ _.composite
..peek
(_.checkcast //type.variant)
(//structure.tag lefts <right?>)
@@ -133,7 +133,7 @@
(^template [<pattern> <projection>]
[(^ (<pattern> lefts))
- (operation\in ($_ _.compose
+ (operation\in ($_ _.composite
..peek
(<projection> lefts)
//runtime.push))])
@@ -146,7 +146,7 @@
(synthesis.!bind_top register thenP)))
(do phase.monad
[thenG (path' stack_depth @else @end phase archive thenP)]
- (in ($_ _.compose
+ (in ($_ _.composite
..peek
(_.checkcast //type.tuple)
_.iconst_0
@@ -161,7 +161,7 @@
(synthesis.!bind_top register thenP)))
(do phase.monad
[then! (path' stack_depth @else @end phase archive thenP)]
- (in ($_ _.compose
+ (in ($_ _.composite
..peek
(_.checkcast //type.tuple)
(..int lefts)
@@ -176,7 +176,7 @@
[@alt_else //runtime.forge_label
left! (path' (inc stack_depth) @alt_else @end phase archive leftP)
right! (path' stack_depth @else @end phase archive rightP)]
- (in ($_ _.compose
+ (in ($_ _.composite
_.dup
left!
(_.set_label @alt_else)
@@ -187,7 +187,7 @@
(do phase.monad
[left! (path' stack_depth @else @end phase archive leftP)
right! (path' stack_depth @else @end phase archive rightP)]
- (in ($_ _.compose
+ (in ($_ _.composite
left!
right!)))
@@ -200,7 +200,7 @@
(do phase.monad
[@else //runtime.forge_label
pathG (..path' 1 @else @end phase archive path)]
- (in ($_ _.compose
+ (in ($_ _.composite
pathG
(_.set_label @else)
_.pop
@@ -217,7 +217,7 @@
(in (do _.monad
[@else _.new_label
@end _.new_label]
- ($_ _.compose
+ ($_ _.composite
conditionG
(//value.unwrap type.boolean)
(_.ifeq @else)
@@ -232,7 +232,7 @@
(do phase.monad
[inputG (phase archive inputS)
bodyG (phase archive bodyS)]
- (in ($_ _.compose
+ (in ($_ _.composite
inputG
(_.astore register)
bodyG))))
@@ -248,7 +248,7 @@
(#.Right lefts)
(..right_projection lefts))]
- (_.compose so_far next)))
+ (_.composite so_far next)))
recordG
(list.reversed path)))))
@@ -258,7 +258,7 @@
[@end //runtime.forge_label
valueG (phase archive valueS)
pathG (..path @end phase archive path)]
- (in ($_ _.compose
+ (in ($_ _.composite
_.aconst_null
valueG
//runtime.push
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function.lux
index 095c973b4..f3938db06 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function.lux
@@ -104,13 +104,13 @@
(generate archive bodyS)))
.let [function_class (//runtime.class_name function_context)]
[fields methods instance] (..with generate archive @begin function_class environment arity bodyG)
- class (phase.lift (class.class version.v6_0
- ..modifier
- (name.internal function_class)
- (..internal /abstract.class) (list)
- fields
- methods
- (row.row)))
+ class (phase.lifted (class.class version.v6_0
+ ..modifier
+ (name.internal function_class)
+ (..internal /abstract.class) (list)
+ fields
+ methods
+ (row.row)))
.let [bytecode (format.result class.writer class)]
_ (generation.execute! [function_class bytecode])
_ (generation.save! function_class #.None [function_class bytecode])]
@@ -121,13 +121,13 @@
(do {! phase.monad}
[abstractionG (generate archive abstractionS)
inputsG (monad.map ! (generate archive) inputsS)]
- (in ($_ _.compose
+ (in ($_ _.composite
abstractionG
(|> inputsG
(list.sub /arity.maximum)
(monad.map _.monad
(function (_ batchG)
- ($_ _.compose
+ ($_ _.composite
(_.checkcast /abstract.class)
(monad.seq _.monad batchG)
(_.invokevirtual /abstract.class //runtime.apply::name (//runtime.apply::type (list.size batchG)))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable.lux
index 328921a19..ba69187b8 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable.lux
@@ -25,14 +25,14 @@
(def: .public (get class name)
(-> (Type Class) Text (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
////reference.this
(_.getfield class name ..type)
))
(def: .public (put naming class register value)
(-> (-> Register Text) (Type Class) Register (Bytecode Any) (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
////reference.this
value
(_.putfield class (naming register) ..type)))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux
index 0b4208bec..57d285e8a 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux
@@ -32,7 +32,7 @@
(def: .public (initial amount)
(-> Nat (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
(|> _.aconst_null
(list.repeated amount)
(monad.seq _.monad))
@@ -53,7 +53,7 @@
(def: .public (new arity)
(-> Arity (Bytecode Any))
(if (arity.multiary? arity)
- ($_ _.compose
+ ($_ _.composite
/count.initial
(initial (n.- ///arity.minimum arity)))
(_\in [])))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial/count.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial/count.lux
index 4bc179078..30f27def6 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial/count.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/field/variable/partial/count.lux
@@ -18,14 +18,17 @@
(def: .public initial
(Bytecode Any)
- (|> +0 signed.s1 try.assumed _.bipush))
+ (|> +0
+ signed.s1
+ try.trusted
+ _.bipush))
(def: this
_.aload_0)
(def: .public value
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
..this
(_.getfield /////abstract.class ..field ..type)
))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/apply.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/apply.lux
index f90f1999b..da3292be8 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/apply.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/apply.lux
@@ -49,13 +49,13 @@
(def: (increment by)
(-> Nat (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
(<| _.int .i64 by)
_.iadd))
(def: (inputs offset amount)
(-> Register Nat (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
(|> amount
list.indices
(monad.map _.monad (|>> (n.+ offset) _.aload)))
@@ -65,7 +65,7 @@
(def: (apply offset amount)
(-> Register Nat (Bytecode Any))
(let [arity (n.min amount ///arity.maximum)]
- ($_ _.compose
+ ($_ _.composite
(_.checkcast ///abstract.class)
(..inputs offset arity)
(_.invokevirtual ///abstract.class ////runtime.apply::name (////runtime.apply::type arity))
@@ -86,7 +86,7 @@
(////runtime.apply::type apply_arity)
(list)
(#.Some (case num_partials
- 0 ($_ _.compose
+ 0 ($_ _.composite
////reference.this
(..inputs ..this_offset apply_arity)
(_.invokevirtual class //implementation.name (//implementation.type function_arity))
@@ -107,10 +107,10 @@
already_partial? (n.> 0 stage)
exact_match? (i.= over_extent (.int stage))
has_more_than_necessary? (i.> over_extent (.int stage))]
- ($_ _.compose
+ ($_ _.composite
(_.set_label @case)
(cond exact_match?
- ($_ _.compose
+ ($_ _.composite
////reference.this
(if already_partial?
(_.invokevirtual class //reset.name (//reset.type class))
@@ -123,7 +123,7 @@
has_more_than_necessary?
(let [arity_inputs (|> function_arity (n.- stage))
additional_inputs (|> apply_arity (n.- arity_inputs))]
- ($_ _.compose
+ ($_ _.composite
////reference.this
(_.invokevirtual class //reset.name (//reset.type class))
current_partials
@@ -139,7 +139,7 @@
missing_partials (|> _.aconst_null
(list.repeated (|> num_partials (n.- apply_arity) (n.- stage)))
(monad.seq _.monad))]
- ($_ _.compose
+ ($_ _.composite
(_.new class)
_.dup
current_environment
@@ -151,7 +151,7 @@
(_.invokevirtual class //init.name (//init.type environment function_arity))
_.areturn)))))))
(monad.seq _.monad))]]
- ($_ _.compose
+ ($_ _.composite
///partial/count.value
- (_.tableswitch (try.assumed (signed.s4 +0)) @default [@labelsH @labelsT])
+ (_.tableswitch (try.trusted (signed.s4 +0)) @default [@labelsH @labelsT])
cases)))))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux
index a43a4c0bc..a6bd0ef6b 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux
@@ -31,7 +31,7 @@
(method.method //.modifier name
(..type arity)
(list)
- (#.Some ($_ _.compose
+ (#.Some ($_ _.composite
(_.set_label @begin)
body
_.areturn
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/init.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/init.lux
index ac11c1cf3..cd92f4aca 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/init.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/init.lux
@@ -56,12 +56,16 @@
type.void
(list)]))
-(def: no_partials (|> 0 unsigned.u1 try.assumed _.bipush))
+(def: no_partials
+ (|> 0
+ unsigned.u1
+ try.trusted
+ _.bipush))
(def: .public (super environment_size arity)
(-> Nat Arity (Bytecode Any))
(let [arity_register (inc environment_size)]
- ($_ _.compose
+ ($_ _.composite
(if (arity.unary? arity)
..no_partials
(_.iload arity_register))
@@ -90,7 +94,7 @@
(method.method //.modifier ..name
(..type environment arity)
(list)
- (#.Some ($_ _.compose
+ (#.Some ($_ _.composite
////reference.this
(..super environment_size arity)
(store_all environment_size (///foreign.put class) offset_foreign)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/new.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/new.lux
index 45ea0b010..d153b35e9 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/new.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/new.lux
@@ -44,7 +44,7 @@
(def: .public (instance' foreign_setup class environment arity)
(-> (List (Bytecode Any)) (Type Class) (Environment Synthesis) Arity (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
(_.new class)
_.dup
(monad.seq _.monad foreign_setup)
@@ -69,7 +69,7 @@
(method.method //.modifier //init.name
(//init.type environment arity)
(list)
- (#.Some ($_ _.compose
+ (#.Some ($_ _.composite
////reference.this
(//init.super environment_size arity)
(monad.map _.monad (function (_ register)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/reset.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/reset.lux
index 615cc0388..d787bf16e 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/reset.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/reset.lux
@@ -43,7 +43,7 @@
(method.method //.modifier ..name
(..type class)
(list)
- (#.Some ($_ _.compose
+ (#.Some ($_ _.composite
(if (arity.multiary? arity)
(//new.instance' (..current_environment class environment) class environment arity)
////reference.this)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux
index 4db70e828..4915e010a 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux
@@ -108,7 +108,7 @@
(list (method.method ..init::modifier "<clinit>" ..init::type
(list)
(#.Some
- ($_ _.compose
+ ($_ _.composite
valueG
(_.putstatic (type.class bytecode_name (list)) ..value::field ..value::type)
_.return))))
@@ -128,7 +128,7 @@
[existing_class? (|> (atom.read! library)
(\ io.monad map (function (_ library)
(dictionary.key? library class_name)))
- (try.lift io.monad)
+ (try.lifted io.monad)
(: (IO (Try Bit))))
_ (if existing_class?
(in [])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/loop.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/loop.lux
index 3e009b116..6757bc987 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/loop.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/loop.lux
@@ -53,7 +53,7 @@
[fetchG (translate archive updateS)
.let [storeG (_.astore register)]]
(in [fetchG storeG]))))))]
- (in ($_ _.compose
+ (in ($_ _.composite
... It may look weird that first I fetch all the values separately,
... and then I store them all.
... It must be done that way in order to avoid a potential bug.
@@ -80,11 +80,11 @@
(translate archive iterationS))
.let [initializationG (|> (list.enumeration initsI+)
(list\map (function (_ [index initG])
- ($_ _.compose
+ ($_ _.composite
initG
(_.astore (n.+ offset index)))))
(monad.seq _.monad))]]
- (in ($_ _.compose
+ (in ($_ _.composite
initializationG
(_.set_label @begin)
iterationG))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/program.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/program.lux
index f7ba0eb93..419c4eac9 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/program.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/program.lux
@@ -58,19 +58,19 @@
(def: amount_of_inputs
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.aload_0
_.arraylength))
(def: decrease
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.iconst_1
_.isub))
(def: head
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.dup
_.aload_0
_.swap
@@ -81,7 +81,7 @@
(def: pair
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.iconst_2
(_.anewarray ^Object)
_.dup_x1
@@ -102,7 +102,7 @@
(do _.monad
[@loop _.new_label
@end _.new_label]
- ($_ _.compose
+ ($_ _.composite
..nil
..amount_of_inputs
(_.set_label @loop)
@@ -122,7 +122,7 @@
(def: run_io
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
(_.checkcast //function/abstract.class)
_.aconst_null
//runtime.apply))
@@ -132,7 +132,7 @@
(let [super_class (|> ..^Object type.reflection reflection.reflection name.internal)
main (method.method ..main::modifier "main" ..main::type
(list)
- (#.Some ($_ _.compose
+ (#.Some ($_ _.composite
program
..input_list
..feed_inputs
@@ -140,7 +140,7 @@
_.return)))]
[..class
(<| (format.result class.writer)
- try.assumed
+ try.trusted
(class.class version.v6_0
..program::modifier
(name.internal ..class)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/reference.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/reference.lux
index d983068b9..3dafea811 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/reference.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/reference.lux
@@ -44,7 +44,7 @@
(do {! ////.monad}
[bytecode_name (\ ! map //runtime.class_name
(generation.context archive))]
- (in ($_ _.compose
+ (in ($_ _.composite
..this
(_.getfield (type.class bytecode_name (list))
(..foreign_name variable)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/runtime.lux
index 8fcd70360..f11c871c1 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/runtime.lux
@@ -113,13 +113,13 @@
(def: .public (get index)
(-> (Bytecode Any) (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
index
_.aaload))
(def: (set! index value)
(-> (Bytecode Any) (Bytecode Any) (Bytecode Any))
- ($_ _.compose
+ ($_ _.composite
... A
_.dup ... AA
index ... AAI
@@ -138,10 +138,10 @@
(def: variant_value _.iconst_2)
(def: variant::method
- (let [new_variant ($_ _.compose
+ (let [new_variant ($_ _.composite
_.iconst_3
(_.anewarray //type.value))
- $tag ($_ _.compose
+ $tag ($_ _.composite
_.iload_0
(//value.wrap type.int))
$last? _.aload_1
@@ -149,7 +149,7 @@
(method.method ..modifier ..variant::name
..variant::type
(list)
- (#.Some ($_ _.compose
+ (#.Some ($_ _.composite
new_variant ... A[3]
(..set! ..variant_tag $tag) ... A[3]
(..set! ..variant_last? $last?) ... A[3]
@@ -161,7 +161,7 @@
(def: .public left_injection
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.iconst_0
..left_flag
_.dup2_x1
@@ -170,7 +170,7 @@
(def: .public right_injection
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.iconst_1
..right_flag
_.dup2_x1
@@ -181,7 +181,7 @@
(def: .public none_injection
(Bytecode Any)
- ($_ _.compose
+ ($_ _.composite
_.iconst_0
..left_flag
..unit
@@ -192,7 +192,7 @@
(do _.monad
[@try _.new_label
@handler _.new_label]
- ($_ _.compose
+ ($_ _.composite
(_.try @try @handler @handler //type.error)
(_.set_label @try)
$unsafe
@@ -213,7 +213,7 @@
(list)
(#.Some
(..risky
- ($_ _.compose
+ ($_ _.composite
_.aload_0
(_.invokestatic //type.frac "parseDouble" (type.method [(list) (list //type.text) type.double (list)]))
(//value.wrap type.double)
@@ -226,7 +226,7 @@
out (_.getstatic ^System "out" ^PrintStream)
print_type (type.method [(list) (list //type.value) type.void (list)])
print! (function (_ method) (_.invokevirtual ^PrintStream method print_type))]
- ($_ _.compose
+ ($_ _.composite
out (_.string "LUX LOG: ") (print! "print")
out _.swap (print! "println"))))
@@ -234,7 +234,7 @@
(def: (illegal_state_exception message)
(-> Text (Bytecode Any))
(let [^IllegalStateException (type.class "java.lang.IllegalStateException" (list))]
- ($_ _.compose
+ ($_ _.composite
(_.new ^IllegalStateException)
_.dup
(_.string message)
@@ -249,7 +249,7 @@
..failure::type
(list)
(#.Some
- ($_ _.compose
+ ($_ _.composite
(..illegal_state_exception message)
_.athrow))))
@@ -271,12 +271,12 @@
..push::type
(list)
(#.Some
- (let [new_stack_frame! ($_ _.compose
+ (let [new_stack_frame! ($_ _.composite
_.iconst_2
(_.anewarray //type.value))
$head _.aload_1
$tail _.aload_0]
- ($_ _.compose
+ ($_ _.composite
new_stack_frame!
(..set! ..stack_head $head)
(..set! ..stack_tail $tail)
@@ -296,7 +296,7 @@
@tags_match! _.new_label
@maybe_nested _.new_label
@mismatch! _.new_label
- .let [::tag ($_ _.compose
+ .let [::tag ($_ _.composite
(..get ..variant_tag)
(//value.unwrap type.int))
::last? (..get ..variant_last?)
@@ -309,29 +309,29 @@
not_found _.aconst_null
update_$tag _.isub
- update_$variant ($_ _.compose
+ update_$variant ($_ _.composite
$variant ::value
(_.checkcast //type.variant)
_.astore_0)
recur (: (-> Label (Bytecode Any))
(function (_ @loop_start)
- ($_ _.compose
+ ($_ _.composite
... tag, sumT
update_$variant ... tag, sumT
update_$tag ... sub_tag
(_.goto @loop_start))))
- super_nested_tag ($_ _.compose
+ super_nested_tag ($_ _.composite
... tag, sumT
_.swap ... sumT, tag
_.isub)
- super_nested ($_ _.compose
+ super_nested ($_ _.composite
... tag, sumT
super_nested_tag ... super_tag
$variant ::last? ... super_tag, super_last
$variant ::value ... super_tag, super_last, super_value
..variant)]]
- ($_ _.compose
+ ($_ _.composite
$tag
(_.set_label @loop)
$variant ::tag
@@ -369,23 +369,23 @@
(def: projection::method2
[(Resource Method) (Resource Method)]
(let [$tuple _.aload_0
- $tuple::size ($_ _.compose
+ $tuple::size ($_ _.composite
$tuple _.arraylength)
$lefts _.iload_1
- $last_right ($_ _.compose
+ $last_right ($_ _.composite
$tuple::size _.iconst_1 _.isub)
- update_$lefts ($_ _.compose
+ update_$lefts ($_ _.composite
$lefts $last_right _.isub
_.istore_1)
- update_$tuple ($_ _.compose
+ update_$tuple ($_ _.composite
$tuple $last_right _.aaload (_.checkcast //type.tuple)
_.astore_0)
recur (: (-> Label (Bytecode Any))
(function (_ @loop)
- ($_ _.compose
+ ($_ _.composite
update_$lefts
update_$tuple
(_.goto @loop))))
@@ -397,9 +397,9 @@
(do _.monad
[@loop _.new_label
@recursive _.new_label
- .let [::left ($_ _.compose
+ .let [::left ($_ _.composite
$lefts _.aaload)]]
- ($_ _.compose
+ ($_ _.composite
(_.set_label @loop)
$lefts $last_right (_.if_icmpge @recursive)
$tuple ::left
@@ -416,19 +416,19 @@
[@loop _.new_label
@not_tail _.new_label
@slice _.new_label
- .let [$right ($_ _.compose
+ .let [$right ($_ _.composite
$lefts
_.iconst_1
_.iadd)
- $::nested ($_ _.compose
+ $::nested ($_ _.composite
$tuple _.swap _.aaload)
- super_nested ($_ _.compose
+ super_nested ($_ _.composite
$tuple
$right
$tuple::size
(_.invokestatic (type.class "java.util.Arrays" (list)) "copyOfRange"
(type.method [(list) (list //type.tuple //type.index //type.index) //type.tuple (list)])))]]
- ($_ _.compose
+ ($_ _.composite
(_.set_label @loop)
$last_right $right
_.dup2 (_.if_icmpne @not_tail)
@@ -472,13 +472,13 @@
unit _.aconst_null
^StringWriter (type.class "java.io.StringWriter" (list))
- string_writer ($_ _.compose
+ string_writer ($_ _.composite
(_.new ^StringWriter)
_.dup
(_.invokespecial ^StringWriter "<init>" (type.method [(list) (list) type.void (list)])))
^PrintWriter (type.class "java.io.PrintWriter" (list))
- print_writer ($_ _.compose
+ print_writer ($_ _.composite
... WTW
(_.new ^PrintWriter) ... WTWP
_.dup_x1 ... WTPWP
@@ -487,7 +487,7 @@
(_.invokespecial ^PrintWriter "<init>" (type.method [(list) (list (type.class "java.io.Writer" (list)) type.boolean) type.void (list)]))
... WTP
)]]
- ($_ _.compose
+ ($_ _.composite
(_.try @try @handler @handler //type.error)
(_.set_label @try)
$unsafe unit ..apply
@@ -516,7 +516,7 @@
class.public
class.final))
bytecode (<| (format.result class.writer)
- try.assumed
+ try.trusted
(class.class jvm/version.v6_0
modifier
(name.internal class)
@@ -551,7 +551,7 @@
(let [previous_inputs (|> arity
list.indices
(monad.map _.monad _.aload))]
- ($_ _.compose
+ ($_ _.composite
previous_inputs
(_.invokevirtual //function.class ..apply::name (..apply::type (dec arity)))
(_.checkcast //function.class)
@@ -566,7 +566,7 @@
(list)
(#.Some
(let [$partials _.iload_1]
- ($_ _.compose
+ ($_ _.composite
..this
(_.invokespecial ^Object "<init>" (type.method [(list) (list) type.void (list)]))
..this
@@ -584,7 +584,7 @@
//function/count.type
(row.row)))
bytecode (<| (format.result class.writer)
- try.assumed
+ try.trusted
(class.class jvm/version.v6_0
modifier
(name.internal class)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/value.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/value.lux
index fa7627b97..2eff33115 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/value.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/value.lux
@@ -44,6 +44,6 @@
(def: .public (unwrap type)
(-> (Type Primitive) (Bytecode Any))
(let [wrapper (type.class (primitive_wrapper type) (list))]
- ($_ _.compose
+ ($_ _.composite
(_.checkcast wrapper)
(_.invokevirtual wrapper (primitive_unwrap type) (type.method [(list) (list) type (list)])))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis.lux
index 2b9202239..c234f9902 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis.lux
@@ -100,4 +100,4 @@
Phase
(do phase.monad
[synthesis (..optimization archive analysis)]
- (phase.lift (/variable.optimization synthesis))))
+ (phase.lifted (/variable.optimization synthesis))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/variable.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
index 78dc5dce1..feadf7fa5 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
@@ -241,7 +241,7 @@
dictionary.entries
(list\map (function (_ [register redundant?])
(%.format (%.nat register) ": " (%.bit redundant?))))
- (text.join_with ", ")))
+ (text.interposed ", ")))
(def: (path_optimization optimization)
(-> (Optimization Synthesis) (Optimization Path))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux b/stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux
index 806fdc3c9..58dc336dd 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux
@@ -279,7 +279,7 @@
(|> (#.Item item)
(list\map (function (_ [test then])
(format (<format> test) " " (%path' %then then))))
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["(? " ")"]))])
([#I64_Fork (|>> .int %.int)]
[#F64_Fork %.frac]
@@ -341,7 +341,7 @@
(#analysis.Tuple members)
(|> members
(list\map %synthesis)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["[" "]"])))
(#Reference reference)
@@ -354,7 +354,7 @@
(#Abstraction [environment arity body])
(let [environment' (|> environment
(list\map %synthesis)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["[" "]"]))]
(|> (format environment' " " (%.nat arity) " " (%synthesis body))
(text.enclosed ["(#function " ")"])))
@@ -362,7 +362,7 @@
(#Apply func args)
(|> args
(list\map %synthesis)
- (text.join_with " ")
+ (text.interposed " ")
(format (%synthesis func) " ")
(text.enclosed ["(" ")"])))
@@ -392,7 +392,7 @@
(|> (format (%.nat (get@ #start scope))
" " (|> (get@ #inits scope)
(list\map %synthesis)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["[" "]"]))
" " (%synthesis (get@ #iteration scope)))
(text.enclosed ["(#loop " ")"]))
@@ -400,12 +400,12 @@
(#Recur args)
(|> args
(list\map %synthesis)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["(#recur " ")"]))))
(#Extension [name args])
(|> (list\map %synthesis args)
- (text.join_with " ")
+ (text.interposed " ")
(format (%.text name) " ")
(text.enclosed ["(" ")"]))))
diff --git a/stdlib/source/library/lux/tool/compiler/phase.lux b/stdlib/source/library/lux/tool/compiler/phase.lux
index d1cecbe50..92680654d 100644
--- a/stdlib/source/library/lux/tool/compiler/phase.lux
+++ b/stdlib/source/library/lux/tool/compiler/phase.lux
@@ -70,13 +70,13 @@
(def: .public failure
(-> Text Operation)
- (|>> #try.Failure (state.lift try.monad)))
+ (|>> #try.Failure (state.lifted try.monad)))
(def: .public (except exception parameters)
(All [e] (-> (Exception e) e Operation))
(..failure (ex.error exception parameters)))
-(def: .public (lift error)
+(def: .public (lifted error)
(All [s a] (-> (Try a) (Operation s a)))
(function (_ state)
(try\map (|>> [state]) error)))
@@ -93,7 +93,7 @@
(function (_ archive input state)
(#try.Success [state input])))
-(def: .public (compose pre post)
+(def: .public (composite pre post)
(All [s0 s1 i t o]
(-> (Phase s0 i t)
(Phase s1 t o)
diff --git a/stdlib/source/library/lux/tool/interpreter.lux b/stdlib/source/library/lux/tool/interpreter.lux
index 14f53e927..6e28d5c1a 100644
--- a/stdlib/source/library/lux/tool/interpreter.lux
+++ b/stdlib/source/library/lux/tool/interpreter.lux
@@ -60,7 +60,7 @@
(def: enter_module
(All [anchor expression directive]
(Operation anchor expression directive Any))
- (directive.lift_analysis
+ (directive.lifted_analysis
(do phase.monad
[_ (module.create 0 ..module)]
(analysis.set_current_module ..module))))
@@ -101,11 +101,11 @@
(All [anchor expression directive]
(-> Code <Interpretation>))
(do {! phase.monad}
- [state (extension.lift phase.get_state)
+ [state (extension.lifted phase.get_state)
.let [analyse (get@ [#directive.analysis #directive.phase] state)
synthesize (get@ [#directive.synthesis #directive.phase] state)
generate (get@ [#directive.generation #directive.phase] state)]
- [_ codeT codeA] (directive.lift_analysis
+ [_ codeT codeA] (directive.lifted_analysis
(analysis.with_scope
(type.with_fresh_env
(do !
@@ -114,9 +114,9 @@
codeT (type.with_env
(check.clean codeT))]
(in [codeT codeA])))))
- codeS (directive.lift_synthesis
+ codeS (directive.lifted_synthesis
(synthesize codeA))]
- (directive.lift_generation
+ (directive.lifted_generation
(generation.with_buffer
(do !
[codeH (generate codeS)
diff --git a/stdlib/source/library/lux/type.lux b/stdlib/source/library/lux/type.lux
index 97cdf5a3d..c6be00945 100644
--- a/stdlib/source/library/lux/type.lux
+++ b/stdlib/source/library/lux/type.lux
@@ -1,7 +1,7 @@
(.module:
{#.doc "Basic functionality for working with types."}
[library
- [lux (#- function)
+ [lux (#- function :as)
["@" target]
[abstract
[equivalence (#+ Equivalence)]
@@ -132,7 +132,7 @@
(^template [<tag> <desc>]
[(<tag> env body)
- ($_ text\compose "(" <desc> " {" (|> env (list\map format) (text.join_with " ")) "} " (format body) ")")])
+ ($_ text\compose "(" <desc> " {" (|> env (list\map format) (text.interposed " ")) "} " (format body) ")")])
([#.UnivQ "All"]
[#.ExQ "Ex"])
@@ -174,7 +174,7 @@
($_ text\compose
(n\encode index)
" " (..format type))))
- (text.join_with (text\compose text.new_line " ")))))
+ (text.interposed (text\compose text.new_line " ")))))
(list.item idx env))
_
@@ -441,18 +441,18 @@
(Parser (List Text))
(<code>.tuple (<>.some <code>.local_identifier)))
-(syntax: .public (:cast [type_vars type_parameters
- input <code>.any
- output <code>.any
- value (<>.maybe <code>.any)])
+(syntax: .public (:as [type_vars type_parameters
+ input <code>.any
+ output <code>.any
+ value (<>.maybe <code>.any)])
{#.doc (example "Casts a value to a specific type."
"The specified type can depend on type variables of the original type of the value."
(: (Bar Bit Nat Text)
- (:cast [a b c]
- (Foo a [b c])
- (Bar a b c)
- (: (Foo Bit [Nat Text])
- (foo expression))))
+ (:as [a b c]
+ (Foo a [b c])
+ (Bar a b c)
+ (: (Foo Bit [Nat Text])
+ (foo expression))))
"NOTE: Careless use of type-casts is an easy way to introduce bugs. USE WITH CAUTION.")}
(let [casterC (` (: (All [(~+ (list\map code.local_identifier type_vars))]
(-> (~ input) (~ output)))
@@ -478,13 +478,13 @@
computation ..typed])
{#.doc (example "Allows specifing the type of an expression as sharing type-variables with the type of another expression."
(: (Bar Bit Nat Text)
- (:cast [a b c]
- (Foo a [b c])
- (: (Foo Bit [Nat Text])
- (foo expression))
-
- (Bar a b c)
- (bar expression))))}
+ (:sharing [a b c]
+ (Foo a [b c])
+ (: (Foo Bit [Nat Text])
+ (foo expression))
+
+ (Bar a b c)
+ (bar expression))))}
(macro.with_identifiers [g!_]
(let [shareC (` (: (All [(~+ (list\map code.local_identifier type_vars))]
(-> (~ (get@ #type exemplar))
diff --git a/stdlib/source/library/lux/type/abstract.lux b/stdlib/source/library/lux/type/abstract.lux
index 362167393..25c864755 100644
--- a/stdlib/source/library/lux/type/abstract.lux
+++ b/stdlib/source/library/lux/type/abstract.lux
@@ -1,7 +1,6 @@
(.module:
[library
[lux #*
- [type (#+ :cast)]
["." meta]
[abstract
[monad (#+ Monad do)]]
@@ -17,7 +16,8 @@
[macro
["." code]
[syntax (#+ syntax:)
- ["|.|" annotations]]]]])
+ ["|.|" annotations]]]]]
+ ["." //])
(type: Stack
List)
@@ -185,7 +185,7 @@
value))))}
(do meta.monad
[[name type_vars abstraction representation] (peek! frame)]
- (in (list (` ((~! :cast) [(~+ type_vars)] (~ <from>) (~ <to>)
+ (in (list (` ((~! //.:as) [(~+ type_vars)] (~ <from>) (~ <to>)
(~ value)))))))]
[:abstraction representation abstraction]
diff --git a/stdlib/source/library/lux/type/implicit.lux b/stdlib/source/library/lux/type/implicit.lux
index 6d5195708..99cafdcda 100644
--- a/stdlib/source/library/lux/type/implicit.lux
+++ b/stdlib/source/library/lux/type/implicit.lux
@@ -170,7 +170,7 @@
[[id var] check.var]
(|> func
(type.applied (list var))
- maybe.assume
+ maybe.trusted
(on_argument arg)))
(#.Function input output)
@@ -187,7 +187,7 @@
(#.UnivQ _)
(do check.monad
[[id var] check.var
- [ids final_output] (concrete_type (maybe.assume (type.applied (list var) type)))]
+ [ids final_output] (concrete_type (maybe.trusted (type.applied (list var) type)))]
(in [(#.Item id ids)
final_output]))
@@ -359,7 +359,7 @@
(meta.failure (format "Too many implementations available: "
(|> chosen_ones
(list\map (|>> product.left %.name))
- (text.join_with ", "))
+ (text.interposed ", "))
" --- for type: " (%.type sig_type)))))
(#.Right [args _])
diff --git a/stdlib/source/library/lux/macro/poly.lux b/stdlib/source/library/lux/type/poly.lux
index a4aa6ba23..edd21a88c 100644
--- a/stdlib/source/library/lux/macro/poly.lux
+++ b/stdlib/source/library/lux/type/poly.lux
@@ -85,13 +85,13 @@
(#.Parameter idx)
(let [idx (<type>.adjusted_idx env idx)]
(if (n.= 0 idx)
- (|> (dictionary.value idx env) maybe.assume product.left (code env))
+ (|> (dictionary.value idx env) maybe.trusted product.left (code env))
(` (.$ (~ (code.nat (dec idx)))))))
(#.Apply (#.Named [(~~ (static .prelude_module)) "Nothing"] _) (#.Parameter idx))
(let [idx (<type>.adjusted_idx env idx)]
(if (n.= 0 idx)
- (|> (dictionary.value idx env) maybe.assume product.left (code env))
+ (|> (dictionary.value idx env) maybe.trusted product.left (code env))
(undefined)))
(^template [<tag>]
diff --git a/stdlib/source/library/lux/type/refinement.lux b/stdlib/source/library/lux/type/refinement.lux
index c171f3b3e..4e1a88c09 100644
--- a/stdlib/source/library/lux/type/refinement.lux
+++ b/stdlib/source/library/lux/type/refinement.lux
@@ -40,7 +40,7 @@
[predicate (Predicate t) #predicate]
)
- (def: .public (lift transform)
+ (def: .public (lifted transform)
{#.doc (example "Yields a function that can work on refined values."
"Respects the constraints of the refinement.")}
(All [t %]
diff --git a/stdlib/source/library/lux/type/resource.lux b/stdlib/source/library/lux/type/resource.lux
index 8a815c47b..5ee949bd3 100644
--- a/stdlib/source/library/lux/type/resource.lux
+++ b/stdlib/source/library/lux/type/resource.lux
@@ -174,7 +174,7 @@
(in (row.add input to))))
(: (Row Code) row.empty)
swaps)
- maybe.assume
+ maybe.trusted
row.list)
g!inputsT+ (list\map (|>> (~) (..Key ..Commutative) (`)) g!inputs)
g!outputsT+ (list\map (|>> (~) (..Key ..Commutative) (`)) g!outputs)]]
diff --git a/stdlib/source/library/lux/world/db/sql.lux b/stdlib/source/library/lux/world/db/sql.lux
index ce9842b8d..a3b7aff6a 100644
--- a/stdlib/source/library/lux/world/db/sql.lux
+++ b/stdlib/source/library/lux/world/db/sql.lux
@@ -109,7 +109,7 @@
(def: listing
(-> (List (SQL Any)) Text)
(|>> (list\map (|>> :representation))
- (text.join_with ", ")))
+ (text.interposed ", ")))
... Value
(def: .public ? Placeholder (:abstraction "?"))
@@ -219,7 +219,7 @@
(if (text\= ..no_alias alias)
(:representation column)
(format (:representation column) " AS " alias))))
- (text.join_with ", ")))
+ (text.interposed ", ")))
" FROM " (:representation source))))]
@@ -298,7 +298,7 @@
(|> pairs
(list\map (.function (_ [value order])
(format (:representation value) " " (:representation order))))
- (text.join_with ", "))))))
+ (text.interposed ", "))))))
(def: .public (group_by pairs query)
(All [where having order limit offset]
@@ -324,7 +324,7 @@
" VALUES "
(|> rows
(list\map (|>> ..listing ..parenthesize))
- (text.join_with ", "))
+ (text.interposed ", "))
)))
(def: .public (update table pairs)
@@ -338,7 +338,7 @@
(format " SET " (|> pairs
(list\map (.function (_ [column value])
(format (:representation column) "=" (:representation value))))
- (text.join_with ", ")))))))
+ (text.interposed ", ")))))))
(def: .public delete
(-> Table (Command No_Where No_Having))
diff --git a/stdlib/source/library/lux/world/net/http/request.lux b/stdlib/source/library/lux/world/net/http/request.lux
index 5c8d162c6..6d9e94b8e 100644
--- a/stdlib/source/library/lux/world/net/http/request.lux
+++ b/stdlib/source/library/lux/world/net/http/request.lux
@@ -31,7 +31,7 @@
(def: (merge inputs)
(-> (List Binary) Binary)
- (let [[_ output] (try.assumed
+ (let [[_ output] (try.trusted
(monad.fold try.monad
(function (_ input [offset output])
(let [amount (binary.size input)]
diff --git a/stdlib/source/library/lux/world/net/http/route.lux b/stdlib/source/library/lux/world/net/http/route.lux
index d9519a95d..a650f53d2 100644
--- a/stdlib/source/library/lux/world/net/http/route.lux
+++ b/stdlib/source/library/lux/world/net/http/route.lux
@@ -58,7 +58,7 @@
(server [identification
protocol
(update@ #//.uri
- (|>> (text.clip' (text.size path)) maybe.assume)
+ (|>> (text.clip' (text.size path)) maybe.trusted)
resource)
message])
(async.resolved //response.not_found))))
diff --git a/stdlib/source/library/lux/world/program.lux b/stdlib/source/library/lux/world/program.lux
index d5195e39f..05f9cd8a6 100644
--- a/stdlib/source/library/lux/world/program.lux
+++ b/stdlib/source/library/lux/world/program.lux
@@ -319,7 +319,7 @@
(#.Some process/env)
(|> (Object::entries [process/env])
array.list
- (list\map (|>> (array.read! 0) maybe.assume)))
+ (list\map (|>> (array.read! 0) maybe.trusted)))
#.None
(list))
diff --git a/stdlib/source/poly/lux/abstract/equivalence.lux b/stdlib/source/poly/lux/abstract/equivalence.lux
index 805576e18..b311d97ec 100644
--- a/stdlib/source/poly/lux/abstract/equivalence.lux
+++ b/stdlib/source/poly/lux/abstract/equivalence.lux
@@ -22,8 +22,7 @@
["." tree]]]
[macro
[syntax (#+ syntax:)]
- ["." code]
- ["." poly (#+ poly:)]]
+ ["." code]]
[math
[number
["." nat ("#\." decimal)]
@@ -37,6 +36,7 @@
["." day]
["." month]]
["." type
+ ["." poly (#+ poly:)]
["." unit]]]]
[\\library
["." /]])
diff --git a/stdlib/source/poly/lux/abstract/functor.lux b/stdlib/source/poly/lux/abstract/functor.lux
index db011ca27..57f047798 100644
--- a/stdlib/source/poly/lux/abstract/functor.lux
+++ b/stdlib/source/poly/lux/abstract/functor.lux
@@ -1,7 +1,6 @@
(.module:
[library
[lux #*
- ["." type]
[abstract
[monad (#+ Monad do)]]
[control
@@ -16,11 +15,12 @@
["." list ("#\." monad monoid)]]]
[macro
[syntax (#+ syntax:)]
- ["." code]
- ["." poly (#+ poly:)]]
+ ["." code]]
[math
[number
- ["n" nat]]]]]
+ ["n" nat]]]
+ ["." type
+ ["." poly (#+ poly:)]]]]
[\\library
["." /]])
diff --git a/stdlib/source/poly/lux/data/format/json.lux b/stdlib/source/poly/lux/data/format/json.lux
index a77ef5980..42f0ed7d8 100644
--- a/stdlib/source/poly/lux/data/format/json.lux
+++ b/stdlib/source/poly/lux/data/format/json.lux
@@ -21,8 +21,7 @@
["." dictionary]]]
[macro
[syntax (#+ syntax:)]
- ["." code]
- ["." poly (#+ poly:)]]
+ ["." code]]
[math
[number
["n" nat ("#\." decimal)]
@@ -36,7 +35,8 @@
["." day]
["." month]]
["." type
- ["." unit]]]]
+ ["." unit]
+ ["." poly (#+ poly:)]]]]
[\\library
["." / (#+ JSON)]])
diff --git a/stdlib/source/program/aedifex/artifact.lux b/stdlib/source/program/aedifex/artifact.lux
index e37894330..cd53db5c4 100644
--- a/stdlib/source/program/aedifex/artifact.lux
+++ b/stdlib/source/program/aedifex/artifact.lux
@@ -88,7 +88,7 @@
(-> Text Group Text)
(|> group
(text.all_split_by ..group_separator)
- (text.join_with separator)))
+ (text.interposed separator)))
(def: .public (uri version artifact)
(-> Version Artifact URI)
diff --git a/stdlib/source/program/aedifex/artifact/time/date.lux b/stdlib/source/program/aedifex/artifact/time/date.lux
index 6e84811e6..c3c0b9cc1 100644
--- a/stdlib/source/program/aedifex/artifact/time/date.lux
+++ b/stdlib/source/program/aedifex/artifact/time/date.lux
@@ -76,9 +76,9 @@
(Parser Date)
(do <>.monad
[year (<>.codec n.decimal (<text>.exactly 4 <text>.decimal))
- year (<>.lift (year.year (.int year)))
+ year (<>.lifted (year.year (.int year)))
month (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))
- month (<>.lift (month.by_number month))
+ month (<>.lifted (month.by_number month))
day_of_month (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))
- date (<>.lift (date.date year month day_of_month))]
+ date (<>.lifted (date.date year month day_of_month))]
(in (:abstraction date)))))
diff --git a/stdlib/source/program/aedifex/artifact/time/time.lux b/stdlib/source/program/aedifex/artifact/time/time.lux
index 8b33d5732..0db035d56 100644
--- a/stdlib/source/program/aedifex/artifact/time/time.lux
+++ b/stdlib/source/program/aedifex/artifact/time/time.lux
@@ -32,8 +32,8 @@
[hour (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))
minute (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))
second (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))]
- (<>.lift (time.time
- {#time.hour hour
- #time.minute minute
- #time.second second
- #time.milli_second 0}))))
+ (<>.lifted (time.time
+ {#time.hour hour
+ #time.minute minute
+ #time.second second
+ #time.milli_second 0}))))
diff --git a/stdlib/source/program/aedifex/command/build.lux b/stdlib/source/program/aedifex/command/build.lux
index 41668665e..ff469d896 100644
--- a/stdlib/source/program/aedifex/command/build.lux
+++ b/stdlib/source/program/aedifex/command/build.lux
@@ -245,7 +245,7 @@
(-> (List Path) Text)
(|> host_dependencies
(#.Item ".")
- (text.join_with ..jvm_class_path_separator)
+ (text.interposed ..jvm_class_path_separator)
%.text))
(def: .public (with_jvm_class_path host_dependencies runtime)
diff --git a/stdlib/source/program/aedifex/metadata/artifact.lux b/stdlib/source/program/aedifex/metadata/artifact.lux
index f4971546f..0d6f86c2c 100644
--- a/stdlib/source/program/aedifex/metadata/artifact.lux
+++ b/stdlib/source/program/aedifex/metadata/artifact.lux
@@ -115,11 +115,11 @@
(<text>.Parser Date)
(do <>.monad
[year (<>.codec n.decimal (<text>.exactly 4 <text>.decimal))
- year (<>.lift (year.year (.int year)))
+ year (<>.lifted (year.year (.int year)))
month (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))
- month (<>.lift (month.by_number month))
+ month (<>.lifted (month.by_number month))
day_of_month (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))]
- (<>.lift (date.date year month day_of_month))))
+ (<>.lifted (date.date year month day_of_month))))
(def: time_parser
(<text>.Parser Time)
@@ -127,11 +127,11 @@
[hour (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))
minute (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))
second (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))]
- (<>.lift (time.time
- {#time.hour hour
- #time.minute minute
- #time.second second
- #time.milli_second 0}))))
+ (<>.lifted (time.time
+ {#time.hour hour
+ #time.minute minute
+ #time.second second
+ #time.milli_second 0}))))
(def: last_updated_parser
(Parser Instant)
diff --git a/stdlib/source/program/aedifex/pom.lux b/stdlib/source/program/aedifex/pom.lux
index f3a945d66..36e3ff440 100644
--- a/stdlib/source/program/aedifex/pom.lux
+++ b/stdlib/source/program/aedifex/pom.lux
@@ -168,7 +168,7 @@
[properties (\ ! map (dictionary.of_list name.hash)
(<| (<xml>.node ["" ..dependency_tag])
(<>.some ..property_parser)))]
- (<| <>.lift
+ (<| <>.lifted
try.of_maybe
(do maybe.monad
[group (dictionary.value ["" ..group_tag] properties)
diff --git a/stdlib/source/program/compositor.lux b/stdlib/source/program/compositor.lux
index efe7a6b28..1a6e7356e 100644
--- a/stdlib/source/program/compositor.lux
+++ b/stdlib/source/program/compositor.lux
@@ -178,6 +178,6 @@
... (do {! async.monad}
... [console (|> console.default
... async.future
- ... (\ ! map (|>> try.assumed console.async)))]
+ ... (\ ! map (|>> try.trusted console.async)))]
... (interpreter.run! (try.with async.monad) console platform interpretation generation_bundle)))
))))
diff --git a/stdlib/source/program/scriptum.lux b/stdlib/source/program/scriptum.lux
index ab4c2e787..dbe3ea022 100644
--- a/stdlib/source/program/scriptum.lux
+++ b/stdlib/source/program/scriptum.lux
@@ -95,7 +95,7 @@
(|> lines
(text.all_split_by text.new_line)
(list\map (|>> (format prefix)))
- (text.join_with text.new_line)))
+ (text.interposed text.new_line)))
(def: (pprint_type_definition level type_func_info tags module interface? recursive_type? type)
(-> Nat [Text (List Text)] (List Name) Text Bit Bit Type Text)
@@ -113,7 +113,7 @@
(format "(primitive " (%.text name) ")")
_
- (format "(primitive " (%.text name) " " (|> params (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.join_with " ")) ")"))
+ (format "(primitive " (%.text name) " " (|> params (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) ")"))
[_ (#.Sum _)]
(let [members (type.flat_variant type)]
@@ -122,7 +122,7 @@
(format "(Or "
(|> members
(list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?))
- (text.join_with " "))
+ (text.interposed " "))
")")
_
@@ -135,18 +135,18 @@
(format "(#" t_name " "
(|> types
(list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?))
- (text.join_with " "))
+ (text.interposed " "))
")"))
_
(format "(#" t_name " " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type) ")"))))
- (text.join_with text.new_line))))
+ (text.interposed text.new_line))))
[_ (#.Product _)]
(let [members (type.flat_tuple type)]
(case tags
#.End
- (format "[" (|> members (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.join_with " ")) "]")
+ (format "[" (|> members (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) "]")
_
(let [member_docs (|> members
@@ -155,14 +155,14 @@
(if interface?
(format "(: " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type) text.new_line " " t_name ")")
(format "#" t_name " " (pprint_type_definition level type_func_info #.None module interface? recursive_type? type)))))
- (text.join_with (format text.new_line " ")))]
+ (text.interposed (format text.new_line " ")))]
(if interface?
member_docs
(format "{" member_docs "}")))))
[_ (#.Function input output)]
(let [[ins out] (type.flat_function type)]
- (format "(-> " (|> ins (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.join_with " "))
+ (format "(-> " (|> ins (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " "))
" "
(pprint_type_definition level type_func_info #.None module interface? recursive_type? out)
")"))
@@ -181,7 +181,7 @@
(let [[level' body] (<flat> type)
args (level_parameters level level')
body_doc (pprint_type_definition (n.+ level level') type_func_info tags module interface? recursive_type? body)]
- (format "(" <name> " " "[" (text.join_with " " args) "]"
+ (format "(" <name> " " "[" (text.interposed " " args) "]"
(case tags
#.End
(format " " body_doc)
@@ -197,7 +197,7 @@
[_ (#.Apply param fun)]
(let [[type_func type_arguments] (type.flat_application type)]
- (format "(" (pprint_type_definition level type_func_info tags module interface? recursive_type? type_func) " " (|> type_arguments (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.join_with " ")) ")"))
+ (format "(" (pprint_type_definition level type_func_info tags module interface? recursive_type? type_func) " " (|> type_arguments (list\map (pprint_type_definition level type_func_info #.None module interface? recursive_type?)) (text.interposed " ")) ")"))
[_ (#.Named [_module _name] type)]
(if (text\= module _module)
@@ -214,20 +214,20 @@
(format "(primitive " (%.text name) ")")
_
- (format "(primitive " (%.text name) " " (|> params (list\map (pprint_type level type_func_name module)) (list.interposed " ") (text.join_with "")) ")"))
+ (format "(primitive " (%.text name) " " (|> params (list\map (pprint_type level type_func_name module)) (text.interposed " ")) ")"))
(#.Sum _)
(let [members (type.flat_variant type)]
- (format "(Or " (|> members (list\map (pprint_type level type_func_name module)) (list.interposed " ") (text.join_with "")) ")"))
+ (format "(Or " (|> members (list\map (pprint_type level type_func_name module)) (text.interposed " ")) ")"))
(#.Product _)
(let [members (type.flat_tuple type)]
- (format "[" (|> members (list\map (pprint_type level type_func_name module)) (list.interposed " ") (text.join_with "")) "]"))
+ (format "[" (|> members (list\map (pprint_type level type_func_name module)) (text.interposed " ")) "]"))
(#.Function input output)
(let [[ins out] (type.flat_function type)]
(format "(-> "
- (|> ins (list\map (pprint_type level type_func_name module)) (list.interposed " ") (text.join_with ""))
+ (|> ins (list\map (pprint_type level type_func_name module)) (text.interposed " "))
" "
(pprint_type level type_func_name module out)
")"))
@@ -246,7 +246,7 @@
(let [[level' body] (<flat> type)
args (level_parameters level level')
body_doc (pprint_type (n.+ level level') type_func_name module body)]
- (format "(" <name> " " "[" (|> args (list.interposed " ") (text.join_with "")) "]"
+ (format "(" <name> " " "[" (|> args (text.interposed " ")) "]"
(format " " body_doc)
")"))])
([#.UnivQ "All" type.flat_univ_q]
@@ -254,7 +254,7 @@
(#.Apply param fun)
(let [[type_func type_arguments] (type.flat_application type)]
- (format "(" (pprint_type level type_func_name module type_func) " " (|> type_arguments (list\map (pprint_type level type_func_name module)) (list.interposed " ") (text.join_with "")) ")"))
+ (format "(" (pprint_type level type_func_name module type_func) " " (|> type_arguments (list\map (pprint_type level type_func_name module)) (text.interposed " ")) ")"))
(#.Named [_module _name] type)
(if (text\= module _module)
@@ -363,7 +363,7 @@
_name
_
- (format "(" (text.join_with " " (list& _name type_arguments)) ")"))
+ (format "(" (text.interposed " " (list& _name type_arguments)) ")"))
nesting (list.size type_arguments)]]
(in (md.code (format (if interface? "(interface: " "(type: ")
(if recursive_type? "#rec " "")
@@ -374,7 +374,7 @@
(pprint_type_definition (dec nesting) [_name type_arguments] (maybe.else (list) tags) module interface? recursive_type?)
(text.all_split_by text.new_line)
(list\map (|>> (format " ")))
- (text.join_with text.new_line))
+ (text.interposed text.new_line))
")"))))
_
@@ -433,7 +433,7 @@
name
args
- (format "(" (text.join_with " " (list& name args)) ")"))]
+ (format "(" (text.interposed " " (list& name args)) ")"))]
($_ md.then
(md.heading/3 usage)
(case ?doc
@@ -455,7 +455,7 @@
(|> block
(text.all_split_by text.new_line)
(list\map (text.enclosed pre+post))
- (text.join_with text.new_line)))
+ (text.interposed text.new_line)))
(def: (document_module [[module_name module] organization])
(-> [[Text Module] Organization] (Meta [Text (Markdown Block)]))
@@ -505,9 +505,9 @@
(do {! meta.monad}
[all_modules meta.modules
.let [lux_modules (|> all_modules
- (list.only (function.compose lux_module? product.left))
+ (list.only (function.composite lux_module? product.left))
(list.sorted name_sort))]
- lux_exports (monad.map ! (function.compose meta.exports product.left)
+ lux_exports (monad.map ! (function.composite meta.exports product.left)
lux_modules)
module_documentation (|> (list\map organize_definitions lux_exports)
(list.zipped/2 lux_modules)
diff --git a/stdlib/source/specification/compositor/generation/case.lux b/stdlib/source/specification/compositor/generation/case.lux
index e3b4f361b..371a89162 100644
--- a/stdlib/source/specification/compositor/generation/case.lux
+++ b/stdlib/source/specification/compositor/generation/case.lux
@@ -231,7 +231,7 @@
(def: special_pattern_path
Path
($_ synthesis.path/alt
- (<| try.assumed
+ (<| try.trusted
(phase.result [extension/synthesis.bundle
synthesis.init])
(case.path phase/synthesis.phase
diff --git a/stdlib/source/specification/compositor/generation/common.lux b/stdlib/source/specification/compositor/generation/common.lux
index 93dd3bba5..6387b3013 100644
--- a/stdlib/source/specification/compositor/generation/common.lux
+++ b/stdlib/source/specification/compositor/generation/common.lux
@@ -187,8 +187,8 @@
concatenatedS (#synthesis.Extension "lux text concat" (list sample_lowerS sample_upperS))
pre_rep_once (format sample_lower sample_upper)
post_rep_once (format sample_lower sample_alpha)
- pre_rep_all (|> sample_lower (list.repeated sample_size) (text.join_with sample_upper))
- post_rep_all (|> sample_lower (list.repeated sample_size) (text.join_with sample_alpha))]]
+ pre_rep_all (|> sample_lower (list.repeated sample_size) (text.interposed sample_upper))
+ post_rep_all (|> sample_lower (list.repeated sample_size) (text.interposed sample_alpha))]]
($_ _.and
(_.test "Can compare texts for equality."
(and (|> (#synthesis.Extension "lux text =" (list sample_lowerS sample_lowerS))
diff --git a/stdlib/source/specification/compositor/generation/function.lux b/stdlib/source/specification/compositor/generation/function.lux
index f4697bd38..c3143b958 100644
--- a/stdlib/source/specification/compositor/generation/function.lux
+++ b/stdlib/source/specification/compositor/generation/function.lux
@@ -53,7 +53,7 @@
[[arity local functionS] ..function
partial_arity (|> r.nat (\ ! map (|>> (n.% arity) (n.max 1))))
inputs (r.list arity r.safe_frac)
- .let [expectation (maybe.assume (list.item (dec local) inputs))
+ .let [expectation (maybe.trusted (list.item (dec local) inputs))
inputsS (list\map (|>> synthesis.f64) inputs)]]
($_ _.and
(_.test "Can read arguments."
diff --git a/stdlib/source/specification/compositor/generation/structure.lux b/stdlib/source/specification/compositor/generation/structure.lux
index 7cd303c52..b1f0e5666 100644
--- a/stdlib/source/specification/compositor/generation/structure.lux
+++ b/stdlib/source/specification/compositor/generation/structure.lux
@@ -45,9 +45,9 @@
(case> (#try.Success valueT)
(let [valueT (:as (Array Any) valueT)]
(and (n.= 3 (array.size valueT))
- (let [tag_out (:as java/lang/Integer (maybe.assume (array.read! 0 valueT)))
+ (let [tag_out (:as java/lang/Integer (maybe.trusted (array.read! 0 valueT)))
last?_out (array.read! 1 valueT)
- value_out (:as Any (maybe.assume (array.read! 2 valueT)))
+ value_out (:as Any (maybe.trusted (array.read! 2 valueT)))
same_tag? (|> tag_out ffi.int_to_long (:as Nat) (n.= tag_in))
same_flag? (case last?_out
(#.Some last?_out')
diff --git a/stdlib/source/specification/lux/abstract/apply.lux b/stdlib/source/specification/lux/abstract/apply.lux
index 9aaa00eac..71df69a83 100644
--- a/stdlib/source/specification/lux/abstract/apply.lux
+++ b/stdlib/source/specification/lux/abstract/apply.lux
@@ -53,7 +53,7 @@
(_.test "Composition."
((comparison n.=)
(_$ \apply
- (injection function.compose)
+ (injection function.composite)
(injection increase)
(injection decrease)
(injection sample))
diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux
index c4311fc2c..0c6676488 100644
--- a/stdlib/source/test/aedifex/command/deps.lux
+++ b/stdlib/source/test/aedifex/command/deps.lux
@@ -75,12 +75,12 @@
dependee_pom (|> (\ ///.monoid identity)
(set@ #///.identity (#.Some dependee_artifact))
///pom.write
- try.assumed)
+ try.trusted)
depender_pom (|> (\ ///.monoid identity)
(set@ #///.identity (#.Some depender_artifact))
(set@ #///.dependencies (set.of_list ///dependency.hash (list dependee)))
///pom.write
- try.assumed)
+ try.trusted)
dependee_package (|> dependee_package
(set@ #///package.origin (#///repository/origin.Remote ""))
diff --git a/stdlib/source/test/aedifex/dependency/deployment.lux b/stdlib/source/test/aedifex/dependency/deployment.lux
index 9ddabee88..ae97a70ca 100644
--- a/stdlib/source/test/aedifex/dependency/deployment.lux
+++ b/stdlib/source/test/aedifex/dependency/deployment.lux
@@ -137,7 +137,7 @@
[[profile package] $///package.random
.let [artifact (|> profile
(get@ #profile.identity)
- maybe.assume)
+ maybe.trusted)
dependency (: Dependency
[artifact
artifact/type.lux_library])]]
diff --git a/stdlib/source/test/aedifex/dependency/resolution.lux b/stdlib/source/test/aedifex/dependency/resolution.lux
index da101dfa2..c7f7d6d40 100644
--- a/stdlib/source/test/aedifex/dependency/resolution.lux
+++ b/stdlib/source/test/aedifex/dependency/resolution.lux
@@ -368,16 +368,16 @@
dependee_pom (|> (\ ///.monoid identity)
(set@ #///.identity (#.Some dependee_artifact))
///pom.write
- try.assumed)
+ try.trusted)
depender_pom (|> (\ ///.monoid identity)
(set@ #///.identity (#.Some depender_artifact))
(set@ #///.dependencies (set.of_list ///dependency.hash (list dependee)))
///pom.write
- try.assumed)
+ try.trusted)
ignored_pom (|> (\ ///.monoid identity)
(set@ #///.identity (#.Some ignored_artifact))
///pom.write
- try.assumed)
+ try.trusted)
dependee_package (set@ #///package.pom
[dependee_pom
diff --git a/stdlib/source/test/aedifex/metadata/artifact.lux b/stdlib/source/test/aedifex/metadata/artifact.lux
index 7bcb0bd91..46ebf4eae 100644
--- a/stdlib/source/test/aedifex/metadata/artifact.lux
+++ b/stdlib/source/test/aedifex/metadata/artifact.lux
@@ -54,7 +54,7 @@
hour (\ ! map (n.% 24) random.nat)
minute (\ ! map (n.% 60) random.nat)
second (\ ! map (n.% 60) random.nat)]
- (in (try.assumed
+ (in (try.trusted
(do try.monad
[year (year.year year)
month (month.by_number month)
diff --git a/stdlib/source/test/aedifex/metadata/snapshot.lux b/stdlib/source/test/aedifex/metadata/snapshot.lux
index 5683178c4..d5dc8595e 100644
--- a/stdlib/source/test/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/test/aedifex/metadata/snapshot.lux
@@ -58,7 +58,7 @@
hour (\ ! map (n.% 24) random.nat)
minute (\ ! map (n.% 60) random.nat)
second (\ ! map (n.% 60) random.nat)]
- (in (try.assumed
+ (in (try.trusted
(do try.monad
[year (year.year year)
month (month.by_number month)
diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux
index b2c6790ee..a0e00fdd4 100644
--- a/stdlib/source/test/lux.lux
+++ b/stdlib/source/test/lux.lux
@@ -748,7 +748,7 @@
[left (random.ascii/lower 1)
mid (random.ascii/lower 1)
right (random.ascii/lower 1)
- .let [expected (text.join_with "" (list left mid right))]]
+ .let [expected (text.interposed "" (list left mid right))]]
(_.cover [/.$_ /._$]
(with_expansions [<left_association> (/._$ format
left
diff --git a/stdlib/source/test/lux/abstract/apply.lux b/stdlib/source/test/lux/abstract/apply.lux
index 26bb2cc7e..fcdf5d793 100644
--- a/stdlib/source/test/lux/abstract/apply.lux
+++ b/stdlib/source/test/lux/abstract/apply.lux
@@ -23,9 +23,9 @@
right random.nat]
(<| (_.covering /._)
($_ _.and
- (_.cover [/.compose]
+ (_.cover [/.composite]
(let [expected (n.+ left right)]
- (case (\ (/.compose maybe.monad maybe.apply list.apply) apply
+ (case (\ (/.composite maybe.monad maybe.apply list.apply) apply
(#.Some (list (n.+ left)))
(#.Some (list right)))
(^ (#.Some (list actual)))
diff --git a/stdlib/source/test/lux/abstract/codec.lux b/stdlib/source/test/lux/abstract/codec.lux
index fe3a58e71..e3fd09626 100644
--- a/stdlib/source/test/lux/abstract/codec.lux
+++ b/stdlib/source/test/lux/abstract/codec.lux
@@ -31,14 +31,14 @@
(def: codec
(Codec Text Bit)
- (/.compose json.codec ..json))
+ (/.composite json.codec ..json))
(def: .public test
Test
(do random.monad
[expected random.bit]
(<| (_.covering /._)
- (_.cover [/.compose]
+ (_.cover [/.composite]
(case (|> expected (\ ..codec encode) (\ ..codec decode))
(#try.Success actual)
(bit\= expected actual)
diff --git a/stdlib/source/test/lux/abstract/functor.lux b/stdlib/source/test/lux/abstract/functor.lux
index 252e9b999..522707615 100644
--- a/stdlib/source/test/lux/abstract/functor.lux
+++ b/stdlib/source/test/lux/abstract/functor.lux
@@ -51,8 +51,8 @@
_
false))
- (_.cover [/.Then /.compose]
- (case (\ (/.compose maybe.functor list.functor) map
+ (_.cover [/.Then /.composite]
+ (case (\ (/.composite maybe.functor list.functor) map
(n.+ shift)
(#.Some (list left)))
(^ (#.Some (list actual)))
diff --git a/stdlib/source/test/lux/abstract/monoid.lux b/stdlib/source/test/lux/abstract/monoid.lux
index 98c33068a..75eee67c6 100644
--- a/stdlib/source/test/lux/abstract/monoid.lux
+++ b/stdlib/source/test/lux/abstract/monoid.lux
@@ -23,8 +23,8 @@
intR random.int]
(<| (_.covering /._)
($_ _.and
- (_.cover [/.compose]
- (let [[natLR intLR] (\ (/.compose nat.addition int.multiplication) compose
+ (_.cover [/.composite]
+ (let [[natLR intLR] (\ (/.composite nat.addition int.multiplication) compose
[natL intL] [natR intR])]
(and (nat.= (\ nat.addition compose natL natR)
natLR)
diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux
index 40cc7d703..a57e3bcd6 100644
--- a/stdlib/source/test/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux
@@ -100,8 +100,8 @@
(do {! random.monad}
[repetitions (|> random.nat (\ ! map (|>> (n.% 100) (n.max 10))))
.let [resource (atom.atom "")
- expected_As (text.join_with "" (list.repeated repetitions "A"))
- expected_Bs (text.join_with "" (list.repeated repetitions "B"))
+ expected_As (text.joined (list.repeated repetitions "A"))
+ expected_Bs (text.joined (list.repeated repetitions "B"))
mutex (/.mutex [])
processA (<| (/.synchronize! mutex)
io.io
@@ -156,13 +156,13 @@
false)))
(do {! random.monad}
[limit (\ ! map (|>> (n.% 9) inc) random.nat)
- .let [barrier (/.barrier (maybe.assume (/.limit limit)))
+ .let [barrier (/.barrier (maybe.trusted (/.limit limit)))
resource (atom.atom "")]]
(in (do {! async.monad}
[.let [suffix "_"
expected_ending (|> suffix
(list.repeated limit)
- (text.join_with ""))
+ text.joined)
expected_ids (enum.range n.enum 0 (dec limit))]
_ (|> expected_ids
(list\map (function (_ id)
diff --git a/stdlib/source/test/lux/control/continuation.lux b/stdlib/source/test/lux/control/continuation.lux
index 03f3ae2c3..4844e521f 100644
--- a/stdlib/source/test/lux/control/continuation.lux
+++ b/stdlib/source/test/lux/control/continuation.lux
@@ -46,17 +46,17 @@
(_.cover [/.result]
(n.= sample (/.result (_\in sample))))
- (_.cover [/.call/cc]
+ (_.cover [/.with_current]
(n.= (n.* 2 sample)
(/.result (do {! /.monad}
- [value (/.call/cc
- (function (_ k)
- (do !
- [temp (k sample)]
- ... If this code where to run,
- ... the output would be
- ... (n.* 4 sample)
- (k temp))))]
+ [value (/.with_current
+ (function (_ k)
+ (do !
+ [temp (k sample)]
+ ... If this code where to run,
+ ... the output would be
+ ... (n.* 4 sample)
+ (k temp))))]
(in (n.* 2 value))))))
(_.cover [/.portal]
(n.= (n.+ 100 sample)
@@ -84,13 +84,13 @@
(visit output)))))]
(list\= elems
(/.result (/.reset (visit elems))))))
- (_.cover [/.continue]
- (/.continue (same? sample)
- (: (/.Cont Nat Bit)
- (function (_ next)
- (next sample)))))
+ (_.cover [/.continued]
+ (/.continued (same? sample)
+ (: (/.Cont Nat Bit)
+ (function (_ next)
+ (next sample)))))
(_.cover [/.pending]
- (/.continue (same? sample)
- (: (/.Cont Nat Bit)
- (/.pending sample))))
+ (/.continued (same? sample)
+ (: (/.Cont Nat Bit)
+ (/.pending sample))))
)))
diff --git a/stdlib/source/test/lux/control/function.lux b/stdlib/source/test/lux/control/function.lux
index 01da979e6..369a018e0 100644
--- a/stdlib/source/test/lux/control/function.lux
+++ b/stdlib/source/test/lux/control/function.lux
@@ -44,9 +44,9 @@
(_.cover [/.identity]
(n.= expected
(/.identity expected)))
- (_.cover [/.compose]
+ (_.cover [/.composite]
(n.= (f0 (f1 expected))
- ((/.compose f0 f1) expected)))
+ ((/.composite f0 f1) expected)))
(_.cover [/.constant]
(n.= expected
((/.constant expected) dummy)))
diff --git a/stdlib/source/test/lux/control/maybe.lux b/stdlib/source/test/lux/control/maybe.lux
index 5d9a04a0b..6f4213268 100644
--- a/stdlib/source/test/lux/control/maybe.lux
+++ b/stdlib/source/test/lux/control/maybe.lux
@@ -49,10 +49,10 @@
[left random.nat
right random.nat
.let [expected (n.+ left right)]]
- (let [lift (/.lift io.monad)]
- (_.cover [/.with /.lift]
+ (let [lifted (/.lifted io.monad)]
+ (_.cover [/.with /.lifted]
(|> (io.run! (do (/.with io.monad)
- [a (lift (io\in left))
+ [a (lifted (io\in left))
b (in right)]
(in (n.+ a b))))
(case> (#.Some actual)
@@ -71,8 +71,8 @@
(#.Some value))))))
(do random.monad
[value random.nat]
- (_.cover [/.assume]
- (same? value (/.assume (#.Some value)))))
+ (_.cover [/.trusted]
+ (same? value (/.trusted (#.Some value)))))
(do random.monad
[value random.nat]
(_.cover [/.list]
diff --git a/stdlib/source/test/lux/control/parser.lux b/stdlib/source/test/lux/control/parser.lux
index bb81f4383..f45ba2111 100644
--- a/stdlib/source/test/lux/control/parser.lux
+++ b/stdlib/source/test/lux/control/parser.lux
@@ -368,12 +368,12 @@
(|> (list)
(/.result (/.failure failure))
(should_fail failure)))
- (_.cover [/.lift]
+ (_.cover [/.lifted]
(and (|> (list)
- (/.result (/.lift (#try.Success expected)))
+ (/.result (/.lifted (#try.Success expected)))
(match actual (n.= expected actual)))
(|> (list)
- (/.result (/.lift (#try.Failure failure)))
+ (/.result (/.lifted (#try.Failure failure)))
(should_fail failure))))
(_.cover [/.assertion]
(and (|> (list (code.bit #1) (code.int +123))
diff --git a/stdlib/source/test/lux/control/parser/text.lux b/stdlib/source/test/lux/control/parser/text.lux
index 35c509e00..7be2416d0 100644
--- a/stdlib/source/test/lux/control/parser/text.lux
+++ b/stdlib/source/test/lux/control/parser/text.lux
@@ -157,11 +157,11 @@
(random.set n.hash num_options)
(\ ! map (|>> set.list
(list\map text.of_char)
- (text.join_with ""))))
+ text.joined)))
expected (\ ! map (function (_ value)
(|> options
(text.char (n.% num_options value))
- maybe.assume))
+ maybe.trusted))
random.nat)
invalid (random.only (function (_ char)
(not (text.contains? (text.of_char char) options)))
@@ -183,11 +183,11 @@
(random.set n.hash num_options)
(\ ! map (|>> set.list
(list\map text.of_char)
- (text.join_with ""))))
+ text.joined)))
invalid (\ ! map (function (_ value)
(|> options
(text.char (n.% num_options value))
- maybe.assume))
+ maybe.trusted))
random.nat)
expected (random.only (function (_ char)
(not (text.contains? (text.of_char char) options)))
diff --git a/stdlib/source/test/lux/control/reader.lux b/stdlib/source/test/lux/control/reader.lux
index 9b17a19fa..78ea0d961 100644
--- a/stdlib/source/test/lux/control/reader.lux
+++ b/stdlib/source/test/lux/control/reader.lux
@@ -49,10 +49,10 @@
(n.= (n.* factor sample)
(/.result sample (/.local (n.* factor) /.read))))
(let [(^open "io\.") io.monad]
- (_.cover [/.with /.lift]
+ (_.cover [/.with /.lifted]
(|> (: (/.Reader Any (IO Nat))
(do (/.with io.monad)
- [a (/.lift (io\in sample))
+ [a (/.lifted (io\in sample))
b (in factor)]
(in (n.* b a))))
(/.result [])
diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux
index 4f135a57d..caabbadf6 100644
--- a/stdlib/source/test/lux/control/region.lux
+++ b/stdlib/source/test/lux/control/region.lux
@@ -172,14 +172,14 @@
(..throws? /.clean_up_error outcome))
(n.= expected_clean_ups
actual_clean_ups))))))
- (_.cover [/.lift]
+ (_.cover [/.lifted]
(thread.result
(do {! thread.monad}
[clean_up_counter (thread.box 0)
.let [//@ !]
outcome (/.run! !
(do (/.monad !)
- [_ (/.lift //@ (thread.write! expected_clean_ups clean_up_counter))]
+ [_ (/.lifted //@ (thread.write! expected_clean_ups clean_up_counter))]
(in [])))
actual_clean_ups (thread.read! clean_up_counter)]
(in (and (..success? outcome)
diff --git a/stdlib/source/test/lux/control/state.lux b/stdlib/source/test/lux/control/state.lux
index 3f2123211..864c16bd9 100644
--- a/stdlib/source/test/lux/control/state.lux
+++ b/stdlib/source/test/lux/control/state.lux
@@ -108,10 +108,10 @@
left random.nat
right random.nat]
(let [(^open "io\.") io.monad]
- (_.cover [/.+State /.with /.lift /.result']
+ (_.cover [/.+State /.with /.lifted /.result']
(|> (: (/.+State io.IO Nat Nat)
(do (/.with io.monad)
- [a (/.lift io.monad (io\in left))
+ [a (/.lifted io.monad (io\in left))
b (in right)]
(in (n.+ a b))))
(/.result' state)
diff --git a/stdlib/source/test/lux/control/try.lux b/stdlib/source/test/lux/control/try.lux
index 3c030bdcc..55bcc0b4f 100644
--- a/stdlib/source/test/lux/control/try.lux
+++ b/stdlib/source/test/lux/control/try.lux
@@ -55,9 +55,9 @@
(_.for [/.monad]
($monad.spec ..injection ..comparison /.monad))
- (_.cover [/.assumed]
+ (_.cover [/.trusted]
(n.= expected
- (/.assumed (#/.Success expected))))
+ (/.trusted (#/.Success expected))))
(_.cover [/.of_maybe]
(case [(/.of_maybe (#.Some expected))
(/.of_maybe #.None)]
diff --git a/stdlib/source/test/lux/control/writer.lux b/stdlib/source/test/lux/control/writer.lux
index 9d43ef5f8..5ef2c76c4 100644
--- a/stdlib/source/test/lux/control/writer.lux
+++ b/stdlib/source/test/lux/control/writer.lux
@@ -50,11 +50,11 @@
(_.cover [/.write]
(text\= log
(product.left (/.write log))))
- (_.cover [/.with /.lift]
- (let [lift (/.lift text.monoid io.monad)
+ (_.cover [/.with /.lifted]
+ (let [lifted (/.lifted text.monoid io.monad)
(^open "io\.") io.monad]
(|> (do (/.with text.monoid io.monad)
- [a (lift (io\in left))
+ [a (lifted (io\in left))
b (in right)]
(in (n.+ a b)))
io.run!
diff --git a/stdlib/source/test/lux/data/binary.lux b/stdlib/source/test/lux/data/binary.lux
index aab56834f..372aed7de 100644
--- a/stdlib/source/test/lux/data/binary.lux
+++ b/stdlib/source/test/lux/data/binary.lux
@@ -38,7 +38,7 @@
(if (n.< size idx)
(do random.monad
[byte random.nat]
- (exec (try.assumed (/.write/8! idx byte output))
+ (exec (try.trusted (/.write/8! idx byte output))
(recur (inc idx))))
(\ random.monad in output)))))
@@ -113,7 +113,7 @@
(_.cover [/.read/64! /.write/64!]
(..binary_io 3 /.read/64! /.write/64! value))))
(_.cover [/.slice]
- (let [random_slice (try.assumed (/.slice offset length sample))
+ (let [random_slice (try.trusted (/.slice offset length sample))
idxs (: (List Nat)
(case length
0 (list)
diff --git a/stdlib/source/test/lux/data/collection/dictionary.lux b/stdlib/source/test/lux/data/collection/dictionary.lux
index 82e421d28..080e09001 100644
--- a/stdlib/source/test/lux/data/collection/dictionary.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary.lux
@@ -174,7 +174,7 @@
cannot_put_old_keys!
(or (n.= 0 size)
- (let [first_key (|> dict /.keys list.head maybe.assume)]
+ (let [first_key (|> dict /.keys list.head maybe.trusted)]
(case (/.has' first_key test_val dict)
(#try.Success _)
false
@@ -239,13 +239,13 @@
(_.cover [/.re_bound]
(or (n.= 0 size)
- (let [first_key (|> dict /.keys list.head maybe.assume)
+ (let [first_key (|> dict /.keys list.head maybe.trusted)
rebound (/.re_bound first_key non_key dict)]
(and (n.= (/.size dict) (/.size rebound))
(/.key? rebound non_key)
(not (/.key? rebound first_key))
- (n.= (maybe.assume (/.value first_key dict))
- (maybe.assume (/.value non_key rebound)))))))
+ (n.= (maybe.trusted (/.value first_key dict))
+ (maybe.trusted (/.value non_key rebound)))))))
)))
(def: .public test
diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux
index ce86a80c7..8ba430845 100644
--- a/stdlib/source/test/lux/data/collection/list.lux
+++ b/stdlib/source/test/lux/data/collection/list.lux
@@ -68,12 +68,12 @@
(do {! random.monad}
[parameter random.nat
subject random.nat]
- (let [lift (/.lift io.monad)
+ (let [lifted (/.lifted io.monad)
(^open "io\.") io.monad
expected (n.+ parameter subject)]
- (_.cover [/.with /.lift]
+ (_.cover [/.with /.lifted]
(|> (io.run! (do (/.with io.monad)
- [a (lift (io\in parameter))
+ [a (lifted (io\in parameter))
b (in subject)]
(in (n.+ a b))))
(case> (^ (list actual))
diff --git a/stdlib/source/test/lux/data/collection/row.lux b/stdlib/source/test/lux/data/collection/row.lux
index 3ae89efba..2515f284f 100644
--- a/stdlib/source/test/lux/data/collection/row.lux
+++ b/stdlib/source/test/lux/data/collection/row.lux
@@ -98,16 +98,16 @@
(#try.Failure error)
false))
- (_.cover [/.put]
+ (_.cover [/.has]
(<| (try.else false)
(do try.monad
- [sample (/.put good_index non_member sample)
+ [sample (/.has good_index non_member sample)
actual (/.item good_index sample)]
(in (same? non_member actual)))))
(_.cover [/.revised]
(<| (try.else false)
(do try.monad
- [sample (/.put good_index non_member sample)
+ [sample (/.has good_index non_member sample)
sample (/.revised good_index inc sample)
actual (/.item good_index sample)]
(in (n.= (inc non_member) actual)))))
@@ -124,7 +124,7 @@
(#try.Failure error)
(exception.match? /.index_out_of_bounds error))))]
(and (fails! (/.item bad_index sample))
- (fails! (/.put bad_index non_member sample))
+ (fails! (/.has bad_index non_member sample))
(fails! (/.revised bad_index inc sample)))))
))
)))
diff --git a/stdlib/source/test/lux/data/collection/sequence.lux b/stdlib/source/test/lux/data/collection/sequence.lux
index 19183f1b1..ebac1772b 100644
--- a/stdlib/source/test/lux/data/collection/sequence.lux
+++ b/stdlib/source/test/lux/data/collection/sequence.lux
@@ -29,6 +29,15 @@
(/.first 100 reference)
(/.first 100 subject))))
+(def: (iterations step)
+ (All [a]
+ (-> (-> a a)
+ (-> a (/.Sequence a))))
+ (/.iterations
+ (function (_ state)
+ (let [state' (step state)]
+ [state' state]))))
+
(def: .public test
Test
(<| (_.covering /._)
@@ -47,67 +56,67 @@
(_.for [/.comonad]
($comonad.spec /.repeated ..equivalence /.comonad))
- (_.cover [/.iterations /.item]
+ (_.cover [/.item]
(n.= (n.+ offset index)
- (/.item index (/.iterations inc offset))))
+ (/.item index (..iterations inc offset))))
(_.cover [/.repeated]
(n.= repeated
(/.item index (/.repeated repeated))))
(_.cover [/.first]
(list\= (enum.range n.enum offset (dec (n.+ size offset)))
- (/.first size (/.iterations inc offset))))
+ (/.first size (..iterations inc offset))))
(_.cover [/.after]
(list\= (enum.range n.enum offset (dec (n.+ size offset)))
- (/.first size (/.after offset (/.iterations inc 0)))))
+ (/.first size (/.after offset (..iterations inc 0)))))
(_.cover [/.split_at]
- (let [[drops takes] (/.split_at size (/.iterations inc 0))]
+ (let [[drops takes] (/.split_at size (..iterations inc 0))]
(and (list\= (enum.range n.enum 0 (dec size))
drops)
(list\= (enum.range n.enum size (dec (n.* 2 size)))
(/.first size takes)))))
(_.cover [/.while]
(list\= (enum.range n.enum 0 (dec size))
- (/.while (n.< size) (/.iterations inc 0))))
+ (/.while (n.< size) (..iterations inc 0))))
(_.cover [/.until]
(list\= (enum.range n.enum offset (dec (n.+ size offset)))
(/.while (n.< (n.+ size offset))
- (/.until (n.< offset) (/.iterations inc 0)))))
+ (/.until (n.< offset) (..iterations inc 0)))))
(_.cover [/.split_when]
- (let [[drops takes] (/.split_when (n.= size) (/.iterations inc 0))]
+ (let [[drops takes] (/.split_when (n.= size) (..iterations inc 0))]
(and (list\= (enum.range n.enum 0 (dec size))
drops)
(list\= (enum.range n.enum size (dec (n.* 2 size)))
(/.while (n.< (n.* 2 size)) takes)))))
(_.cover [/.head]
(n.= offset
- (/.head (/.iterations inc offset))))
+ (/.head (..iterations inc offset))))
(_.cover [/.tail]
(list\= (enum.range n.enum (inc offset) (n.+ size offset))
- (/.first size (/.tail (/.iterations inc offset)))))
+ (/.first size (/.tail (..iterations inc offset)))))
(_.cover [/.only]
(list\= (list\map (n.* 2) (enum.range n.enum 0 (dec size)))
- (/.first size (/.only n.even? (/.iterations inc 0)))))
+ (/.first size (/.only n.even? (..iterations inc 0)))))
(_.cover [/.partition]
- (let [[evens odds] (/.partition n.even? (/.iterations inc 0))]
+ (let [[evens odds] (/.partition n.even? (..iterations inc 0))]
(and (n.= (n.* 2 offset)
(/.item offset evens))
(n.= (inc (n.* 2 offset))
(/.item offset odds)))))
- (_.cover [/.unfold]
+ (_.cover [/.iterations]
(let [(^open "/\.") /.functor
(^open "list\.") (list.equivalence text.equivalence)]
(list\= (/.first size
- (/\map %.nat (/.iterations inc offset)))
+ (/\map %.nat (..iterations inc offset)))
(/.first size
- (/.unfold (function (_ n) [(inc n) (%.nat n)])
- offset)))))
+ (/.iterations (function (_ n) [(inc n) (%.nat n)])
+ offset)))))
(_.cover [/.cycle]
(let [cycle (list& cycle_start cycle_next)]
(list\= (list.joined (list.repeated size cycle))
(/.first (n.* size (list.size cycle))
(/.cycle [cycle_start cycle_next])))))
(_.cover [/.^sequence&]
- (let [(/.^sequence& first second third next) (/.iterations inc offset)]
+ (let [(/.^sequence& first second third next) (..iterations inc offset)]
(and (n.= offset first)
(n.= (n.+ 1 offset) second)
(n.= (n.+ 2 offset) third))))
diff --git a/stdlib/source/test/lux/data/format/tar.lux b/stdlib/source/test/lux/data/format/tar.lux
index 0c43ada46..fe0083c95 100644
--- a/stdlib/source/test/lux/data/format/tar.lux
+++ b/stdlib/source/test/lux/data/format/tar.lux
@@ -164,7 +164,7 @@
chunks (\ ! map (n.% 100) random.nat)
.let [content (|> chunk
(list.repeated chunks)
- (text.join_with "")
+ text.joined
(\ utf8.codec encode))]]
(`` ($_ _.and
(~~ (template [<type> <tag>]
diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux
index 4fef01a10..0ce833e92 100644
--- a/stdlib/source/test/lux/data/format/xml.lux
+++ b/stdlib/source/test/lux/data/format/xml.lux
@@ -37,7 +37,7 @@
(Random Nat)
(do {! random.monad}
[idx (|> random.nat (\ ! map (n.% (text.size char_range))))]
- (in (maybe.assume (text.char idx char_range)))))
+ (in (maybe.trusted (text.char idx char_range)))))
(def: (size bottom top)
(-> Nat Nat (Random Nat))
diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux
index 1efa4ebfe..aa012a5ae 100644
--- a/stdlib/source/test/lux/data/text.lux
+++ b/stdlib/source/test/lux/data/text.lux
@@ -195,15 +195,15 @@
(_.cover [/.joined]
(n.= (set.size characters)
(/.size (/.joined (set.list characters)))))
- (_.cover [/.join_with /.all_split_by]
+ (_.cover [/.interposed /.all_split_by]
(and (|> (set.list characters)
- (/.join_with separator)
+ (/.interposed separator)
(/.all_split_by separator)
(set.of_list /.hash)
(\ set.equivalence = characters))
(\ /.equivalence =
(/.joined (set.list characters))
- (/.join_with "" (set.list characters)))))
+ (/.interposed "" (set.list characters)))))
(_.cover [/.replaced/1]
(\ /.equivalence =
(\ /.monoid compose post static)
diff --git a/stdlib/source/test/lux/data/text/encoding.lux b/stdlib/source/test/lux/data/text/encoding.lux
index 34d6ee08d..46dba6ded 100644
--- a/stdlib/source/test/lux/data/text/encoding.lux
+++ b/stdlib/source/test/lux/data/text/encoding.lux
@@ -215,7 +215,7 @@
(let [options (list.size ..all_encodings)]
(do {! random.monad}
[choice (\ ! map (n.% options) random.nat)]
- (in (maybe.assume (list.item choice ..all_encodings))))))
+ (in (maybe.trusted (list.item choice ..all_encodings))))))
(def: .public test
Test
diff --git a/stdlib/source/test/lux/data/text/format.lux b/stdlib/source/test/lux/data/text/format.lux
index f2887f530..24746c45d 100644
--- a/stdlib/source/test/lux/data/text/format.lux
+++ b/stdlib/source/test/lux/data/text/format.lux
@@ -160,7 +160,7 @@
(text\= (/.list /.nat members)
(|> members
(list\map /.nat)
- (text.join_with " ")
+ (text.interposed " ")
list
(/.list (|>>))))))
(do random.monad
diff --git a/stdlib/source/test/lux/data/text/unicode/set.lux b/stdlib/source/test/lux/data/text/unicode/set.lux
index 6efe6cb14..84ebef798 100644
--- a/stdlib/source/test/lux/data/text/unicode/set.lux
+++ b/stdlib/source/test/lux/data/text/unicode/set.lux
@@ -64,9 +64,9 @@
(_.cover [/.member?]
(bit\= (block.within? block inside)
(/.member? (/.set [block (list)]) inside)))
- (_.cover [/.compose]
- (let [composed (/.compose (/.set [left (list)])
- (/.set [right (list)]))]
+ (_.cover [/.composite]
+ (let [composed (/.composite (/.set [left (list)])
+ (/.set [right (list)]))]
(and (n.= (n.min (block.start left)
(block.start right))
(/.start composed))
diff --git a/stdlib/source/test/lux/debug.lux b/stdlib/source/test/lux/debug.lux
index 2f94947a5..151dd34c2 100644
--- a/stdlib/source/test/lux/debug.lux
+++ b/stdlib/source/test/lux/debug.lux
@@ -211,7 +211,7 @@
(text\= (|> (list sample_bit sample_int sample_frac sample_text)
(: (List Any))
(list\map /.inspection)
- (text.join_with " ")
+ (text.interposed " ")
(text.enclosed ["[" "]"]))
(/.inspection [sample_bit sample_int sample_frac sample_text]))
)))))
diff --git a/stdlib/source/test/lux/documentation.lux b/stdlib/source/test/lux/documentation.lux
index b8a34a752..72417f5c5 100644
--- a/stdlib/source/test/lux/documentation.lux
+++ b/stdlib/source/test/lux/documentation.lux
@@ -2,13 +2,15 @@
[library
[lux #*
["_" test (#+ Test)]
+ ["." meta]
[control
["." try]
["." exception]
[parser
["<.>" code]]]
[data
- ["." text ("#\." equivalence)]
+ ["." text ("#\." equivalence)
+ ["%" format]]
[format
["md" markdown]]]
["." macro
@@ -27,67 +29,80 @@
(#try.Success _)
(#try.Failure "OOPS!"))))
-(template.with_locals [g!default
- g!description]
- (as_is (def: g!default
- Nat
- 123)
+(syntax: (description [])
+ (\ meta.monad map
+ (|>> %.nat code.text list)
+ meta.seed))
- (`` (/.documentation: /.documentation:
- (~~ (template.text [g!description]))))
+(template.with_locals [g!default]
+ (with_expansions ['definition_description' (..description)
+ 'sub_description' (..description)
+ 'super_description' (..description)]
+ (as_is (def: g!default
+ Nat
+ 123)
- (def: .public test
- Test
- (<| (_.covering /._)
- ($_ _.and
- (_.for [/.Definition]
- ($_ _.and
- (_.cover [/.default]
- (let [definition (`` (/.default (~~ (template.identifier [.._] [g!default]))))]
- (and (|> definition
+ (/.documentation: /.documentation:
+ 'definition_description')
+
+ (def: .public test
+ Test
+ (<| (_.covering /._)
+ ($_ _.and
+ (_.for [/.Definition]
+ ($_ _.and
+ (_.cover [/.default]
+ (let [definition (`` (/.default (~~ (template.identifier [.._] [g!default]))))]
+ (and (|> definition
+ (get@ #/.definition)
+ (text\= (template.text [g!default])))
+ (|> definition
+ (get@ #/.documentation)
+ md.markdown
+ (text\= "")
+ not))))
+ (_.cover [/.documentation:]
+ (and (|> ..documentation:
(get@ #/.definition)
- (text\= (template.text [g!default])))
- (|> definition
+ (text\= (template.text [/.documentation:])))
+ (|> ..documentation:
(get@ #/.documentation)
md.markdown
- (text\= "")
- not))))
- (_.cover [/.documentation:]
- (and (|> ..documentation:
- (get@ #/.definition)
- (text\= (template.text [/.documentation:])))
- (|> ..documentation:
- (get@ #/.documentation)
- md.markdown
- (text.contains? (template.text [g!description]))
- not)))
- ))
- (_.for [/.Module]
- ($_ _.and
- (_.cover [/.module /.documentation]
- (let [sub (/.module /._
- []
- [])
- super (/.module .._
- [..documentation:]
- [sub])]
- (and (text.contains? (/.documentation sub)
- (/.documentation super))
- (text.contains? (md.markdown (get@ #/.documentation ..documentation:))
- (/.documentation super)))))
- ))
- (_.cover [/.unqualified_identifier]
- (`` (and (~~ (template [<example>]
- [(<| (text.contains? (get@ #exception.label /.unqualified_identifier))
- macro_error
- <example>)]
+ (text.contains? 'definition_description'))))
+ ))
+ (_.for [/.Module]
+ ($_ _.and
+ (_.cover [/.module /.documentation]
+ (let [sub (`` (/.module /._
+ (~~ (template.text ['sub_description']))
+ []
+ []))
+ super (`` (/.module .._
+ (~~ (template.text ['super_description']))
+ [..documentation:]
+ [sub]))]
+ (and (text.contains? (template.text ['sub_description'])
+ (/.documentation sub))
+ (text.contains? (/.documentation sub)
+ (/.documentation super))
+ (text.contains? (template.text ['super_description'])
+ (/.documentation super))
+ (text.contains? (md.markdown (get@ #/.documentation ..documentation:))
+ (/.documentation super)))))
+ ))
+ (_.cover [/.unqualified_identifier]
+ (`` (and (~~ (template [<example>]
+ [(<| (text.contains? (get@ #exception.label /.unqualified_identifier))
+ macro_error
+ <example>)]
- [(/.default g!default)]
- [(/.documentation: g!default
- (~~ (template.text [g!description])))]
- [(/.module g!default
- [..documentation:]
- [sub])]
- )))))
- ))))
+ [(/.default g!default)]
+ [(/.documentation: g!default
+ (~~ (template.text ['definition_description'])))]
+ [(/.module g!default
+ ""
+ [..documentation:]
+ [sub])]
+ )))))
+ )))))
)
diff --git a/stdlib/source/test/lux/extension.lux b/stdlib/source/test/lux/extension.lux
index e28e013cc..68a945f9c 100644
--- a/stdlib/source/test/lux/extension.lux
+++ b/stdlib/source/test/lux/extension.lux
@@ -56,45 +56,45 @@
(as_is
... Analysis
- (analysis: (..my_analysis self phase archive {pass_through <code>.any})
+ (analysis: (..my_analysis self phase archive [pass_through <code>.any])
(phase archive pass_through))
... Synthesis
- (analysis: (..my_synthesis self phase archive {parameters (<>.some <code>.any)})
+ (analysis: (..my_synthesis self phase archive [parameters (<>.some <code>.any)])
(let [! phase.monad]
(|> parameters
(monad.map ! (phase archive))
(\ ! map (|>> (#analysis.Extension self))))))
- (synthesis: (..my_synthesis self phase archive {pass_through <analysis>.any})
+ (synthesis: (..my_synthesis self phase archive [pass_through <analysis>.any])
(phase archive pass_through))
... Generation
- (analysis: (..my_generation self phase archive {parameters (<>.some <code>.any)})
+ (analysis: (..my_generation self phase archive [parameters (<>.some <code>.any)])
(let [! phase.monad]
(|> parameters
(monad.map ! (phase archive))
(\ ! map (|>> (#analysis.Extension self))))))
- (synthesis: (..my_generation self phase archive {parameters (<>.some <analysis>.any)})
+ (synthesis: (..my_generation self phase archive [parameters (<>.some <analysis>.any)])
(let [! phase.monad]
(|> parameters
(monad.map ! (phase archive))
(\ ! map (|>> (#synthesis.Extension self))))))
- (generation: (..my_generation self phase archive {pass_through <synthesis>.any})
+ (generation: (..my_generation self phase archive [pass_through <synthesis>.any])
(for {@.jvm
(\ phase.monad map (|>> #jvm.Embedded row.row)
(phase archive pass_through))}
(phase archive pass_through)))
- (analysis: (..dummy_generation self phase archive)
+ (analysis: (..dummy_generation self phase archive [])
(\ phase.monad in (#analysis.Extension self (list))))
- (synthesis: (..dummy_generation self phase archive)
+ (synthesis: (..dummy_generation self phase archive [])
(\ phase.monad in (#synthesis.Extension self (list))))
- (generation: (..dummy_generation self phase archive)
+ (generation: (..dummy_generation self phase archive [])
(\ phase.monad in
(for {@.jvm
(row.row (#jvm.Constant (#jvm.LDC (#jvm.String self))))
@@ -107,7 +107,7 @@
@.scheme (scheme.string self)})))
... Directive
- (directive: (..my_directive self phase archive {parameters (<>.some <code>.any)})
+ (directive: (..my_directive self phase archive [parameters (<>.some <code>.any)])
(do phase.monad
[.let [_ (debug.log! (format "Successfully installed directive " (%.text self) "!"))]]
(in directive.no_requirements)))
diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux
index 24c4c6f11..55c812d72 100644
--- a/stdlib/source/test/lux/ffi.jvm.lux
+++ b/stdlib/source/test/lux/ffi.jvm.lux
@@ -199,10 +199,10 @@
))
(_.cover [/.cannot_cast_to_non_object]
(text.contains? (get@ #exception.label /.cannot_cast_to_non_object)
- (macro_error (/.:cast boolean (: /.Boolean boolean)))))
- (_.cover [/.:cast]
+ (macro_error (/.:as boolean (: /.Boolean boolean)))))
+ (_.cover [/.:as]
(|> string
- (/.:cast java/lang/Object)
+ (/.:as java/lang/Object)
(same? (:as java/lang/Object string))))
(_.cover [/.type]
(and (and (type\= /.Boolean (/.type java/lang/Boolean))
diff --git a/stdlib/source/test/lux/locale/language.lux b/stdlib/source/test/lux/locale/language.lux
index 9c272f1bc..29389ae9f 100644
--- a/stdlib/source/test/lux/locale/language.lux
+++ b/stdlib/source/test/lux/locale/language.lux
@@ -283,7 +283,7 @@
(do {! random.monad}
[choice (\ ! map (n.% (list.size options))
random.nat)]
- (in (maybe.assume (list.item choice options))))))
+ (in (maybe.trusted (list.item choice options))))))
(def: .public test
Test
diff --git a/stdlib/source/test/lux/locale/territory.lux b/stdlib/source/test/lux/locale/territory.lux
index 2388bdecf..fa7aff326 100644
--- a/stdlib/source/test/lux/locale/territory.lux
+++ b/stdlib/source/test/lux/locale/territory.lux
@@ -209,7 +209,7 @@
(do {! random.monad}
[choice (\ ! map (n.% (list.size options))
random.nat)]
- (in (maybe.assume (list.item choice options))))))
+ (in (maybe.trusted (list.item choice options))))))
(def: .public test
Test
diff --git a/stdlib/source/test/lux/macro.lux b/stdlib/source/test/lux/macro.lux
index 3ac184b75..93f2f8530 100644
--- a/stdlib/source/test/lux/macro.lux
+++ b/stdlib/source/test/lux/macro.lux
@@ -29,7 +29,6 @@
["." / #_
["#." code]
["#." local]
- ["#." poly]
["#." syntax]
["#." template]])
@@ -184,6 +183,5 @@
/code.test
/local.test
/syntax.test
- /poly.test
/template.test
)))
diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux
index 1403d6ee8..5c84f9c38 100644
--- a/stdlib/source/test/lux/meta.lux
+++ b/stdlib/source/test/lux/meta.lux
@@ -930,11 +930,11 @@
(do random.monad
[expected_value random.nat
expected_error (random.ascii/upper 1)]
- (_.cover [/.lift]
+ (_.cover [/.lifted]
(and (|> expected_error
#try.Failure
(: (Try Nat))
- /.lift
+ /.lifted
(/.result expected_lux)
(!expect (^multi (#try.Failure actual)
(text\= (location.with expected_location expected_error)
@@ -942,7 +942,7 @@
(|> expected_value
#try.Success
(: (Try Nat))
- /.lift
+ /.lifted
(/.result expected_lux)
(!expect (^multi (#try.Success actual)
(same? expected_value actual)))))))
diff --git a/stdlib/source/test/lux/target/jvm.lux b/stdlib/source/test/lux/target/jvm.lux
index f503c8779..ae4685790 100644
--- a/stdlib/source/test/lux/target/jvm.lux
+++ b/stdlib/source/test/lux/target/jvm.lux
@@ -306,13 +306,13 @@
Test
(do {! random.monad}
[expected (\ ! map (i64.and (i64.mask <bits>)) random.nat)]
- (<| (_.lift <message>)
+ (<| (_.lifted <message>)
(..bytecode (for {@.old
(|>> (:as <type>) <to_long> ("jvm leq" expected))
@.jvm
(|>> (:as <type>) <to_long> "jvm object cast" ("jvm long =" ("jvm object cast" (:as java/lang/Long expected))))}))
(do /.monad
- [_ (<push> (|> expected .int <signed> try.assumed))]
+ [_ (<push> (|> expected .int <signed> try.trusted))]
<wrap>))))]
[byte 7 java/lang/Byte /.bipush ..$Byte::wrap "BIPUSH" ffi.byte_to_long /signed.s1]
@@ -391,35 +391,35 @@
_ (..$Integer::literal parameter)]
instruction)))))
literal ($_ _.and
- (_.lift "ICONST_M1" (int (ffi.long_to_int (:as java/lang/Long -1)) /.iconst_m1))
- (_.lift "ICONST_0" (int (ffi.long_to_int (:as java/lang/Long +0)) /.iconst_0))
- (_.lift "ICONST_1" (int (ffi.long_to_int (:as java/lang/Long +1)) /.iconst_1))
- (_.lift "ICONST_2" (int (ffi.long_to_int (:as java/lang/Long +2)) /.iconst_2))
- (_.lift "ICONST_3" (int (ffi.long_to_int (:as java/lang/Long +3)) /.iconst_3))
- (_.lift "ICONST_4" (int (ffi.long_to_int (:as java/lang/Long +4)) /.iconst_4))
- (_.lift "ICONST_5" (int (ffi.long_to_int (:as java/lang/Long +5)) /.iconst_5))
- (_.lift "LDC_W/INTEGER"
- (do random.monad
- [expected ..$Integer::random]
- (int expected (..$Integer::literal expected)))))
+ (_.lifted "ICONST_M1" (int (ffi.long_to_int (:as java/lang/Long -1)) /.iconst_m1))
+ (_.lifted "ICONST_0" (int (ffi.long_to_int (:as java/lang/Long +0)) /.iconst_0))
+ (_.lifted "ICONST_1" (int (ffi.long_to_int (:as java/lang/Long +1)) /.iconst_1))
+ (_.lifted "ICONST_2" (int (ffi.long_to_int (:as java/lang/Long +2)) /.iconst_2))
+ (_.lifted "ICONST_3" (int (ffi.long_to_int (:as java/lang/Long +3)) /.iconst_3))
+ (_.lifted "ICONST_4" (int (ffi.long_to_int (:as java/lang/Long +4)) /.iconst_4))
+ (_.lifted "ICONST_5" (int (ffi.long_to_int (:as java/lang/Long +5)) /.iconst_5))
+ (_.lifted "LDC_W/INTEGER"
+ (do random.monad
+ [expected ..$Integer::random]
+ (int expected (..$Integer::literal expected)))))
arithmetic ($_ _.and
- (_.lift "IADD" (binary (int/2 "jvm iadd" "jvm int +") /.iadd))
- (_.lift "ISUB" (binary (int/2 "jvm isub" "jvm int -") /.isub))
- (_.lift "IMUL" (binary (int/2 "jvm imul" "jvm int *") /.imul))
- (_.lift "IDIV" (binary (int/2 "jvm idiv" "jvm int /") /.idiv))
- (_.lift "IREM" (binary (int/2 "jvm irem" "jvm int %") /.irem))
- (_.lift "INEG" (unary (function (_ value)
- ((int/2 "jvm isub" "jvm int -")
- value
- (ffi.long_to_int (:as java/lang/Long +0))))
- /.ineg)))
+ (_.lifted "IADD" (binary (int/2 "jvm iadd" "jvm int +") /.iadd))
+ (_.lifted "ISUB" (binary (int/2 "jvm isub" "jvm int -") /.isub))
+ (_.lifted "IMUL" (binary (int/2 "jvm imul" "jvm int *") /.imul))
+ (_.lifted "IDIV" (binary (int/2 "jvm idiv" "jvm int /") /.idiv))
+ (_.lifted "IREM" (binary (int/2 "jvm irem" "jvm int %") /.irem))
+ (_.lifted "INEG" (unary (function (_ value)
+ ((int/2 "jvm isub" "jvm int -")
+ value
+ (ffi.long_to_int (:as java/lang/Long +0))))
+ /.ineg)))
bitwise ($_ _.and
- (_.lift "IAND" (binary (int/2 "jvm iand" "jvm int and") /.iand))
- (_.lift "IOR" (binary (int/2 "jvm ior" "jvm int or") /.ior))
- (_.lift "IXOR" (binary (int/2 "jvm ixor" "jvm int xor") /.ixor))
- (_.lift "ISHL" (shift (int/2 "jvm ishl" "jvm int shl") /.ishl))
- (_.lift "ISHR" (shift (int/2 "jvm ishr" "jvm int shr") /.ishr))
- (_.lift "IUSHR" (shift (int/2 "jvm iushr" "jvm int ushr") /.iushr)))]
+ (_.lifted "IAND" (binary (int/2 "jvm iand" "jvm int and") /.iand))
+ (_.lifted "IOR" (binary (int/2 "jvm ior" "jvm int or") /.ior))
+ (_.lifted "IXOR" (binary (int/2 "jvm ixor" "jvm int xor") /.ixor))
+ (_.lifted "ISHL" (shift (int/2 "jvm ishl" "jvm int shl") /.ishl))
+ (_.lifted "ISHR" (shift (int/2 "jvm ishr" "jvm int shr") /.ishr))
+ (_.lifted "IUSHR" (shift (int/2 "jvm iushr" "jvm int ushr") /.iushr)))]
($_ _.and
(<| (_.context "literal")
literal)
@@ -470,53 +470,53 @@
_ (..$Integer::literal (ffi.long_to_int parameter))]
instruction)))))
literal ($_ _.and
- (_.lift "LCONST_0" (long (:as java/lang/Long +0) /.lconst_0))
- (_.lift "LCONST_1" (long (:as java/lang/Long +1) /.lconst_1))
- (_.lift "LDC2_W/LONG"
- (do random.monad
- [expected ..$Long::random]
- (long expected (..$Long::literal expected)))))
+ (_.lifted "LCONST_0" (long (:as java/lang/Long +0) /.lconst_0))
+ (_.lifted "LCONST_1" (long (:as java/lang/Long +1) /.lconst_1))
+ (_.lifted "LDC2_W/LONG"
+ (do random.monad
+ [expected ..$Long::random]
+ (long expected (..$Long::literal expected)))))
arithmetic ($_ _.and
- (_.lift "LADD" (binary (long/2 "jvm ladd" "jvm long +") /.ladd))
- (_.lift "LSUB" (binary (long/2 "jvm lsub" "jvm long -") /.lsub))
- (_.lift "LMUL" (binary (long/2 "jvm lmul" "jvm long *") /.lmul))
- (_.lift "LDIV" (binary (long/2 "jvm ldiv" "jvm long /") /.ldiv))
- (_.lift "LREM" (binary (long/2 "jvm lrem" "jvm long %") /.lrem))
- (_.lift "LNEG" (unary (function (_ value)
- ((long/2 "jvm lsub" "jvm long -")
- value
- (:as java/lang/Long +0)))
- /.lneg)))
+ (_.lifted "LADD" (binary (long/2 "jvm ladd" "jvm long +") /.ladd))
+ (_.lifted "LSUB" (binary (long/2 "jvm lsub" "jvm long -") /.lsub))
+ (_.lifted "LMUL" (binary (long/2 "jvm lmul" "jvm long *") /.lmul))
+ (_.lifted "LDIV" (binary (long/2 "jvm ldiv" "jvm long /") /.ldiv))
+ (_.lifted "LREM" (binary (long/2 "jvm lrem" "jvm long %") /.lrem))
+ (_.lifted "LNEG" (unary (function (_ value)
+ ((long/2 "jvm lsub" "jvm long -")
+ value
+ (:as java/lang/Long +0)))
+ /.lneg)))
bitwise ($_ _.and
- (_.lift "LAND" (binary (long/2 "jvm land" "jvm long and") /.land))
- (_.lift "LOR" (binary (long/2 "jvm lor" "jvm long or") /.lor))
- (_.lift "LXOR" (binary (long/2 "jvm lxor" "jvm long xor") /.lxor))
- (_.lift "LSHL" (shift (int+long/2 "jvm lshl" "jvm long shl") /.lshl))
- (_.lift "LSHR" (shift (int+long/2 "jvm lshr" "jvm long shr") /.lshr))
- (_.lift "LUSHR" (shift (int+long/2 "jvm lushr" "jvm long ushr") /.lushr)))
- comparison (_.lift "LCMP"
- (do random.monad
- [reference ..$Long::random
- subject ..$Long::random
- .let [expected (cond (i.= (:as Int reference) (:as Int subject))
- (:as java/lang/Long +0)
+ (_.lifted "LAND" (binary (long/2 "jvm land" "jvm long and") /.land))
+ (_.lifted "LOR" (binary (long/2 "jvm lor" "jvm long or") /.lor))
+ (_.lifted "LXOR" (binary (long/2 "jvm lxor" "jvm long xor") /.lxor))
+ (_.lifted "LSHL" (shift (int+long/2 "jvm lshl" "jvm long shl") /.lshl))
+ (_.lifted "LSHR" (shift (int+long/2 "jvm lshr" "jvm long shr") /.lshr))
+ (_.lifted "LUSHR" (shift (int+long/2 "jvm lushr" "jvm long ushr") /.lushr)))
+ comparison (_.lifted "LCMP"
+ (do random.monad
+ [reference ..$Long::random
+ subject ..$Long::random
+ .let [expected (cond (i.= (:as Int reference) (:as Int subject))
+ (:as java/lang/Long +0)
- (i.> (:as Int reference) (:as Int subject))
- (:as java/lang/Long +1)
+ (i.> (:as Int reference) (:as Int subject))
+ (:as java/lang/Long +1)
- ... (i.< (:as Int reference) (:as Int subject))
- (:as java/lang/Long -1))]]
- (<| (..bytecode (for {@.old
- (|>> (:as Int) (i.= expected))
-
- @.jvm
- (|>> (:as java/lang/Long) "jvm object cast" ("jvm long =" ("jvm object cast" expected)))}))
- (do /.monad
- [_ (..$Long::literal subject)
- _ (..$Long::literal reference)
- _ /.lcmp
- _ /.i2l]
- ..$Long::wrap))))]
+ ... (i.< (:as Int reference) (:as Int subject))
+ (:as java/lang/Long -1))]]
+ (<| (..bytecode (for {@.old
+ (|>> (:as Int) (i.= expected))
+
+ @.jvm
+ (|>> (:as java/lang/Long) "jvm object cast" ("jvm long =" ("jvm object cast" expected)))}))
+ (do /.monad
+ [_ (..$Long::literal subject)
+ _ (..$Long::literal reference)
+ _ /.lcmp
+ _ /.i2l]
+ ..$Long::wrap))))]
($_ _.and
(<| (_.context "literal")
literal)
@@ -569,24 +569,24 @@
_ (..$Float::literal parameter)]
instruction)))))
literal ($_ _.and
- (_.lift "FCONST_0" (float (ffi.double_to_float (:as java/lang/Double +0.0)) /.fconst_0))
- (_.lift "FCONST_1" (float (ffi.double_to_float (:as java/lang/Double +1.0)) /.fconst_1))
- (_.lift "FCONST_2" (float (ffi.double_to_float (:as java/lang/Double +2.0)) /.fconst_2))
- (_.lift "LDC_W/FLOAT"
- (do random.monad
- [expected ..$Float::random]
- (float expected (..$Float::literal expected)))))
+ (_.lifted "FCONST_0" (float (ffi.double_to_float (:as java/lang/Double +0.0)) /.fconst_0))
+ (_.lifted "FCONST_1" (float (ffi.double_to_float (:as java/lang/Double +1.0)) /.fconst_1))
+ (_.lifted "FCONST_2" (float (ffi.double_to_float (:as java/lang/Double +2.0)) /.fconst_2))
+ (_.lifted "LDC_W/FLOAT"
+ (do random.monad
+ [expected ..$Float::random]
+ (float expected (..$Float::literal expected)))))
arithmetic ($_ _.and
- (_.lift "FADD" (binary (float/2 "jvm fadd" "jvm float +") /.fadd))
- (_.lift "FSUB" (binary (float/2 "jvm fsub" "jvm float -") /.fsub))
- (_.lift "FMUL" (binary (float/2 "jvm fmul" "jvm float *") /.fmul))
- (_.lift "FDIV" (binary (float/2 "jvm fdiv" "jvm float /") /.fdiv))
- (_.lift "FREM" (binary (float/2 "jvm frem" "jvm float %") /.frem))
- (_.lift "FNEG" (unary (function (_ value)
- ((float/2 "jvm fsub" "jvm float -")
- value
- (ffi.double_to_float (:as java/lang/Double +0.0))))
- /.fneg)))
+ (_.lifted "FADD" (binary (float/2 "jvm fadd" "jvm float +") /.fadd))
+ (_.lifted "FSUB" (binary (float/2 "jvm fsub" "jvm float -") /.fsub))
+ (_.lifted "FMUL" (binary (float/2 "jvm fmul" "jvm float *") /.fmul))
+ (_.lifted "FDIV" (binary (float/2 "jvm fdiv" "jvm float /") /.fdiv))
+ (_.lifted "FREM" (binary (float/2 "jvm frem" "jvm float %") /.frem))
+ (_.lifted "FNEG" (unary (function (_ value)
+ ((float/2 "jvm fsub" "jvm float -")
+ value
+ (ffi.double_to_float (:as java/lang/Double +0.0))))
+ /.fneg)))
comparison (: (-> (Bytecode Any) (-> java/lang/Float java/lang/Float Bit) (Random Bit))
(function (_ instruction standard)
(do random.monad
@@ -618,8 +618,8 @@
@.jvm
("jvm float <" ("jvm object cast" subject) ("jvm object cast" reference))})))
comparison ($_ _.and
- (_.lift "FCMPL" (comparison /.fcmpl comparison_standard))
- (_.lift "FCMPG" (comparison /.fcmpg comparison_standard)))]
+ (_.lifted "FCMPL" (comparison /.fcmpl comparison_standard))
+ (_.lifted "FCMPG" (comparison /.fcmpg comparison_standard)))]
($_ _.and
(<| (_.context "literal")
literal)
@@ -666,23 +666,23 @@
_ (..$Double::literal parameter)]
instruction)))))
literal ($_ _.and
- (_.lift "DCONST_0" (double (:as java/lang/Double +0.0) /.dconst_0))
- (_.lift "DCONST_1" (double (:as java/lang/Double +1.0) /.dconst_1))
- (_.lift "LDC2_W/DOUBLE"
- (do random.monad
- [expected ..$Double::random]
- (double expected (..$Double::literal expected)))))
+ (_.lifted "DCONST_0" (double (:as java/lang/Double +0.0) /.dconst_0))
+ (_.lifted "DCONST_1" (double (:as java/lang/Double +1.0) /.dconst_1))
+ (_.lifted "LDC2_W/DOUBLE"
+ (do random.monad
+ [expected ..$Double::random]
+ (double expected (..$Double::literal expected)))))
arithmetic ($_ _.and
- (_.lift "DADD" (binary (double/2 "jvm dadd" "jvm double +") /.dadd))
- (_.lift "DSUB" (binary (double/2 "jvm dsub" "jvm double -") /.dsub))
- (_.lift "DMUL" (binary (double/2 "jvm dmul" "jvm double *") /.dmul))
- (_.lift "DDIV" (binary (double/2 "jvm ddiv" "jvm double /") /.ddiv))
- (_.lift "DREM" (binary (double/2 "jvm drem" "jvm double %") /.drem))
- (_.lift "DNEG" (unary (function (_ value)
- ((double/2 "jvm dsub" "jvm double -")
- value
- (:as java/lang/Double +0.0)))
- /.dneg)))
+ (_.lifted "DADD" (binary (double/2 "jvm dadd" "jvm double +") /.dadd))
+ (_.lifted "DSUB" (binary (double/2 "jvm dsub" "jvm double -") /.dsub))
+ (_.lifted "DMUL" (binary (double/2 "jvm dmul" "jvm double *") /.dmul))
+ (_.lifted "DDIV" (binary (double/2 "jvm ddiv" "jvm double /") /.ddiv))
+ (_.lifted "DREM" (binary (double/2 "jvm drem" "jvm double %") /.drem))
+ (_.lifted "DNEG" (unary (function (_ value)
+ ((double/2 "jvm dsub" "jvm double -")
+ value
+ (:as java/lang/Double +0.0)))
+ /.dneg)))
comparison (: (-> (Bytecode Any) (-> java/lang/Double java/lang/Double Bit) (Random Bit))
(function (_ instruction standard)
(do random.monad
@@ -713,8 +713,8 @@
@.jvm
("jvm double <" ("jvm object cast" subject) ("jvm object cast" reference))})))
comparison ($_ _.and
- (_.lift "DCMPL" (comparison /.dcmpl comparison_standard))
- (_.lift "DCMPG" (comparison /.dcmpg comparison_standard)))]
+ (_.lifted "DCMPL" (comparison /.dcmpl comparison_standard))
+ (_.lifted "DCMPG" (comparison /.dcmpg comparison_standard)))]
($_ _.and
(<| (_.context "literal")
literal)
@@ -749,13 +749,13 @@
_ /.dup]
(/.invokespecial ..$Object "<init>" (/type.method [(list) (list) /type.void (list)]))))]
($_ _.and
- (<| (_.lift "ACONST_NULL")
+ (<| (_.lifted "ACONST_NULL")
(..bytecode (|>> (:as Bit) not))
(do /.monad
[_ /.aconst_null
_ (/.instanceof ..$String)]
..$Boolean::wrap))
- (<| (_.lift "INSTANCEOF")
+ (<| (_.lifted "INSTANCEOF")
(do random.monad
[value ..$String::random])
(..bytecode (|>> (:as Bit)))
@@ -763,14 +763,14 @@
[_ (/.string (:as Text value))
_ (/.instanceof ..$String)]
..$Boolean::wrap))
- (<| (_.lift "NEW & CHECKCAST")
+ (<| (_.lifted "NEW & CHECKCAST")
(..bytecode (|>> (:as Bit)))
(do /.monad
[_ !object
_ (/.checkcast ..$Object)
_ (/.instanceof ..$Object)]
..$Boolean::wrap))
- (<| (_.lift "MONITORENTER & MONITOREXIT")
+ (<| (_.lifted "MONITORENTER & MONITOREXIT")
(do random.monad
[value ..$String::random])
(..bytecode (|>> (:as Bit)))
@@ -785,7 +785,7 @@
(def: method
Test
($_ _.and
- (<| (_.lift "INVOKESTATIC")
+ (<| (_.lifted "INVOKESTATIC")
(do random.monad
[expected (random.only (|>> (:as Frac) f.not_a_number? not)
..$Double::random)])
@@ -797,7 +797,7 @@
(do /.monad
[_ (/.double expected)]
(/.invokestatic ..$Double "valueOf" (/type.method [(list) (list /type.double) ..$Double (list)]))))
- (<| (_.lift "INVOKEVIRTUAL")
+ (<| (_.lifted "INVOKEVIRTUAL")
(do random.monad
[expected ..$Double::random])
(..bytecode (|>> (:as Bit) (bit\= (f.not_a_number? (:as Frac expected)))))
@@ -806,7 +806,7 @@
_ ..$Double::wrap
_ (/.invokevirtual ..$Double "isNaN" (/type.method [(list) (list) /type.boolean (list)]))]
..$Boolean::wrap))
- (<| (_.lift "INVOKESPECIAL")
+ (<| (_.lifted "INVOKESPECIAL")
(do random.monad
[expected (random.only (|>> (:as Frac) f.not_a_number? not)
..$Double::random)])
@@ -820,7 +820,7 @@
_ /.dup
_ (/.double expected)]
(/.invokespecial ..$Double "<init>" (/type.method [(list) (list /type.double) /type.void (list)]))))
- (<| (_.lift "INVOKEINTERFACE")
+ (<| (_.lifted "INVOKEINTERFACE")
(do random.monad
[subject ..$String::random])
(..bytecode (|>> (:as Nat) (n.= (text.size (:as Text subject)))))
@@ -886,7 +886,7 @@
_ ..$Long::wrap]
/.areturn))))
(row.row))
- try.assumed
+ try.trusted
(format.result /class.writer))
loader (/loader.memory (/loader.new_library []))]]
(_.test "PUTSTATIC & PUTFIELD & GETFIELD & GETSTATIC"
@@ -946,9 +946,9 @@
[size (\ ! map (|>> (n.% 1024) (n.max 1)) random.nat)
value random]
($_ _.and
- (<| (_.lift "length")
+ (<| (_.lifted "length")
(length size constructor))
- (<| (_.lift "write and read")
+ (<| (_.lifted "write and read")
(write_and_read size constructor value literal [*store *load *wrap] test))))))]
($_ _.and
(_.context "boolean"
@@ -1026,12 +1026,12 @@
(case dimensions
0 type
_ (recur (dec dimensions) (/type.array type))))]]
- (<| (_.lift "MULTIANEWARRAY")
+ (<| (_.lifted "MULTIANEWARRAY")
(..bytecode (|>> (:as Nat) (n.= sizesH)))
(do {! /.monad}
[_ (monad.map ! (|>> (:as java/lang/Long) ffi.long_to_int ..$Integer::literal)
(#.Item sizesH sizesT))
- _ (/.multianewarray type (|> dimensions /unsigned.u1 try.assumed))
+ _ (/.multianewarray type (|> dimensions /unsigned.u1 try.trusted))
_ ?length]
$Long::wrap))))
)))
@@ -1065,40 +1065,40 @@
($_ _.and
(<| (_.context "int")
($_ _.and
- (_.lift "I2L" (conversion ..$Integer::primitive ..$Long::primitive /.i2l (|>> ffi.int_to_long) long::=))
- (_.lift "I2F" (conversion ..$Integer::primitive ..$Float::primitive /.i2f (|>> ffi.int_to_float) float::=))
- (_.lift "I2D" (conversion ..$Integer::primitive ..$Double::primitive /.i2d (|>> ffi.int_to_double) double::=))
- (_.lift "I2B" (conversion ..$Integer::primitive ..$Byte::primitive /.i2b (|>> ffi.int_to_byte)
- (function (_ expected)
- (for {@.old
- (|>> (:as java/lang/Byte) ffi.byte_to_long ("jvm leq" (ffi.byte_to_long expected)))
-
- @.jvm
- (|>> (:as java/lang/Byte) ffi.byte_to_long "jvm object cast" ("jvm long =" ("jvm object cast" (ffi.byte_to_long (:as java/lang/Byte expected)))))}))))
- (_.lift "I2C" (conversion ..$Integer::primitive ..$Character::primitive /.i2c (|>> ffi.int_to_char)
- (!::= java/lang/Character "jvm ceq" "jvm char =")))
- (_.lift "I2S" (conversion ..$Integer::primitive ..$Short::primitive /.i2s (|>> ffi.int_to_short)
- (function (_ expected)
- (for {@.old
- (|>> (:as java/lang/Short) ffi.short_to_long ("jvm leq" (ffi.short_to_long expected)))
-
- @.jvm
- (|>> (:as java/lang/Short) ffi.short_to_long "jvm object cast" ("jvm long =" ("jvm object cast" (ffi.short_to_long (:as java/lang/Short expected)))))}))))))
+ (_.lifted "I2L" (conversion ..$Integer::primitive ..$Long::primitive /.i2l (|>> ffi.int_to_long) long::=))
+ (_.lifted "I2F" (conversion ..$Integer::primitive ..$Float::primitive /.i2f (|>> ffi.int_to_float) float::=))
+ (_.lifted "I2D" (conversion ..$Integer::primitive ..$Double::primitive /.i2d (|>> ffi.int_to_double) double::=))
+ (_.lifted "I2B" (conversion ..$Integer::primitive ..$Byte::primitive /.i2b (|>> ffi.int_to_byte)
+ (function (_ expected)
+ (for {@.old
+ (|>> (:as java/lang/Byte) ffi.byte_to_long ("jvm leq" (ffi.byte_to_long expected)))
+
+ @.jvm
+ (|>> (:as java/lang/Byte) ffi.byte_to_long "jvm object cast" ("jvm long =" ("jvm object cast" (ffi.byte_to_long (:as java/lang/Byte expected)))))}))))
+ (_.lifted "I2C" (conversion ..$Integer::primitive ..$Character::primitive /.i2c (|>> ffi.int_to_char)
+ (!::= java/lang/Character "jvm ceq" "jvm char =")))
+ (_.lifted "I2S" (conversion ..$Integer::primitive ..$Short::primitive /.i2s (|>> ffi.int_to_short)
+ (function (_ expected)
+ (for {@.old
+ (|>> (:as java/lang/Short) ffi.short_to_long ("jvm leq" (ffi.short_to_long expected)))
+
+ @.jvm
+ (|>> (:as java/lang/Short) ffi.short_to_long "jvm object cast" ("jvm long =" ("jvm object cast" (ffi.short_to_long (:as java/lang/Short expected)))))}))))))
(<| (_.context "long")
($_ _.and
- (_.lift "L2I" (conversion ..$Long::primitive ..$Integer::primitive /.l2i (|>> ffi.long_to_int) int::=))
- (_.lift "L2F" (conversion ..$Long::primitive ..$Float::primitive /.l2f (|>> ffi.long_to_float) float::=))
- (_.lift "L2D" (conversion ..$Long::primitive ..$Double::primitive /.l2d (|>> ffi.long_to_double) double::=))))
+ (_.lifted "L2I" (conversion ..$Long::primitive ..$Integer::primitive /.l2i (|>> ffi.long_to_int) int::=))
+ (_.lifted "L2F" (conversion ..$Long::primitive ..$Float::primitive /.l2f (|>> ffi.long_to_float) float::=))
+ (_.lifted "L2D" (conversion ..$Long::primitive ..$Double::primitive /.l2d (|>> ffi.long_to_double) double::=))))
(<| (_.context "float")
($_ _.and
- (_.lift "F2I" (conversion ..$Float::primitive ..$Integer::primitive /.f2i (|>> ffi.float_to_int) int::=))
- (_.lift "F2L" (conversion ..$Float::primitive ..$Long::primitive /.f2l (|>> ffi.float_to_long) long::=))
- (_.lift "F2D" (conversion ..$Float::primitive ..$Double::primitive /.f2d (|>> ffi.float_to_double) double::=))))
+ (_.lifted "F2I" (conversion ..$Float::primitive ..$Integer::primitive /.f2i (|>> ffi.float_to_int) int::=))
+ (_.lifted "F2L" (conversion ..$Float::primitive ..$Long::primitive /.f2l (|>> ffi.float_to_long) long::=))
+ (_.lifted "F2D" (conversion ..$Float::primitive ..$Double::primitive /.f2d (|>> ffi.float_to_double) double::=))))
(<| (_.context "double")
($_ _.and
- (_.lift "D2I" (conversion ..$Double::primitive ..$Integer::primitive /.d2i (|>> ffi.double_to_int) int::=))
- (_.lift "D2L" (conversion ..$Double::primitive ..$Long::primitive /.d2l (|>> ffi.double_to_long) long::=))
- (_.lift "D2F" (conversion ..$Double::primitive ..$Float::primitive /.d2f (|>> ffi.double_to_float) float::=))))
+ (_.lifted "D2I" (conversion ..$Double::primitive ..$Integer::primitive /.d2i (|>> ffi.double_to_int) int::=))
+ (_.lifted "D2L" (conversion ..$Double::primitive ..$Long::primitive /.d2l (|>> ffi.double_to_long) long::=))
+ (_.lifted "D2F" (conversion ..$Double::primitive ..$Float::primitive /.d2f (|>> ffi.double_to_float) float::=))))
)))
(def: value
@@ -1139,94 +1139,94 @@
(<| (_.context "int")
(let [test (!::= java/lang/Integer "jvm ieq" "jvm int =")]
($_ _.and
- (_.lift "ISTORE_0/ILOAD_0"
- (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [(function.constant /.istore_0) (function.constant /.iload_0)] test))
- (_.lift "ISTORE_1/ILOAD_1"
- (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [(function.constant /.istore_1) (function.constant /.iload_1)] test))
- (_.lift "ISTORE_2/ILOAD_2"
- (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [(function.constant /.istore_2) (function.constant /.iload_2)] test))
- (_.lift "ISTORE_3/ILOAD_3"
- (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [(function.constant /.istore_3) (function.constant /.iload_3)] test))
- (_.lift "ISTORE/ILOAD"
- (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [/.istore /.iload] test))
- (_.lift "IINC"
- (do {! random.monad}
- [base ..$Byte::random
- increment (\ ! map (|>> (n.% 100) /unsigned.u1 try.assumed)
- random.nat)
- .let [expected (: java/lang/Long
- (for {@.old
- ("jvm ladd"
- (ffi.byte_to_long base)
- (.int (/unsigned.value increment)))
-
- @.jvm
- ("jvm object cast"
- ("jvm long +"
- ("jvm object cast" (ffi.byte_to_long base))
- ("jvm object cast" (:as java/lang/Long (/unsigned.value increment)))))}))]]
- (..bytecode (|>> (:as Int) (i.= (:as Int expected)))
- (do /.monad
- [_ (..$Byte::literal base)
- _ /.istore_0
- _ (/.iinc 0 increment)
- _ /.iload_0
- _ /.i2l]
- ..$Long::wrap)))))))
+ (_.lifted "ISTORE_0/ILOAD_0"
+ (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [(function.constant /.istore_0) (function.constant /.iload_0)] test))
+ (_.lifted "ISTORE_1/ILOAD_1"
+ (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [(function.constant /.istore_1) (function.constant /.iload_1)] test))
+ (_.lifted "ISTORE_2/ILOAD_2"
+ (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [(function.constant /.istore_2) (function.constant /.iload_2)] test))
+ (_.lifted "ISTORE_3/ILOAD_3"
+ (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [(function.constant /.istore_3) (function.constant /.iload_3)] test))
+ (_.lifted "ISTORE/ILOAD"
+ (store_and_load ..$Integer::random ..$Integer::literal ..$Integer::wrap [/.istore /.iload] test))
+ (_.lifted "IINC"
+ (do {! random.monad}
+ [base ..$Byte::random
+ increment (\ ! map (|>> (n.% 100) /unsigned.u1 try.trusted)
+ random.nat)
+ .let [expected (: java/lang/Long
+ (for {@.old
+ ("jvm ladd"
+ (ffi.byte_to_long base)
+ (.int (/unsigned.value increment)))
+
+ @.jvm
+ ("jvm object cast"
+ ("jvm long +"
+ ("jvm object cast" (ffi.byte_to_long base))
+ ("jvm object cast" (:as java/lang/Long (/unsigned.value increment)))))}))]]
+ (..bytecode (|>> (:as Int) (i.= (:as Int expected)))
+ (do /.monad
+ [_ (..$Byte::literal base)
+ _ /.istore_0
+ _ (/.iinc 0 increment)
+ _ /.iload_0
+ _ /.i2l]
+ ..$Long::wrap)))))))
(<| (_.context "long")
(let [test (!::= java/lang/Long "jvm leq" "jvm long =")]
($_ _.and
- (_.lift "LSTORE_0/LLOAD_0"
- (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [(function.constant /.lstore_0) (function.constant /.lload_0)] test))
- (_.lift "LSTORE_1/LLOAD_1"
- (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [(function.constant /.lstore_1) (function.constant /.lload_1)] test))
- (_.lift "LSTORE_2/LLOAD_2"
- (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [(function.constant /.lstore_2) (function.constant /.lload_2)] test))
- (_.lift "LSTORE_3/LLOAD_3"
- (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [(function.constant /.lstore_3) (function.constant /.lload_3)] test))
- (_.lift "LSTORE/LLOAD"
- (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [/.lstore /.lload] test)))))
+ (_.lifted "LSTORE_0/LLOAD_0"
+ (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [(function.constant /.lstore_0) (function.constant /.lload_0)] test))
+ (_.lifted "LSTORE_1/LLOAD_1"
+ (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [(function.constant /.lstore_1) (function.constant /.lload_1)] test))
+ (_.lifted "LSTORE_2/LLOAD_2"
+ (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [(function.constant /.lstore_2) (function.constant /.lload_2)] test))
+ (_.lifted "LSTORE_3/LLOAD_3"
+ (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [(function.constant /.lstore_3) (function.constant /.lload_3)] test))
+ (_.lifted "LSTORE/LLOAD"
+ (store_and_load ..$Long::random ..$Long::literal ..$Long::wrap [/.lstore /.lload] test)))))
(<| (_.context "float")
(let [test (!::= java/lang/Float "jvm feq" "jvm float =")]
($_ _.and
- (_.lift "FSTORE_0/FLOAD_0"
- (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [(function.constant /.fstore_0) (function.constant /.fload_0)] test))
- (_.lift "FSTORE_1/FLOAD_1"
- (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [(function.constant /.fstore_1) (function.constant /.fload_1)] test))
- (_.lift "FSTORE_2/FLOAD_2"
- (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [(function.constant /.fstore_2) (function.constant /.fload_2)] test))
- (_.lift "FSTORE_3/FLOAD_3"
- (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [(function.constant /.fstore_3) (function.constant /.fload_3)] test))
- (_.lift "FSTORE/FLOAD"
- (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [/.fstore /.fload] test)))))
+ (_.lifted "FSTORE_0/FLOAD_0"
+ (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [(function.constant /.fstore_0) (function.constant /.fload_0)] test))
+ (_.lifted "FSTORE_1/FLOAD_1"
+ (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [(function.constant /.fstore_1) (function.constant /.fload_1)] test))
+ (_.lifted "FSTORE_2/FLOAD_2"
+ (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [(function.constant /.fstore_2) (function.constant /.fload_2)] test))
+ (_.lifted "FSTORE_3/FLOAD_3"
+ (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [(function.constant /.fstore_3) (function.constant /.fload_3)] test))
+ (_.lifted "FSTORE/FLOAD"
+ (store_and_load ..valid_float ..$Float::literal ..$Float::wrap [/.fstore /.fload] test)))))
(<| (_.context "double")
(let [test (!::= java/lang/Double "jvm deq" "jvm double =")]
($_ _.and
- (_.lift "DSTORE_0/DLOAD_0"
- (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [(function.constant /.dstore_0) (function.constant /.dload_0)] test))
- (_.lift "DSTORE_1/DLOAD_1"
- (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [(function.constant /.dstore_1) (function.constant /.dload_1)] test))
- (_.lift "DSTORE_2/DLOAD_2"
- (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [(function.constant /.dstore_2) (function.constant /.dload_2)] test))
- (_.lift "DSTORE_3/DLOAD_3"
- (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [(function.constant /.dstore_3) (function.constant /.dload_3)] test))
- (_.lift "DSTORE/DLOAD"
- (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [/.dstore /.dload] test)))))
+ (_.lifted "DSTORE_0/DLOAD_0"
+ (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [(function.constant /.dstore_0) (function.constant /.dload_0)] test))
+ (_.lifted "DSTORE_1/DLOAD_1"
+ (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [(function.constant /.dstore_1) (function.constant /.dload_1)] test))
+ (_.lifted "DSTORE_2/DLOAD_2"
+ (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [(function.constant /.dstore_2) (function.constant /.dload_2)] test))
+ (_.lifted "DSTORE_3/DLOAD_3"
+ (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [(function.constant /.dstore_3) (function.constant /.dload_3)] test))
+ (_.lifted "DSTORE/DLOAD"
+ (store_and_load ..valid_double ..$Double::literal ..$Double::wrap [/.dstore /.dload] test)))))
(<| (_.context "object")
(let [test (: (-> java/lang/String Any Bit)
(function (_ expected actual)
(|> actual (:as Text) (text\= (:as Text expected)))))]
($_ _.and
- (_.lift "ASTORE_0/ALOAD_0"
- (store_and_load ..$String::random ..$String::literal /.nop [(function.constant /.astore_0) (function.constant /.aload_0)] test))
- (_.lift "ASTORE_1/ALOAD_1"
- (store_and_load ..$String::random ..$String::literal /.nop [(function.constant /.astore_1) (function.constant /.aload_1)] test))
- (_.lift "ASTORE_2/ALOAD_2"
- (store_and_load ..$String::random ..$String::literal /.nop [(function.constant /.astore_2) (function.constant /.aload_2)] test))
- (_.lift "ASTORE_3/ALOAD_3"
- (store_and_load ..$String::random ..$String::literal /.nop [(function.constant /.astore_3) (function.constant /.aload_3)] test))
- (_.lift "ASTORE/ALOAD"
- (store_and_load ..$String::random ..$String::literal /.nop [/.astore /.aload] test)))))
+ (_.lifted "ASTORE_0/ALOAD_0"
+ (store_and_load ..$String::random ..$String::literal /.nop [(function.constant /.astore_0) (function.constant /.aload_0)] test))
+ (_.lifted "ASTORE_1/ALOAD_1"
+ (store_and_load ..$String::random ..$String::literal /.nop [(function.constant /.astore_1) (function.constant /.aload_1)] test))
+ (_.lifted "ASTORE_2/ALOAD_2"
+ (store_and_load ..$String::random ..$String::literal /.nop [(function.constant /.astore_2) (function.constant /.aload_2)] test))
+ (_.lifted "ASTORE_3/ALOAD_3"
+ (store_and_load ..$String::random ..$String::literal /.nop [(function.constant /.astore_3) (function.constant /.aload_3)] test))
+ (_.lifted "ASTORE/ALOAD"
+ (store_and_load ..$String::random ..$String::literal /.nop [/.astore /.aload] test)))))
)))
(def: stack
@@ -1237,20 +1237,20 @@
(|>> (:as Text) (text\= (:as Text expected/1))))]
dummy/1 $String::random
.let [single ($_ _.and
- (<| (_.lift "DUP & POP")
+ (<| (_.lifted "DUP & POP")
(..bytecode object_test)
(do /.monad
[_ ($String::literal expected/1)
_ /.dup]
/.pop))
- (<| (_.lift "DUP_X1 & POP2")
+ (<| (_.lifted "DUP_X1 & POP2")
(..bytecode object_test)
(do /.monad
[_ ($String::literal dummy/1)
_ ($String::literal expected/1)
_ /.dup_x1]
/.pop2))
- (<| (_.lift "DUP_X2")
+ (<| (_.lifted "DUP_X2")
(..bytecode object_test)
(do /.monad
[_ ($String::literal dummy/1)
@@ -1259,7 +1259,7 @@
_ /.dup_x2
_ /.pop2]
/.pop))
- (<| (_.lift "SWAP")
+ (<| (_.lifted "SWAP")
(..bytecode object_test)
(do /.monad
[_ ($String::literal dummy/1)
@@ -1272,14 +1272,14 @@
(|>> (:as Int) (i.= (:as Int expected/2))))]
dummy/2 $Long::random
.let [double ($_ _.and
- (<| (_.lift "DUP2")
+ (<| (_.lifted "DUP2")
(..bytecode long_test)
(do /.monad
[_ ($Long::literal expected/2)
_ /.dup2
_ /.pop2]
..$Long::wrap))
- (<| (_.lift "DUP2_X1")
+ (<| (_.lifted "DUP2_X1")
(..bytecode long_test)
(do /.monad
[_ ($String::literal dummy/1)
@@ -1288,7 +1288,7 @@
_ /.pop2
_ /.pop]
..$Long::wrap))
- (<| (_.lift "DUP2_X2")
+ (<| (_.lifted "DUP2_X2")
(..bytecode long_test)
(do /.monad
[_ ($Long::literal dummy/2)
@@ -1367,20 +1367,20 @@
false)
))))]
($_ _.and
- (_.lift "IRETURN" (primitive_return ..$Integer::primitive /.ireturn #.None (!::= java/lang/Integer "jvm ieq" "jvm int =")))
- (_.lift "LRETURN" (primitive_return ..$Long::primitive /.lreturn #.None (!::= java/lang/Long "jvm leq" "jvm long =")))
- (_.lift "FRETURN" (primitive_return ..$Float::primitive /.freturn #.None (!::= java/lang/Float "jvm feq" "jvm float =")))
- (_.lift "DRETURN" (primitive_return ..$Double::primitive /.dreturn #.None (!::= java/lang/Double "jvm deq" "jvm double =")))
- (_.lift "ARETURN" (primitive_return ..$String::primitive /.areturn #.None (function (_ expected actual) (text\= (:as Text expected) (:as Text actual)))))
- (_.lift "RETURN" (primitive_return (: (Primitive java/lang/String)
- {#unboxed /type.void
- #boxed ..$String
- #wrap /.nop
- #random ..$String::random
- #literal (function.constant /.nop)})
- /.return
- (#.Some ..$String::literal)
- (function (_ expected actual) (text\= (:as Text expected) (:as Text actual)))))
+ (_.lifted "IRETURN" (primitive_return ..$Integer::primitive /.ireturn #.None (!::= java/lang/Integer "jvm ieq" "jvm int =")))
+ (_.lifted "LRETURN" (primitive_return ..$Long::primitive /.lreturn #.None (!::= java/lang/Long "jvm leq" "jvm long =")))
+ (_.lifted "FRETURN" (primitive_return ..$Float::primitive /.freturn #.None (!::= java/lang/Float "jvm feq" "jvm float =")))
+ (_.lifted "DRETURN" (primitive_return ..$Double::primitive /.dreturn #.None (!::= java/lang/Double "jvm deq" "jvm double =")))
+ (_.lifted "ARETURN" (primitive_return ..$String::primitive /.areturn #.None (function (_ expected actual) (text\= (:as Text expected) (:as Text actual)))))
+ (_.lifted "RETURN" (primitive_return (: (Primitive java/lang/String)
+ {#unboxed /type.void
+ #boxed ..$String
+ #wrap /.nop
+ #random ..$String::random
+ #literal (function.constant /.nop)})
+ /.return
+ (#.Some ..$String::literal)
+ (function (_ expected actual) (text\= (:as Text expected) (:as Text actual)))))
)))
(def: branching
@@ -1403,15 +1403,15 @@
_ (/.set_label @end)]
..$Long::wrap))))
comparison_against_zero ($_ _.and
- (_.lift "IFEQ" (if! /.ifeq /.iconst_0))
- (_.lift "IFNE" (if! /.ifne /.iconst_1))
- (_.lift "IFLT" (if! /.iflt /.iconst_m1))
- (_.lift "IFLE" (if! /.ifle /.iconst_0))
- (_.lift "IFGT" (if! /.ifgt /.iconst_1))
- (_.lift "IFGE" (if! /.ifge /.iconst_0)))
+ (_.lifted "IFEQ" (if! /.ifeq /.iconst_0))
+ (_.lifted "IFNE" (if! /.ifne /.iconst_1))
+ (_.lifted "IFLT" (if! /.iflt /.iconst_m1))
+ (_.lifted "IFLE" (if! /.ifle /.iconst_0))
+ (_.lifted "IFGT" (if! /.ifgt /.iconst_1))
+ (_.lifted "IFGE" (if! /.ifge /.iconst_0)))
null_test ($_ _.and
- (_.lift "IFNULL" (if! /.ifnull /.aconst_null))
- (_.lift "IFNONNULL" (if! /.ifnonnull (/.string ""))))]
+ (_.lifted "IFNULL" (if! /.ifnull /.aconst_null))
+ (_.lifted "IFNONNULL" (if! /.ifnonnull (/.string ""))))]
reference ..$Integer::random
subject (|> ..$Integer::random
(random.only (|>> ((!::= java/lang/Integer "jvm ieq" "jvm int =") reference) not)))
@@ -1423,20 +1423,20 @@
[reference subject]
[subject reference])
int_comparison ($_ _.and
- (_.lift "IF_ICMPEQ" (if! /.if_icmpeq (do /.monad [_ (..$Integer::literal reference)] /.dup)))
- (_.lift "IF_ICMPNE" (if! /.if_icmpne (do /.monad [_ (..$Integer::literal reference)] (..$Integer::literal subject))))
- (_.lift "IF_ICMPLT" (if! /.if_icmplt (do /.monad [_ (..$Integer::literal lesser)] (..$Integer::literal greater))))
- (_.lift "IF_ICMPLE" (if! /.if_icmple (do /.monad [_ (..$Integer::literal lesser)] (..$Integer::literal greater))))
- (_.lift "IF_ICMPGT" (if! /.if_icmpgt (do /.monad [_ (..$Integer::literal greater)] (..$Integer::literal lesser))))
- (_.lift "IF_ICMPGE" (if! /.if_icmpge (do /.monad [_ (..$Integer::literal greater)] (..$Integer::literal lesser)))))
+ (_.lifted "IF_ICMPEQ" (if! /.if_icmpeq (do /.monad [_ (..$Integer::literal reference)] /.dup)))
+ (_.lifted "IF_ICMPNE" (if! /.if_icmpne (do /.monad [_ (..$Integer::literal reference)] (..$Integer::literal subject))))
+ (_.lifted "IF_ICMPLT" (if! /.if_icmplt (do /.monad [_ (..$Integer::literal lesser)] (..$Integer::literal greater))))
+ (_.lifted "IF_ICMPLE" (if! /.if_icmple (do /.monad [_ (..$Integer::literal lesser)] (..$Integer::literal greater))))
+ (_.lifted "IF_ICMPGT" (if! /.if_icmpgt (do /.monad [_ (..$Integer::literal greater)] (..$Integer::literal lesser))))
+ (_.lifted "IF_ICMPGE" (if! /.if_icmpge (do /.monad [_ (..$Integer::literal greater)] (..$Integer::literal lesser)))))
new_object (: (Bytecode Any)
(do /.monad
[_ (/.new ..$Object)
_ /.dup]
(/.invokespecial ..$Object "<init>" (/type.method [(list) (list) /type.void (list)]))))
reference_comparison ($_ _.and
- (_.lift "IF_ACMPEQ" (if! /.if_acmpeq (do /.monad [_ new_object] /.dup)))
- (_.lift "IF_ACMPNE" (if! /.if_acmpne (do /.monad [_ new_object] new_object)))
+ (_.lifted "IF_ACMPEQ" (if! /.if_acmpeq (do /.monad [_ new_object] /.dup)))
+ (_.lifted "IF_ACMPNE" (if! /.if_acmpne (do /.monad [_ new_object] new_object)))
)]]
($_ _.and
comparison_against_zero
@@ -1466,17 +1466,17 @@
_ (/.set_label @end)]
..$Long::wrap))))]]
($_ _.and
- (_.lift "GOTO" (jump /.goto))
- (_.lift "GOTO_W" (jump /.goto_w)))))
+ (_.lifted "GOTO" (jump /.goto))
+ (_.lifted "GOTO_W" (jump /.goto_w)))))
(def: switch
Test
($_ _.and
- (<| (_.lift "TABLESWITCH")
+ (<| (_.lifted "TABLESWITCH")
(do {! random.monad}
[expected ..$Long::random
dummy ..$Long::random
- minimum (\ ! map (|>> (n.% 100) .int /signed.s4 try.assumed)
+ minimum (\ ! map (|>> (n.% 100) .int /signed.s4 try.trusted)
random.nat)
afterwards (\ ! map (n.% 10) random.nat)])
(..bytecode ((!::= java/lang/Long "jvm leq" "jvm long =") expected))
@@ -1484,7 +1484,7 @@
[@right /.new_label
@wrong /.new_label
@return /.new_label
- _ (/.bipush (|> minimum /signed.value .int /signed.s1 try.assumed))
+ _ (/.bipush (|> minimum /signed.value .int /signed.s1 try.trusted))
_ (/.tableswitch minimum @wrong [@right (list.repeated afterwards @wrong)])
_ (/.set_label @wrong)
_ (..$Long::literal dummy)
@@ -1493,7 +1493,7 @@
_ (..$Long::literal expected)
_ (/.set_label @return)]
..$Long::wrap))
- (<| (_.lift "LOOKUPSWITCH")
+ (<| (_.lifted "LOOKUPSWITCH")
(do {! random.monad}
[options (\ ! map (|>> (n.% 10) (n.+ 1))
random.nat)
@@ -1502,7 +1502,7 @@
(\ ! map (|>> (:as java/lang/Long) ffi.long_to_int ffi.int_to_long (:as Int)))
(random.set i.hash options)
(\ ! map set.list))
- .let [choice (maybe.assume (list.item choice options))]
+ .let [choice (maybe.trusted (list.item choice options))]
expected ..$Long::random
dummy ..$Long::random])
(..bytecode ((!::= java/lang/Long "jvm leq" "jvm long =") expected))
@@ -1512,7 +1512,7 @@
@return /.new_label
_ (..$Integer::literal (ffi.long_to_int (:as java/lang/Long choice)))
_ (/.lookupswitch @wrong (list\map (function (_ option)
- [(|> option /signed.s4 try.assumed)
+ [(|> option /signed.s4 try.trusted)
(if (i.= choice option) @right @wrong)])
options))
_ (/.set_label @wrong)
@@ -1530,7 +1530,7 @@
[expected ..$Long::random
dummy ..$Long::random
exception ..$String::random]
- (<| (_.lift "ATHROW")
+ (<| (_.lifted "ATHROW")
(..bytecode ((!::= java/lang/Long "jvm leq" "jvm long =") expected))
(do /.monad
[.let [$Exception (/type.class "java.lang.Exception" (list))]
@@ -1634,7 +1634,7 @@
(list (/method.method ($_ /modifier\compose /method.public /method.abstract)
interface_method method::type (list) #.None))
(row.row))
- try.assumed
+ try.trusted
(format.result /class.writer))
abstract_bytecode (|> (/class.class /version.v6_0 ($_ /modifier\compose /class.public /class.abstract)
(/name.internal abstract_class)
@@ -1654,7 +1654,7 @@
(/method.method ($_ /modifier\compose /method.public /method.abstract)
abstract_method method::type (list) #.None))
(row.row))
- try.assumed
+ try.trusted
(format.result /class.writer))
invoke (: (-> (Type Class) Text (Bytecode Any))
(function (_ class method)
@@ -1701,7 +1701,7 @@
_ ..$Long::wrap]
/.areturn))))
(row.row))
- try.assumed
+ try.trusted
(format.result /class.writer))
loader (/loader.memory (/loader.new_library []))]]
(_.test "Class & interface inheritance"
diff --git a/stdlib/source/test/lux/test.lux b/stdlib/source/test/lux/test.lux
index fe60e832c..eef7b91e7 100644
--- a/stdlib/source/test/lux/test.lux
+++ b/stdlib/source/test/lux/test.lux
@@ -286,12 +286,12 @@
(and (n.= 0 (get@ #/.successes failure_tally))
(n.= 1 (get@ #/.failures failure_tally))))))))
(do !
- [success_assertion (/.lift expected_message/0 (in true))
- failure_assertion (/.lift expected_message/0 (in false))]
+ [success_assertion (/.lifted expected_message/0 (in true))
+ failure_assertion (/.lifted expected_message/0 (in false))]
(in (do async.monad
[[success_tally success_message] success_assertion
[failure_tally failure_message] failure_assertion]
- (/.cover' [/.lift]
+ (/.cover' [/.lifted]
(and (text.contains? expected_message/0 success_message)
(text.contains? expected_message/0 failure_message)
(and (n.= 1 (get@ #/.successes success_tally))
diff --git a/stdlib/source/test/lux/time/year.lux b/stdlib/source/test/lux/time/year.lux
index 82cdbf713..513b1b92d 100644
--- a/stdlib/source/test/lux/time/year.lux
+++ b/stdlib/source/test/lux/time/year.lux
@@ -79,9 +79,9 @@
(_.for [/.Period]
(_.cover [/.leap /.century /.era]
(n.= /.leap (n./ /.century /.era))))
- (let [leap (try.assumed (/.year (.int /.leap)))
- century (try.assumed (/.year (.int /.century)))
- era (try.assumed (/.year (.int /.era)))]
+ (let [leap (try.trusted (/.year (.int /.leap)))
+ century (try.trusted (/.year (.int /.century)))
+ era (try.trusted (/.year (.int /.era)))]
($_ _.and
(_.cover [/.leap?]
(and (/.leap? leap)
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux
index f694d0629..aa4443cdb 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux
@@ -124,8 +124,8 @@
(r\map product.right _primitive.primitive)
(do {! r.monad}
[choice (|> r.nat (\ ! map (n.% (list.size variant_tags))))
- .let [choiceT (maybe.assume (list.item choice variant_tags))
- choiceC (maybe.assume (list.item choice primitivesC))]]
+ .let [choiceT (maybe.trusted (list.item choice variant_tags))
+ choiceC (maybe.trusted (list.item choice primitivesC))]]
(in (` ((~ choiceT) (~ choiceC)))))
(do {! r.monad}
[size (|> r.nat (\ ! map (n.% 3)))
@@ -190,7 +190,7 @@
.let [redundant_branchesC (<| (list!map (branch outputC))
list.joined
(list (list.first redundancy_idx redundant_patterns)
- (list (maybe.assume (list.item redundancy_idx redundant_patterns)))
+ (list (maybe.trusted (list.item redundancy_idx redundant_patterns)))
(list.after redundancy_idx redundant_patterns)))]]
(_.test "Will reject redundant pattern-matching."
(|> (analyse_pm redundant_branchesC)
@@ -200,7 +200,7 @@
_primitive.primitive)
heterogeneous_idx (|> r.nat (\ ! map (n.% (list.size exhaustive_patterns))))
.let [heterogeneous_branchesC (list.joined (list (list.first heterogeneous_idx exhaustive_branchesC)
- (list (let [[_pattern _body] (maybe.assume (list.item heterogeneous_idx exhaustive_branchesC))]
+ (list (let [[_pattern _body] (maybe.trusted (list.item heterogeneous_idx exhaustive_branchesC))]
[_pattern heterogeneousC]))
(list.after (inc heterogeneous_idx) exhaustive_branchesC)))]]
(_.test "Will reject pattern-matching if the bodies of the branches do not all have the same type."
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux
index b0027b15d..42b1e366c 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux
@@ -96,7 +96,7 @@
(list varT)
(list.after (inc var_idx) inputsT))))
varT)
- poly_inputT (maybe.assume (list.item var_idx inputsT))
+ poly_inputT (maybe.trusted (list.item var_idx inputsT))
partial_poly_inputsT (list.after (inc var_idx) inputsT)
partial_polyT1 (<| (type.function partial_poly_inputsT)
poly_inputT)
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux
index bc4890efe..d27b85baf 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux
@@ -124,12 +124,12 @@
+choice (|> r.nat (\ ! map (n.% (inc size))))
[_ +valueC] _primitive.primitive
.let [variantT (type.variant (list\map product.left primitives))
- [valueT valueC] (maybe.assume (list.item choice primitives))
+ [valueT valueC] (maybe.trusted (list.item choice primitives))
+size (inc size)
+primitives (list.joined (list (list.first choice primitives)
(list [(#.Parameter 1) +valueC])
(list.after choice primitives)))
- [+valueT +valueC] (maybe.assume (list.item +choice +primitives))
+ [+valueT +valueC] (maybe.trusted (list.item +choice +primitives))
+variantT (type.variant (list\map product.left +primitives))]]
(<| (_.context (%.name (name_of /.sum)))
($_ _.and
@@ -175,7 +175,7 @@
choice (|> r.nat (\ ! map (n.% size)))
[_ +valueC] _primitive.primitive
.let [tupleT (type.tuple (list\map product.left primitives))
- [singletonT singletonC] (|> primitives (list.item choice) maybe.assume)
+ [singletonT singletonC] (|> primitives (list.item choice) maybe.trusted)
+primitives (list.joined (list (list.first choice primitives)
(list [(#.Parameter 1) +valueC])
(list.after choice primitives)))
@@ -240,15 +240,15 @@
.let [with_name (|>> (#.Named [module_name type_name]))
varT (#.Parameter 1)
primitivesT (list\map product.left primitives)
- [choiceT choiceC] (maybe.assume (list.item choice primitives))
- [other_choiceT other_choiceC] (maybe.assume (list.item other_choice primitives))
+ [choiceT choiceC] (maybe.trusted (list.item choice primitives))
+ [other_choiceT other_choiceC] (maybe.trusted (list.item other_choice primitives))
monoT (type.variant primitivesT)
polyT (|> (type.variant (list.joined (list (list.first choice primitivesT)
(list varT)
(list.after (inc choice) primitivesT))))
(type.univ_q 1))
- choice_tag (maybe.assume (list.item choice tags))
- other_choice_tag (maybe.assume (list.item other_choice tags))]]
+ choice_tag (maybe.trusted (list.item choice tags))
+ other_choice_tag (maybe.trusted (list.item other_choice tags))]]
(<| (_.context (%.name (name_of /.tagged_sum)))
($_ _.and
(_.test "Can infer."
diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/type.lux
index 078aef4e2..8c135b590 100644
--- a/stdlib/source/test/lux/type.lux
+++ b/stdlib/source/test/lux/type.lux
@@ -28,6 +28,7 @@
["#." check]
["#." dynamic]
["#." implicit]
+ ["#." poly]
["#." quotient]
["#." refinement]
["#." resource]
@@ -207,10 +208,10 @@
[left random.nat
right (random.ascii/lower 1)
.let [left,right [left right]]]
- (_.cover [/.:cast]
+ (_.cover [/.:as]
(|> left,right
- (/.:cast [l r] (And l r) (Or l r))
- (/.:cast [l r] (Or l r) (And l r))
+ (/.:as [l r] (And l r) (Or l r))
+ (/.:as [l r] (Or l r) (And l r))
(same? left,right))))
(do random.monad
[expected random.nat]
@@ -239,6 +240,7 @@
/check.test
/dynamic.test
/implicit.test
+ /poly.test
/quotient.test
/refinement.test
/resource.test
diff --git a/stdlib/source/test/lux/macro/poly.lux b/stdlib/source/test/lux/type/poly.lux
index 1ffe2cf61..1ffe2cf61 100644
--- a/stdlib/source/test/lux/macro/poly.lux
+++ b/stdlib/source/test/lux/type/poly.lux
diff --git a/stdlib/source/test/lux/macro/poly/equivalence.lux b/stdlib/source/test/lux/type/poly/equivalence.lux
index 6de4e4019..14c763226 100644
--- a/stdlib/source/test/lux/macro/poly/equivalence.lux
+++ b/stdlib/source/test/lux/type/poly/equivalence.lux
@@ -1,7 +1,6 @@
(.module:
[library
[lux (#- Variant)
- ["%" data/text/format (#+ format)]
["_" test (#+ Test)]
[abstract
[monad (#+ do)]
@@ -17,13 +16,13 @@
["." text]
[collection
["." list]]]
- [macro
- [poly (#+ derived:)]]
[math
["." random (#+ Random)]
[number
["n" nat]
- ["i" int]]]]])
+ ["i" int]]]
+ [type
+ [poly (#+ derived:)]]]])
(type: Variant
(#Case0 Bit)
diff --git a/stdlib/source/test/lux/macro/poly/functor.lux b/stdlib/source/test/lux/type/poly/functor.lux
index b98541232..da5b00391 100644
--- a/stdlib/source/test/lux/macro/poly/functor.lux
+++ b/stdlib/source/test/lux/type/poly/functor.lux
@@ -1,7 +1,6 @@
(.module:
[library
[lux #*
- ["%" data/text/format (#+ format)]
[abstract
[monad (#+ do)]
[functor
@@ -13,7 +12,7 @@
["." state]]
[data
["." identity]]
- [macro
+ [type
[poly (#+ derived:)]]]])
(derived: maybe_functor (/.functor .Maybe))
diff --git a/stdlib/source/test/lux/macro/poly/json.lux b/stdlib/source/test/lux/type/poly/json.lux
index d99b3364e..16a466ed5 100644
--- a/stdlib/source/test/lux/macro/poly/json.lux
+++ b/stdlib/source/test/lux/type/poly/json.lux
@@ -19,8 +19,7 @@
[json (#+)]]]
[data
["." bit]
- ["." text
- ["%" format (#+ format)]]
+ ["." text]
[format
[json (#+)
[\\poly
@@ -29,9 +28,8 @@
[row (#+ row)]
["d" dictionary]
["." list]]]
- [macro
- [poly (#+ derived:)]]
[type
+ [poly (#+ derived:)]
["." unit]]
[math
["." random (#+ Random)]
diff --git a/stdlib/source/test/lux/type/refinement.lux b/stdlib/source/test/lux/type/refinement.lux
index 64a0b60bd..cf69e9243 100644
--- a/stdlib/source/test/lux/type/refinement.lux
+++ b/stdlib/source/test/lux/type/refinement.lux
@@ -53,14 +53,14 @@
(|> (/.refiner predicate modulus)
(maybe\map (|>> /.value (n.= modulus)))
(maybe.else false)))
- (_.cover [/.lift]
+ (_.cover [/.lifted]
(and (|> (/.refiner predicate modulus)
- (maybe\map (/.lift (n.+ modulus)))
+ (maybe\map (/.lifted (n.+ modulus)))
maybe\join
(maybe\map (|>> /.value (n.= (n.+ modulus modulus))))
(maybe.else false))
(|> (/.refiner predicate modulus)
- (maybe\map (/.lift (n.+ (inc modulus))))
+ (maybe\map (/.lifted (n.+ (inc modulus))))
maybe\join
(maybe\map (|>> /.value (n.= (n.+ modulus (inc modulus)))))
(maybe.else false)
diff --git a/stdlib/source/test/lux/world/input/keyboard.lux b/stdlib/source/test/lux/world/input/keyboard.lux
index 0060dc9a4..67ce892fe 100644
--- a/stdlib/source/test/lux/world/input/keyboard.lux
+++ b/stdlib/source/test/lux/world/input/keyboard.lux
@@ -141,7 +141,7 @@
(let [count (list.size ..listing)]
(do {! random.monad}
[choice (\ ! map (n.% count) random.nat)]
- (in (maybe.assume (list.item choice ..listing))))))
+ (in (maybe.trusted (list.item choice ..listing))))))
(def: .public test
Test
diff --git a/stdlib/source/test/lux/world/output/video/resolution.lux b/stdlib/source/test/lux/world/output/video/resolution.lux
index 543dcb3f7..b6b18505a 100644
--- a/stdlib/source/test/lux/world/output/video/resolution.lux
+++ b/stdlib/source/test/lux/world/output/video/resolution.lux
@@ -48,7 +48,7 @@
(let [count (list.size ..listing)]
(do {! random.monad}
[choice (\ ! map (n.% count) random.nat)]
- (in (maybe.assume (list.item choice ..listing))))))
+ (in (maybe.trusted (list.item choice ..listing))))))
(def: .public test
Test