aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--documentation/bookmark/security/capability_based.md1
-rw-r--r--licentia/source/program/licentia.lux4
-rw-r--r--licentia/source/program/licentia/output.lux8
-rw-r--r--licentia/source/test/licentia.lux8
-rw-r--r--lux-bootstrapper/src/lux/analyser.clj33
-rw-r--r--lux-bootstrapper/src/lux/analyser/case.clj4
-rw-r--r--lux-cl/source/program.lux26
-rw-r--r--lux-js/source/program.lux108
-rw-r--r--lux-jvm/source/luxc/lang/directive/jvm.lux290
-rw-r--r--lux-jvm/source/luxc/lang/host/jvm/def.lux4
-rw-r--r--lux-jvm/source/luxc/lang/host/jvm/inst.lux10
-rw-r--r--lux-jvm/source/luxc/lang/synthesis/variable.lux32
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm.lux12
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/case.lux20
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/common.lux40
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/expression.lux2
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux4
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux88
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/function.lux4
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/reference.lux4
-rw-r--r--lux-jvm/source/program.lux88
-rw-r--r--lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux46
-rw-r--r--lux-jvm/test/test/luxc/lang/synthesis/loop.lux24
-rw-r--r--lux-jvm/test/test/luxc/lang/synthesis/procedure.lux2
-rw-r--r--lux-jvm/test/test/luxc/lang/translation/js.lux28
-rw-r--r--lux-jvm/test/test/luxc/lang/translation/jvm.lux104
-rw-r--r--lux-lua/source/program.lux54
-rw-r--r--lux-php/source/program.lux42
-rw-r--r--lux-python/source/program.lux56
-rw-r--r--lux-r/source/luxc/lang/synthesis/variable.lux101
-rw-r--r--lux-r/source/program.lux44
-rw-r--r--lux-ruby/source/program.lux62
-rw-r--r--lux-scheme/source/program.lux40
-rw-r--r--stdlib/source/documentation/lux.lux76
-rw-r--r--stdlib/source/documentation/lux/control/concurrency/actor.lux8
-rw-r--r--stdlib/source/documentation/lux/control/maybe.lux2
-rw-r--r--stdlib/source/documentation/lux/control/try.lux4
-rw-r--r--stdlib/source/documentation/lux/data/collection/array.lux2
-rw-r--r--stdlib/source/documentation/lux/ffi.jvm.lux4
-rw-r--r--stdlib/source/documentation/lux/ffi.old.lux4
-rw-r--r--stdlib/source/library/lux.lux2308
-rw-r--r--stdlib/source/library/lux/abstract/comonad.lux26
-rw-r--r--stdlib/source/library/lux/abstract/enum.lux6
-rw-r--r--stdlib/source/library/lux/abstract/functor.lux8
-rw-r--r--stdlib/source/library/lux/abstract/monad.lux50
-rw-r--r--stdlib/source/library/lux/abstract/monad/free.lux44
-rw-r--r--stdlib/source/library/lux/abstract/monad/indexed.lux10
-rw-r--r--stdlib/source/library/lux/control/concatenative.lux8
-rw-r--r--stdlib/source/library/lux/control/concurrency/actor.lux34
-rw-r--r--stdlib/source/library/lux/control/concurrency/async.lux12
-rw-r--r--stdlib/source/library/lux/control/concurrency/frp.lux56
-rw-r--r--stdlib/source/library/lux/control/concurrency/semaphore.lux4
-rw-r--r--stdlib/source/library/lux/control/concurrency/stm.lux26
-rw-r--r--stdlib/source/library/lux/control/concurrency/thread.lux8
-rw-r--r--stdlib/source/library/lux/control/exception.lux32
-rw-r--r--stdlib/source/library/lux/control/function/memo.lux2
-rw-r--r--stdlib/source/library/lux/control/function/mutual.lux4
-rw-r--r--stdlib/source/library/lux/control/lazy.lux4
-rw-r--r--stdlib/source/library/lux/control/maybe.lux42
-rw-r--r--stdlib/source/library/lux/control/parser.lux138
-rw-r--r--stdlib/source/library/lux/control/parser/analysis.lux30
-rw-r--r--stdlib/source/library/lux/control/parser/binary.lux26
-rw-r--r--stdlib/source/library/lux/control/parser/cli.lux34
-rw-r--r--stdlib/source/library/lux/control/parser/code.lux76
-rw-r--r--stdlib/source/library/lux/control/parser/environment.lux4
-rw-r--r--stdlib/source/library/lux/control/parser/json.lux48
-rw-r--r--stdlib/source/library/lux/control/parser/synthesis.lux30
-rw-r--r--stdlib/source/library/lux/control/parser/text.lux62
-rw-r--r--stdlib/source/library/lux/control/parser/tree.lux6
-rw-r--r--stdlib/source/library/lux/control/parser/type.lux72
-rw-r--r--stdlib/source/library/lux/control/parser/xml.lux48
-rw-r--r--stdlib/source/library/lux/control/pipe.lux2
-rw-r--r--stdlib/source/library/lux/control/region.lux48
-rw-r--r--stdlib/source/library/lux/control/remember.lux10
-rw-r--r--stdlib/source/library/lux/control/try.lux72
-rw-r--r--stdlib/source/library/lux/control/writer.lux6
-rw-r--r--stdlib/source/library/lux/data/binary.lux38
-rw-r--r--stdlib/source/library/lux/data/bit.lux6
-rw-r--r--stdlib/source/library/lux/data/collection/array.lux46
-rw-r--r--stdlib/source/library/lux/data/collection/dictionary.lux196
-rw-r--r--stdlib/source/library/lux/data/collection/dictionary/ordered.lux204
-rw-r--r--stdlib/source/library/lux/data/collection/dictionary/plist.lux28
-rw-r--r--stdlib/source/library/lux/data/collection/list.lux164
-rw-r--r--stdlib/source/library/lux/data/collection/queue.lux2
-rw-r--r--stdlib/source/library/lux/data/collection/queue/priority.lux36
-rw-r--r--stdlib/source/library/lux/data/collection/row.lux90
-rw-r--r--stdlib/source/library/lux/data/collection/sequence.lux4
-rw-r--r--stdlib/source/library/lux/data/collection/set/multi.lux2
-rw-r--r--stdlib/source/library/lux/data/collection/stack.lux10
-rw-r--r--stdlib/source/library/lux/data/collection/tree.lux2
-rw-r--r--stdlib/source/library/lux/data/collection/tree/finger.lux24
-rw-r--r--stdlib/source/library/lux/data/collection/tree/zipper.lux88
-rw-r--r--stdlib/source/library/lux/data/format/binary.lux6
-rw-r--r--stdlib/source/library/lux/data/format/css.lux4
-rw-r--r--stdlib/source/library/lux/data/format/css/value.lux6
-rw-r--r--stdlib/source/library/lux/data/format/html.lux34
-rw-r--r--stdlib/source/library/lux/data/format/json.lux76
-rw-r--r--stdlib/source/library/lux/data/format/markdown.lux4
-rw-r--r--stdlib/source/library/lux/data/format/tar.lux24
-rw-r--r--stdlib/source/library/lux/data/format/xml.lux26
-rw-r--r--stdlib/source/library/lux/data/name.lux6
-rw-r--r--stdlib/source/library/lux/data/sum.lux30
-rw-r--r--stdlib/source/library/lux/data/text.lux26
-rw-r--r--stdlib/source/library/lux/data/text/encoding/utf8.lux4
-rw-r--r--stdlib/source/library/lux/data/text/escape.lux16
-rw-r--r--stdlib/source/library/lux/data/text/format.lux4
-rw-r--r--stdlib/source/library/lux/data/text/regex.lux48
-rw-r--r--stdlib/source/library/lux/data/text/unicode/set.lux4
-rw-r--r--stdlib/source/library/lux/debug.lux40
-rw-r--r--stdlib/source/library/lux/documentation.lux86
-rw-r--r--stdlib/source/library/lux/extension.lux4
-rw-r--r--stdlib/source/library/lux/ffi.js.lux40
-rw-r--r--stdlib/source/library/lux/ffi.jvm.lux180
-rw-r--r--stdlib/source/library/lux/ffi.lua.lux34
-rw-r--r--stdlib/source/library/lux/ffi.old.lux234
-rw-r--r--stdlib/source/library/lux/ffi.php.lux36
-rw-r--r--stdlib/source/library/lux/ffi.py.lux34
-rw-r--r--stdlib/source/library/lux/ffi.rb.lux38
-rw-r--r--stdlib/source/library/lux/ffi.scm.lux16
-rw-r--r--stdlib/source/library/lux/macro.lux30
-rw-r--r--stdlib/source/library/lux/macro/code.lux42
-rw-r--r--stdlib/source/library/lux/macro/local.lux28
-rw-r--r--stdlib/source/library/lux/macro/syntax.lux26
-rw-r--r--stdlib/source/library/lux/macro/syntax/definition.lux8
-rw-r--r--stdlib/source/library/lux/macro/syntax/export.lux6
-rw-r--r--stdlib/source/library/lux/macro/template.lux20
-rw-r--r--stdlib/source/library/lux/math/infix.lux18
-rw-r--r--stdlib/source/library/lux/math/modular.lux6
-rw-r--r--stdlib/source/library/lux/math/modulus.lux2
-rw-r--r--stdlib/source/library/lux/math/number.lux32
-rw-r--r--stdlib/source/library/lux/math/number/frac.lux22
-rw-r--r--stdlib/source/library/lux/math/number/i64.lux4
-rw-r--r--stdlib/source/library/lux/math/number/int.lux4
-rw-r--r--stdlib/source/library/lux/math/number/nat.lux58
-rw-r--r--stdlib/source/library/lux/math/number/ratio.lux6
-rw-r--r--stdlib/source/library/lux/math/number/rev.lux20
-rw-r--r--stdlib/source/library/lux/math/random.lux40
-rw-r--r--stdlib/source/library/lux/meta.lux252
-rw-r--r--stdlib/source/library/lux/meta/location.lux10
-rw-r--r--stdlib/source/library/lux/program.lux12
-rw-r--r--stdlib/source/library/lux/target/common_lisp.lux6
-rw-r--r--stdlib/source/library/lux/target/js.lux2
-rw-r--r--stdlib/source/library/lux/target/jvm.lux162
-rw-r--r--stdlib/source/library/lux/target/jvm/attribute.lux18
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode.lux60
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode/environment.lux16
-rw-r--r--stdlib/source/library/lux/target/jvm/bytecode/instruction.lux6
-rw-r--r--stdlib/source/library/lux/target/jvm/constant.lux28
-rw-r--r--stdlib/source/library/lux/target/jvm/constant/pool.lux12
-rw-r--r--stdlib/source/library/lux/target/jvm/encoding/signed.lux2
-rw-r--r--stdlib/source/library/lux/target/jvm/encoding/unsigned.lux4
-rw-r--r--stdlib/source/library/lux/target/jvm/loader.lux8
-rw-r--r--stdlib/source/library/lux/target/jvm/method.lux8
-rw-r--r--stdlib/source/library/lux/target/jvm/reflection.lux56
-rw-r--r--stdlib/source/library/lux/target/jvm/type/lux.lux16
-rw-r--r--stdlib/source/library/lux/target/python.lux4
-rw-r--r--stdlib/source/library/lux/target/ruby.lux2
-rw-r--r--stdlib/source/library/lux/target/scheme.lux14
-rw-r--r--stdlib/source/library/lux/test.lux8
-rw-r--r--stdlib/source/library/lux/time.lux2
-rw-r--r--stdlib/source/library/lux/time/date.lux4
-rw-r--r--stdlib/source/library/lux/time/day.lux4
-rw-r--r--stdlib/source/library/lux/time/duration.lux4
-rw-r--r--stdlib/source/library/lux/time/month.lux4
-rw-r--r--stdlib/source/library/lux/time/year.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/default/init.lux34
-rw-r--r--stdlib/source/library/lux/tool/compiler/default/platform.lux48
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux209
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/analysis/macro.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/directive.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/generation.lux70
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis.lux36
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case.lux100
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux112
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/function.lux20
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/inference.lux79
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/module.lux60
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/primitive.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/reference.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/scope.lux70
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/structure.lux82
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/type.lux10
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/directive.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension.lux34
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux30
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux268
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux32
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux22
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux26
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux30
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux24
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux14
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux28
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/lux.lux38
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux18
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux52
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux14
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux22
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux14
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/case.lux14
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/structure.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/case.lux36
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/structure.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/case.lux12
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/debug.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/apply.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/function/method/init.lux4
-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.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/primitive.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/program.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/reference.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/runtime.lux56
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/structure.lux10
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/case.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/case.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/structure.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux28
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/structure.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/case.lux18
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/common.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/host.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/structure.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/reference.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux30
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux12
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/function.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/structure.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis.lux38
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/case.lux166
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/function.lux76
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/loop.lux60
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/variable.lux266
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/program.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux82
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux274
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive.lux40
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/artifact.lux22
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/document.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/cache/dependency.lux4
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/io/archive.lux54
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/io/context.lux24
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux14
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/packager/scheme.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/phase.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/reference.lux16
-rw-r--r--stdlib/source/library/lux/tool/compiler/reference/variable.lux14
-rw-r--r--stdlib/source/library/lux/tool/interpreter.lux12
-rw-r--r--stdlib/source/library/lux/type.lux132
-rw-r--r--stdlib/source/library/lux/type/abstract.lux82
-rw-r--r--stdlib/source/library/lux/type/check.lux282
-rw-r--r--stdlib/source/library/lux/type/dynamic.lux2
-rw-r--r--stdlib/source/library/lux/type/implicit.lux54
-rw-r--r--stdlib/source/library/lux/type/poly.lux36
-rw-r--r--stdlib/source/library/lux/type/refinement.lux22
-rw-r--r--stdlib/source/library/lux/type/resource.lux2
-rw-r--r--stdlib/source/library/lux/world/console.lux26
-rw-r--r--stdlib/source/library/lux/world/db/jdbc/input.lux4
-rw-r--r--stdlib/source/library/lux/world/db/jdbc/output.lux64
-rw-r--r--stdlib/source/library/lux/world/file.lux170
-rw-r--r--stdlib/source/library/lux/world/file/watch.lux36
-rw-r--r--stdlib/source/library/lux/world/net/http/client.lux14
-rw-r--r--stdlib/source/library/lux/world/net/http/request.lux20
-rw-r--r--stdlib/source/library/lux/world/program.lux46
-rw-r--r--stdlib/source/library/lux/world/shell.lux26
-rw-r--r--stdlib/source/poly/lux/data/format/json.lux6
-rw-r--r--stdlib/source/program/aedifex.lux30
-rw-r--r--stdlib/source/program/aedifex/artifact/snapshot.lux12
-rw-r--r--stdlib/source/program/aedifex/artifact/snapshot/build.lux2
-rw-r--r--stdlib/source/program/aedifex/artifact/snapshot/stamp.lux4
-rw-r--r--stdlib/source/program/aedifex/artifact/snapshot/version.lux4
-rw-r--r--stdlib/source/program/aedifex/artifact/snapshot/version/value.lux2
-rw-r--r--stdlib/source/program/aedifex/artifact/time/date.lux2
-rw-r--r--stdlib/source/program/aedifex/artifact/versioning.lux6
-rw-r--r--stdlib/source/program/aedifex/cli.lux8
-rw-r--r--stdlib/source/program/aedifex/command/auto.lux4
-rw-r--r--stdlib/source/program/aedifex/command/build.lux48
-rw-r--r--stdlib/source/program/aedifex/command/deploy.lux2
-rw-r--r--stdlib/source/program/aedifex/command/deps.lux2
-rw-r--r--stdlib/source/program/aedifex/command/install.lux4
-rw-r--r--stdlib/source/program/aedifex/command/test.lux4
-rw-r--r--stdlib/source/program/aedifex/dependency/deployment.lux20
-rw-r--r--stdlib/source/program/aedifex/dependency/resolution.lux42
-rw-r--r--stdlib/source/program/aedifex/dependency/status.lux10
-rw-r--r--stdlib/source/program/aedifex/format.lux4
-rw-r--r--stdlib/source/program/aedifex/hash.lux4
-rw-r--r--stdlib/source/program/aedifex/input.lux8
-rw-r--r--stdlib/source/program/aedifex/metadata/artifact.lux28
-rw-r--r--stdlib/source/program/aedifex/metadata/snapshot.lux22
-rw-r--r--stdlib/source/program/aedifex/package.lux12
-rw-r--r--stdlib/source/program/aedifex/parser.lux2
-rw-r--r--stdlib/source/program/aedifex/pom.lux48
-rw-r--r--stdlib/source/program/aedifex/project.lux4
-rw-r--r--stdlib/source/program/aedifex/repository.lux16
-rw-r--r--stdlib/source/program/aedifex/repository/local.lux2
-rw-r--r--stdlib/source/program/aedifex/repository/origin.lux4
-rw-r--r--stdlib/source/program/aedifex/repository/remote.lux8
-rw-r--r--stdlib/source/program/compositor.lux18
-rw-r--r--stdlib/source/program/compositor/cli.lux12
-rw-r--r--stdlib/source/program/compositor/export.lux4
-rw-r--r--stdlib/source/program/compositor/import.lux4
-rw-r--r--stdlib/source/specification/aedifex/repository.lux4
-rw-r--r--stdlib/source/specification/compositor.lux4
-rw-r--r--stdlib/source/specification/compositor/analysis/type.lux16
-rw-r--r--stdlib/source/specification/compositor/generation/case.lux32
-rw-r--r--stdlib/source/specification/compositor/generation/common.lux160
-rw-r--r--stdlib/source/specification/compositor/generation/primitive.lux4
-rw-r--r--stdlib/source/specification/compositor/generation/reference.lux8
-rw-r--r--stdlib/source/specification/compositor/generation/structure.lux10
-rw-r--r--stdlib/source/specification/lux/abstract/codec.lux4
-rw-r--r--stdlib/source/specification/lux/world/console.lux6
-rw-r--r--stdlib/source/specification/lux/world/file.lux36
-rw-r--r--stdlib/source/specification/lux/world/shell.lux10
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/version/value.lux2
-rw-r--r--stdlib/source/test/aedifex/artifact/time/date.lux4
-rw-r--r--stdlib/source/test/aedifex/cache.lux10
-rw-r--r--stdlib/source/test/aedifex/cli.lux14
-rw-r--r--stdlib/source/test/aedifex/command/auto.lux12
-rw-r--r--stdlib/source/test/aedifex/command/build.lux46
-rw-r--r--stdlib/source/test/aedifex/command/deps.lux8
-rw-r--r--stdlib/source/test/aedifex/command/install.lux2
-rw-r--r--stdlib/source/test/aedifex/command/pom.lux6
-rw-r--r--stdlib/source/test/aedifex/command/test.lux12
-rw-r--r--stdlib/source/test/aedifex/command/version.lux4
-rw-r--r--stdlib/source/test/aedifex/dependency/deployment.lux4
-rw-r--r--stdlib/source/test/aedifex/dependency/resolution.lux108
-rw-r--r--stdlib/source/test/aedifex/dependency/status.lux2
-rw-r--r--stdlib/source/test/aedifex/hash.lux12
-rw-r--r--stdlib/source/test/aedifex/metadata/artifact.lux8
-rw-r--r--stdlib/source/test/aedifex/metadata/snapshot.lux8
-rw-r--r--stdlib/source/test/aedifex/package.lux18
-rw-r--r--stdlib/source/test/aedifex/parser.lux4
-rw-r--r--stdlib/source/test/aedifex/pom.lux10
-rw-r--r--stdlib/source/test/aedifex/project.lux8
-rw-r--r--stdlib/source/test/aedifex/repository.lux6
-rw-r--r--stdlib/source/test/aedifex/repository/local.lux4
-rw-r--r--stdlib/source/test/aedifex/repository/remote.lux16
-rw-r--r--stdlib/source/test/lux.lux62
-rw-r--r--stdlib/source/test/lux/abstract/apply.lux6
-rw-r--r--stdlib/source/test/lux/abstract/codec.lux4
-rw-r--r--stdlib/source/test/lux/abstract/enum.lux2
-rw-r--r--stdlib/source/test/lux/abstract/equivalence.lux2
-rw-r--r--stdlib/source/test/lux/abstract/functor.lux16
-rw-r--r--stdlib/source/test/lux/abstract/monad/free.lux6
-rw-r--r--stdlib/source/test/lux/abstract/predicate.lux2
-rw-r--r--stdlib/source/test/lux/control/concatenative.lux2
-rw-r--r--stdlib/source/test/lux/control/concurrency/actor.lux30
-rw-r--r--stdlib/source/test/lux/control/concurrency/async.lux10
-rw-r--r--stdlib/source/test/lux/control/concurrency/frp.lux24
-rw-r--r--stdlib/source/test/lux/control/concurrency/semaphore.lux10
-rw-r--r--stdlib/source/test/lux/control/continuation.lux4
-rw-r--r--stdlib/source/test/lux/control/exception.lux32
-rw-r--r--stdlib/source/test/lux/control/function/contract.lux8
-rw-r--r--stdlib/source/test/lux/control/maybe.lux12
-rw-r--r--stdlib/source/test/lux/control/parser.lux22
-rw-r--r--stdlib/source/test/lux/control/parser/analysis.lux34
-rw-r--r--stdlib/source/test/lux/control/parser/binary.lux42
-rw-r--r--stdlib/source/test/lux/control/parser/cli.lux22
-rw-r--r--stdlib/source/test/lux/control/parser/code.lux26
-rw-r--r--stdlib/source/test/lux/control/parser/environment.lux4
-rw-r--r--stdlib/source/test/lux/control/parser/json.lux68
-rw-r--r--stdlib/source/test/lux/control/parser/synthesis.lux34
-rw-r--r--stdlib/source/test/lux/control/parser/text.lux32
-rw-r--r--stdlib/source/test/lux/control/parser/tree.lux10
-rw-r--r--stdlib/source/test/lux/control/parser/type.lux80
-rw-r--r--stdlib/source/test/lux/control/parser/xml.lux66
-rw-r--r--stdlib/source/test/lux/control/region.lux18
-rw-r--r--stdlib/source/test/lux/control/remember.lux30
-rw-r--r--stdlib/source/test/lux/control/try.lux18
-rw-r--r--stdlib/source/test/lux/data/binary.lux18
-rw-r--r--stdlib/source/test/lux/data/collection/array.lux16
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary.lux26
-rw-r--r--stdlib/source/test/lux/data/collection/dictionary/ordered.lux6
-rw-r--r--stdlib/source/test/lux/data/collection/list.lux14
-rw-r--r--stdlib/source/test/lux/data/collection/queue.lux4
-rw-r--r--stdlib/source/test/lux/data/collection/queue/priority.lux4
-rw-r--r--stdlib/source/test/lux/data/collection/row.lux8
-rw-r--r--stdlib/source/test/lux/data/collection/set/ordered.lux2
-rw-r--r--stdlib/source/test/lux/data/collection/stack.lux6
-rw-r--r--stdlib/source/test/lux/data/collection/tree/finger.lux10
-rw-r--r--stdlib/source/test/lux/data/format/json.lux34
-rw-r--r--stdlib/source/test/lux/data/format/tar.lux86
-rw-r--r--stdlib/source/test/lux/data/sum.lux12
-rw-r--r--stdlib/source/test/lux/data/text.lux10
-rw-r--r--stdlib/source/test/lux/data/text/escape.lux20
-rw-r--r--stdlib/source/test/lux/data/text/format.lux2
-rw-r--r--stdlib/source/test/lux/data/text/regex.lux26
-rw-r--r--stdlib/source/test/lux/debug.lux18
-rw-r--r--stdlib/source/test/lux/documentation.lux8
-rw-r--r--stdlib/source/test/lux/extension.lux12
-rw-r--r--stdlib/source/test/lux/ffi.jvm.lux40
-rw-r--r--stdlib/source/test/lux/ffi.lua.lux2
-rw-r--r--stdlib/source/test/lux/ffi.old.lux10
-rw-r--r--stdlib/source/test/lux/locale.lux14
-rw-r--r--stdlib/source/test/lux/macro.lux12
-rw-r--r--stdlib/source/test/lux/macro/code.lux20
-rw-r--r--stdlib/source/test/lux/macro/local.lux14
-rw-r--r--stdlib/source/test/lux/macro/syntax/check.lux4
-rw-r--r--stdlib/source/test/lux/macro/syntax/declaration.lux4
-rw-r--r--stdlib/source/test/lux/macro/syntax/definition.lux16
-rw-r--r--stdlib/source/test/lux/macro/syntax/export.lux2
-rw-r--r--stdlib/source/test/lux/macro/syntax/input.lux4
-rw-r--r--stdlib/source/test/lux/macro/template.lux8
-rw-r--r--stdlib/source/test/lux/math/logic/fuzzy.lux4
-rw-r--r--stdlib/source/test/lux/math/modular.lux10
-rw-r--r--stdlib/source/test/lux/math/modulus.lux8
-rw-r--r--stdlib/source/test/lux/math/number.lux12
-rw-r--r--stdlib/source/test/lux/math/number/i64.lux2
-rw-r--r--stdlib/source/test/lux/math/number/ratio.lux4
-rw-r--r--stdlib/source/test/lux/meta.lux204
-rw-r--r--stdlib/source/test/lux/program.lux4
-rw-r--r--stdlib/source/test/lux/static.lux8
-rw-r--r--stdlib/source/test/lux/target/jvm.lux58
-rw-r--r--stdlib/source/test/lux/time.lux16
-rw-r--r--stdlib/source/test/lux/time/date.lux8
-rw-r--r--stdlib/source/test/lux/time/day.lux8
-rw-r--r--stdlib/source/test/lux/time/instant.lux4
-rw-r--r--stdlib/source/test/lux/time/month.lux8
-rw-r--r--stdlib/source/test/lux/time/year.lux12
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux30
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux10
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux16
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux12
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux30
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux70
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux134
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux16
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux10
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux4
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux64
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux16
-rw-r--r--stdlib/source/test/lux/type.lux16
-rw-r--r--stdlib/source/test/lux/type/abstract.lux6
-rw-r--r--stdlib/source/test/lux/type/check.lux231
-rw-r--r--stdlib/source/test/lux/type/dynamic.lux12
-rw-r--r--stdlib/source/test/lux/type/poly/equivalence.lux10
-rw-r--r--stdlib/source/test/lux/type/poly/json.lux10
-rw-r--r--stdlib/source/test/lux/type/refinement.lux2
-rw-r--r--stdlib/source/test/lux/type/resource.lux8
-rw-r--r--stdlib/source/test/lux/world/console.lux4
-rw-r--r--stdlib/source/test/lux/world/file/watch.lux14
-rw-r--r--stdlib/source/test/lux/world/net/http/client.lux6
-rw-r--r--stdlib/source/test/lux/world/program.lux4
-rw-r--r--stdlib/source/test/lux/world/shell.lux34
472 files changed, 7824 insertions, 7852 deletions
diff --git a/documentation/bookmark/security/capability_based.md b/documentation/bookmark/security/capability_based.md
index 06e79850b..26f24c0e0 100644
--- a/documentation/bookmark/security/capability_based.md
+++ b/documentation/bookmark/security/capability_based.md
@@ -1,4 +1,5 @@
# Reference
+1. [Introducing cap-std, a capability-based version of the Rust standard library](https://blog.sunfishcode.online/introducing-cap-std/)
1. [Introduction To Capability Based Security](http://www.skyhunter.com/marcs/capabilityIntro/index.html)
diff --git a/licentia/source/program/licentia.lux b/licentia/source/program/licentia.lux
index 058f762c7..21ba1bbfd 100644
--- a/licentia/source/program/licentia.lux
+++ b/licentia/source/program/licentia.lux
@@ -76,8 +76,8 @@
(\ ! each /output.license))))]
(\ file.default write (\ utf8.codec encoded document) output)))]
(wrap (debug.log! (case ?done
- (#try.Success _)
+ {#try.Success _}
(success_message output)
- (#try.Failure message)
+ {#try.Failure message}
message)))))
diff --git a/licentia/source/program/licentia/output.lux b/licentia/source/program/licentia/output.lux
index c271f3005..3429df952 100644
--- a/licentia/source/program/licentia/output.lux
+++ b/licentia/source/program/licentia/output.lux
@@ -167,7 +167,7 @@
(def: .public (extension value)
(-> Extension Text)
(let [[show? document] (case (value@ #license.notification_period value)
- (#.Some period)
+ {#.Some period}
[true (extension.notification_requirement period)]
#.None
@@ -195,14 +195,14 @@
(-> Attribution Text)
(let [copyright_notice (format "Attribution Copyright Notice: " (value@ #license.copyright_notice value))
phrase (case (value@ #license.phrase value)
- (#.Some phrase)
+ {#.Some phrase}
(format text.new_line "Attribution Phrase: " phrase text.new_line)
#.None
"")
url (format text.new_line "Attribution URL: " (value@ #license.url value))
image (case (value@ #license.image value)
- (#.Some image)
+ {#.Some image}
(format text.new_line "Attribution Image: " image)
#.None
@@ -258,7 +258,7 @@
(maybe\each ..identification)
(maybe.default ""))
identified? (case (value@ #license.identification value)
- (#.Some _)
+ {#.Some _}
true
#.None
diff --git a/licentia/source/test/licentia.lux b/licentia/source/test/licentia.lux
index 4940b31eb..7caf5301c 100644
--- a/licentia/source/test/licentia.lux
+++ b/licentia/source/test/licentia.lux
@@ -229,7 +229,7 @@
(present? extension.distinctness_requirement)))
(_.test "The community must be notified of new extensions."
(case (value@ #license.notification_period extension)
- (#.Some period)
+ {#.Some period}
(present? (extension.notification_requirement period))
#.None
@@ -298,7 +298,7 @@
(_.test "Identification is present (if the license is identified)."
(case (value@ #license.identification license)
- (#.Some identification)
+ {#.Some identification}
(and (present? (output.identification identification))
(present? miscellaneous.new_versions))
@@ -308,7 +308,7 @@
(_.test "Black-lists (if wanted by licensor) are explicitly enumerated and justified."
(list.every? (function (_ black_list)
(let [black_list_is_justified? (case (value@ #license.justification black_list)
- (#.Some justification)
+ {#.Some justification}
(present? justification)
#.None
@@ -348,7 +348,7 @@
(..about_extension present? (value@ #license.extension license))
(case (value@ #license.attribution license)
- (#.Some attribution)
+ {#.Some attribution}
(..about_attribution present? attribution)
#.None
diff --git a/lux-bootstrapper/src/lux/analyser.clj b/lux-bootstrapper/src/lux/analyser.clj
index f837d8cee..ce571cae8 100644
--- a/lux-bootstrapper/src/lux/analyser.clj
+++ b/lux-bootstrapper/src/lux/analyser.clj
@@ -86,14 +86,28 @@
(|do [_ (&type/check exo-type &type/Text)]
(return (&/|list (&&/|meta exo-type location (&&/$text ?value)))))
- (&/$Tuple ?elems)
- (&/with-analysis-meta location exo-type
- (&&lux/analyse-record analyse exo-type ?elems))
-
(&/$Tag ?ident)
(&/with-analysis-meta location exo-type
(analyse-variant+ analyse exo-type ?ident &/$End))
+ (&/$Variant (&/$Item [command-meta command] parameters))
+ (|case command
+ (&/$Nat idx)
+ (|let [(&/$Item [_ (&/$Bit ?right)] parameters*) parameters]
+ (&/with-analysis-meta location exo-type
+ (&&lux/analyse-variant analyse (&/$Right exo-type) (if ?right (inc idx) idx) ?right parameters*)))
+
+ (&/$Tag ?ident)
+ (&/with-analysis-meta location exo-type
+ (analyse-variant+ analyse exo-type ?ident parameters))
+
+ _
+ (&/fail-with-loc (str "[Analyser Error] Unknown syntax: " (&/show-ast (&/T [(&/T ["" -1 -1]) token])))))
+
+ (&/$Tuple ?elems)
+ (&/with-analysis-meta location exo-type
+ (&&lux/analyse-record analyse exo-type ?elems))
+
(&/$Identifier ?ident)
(&/with-analysis-meta location exo-type
(&&lux/analyse-identifier analyse exo-type ?ident))
@@ -146,7 +160,7 @@
)) parameters]
(&/with-location location
(|case ?labels
- [_ (&/$Form ?tags)]
+ [_ (&/$Variant ?tags)]
(&&lux/analyse-def-type-tagged analyse optimize eval! compile-def ?name ?value false ?tags exported?)
[_ (&/$Tuple ?slots)]
@@ -176,15 +190,6 @@
:else
(&&common/analyse-proc analyse exo-type ?procedure parameters))))
-
- (&/$Nat idx)
- (|let [(&/$Item [_ (&/$Bit ?right)] parameters*) parameters]
- (&/with-analysis-meta location exo-type
- (&&lux/analyse-variant analyse (&/$Right exo-type) (if ?right (inc idx) idx) ?right parameters*)))
-
- (&/$Tag ?ident)
- (&/with-analysis-meta location exo-type
- (analyse-variant+ analyse exo-type ?ident parameters))
;; Pattern-matching syntax.
(&/$Variant ?pattern-matching)
diff --git a/lux-bootstrapper/src/lux/analyser/case.clj b/lux-bootstrapper/src/lux/analyser/case.clj
index 49d781c3b..5d2bb020a 100644
--- a/lux-bootstrapper/src/lux/analyser/case.clj
+++ b/lux-bootstrapper/src/lux/analyser/case.clj
@@ -358,7 +358,7 @@
[=test =kont] (analyse-pattern &/$None case-type unit-tuple kont)]
(return (&/T [($VariantTestAC (&/T [idx (&/|length group) =test])) =kont])))
- (&/$Form (&/$Item [_ (&/$Nat idx)] (&/$Item [_ (&/$Bit right?)] ?values)))
+ (&/$Variant (&/$Item [_ (&/$Nat idx)] (&/$Item [_ (&/$Bit right?)] ?values)))
(let [idx (if right? (inc idx) idx)]
(|do [value-type* (adjust-type value-type)
case-type (&type/sum-at idx value-type*)
@@ -369,7 +369,7 @@
(analyse-pattern &/$None case-type (&/T [(&/T ["" -1 -1]) (&/$Tuple ?values)]) kont))]
(return (&/T [($VariantTestAC (&/T [idx (&/|length (&type/flatten-sum value-type*)) =test])) =kont]))))
- (&/$Form (&/$Item [_ (&/$Tag ?ident)] ?values))
+ (&/$Variant (&/$Item [_ (&/$Tag ?ident)] ?values))
(|do [[=module =name] (&&/resolved-ident ?ident)
must-infer? (&type/unknown? value-type)
[_exported? variant-type** group idx] (&module/find-tag =module (str "#" =name))
diff --git a/lux-cl/source/program.lux b/lux-cl/source/program.lux
index cf4ff1036..ef9c02b0e 100644
--- a/lux-cl/source/program.lux
+++ b/lux-cl/source/program.lux
@@ -169,7 +169,7 @@
(let [sub_value (:as java/lang/Object sub_value)]
(`` (<| (~~ (template [<type> <then>]
[(case (ffi.check <type> sub_value)
- (#.Some sub_value)
+ {#.Some sub_value}
(`` (|> sub_value (~~ (template.splice <then>))))
#.None)]
@@ -204,7 +204,7 @@
org/armedbear/lisp/LispObject
(case (array.read! (|> idx java/lang/Integer::longValue (:as Nat))
(:as (Array java/lang/Object) value))
- (#.Some sub)
+ {#.Some sub}
(to_sub sub)
#.None
@@ -224,7 +224,7 @@
value (read (org/armedbear/lisp/LispObject::NTH +2 host_object))]
(wrap [(java/lang/Long::intValue (:as java/lang/Long tag))
(case (ffi.check org/armedbear/lisp/Nil (org/armedbear/lisp/LispObject::NTH +1 host_object))
- (#.Some _)
+ {#.Some _}
(: Any (ffi.null))
_
@@ -239,18 +239,18 @@
(if (n.< size idx)
... TODO: Start using "SVREF" instead of "elt" ASAP
(case (read (org/armedbear/lisp/LispObject::elt (.int idx) host_object))
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success member)
+ {#try.Success member}
(recur (++ idx) (array.write! idx (:as Any member) output)))
- (#try.Success output)))))
+ {#try.Success output}))))
(def: (read host_object)
(Reader org/armedbear/lisp/LispObject)
(`` (<| (~~ (template [<class> <post_processing>]
[(case (ffi.check <class> host_object)
- (#.Some host_object)
+ {#.Some host_object}
(`` (|> host_object (~~ (template.splice <post_processing>))))
#.None)]
@@ -261,13 +261,13 @@
[org/armedbear/lisp/SimpleString [org/armedbear/lisp/SimpleString::getStringValue #try.Success]]
[org/armedbear/lisp/Cons [(read_variant read)]]
[org/armedbear/lisp/SimpleVector [(read_tuple read)]]
- [org/armedbear/lisp/Nil [(new> (#try.Success false) [])]]
+ [org/armedbear/lisp/Nil [(new> {#try.Success false} [])]]
[org/armedbear/lisp/Closure [#try.Success]]
[program/LuxADT [program/LuxADT::getValue #try.Success]]))
(case (ffi.check org/armedbear/lisp/Symbol host_object)
- (#.Some host_object)
+ {#.Some host_object}
(if (same? (org/armedbear/lisp/Symbol::T) host_object)
- (#try.Success true)
+ {#try.Success true}
(exception.throw ..unknown_kind_of_object (:as java/lang/Object host_object)))
#.None)
@@ -289,7 +289,7 @@
(def: (expander macro inputs lux)
Expander
(case (ensure_macro macro)
- (#.Some macro)
+ {#.Some macro}
(call_macro inputs lux macro)
#.None
@@ -381,7 +381,7 @@
(:as Try)
(exec
("lux io log" "TODO: Extender")
- (#try.Failure "TODO: Extender"))))
+ {#try.Failure "TODO: Extender"})))
@.common_lisp
(def: (extender handler)
diff --git a/lux-js/source/program.lux b/lux-js/source/program.lux
index 1e36e2906..8f81cd72f 100644
--- a/lux-js/source/program.lux
+++ b/lux-js/source/program.lux
@@ -69,7 +69,7 @@
(exception: (null_has_no_lux_representation [code (Maybe _.Expression)])
(case code
- (#.Some code)
+ {#.Some code}
(_.code code)
#.None
@@ -160,7 +160,7 @@
(-> Int org/openjdk/nashorn/api/scripting/JSObject)
(ffi.object [] org/openjdk/nashorn/api/scripting/AbstractJSObject [program/IntValue]
[]
-... Methods
+ ... Methods
(program/IntValue
[] (getValue self []) java/lang/Object
(:as java/lang/Object value))
@@ -214,18 +214,18 @@
(let [js_object (: (-> java/lang/Object org/openjdk/nashorn/api/scripting/JSObject)
(function (_ sub_value)
(<| (case (ffi.check [java/lang/Object] sub_value)
- (#.Some sub_value)
+ {#.Some sub_value}
(|> sub_value (:as (Array java/lang/Object)) js_structure)
#.None)
(case (ffi.check java/lang/Long sub_value)
- (#.Some sub_value)
+ {#.Some sub_value}
(|> sub_value (:as Int) js_int)
#.None)
-... else
+ ... else
(:as org/openjdk/nashorn/api/scripting/JSObject sub_value))))]
(ffi.object [] org/openjdk/nashorn/api/scripting/AbstractJSObject [program/StructureValue]
[]
-... Methods
+ ... Methods
(program/StructureValue
[] (getValue self []) java/lang/Object
(:as (Array java/lang/Object) value))
@@ -252,7 +252,7 @@
(^ (static runtime.variant_flag_field))
(case (array.read! 1 value)
- (#.Some set!)
+ {#.Some set!}
set!
_
@@ -280,7 +280,7 @@
["Class" (java/lang/Object::toString (java/lang/Object::getClass object))]
["Object" (java/lang/Object::toString object)]
["Keys" (case (ffi.check org/openjdk/nashorn/api/scripting/ScriptObjectMirror object)
- (#.Some object)
+ {#.Some object}
(|> object
(org/openjdk/nashorn/api/scripting/ScriptObjectMirror::getOwnKeys true)
(:as (Array Text))
@@ -295,17 +295,17 @@
(Maybe Int))
(case [(org/openjdk/nashorn/api/scripting/JSObject::getMember [runtime.i64_high_field] js_object)
(org/openjdk/nashorn/api/scripting/JSObject::getMember [runtime.i64_low_field] js_object)]
- (^multi [(#.Some high) (#.Some low)]
+ (^multi [{#.Some high} {#.Some low}]
[[(ffi.check java/lang/Number high)
(ffi.check java/lang/Number low)]
- [(#.Some high) (#.Some low)]]
+ [{#.Some high} {#.Some low}]]
[[(java/lang/Number::longValue high)
(java/lang/Number::longValue low)]
[high low]])
- (#.Some (.int (n.+ (|> high .nat (i64.left_shifted 32))
+ {#.Some (.int (n.+ (|> high .nat (i64.left_shifted 32))
(if (i.< +0 (.int low))
(|> low .nat (i64.left_shifted 32) (i64.right_shifted 32))
- (.nat low)))))
+ (.nat low))))}
_
#.None))
@@ -317,14 +317,14 @@
(case [(org/openjdk/nashorn/api/scripting/JSObject::getMember [runtime.variant_tag_field] js_object)
(org/openjdk/nashorn/api/scripting/JSObject::getMember [runtime.variant_flag_field] js_object)
(org/openjdk/nashorn/api/scripting/JSObject::getMember [runtime.variant_value_field] js_object)]
- (^multi [(#.Some tag) ?flag (#.Some value)]
+ (^multi [{#.Some tag} ?flag {#.Some value}]
[(ffi.check java/lang/Number tag)
- (#.Some tag)]
+ {#.Some tag}]
[(lux_object value)
- (#try.Success value)])
- (#.Some [(java/lang/Number::intValue (:as java/lang/Number tag))
+ {#try.Success value}])
+ {#.Some [(java/lang/Number::intValue (:as java/lang/Number tag))
(maybe.else (ffi.null) ?flag)
- value])
+ value]}
_
#.None))
@@ -340,22 +340,22 @@
(array.empty num_keys))]
(if (n.< num_keys idx)
(case (org/openjdk/nashorn/api/scripting/JSObject::getMember (%.nat idx) js_object)
- (#.Some member)
+ {#.Some member}
(case (ffi.check org/openjdk/nashorn/internal/runtime/Undefined member)
- (#.Some _)
+ {#.Some _}
(recur (++ idx) output)
#.None
(case (lux_object member)
- (#try.Success parsed_member)
+ {#try.Success parsed_member}
(recur (++ idx) (array.write! idx (:as java/lang/Object parsed_member) output))
- (#try.Failure error)
+ {#try.Failure error}
#.None))
#.None
(recur (++ idx) output))
- (#.Some output))))
+ {#.Some output})))
#.None))
(def: (lux_object js_object)
@@ -363,51 +363,51 @@
(`` (<| (if (ffi.null? js_object)
(exception.except ..null_has_no_lux_representation [#.None]))
(case (ffi.check org/openjdk/nashorn/internal/runtime/Undefined js_object)
- (#.Some _)
+ {#.Some _}
(exception.except ..undefined_has_no_lux_representation [])
#.None)
(~~ (template [<class>]
[(case (ffi.check <class> js_object)
- (#.Some js_object)
- (#try.Success js_object)
+ {#.Some js_object}
+ {#try.Success js_object}
#.None)]
[java/lang/Boolean] [java/lang/String]))
(~~ (template [<class> <method>]
[(case (ffi.check <class> js_object)
- (#.Some js_object)
- (#try.Success (<method> js_object))
+ {#.Some js_object}
+ {#try.Success (<method> js_object)}
#.None)]
[java/lang/Number java/lang/Number::doubleValue]
[program/StructureValue program/StructureValue::getValue]
[program/IntValue program/IntValue::getValue]))
(case (ffi.check org/openjdk/nashorn/api/scripting/ScriptObjectMirror js_object)
- (#.Some js_object)
+ {#.Some js_object}
(case (check_int js_object)
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(case (check_variant lux_object js_object)
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(case (check_tuple lux_object js_object)
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(if (org/openjdk/nashorn/api/scripting/JSObject::isFunction js_object)
- (#try.Success js_object)
-... (exception.except ..unknown_kind_of_host_object [(:as java/lang/Object js_object)])
- (#try.Success js_object)
+ {#try.Success js_object}
+ ... (exception.except ..unknown_kind_of_host_object [(:as java/lang/Object js_object)])
+ {#try.Success js_object}
))))
#.None)
-... else
-... (exception.except ..unknown_kind_of_host_object [(:as java/lang/Object js_object)])
- (#try.Success js_object)
+ ... else
+ ... (exception.except ..unknown_kind_of_host_object [(:as java/lang/Object js_object)])
+ {#try.Success js_object}
)))
(def: (ensure_function function)
@@ -417,7 +417,7 @@
(:as java/lang/Object)
(ffi.check org/openjdk/nashorn/api/scripting/JSObject))]
(if (org/openjdk/nashorn/api/scripting/JSObject::isFunction function)
- (#.Some function)
+ {#.Some function}
#.None)))
)
@@ -444,16 +444,16 @@
(def: (expander macro inputs lux)
Expander
(case (..ensure_function macro)
- (#.Some macro)
+ {#.Some macro}
(case (call_macro inputs lux macro)
- (#try.Success output)
+ {#try.Success output}
(|> output
(:as java/lang/Object)
lux_object
(:as (Try (Try [Lux (List Code)]))))
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
#.None
(exception.except ..cannot_apply_a_non_function (:as java/lang/Object macro))))
@@ -462,7 +462,7 @@
@.js
(def: (expander macro inputs lux)
Expander
- (#try.Success ((:as Macro' macro) inputs lux)))
+ {#try.Success ((:as Macro' macro) inputs lux)})
])
(for [@.old
@@ -471,11 +471,11 @@
(do try.monad
[?output (javax/script/ScriptEngine::eval (_.code input) interpreter)]
(case ?output
- (#.Some output)
+ {#.Some output}
(..lux_object output)
#.None
- (exception.except ..null_has_no_lux_representation [(#.Some input)]))))
+ (exception.except ..null_has_no_lux_representation [{#.Some input}]))))
(def: (execute! interpreter input)
(-> javax/script/ScriptEngine _.Statement (Try Any))
@@ -519,24 +519,24 @@
@.js
(as_is (def: (eval code)
(-> Text (Try (Maybe Any)))
-... Note: I have to call "eval" this way
-... in order to avoid a quirk of calling eval in Node
-... when the code is running under "use strict";.
+ ... Note: I have to call "eval" this way
+ ... in order to avoid a quirk of calling eval in Node
+ ... when the code is running under "use strict";.
(try (let [return ("js apply" (function.identity ("js constant" "eval")) code)]
(if ("js object null?" return)
#.None
- (#.Some return)))))
+ {#.Some return}))))
(def: (evaluate! alias input)
(-> Context _.Expression (Try Any))
(do try.monad
[?output (..eval (_.code input))]
(case ?output
- (#.Some output)
+ {#.Some output}
(in output)
#.None
- (exception.except ..null_has_no_lux_representation [(#.Some input)]))))
+ (exception.except ..null_has_no_lux_representation [{#.Some input}]))))
(def: (execute! input)
(-> _.Statement (Try Any))
diff --git a/lux-jvm/source/luxc/lang/directive/jvm.lux b/lux-jvm/source/luxc/lang/directive/jvm.lux
index b41e0b75f..b81a10c69 100644
--- a/lux-jvm/source/luxc/lang/directive/jvm.lux
+++ b/lux-jvm/source/luxc/lang/directive/jvm.lux
@@ -72,19 +72,19 @@
(def: (literal literal)
(-> /.Literal Inst)
(case literal
- (#/.Boolean value) (_.boolean value)
- (#/.Int value) (_.int value)
- (#/.Long value) (_.long value)
- (#/.Double value) (_.double value)
- (#/.Char value) (_.char value)
- (#/.String value) (_.string value)))
+ {#/.Boolean value} (_.boolean value)
+ {#/.Int value} (_.int value)
+ {#/.Long value} (_.long value)
+ {#/.Double value} (_.double value)
+ {#/.Char value} (_.char value)
+ {#/.String value} (_.string value)))
(def: (constant instruction)
(-> /.Constant Inst)
(case instruction
- (#/.BIPUSH constant) (_.BIPUSH constant)
+ {#/.BIPUSH constant} (_.BIPUSH constant)
- (#/.SIPUSH constant) (_.SIPUSH constant)
+ {#/.SIPUSH constant} (_.SIPUSH constant)
#/.ICONST_M1 _.ICONST_M1
#/.ICONST_0 _.ICONST_0
@@ -106,7 +106,7 @@
#/.ACONST_NULL _.NULL
- (#/.LDC literal)
+ {#/.LDC literal}
(..literal literal)
))
@@ -153,16 +153,16 @@
(def: (arithmetic instruction)
(-> /.Arithmetic Inst)
(case instruction
- (#/.Int_Arithmetic int_arithmetic)
+ {#/.Int_Arithmetic int_arithmetic}
(..int_arithmetic int_arithmetic)
- (#/.Long_Arithmetic long_arithmetic)
+ {#/.Long_Arithmetic long_arithmetic}
(..long_arithmetic long_arithmetic)
- (#/.Float_Arithmetic float_arithmetic)
+ {#/.Float_Arithmetic float_arithmetic}
(..float_arithmetic float_arithmetic)
- (#/.Double_Arithmetic double_arithmetic)
+ {#/.Double_Arithmetic double_arithmetic}
(..double_arithmetic double_arithmetic)))
(def: (int_bitwise instruction)
@@ -188,10 +188,10 @@
(def: (bitwise instruction)
(-> /.Bitwise Inst)
(case instruction
- (#/.Int_Bitwise int_bitwise)
+ {#/.Int_Bitwise int_bitwise}
(..int_bitwise int_bitwise)
- (#/.Long_Bitwise long_bitwise)
+ {#/.Long_Bitwise long_bitwise}
(..long_bitwise long_bitwise)))
(def: (conversion instruction)
@@ -221,8 +221,8 @@
(case instruction
#/.ARRAYLENGTH _.ARRAYLENGTH
- (#/.NEWARRAY type) (_.NEWARRAY type)
- (#/.ANEWARRAY type) (_.ANEWARRAY type)
+ {#/.NEWARRAY type} (_.NEWARRAY type)
+ {#/.ANEWARRAY type} (_.ANEWARRAY type)
#/.BALOAD _.BALOAD
#/.BASTORE _.BASTORE
@@ -252,20 +252,20 @@
(-> /.Object Inst)
(case instruction
(^template [<tag> <inst>]
- [(<tag> class field_name field_type)
+ [{<tag> class field_name field_type}
(<inst> class field_name field_type)])
([#/.GETSTATIC _.GETSTATIC]
[#/.PUTSTATIC _.PUTSTATIC]
[#/.GETFIELD _.GETFIELD]
[#/.PUTFIELD _.PUTFIELD])
- (#/.NEW type) (_.NEW type)
+ {#/.NEW type} (_.NEW type)
- (#/.INSTANCEOF type) (_.INSTANCEOF type)
- (#/.CHECKCAST type) (_.CHECKCAST type)
+ {#/.INSTANCEOF type} (_.INSTANCEOF type)
+ {#/.CHECKCAST type} (_.CHECKCAST type)
(^template [<tag> <inst>]
- [(<tag> class method_name method_type)
+ [{<tag> class method_name method_type}
(<inst> class method_name method_type)])
([#/.INVOKEINTERFACE _.INVOKEINTERFACE]
[#/.INVOKESPECIAL _.INVOKESPECIAL]
@@ -276,42 +276,42 @@
(def: (local_int instruction)
(-> /.Local_Int Inst)
(case instruction
- (#/.ILOAD register) (_.ILOAD register)
- (#/.ISTORE register) (_.ISTORE register)))
+ {#/.ILOAD register} (_.ILOAD register)
+ {#/.ISTORE register} (_.ISTORE register)))
(def: (local_long instruction)
(-> /.Local_Long Inst)
(case instruction
- (#/.LLOAD register) (_.LLOAD register)
- (#/.LSTORE register) (_.LSTORE register)))
+ {#/.LLOAD register} (_.LLOAD register)
+ {#/.LSTORE register} (_.LSTORE register)))
(def: (local_float instruction)
(-> /.Local_Float Inst)
(case instruction
- (#/.FLOAD register) (_.FLOAD register)
- (#/.FSTORE register) (_.FSTORE register)))
+ {#/.FLOAD register} (_.FLOAD register)
+ {#/.FSTORE register} (_.FSTORE register)))
(def: (local_double instruction)
(-> /.Local_Double Inst)
(case instruction
- (#/.DLOAD register) (_.DLOAD register)
- (#/.DSTORE register) (_.DSTORE register)))
+ {#/.DLOAD register} (_.DLOAD register)
+ {#/.DSTORE register} (_.DSTORE register)))
(def: (local_object instruction)
(-> /.Local_Object Inst)
(case instruction
- (#/.ALOAD register) (_.ALOAD register)
- (#/.ASTORE register) (_.ASTORE register)))
+ {#/.ALOAD register} (_.ALOAD register)
+ {#/.ASTORE register} (_.ASTORE register)))
(def: (local instruction)
(-> /.Local Inst)
(case instruction
- (#/.Local_Int instruction) (..local_int instruction)
- (#/.IINC register) (_.IINC register)
- (#/.Local_Long instruction) (..local_long instruction)
- (#/.Local_Float instruction) (..local_float instruction)
- (#/.Local_Double instruction) (..local_double instruction)
- (#/.Local_Object instruction) (..local_object instruction)))
+ {#/.Local_Int instruction} (..local_int instruction)
+ {#/.IINC register} (_.IINC register)
+ {#/.Local_Long instruction} (..local_long instruction)
+ {#/.Local_Float instruction} (..local_float instruction)
+ {#/.Local_Double instruction} (..local_double instruction)
+ {#/.Local_Object instruction} (..local_object instruction)))
(def: (stack instruction)
(-> /.Stack Inst)
@@ -340,34 +340,34 @@
(def: (branching instruction)
(-> (/.Branching org/objectweb/asm/Label) Inst)
(case instruction
- (#/.IF_ICMPEQ label) (_.IF_ICMPEQ label)
- (#/.IF_ICMPGE label) (_.IF_ICMPGE label)
- (#/.IF_ICMPGT label) (_.IF_ICMPGT label)
- (#/.IF_ICMPLE label) (_.IF_ICMPLE label)
- (#/.IF_ICMPLT label) (_.IF_ICMPLT label)
- (#/.IF_ICMPNE label) (_.IF_ICMPNE label)
- (#/.IFEQ label) (_.IFEQ label)
- (#/.IFGE label) (_.IFGE label)
- (#/.IFGT label) (_.IFGT label)
- (#/.IFLE label) (_.IFLE label)
- (#/.IFLT label) (_.IFLT label)
- (#/.IFNE label) (_.IFNE label)
-
- (#/.TABLESWITCH min max default labels)
+ {#/.IF_ICMPEQ label} (_.IF_ICMPEQ label)
+ {#/.IF_ICMPGE label} (_.IF_ICMPGE label)
+ {#/.IF_ICMPGT label} (_.IF_ICMPGT label)
+ {#/.IF_ICMPLE label} (_.IF_ICMPLE label)
+ {#/.IF_ICMPLT label} (_.IF_ICMPLT label)
+ {#/.IF_ICMPNE label} (_.IF_ICMPNE label)
+ {#/.IFEQ label} (_.IFEQ label)
+ {#/.IFGE label} (_.IFGE label)
+ {#/.IFGT label} (_.IFGT label)
+ {#/.IFLE label} (_.IFLE label)
+ {#/.IFLT label} (_.IFLT label)
+ {#/.IFNE label} (_.IFNE label)
+
+ {#/.TABLESWITCH min max default labels}
(_.TABLESWITCH min max default labels)
- (#/.LOOKUPSWITCH default keys+labels)
+ {#/.LOOKUPSWITCH default keys+labels}
(_.LOOKUPSWITCH default keys+labels)
- (#/.IF_ACMPEQ label) (_.IF_ACMPEQ label)
- (#/.IF_ACMPNE label) (_.IF_ACMPNE label)
- (#/.IFNONNULL label) (_.IFNONNULL label)
- (#/.IFNULL label) (_.IFNULL label)))
+ {#/.IF_ACMPEQ label} (_.IF_ACMPEQ label)
+ {#/.IF_ACMPNE label} (_.IF_ACMPNE label)
+ {#/.IFNONNULL label} (_.IFNONNULL label)
+ {#/.IFNULL label} (_.IFNULL label)))
(def: (exception instruction)
(-> (/.Exception org/objectweb/asm/Label) Inst)
(case instruction
- (#/.Try start end handler exception) (_.try start end handler exception)
+ {#/.Try start end handler exception} (_.try start end handler exception)
#/.ATHROW _.ATHROW))
(def: (concurrency instruction)
@@ -389,27 +389,27 @@
(def: (control instruction)
(-> (/.Control org/objectweb/asm/Label) Inst)
(case instruction
- (#/.GOTO label) (_.GOTO label)
- (#/.Branching instruction) (..branching instruction)
- (#/.Exception instruction) (..exception instruction)
- (#/.Concurrency instruction) (..concurrency instruction)
- (#/.Return instruction) (..return instruction)))
+ {#/.GOTO label} (_.GOTO label)
+ {#/.Branching instruction} (..branching instruction)
+ {#/.Exception instruction} (..exception instruction)
+ {#/.Concurrency instruction} (..concurrency instruction)
+ {#/.Return instruction} (..return instruction)))
(def: (instruction instruction)
(-> (/.Instruction Inst org/objectweb/asm/Label) Inst)
(case instruction
#/.NOP _.NOP
- (#/.Constant instruction) (..constant instruction)
- (#/.Arithmetic instruction) (..arithmetic instruction)
- (#/.Bitwise instruction) (..bitwise instruction)
- (#/.Conversion instruction) (..conversion instruction)
- (#/.Array instruction) (..array instruction)
- (#/.Object instruction) (..object instruction)
- (#/.Local instruction) (..local instruction)
- (#/.Stack instruction) (..stack instruction)
- (#/.Comparison instruction) (..comparison instruction)
- (#/.Control instruction) (..control instruction)
- (#/.Embedded embedded) embedded))
+ {#/.Constant instruction} (..constant instruction)
+ {#/.Arithmetic instruction} (..arithmetic instruction)
+ {#/.Bitwise instruction} (..bitwise instruction)
+ {#/.Conversion instruction} (..conversion instruction)
+ {#/.Array instruction} (..array instruction)
+ {#/.Object instruction} (..object instruction)
+ {#/.Local instruction} (..local instruction)
+ {#/.Stack instruction} (..stack instruction)
+ {#/.Comparison instruction} (..comparison instruction)
+ {#/.Control instruction} (..control instruction)
+ {#/.Embedded embedded} embedded))
(type: Mapping
(Dictionary /.Label org/objectweb/asm/Label))
@@ -421,7 +421,7 @@
(def: (relabel [mapping label])
(Re_labeler Identity)
(case (dictionary.value label mapping)
- (#.Some label)
+ {#.Some label}
[mapping label]
#.None
@@ -432,39 +432,39 @@
(Re_labeler /.Branching)
(case instruction
(^template [<tag>]
- [(<tag> label)
+ [{<tag> label}
(let [[mapping label] (..relabel [mapping label])]
- [mapping (<tag> label)])])
+ [mapping {<tag> label}])])
([#/.IF_ICMPEQ] [#/.IF_ICMPGE] [#/.IF_ICMPGT] [#/.IF_ICMPLE] [#/.IF_ICMPLT] [#/.IF_ICMPNE]
[#/.IFEQ] [#/.IFNE] [#/.IFGE] [#/.IFGT] [#/.IFLE] [#/.IFLT]
[#/.IF_ACMPEQ] [#/.IF_ACMPNE] [#/.IFNONNULL] [#/.IFNULL])
- (#/.TABLESWITCH min max default labels)
+ {#/.TABLESWITCH min max default labels}
(let [[mapping default] (..relabel [mapping default])
[mapping labels] (list\mix (function (_ input [mapping output])
(let [[mapping input] (..relabel [mapping input])]
[mapping (list& input output)]))
[mapping (list)] labels)]
- [mapping (#/.TABLESWITCH min max default (list.reversed labels))])
+ [mapping {#/.TABLESWITCH min max default (list.reversed labels)}])
- (#/.LOOKUPSWITCH default keys+labels)
+ {#/.LOOKUPSWITCH default keys+labels}
(let [[mapping default] (..relabel [mapping default])
[mapping keys+labels] (list\mix (function (_ [expected input] [mapping output])
(let [[mapping input] (..relabel [mapping input])]
[mapping (list& [expected input] output)]))
[mapping (list)] keys+labels)]
- [mapping (#/.LOOKUPSWITCH default (list.reversed keys+labels))])
+ [mapping {#/.LOOKUPSWITCH default (list.reversed keys+labels)}])
))
(def: (relabel_exception [mapping instruction])
(Re_labeler /.Exception)
(case instruction
- (#/.Try start end handler exception)
+ {#/.Try start end handler exception}
(let [[mapping start] (..relabel [mapping start])
[mapping end] (..relabel [mapping end])
[mapping handler] (..relabel [mapping handler])]
- [mapping (#/.Try start end handler exception)])
+ [mapping {#/.Try start end handler exception}])
#/.ATHROW
[mapping #/.ATHROW]
@@ -474,31 +474,31 @@
(Re_labeler /.Control)
(case instruction
(^template [<tag> <relabel>]
- [(<tag> instruction)
+ [{<tag> instruction}
(let [[mapping instruction] (<relabel> [mapping instruction])]
- [mapping (<tag> instruction)])])
+ [mapping {<tag> instruction}])])
([#/.GOTO ..relabel]
[#/.Branching ..relabel_branching]
[#/.Exception ..relabel_exception])
(^template [<tag>]
- [(<tag> instruction)
- [mapping (<tag> instruction)]])
+ [{<tag> instruction}
+ [mapping {<tag> instruction}]])
([#/.Concurrency] [#/.Return])
))
(def: (relabel_instruction [mapping instruction])
(Re_labeler (/.Instruction Inst))
(case instruction
- (#/.Embedded embedded)
- [mapping (#/.Embedded embedded)]
+ {#/.Embedded embedded}
+ [mapping {#/.Embedded embedded}]
#/.NOP
[mapping #/.NOP]
(^template [<tag>]
- [(<tag> instruction)
- [mapping (<tag> instruction)]])
+ [{<tag> instruction}
+ [mapping {<tag> instruction}]])
([#/.Constant]
[#/.Arithmetic]
[#/.Bitwise]
@@ -509,9 +509,9 @@
[#/.Stack]
[#/.Comparison])
- (#/.Control instruction)
+ {#/.Control instruction}
(let [[mapping instruction] (..relabel_control [mapping instruction])]
- [mapping (#/.Control instruction)])))
+ [mapping {#/.Control instruction}])))
(def: (relabel_bytecode [mapping bytecode])
(Re_labeler (/.Bytecode Inst))
@@ -587,10 +587,10 @@
..Handler))
(function (_ extension_name phase archive input)
(case (<code>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(phase.except extension.invalid_syntax [extension_name %.code input]))))
(type: Declaration
@@ -716,11 +716,11 @@
(type: (Method a)
(Variant
- (#Constructor (Constructor a))
- (#Override (Override a))
- (#Virtual (Virtual a))
- (#Static (Static a))
- (#Abstract Abstract)))
+ {#Constructor (Constructor a)}
+ {#Override (Override a)}
+ {#Virtual (Virtual a)}
+ {#Static (Static a)}
+ {#Abstract Abstract}))
(def: constructor
(Parser (Constructor Code))
@@ -843,10 +843,10 @@
(def: (header_value valueT)
(-> (Type Value) Inst)
(case (/type.primitive? valueT)
- (#.Left classT)
+ {#.Left classT}
_.NULL
- (#.Right primitiveT)
+ {#.Right primitiveT}
(cond (or (\ /type.equivalence = /type.boolean primitiveT)
(\ /type.equivalence = /type.byte primitiveT)
(\ /type.equivalence = /type.short primitiveT)
@@ -866,16 +866,16 @@
(def: (header_return returnT)
(-> (Type Return) Inst)
(case (/type.void? returnT)
- (#.Right returnT)
+ {#.Right returnT}
_.RETURN
- (#.Left valueT)
+ {#.Left valueT}
(case (/type.primitive? valueT)
- (#.Left classT)
+ {#.Left classT}
(|>> (header_value classT)
_.ARETURN)
- (#.Right primitiveT)
+ {#.Right primitiveT}
(cond (or (\ /type.equivalence = /type.boolean primitiveT)
(\ /type.equivalence = /type.byte primitiveT)
(\ /type.equivalence = /type.short primitiveT)
@@ -911,9 +911,9 @@
(def: (method_header super_class method)
(-> (Type Class) (Method Code) jvm.Def)
(case method
- (#Constructor [privacy strict_floating_point? annotations variables exceptions
+ {#Constructor [privacy strict_floating_point? annotations variables exceptions
self arguments constructor_arguments
- body])
+ body]}
(let [[super_name super_vars] (parser.read_class super_class)
init_constructor_arguments (|> constructor_arguments
(list\each (|>> product.left ..header_value))
@@ -933,9 +933,9 @@
(_.INVOKESPECIAL super_class ..constructor_name super_constructorT)
_.RETURN)))
- (#Override [[parent_name parent_variables] name strict_floating_point? annotations variables
+ {#Override [[parent_name parent_variables] name strict_floating_point? annotations variables
self arguments return exceptions
- body])
+ body]}
(def.method #jvm.Public
(if strict_floating_point?
jvm.strictM
@@ -944,9 +944,9 @@
(/type.method [variables (list\each product.right arguments) return exceptions])
(..header_return return))
- (#Virtual [name privacy final? strict_floating_point? annotations variables
+ {#Virtual [name privacy final? strict_floating_point? annotations variables
self arguments return exceptions
- body])
+ body]}
(def.method (..visibility privacy)
(|> jvm.noneM
(jvm.++M (if strict_floating_point?
@@ -959,9 +959,9 @@
(/type.method [variables (list\each product.right arguments) return exceptions])
(..header_return return))
- (#Static [name privacy strict_floating_point? annotations variables
+ {#Static [name privacy strict_floating_point? annotations variables
arguments return exceptions
- body])
+ body]}
(def.method (..visibility privacy)
(|> jvm.staticM
(jvm.++M (if strict_floating_point?
@@ -971,7 +971,7 @@
(/type.method [variables (list\each product.right arguments) return exceptions])
(..header_return return))
- (#Abstract method)
+ {#Abstract method}
(..abstract_method_generation method)
))
@@ -1033,7 +1033,7 @@
arguments)
returnT (//A.boxed_reflection_return mapping /type.void)
[_scope bodyA] (|> arguments'
- (#.Item [self selfT])
+ {#.Item [self selfT]}
list.reversed
(list\mix scopeA.with_local (analyse archive bodyC))
(typeA.with_type returnT)
@@ -1063,7 +1063,7 @@
arguments)
returnT (//A.boxed_reflection_return mapping returnJ)
[_scope bodyA] (|> arguments'
- (#.Item [self selfT])
+ {#.Item [self selfT]}
list.reversed
(list\mix scopeA.with_local (analyse archive bodyC))
(typeA.with_type returnT)
@@ -1091,7 +1091,7 @@
arguments)
returnT (//A.boxed_reflection_return mapping returnJ)
[_scope bodyA] (|> arguments'
- (#.Item [self selfT])
+ {#.Item [self selfT]}
list.reversed
(list\mix scopeA.with_local (analyse archive bodyC))
(typeA.with_type returnT)
@@ -1128,24 +1128,24 @@
(def: (method_analysis archive declaration supers method)
(-> Archive Declaration (List (Type Class)) (Method Code) (Operation (Method Analysis)))
(case method
- (#Constructor method)
+ {#Constructor method}
(\ phase.monad each (|>> #Constructor)
(constructor_method_analysis archive declaration method))
- (#Override method)
+ {#Override method}
(\ phase.monad each (|>> #Override)
(override_method_analysis archive declaration supers method))
- (#Virtual method)
+ {#Virtual method}
(\ phase.monad each (|>> #Virtual)
(virtual_method_analysis archive declaration method))
- (#Static method)
+ {#Static method}
(\ phase.monad each (|>> #Static)
(static_method_analysis archive method))
- (#Abstract method)
- (\ phase.monad in (#Abstract method))
+ {#Abstract method}
+ (\ phase.monad in {#Abstract method})
))
(template: (method_body <bodyS>)
@@ -1168,7 +1168,7 @@
(\ ! each (|>> [typeJ])
(synthesise archive termA)))
constructor_argumentsA)
- bodyS (synthesise archive (#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)))]
+ bodyS (synthesise archive {#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)})]
(in [privacy strict_floating_point? annotations method_tvars exceptions
self arguments constructor_argumentsS
(case bodyS
@@ -1187,7 +1187,7 @@
synthesise directive.synthesis]
(directive.lifted_synthesis
(do !
- [bodyS (synthesise archive (#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)))]
+ [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
method_tvars self arguments returnJ exceptionsJ
(case bodyS
@@ -1206,7 +1206,7 @@
synthesise directive.synthesis]
(directive.lifted_synthesis
(do !
- [bodyS (synthesise archive (#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)))]
+ [bodyS (synthesise archive {#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)})]
(in [name privacy final? strict_floating_point? annotations method_tvars
self arguments returnJ exceptionsJ
(case bodyS
@@ -1225,7 +1225,7 @@
synthesise directive.synthesis]
(directive.lifted_synthesis
(do !
- [bodyS (synthesise archive (#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)))]
+ [bodyS (synthesise archive {#analysis.Function (list) (//A.hide_method_body (list.size arguments) bodyA)})]
(in [name privacy strict_floating_point? annotations method_tvars
arguments returnJ exceptionsJ
(case bodyS
@@ -1238,24 +1238,24 @@
(def: (method_synthesis archive method)
(-> Archive (Method Analysis) (Operation (Method Synthesis)))
(case method
- (#Constructor method)
+ {#Constructor method}
(\ phase.monad each (|>> #Constructor)
(constructor_method_synthesis archive method))
- (#Override method)
+ {#Override method}
(\ phase.monad each (|>> #Override)
(override_method_synthesis archive method))
- (#Virtual method)
+ {#Virtual method}
(\ phase.monad each (|>> #Virtual)
(virtual_method_synthesis archive method))
- (#Static method)
+ {#Static method}
(\ phase.monad each (|>> #Static)
(static_method_synthesis archive method))
- (#Abstract method)
- (\ phase.monad in (#Abstract method))
+ {#Abstract method}
+ (\ phase.monad in {#Abstract method})
))
(def: (constructor_method_generation archive super_class method)
@@ -1363,19 +1363,19 @@
(def: (method_generation archive super_class method)
(-> Archive (Type Class) (Method Synthesis) (Operation jvm.Def))
(case method
- (#Constructor method)
+ {#Constructor method}
(..constructor_method_generation archive super_class method)
- (#Override method)
+ {#Override method}
(..override_method_generation archive method)
- (#Virtual method)
+ {#Virtual method}
(..virtual_method_generation archive method)
- (#Static method)
+ {#Static method}
(..static_method_generation archive method)
- (#Abstract method)
+ {#Abstract method}
(\ phase.monad in (..abstract_method_generation method))
))
@@ -1384,13 +1384,13 @@
(def: (convert_overriden_method method)
(-> (Method Code) (Maybe (//A.Overriden_Method Code)))
(case method
- (#Override [[parent_name parent_variables] method_name strict_floating_point? annotations variables
+ {#Override [[parent_name parent_variables] method_name strict_floating_point? annotations variables
self arguments return exceptions
- body])
- (#.Some [(/type.class parent_name parent_variables) method_name
+ body]}
+ {#.Some [(/type.class parent_name parent_variables) method_name
strict_floating_point? (list) variables
self arguments return exceptions
- body])
+ body]}
_
#.None))
@@ -1445,7 +1445,7 @@
(do !
[artifact_id (generation.learn_custom class_name)
_ (generation.execute! directive)
- _ (generation.save! artifact_id (#.Some class_name) directive)
+ _ (generation.save! artifact_id {#.Some class_name} directive)
_ (generation.log! (format "JVM Class " (%.text class_name)))]
(in directive.no_requirements)))))]))
@@ -1472,7 +1472,7 @@
(do !
[artifact_id (generation.learn_custom class_name)
_ (generation.execute! directive)
- _ (generation.save! artifact_id (#.Some class_name) directive)
+ _ (generation.save! artifact_id {#.Some class_name} directive)
_ (generation.log! (format "JVM Interface " (%.text class_name)))]
(in directive.no_requirements)))))]))
diff --git a/lux-jvm/source/luxc/lang/host/jvm/def.lux b/lux-jvm/source/luxc/lang/host/jvm/def.lux
index 36aed2d61..ecafc00d2 100644
--- a/lux-jvm/source/luxc/lang/host/jvm/def.lux
+++ b/lux-jvm/source/luxc/lang/host/jvm/def.lux
@@ -296,8 +296,8 @@
#.End
function.identity
- (#.Item singleton #.End)
+ {#.Item singleton #.End}
singleton
- (#.Item head tail)
+ {#.Item head tail}
(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 2255774f8..bbeffb023 100644
--- a/lux-jvm/source/luxc/lang/host/jvm/inst.lux
+++ b/lux-jvm/source/luxc/lang/host/jvm/inst.lux
@@ -152,7 +152,7 @@
(def: .public make_label
(All (_ s) (Operation s org/objectweb/asm/Label))
(function (_ state)
- (#try.Success [state (org/objectweb/asm/Label::new)])))
+ {#try.Success [state (org/objectweb/asm/Label::new)]}))
(def: .public (with_label action)
(All (_ a) (-> (-> org/objectweb/asm/Label a) a))
@@ -414,10 +414,10 @@
(def: .public (array elementT)
(-> (Type Value) Inst)
(case (type.primitive? elementT)
- (#.Left elementT)
+ {#.Left elementT}
(ANEWARRAY elementT)
- (#.Right elementT)
+ {#.Right elementT}
(NEWARRAY elementT)))
(template [<name> <boolean> <byte> <short> <int> <long> <float> <double> <char>]
@@ -462,8 +462,8 @@
#.End
function.identity
- (#.Item singleton #.End)
+ {#.Item singleton #.End}
singleton
- (#.Item head tail)
+ {#.Item head tail}
(function.composite (fuse tail) head)))
diff --git a/lux-jvm/source/luxc/lang/synthesis/variable.lux b/lux-jvm/source/luxc/lang/synthesis/variable.lux
index 12594e154..685eaae92 100644
--- a/lux-jvm/source/luxc/lang/synthesis/variable.lux
+++ b/lux-jvm/source/luxc/lang/synthesis/variable.lux
@@ -11,10 +11,10 @@
(def: (bound-vars path)
(-> ls.Path (List Variable))
(case path
- (#ls.BindP register)
+ {#ls.BindP register}
(list (.int register))
- (^or (#ls.SeqP pre post) (#ls.AltP pre post))
+ (^or {#ls.SeqP pre post} {#ls.AltP pre post})
(list/composite (bound-vars pre) (bound-vars post))
_
@@ -23,13 +23,13 @@
(def: (path-bodies path)
(-> ls.Path (List ls.Synthesis))
(case path
- (#ls.ExecP body)
+ {#ls.ExecP body}
(list body)
- (#ls.SeqP pre post)
+ {#ls.SeqP pre post}
(path-bodies post)
- (#ls.AltP pre post)
+ {#ls.AltP pre post}
(list/composite (path-bodies pre) (path-bodies post))
_
@@ -49,40 +49,40 @@
(let [tracker (loop [exprS exprS
tracker (list/mix s.has init-tracker bound)]
(case exprS
- (#ls.Variable var)
+ {#ls.Variable var}
(if (non-arg? current-arity var)
(s.lacks var tracker)
tracker)
- (#ls.Variant tag last? memberS)
+ {#ls.Variant tag last? memberS}
(recur memberS tracker)
- (#ls.Tuple membersS)
+ {#ls.Tuple membersS}
(list/mix recur tracker membersS)
- (#ls.Call funcS argsS)
+ {#ls.Call funcS argsS}
(list/mix recur (recur funcS tracker) argsS)
- (^or (#ls.Recur argsS)
- (#ls.Procedure name argsS))
+ (^or {#ls.Recur argsS}
+ {#ls.Procedure name argsS})
(list/mix recur tracker argsS)
- (#ls.Let offset inputS outputS)
+ {#ls.Let offset inputS outputS}
(|> tracker (recur inputS) (recur outputS))
- (#ls.If testS thenS elseS)
+ {#ls.If testS thenS elseS}
(|> tracker (recur testS) (recur thenS) (recur elseS))
- (#ls.Loop offset initsS bodyS)
+ {#ls.Loop offset initsS bodyS}
(recur bodyS (list/mix recur tracker initsS))
- (#ls.Case inputS outputPS)
+ {#ls.Case inputS outputPS}
(let [tracker' (list/mix s.has
(recur inputS tracker)
(bound-vars outputPS))]
(list/mix recur tracker' (path-bodies outputPS)))
- (#ls.Function arity env bodyS)
+ {#ls.Function arity env bodyS}
(list/mix s.lacks tracker env)
_
diff --git a/lux-jvm/source/luxc/lang/translation/jvm.lux b/lux-jvm/source/luxc/lang/translation/jvm.lux
index db7b5b3fa..6a641f0ee 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm.lux
@@ -83,20 +83,20 @@
(def: (class_value class_name class)
(-> Text (java/lang/Class java/lang/Object) (Try Any))
(case (java/lang/Class::getField ..value_field class)
- (#try.Success field)
+ {#try.Success field}
(case (java/lang/reflect/Field::get #.None field)
- (#try.Success ?value)
+ {#try.Success ?value}
(case ?value
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(exception.except ..invalid_value class_name))
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..cannot_load [class_name error]))
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..invalid_field [class_name ..value_field error])))
(def: class_path_separator ".")
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/case.lux b/lux-jvm/source/luxc/lang/translation/jvm/case.lux
index a6d0a725f..0959130a3 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/case.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/case.lux
@@ -106,15 +106,15 @@
#synthesis.Pop
(operation@in ..popI)
- (#synthesis.Bind register)
+ {#synthesis.Bind register}
(operation@in (|>> peekI
(_.ASTORE register)))
- (#synthesis.Bit_Fork when thenP elseP)
+ {#synthesis.Bit_Fork when thenP elseP}
(do phase.monad
[thenG (path' stack_depth @else @end phase archive thenP)
elseG (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(path' stack_depth @else @end phase archive elseP)
#.None
@@ -129,7 +129,7 @@
elseG))))
(^template [<tag> <unwrap> <dup> <pop> <test> <comparison> <if>]
- [(<tag> cons)
+ [{<tag> cons}
(do [@ phase.monad]
[forkG (: (Operation Inst)
(monad.mix @ (function (_ [test thenP] elseG)
@@ -146,7 +146,7 @@
elseG)))))
(|>> <pop>
(_.GOTO @else))
- (#.Item cons)))]
+ {#.Item cons}))]
(in (|>> peekI
<unwrap>
forkG)))])
@@ -156,7 +156,7 @@
(_.INVOKEVIRTUAL (type.class "java.lang.Object" (list)) "equals" ..equalsJT)
_.IFEQ])
- (#synthesis.Then bodyS)
+ {#synthesis.Then bodyS}
(do phase.monad
[bodyI (phase archive bodyS)]
(in (|>> (pop_altI stack_depth)
@@ -202,14 +202,14 @@
([synthesis.member/left ..left_projection]
[synthesis.member/right ..right_projection])
- (#synthesis.Seq leftP rightP)
+ {#synthesis.Seq leftP rightP}
(do phase.monad
[leftI (path' stack_depth @else @end phase archive leftP)
rightI (path' stack_depth @else @end phase archive rightP)]
(in (|>> leftI
rightI)))
- (#synthesis.Alt leftP rightP)
+ {#synthesis.Alt leftP rightP}
(do phase.monad
[@alt_else _.make_label
leftI (path' (++ stack_depth) @alt_else @end phase archive leftP)
@@ -268,10 +268,10 @@
[recordG (phase archive recordS)]
(in (list@mix (function (_ step so_far)
(.let [next (.case step
- (#.Left lefts)
+ {#.Left lefts}
(..left_projection lefts)
- (#.Right lefts)
+ {#.Right lefts}
(..right_projection lefts))]
(|>> so_far next)))
recordG
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/common.lux b/lux-jvm/source/luxc/lang/translation/jvm/common.lux
index 8db12bd7e..2dade7a97 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/common.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/common.lux
@@ -32,21 +32,21 @@
... (All (_ a) (-> (Meta a) (Meta [Artifacts a])))
... (function (_ state)
... (case (action (revised@ #.host
-... (|>> (:coerce Host)
-... (with@ #artifacts (dictionary.new text.hash))
-... (:coerce Nothing))
-... state))
-... (#try.Success [state' output])
-... (#try.Success [(revised@ #.host
-... (|>> (:coerce Host)
-... (with@ #artifacts (|> (value@ #.host state) (:coerce Host) (value@ #artifacts)))
-... (:coerce Nothing))
-... state')
-... [(|> state' (value@ #.host) (:coerce Host) (value@ #artifacts))
-... output]])
+... (|>> (:coerce Host)
+... (with@ #artifacts (dictionary.new text.hash))
+... (:coerce Nothing))
+... state))
+... {#try.Success [state' output]}
+... {#try.Success [(revised@ #.host
+... (|>> (:coerce Host)
+... (with@ #artifacts (|> (value@ #.host state) (:coerce Host) (value@ #artifacts)))
+... (:coerce Nothing))
+... state')
+... [(|> state' (value@ #.host) (:coerce Host) (value@ #artifacts))
+... output]]}
-... (#try.Failure error)
-... (#try.Failure error))))
+... {#try.Failure error}
+... {#try.Failure error})))
... (def: .public (load-definition state)
... (-> Lux (-> Name Binary (Try Any)))
@@ -60,14 +60,14 @@
... (case (do try.monad
... [field (Class::getField [..value-field] class)]
... (Field::get [#.None] field))
-... (#try.Success (#.Some def-value))
+... {#try.Success {#.Some def-value}}
... (wrap def-value)
-... (#try.Success #.None)
+... {#try.Success #.None}
... (phase.throw invalid-definition-value (%name def-name))
-... (#try.Failure error)
+... {#try.Failure error}
... (phase.throw cannot-load-definition
-... (format "Definition: " (%name def-name) "\n"
-... "Error:\n"
-... error))))))))
+... (format "Definition: " (%name def-name) "\n"
+... "Error:\n"
+... error))))))))
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/expression.lux b/lux-jvm/source/luxc/lang/translation/jvm/expression.lux
index 087ebfaff..a460ad96b 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/expression.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/expression.lux
@@ -72,5 +72,5 @@
(^ (synthesis.function/abstraction data))
(function.function translate archive data)
- (#synthesis.Extension extension)
+ {#synthesis.Extension extension}
(extension.apply archive translate extension)))
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux b/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux
index e3ac4141b..8d92a68eb 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/extension/common.lux
@@ -48,10 +48,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(phase.except extension.invalid_syntax [extension_name %synthesis input]))))
(import: java/lang/Double
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 131ff0968..8535c3b35 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/extension/host.lux
@@ -96,9 +96,9 @@
(do <>.monad
[arrayJT (<text>.then parser.array <synthesis>.text)]
(case (parser.array? arrayJT)
- (#.Some elementJT)
+ {#.Some elementJT}
(case (parser.object? elementJT)
- (#.Some elementJT)
+ {#.Some elementJT}
(in elementJT)
#.None
@@ -629,7 +629,7 @@
(do phase.monad
[]
(case (dictionary.value unboxed ..primitives)
- (#.Some primitive)
+ {#.Some primitive}
(in (_.GETSTATIC (type.class class (list)) field primitive))
#.None
@@ -644,7 +644,7 @@
[valueI (generate archive valueS)
.let [$class (type.class class (list))]]
(case (dictionary.value unboxed ..primitives)
- (#.Some primitive)
+ {#.Some primitive}
(in (|>> valueI
(_.PUTSTATIC $class field primitive)
(_.string synthesis.unit)))
@@ -664,7 +664,7 @@
[objectI (generate archive objectS)
.let [$class (type.class class (list))
getI (case (dictionary.value unboxed ..primitives)
- (#.Some primitive)
+ {#.Some primitive}
(_.GETFIELD $class field primitive)
#.None
@@ -683,7 +683,7 @@
objectI (generate archive objectS)
.let [$class (type.class class (list))
putI (case (dictionary.value unboxed ..primitives)
- (#.Some primitive)
+ {#.Some primitive}
(_.PUTFIELD $class field primitive)
#.None
@@ -709,10 +709,10 @@
(do phase.monad
[valueI (generate archive valueS)]
(case (type.primitive? valueT)
- (#.Right valueT)
+ {#.Right valueT}
(in [valueT valueI])
- (#.Left valueT)
+ {#.Left valueT}
(in [valueT (|>> valueI
(_.CHECKCAST valueT))]))))
@@ -722,10 +722,10 @@
(def: (prepare_output outputT)
(-> (Type Return) Inst)
(case (type.void? outputT)
- (#.Right outputT)
+ {#.Right outputT}
..voidI
- (#.Left outputT)
+ {#.Left outputT}
function.identity))
(def: invoke::static
@@ -814,26 +814,26 @@
[0 _] body
[1 _] body
- [2 (#synthesis.Control (#synthesis.Branch (#synthesis.Let _ 2 hidden)))]
+ [2 {#synthesis.Control {#synthesis.Branch {#synthesis.Let _ 2 hidden}}}]
hidden
- [_ (#synthesis.Control (#synthesis.Branch (#synthesis.Case _ path)))]
+ [_ {#synthesis.Control {#synthesis.Branch {#synthesis.Case _ path}}}]
(loop [path path]
(case path
(^or #synthesis.Pop
- (#synthesis.Access _)
- (#synthesis.Bind _)
- (#synthesis.Bit_Fork _)
- (#synthesis.I64_Fork _)
- (#synthesis.F64_Fork _)
- (#synthesis.Text_Fork _)
- (#synthesis.Alt _))
+ {#synthesis.Access _}
+ {#synthesis.Bind _}
+ {#synthesis.Bit_Fork _}
+ {#synthesis.I64_Fork _}
+ {#synthesis.F64_Fork _}
+ {#synthesis.Text_Fork _}
+ {#synthesis.Alt _})
body
- (#synthesis.Seq _ next)
+ {#synthesis.Seq _ next}
(recur next)
- (#synthesis.Then hidden)
+ {#synthesis.Then hidden}
hidden))
_
@@ -873,27 +873,27 @@
(synthesis.path/then (normalize bodyS))
(^template [<tag>]
- [(^ (<tag> leftP rightP))
- (<tag> (recur leftP) (recur rightP))])
+ [(^ {<tag> leftP rightP})
+ {<tag> (recur leftP) (recur rightP)}])
([#synthesis.Alt]
[#synthesis.Seq])
(^template [<tag>]
- [(^ (<tag> value))
+ [(^ {<tag> value})
path])
([#synthesis.Pop]
[#synthesis.Bind]
[#synthesis.Access])
- (#synthesis.Bit_Fork when then else)
- (#synthesis.Bit_Fork when (recur then) (maybe\each recur else))
+ {#synthesis.Bit_Fork when then else}
+ {#synthesis.Bit_Fork when (recur then) (maybe\each recur else)}
(^template [<tag>]
- [(<tag> [[test then] elses])
- (<tag> [[test (recur then)]
+ [{<tag> [[test then] elses]}
+ {<tag> [[test (recur then)]
(list\each (function (_ [else_test else_then])
[else_test (recur else_then)])
- elses)])])
+ elses)]}])
([#synthesis.I64_Fork]
[#synthesis.F64_Fork]
[#synthesis.Text_Fork])
@@ -903,11 +903,11 @@
(-> (Dictionary Synthesis Variable) Synthesis Synthesis)
(function (recur body)
(case body
- (^template [<tag>]
- [(^ (<tag> value))
- body])
- ([#synthesis.Primitive]
- [synthesis.constant])
+ (^ {#synthesis.Primitive value})
+ body
+
+ (^ {synthesis.constant value})
+ body
(^ (synthesis.variant [lefts right? sub]))
(synthesis.variant [lefts right? (recur sub)])
@@ -957,8 +957,8 @@
(^ (synthesis.function/apply [functionS inputsS+]))
(synthesis.function/apply [(recur functionS) (list\each recur inputsS+)])
- (#synthesis.Extension [name inputsS+])
- (#synthesis.Extension [name (list\each recur inputsS+)]))))
+ {#synthesis.Extension [name inputsS+]}
+ {#synthesis.Extension [name (list\each recur inputsS+)]})))
(def: $Object
(type.class "java.lang.Object" (list)))
@@ -999,14 +999,14 @@
(def: (prepare_argument lux_register argumentT jvm_register)
(-> Register (Type Value) Register [Register Inst])
(case (type.primitive? argumentT)
- (#.Left argumentT)
+ {#.Left argumentT}
[(n.+ 1 jvm_register)
(if (n.= lux_register jvm_register)
(|>>)
(|>> (_.ALOAD jvm_register)
(_.ASTORE lux_register)))]
- (#.Right argumentT)
+ {#.Right argumentT}
(template.let [(wrap_primitive <shift> <load> <type>)
[[(n.+ <shift> jvm_register)
(|>> (<load> jvm_register)
@@ -1040,21 +1040,21 @@
(def: .public (returnI returnT)
(-> (Type Return) Inst)
(case (type.void? returnT)
- (#.Right returnT)
+ {#.Right returnT}
_.RETURN
- (#.Left returnT)
+ {#.Left returnT}
(case (type.primitive? returnT)
- (#.Left returnT)
+ {#.Left returnT}
(case (type.class? returnT)
- (#.Some class_name)
+ {#.Some class_name}
(|>> (_.CHECKCAST returnT)
_.ARETURN)
#.None
_.ARETURN)
- (#.Right returnT)
+ {#.Right returnT}
(template.let [(unwrap_primitive <return> <type>)
[(|>> (_.unwrap <type>)
<return>)]]
@@ -1102,7 +1102,7 @@
... Give them names as "foreign" variables.
list.enumeration
(list\each (function (_ [id capture])
- [capture (#variable.Foreign id)]))
+ [capture {#variable.Foreign id}]))
(dictionary.of_list synthesis.hash))
normalized_methods (list\each (function (_ [environment
[ownerT name
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/function.lux b/lux-jvm/source/luxc/lang/translation/jvm/function.lux
index 2a202fbcd..7630191e9 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/function.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/function.lux
@@ -308,7 +308,7 @@
(do [! phase.monad]
[@begin _.make_label
[function_context bodyI] (case forced_context
- (#.Some function_context)
+ {#.Some function_context}
(do !
[without_context (generation.with_anchor [@begin 1]
(generate archive bodyS))]
@@ -331,7 +331,7 @@
#.None
(generation.save! (product.right function_context) #.None directive)
- (#.Some function_context)
+ {#.Some function_context}
(in []))]
(in instanceI)))
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/reference.lux b/lux-jvm/source/luxc/lang/translation/jvm/reference.lux
index 9b0feeb78..3c76f44c0 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/reference.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/reference.lux
@@ -53,10 +53,10 @@
(def: .public (variable archive variable)
(-> Archive Variable (Operation Inst))
(case variable
- (#variable.Local variable)
+ {#variable.Local variable}
(operation@in (local variable))
- (#variable.Foreign variable)
+ {#variable.Foreign variable}
(foreign archive variable)))
(def: .public (constant archive name)
diff --git a/lux-jvm/source/program.lux b/lux-jvm/source/program.lux
index b2319af7e..e3244f410 100644
--- a/lux-jvm/source/program.lux
+++ b/lux-jvm/source/program.lux
@@ -144,73 +144,73 @@
unwrap_long (: (-> Synthesis Synthesis)
(|>> (list ($.text jvm/type/box.long)
($.text "long"))
- (#$.Extension "jvm object cast")))
+ {#$.Extension "jvm object cast"}))
long_to_int (: (-> Synthesis Synthesis)
(|>> (list)
- (#$.Extension "jvm conversion long-to-int")))
+ {#$.Extension "jvm conversion long-to-int"}))
literal_nat (: (-> Nat Synthesis)
(|>> .i64 $.i64 unwrap_long long_to_int))
write! (: (-> Text Nat Synthesis Synthesis Synthesis)
(function (_ element_class index value array)
- ((#$.Extension "jvm array write object"
- (list (jvm_type (jvm/type.array (jvm/type.class element_class (list))))
- (literal_nat index)
- value
- array)))))
+ ({#$.Extension "jvm array write object"
+ (list (jvm_type (jvm/type.array (jvm/type.class element_class (list))))
+ (literal_nat index)
+ value
+ array)})))
object_array (: (-> Text Nat Synthesis)
(function (_ class_name size)
- (#$.Extension "jvm array new object"
- (list (class_type class_name)
- (literal_nat size)))))
+ {#$.Extension "jvm array new object"
+ (list (class_type class_name)
+ (literal_nat size))}))
class_of (: (-> Synthesis Synthesis)
(function (_ object)
- (#$.Extension "jvm member invoke virtual"
- (list& (class_type "java.lang.Object")
- ($.text "getClass")
- (class_type "java.lang.Class")
- object
- (list)))))
+ {#$.Extension "jvm member invoke virtual"
+ (list& (class_type "java.lang.Object")
+ ($.text "getClass")
+ (class_type "java.lang.Class")
+ object
+ (list))}))
input (: (All (_ c) (-> (jvm/type.Type c) Synthesis Synthesis))
(function (_ value_type value)
($.tuple (list (jvm_type value_type) value))))
- example_object (#$.Extension "jvm member invoke constructor"
- (list& (class_type "java.lang.Object")
- (list)))
+ example_object {#$.Extension "jvm member invoke constructor"
+ (list& (class_type "java.lang.Object")
+ (list))}
phase_arity 3
$phase ($.variable/local 1)
$archive ($.variable/local 2)
$input ($.variable/local 3)
$state ($.variable/local 4)
- apply_method (#$.Extension "jvm member invoke virtual"
- (list& (class_type "java.lang.Class")
- ($.text "getMethod")
- (class_type "java.lang.reflect.Method")
- (class_of $phase)
- (list (input java/lang/String
- ($.text runtime.apply_method))
- (input <java/lang/Class>
- (|> (object_array "java.lang.Class" phase_arity)
- (write! "java.lang.Class" 0 (class_of example_object))
- (write! "java.lang.Class" 1 (class_of example_object))
- (write! "java.lang.Class" 2 (class_of example_object)))))))]
- (#$.Extension "jvm member invoke virtual"
- (list& (class_type "java.lang.reflect.Method")
- ($.text "invoke")
- (class_type "java.lang.Object")
- apply_method
- (list (input java/lang/Object
- $phase)
- (input <java/lang/Object>
- (|> (object_array "java.lang.Object" phase_arity)
- (write! "java.lang.Object" 0 $archive)
- (write! "java.lang.Object" 1 $input)
- (write! "java.lang.Object" 2 $state))))))))
+ apply_method {#$.Extension "jvm member invoke virtual"
+ (list& (class_type "java.lang.Class")
+ ($.text "getMethod")
+ (class_type "java.lang.reflect.Method")
+ (class_of $phase)
+ (list (input java/lang/String
+ ($.text runtime.apply_method))
+ (input <java/lang/Class>
+ (|> (object_array "java.lang.Class" phase_arity)
+ (write! "java.lang.Class" 0 (class_of example_object))
+ (write! "java.lang.Class" 1 (class_of example_object))
+ (write! "java.lang.Class" 2 (class_of example_object))))))}]
+ {#$.Extension "jvm member invoke virtual"
+ (list& (class_type "java.lang.reflect.Method")
+ ($.text "invoke")
+ (class_type "java.lang.Object")
+ apply_method
+ (list (input java/lang/Object
+ $phase)
+ (input <java/lang/Object>
+ (|> (object_array "java.lang.Object" phase_arity)
+ (write! "java.lang.Object" 0 $archive)
+ (write! "java.lang.Object" 1 $input)
+ (write! "java.lang.Object" 2 $state)))))}))
(def: (phase_wrapper archive)
(-> Archive (generation.Operation _.Anchor _.Inst _.Definition phase.Wrapper))
(do phase.monad
- [instanceG (function.function' (#.Some [0 (.nat -1)]) expression.translate archive [(list) 4 ..how_to_wrap_a_phase])
+ [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.trusted
diff --git a/lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux b/lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux
index ef12fcf25..81328faec 100644
--- a/lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux
+++ b/lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux
@@ -42,10 +42,10 @@
(_primitive.analyse (` ((~ (code.text procedure)) (~+ params)))))))
(analysis.with-current-module "")
(macro.result (initL.compiler []))
- (case> (#e.Success _)
+ (case> {#e.Success _}
<success>
- (#e.Error error)
+ {#e.Error error}
<failure>)))]
[success #1 #0]
@@ -63,10 +63,10 @@
(_primitive.analyse syntax))))
(analysis.with-current-module "")
(macro.result (initL.compiler []))
- (case> (#e.Success _)
+ (case> {#e.Success _}
<success>
- (#e.Error error)
+ {#e.Error error}
<failure>)))]
[success' #1 #0]
@@ -281,14 +281,14 @@
size (|> r.nat (:: @ each cap))
idx (|> r.nat (:: @ each (n/% size)))
level (|> r.nat (:: @ each cap))
- #let [unboxedT (#.Primitive unboxed (list))
- arrayT (#.Primitive "#Array" (list unboxedT))
+ #let [unboxedT {#.Primitive unboxed (list)}
+ arrayT {#.Primitive "#Array" (list unboxedT)}
arrayC (`' ("lux check" (+0 "#Array" (+1 (+0 (~ (code.text unboxed)) (+0)) (+0)))
("jvm array new" (~ (code.nat size)))))
- boxedT (#.Primitive boxed (list))
+ boxedT {#.Primitive boxed (list)}
boxedTC (` (+0 (~ (code.text boxed)) (+0)))
multi-arrayT (list/mix (function (_ _ innerT)
- (|> innerT (list) (#.Primitive "#Array")))
+ (|> innerT (list) {#.Primitive "#Array"}))
boxedT
(list.n/range +1 level))]]
($_ seq
@@ -335,7 +335,7 @@
[!unboxed !boxed] (|> array-type
(r.filter (function (_ [!unboxed !boxed])
(not (text/= boxed !boxed)))))
- #let [boxedT (#.Primitive boxed (list))
+ #let [boxedT {#.Primitive boxed (list)}
boxedC (`' ("lux check" (+0 (~ (code.text boxed)) (+0))
("jvm object null")))
!boxedC (`' ("lux check" (+0 (~ (code.text !boxed)) (+0))
@@ -354,12 +354,12 @@
(test "jvm object null"
(success "jvm object null"
(list)
- (#.Primitive boxed (list))))
+ {#.Primitive boxed (list)}))
(test "jvm object null (no primitives)"
(or (text/= "java.lang.Object" boxed)
(failure "jvm object null"
(list)
- (#.Primitive unboxed (list)))))
+ {#.Primitive unboxed (list)})))
(test "jvm object null?"
(success "jvm object null?"
(list boxedC)
@@ -381,7 +381,7 @@
(test "jvm object class"
(success "jvm object class"
(list (code.text boxed))
- (#.Primitive "java.lang.Class" (list boxedT))))
+ {#.Primitive "java.lang.Class" (list boxedT)}))
(test "jvm object instance?"
(success "jvm object instance?"
(list (code.text boxed)
@@ -406,12 +406,12 @@
(success "jvm member static get"
(list (code.text "java.lang.System")
(code.text "out"))
- (#.Primitive "java.io.PrintStream" (list))))
+ {#.Primitive "java.io.PrintStream" (list)}))
(test "jvm member static get (inheritance out)"
(success "jvm member static get"
(list (code.text "java.lang.System")
(code.text "out"))
- (#.Primitive "java.lang.Object" (list))))
+ {#.Primitive "java.lang.Object" (list)}))
(test "jvm member static put"
(success "jvm member static put"
(list (code.text "java.awt.datatransfer.DataFlavor")
@@ -444,14 +444,14 @@
(code.text "id")
(`' ("lux check" (+0 "org.omg.CORBA.ValueMember" (+0))
("jvm object null"))))
- (#.Primitive "java.lang.String" (list))))
+ {#.Primitive "java.lang.String" (list)}))
(test "jvm member virtual get (inheritance out)"
(success "jvm member virtual get"
(list (code.text "org.omg.CORBA.ValueMember")
(code.text "id")
(`' ("lux check" (+0 "org.omg.CORBA.ValueMember" (+0))
("jvm object null"))))
- (#.Primitive "java.lang.Object" (list))))
+ {#.Primitive "java.lang.Object" (list)}))
(test "jvm member virtual put"
(success "jvm member virtual put"
(list (code.text "org.omg.CORBA.ValueMember")
@@ -488,14 +488,14 @@
(success "jvm member static get"
(list (code.text "java.util.GregorianCalendar")
(code.text "AD"))
- (#.Primitive "java.lang.Integer" (list))))
+ {#.Primitive "java.lang.Integer" (list)}))
(test "jvm member virtual get"
(success "jvm member virtual get"
(list (code.text "javax.accessibility.AccessibleAttributeSequence")
(code.text "startIndex")
(`' ("lux check" (+0 "javax.accessibility.AccessibleAttributeSequence" (+0))
("jvm object null"))))
- (#.Primitive "java.lang.Integer" (list))))
+ {#.Primitive "java.lang.Integer" (list)}))
(test "jvm member virtual put"
(success "jvm member virtual put"
(list (code.text "javax.accessibility.AccessibleAttributeSequence")
@@ -522,28 +522,28 @@
(success' (` ("jvm member invoke static"
"java.lang.Long" "decode"
["java.lang.String" (~ stringC)]))
- (#.Primitive "java.lang.Long" (list))))
+ {#.Primitive "java.lang.Long" (list)}))
(test "jvm member invoke virtual"
(success' (` ("jvm object cast"
("jvm member invoke virtual"
"java.lang.Object" "equals"
("jvm object cast" (~ longC)) ["java.lang.Object" ("jvm object cast" (~ longC))])))
- (#.Primitive "java.lang.Boolean" (list))))
+ {#.Primitive "java.lang.Boolean" (list)}))
(test "jvm member invoke special"
(success' (` ("jvm object cast"
("jvm member invoke special"
"java.lang.Long" "equals"
("jvm object cast" (~ longC)) ["java.lang.Object" ("jvm object cast" (~ longC))])))
- (#.Primitive "java.lang.Boolean" (list))))
+ {#.Primitive "java.lang.Boolean" (list)}))
(test "jvm member invoke interface"
(success' (` ("jvm object cast"
("jvm member invoke interface"
"java.util.Collection" "add"
("jvm object cast" (~ objectC)) ["java.lang.Object" ("jvm object cast" (~ longC))])))
- (#.Primitive "java.lang.Boolean" (list))))
+ {#.Primitive "java.lang.Boolean" (list)}))
(test "jvm member invoke constructor"
(success' (` ("jvm member invoke constructor"
"java.util.ArrayList"
["int" ("jvm object cast" (~ intC))]))
- (All (_ a) (#.Primitive "java.util.ArrayList" (list a)))))
+ (All (_ a) {#.Primitive "java.util.ArrayList" (list a)})))
)))
diff --git a/lux-jvm/test/test/luxc/lang/synthesis/loop.lux b/lux-jvm/test/test/luxc/lang/synthesis/loop.lux
index ad2a67deb..b923a4e90 100644
--- a/lux-jvm/test/test/luxc/lang/synthesis/loop.lux
+++ b/lux-jvm/test/test/luxc/lang/synthesis/loop.lux
@@ -21,29 +21,29 @@
(-> ls.Arity ls.Synthesis Bit)
(loop [exprS exprS]
(case exprS
- (^ [_ (#.Form (list [_ (#.Text "lux case")] inputS pathS))])
+ (^ [_ {#.Form (list [_ {#.Text "lux case"}] inputS pathS)}])
(loop [pathS pathS]
(case pathS
- (^ [_ (#.Form (list [_ (#.Text "lux case alt")] leftS rightS))])
+ (^ [_ {#.Form (list [_ {#.Text "lux case alt"}] leftS rightS)}])
(or (recur leftS)
(recur rightS))
- (^ [_ (#.Form (list [_ (#.Text "lux case seq")] leftS rightS))])
+ (^ [_ {#.Form (list [_ {#.Text "lux case seq"}] leftS rightS)}])
(recur rightS)
- (^ [_ (#.Form (list [_ (#.Text "lux case exec")] bodyS))])
+ (^ [_ {#.Form (list [_ {#.Text "lux case exec"}] bodyS)}])
(does-recursion? arity bodyS)
_
#0))
- (^ [_ (#.Form (list& [_ (#.Text "lux recur")] argsS))])
+ (^ [_ {#.Form (list& [_ {#.Text "lux recur"}] argsS)}])
(n/= arity (list.size argsS))
- (^ [_ (#.Form (list [_ (#.Text "lux let")] register inputS bodyS))])
+ (^ [_ {#.Form (list [_ {#.Text "lux let"}] register inputS bodyS)}])
(recur bodyS)
- (^ [_ (#.Form (list [_ (#.Text "lux if")] inputS thenS elseS))])
+ (^ [_ {#.Form (list [_ {#.Text "lux if"}] inputS thenS elseS)}])
(or (recur thenS)
(recur elseS))
@@ -132,7 +132,7 @@
(test "Can accurately identify (and then reify) tail recursion."
(case (expressionS.synthesize extensionL.no-syntheses
analysis)
- (^ [_ (#.Form (list [_ (#.Text "lux function")] [_ (#.Nat _arity)] [_ (#.Tuple _env)] _body))])
+ (^ [_ {#.Form (list [_ {#.Text "lux function"}] [_ {#.Nat _arity}] [_ {#.Tuple _env}] _body)}])
(|> _body
(does-recursion? arity)
(bit/= prediction)
@@ -149,13 +149,13 @@
(test "Can reify loops."
(case (expressionS.synthesize extensionL.no-syntheses
(la.apply (list.repeat arity (' [])) analysis))
- (^ [_ (#.Form (list [_ (#.Text "lux loop")] [_ (#.Nat in_register)] [_ (#.Tuple _inits)] _body))])
+ (^ [_ {#.Form (list [_ {#.Text "lux loop"}] [_ {#.Nat in_register}] [_ {#.Tuple _inits}] _body)}])
(and (n/= arity (list.size _inits))
(not (loopS.contains-self-reference? _body)))
- (^ [_ (#.Form (list& [_ (#.Text "lux call")]
- [_ (#.Form (list [_ (#.Text "lux function")] _arity _env _bodyS))]
- argsS))])
+ (^ [_ {#.Form (list& [_ {#.Text "lux call"}]
+ [_ {#.Form (list [_ {#.Text "lux function"}] _arity _env _bodyS)}]
+ argsS)}])
(loopS.contains-self-reference? _bodyS)
_
diff --git a/lux-jvm/test/test/luxc/lang/synthesis/procedure.lux b/lux-jvm/test/test/luxc/lang/synthesis/procedure.lux
index 1262f2252..0d73b1038 100644
--- a/lux-jvm/test/test/luxc/lang/synthesis/procedure.lux
+++ b/lux-jvm/test/test/luxc/lang/synthesis/procedure.lux
@@ -24,7 +24,7 @@
(test "Can synthesize procedure calls."
(|> (expressionS.synthesize extensionL.no-syntheses
(la.procedure nameA argsA))
- (case> (^ [_ (#.Form (list& [_ (#.Text procedure)] argsS))])
+ (case> (^ [_ {#.Form (list& [_ {#.Text procedure}] argsS)}])
(and (text/= nameA procedure)
(list.every? (product.uncurried corresponds?)
(list.zip2 argsA argsS)))
diff --git a/lux-jvm/test/test/luxc/lang/translation/js.lux b/lux-jvm/test/test/luxc/lang/translation/js.lux
index effad7726..69bcd7ecd 100644
--- a/lux-jvm/test/test/luxc/lang/translation/js.lux
+++ b/lux-jvm/test/test/luxc/lang/translation/js.lux
@@ -22,7 +22,7 @@
(def: (test-primitive-identity synthesis)
(-> Synthesis Bit)
(|> (run-js (` ("lux is" (~ synthesis) (~ synthesis))))
- (case> (#e.Success valueV)
+ (case> {#e.Success valueV}
(:coerce Bit valueV)
_
@@ -33,10 +33,10 @@
(template [<name> <type> <pre> <=>]
[(def: (<name> angle)
(-> <type> Check)
- (|>> (case> (#e.Success valueV)
+ (|>> (case> {#e.Success valueV}
(<=> (<pre> angle) (:coerce <type> valueV))
- (#e.Error error)
+ {#e.Error error}
#0)))]
[sin-check Frac math.sin f/=]
@@ -73,7 +73,7 @@
($_ seq
(test "Cannot get non-existing fields from objects."
(|> (run-js (` ("js object get" (~ field) (~ empty-object))))
- (case> (^multi (#e.Success valueV)
+ (case> (^multi {#e.Success valueV}
[(:coerce (Maybe Int) valueV) #.None])
#1
@@ -81,8 +81,8 @@
#0)))
(test "Can get fields from objects."
(|> (run-js (` ("js object get" (~ field) (~ object))))
- (case> (^multi (#e.Success valueV)
- [(:coerce (Maybe Int) valueV) (#.Some valueV)])
+ (case> (^multi {#e.Success valueV}
+ [(:coerce (Maybe Int) valueV) {#.Some valueV}])
(i/= value (:coerce Int valueV))
_
@@ -90,7 +90,7 @@
(test "Can delete fields from objects."
(|> (run-js (let [post-delete (` ("js object delete" (~ field) (~ object)))]
(` ("js object get" (~ field) (~ post-delete)))))
- (case> (^multi (#e.Success valueV)
+ (case> (^multi {#e.Success valueV}
[(:coerce (Maybe Int) valueV) #.None])
#1
@@ -99,10 +99,10 @@
(test "Can instance new objects."
(let [base (` ("js object new" ("js global" "Number") (~ (code.text (%f frac-value)))))]
(|> (run-js (` ("lux frac +" (~ base) 0.0)))
- (case> (#e.Success valueV)
+ (case> {#e.Success valueV}
(f/= frac-value (:coerce Frac valueV))
- (#e.Error error)
+ {#e.Error error}
#0))))
(test "Can call methods on objects."
(|> (run-js (` ("js object call" ("js global" "Math") "sin" (~ (code.text (%f frac-value))))))
@@ -124,9 +124,9 @@
(length-check length)))
(test "Can get an element from an array."
(|> (run-js (` ("js array read" (~ (code.nat idx)) (~ arrayS))))
- (case> (^multi (#e.Success elemV)
+ (case> (^multi {#e.Success elemV}
[[(list.nth idx elems) (:coerce (Maybe Nat) elemV)]
- [(#.Some reference) (#.Some sample)]])
+ [{#.Some reference} {#.Some sample}]])
(n/= reference sample)
_
@@ -136,9 +136,9 @@
overwriteS (code.nat overwrite)]
(|> (run-js (` ("js array read" (~ idxS)
("js array write" (~ idxS) (~ overwriteS) (~ arrayS)))))
- (case> (^multi (#e.Success elemV)
+ (case> (^multi {#e.Success elemV}
[(:coerce (Maybe Nat) elemV)
- (#.Some sample)])
+ {#.Some sample}])
(n/= overwrite sample)
_
@@ -149,7 +149,7 @@
(and (|> (run-js (` ("js array length" (~ deleteS))))
(length-check length))
(|> (run-js (` ("js array read" (~ idxS) (~ deleteS))))
- (case> (^multi (#e.Success elemV)
+ (case> (^multi {#e.Success elemV}
[(:coerce (Maybe Nat) elemV)
#.None])
#1
diff --git a/lux-jvm/test/test/luxc/lang/translation/jvm.lux b/lux-jvm/test/test/luxc/lang/translation/jvm.lux
index 95812e6ca..86c8253e4 100644
--- a/lux-jvm/test/test/luxc/lang/translation/jvm.lux
+++ b/lux-jvm/test/test/luxc/lang/translation/jvm.lux
@@ -36,10 +36,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success valueT)
+ (case> {#e.Success valueT}
(<test> <sample> (:coerce <cast> valueT))
- (#e.Error error)
+ {#e.Error error}
#0)))]
["jvm convert double-to-float" "jvm convert float-to-double" code.frac frac-sample Frac f/=]
@@ -68,10 +68,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success valueT)
+ (case> {#e.Success valueT}
(<test> <sample> (:coerce <cast> valueT))
- (#e.Error error)
+ {#e.Error error}
#0)))]
["jvm convert long-to-int" "jvm convert int-to-char" "jvm convert char-to-long" code.int int-sample Int i/=]
@@ -95,10 +95,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success valueT)
+ (case> {#e.Success valueT}
(<test> <sample> (:coerce <cast> valueT))
- (#e.Error error)
+ {#e.Error error}
#0)))]
["jvm convert long-to-int" "jvm convert int-to-char" "jvm convert char-to-byte" "jvm convert byte-to-long" code.int int-sample Int i/=]
@@ -136,11 +136,11 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success valueT)
+ (case> {#e.Success valueT}
(<test> (<reference> param subject)
(:coerce <type> valueT))
- (#e.Error error)
+ {#e.Error error}
#0)))]
[(format "jvm " <domain> " +") <+>]
@@ -175,11 +175,11 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success valueT)
+ (case> {#e.Success valueT}
(n/= (<reference> param subject)
(:coerce Nat valueT))
- (#e.Error error)
+ {#e.Error error}
#0)))]
[(format "jvm " <domain> " and") bit.and]
@@ -209,11 +209,11 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success valueT)
+ (case> {#e.Success valueT}
(<test> (<reference> shift (<pre-subject> subject))
(:coerce <type> valueT))
- (#e.Error error)
+ {#e.Error error}
#0)))]
[(format "jvm " <domain> " shl") bit.left-shift Nat n/= id code.nat]
@@ -241,11 +241,11 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success valueT)
+ (case> {#e.Success valueT}
(bit/= (<reference> param subject)
(:coerce Bit valueT))
- (#e.Error error)
+ {#e.Error error}
#0)))]
[(format "jvm " <domain> " =") <=>]
@@ -297,10 +297,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputZ)
+ (case> {#e.Success outputZ}
(<test> <value> (:coerce <type> outputZ))
- (#e.Error error)
+ {#e.Error error}
#0)))]
["boolean" Bit valueZ bit/= (code.bit valueZ)
@@ -345,10 +345,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(<test> <value> (:coerce <type> outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))]
["char" Int valueC i/=
@@ -373,10 +373,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(f/= valueD (:coerce Frac outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm array length"
(|> (do macro.Monad<Meta>
@@ -384,10 +384,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(n/= size (:coerce Nat outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
)))))
@@ -435,10 +435,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(:coerce Bit outputT)
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm object null?"
(|> (do macro.Monad<Meta>
@@ -446,10 +446,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(not (:coerce Bit outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm object synchronized"
(|> (do macro.Monad<Meta>
@@ -457,10 +457,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(i/= sample (:coerce Int outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm object throw"
(|> (do macro.Monad<Meta>
@@ -472,15 +472,15 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(case (:coerce (e.Error Any) outputT)
- (#e.Error error)
+ {#e.Error error}
(text.contains? exception-message error)
- (#e.Success outputT)
+ {#e.Success outputT}
#0)
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm object class"
(|> (do macro.Monad<Meta>
@@ -488,10 +488,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(|> outputT (:coerce Class) (Class::getName []) (text/= class))
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm object instance?"
(|> (do macro.Monad<Meta>
@@ -499,10 +499,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(:coerce Bit outputT)
- (#e.Error error)
+ {#e.Error error}
#0)))
))))
@@ -531,10 +531,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(i/= GregorianCalendar::AD (:coerce Int outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm member static put"
(|> (do macro.Monad<Meta>
@@ -543,10 +543,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(same? hostL.unit (:coerce Text outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm member virtual get"
(|> (do macro.Monad<Meta>
@@ -554,10 +554,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(text/= sample-string (:coerce Text outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm member virtual put"
(|> (do macro.Monad<Meta>
@@ -567,10 +567,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(text/= other-sample-string (:coerce Text outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
))))
@@ -596,10 +596,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(i/= sample (:coerce Int outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm member invoke virtual"
(|> (do macro.Monad<Meta>
@@ -609,10 +609,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(:coerce Bit outputT)
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm member invoke interface"
(|> (do macro.Monad<Meta>
@@ -622,10 +622,10 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(:coerce Bit outputT)
- (#e.Error error)
+ {#e.Error error}
#0)))
(test "jvm member invoke constructor"
(|> (do macro.Monad<Meta>
@@ -633,9 +633,9 @@
(evalT.eval sampleI))
(lang.with-current-module "")
(macro.result (io.run! init-jvm))
- (case> (#e.Success outputT)
+ (case> {#e.Success outputT}
(host.instance? ArrayList (:coerce Object outputT))
- (#e.Error error)
+ {#e.Error error}
#0)))
))))
diff --git a/lux-lua/source/program.lux b/lux-lua/source/program.lux
index 1ff6e2e57..04f566788 100644
--- a/lux-lua/source/program.lux
+++ b/lux-lua/source/program.lux
@@ -170,7 +170,7 @@
(let [re_wrap (: (-> java/lang/Object java/lang/Object)
(function (_ unwrapped)
(case (ffi.check [java/lang/Object] unwrapped)
- (#.Some sub_value)
+ {#.Some sub_value}
(|> sub_value (:as (Array java/lang/Object)) lux_structure (:as java/lang/Object))
#.None
@@ -194,14 +194,14 @@
(net/sandius/rembulan/impl/DefaultTable
[] (rawget self [field java/lang/Object]) java/lang/Object
(case (ffi.check net/sandius/rembulan/ByteString field)
- (#.Some field)
+ {#.Some field}
(case (net/sandius/rembulan/ByteString::decode field)
(^ (static runtime.variant_tag_field))
(|> value (array.read! 0) maybe.trusted)
(^ (static runtime.variant_flag_field))
(case (array.read! 1 value)
- (#.Some _)
+ {#.Some _}
(:as java/lang/Object "")
#.None
@@ -215,7 +215,7 @@
#.None
(case (ffi.check java/lang/Long field)
- (#.Some idx)
+ {#.Some idx}
(|> value (array.read! (|> idx (:as Nat) --)) maybe.trusted re_wrap)
#.None
@@ -230,14 +230,14 @@
(case [(net/sandius/rembulan/Table::get_key (:as java/lang/Object runtime.variant_tag_field) host_object)
(net/sandius/rembulan/Table::get_key (:as java/lang/Object runtime.variant_flag_field) host_object)
(net/sandius/rembulan/Table::get_key (:as java/lang/Object runtime.variant_value_field) host_object)]
- (^multi [(#.Some tag) ?flag (#.Some value)]
+ (^multi [{#.Some tag} ?flag {#.Some value}]
[(read value)
- (#try.Success value)])
- (#try.Success [(: Any (|> tag (:as java/lang/Long) java/lang/Long::intValue))
+ {#try.Success value}])
+ {#try.Success [(: Any (|> tag (:as java/lang/Long) java/lang/Long::intValue))
(: Any (case ?flag
- (#.Some _) (: Any "")
+ {#.Some _} (: Any "")
#.None (:as Any (ffi.null))))
- (: Any value)])
+ (: Any value)]}
_
(exception.except ..unknown_kind_of_object [(:as java/lang/Object host_object)])))
@@ -254,14 +254,14 @@
#.None
(recur num_keys (++ idx) output)
- (#.Some member)
+ {#.Some member}
(case (read member)
- (#try.Success parsed_member)
+ {#try.Success parsed_member}
(recur num_keys (++ idx) (array.write! idx (:as java/lang/Object parsed_member) output))
- (#try.Failure error)
- (#try.Failure error)))
- (#try.Success output)))))
+ {#try.Failure error}
+ {#try.Failure error}))
+ {#try.Success output}))))
(exception: .public nil_has_no_lux_representation)
@@ -271,7 +271,7 @@
(exception.except ..nil_has_no_lux_representation []))
(~~ (template [<class> <post_processing>]
[(case (ffi.check <class> host_object)
- (#.Some typed_object)
+ {#.Some typed_object}
(|> typed_object <post_processing>)
_)]
@@ -285,12 +285,12 @@
[program/StructureValue (<| #try.Success program/StructureValue::getValue)]
))
(case (ffi.check net/sandius/rembulan/impl/DefaultTable host_object)
- (#.Some typed_object)
+ {#.Some typed_object}
(case (read_variant read typed_object)
- (#try.Success value)
- (#try.Success value)
+ {#try.Success value}
+ {#try.Success value}
- (#try.Failure error)
+ {#try.Failure error}
(read_tuple read typed_object))
_)
@@ -327,15 +327,15 @@
(def: (expander baggage macro inputs lux)
(-> Baggage Expander)
(case (..ensure_function macro)
- (#.Some macro)
+ {#.Some macro}
(case (..call_macro baggage inputs lux macro)
- (#try.Success output)
+ {#try.Success output}
(|> output
(:as (Try [Lux (List Code)]))
#try.Success)
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
#.None
(exception.except ..cannot_apply_a_non_function (:as java/lang/Object macro)))))]
@@ -345,7 +345,7 @@
@.lua
(def: (expander macro inputs lux)
Expander
- (#try.Success ((:as Macro' macro) inputs lux)))]))
+ {#try.Success ((:as Macro' macro) inputs lux)})]))
(with_expansions [<jvm> (as_is (with_expansions [$var_args (_.var "...")
$str_rel_to_abs (_.var "_utf8_str_rel_to_abs")
@@ -555,7 +555,7 @@
#.None
(in [])
- (#.Some value)
+ {#.Some value}
(read value)))))
_ (try.trusted (run! ..rembulan_prelude))]
[[state_context executor]
@@ -596,9 +596,9 @@
(do try.monad
[lua_function (..load (_.code code))]
(let [output ("lua apply" lua_function)]
- (#try.Success (if ("lua object nil?" output)
+ {#try.Success (if ("lua object nil?" output)
[]
- output))))))]
+ output)}))))]
(: (Host _.Expression _.Statement)
(implementation
(def: (evaluate! context code)
diff --git a/lux-php/source/program.lux b/lux-php/source/program.lux
index c2c61b1ef..9421b6f9c 100644
--- a/lux-php/source/program.lux
+++ b/lux-php/source/program.lux
@@ -185,34 +185,34 @@
(<| (if (ffi.null? value)
(php/runtime/memory/NullMemory::INSTANCE))
(case (ffi.check java/lang/Boolean value)
- (#.Some value)
+ {#.Some value}
(if (:as Bit value)
(php/runtime/memory/TrueMemory::INSTANCE)
(php/runtime/memory/FalseMemory::INSTANCE))
#.None)
(case (ffi.check java/lang/Long value)
- (#.Some value)
+ {#.Some value}
(php/runtime/memory/LongMemory::new value)
#.None)
(case (ffi.check java/lang/Double value)
- (#.Some value)
+ {#.Some value}
(php/runtime/memory/DoubleMemory::new value)
#.None)
(case (ffi.check java/lang/String value)
- (#.Some value)
+ {#.Some value}
(php/runtime/memory/StringMemory::new value)
#.None)
(case (ffi.check [java/lang/Object] value)
- (#.Some value)
+ {#.Some value}
(lux_structure (:as (Array java/lang/Object) value))
#.None)
(case (ffi.check php/runtime/memory/ObjectMemory value)
- (#.Some value)
+ {#.Some value}
value
#.None)
@@ -243,7 +243,7 @@
php/runtime/Memory
(`` (<| (~~ (template [<class> <method> <extractor>]
[(case (ffi.check <class> index)
- (#.Some index)
+ {#.Some index}
(<method> trace (<extractor> index) self)
#.None)]
@@ -286,7 +286,7 @@
#.None
(php/runtime/memory/NullMemory::INSTANCE)
- (#.Some value)
+ {#.Some value}
..unit)
(^ (static runtime.variant_value_field))
@@ -317,17 +317,17 @@
(:as php/runtime/memory/ReferenceMemory)
php/runtime/memory/ReferenceMemory::getValue)]
(case (ffi.check php/runtime/memory/NullMemory value)
- (#.Some _)
+ {#.Some _}
(recur (++ idx) output)
#.None
(case (read value)
- (#try.Success lux_value)
+ {#try.Success lux_value}
(recur (++ idx) (array.write! idx lux_value output))
error
error)))
- (#try.Success output)))))
+ {#try.Success output}))))
(def: variant_tag_field
(php/runtime/memory/StringMemory::new runtime.variant_tag_field))
@@ -348,8 +348,8 @@
(php/runtime/memory/ArrayMemory::get ..variant_value_field)
maybe.trusted
read)]
- [(#try.Success tag) (#try.Success value)]
- (#try.Success [(java/lang/Long::intValue (:as java/lang/Long tag))
+ [{#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)
@@ -357,12 +357,12 @@
(:as php/runtime/memory/ReferenceMemory)
php/runtime/memory/ReferenceMemory::getValue
(ffi.check php/runtime/memory/NullMemory))
- (#.Some _)
+ {#.Some _}
(ffi.null)
#.None
synthesis.unit))
- value])
+ value]}
_
(exception.throw ..unknown_kind_of_object host_object)))
@@ -376,8 +376,8 @@
Reader
(`` (<| (~~ (template [<class> <constant>]
[(case (ffi.check <class> host_object)
- (#.Some _)
- (#try.Success <constant>)
+ {#.Some _}
+ {#try.Success <constant>}
#.None)]
@@ -386,7 +386,7 @@
))
(~~ (template [<class> <post>]
[(case (ffi.check <class> host_object)
- (#.Some value)
+ {#.Some value}
(`` (|> value (~~ (template.splice <post>))))
#.None)]
@@ -399,10 +399,10 @@
[php/runtime/memory/ObjectMemory [#try.Success]]
))
(case (ffi.check php/runtime/memory/ArrayMemory host_object)
- (#.Some value)
+ {#.Some value}
(if (|> value
(php/runtime/memory/ArrayMemory::get ..tuple_size_field)
- (case> (#.Some _) false #.None true))
+ (case> {#.Some _} false #.None true))
(read_variant read value)
(read_tuple read value))
@@ -457,7 +457,7 @@
(def: (expander macro inputs lux)
Expander
(case (ensure_macro macro)
- (#.Some macro)
+ {#.Some macro}
(call_macro inputs lux macro)
#.None
diff --git a/lux-python/source/program.lux b/lux-python/source/program.lux
index afb244311..4aa41e066 100644
--- a/lux-python/source/program.lux
+++ b/lux-python/source/program.lux
@@ -128,17 +128,17 @@
(array.empty size))]
(if (n.< size idx)
(case (org/python/core/PyObject::__getitem__ (.int idx) host_object)
- (#try.Failure try)
- (#try.Failure try)
+ {#try.Failure try}
+ {#try.Failure try}
- (#try.Success value)
+ {#try.Success value}
(case (read value)
- (#try.Failure try)
- (#try.Failure try)
+ {#try.Failure try}
+ {#try.Failure try}
- (#try.Success lux_value)
+ {#try.Success lux_value}
(recur (++ idx) (array.write! idx lux_value output))))
- (#try.Success output)))))
+ {#try.Success output}))))
(exception: (unknown_kind_of_object [object java/lang/Object])
(exception.report
@@ -149,26 +149,26 @@
(case [(org/python/core/PyObject::__getitem__ +0 host_object)
(org/python/core/PyObject::__getitem__ +1 host_object)
(org/python/core/PyObject::__getitem__ +2 host_object)]
- (^or [(#try.Failure try) _ _]
- [_ (#try.Failure try) _]
- [_ _ (#try.Failure try)])
- (#try.Failure try)
+ (^or [{#try.Failure try} _ _]
+ [_ {#try.Failure try} _]
+ [_ _ {#try.Failure try}])
+ {#try.Failure try}
- (^multi [(#try.Success tag) (#try.Success flag) (#try.Success value)]
+ (^multi [{#try.Success tag} {#try.Success flag} {#try.Success value}]
[(read tag)
- (#try.Success tag)]
+ {#try.Success tag}]
[(read value)
- (#try.Success value)])
- (#try.Success [tag
+ {#try.Success value}])
+ {#try.Success [tag
(: Any
(case (ffi.check org/python/core/PyNone
(:as java/lang/Object flag))
- (#.Some _)
+ {#.Some _}
(:as Any (ffi.null))
#.None
(:as Any synthesis.unit)))
- value])
+ value]}
_
(exception.except ..unknown_kind_of_object [(:as java/lang/Object host_object)])))
@@ -177,8 +177,8 @@
Translator
(`` (<| (~~ (template [<class> <processing>]
[(case (ffi.check <class> (:as <class> host_object))
- (#.Some host_object)
- (#try.Success (`` (|> host_object (~~ (template.spliced <processing>)))))
+ {#.Some host_object}
+ {#try.Success (`` (|> host_object (~~ (template.spliced <processing>))))}
_)]
@@ -198,7 +198,7 @@
))
(~~ (template [<class> <processing>]
[(case (ffi.check <class> host_object)
- (#.Some host_object)
+ {#.Some host_object}
(<| <processing> (:as org/python/core/PyObject) host_object)
_)]
@@ -207,7 +207,7 @@
[org/python/core/PyList (..read_tuple read)]
))
... (exception.except ..unknown_kind_of_object [(:as java/lang/Object host_object)])
- (#try.Success host_object))))
+ {#try.Success host_object})))
(exception: (cannot_apply_a_non_function [object java/lang/Object])
(exception.report
@@ -249,16 +249,16 @@
(def: (expander macro inputs lux)
Expander
(case (ensure_macro macro)
- (#.Some macro)
+ {#.Some macro}
(case (..call_macro inputs lux macro)
- (#try.Success output)
+ {#try.Success output}
(|> output
(:as org/python/core/PyObject)
..read
(:as (Try (Try [Lux (List Code)]))))
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
#.None
(exception.except ..cannot_apply_a_non_function (:as java/lang/Object macro)))))]
@@ -268,7 +268,7 @@
@.python
(def: (expander macro inputs lux)
Expander
- (#try.Success ((:as Macro' macro) inputs lux)))]))
+ {#try.Success ((:as Macro' macro) inputs lux)})]))
(with_expansions [<jvm> (def: host
(IO (Host (_.Expression Any) (_.Statement Any)))
@@ -281,10 +281,10 @@
execute! (: (-> (_.Statement Any) (Try Any))
(function (execute! input)
(case (org/python/util/PythonInterpreter::exec (_.code input) interpreter)
- (#try.Failure error)
+ {#try.Failure error}
(if (text.contains? "maximum recursion depth exceeded" error)
(execute! input)
- (#try.Failure error))
+ {#try.Failure error})
output
output)))]
diff --git a/lux-r/source/luxc/lang/synthesis/variable.lux b/lux-r/source/luxc/lang/synthesis/variable.lux
deleted file mode 100644
index 82478a2d6..000000000
--- a/lux-r/source/luxc/lang/synthesis/variable.lux
+++ /dev/null
@@ -1,101 +0,0 @@
-(.module:
- lux
- (lux (data [number]
- (coll [list "list/" Mix<List> Monoid<List>]
- ["s" set])))
- (luxc (lang ["la" analysis]
- ["ls" synthesis]
- ["[0]L" variable {"+" [Variable]}])))
-
-(def: (bound-vars path)
- (-> ls.Path (List Variable))
- (case path
- (#ls.BindP register)
- (list (.int register))
-
- (^or (#ls.SeqP pre post) (#ls.AltP pre post))
- (list/composite (bound-vars pre) (bound-vars post))
-
- _
- (list)))
-
-(def: (path-bodies path)
- (-> ls.Path (List ls.Synthesis))
- (case path
- (#ls.ExecP body)
- (list body)
-
- (#ls.SeqP pre post)
- (path-bodies post)
-
- (#ls.AltP pre post)
- (list/composite (path-bodies pre) (path-bodies post))
-
- _
- (list)))
-
-(def: (non-arg? arity var)
- (-> ls.Arity Variable Bit)
- (and (variableL.local? var)
- (n/> arity (.nat var))))
-
-(type: Tracker
- (s.Set Variable))
-
-(def: init-tracker
- Tracker
- (s.new number.Hash<Int>))
-
-(def: (unused-vars current-arity bound exprS)
- (-> ls.Arity (List Variable) ls.Synthesis (List Variable))
- (let [tracker (loop [exprS exprS
- tracker (list/mix s.has init-tracker bound)]
- (case exprS
- (#ls.Variable var)
- (if (non-arg? current-arity var)
- (s.lacks var tracker)
- tracker)
-
- (#ls.Variant tag last? memberS)
- (recur memberS tracker)
-
- (#ls.Tuple membersS)
- (list/mix recur tracker membersS)
-
- (#ls.Call funcS argsS)
- (list/mix recur (recur funcS tracker) argsS)
-
- (^or (#ls.Recur argsS)
- (#ls.Procedure name argsS))
- (list/mix recur tracker argsS)
-
- (#ls.Let offset inputS outputS)
- (|> tracker (recur inputS) (recur outputS))
-
- (#ls.If testS thenS elseS)
- (|> tracker (recur testS) (recur thenS) (recur elseS))
-
- (#ls.Loop offset initsS bodyS)
- (recur bodyS (list/mix recur tracker initsS))
-
- (#ls.Case inputS outputPS)
- (let [tracker' (list/mix s.has
- (recur inputS tracker)
- (bound-vars outputPS))]
- (list/mix recur tracker' (path-bodies outputPS)))
-
- (#ls.Function arity env bodyS)
- (list/mix s.lacks tracker env)
-
- _
- tracker
- ))]
- (s.to-list tracker)))
-
-... (def: (optimize-register-use current-arity [pathS bodyS])
-... (-> ls.Arity [ls.Path ls.Synthesis] [ls.Path ls.Synthesis])
-... (let [bound (bound-vars pathS)
-... unused (unused-vars current-arity bound bodyS)
-... adjusted (adjust-vars unused bound)]
-... [(|> pathS (clean-pattern adjusted) simplify-pattern)
-... (clean-expression adjusted bodyS)]))
diff --git a/lux-r/source/program.lux b/lux-r/source/program.lux
index ec77f8c0d..990fb6dbc 100644
--- a/lux-r/source/program.lux
+++ b/lux-r/source/program.lux
@@ -188,7 +188,7 @@
... (let [sub_value (:as java/lang/Object sub_value)]
... (`` (<| (~~ (template [<type> <then>]
... [(case (ffi.check <type> sub_value)
- ... (#.Some sub_value)
+ ... {#.Some sub_value}
... (`` (|> sub_value (~~ (template.splice <then>))))
... #.None)]
@@ -362,7 +362,7 @@
(case (|> host_object
(org/renjin/sexp/ListVector::get_field runtime.variant_flag_field)
(ffi.check org/renjin/sexp/Null))
- (#.Some _)
+ {#.Some _}
(: Any (ffi.null))
_
@@ -377,12 +377,12 @@
(|> host_object
(org/renjin/sexp/ListVector::get_field runtime.i64_low_field)
(ffi.check org/renjin/sexp/IntArrayVector))]
- [(#.Some high) (#.Some low)]
- (#try.Success (runtime.lux_i64 (org/renjin/sexp/SEXP::asInt high)
- (org/renjin/sexp/SEXP::asInt low)))
+ [{#.Some high} {#.Some low}]
+ {#try.Success (runtime.lux_i64 (org/renjin/sexp/SEXP::asInt high)
+ (org/renjin/sexp/SEXP::asInt low))}
_
- (#try.Failure "")))
+ {#try.Failure ""}))
(def: (read_tuple read host_object)
(-> (Reader java/lang/Object) (Reader org/renjin/sexp/ListVector))
@@ -391,12 +391,12 @@
output (:as (Array Any) (array.new size))]
(if (n.< size idx)
(case (|> host_object (org/renjin/sexp/ListVector::get_index (.int idx)) (:as java/lang/Object) read)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success member)
+ {#try.Success member}
(recur (++ idx) (array.write! idx (:as Any member) output)))
- (#try.Success output)))))
+ {#try.Success output}))))
(def: (field_class field host_object)
(-> Text org/renjin/sexp/ListVector Text)
@@ -411,23 +411,23 @@
(exec
... ("lux io log" (exception.construct ..unknown_kind_of_object [host_object]))
(`` (<| (case (ffi.check org/renjin/sexp/ListVector host_object)
- (#.Some host_object)
+ {#.Some host_object}
(<| (case (..read_variant read host_object)
- (#try.Success output)
- (#try.Success output)
+ {#try.Success output}
+ {#try.Success output}
- (#try.Failure _))
+ {#try.Failure _})
(case (..read_i64 host_object)
- (#try.Success output)
- (#try.Success output)
+ {#try.Success output}
+ {#try.Success output}
- (#try.Failure _))
+ {#try.Failure _})
(..read_tuple read host_object))
#.None)
(~~ (template [<class> <post_processing>]
[(case (ffi.check <class> host_object)
- (#.Some host_object)
+ {#.Some host_object}
(`` (|> host_object (~~ (template.splice <post_processing>))))
#.None)]
@@ -458,10 +458,10 @@
(org/renjin/sexp/PairList$Builder::add (..host_value lux))
org/renjin/sexp/PairList$Builder::build
(:as org/renjin/sexp/PairList)))
- (#try.Success r_inputs)
+ {#try.Success r_inputs}
r_inputs
- (#try.Failure error)
+ {#try.Failure error}
(exec
("lux io log" error)
(panic! error))))
@@ -481,7 +481,7 @@
(def: (expander interpreter macro inputs lux)
(-> org/renjin/script/RenjinScriptEngine Expander)
(case (ensure_macro macro)
- (#.Some macro)
+ {#.Some macro}
(call_macro interpreter inputs lux macro)
#.None
@@ -569,7 +569,7 @@
(:as Try)
(exec
("lux io log" "TODO: Extender")
- (#try.Failure "TODO: Extender"))))
+ {#try.Failure "TODO: Extender"})))
@.r
(def: (extender handler)
diff --git a/lux-ruby/source/program.lux b/lux-ruby/source/program.lux
index 25e3cc2ab..37713dfdb 100644
--- a/lux-ruby/source/program.lux
+++ b/lux-ruby/source/program.lux
@@ -242,14 +242,14 @@
#.None
(recur (++ idx) output)
- (#.Some value)
+ {#.Some value}
(case (read value)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success lux_value)
+ {#try.Success lux_value}
(recur (++ idx) (array.write! idx lux_value output))))
- (#try.Success output)))))
+ {#try.Success output}))))
(exception: (unknown_kind_of_object [object java/lang/Object])
(exception.report
@@ -261,18 +261,18 @@
(case [(org/jruby/RubyHash::get (:as java/lang/String runtime.variant_tag_field) host_object)
(org/jruby/RubyHash::get (:as java/lang/String runtime.variant_flag_field) host_object)
(org/jruby/RubyHash::get (:as java/lang/String runtime.variant_value_field) host_object)]
- (^multi [(#.Some tag) ?flag (#.Some value)]
+ (^multi [{#.Some tag} ?flag {#.Some value}]
[(read value)
- (#try.Success value)])
- (#try.Success [(:as Any (java/lang/Long::intValue (:as java/lang/Long tag)))
+ {#try.Success value}])
+ {#try.Success [(:as Any (java/lang/Long::intValue (:as java/lang/Long tag)))
(:as Any
(case ?flag
- (#.Some _)
+ {#.Some _}
""
#.None
(ffi.null)))
- (:as Any value)])
+ (:as Any value)]}
_
(exception.except ..unknown_kind_of_object [(:as java/lang/Object host_object)])))
@@ -285,7 +285,7 @@
(exception.except ..nil_has_no_lux_representation []))
(~~ (template [<class> <post_processing>]
[(case (ffi.check <class> host_object)
- (#.Some typed_object)
+ {#.Some typed_object}
(`` (|> typed_object (~~ (template.spliced <post_processing>))))
_)]
@@ -316,27 +316,27 @@
(-> (-> (Array java/lang/Object) org/jruby/runtime/builtin/IRubyObject)
(-> java/lang/Object org/jruby/runtime/builtin/IRubyObject))
(<| (case (ffi.check [java/lang/Object] value)
- (#.Some value)
+ {#.Some value}
(|> value (:as (Array java/lang/Object)) lux_structure)
#.None)
(case (ffi.check java/lang/Boolean value)
- (#.Some value)
+ {#.Some value}
(org/jruby/RubyBoolean::newBoolean ..initial_ruby_runtime value)
#.None)
(case (ffi.check java/lang/Long value)
- (#.Some value)
+ {#.Some value}
(org/jruby/RubyFixnum::new ..initial_ruby_runtime value)
#.None)
(case (ffi.check java/lang/Double value)
- (#.Some value)
+ {#.Some value}
(org/jruby/RubyFloat::new ..initial_ruby_runtime value)
#.None)
(case (ffi.check java/lang/String value)
- (#.Some value)
+ {#.Some value}
(org/jruby/RubyString::newInternalFromJavaExternal ..initial_ruby_runtime value)
#.None)
@@ -378,9 +378,9 @@
org/jruby/runtime/builtin/IRubyObject
(let [member (ffi.read! 0 args)]
(<| (case (ffi.check org/jruby/RubyFixnum member)
- (#.Some member)
+ {#.Some member}
(case (array.read! (org/jruby/RubyFixnum::getLongValue member) value)
- (#.Some value)
+ {#.Some value}
(wrapped_lux_value lux_structure value)
#.None
@@ -388,7 +388,7 @@
#.None)
(case (ffi.check org/jruby/RubyString member)
- (#.Some member)
+ {#.Some member}
(case (:as Text (org/jruby/RubyString::asJavaString member))
(^ (static runtime.variant_tag_field))
(|> value
@@ -403,12 +403,12 @@
#.None
..ruby_nil
- (#.Some flag)
+ {#.Some flag}
..lux_unit)
(^ (static runtime.variant_value_field))
(case (array.read! 2 value)
- (#.Some value)
+ {#.Some value}
(wrapped_lux_value lux_structure value)
#.None
@@ -419,10 +419,10 @@
#.None)
(case (ffi.check org/jruby/RubyRange member)
- (#.Some member)
+ {#.Some member}
(case [(|> member (org/jruby/RubyRange::first thread_context) (ffi.check org/jruby/RubyFixnum))
(|> member (org/jruby/RubyRange::size thread_context) (ffi.check org/jruby/RubyFixnum))]
- [(#.Some first) (#.Some size)]
+ [{#.Some first} {#.Some size}]
(let [first (org/jruby/RubyFixnum::getLongValue first)
size (org/jruby/RubyFixnum::getLongValue size)]
(lux_structure (java/util/Arrays::copyOfRange value first (i.+ first size))))
@@ -448,10 +448,10 @@
org/jruby/runtime/builtin/IRubyObject
(let [reference (ffi.read! 0 args)]
(case (..read (:as java/lang/Object reference))
- (#try.Success reference)
+ {#try.Success reference}
(org/jruby/RubyBoolean::newBoolean ..initial_ruby_runtime (same? (: Any reference) (: Any value)))
- (#try.Failure error)
+ {#try.Failure error}
(org/jruby/RubyBoolean::newBoolean ..initial_ruby_runtime false))))))
(def: (lux_wrapper_length value)
@@ -508,7 +508,7 @@
(case (|> args
(ffi.read! 0)
(ffi.check org/jruby/RubySymbol))
- (#.Some method)
+ {#.Some method}
(|> (case (|> method
org/jruby/RubySymbol::asJavaString
(:as Text))
@@ -585,16 +585,16 @@
(def: (expander macro inputs lux)
Expander
(case (ensure_macro macro)
- (#.Some macro)
+ {#.Some macro}
(case (call_macro inputs lux macro)
- (#try.Success output)
+ {#try.Success output}
(|> output
(:as java/lang/Object)
..read
(:as (Try (Try [Lux (List Code)]))))
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
#.None
(exception.except ..cannot_apply_a_non_function [(:as java/lang/Object macro)])))
@@ -692,7 +692,7 @@
(let [inputs (array.list #.None inputs)])
(case inputs
(^ (list))
- (#try.Success (host_phase partial_application phase))
+ {#try.Success (host_phase partial_application phase)}
(^ (list input/0))
(do try.monad
diff --git a/lux-scheme/source/program.lux b/lux-scheme/source/program.lux
index ee5b95952..1eac52eeb 100644
--- a/lux-scheme/source/program.lux
+++ b/lux-scheme/source/program.lux
@@ -134,14 +134,14 @@
(def: (variant? value)
(-> Any Bit)
(case (ffi.check [java/lang/Object] (:as java/lang/Object value))
- (#.Some array)
+ {#.Some array}
... TODO: Get rid of this coercion ASAP.
(let [array (:as (Array java/lang/Object) array)]
(and (n.= 3 (array.size array))
(case (array.read! 0 array)
- (#.Some tag)
+ {#.Some tag}
(case (ffi.check java/lang/Integer tag)
- (#.Some _)
+ {#.Some _}
true
#.None
@@ -177,7 +177,7 @@
[] (getCar self []) java/lang/Object
(if cdr?
(case (array.read! 1 value)
- (#.Some flag_is_set)
+ {#.Some flag_is_set}
true
#.None
@@ -243,7 +243,7 @@
(def: (lux_value value)
(-> java/lang/Object java/lang/Object)
(<| (case (ffi.check [java/lang/Object] value)
- (#.Some value)
+ {#.Some value}
... TODO: Get rid of the coercions below.
(if (variant? value)
(variant_value lux_value false (:as (Array java/lang/Object) value))
@@ -269,7 +269,7 @@
[tag (read (gnu/lists/Pair::getCar host_object))
#let [host_object (:as gnu/lists/Pair (gnu/lists/Pair::getCdr host_object))
flag (case (ffi.check java/lang/Boolean (gnu/lists/Pair::getCar host_object))
- (#.Some flag)
+ {#.Some flag}
(:as Bit flag)
#.None
@@ -285,19 +285,19 @@
(array.new size))]
(if (n.< size idx)
(case (read (gnu/lists/FVector::getRaw (.int idx) host_object))
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success lux_value)
+ {#try.Success lux_value}
(recur (++ idx) (array.write! idx (: Any lux_value) output)))
- (#try.Success output)))))
+ {#try.Success output}))))
(def: (read host_object)
(Reader java/lang/Object)
(`` (<| (~~ (template [<class>]
[(case (ffi.check <class> host_object)
- (#.Some host_object)
- (#try.Success host_object)
+ {#.Some host_object}
+ {#try.Success host_object}
#.None)]
[java/lang/Boolean] [java/lang/Long] [java/lang/Double] [java/lang/String]
@@ -305,8 +305,8 @@
))
(~~ (template [<class> <processing>]
[(case (ffi.check <class> host_object)
- (#.Some host_object)
- (#try.Success (<| <processing> host_object))
+ {#.Some host_object}
+ {#try.Success (<| <processing> host_object)}
#.None)]
[java/lang/Integer java/lang/Integer::longValue]
@@ -321,11 +321,11 @@
[program/TupleValue program/TupleValue::getValue]
))
(case (ffi.check gnu/lists/Pair host_object)
- (#.Some host_object)
+ {#.Some host_object}
(read_variant read host_object)
#.None)
(case (ffi.check gnu/lists/FVector host_object)
- (#.Some host_object)
+ {#.Some host_object}
(read_tuple read (:as (gnu/lists/FVector java/lang/Object) host_object))
#.None)
... else
@@ -338,17 +338,17 @@
(def: (expander macro inputs lux)
Expander
(case (..ensure_macro macro)
- (#.Some macro)
+ {#.Some macro}
(case (gnu/mapping/Procedure::apply2 (lux_value (:as java/lang/Object inputs))
(lux_value (:as java/lang/Object lux))
macro)
- (#try.Success output)
+ {#try.Success output}
(|> output
..read
(:as (Try (Try [Lux (List Code)]))))
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
#.None
(exception.throw ..cannot_apply_a_non_function (:as java/lang/Object macro)))
diff --git a/stdlib/source/documentation/lux.lux b/stdlib/source/documentation/lux.lux
index e81beecb2..0f6e94998 100644
--- a/stdlib/source/documentation/lux.lux
+++ b/stdlib/source/documentation/lux.lux
@@ -329,17 +329,17 @@
(type: Type
(Rec @
(Variant
- (#Primitive Text (List @))
- (#Sum @ @)
- (#Product @ @)
- (#Function @ @)
- (#Parameter Nat)
- (#Var Nat)
- (#Ex Nat)
- (#UnivQ (List @) @)
- (#ExQ (List @) @)
- (#Apply @ @)
- (#Named Name @))))])
+ {#Primitive Text (List @)}
+ {#Sum @ @}
+ {#Product @ @}
+ {#Function @ @}
+ {#Parameter Nat}
+ {#Var Nat}
+ {#Ex Nat}
+ {#UnivQ (List @) @}
+ {#ExQ (List @) @}
+ {#Apply @ @}
+ {#Named Name @})))])
(documentation: /.exec
"Sequential execution of expressions (great for side-effects)."
@@ -354,8 +354,8 @@
\n "Allows the usage of macros within the patterns to provide custom syntax.")
[(case (: (List Int)
(list +1 +2 +3))
- (#Item x (#Item y (#Item z #End)))
- (#Some ($_ * x y z))
+ {#Item x {#Item y {#Item z #End}}}
+ {#Some ($_ * x y z)}
_
#None)])
@@ -366,7 +366,7 @@
[(case (: (List Int)
(list +1 +2 +3))
(^ (list x y z))
- (#Some ($_ * x y z))
+ {#Some ($_ * x y z)}
_
#None)])
@@ -435,7 +435,7 @@
[(macro: .public (name_of tokens)
(case tokens
(^template [<tag>]
- [(^ (list [_ (<tag> [module name])]))
+ [(^ (list [_ {<tag> [module name]}]))
(in (list (` [(~ (text$ module)) (~ (text$ name))])))])
([#Identifier] [#Tag])
@@ -489,8 +489,8 @@
[(type: Referrals
(Variant
#All
- (#Only (List Text))
- (#Exclude (List Text))
+ {#Only (List Text)}
+ {#Exclude (List Text)}
#Ignore
#Nothing))])
@@ -506,7 +506,7 @@
"The type-definition macro."
[(type: (List a)
#End
- (#Item a (List a)))])
+ {#Item a (List a)})])
(documentation: /.Interface
"Interface definition."
@@ -540,13 +540,13 @@
(loop [end to
output #.End]
(cond (< end from)
- (recur (pred end) (#.Item end output))
+ (recur (pred end) {#.Item end output})
(< from end)
- (recur (succ end) (#.Item end output))
+ (recur (succ end) {#.Item end output})
... (= end from)
- (#.Item end output)))))])
+ {#.Item end output}))))])
(documentation: /.cond
"Conditional branching with multiple test conditions."
@@ -640,30 +640,30 @@
[(def: (reduced env type)
(-> (List Type) Type Type)
(case type
- (#.Primitive name params)
- (#.Primitive name (list\each (reduced env) params))
+ {#.Primitive name params}
+ {#.Primitive name (list\each (reduced env) params)}
(^template [<tag>]
- [(<tag> left right)
- (<tag> (reduced env left) (reduced env right))])
+ [{<tag> left right}
+ {<tag> (reduced env left) (reduced env right)}])
([#.Sum] [#.Product])
(^template [<tag>]
- [(<tag> left right)
- (<tag> (reduced env left) (reduced env right))])
+ [{<tag> left right}
+ {<tag> (reduced env left) (reduced env right)}])
([#.Function] [#.Apply])
(^template [<tag>]
- [(<tag> old_env def)
+ [{<tag> old_env def}
(case old_env
#.End
- (<tag> env def)
+ {<tag> env def}
_
type)])
([#.UnivQ] [#.ExQ])
- (#.Parameter idx)
+ {#.Parameter idx}
(else type (list.item idx env))
_
@@ -751,21 +751,21 @@
(format "Multi-level pattern matching."
\n "Useful in situations where the result of a branch depends on further refinements on the values being matched.")
[(case (split (size static) uri)
- (^multi (#Some [chunk uri'])
+ (^multi {#Some [chunk uri']}
[(text\= static chunk) #1])
(match_uri endpoint? parts' uri')
_
- (#Left (format "Static part " (%t static) " does not match URI: " uri)))]
+ {#Left (format "Static part " (%t static) " does not match URI: " uri)})]
["Short-cuts can be taken when using bit tests."
"The example above can be rewritten as..."
(case (split (size static) uri)
- (^multi (#Some [chunk uri'])
+ (^multi {#Some [chunk uri']}
(text\= static chunk))
(match_uri endpoint? parts' uri')
_
- (#Left (format "Static part " (%t static) " does not match URI: " uri)))])
+ {#Left (format "Static part " (%t static) " does not match URI: " uri)})])
(documentation: /.name_of
"Given an identifier or a tag, gives back a 2 tuple with the module and name parts, both as Text."
@@ -875,8 +875,8 @@
"Generates pattern-matching code for Code values in a way that looks like code-templating."
[(: (Maybe Nat)
(case (` (#0 123 +456.789))
- (^code (#0 (~ [_ (#.Nat number)]) +456.789))
- (#.Some number)
+ (^code (#0 (~ [_ {#.Nat number}]) +456.789))
+ {#.Some number}
_
#.None))])
@@ -898,11 +898,11 @@
(case (: (Either Text Bar)
(try (: Bar
(risky computation which may panic))))
- (#.Right success)
+ {#.Right success}
(: Foo
(do something after success))
- (#.Left error)
+ {#.Left error}
(: Foo
(recover from error))))])
diff --git a/stdlib/source/documentation/lux/control/concurrency/actor.lux b/stdlib/source/documentation/lux/control/concurrency/actor.lux
index c0701a367..a26d2f2d6 100644
--- a/stdlib/source/documentation/lux/control/concurrency/actor.lux
+++ b/stdlib/source/documentation/lux/control/concurrency/actor.lux
@@ -58,8 +58,8 @@
(message: .public (push [value a] state self)
(List a)
- (let [state' (#.Item value state)]
- (async.resolved (#try.Success [state' state']))))])
+ (let [state' {#.Item value state}]
+ (async.resolved {#try.Success [state' state']})))])
(actor: .public counter
Nat
@@ -67,11 +67,11 @@
[(message: .public (count! [increment Nat] state self)
Any
(let [state' (n.+ increment state)]
- (async.resolved (#try.Success [state' state']))))
+ (async.resolved {#try.Success [state' state']})))
(message: .public (read! state self)
Nat
- (async.resolved (#try.Success [state state])))]))]
+ (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.")
diff --git a/stdlib/source/documentation/lux/control/maybe.lux b/stdlib/source/documentation/lux/control/maybe.lux
index f57f2f54d..582c1fa4a 100644
--- a/stdlib/source/documentation/lux/control/maybe.lux
+++ b/stdlib/source/documentation/lux/control/maybe.lux
@@ -18,7 +18,7 @@
(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))
+ [(else +20 {#.Some +10})
"=>"
+10]
[(else +20 #.None)
diff --git a/stdlib/source/documentation/lux/control/try.lux b/stdlib/source/documentation/lux/control/try.lux
index 6ef45a5b2..8176614d0 100644
--- a/stdlib/source/documentation/lux/control/try.lux
+++ b/stdlib/source/documentation/lux/control/try.lux
@@ -40,9 +40,9 @@
\n "if a (Try x) value turns out to be #Failure."
\n "Note: the expression for the default value will not be computed if the base computation succeeds.")
[(= "bar"
- (else "foo" (#..Success "bar")))]
+ (else "foo" {#..Success "bar"}))]
[(= "foo"
- (else "foo" (#..Failure "KABOOM!")))])
+ (else "foo" {#..Failure "KABOOM!"}))])
(.def: .public documentation
(.List $.Module)
diff --git a/stdlib/source/documentation/lux/data/collection/array.lux b/stdlib/source/documentation/lux/data/collection/array.lux
index ed6bce3a5..b8926391a 100644
--- a/stdlib/source/documentation/lux/data/collection/array.lux
+++ b/stdlib/source/documentation/lux/data/collection/array.lux
@@ -87,7 +87,7 @@
(format "Yields a list with every non-empty item in the array."
\n "Can use the optional default value when encountering an empty cell in the array.")
[(list #.None array)
- (list (#.Some default) array)])
+ (list {#.Some default} array)])
(.def: .public documentation
(.List $.Module)
diff --git a/stdlib/source/documentation/lux/ffi.jvm.lux b/stdlib/source/documentation/lux/ffi.jvm.lux
index f76ada558..d8e818783 100644
--- a/stdlib/source/documentation/lux/ffi.jvm.lux
+++ b/stdlib/source/documentation/lux/ffi.jvm.lux
@@ -144,7 +144,7 @@
[(= (??? (: java/lang/String (null)))
#.None)]
[(= (??? "YOLO")
- (#.Some "YOLO"))])
+ {#.Some "YOLO"})])
(documentation: /.!!!
(format "Takes a (Maybe ObjectType) and returns a ObjectType."
@@ -158,7 +158,7 @@
(format "Checks whether an object is an instance of a particular class."
\n "Caveat emptor: Cannot check for polymorphism, so avoid using parameterized classes.")
[(case (check String "YOLO")
- (#.Some value_as_string)
+ {#.Some value_as_string}
#.None)])
(documentation: /.synchronized
diff --git a/stdlib/source/documentation/lux/ffi.old.lux b/stdlib/source/documentation/lux/ffi.old.lux
index b2ac15139..64fbfcf45 100644
--- a/stdlib/source/documentation/lux/ffi.old.lux
+++ b/stdlib/source/documentation/lux/ffi.old.lux
@@ -107,7 +107,7 @@
[(= (??? (: java/lang/String (null)))
#.None)]
[(= (??? "YOLO")
- (#.Some "YOLO"))])
+ {#.Some "YOLO"})])
(documentation: /.!!!
"Takes a (Maybe ObjectType) and returns a ObjectType."
@@ -121,7 +121,7 @@
(format "Checks whether an object is an instance of a particular class."
\n "Caveat emptor: Cannot check for polymorphism, so avoid using parameterized classes.")
[(case (check java/lang/String "YOLO")
- (#.Some value_as_string)
+ {#.Some value_as_string}
#.None)])
(documentation: /.synchronized
diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux
index 5f6f9342e..7d94363f3 100644
--- a/stdlib/source/library/lux.lux
+++ b/stdlib/source/library/lux.lux
@@ -18,153 +18,177 @@
... (Ex (_ a) a))
("lux def" Any
("lux type check type"
- (9 #1 [..prelude_module "Any"]
- (8 #0 (0 #0) (4 #0 1))))
+ {9 #1
+ [..prelude_module "Any"]
+ {8 #0
+ {0 #0}
+ {4 #0 1}}})
#1)
... (type: .public Nothing
... (All (_ a) a))
("lux def" Nothing
("lux type check type"
- (9 #1 [..prelude_module "Nothing"]
- (7 #0 (0 #0) (4 #0 1))))
+ {9 #1
+ [..prelude_module "Nothing"]
+ {7 #0
+ {0 #0}
+ {4 #0 1}}})
#1)
... (type: .public (List a)
... #End
-... (#Item a (List a)))
+... {#Item a (List a)})
("lux def type tagged" List
- (9 #1 [..prelude_module "List"]
- (7 #0 (0 #0)
- (1 #0
- ... End
- Any
- ... Item
- (2 #0 (4 #0 1)
- (9 #0 (4 #0 1) (4 #0 0))))))
- ("End" "Item")
+ {9 #1
+ [..prelude_module "List"]
+ {7 #0
+ {0 #0}
+ {1 #0
+ ... End
+ Any
+ ... Item
+ {2 #0
+ {4 #0 1}
+ {9 #0
+ {4 #0 1}
+ {4 #0 0}}}}}}
+ {"End" "Item"}
#1)
("lux def" Bit
("lux type check type"
- (9 #1 [..prelude_module "Bit"]
- (0 #0 "#Bit" #End)))
+ {9 #1
+ [..prelude_module "Bit"]
+ {0 #0 "#Bit" #End}})
#1)
("lux def" I64
("lux type check type"
- (9 #1 [..prelude_module "I64"]
- (7 #0 (0 #0)
- (0 #0 "#I64" (#Item (4 #0 1) #End)))))
+ {9 #1
+ [..prelude_module "I64"]
+ {7 #0
+ {0 #0}
+ {0 #0 "#I64" {#Item {4 #0 1} #End}}}})
#1)
("lux def" Nat
("lux type check type"
- (9 #1 [..prelude_module "Nat"]
- (0 #0 "#I64" (#Item (0 #0 "#Nat" #End) #End))))
+ {9 #1
+ [..prelude_module "Nat"]
+ {0 #0 "#I64" {#Item {0 #0 "#Nat" #End} #End}}})
#1)
("lux def" Int
("lux type check type"
- (9 #1 [..prelude_module "Int"]
- (0 #0 "#I64" (#Item (0 #0 "#Int" #End) #End))))
+ {9 #1
+ [..prelude_module "Int"]
+ {0 #0 "#I64" {#Item {0 #0 "#Int" #End} #End}}})
#1)
("lux def" Rev
("lux type check type"
- (9 #1 [..prelude_module "Rev"]
- (0 #0 "#I64" (#Item (0 #0 "#Rev" #End) #End))))
+ {9 #1
+ [..prelude_module "Rev"]
+ {0 #0 "#I64" {#Item {0 #0 "#Rev" #End} #End}}})
#1)
("lux def" Frac
("lux type check type"
- (9 #1 [..prelude_module "Frac"]
- (0 #0 "#Frac" #End)))
+ {9 #1
+ [..prelude_module "Frac"]
+ {0 #0 "#Frac" #End}})
#1)
("lux def" Text
("lux type check type"
- (9 #1 [..prelude_module "Text"]
- (0 #0 "#Text" #End)))
+ {9 #1
+ [..prelude_module "Text"]
+ {0 #0 "#Text" #End}})
#1)
("lux def" Name
("lux type check type"
- (9 #1 [..prelude_module "Name"]
- (2 #0 Text Text)))
+ {9 #1
+ [..prelude_module "Name"]
+ {2 #0 Text Text}})
#1)
... (type: .public (Maybe a)
... #None
-... (#Some a))
+... {#Some a})
("lux def type tagged" Maybe
- (9 #1 [..prelude_module "Maybe"]
- (7 #0 #End
- (1 #0
- ... None
- Any
- ... Some
- (4 #0 1))))
- ("None" "Some")
+ {9 #1
+ [..prelude_module "Maybe"]
+ {7 #0
+ #End
+ {1 #0
+ ... None
+ Any
+ ... Some
+ {4 #0 1}}}}
+ {"None" "Some"}
#1)
... (type: .public Type
... (Rec Type
... (Variant
-... (#Primitive Text (List Type))
-... (#Sum Type Type)
-... (#Product Type Type)
-... (#Function Type Type)
-... (#Parameter Nat)
-... (#Var Nat)
-... (#Ex Nat)
-... (#UnivQ (List Type) Type)
-... (#ExQ (List Type) Type)
-... (#Apply Type Type)
-... (#Named Name Type))))
+... {#Primitive Text (List Type)}
+... {#Sum Type Type}
+... {#Product Type Type}
+... {#Function Type Type}
+... {#Parameter Nat}
+... {#Var Nat}
+... {#Ex Nat}
+... {#UnivQ (List Type) Type}
+... {#ExQ (List Type) Type}
+... {#Apply Type Type}
+... {#Named Name Type})))
("lux def type tagged" Type
- (9 #1 [..prelude_module "Type"]
- ({Type
- ({Type_List
- ({Type_Pair
- (9 #0 (0 #0 ["" #End])
- (7 #0 #End
- (1 #0
- ... Primitive
- (2 #0 Text Type_List)
- (1 #0
- ... Sum
- Type_Pair
- (1 #0
- ... Product
- Type_Pair
- (1 #0
- ... Function
- Type_Pair
- (1 #0
- ... Parameter
- Nat
- (1 #0
- ... Var
- Nat
- (1 #0
- ... Ex
- Nat
- (1 #0
- ... UnivQ
- (2 #0 Type_List Type)
- (1 #0
- ... ExQ
- (2 #0 Type_List Type)
- (1 #0
- ... Apply
- Type_Pair
- ... Named
- (2 #0 Name Type)))))))))))))}
- ("lux type check type" (2 #0 Type Type)))}
- ("lux type check type" (9 #0 Type List)))}
- ("lux type check type" (9 #0 (0 #0 ["" #End]) (4 #0 0)))))
- ("Primitive" "Sum" "Product" "Function" "Parameter" "Var" "Ex" "UnivQ" "ExQ" "Apply" "Named")
+ {9 #1 [..prelude_module "Type"]
+ ({Type
+ ({Type_List
+ ({Type_Pair
+ {9 #0
+ {0 #0 ["" #End]}
+ {7 #0
+ #End
+ {1 #0
+ ... Primitive
+ {2 #0 Text Type_List}
+ {1 #0
+ ... Sum
+ Type_Pair
+ {1 #0
+ ... Product
+ Type_Pair
+ {1 #0
+ ... Function
+ Type_Pair
+ {1 #0
+ ... Parameter
+ Nat
+ {1 #0
+ ... Var
+ Nat
+ {1 #0
+ ... Ex
+ Nat
+ {1 #0
+ ... UnivQ
+ {2 #0 Type_List Type}
+ {1 #0
+ ... ExQ
+ {2 #0 Type_List Type}
+ {1 #0
+ ... Apply
+ Type_Pair
+ ... Named
+ {2 #0 Name Type}}}}}}}}}}}}}}
+ ("lux type check type" {2 #0 Type Type}))}
+ ("lux type check type" {9 #0 Type List}))}
+ ("lux type check type" {9 #0 {0 #0 ["" #End]} {4 #0 0}}))}
+ {"Primitive" "Sum" "Product" "Function" "Parameter" "Var" "Ex" "UnivQ" "ExQ" "Apply" "Named"}
#1)
... (type: .public Location
@@ -173,8 +197,8 @@
... #line Nat
... #column Nat]))
("lux def type tagged" Location
- (#Named [..prelude_module "Location"]
- (#Product Text (#Product Nat Nat)))
+ {#Named [..prelude_module "Location"]
+ {#Product Text {#Product Nat Nat}}}
["module" "line" "column"]
#1)
@@ -183,80 +207,81 @@
... [#meta m
... #datum v]))
("lux def type tagged" Ann
- (#Named [..prelude_module "Ann"]
- (#UnivQ #End
- (#UnivQ #End
- (#Product (#Parameter 3)
- (#Parameter 1)))))
+ {#Named [..prelude_module "Ann"]
+ {#UnivQ #End
+ {#UnivQ #End
+ {#Product
+ {#Parameter 3}
+ {#Parameter 1}}}}}
["meta" "datum"]
#1)
... (type: .public (Code' w)
-... (#Bit Bit)
-... (#Nat Nat)
-... (#Int Int)
-... (#Rev Rev)
-... (#Frac Frac)
-... (#Text Text)
-... (#Identifier Name)
-... (#Tag Name)
-... (#Form (List (w (Code' w))))
-... (#Variant (List (w (Code' w))))
-... (#Tuple (List (w (Code' w)))))
+... {#Bit Bit}
+... {#Nat Nat}
+... {#Int Int}
+... {#Rev Rev}
+... {#Frac Frac}
+... {#Text Text}
+... {#Identifier Name}
+... {#Tag Name}
+... {#Form (List (w (Code' w)))}
+... {#Variant (List (w (Code' w)))}
+... {#Tuple (List (w (Code' w)))})
("lux def type tagged" Code'
- (#Named [..prelude_module "Code'"]
- ({Code
- ({Code_List
- (#UnivQ #End
- (#Sum
- ... Bit
- Bit
- (#Sum
- ... Nat
- Nat
- (#Sum
- ... Int
- Int
- (#Sum
- ... Rev
- Rev
- (#Sum
- ... Frac
- Frac
- (#Sum
- ... Text
- Text
- (#Sum
- ... Identifier
- Name
- (#Sum
- ... Tag
- Name
- (#Sum
- ... Form
- Code_List
- (#Sum
- ... Variant
- Code_List
- ... Tuple
- Code_List
- ))))))))))
- )}
- ("lux type check type" (#Apply Code List)))}
- ("lux type check type" (#Apply (#Apply (#Parameter 1)
- (#Parameter 0))
- (#Parameter 1)))))
- ("Bit" "Nat" "Int" "Rev" "Frac" "Text" "Identifier" "Tag" "Form" "Variant" "Tuple")
+ {#Named [..prelude_module "Code'"]
+ ({Code
+ ({Code_List
+ {#UnivQ #End
+ {#Sum
+ ... Bit
+ Bit
+ {#Sum
+ ... Nat
+ Nat
+ {#Sum
+ ... Int
+ Int
+ {#Sum
+ ... Rev
+ Rev
+ {#Sum
+ ... Frac
+ Frac
+ {#Sum
+ ... Text
+ Text
+ {#Sum
+ ... Identifier
+ Name
+ {#Sum
+ ... Tag
+ Name
+ {#Sum
+ ... Form
+ Code_List
+ {#Sum
+ ... Variant
+ Code_List
+ ... Tuple
+ Code_List
+ }}}}}}}}}}
+ }}
+ ("lux type check type" {#Apply Code List}))}
+ ("lux type check type" {#Apply {#Apply {#Parameter 1}
+ {#Parameter 0}}
+ {#Parameter 1}}))}
+ {"Bit" "Nat" "Int" "Rev" "Frac" "Text" "Identifier" "Tag" "Form" "Variant" "Tuple"}
#1)
... (type: .public Code
... (Ann Location (Code' (Ann Location))))
("lux def" Code
("lux type check type"
- (#Named [..prelude_module "Code"]
- ({w
- (#Apply (#Apply w Code') w)}
- ("lux type check type" (#Apply Location Ann)))))
+ {#Named [..prelude_module "Code"]
+ ({w
+ {#Apply {#Apply w Code'} w}}
+ ("lux type check type" {#Apply Location Ann}))})
#1)
("lux def" private
@@ -277,119 +302,118 @@
("lux def" _ann
("lux type check"
- (#Function (#Apply (#Apply Location Ann)
- Code')
- Code)
+ {#Function {#Apply {#Apply Location Ann} Code'}
+ Code}
([_ data]
[dummy_location data]))
#0)
("lux def" bit$
- ("lux type check" (#Function Bit Code)
- ([_ value] (_ann (#Bit value))))
+ ("lux type check" {#Function Bit Code}
+ ([_ value] (_ann {#Bit value})))
#0)
("lux def" nat$
- ("lux type check" (#Function Nat Code)
- ([_ value] (_ann (#Nat value))))
+ ("lux type check" {#Function Nat Code}
+ ([_ value] (_ann {#Nat value})))
#0)
("lux def" int$
- ("lux type check" (#Function Int Code)
- ([_ value] (_ann (#Int value))))
+ ("lux type check" {#Function Int Code}
+ ([_ value] (_ann {#Int value})))
#0)
("lux def" rev$
- ("lux type check" (#Function Rev Code)
- ([_ value] (_ann (#Rev value))))
+ ("lux type check" {#Function Rev Code}
+ ([_ value] (_ann {#Rev value})))
#0)
("lux def" frac$
- ("lux type check" (#Function Frac Code)
- ([_ value] (_ann (#Frac value))))
+ ("lux type check" {#Function Frac Code}
+ ([_ value] (_ann {#Frac value})))
#0)
("lux def" text$
- ("lux type check" (#Function Text Code)
- ([_ text] (_ann (#Text text))))
+ ("lux type check" {#Function Text Code}
+ ([_ text] (_ann {#Text text})))
#0)
("lux def" identifier$
- ("lux type check" (#Function Name Code)
- ([_ name] (_ann (#Identifier name))))
+ ("lux type check" {#Function Name Code}
+ ([_ name] (_ann {#Identifier name})))
#0)
("lux def" local_identifier$
- ("lux type check" (#Function Text Code)
- ([_ name] (_ann (#Identifier ["" name]))))
+ ("lux type check" {#Function Text Code}
+ ([_ name] (_ann {#Identifier ["" name]})))
#0)
("lux def" tag$
- ("lux type check" (#Function Name Code)
- ([_ name] (_ann (#Tag name))))
+ ("lux type check" {#Function Name Code}
+ ([_ name] (_ann {#Tag name})))
#0)
("lux def" local_tag$
- ("lux type check" (#Function Text Code)
- ([_ name] (_ann (#Tag ["" name]))))
+ ("lux type check" {#Function Text Code}
+ ([_ name] (_ann {#Tag ["" name]})))
#0)
("lux def" form$
- ("lux type check" (#Function (#Apply Code List) Code)
- ([_ tokens] (_ann (#Form tokens))))
+ ("lux type check" {#Function {#Apply Code List} Code}
+ ([_ tokens] (_ann {#Form tokens})))
#0)
("lux def" variant$
- ("lux type check" (#Function (#Apply Code List) Code)
- ([_ tokens] (_ann (#Variant tokens))))
+ ("lux type check" {#Function {#Apply Code List} Code}
+ ([_ tokens] (_ann {#Variant tokens})))
#0)
("lux def" tuple$
- ("lux type check" (#Function (#Apply Code List) Code)
- ([_ tokens] (_ann (#Tuple tokens))))
+ ("lux type check" {#Function {#Apply Code List} Code}
+ ([_ tokens] (_ann {#Tuple tokens})))
#0)
... (type: .public Definition
... [Bit Type Any])
("lux def" Definition
("lux type check type"
- (#Named [..prelude_module "Definition"]
- (#Product Bit (#Product Type Any))))
+ {#Named [..prelude_module "Definition"]
+ {#Product Bit {#Product Type Any}}})
.public)
... (type: .public Alias
... Name)
("lux def" Alias
("lux type check type"
- (#Named [..prelude_module "Alias"]
- Name))
+ {#Named [..prelude_module "Alias"]
+ Name})
.public)
... (type: .public Label
... [Bit Type (List Text) Nat])
("lux def" Label
("lux type check type"
- (#Named [..prelude_module "Label"]
- (#Product Bit (#Product Type (#Product (#Apply Text List) Nat)))))
+ {#Named [..prelude_module "Label"]
+ {#Product Bit {#Product Type {#Product {#Apply Text List} Nat}}}})
.public)
... (type: .public Global
... (Variant
-... (#Definition Definition)
-... (#Type [Bit Type (Either [Text (List Text)] [Text (List Text)])])
-... (#Tag Label)
-... (#Slot Label)
-... (#Alias Alias)))
+... {#Definition Definition}
+... {#Type [Bit Type (Either [Text (List Text)] [Text (List Text)])]}
+... {#Tag Label}
+... {#Slot Label}
+... {#Alias Alias}))
("lux def type tagged" Global
- (#Named [..prelude_module "Global"]
- (#Sum Definition
- (#Sum ({labels
- (#Product Bit (#Product Type (#Sum labels labels)))}
- (#Product Text (#Apply Text List)))
- (#Sum Label
- (#Sum Label
- Alias)))))
- ("Definition" "Type" "Label" "Slot" "Alias")
+ {#Named [..prelude_module "Global"]
+ {#Sum Definition
+ {#Sum ({labels
+ {#Product Bit {#Product Type {#Sum labels labels}}}}
+ {#Product Text {#Apply Text List}})
+ {#Sum Label
+ {#Sum Label
+ Alias}}}}}
+ {"Definition" "Type" "Label" "Slot" "Alias"}
.public)
... (type: .public (Bindings k v)
@@ -397,29 +421,29 @@
... [#counter Nat
... #mappings (List [k v])]))
("lux def type tagged" Bindings
- (#Named [..prelude_module "Bindings"]
- (#UnivQ #End
- (#UnivQ #End
- (#Product
- ... counter
- Nat
- ... mappings
- (#Apply (#Product (#Parameter 3)
- (#Parameter 1))
- List)))))
+ {#Named [..prelude_module "Bindings"]
+ {#UnivQ #End
+ {#UnivQ #End
+ {#Product
+ ... counter
+ Nat
+ ... mappings
+ {#Apply {#Product {#Parameter 3}
+ {#Parameter 1}}
+ List}}}}}
["counter" "mappings"]
.public)
... (type: .public Ref
-... (#Local Nat)
-... (#Captured Nat))
+... {#Local Nat}
+... {#Captured Nat})
("lux def type tagged" Ref
- (#Named [..prelude_module "Ref"]
- (#Sum ... Local
- Nat
- ... Captured
- Nat))
- ("Local" "Captured")
+ {#Named [..prelude_module "Ref"]
+ {#Sum ... Local
+ Nat
+ ... Captured
+ Nat}}
+ {"Local" "Captured"}
.public)
... (type: .public Scope
@@ -429,44 +453,44 @@
... #locals (Bindings Text [Type Nat])
... #captured (Bindings Text [Type Ref])]))
("lux def type tagged" Scope
- (#Named [..prelude_module "Scope"]
- (#Product ... name
- (#Apply Text List)
- (#Product ... inner
- Nat
- (#Product ... locals
- (#Apply (#Product Type Nat) (#Apply Text Bindings))
- ... captured
- (#Apply (#Product Type Ref) (#Apply Text Bindings))))))
+ {#Named [..prelude_module "Scope"]
+ {#Product ... name
+ {#Apply Text List}
+ {#Product ... inner
+ Nat
+ {#Product ... locals
+ {#Apply {#Product Type Nat} {#Apply Text Bindings}}
+ ... captured
+ {#Apply {#Product Type Ref} {#Apply Text Bindings}}}}}}
["name" "inner" "locals" "captured"]
.public)
("lux def" Code_List
("lux type check type"
- (#Apply Code List))
+ {#Apply Code List})
#0)
... (type: .public (Either l r)
-... (#Left l)
-... (#Right r))
+... {#Left l}
+... {#Right r})
("lux def type tagged" Either
- (#Named [..prelude_module "Either"]
- (#UnivQ #End
- (#UnivQ #End
- (#Sum
- ... Left
- (#Parameter 3)
- ... Right
- (#Parameter 1)))))
- ("Left" "Right")
+ {#Named [..prelude_module "Either"]
+ {#UnivQ #End
+ {#UnivQ #End
+ {#Sum
+ ... Left
+ {#Parameter 3}
+ ... Right
+ {#Parameter 1}}}}}
+ {"Left" "Right"}
.public)
... (type: .public Source
... [Location Nat Text])
("lux def" Source
("lux type check type"
- (#Named [..prelude_module "Source"]
- (#Product Location (#Product Nat Text))))
+ {#Named [..prelude_module "Source"]
+ {#Product Location {#Product Nat Text}}})
.public)
... (type: .public Module_State
@@ -474,16 +498,16 @@
... #Compiled
... #Cached)
("lux def type tagged" Module_State
- (#Named [..prelude_module "Module_State"]
- (#Sum
- ... #Active
- Any
- (#Sum
- ... #Compiled
- Any
- ... #Cached
- Any)))
- ("Active" "Compiled" "Cached")
+ {#Named [..prelude_module "Module_State"]
+ {#Sum
+ ... #Active
+ Any
+ {#Sum
+ ... #Compiled
+ Any
+ ... #Cached
+ Any}}}
+ {"Active" "Compiled" "Cached"}
.public)
... (type: .public Module
@@ -494,22 +518,22 @@
... #imports (List Text)
... #module_state Module_State]))
("lux def type tagged" Module
- (#Named [..prelude_module "Module"]
- (#Product
- ... module_hash
- Nat
- (#Product
- ... module_aliases
- (#Apply (#Product Text Text) List)
- (#Product
- ... definitions
- (#Apply (#Product Text Global) List)
- (#Product
- ... imports
- (#Apply Text List)
- ... module_state
- Module_State
- )))))
+ {#Named [..prelude_module "Module"]
+ {#Product
+ ... module_hash
+ Nat
+ {#Product
+ ... module_aliases
+ {#Apply {#Product Text Text} List}
+ {#Product
+ ... definitions
+ {#Apply {#Product Text Global} List}
+ {#Product
+ ... imports
+ {#Apply Text List}
+ ... module_state
+ Module_State
+ }}}}}
["module_hash" "module_aliases" "definitions" "imports" "module_state"]
.public)
@@ -519,14 +543,14 @@
... #var_counter Nat
... #var_bindings (List [Nat (Maybe Type)])]))
("lux def type tagged" Type_Context
- (#Named [..prelude_module "Type_Context"]
- (#Product ... ex_counter
- Nat
- (#Product ... var_counter
- Nat
- ... var_bindings
- (#Apply (#Product Nat (#Apply Type Maybe))
- List))))
+ {#Named [..prelude_module "Type_Context"]
+ {#Product ... ex_counter
+ Nat
+ {#Product ... var_counter
+ Nat
+ ... var_bindings
+ {#Apply {#Product Nat {#Apply Type Maybe}}
+ List}}}}
["ex_counter" "var_counter" "var_bindings"]
.public)
@@ -535,14 +559,14 @@
... #Eval
... #Interpreter)
("lux def type tagged" Mode
- (#Named [..prelude_module "Mode"]
- (#Sum ... Build
- Any
- (#Sum ... Eval
- Any
- ... Interpreter
- Any)))
- ("Build" "Eval" "Interpreter")
+ {#Named [..prelude_module "Mode"]
+ {#Sum ... Build
+ Any
+ {#Sum ... Eval
+ Any
+ ... Interpreter
+ Any}}}
+ {"Build" "Eval" "Interpreter"}
.public)
... (type: .public Info
@@ -551,15 +575,15 @@
... #version Text
... #mode Mode]))
("lux def type tagged" Info
- (#Named [..prelude_module "Info"]
- (#Product
- ... target
- Text
- (#Product
- ... version
- Text
- ... mode
- Mode)))
+ {#Named [..prelude_module "Info"]
+ {#Product
+ ... target
+ Text
+ {#Product
+ ... version
+ Text
+ ... mode
+ Mode}}}
["target" "version" "mode"]
.public)
@@ -579,52 +603,52 @@
... #eval (-> Type Code (-> Lux (Either Text [Lux Any])))
... #host Any]))
("lux def type tagged" Lux
- (#Named [..prelude_module "Lux"]
- ({Lux
- (#Apply (0 #0 ["" #End])
- (#UnivQ #End
- (#Product
- ... info
- Info
- (#Product
- ... source
- Source
- (#Product
- ... location
- Location
- (#Product
- ... current_module
- (#Apply Text Maybe)
- (#Product
- ... modules
- (#Apply (#Product Text Module) List)
- (#Product
- ... scopes
- (#Apply Scope List)
- (#Product
- ... type_context
- Type_Context
- (#Product
- ... expected
- (#Apply Type Maybe)
- (#Product
- ... seed
- Nat
- (#Product
- ... scope_type_vars
- (#Apply Nat List)
- (#Product
- ... extensions
- Any
- (#Product
- ... eval
- (#Function Type
- (#Function Code
- (#Function Lux
- (#Sum Text (#Product Lux Any)))))
- ... host
- Any))))))))))))))}
- (#Apply (0 #0 ["" #End]) (#Parameter 0))))
+ {#Named [..prelude_module "Lux"]
+ ({Lux
+ {#Apply {0 #0 ["" #End]}
+ {#UnivQ #End
+ {#Product
+ ... info
+ Info
+ {#Product
+ ... source
+ Source
+ {#Product
+ ... location
+ Location
+ {#Product
+ ... current_module
+ {#Apply Text Maybe}
+ {#Product
+ ... modules
+ {#Apply {#Product Text Module} List}
+ {#Product
+ ... scopes
+ {#Apply Scope List}
+ {#Product
+ ... type_context
+ Type_Context
+ {#Product
+ ... expected
+ {#Apply Type Maybe}
+ {#Product
+ ... seed
+ Nat
+ {#Product
+ ... scope_type_vars
+ {#Apply Nat List}
+ {#Product
+ ... extensions
+ Any
+ {#Product
+ ... eval
+ {#Function Type
+ {#Function Code
+ {#Function Lux
+ {#Sum Text {#Product Lux Any}}}}}
+ ... host
+ Any}}}}}}}}}}}}}}}
+ {#Apply {0 #0 ["" #End]} {#Parameter 0}})}
["info" "source" "location" "current_module" "modules" "scopes" "type_context" "expected" "seed" "scope_type_vars" "extensions" "eval" "host"]
.public)
@@ -632,63 +656,63 @@
... (-> Lux (Either Text [Lux a])))
("lux def" Meta
("lux type check type"
- (#Named [..prelude_module "Meta"]
- (#UnivQ #End
- (#Function Lux
- (#Apply (#Product Lux (#Parameter 1))
- (#Apply Text Either))))))
+ {#Named [..prelude_module "Meta"]
+ {#UnivQ #End
+ {#Function Lux
+ {#Apply {#Product Lux {#Parameter 1}}
+ {#Apply Text Either}}}}})
.public)
... (type: .public Macro'
... (-> (List Code) (Meta (List Code))))
("lux def" Macro'
("lux type check type"
- (#Named [..prelude_module "Macro'"]
- (#Function Code_List (#Apply Code_List Meta))))
+ {#Named [..prelude_module "Macro'"]
+ {#Function Code_List {#Apply Code_List Meta}}})
.public)
... (type: .public Macro
... (primitive "#Macro"))
("lux def" Macro
("lux type check type"
- (#Named [..prelude_module "Macro"]
- (#Primitive "#Macro" #End)))
+ {#Named [..prelude_module "Macro"]
+ {#Primitive "#Macro" #End}})
.public)
... Base functions & macros
("lux def" in_meta
("lux type check"
- (#UnivQ #End
- (#Function (#Parameter 1)
- (#Function Lux
- (#Apply (#Product Lux
- (#Parameter 1))
- (#Apply Text Either)))))
+ {#UnivQ #End
+ {#Function {#Parameter 1}
+ {#Function Lux
+ {#Apply {#Product Lux
+ {#Parameter 1}}
+ {#Apply Text Either}}}}}
([_ val]
([_ state]
- (#Right state val))))
+ {#Right state val})))
#0)
("lux def" failure
("lux type check"
- (#UnivQ #End
- (#Function Text
- (#Function Lux
- (#Apply (#Product Lux
- (#Parameter 1))
- (#Apply Text Either)))))
+ {#UnivQ #End
+ {#Function Text
+ {#Function Lux
+ {#Apply {#Product Lux
+ {#Parameter 1}}
+ {#Apply Text Either}}}}}
([_ msg]
([_ state]
- (#Left msg))))
+ {#Left msg})))
#0)
("lux def" let''
("lux macro"
([_ tokens]
- ({(#Item lhs (#Item rhs (#Item body #End)))
- (in_meta (#Item (form$ (#Item (variant$ (#Item lhs (#Item body #End)))
- (#Item rhs #End)))
- #End))
+ ({{#Item lhs {#Item rhs {#Item body #End}}}
+ (in_meta {#Item (form$ {#Item (variant$ {#Item lhs {#Item body #End}})
+ {#Item rhs #End}})
+ #End})
_
(failure "Wrong syntax for let''")}
@@ -698,33 +722,33 @@
("lux def" function''
("lux macro"
([_ tokens]
- ({(#Item [_ (#Tuple (#Item arg args'))] (#Item body #End))
- (in_meta (#Item (_ann (#Form (#Item (_ann (#Tuple (#Item (_ann (#Identifier ["" ""]))
- (#Item arg #End))))
- (#Item ({#End
- body
-
- _
- (_ann (#Form (#Item (_ann (#Identifier [..prelude_module "function''"]))
- (#Item (_ann (#Tuple args'))
- (#Item body #End)))))}
- args')
- #End))))
- #End))
-
- (#Item [_ (#Identifier ["" self])] (#Item [_ (#Tuple (#Item arg args'))] (#Item body #End)))
- (in_meta (#Item (_ann (#Form (#Item (_ann (#Tuple (#Item (_ann (#Identifier ["" self]))
- (#Item arg #End))))
- (#Item ({#End
- body
-
- _
- (_ann (#Form (#Item (_ann (#Identifier [..prelude_module "function''"]))
- (#Item (_ann (#Tuple args'))
- (#Item body #End)))))}
- args')
- #End))))
- #End))
+ ({{#Item [_ {#Tuple {#Item arg args'}}] {#Item body #End}}
+ (in_meta {#Item (_ann {#Form {#Item (_ann {#Tuple {#Item (_ann {#Identifier ["" ""]})
+ {#Item arg #End}}})
+ {#Item ({#End
+ body
+
+ _
+ (_ann {#Form {#Item (_ann {#Identifier [..prelude_module "function''"]})
+ {#Item (_ann {#Tuple args'})
+ {#Item body #End}}}})}
+ args')
+ #End}}})
+ #End})
+
+ {#Item [_ {#Identifier ["" self]}] {#Item [_ {#Tuple {#Item arg args'}}] {#Item body #End}}}
+ (in_meta {#Item (_ann {#Form {#Item (_ann {#Tuple {#Item (_ann {#Identifier ["" self]})
+ {#Item arg #End}}})
+ {#Item ({#End
+ body
+
+ _
+ (_ann {#Form {#Item (_ann {#Identifier [..prelude_module "function''"]})
+ {#Item (_ann {#Tuple args'})
+ {#Item body #End}}}})}
+ args')
+ #End}}})
+ #End})
_
(failure "Wrong syntax for function''")}
@@ -733,70 +757,70 @@
("lux def" location_code
("lux type check" Code
- (tuple$ (#Item (text$ "") (#Item (nat$ 0) (#Item (nat$ 0) #End)))))
+ (tuple$ {#Item (text$ "") {#Item (nat$ 0) {#Item (nat$ 0) #End}}}))
#0)
("lux def" meta_code
- ("lux type check" (#Function Name (#Function Code Code))
+ ("lux type check" {#Function Name {#Function Code Code}}
([_ tag]
([_ value]
- (tuple$ (#Item location_code
- (#Item (form$ (#Item (tag$ tag) (#Item value #End)))
- #End))))))
+ (tuple$ {#Item location_code
+ {#Item (form$ {#Item (tag$ tag) {#Item value #End}})
+ #End}}))))
#0)
("lux def" flag_meta
- ("lux type check" (#Function Text Code)
+ ("lux type check" {#Function Text Code}
([_ tag]
- (tuple$ (#Item [(meta_code [..prelude_module "Tag"] (tuple$ (#Item (text$ ..prelude_module) (#Item (text$ tag) #End))))
- (#Item [(meta_code [..prelude_module "Bit"] (bit$ #1))
- #End])]))))
+ (tuple$ {#Item [(meta_code [..prelude_module "Tag"] (tuple$ {#Item (text$ ..prelude_module) {#Item (text$ tag) #End}}))
+ {#Item [(meta_code [..prelude_module "Bit"] (bit$ #1))
+ #End]}]})))
#0)
("lux def" as_def
- ("lux type check" (#Function Code (#Function Code (#Function Code Code)))
+ ("lux type check" {#Function Code {#Function Code {#Function Code Code}}}
(function'' [name value export_policy]
- (form$ (#Item (text$ "lux def") (#Item name (#Item value (#Item export_policy #End)))))))
+ (form$ {#Item (text$ "lux def") {#Item name {#Item value {#Item export_policy #End}}}})))
#0)
("lux def" as_checked
- ("lux type check" (#Function Code (#Function Code Code))
+ ("lux type check" {#Function Code {#Function Code Code}}
(function'' [type value]
- (form$ (#Item (text$ "lux type check") (#Item type (#Item value #End))))))
+ (form$ {#Item (text$ "lux type check") {#Item type {#Item value #End}}})))
#0)
("lux def" as_function
- ("lux type check" (#Function Code (#Function (#Apply Code List) (#Function Code Code)))
+ ("lux type check" {#Function Code {#Function {#Apply Code List} {#Function Code Code}}}
(function'' [self inputs output]
- (form$ (#Item (identifier$ [..prelude_module "function''"])
- (#Item self
- (#Item (tuple$ inputs)
- (#Item output #End)))))))
+ (form$ {#Item (identifier$ [..prelude_module "function''"])
+ {#Item self
+ {#Item (tuple$ inputs)
+ {#Item output #End}}}})))
#0)
("lux def" as_macro
- ("lux type check" (#Function Code Code)
+ ("lux type check" {#Function Code Code}
(function'' [expression]
- (form$ (#Item (text$ "lux macro")
- (#Item expression
- #End)))))
+ (form$ {#Item (text$ "lux macro")
+ {#Item expression
+ #End}})))
#0)
("lux def" def:''
("lux macro"
(function'' [tokens]
- ({(#Item [export_policy
- (#Item [[_ (#Form (#Item [name args]))]
- (#Item [type (#Item [body #End])])])])
- (in_meta (#Item [(as_def name
+ ({{#Item [export_policy
+ {#Item [[_ {#Form {#Item [name args]}}]
+ {#Item [type {#Item [body #End]}]}]}]}
+ (in_meta {#Item [(as_def name
(as_checked type (as_function name args body))
export_policy)
- #End]))
+ #End]})
- (#Item [export_policy (#Item [name (#Item [type (#Item [body #End])])])])
- (in_meta (#Item [(as_def name (as_checked type body)
+ {#Item [export_policy {#Item [name {#Item [type {#Item [body #End]}]}]}]}
+ (in_meta {#Item [(as_def name (as_checked type body)
export_policy)
- #End]))
+ #End]})
_
(failure "Wrong syntax for def''")}
@@ -806,10 +830,10 @@
("lux def" macro:'
("lux macro"
(function'' [tokens]
- ({(#Item export_policy (#Item [_ (#Form (#Item name args))] (#Item body #End)))
- (in_meta (#Item (as_def name (as_macro (as_function name args body))
+ ({{#Item export_policy {#Item [_ {#Form {#Item name args}}] {#Item body #End}}}
+ (in_meta {#Item (as_def name (as_macro (as_function name args body))
export_policy)
- #End))
+ #End})
_
(failure "Wrong syntax for macro:'")}
@@ -820,58 +844,58 @@
(in_meta #End))
(macro:' .private ($' tokens)
- ({(#Item x #End)
+ ({{#Item x #End}
(in_meta tokens)
- (#Item x (#Item y xs))
- (in_meta (#Item (form$ (#Item (identifier$ [..prelude_module "$'"])
- (#Item (form$ (#Item (tag$ [..prelude_module "Apply"])
- (#Item y (#Item x #End))))
- xs)))
- #End))
+ {#Item x {#Item y xs}}
+ (in_meta {#Item (form$ {#Item (identifier$ [..prelude_module "$'"])
+ {#Item (variant$ {#Item (tag$ [..prelude_module "Apply"])
+ {#Item y {#Item x #End}}})
+ xs}})
+ #End})
_
(failure "Wrong syntax for $'")}
tokens))
(def:'' .private (list\each f xs)
- (#UnivQ #End
- (#UnivQ #End
- (#Function (#Function (#Parameter 3) (#Parameter 1))
- (#Function ($' List (#Parameter 3))
- ($' List (#Parameter 1))))))
+ {#UnivQ #End
+ {#UnivQ #End
+ {#Function {#Function {#Parameter 3} {#Parameter 1}}
+ {#Function ($' List {#Parameter 3})
+ ($' List {#Parameter 1})}}}}
({#End
#End
- (#Item x xs')
- (#Item (f x) (list\each f xs'))}
+ {#Item x xs'}
+ {#Item (f x) (list\each f xs')}}
xs))
(def:'' .private Replacement_Environment
Type
- ($' List (#Product Text Code)))
+ ($' List {#Product Text Code}))
(def:'' .private (replacement_environment xs ys)
- (#Function ($' List Text) (#Function ($' List Code) Replacement_Environment))
- ({[(#Item x xs') (#Item y ys')]
- (#Item [x y] (replacement_environment xs' ys'))
+ {#Function ($' List Text) {#Function ($' List Code) Replacement_Environment}}
+ ({[{#Item x xs'} {#Item y ys'}]
+ {#Item [x y] (replacement_environment xs' ys')}
_
#End}
[xs ys]))
(def:'' .private (text\= reference sample)
- (#Function Text (#Function Text Bit))
+ {#Function Text {#Function Text Bit}}
("lux text =" reference sample))
(def:'' .private (replacement for environment)
- (#Function Text (#Function Replacement_Environment ($' Maybe Code)))
+ {#Function Text {#Function Replacement_Environment ($' Maybe Code)}}
({#End
#None
- (#Item [k v] environment')
+ {#Item [k v] environment'}
({#1
- (#Some v)
+ {#Some v}
#0
(replacement for environment')}
@@ -879,30 +903,30 @@
environment))
(def:'' .private (with_replacements reps syntax)
- (#Function Replacement_Environment (#Function Code Code))
- ({[_ (#Identifier "" name)]
- ({(#Some replacement)
+ {#Function Replacement_Environment {#Function Code Code}}
+ ({[_ {#Identifier "" name}]
+ ({{#Some replacement}
replacement
#None
syntax}
(..replacement name reps))
- [meta (#Form parts)]
- [meta (#Form (list\each (with_replacements reps) parts))]
+ [meta {#Form parts}]
+ [meta {#Form (list\each (with_replacements reps) parts)}]
- [meta (#Variant members)]
- [meta (#Variant (list\each (with_replacements reps) members))]
+ [meta {#Variant members}]
+ [meta {#Variant (list\each (with_replacements reps) members)}]
- [meta (#Tuple members)]
- [meta (#Tuple (list\each (with_replacements reps) members))]
+ [meta {#Tuple members}]
+ [meta {#Tuple (list\each (with_replacements reps) members)}]
_
syntax}
syntax))
(def:'' .private (n/* param subject)
- (#Function Nat (#Function Nat Nat))
+ {#Function Nat {#Function Nat Nat}}
("lux type as" Nat
("lux i64 *"
("lux type as" Int param)
@@ -910,36 +934,36 @@
(def:'' .private (list\mix f init xs)
... (All (_ a b) (-> (-> b a a) a (List b) a))
- (#UnivQ #End (#UnivQ #End (#Function (#Function (#Parameter 1)
- (#Function (#Parameter 3)
- (#Parameter 3)))
- (#Function (#Parameter 3)
- (#Function ($' List (#Parameter 1))
- (#Parameter 3))))))
+ {#UnivQ #End {#UnivQ #End {#Function {#Function {#Parameter 1}
+ {#Function {#Parameter 3}
+ {#Parameter 3}}}
+ {#Function {#Parameter 3}
+ {#Function ($' List {#Parameter 1})
+ {#Parameter 3}}}}}}
({#End
init
- (#Item x xs')
+ {#Item x xs'}
(list\mix f (f x init) xs')}
xs))
(def:'' .private (list\size list)
- (#UnivQ #End
- (#Function ($' List (#Parameter 1)) Nat))
+ {#UnivQ #End
+ {#Function ($' List {#Parameter 1}) Nat}}
(list\mix (function'' [_ acc] ("lux i64 +" 1 acc)) 0 list))
(def:'' .private (let$ binding value body)
- (#Function Code (#Function Code (#Function Code Code)))
- (form$ (#Item (variant$ (#Item binding (#Item body #End)))
- (#Item value #End))))
+ {#Function Code {#Function Code {#Function Code Code}}}
+ (form$ {#Item (variant$ {#Item binding {#Item body #End}})
+ {#Item value #End}}))
(def:'' .private (UnivQ$ body)
- (#Function Code Code)
- (form$ (#Item (tag$ [..prelude_module "UnivQ"]) (#Item (tag$ [..prelude_module "End"]) (#Item body #End)))))
+ {#Function Code Code}
+ (variant$ {#Item (tag$ [..prelude_module "UnivQ"]) {#Item (tag$ [..prelude_module "End"]) {#Item body #End}}}))
(def:'' .private (ExQ$ body)
- (#Function Code Code)
- (form$ (#Item (tag$ [..prelude_module "ExQ"]) (#Item (tag$ [..prelude_module "End"]) (#Item body #End)))))
+ {#Function Code Code}
+ (variant$ {#Item (tag$ [..prelude_module "ExQ"]) {#Item (tag$ [..prelude_module "End"]) {#Item body #End}}}))
(def:'' .private quantification_level
Text
@@ -948,24 +972,24 @@
double_quote)))
(def:'' .private quantified
- (#Function Code Code)
+ {#Function Code Code}
(let$ (local_identifier$ ..quantification_level) (nat$ 0)))
(def:'' .private (quantified_type_parameter idx)
- (#Function Nat Code)
- (form$ (#Item (tag$ [..prelude_module "Parameter"])
- (#Item (form$ (#Item (text$ "lux i64 +")
- (#Item (local_identifier$ ..quantification_level)
- (#Item (nat$ idx)
- #End))))
- #End))))
+ {#Function Nat Code}
+ (variant$ {#Item (tag$ [..prelude_module "Parameter"])
+ {#Item (form$ {#Item (text$ "lux i64 +")
+ {#Item (local_identifier$ ..quantification_level)
+ {#Item (nat$ idx)
+ #End}}})
+ #End}}))
(def:'' .private (next_level depth)
- (#Function Nat Nat)
+ {#Function Nat Nat}
("lux i64 +" 2 depth))
(def:'' .private (self_id? id)
- (#Function Nat Bit)
+ {#Function Nat Bit}
("lux i64 =" id ("lux type as" Nat
("lux i64 *" +2
("lux i64 /" +2
@@ -973,49 +997,49 @@
id))))))
(def:'' .public (__adjusted_quantified_type__ permission depth type)
- (#Function Nat (#Function Nat (#Function Type Type)))
+ {#Function Nat {#Function Nat {#Function Type Type}}}
({0
({... Jackpot!
- (#Parameter id)
+ {#Parameter id}
({id'
- ({#0 (#Parameter id')
- #1 (#Parameter ("lux i64 -" 2 id'))}
+ ({#0 {#Parameter id'}
+ #1 {#Parameter ("lux i64 -" 2 id')}}
(self_id? id))}
("lux i64 -" ("lux i64 -" depth id) 0))
... Recur
- (#Primitive name parameters)
- (#Primitive name (list\each (__adjusted_quantified_type__ permission depth)
- parameters))
+ {#Primitive name parameters}
+ {#Primitive name (list\each (__adjusted_quantified_type__ permission depth)
+ parameters)}
- (#Sum left right)
- (#Sum (__adjusted_quantified_type__ permission depth left)
- (__adjusted_quantified_type__ permission depth right))
+ {#Sum left right}
+ {#Sum (__adjusted_quantified_type__ permission depth left)
+ (__adjusted_quantified_type__ permission depth right)}
- (#Product left right)
- (#Product (__adjusted_quantified_type__ permission depth left)
- (__adjusted_quantified_type__ permission depth right))
+ {#Product left right}
+ {#Product (__adjusted_quantified_type__ permission depth left)
+ (__adjusted_quantified_type__ permission depth right)}
- (#Function input output)
- (#Function (__adjusted_quantified_type__ permission depth input)
- (__adjusted_quantified_type__ permission depth output))
+ {#Function input output}
+ {#Function (__adjusted_quantified_type__ permission depth input)
+ (__adjusted_quantified_type__ permission depth output)}
- (#UnivQ environment body)
- (#UnivQ environment
- (__adjusted_quantified_type__ permission (next_level depth) body))
+ {#UnivQ environment body}
+ {#UnivQ environment
+ (__adjusted_quantified_type__ permission (next_level depth) body)}
- (#ExQ environment body)
- (#ExQ environment
- (__adjusted_quantified_type__ permission (next_level depth) body))
+ {#ExQ environment body}
+ {#ExQ environment
+ (__adjusted_quantified_type__ permission (next_level depth) body)}
- (#Apply parameter function)
- (#Apply (__adjusted_quantified_type__ permission depth parameter)
- (__adjusted_quantified_type__ permission depth function))
+ {#Apply parameter function}
+ {#Apply (__adjusted_quantified_type__ permission depth parameter)
+ (__adjusted_quantified_type__ permission depth function)}
... Leave these alone.
- (#Named name anonymous) type
- (#Var id) type
- (#Ex id) type}
+ {#Named name anonymous} type
+ {#Var id} type
+ {#Ex id} type}
type)
_
@@ -1023,29 +1047,29 @@
permission))
(def:'' .private (with_correct_quantification body)
- (#Function Code Code)
- (form$ (#Item (identifier$ [prelude_module "__adjusted_quantified_type__"])
- (#Item (local_identifier$ ..quantification_level)
- (#Item (nat$ 0)
- (#Item body
- #End))))))
+ {#Function Code Code}
+ (form$ {#Item (identifier$ [prelude_module "__adjusted_quantified_type__"])
+ {#Item (local_identifier$ ..quantification_level)
+ {#Item (nat$ 0)
+ {#Item body
+ #End}}}}))
(def:'' .private (with_quantification depth body)
- (#Function Nat (#Function Code Code))
+ {#Function Nat {#Function Code Code}}
({g!level
(let$ g!level
- (form$ (#Item (text$ "lux i64 +")
- (#Item g!level
- (#Item (nat$ ("lux type as" Nat
- ("lux i64 *" +2
- ("lux type as" Int
- depth))))
- #End))))
+ (form$ {#Item (text$ "lux i64 +")
+ {#Item g!level
+ {#Item (nat$ ("lux type as" Nat
+ ("lux i64 *" +2
+ ("lux type as" Int
+ depth))))
+ #End}}})
body)}
(local_identifier$ ..quantification_level)))
(def:'' .private (initialized_quantification? lux)
- (#Function Lux Bit)
+ {#Function Lux Bit}
({[#info _ #source _ #current_module _ #modules _
#scopes scopes #type_context _ #host _
#seed _ #expected _ #location _ #extensions _
@@ -1070,17 +1094,17 @@
lux))
(macro:' .public (All tokens lux)
- ({(#Item [_ (#Form (#Item self_name args))]
- (#Item body #End))
- (#Right [lux
- (#Item ({raw
+ ({{#Item [_ {#Form {#Item self_name args}}]
+ {#Item body #End}}
+ {#Right [lux
+ {#Item ({raw
({#1 raw
#0 (..quantified raw)}
(initialized_quantification? lux))}
({#End
body
- (#Item head tail)
+ {#Item head tail}
(with_correct_quantification
(let$ self_name (quantified_type_parameter 0)
({[_ raw]
@@ -1095,24 +1119,24 @@
body)]
args))))}
args))
- #End)])
+ #End}]}
_
- (#Left "Wrong syntax for All")}
+ {#Left "Wrong syntax for All"}}
tokens))
(macro:' .public (Ex tokens lux)
- ({(#Item [_ (#Form (#Item self_name args))]
- (#Item body #End))
- (#Right [lux
- (#Item ({raw
+ ({{#Item [_ {#Form {#Item self_name args}}]
+ {#Item body #End}}
+ {#Right [lux
+ {#Item ({raw
({#1 raw
#0 (..quantified raw)}
(initialized_quantification? lux))}
({#End
body
- (#Item head tail)
+ {#Item head tail}
(with_correct_quantification
(let$ self_name (quantified_type_parameter 0)
({[_ raw]
@@ -1127,47 +1151,47 @@
body)]
args))))}
args))
- #End)])
+ #End}]}
_
- (#Left "Wrong syntax for Ex")}
+ {#Left "Wrong syntax for Ex"}}
tokens))
(def:'' .private (list\reversed list)
(All (_ a)
- (#Function ($' List a) ($' List a)))
+ {#Function ($' List a) ($' List a)})
(list\mix ("lux type check" (All (_ a)
- (#Function a (#Function ($' List a) ($' List a))))
- (function'' [head tail] (#Item head tail)))
+ {#Function a {#Function ($' List a) ($' List a)}})
+ (function'' [head tail] {#Item head tail}))
#End
list))
(macro:' .public (-> tokens)
- ({(#Item output inputs)
- (in_meta (#Item (list\mix ("lux type check" (#Function Code (#Function Code Code))
- (function'' [i o] (form$ (#Item (tag$ [..prelude_module "Function"]) (#Item i (#Item o #End))))))
+ ({{#Item output inputs}
+ (in_meta {#Item (list\mix ("lux type check" {#Function Code {#Function Code Code}}
+ (function'' [i o] (variant$ {#Item (tag$ [..prelude_module "Function"]) {#Item i {#Item o #End}}})))
output
inputs)
- #End))
+ #End})
_
(failure "Wrong syntax for ->")}
(list\reversed tokens)))
(macro:' .public (list xs)
- (in_meta (#Item (list\mix (function'' [head tail]
- (form$ (#Item (tag$ [..prelude_module "Item"])
- (#Item (tuple$ (#Item [head (#Item [tail #End])]))
- #End))))
+ (in_meta {#Item (list\mix (function'' [head tail]
+ (variant$ {#Item (tag$ [..prelude_module "Item"])
+ {#Item (tuple$ {#Item [head {#Item [tail #End]}]})
+ #End}}))
(tag$ [..prelude_module "End"])
(list\reversed xs))
- #End)))
+ #End}))
(macro:' .public (list& xs)
- ({(#Item last init)
+ ({{#Item last init}
(in_meta (list (list\mix (function'' [head tail]
- (form$ (list (tag$ [..prelude_module "Item"])
- (tuple$ (list head tail)))))
+ (variant$ (list (tag$ [..prelude_module "Item"])
+ (tuple$ (list head tail)))))
last
init)))
@@ -1179,8 +1203,8 @@
({#End
(in_meta (list (identifier$ [..prelude_module "Nothing"])))
- (#Item last prevs)
- (in_meta (list (list\mix (function'' [left right] (form$ (list (tag$ [..prelude_module "Sum"]) left right)))
+ {#Item last prevs}
+ (in_meta (list (list\mix (function'' [left right] (variant$ (list (tag$ [..prelude_module "Sum"]) left right)))
last
prevs)))}
(list\reversed tokens)))
@@ -1189,24 +1213,24 @@
({#End
(in_meta (list (identifier$ [..prelude_module "Any"])))
- (#Item last prevs)
- (in_meta (list (list\mix (function'' [left right] (form$ (list (tag$ [..prelude_module "Product"]) left right)))
+ {#Item last prevs}
+ (in_meta (list (list\mix (function'' [left right] (variant$ (list (tag$ [..prelude_module "Product"]) left right)))
last
prevs)))}
(list\reversed tokens)))
(macro:' .private (function' tokens)
- (let'' [name tokens'] ({(#Item [[_ (#Identifier ["" name])] tokens'])
+ (let'' [name tokens'] ({{#Item [[_ {#Identifier ["" name]}] tokens']}
[name tokens']
_
["" tokens]}
tokens)
- ({(#Item [[_ (#Tuple args)] (#Item [body #End])])
+ ({{#Item [[_ {#Tuple args}] {#Item [body #End]}]}
({#End
(failure "function' requires a non-empty arguments tuple.")
- (#Item [harg targs])
+ {#Item [harg targs]}
(in_meta (list (form$ (list (tuple$ (list (local_identifier$ name)
harg))
(list\mix (function'' [arg body']
@@ -1222,9 +1246,9 @@
tokens')))
(macro:' .private (def:''' tokens)
- ({(#Item [export_policy
- (#Item [[_ (#Form (#Item [name args]))]
- (#Item [type (#Item [body #End])])])])
+ ({{#Item [export_policy
+ {#Item [[_ {#Form {#Item [name args]}}]
+ {#Item [type {#Item [body #End]}]}]}]}
(in_meta (list (form$ (list (text$ "lux def")
name
(form$ (list (text$ "lux type check")
@@ -1235,7 +1259,7 @@
body))))
export_policy))))
- (#Item [export_policy (#Item [name (#Item [type (#Item [body #End])])])])
+ {#Item [export_policy {#Item [name {#Item [type {#Item [body #End]}]}]}]}
(in_meta (list (form$ (list (text$ "lux def")
name
(form$ (list (text$ "lux type check")
@@ -1257,15 +1281,15 @@
(def:''' .private (pairs xs)
(All (_ a) (-> ($' List a) ($' List (Tuple a a))))
- ({(#Item x (#Item y xs'))
- (#Item [x y] (pairs xs'))
+ ({{#Item x {#Item y xs'}}
+ {#Item [x y] (pairs xs')}
_
#End}
xs))
(macro:' .private (let' tokens)
- ({(#Item [[_ (#Tuple bindings)] (#Item [body #End])])
+ ({{#Item [[_ {#Tuple bindings}] {#Item [body #End]}]}
(in_meta (list (list\mix ("lux type check" (-> (Tuple Code Code) Code
Code)
(function' [binding body]
@@ -1285,7 +1309,7 @@
({#End
#0
- (#Item x xs')
+ {#Item x xs'}
({#1 #1
#0 (any? p xs')}
(p x))}
@@ -1299,16 +1323,18 @@
(def:''' .private (untemplated_list tokens)
(-> ($' List Code) Code)
({#End
- (_ann (#Tag [..prelude_module "End"]))
+ (_ann {#Tag [..prelude_module "End"]})
- (#Item [token tokens'])
- (_ann (#Form (list (_ann (#Tag [..prelude_module "Item"])) token (untemplated_list tokens'))))}
+ {#Item [token tokens']}
+ (_ann {#Variant (list (_ann {#Tag [..prelude_module "Item"]})
+ token
+ (untemplated_list tokens'))})}
tokens))
(def:''' .private (list\composite xs ys)
(All (_ a) (-> ($' List a) ($' List a) ($' List a)))
- ({(#Item x xs')
- (#Item x (list\composite xs' ys))
+ ({{#Item x xs'}
+ {#Item x (list\composite xs' ys)}
#End
ys}
@@ -1316,7 +1342,7 @@
(def:''' .private (right_associativity op a1 a2)
(-> Code Code Code Code)
- ({[_ (#Form parts)]
+ ({[_ {#Form parts}]
(form$ (list\composite parts (list a1 a2)))
_
@@ -1330,8 +1356,8 @@
(func left right)))
(macro:' .public (_$ tokens)
- ({(#Item op tokens')
- ({(#Item first nexts)
+ ({{#Item op tokens'}
+ ({{#Item first nexts}
(in_meta (list (list\mix (function\flipped (right_associativity op)) first nexts)))
_
@@ -1343,8 +1369,8 @@
tokens))
(macro:' .public ($_ tokens)
- ({(#Item op tokens')
- ({(#Item last prevs)
+ ({{#Item op tokens'}
+ ({{#Item last prevs}
(in_meta (list (list\mix (right_associativity op) last prevs)))
_
@@ -1362,26 +1388,26 @@
... (: (All (_ a b) (-> (-> a (m b)) (m a) (m b)))
... then)))
("lux def type tagged" Monad
- (#Named [..prelude_module "Monad"]
- (All (_ !)
- (Tuple (All (_ a)
- (-> a ($' ! a)))
- (All (_ a b)
- (-> (-> a ($' ! b))
- ($' ! a)
- ($' ! b))))))
+ {#Named [..prelude_module "Monad"]
+ (All (_ !)
+ (Tuple (All (_ a)
+ (-> a ($' ! a)))
+ (All (_ a b)
+ (-> (-> a ($' ! b))
+ ($' ! a)
+ ($' ! b)))))}
["in" "then"]
#0)
(def:''' .private maybe_monad
($' Monad Maybe)
[#in
- (function' [x] (#Some x))
+ (function' [x] {#Some x})
#then
(function' [f ma]
({#None #None
- (#Some a) (f a)}
+ {#Some a} (f a)}
ma))])
(def:''' .private meta_monad
@@ -1389,26 +1415,26 @@
[#in
(function' [x]
(function' [state]
- (#Right state x)))
+ {#Right state x}))
#then
(function' [f ma]
(function' [state]
- ({(#Left msg)
- (#Left msg)
+ ({{#Left msg}
+ {#Left msg}
- (#Right [state' a])
+ {#Right [state' a]}
(f a state')}
(ma state))))])
(macro:' .private (do tokens)
- ({(#Item monad (#Item [_ (#Tuple bindings)] (#Item body #End)))
+ ({{#Item monad {#Item [_ {#Tuple bindings}] {#Item body #End}}}
(let' [g!in (local_identifier$ "in")
g!then (local_identifier$ " then ")
body' (list\mix ("lux type check" (-> (Tuple Code Code) Code Code)
(function' [binding body']
(let' [[var value] binding]
- ({[_ (#Identifier [module short])]
+ ({[_ {#Identifier [module short]}]
({""
(form$ (list g!then
(form$ (list (tuple$ (list (local_identifier$ "") var)) body'))
@@ -1445,11 +1471,11 @@
({#End
(in #End)
- (#Item x xs')
+ {#Item x xs'}
(do m
[y (f x)
ys (monad\each m f xs')]
- (in (#Item y ys)))}
+ (in {#Item y ys}))}
xs)))
(def:''' .private (monad\mix m f y xs)
@@ -1463,14 +1489,14 @@
({#End
(in y)
- (#Item x xs')
+ {#Item x xs'}
(do m
[y' (f x y)]
(monad\mix m f y' xs'))}
xs)))
(macro:' .public (if tokens)
- ({(#Item test (#Item then (#Item else #End)))
+ ({{#Item test {#Item then {#Item else #End}}}
(in_meta (list (form$ (list (variant$ (list (bit$ #1) then
(bit$ #0) else))
test))))
@@ -1486,9 +1512,9 @@
(def:''' .private (plist\value k plist)
(All (_ a)
(-> Text ($' PList a) ($' Maybe a)))
- ({(#Item [[k' v] plist'])
+ ({{#Item [[k' v] plist']}
(if (text\= k k')
- (#Some v)
+ {#Some v}
(plist\value k plist'))
#End
@@ -1513,37 +1539,37 @@
#scopes scopes #type_context types #host host
#seed seed #expected expected #location location #extensions extensions
#scope_type_vars scope_type_vars #eval _eval] state]
- ({(#Some [#module_hash _ #module_aliases _ #definitions definitions #imports _ #module_state _])
- ({(#Some constant)
- ({(#Alias real_name)
- (#Right [state real_name])
+ ({{#Some [#module_hash _ #module_aliases _ #definitions definitions #imports _ #module_state _]}
+ ({{#Some constant}
+ ({{#Alias real_name}
+ {#Right [state real_name]}
- (#Definition [exported? def_type def_value])
- (#Right [state full_name])
+ {#Definition [exported? def_type def_value]}
+ {#Right [state full_name]}
- (#Type [exported? type labels])
- (#Right [state full_name])
+ {#Type [exported? type labels]}
+ {#Right [state full_name]}
- (#Label _)
- (#Left ($_ text\composite "Unknown definition: " (name\encoded full_name)))
+ {#Label _}
+ {#Left ($_ text\composite "Unknown definition: " (name\encoded full_name))}
- (#Slot _)
- (#Left ($_ text\composite "Unknown definition: " (name\encoded full_name)))}
+ {#Slot _}
+ {#Left ($_ text\composite "Unknown definition: " (name\encoded full_name))}}
constant)
#None
- (#Left ($_ text\composite "Unknown definition: " (name\encoded full_name)))}
+ {#Left ($_ text\composite "Unknown definition: " (name\encoded full_name))}}
(plist\value name definitions))
#None
- (#Left ($_ text\composite "Unknown module: " module " @ " (name\encoded full_name)))}
+ {#Left ($_ text\composite "Unknown module: " module " @ " (name\encoded full_name))}}
(plist\value module modules))))
(def:''' .private (code_list expression)
(-> Code Code)
- (let' [type (form$ (list (tag$ [..prelude_module "Apply"])
- (identifier$ [..prelude_module "Code"])
- (identifier$ [..prelude_module "List"])))]
+ (let' [type (variant$ (list (tag$ [..prelude_module "Apply"])
+ (identifier$ [..prelude_module "Code"])
+ (identifier$ [..prelude_module "List"])))]
(form$ (list (text$ "lux type check") type expression))))
(def:''' .private (spliced replace? untemplated elems)
@@ -1552,20 +1578,20 @@
({#End
(in_meta (tag$ [..prelude_module "End"]))
- (#Item lastI inits)
+ {#Item lastI inits}
(do meta_monad
- [lastO ({[_ (#Form (#Item [[_ (#Identifier ["" "~+"])] (#Item [spliced #End])]))]
+ [lastO ({[_ {#Form {#Item [[_ {#Identifier ["" "~+"]}] {#Item [spliced #End]}]}}]
(in (code_list spliced))
_
(do meta_monad
[lastO (untemplated lastI)]
- (in (code_list (form$ (list (tag$ [..prelude_module "Item"])
- (tuple$ (list lastO (tag$ [..prelude_module "End"]))))))))}
+ (in (code_list (variant$ (list (tag$ [..prelude_module "Item"])
+ (tuple$ (list lastO (tag$ [..prelude_module "End"]))))))))}
lastI)]
(monad\mix meta_monad
(function' [leftI rightO]
- ({[_ (#Form (#Item [[_ (#Identifier ["" "~+"])] (#Item [spliced #End])]))]
+ ({[_ {#Form {#Item [[_ {#Identifier ["" "~+"]}] {#Item [spliced #End]}]}}]
(let' [g!in-module (form$ (list (text$ "lux in-module")
(text$ ..prelude_module)
(identifier$ [..prelude_module "list\composite"])))]
@@ -1574,7 +1600,7 @@
_
(do meta_monad
[leftO (untemplated leftI)]
- (in (form$ (list (tag$ [..prelude_module "Item"]) (tuple$ (list leftO rightO))))))}
+ (in (variant$ (list (tag$ [..prelude_module "Item"]) (tuple$ (list leftO rightO))))))}
leftI))
lastO
inits))}
@@ -1587,41 +1613,41 @@
(def:''' .private (untemplated_text value)
(-> Text Code)
- (with_location (form$ (list (tag$ [..prelude_module "Text"]) (text$ value)))))
+ (with_location (variant$ (list (tag$ [..prelude_module "Text"]) (text$ value)))))
(def:''' .private (untemplated replace? subst token)
(-> Bit Text Code ($' Meta Code))
- ({[_ [_ (#Bit value)]]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Bit"]) (bit$ value)))))
+ ({[_ [_ {#Bit value}]]
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Bit"]) (bit$ value)))))
- [_ [_ (#Nat value)]]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Nat"]) (nat$ value)))))
+ [_ [_ {#Nat value}]]
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Nat"]) (nat$ value)))))
- [_ [_ (#Int value)]]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Int"]) (int$ value)))))
+ [_ [_ {#Int value}]]
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Int"]) (int$ value)))))
- [_ [_ (#Rev value)]]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Rev"]) (rev$ value)))))
+ [_ [_ {#Rev value}]]
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Rev"]) (rev$ value)))))
- [_ [_ (#Frac value)]]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Frac"]) (frac$ value)))))
+ [_ [_ {#Frac value}]]
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Frac"]) (frac$ value)))))
- [_ [_ (#Text value)]]
+ [_ [_ {#Text value}]]
(in_meta (untemplated_text value))
- [#0 [_ (#Tag [module name])]]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Tag"]) (tuple$ (list (text$ module) (text$ name)))))))
+ [#0 [_ {#Tag [module name]}]]
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Tag"]) (tuple$ (list (text$ module) (text$ name)))))))
- [#1 [_ (#Tag [module name])]]
+ [#1 [_ {#Tag [module name]}]]
(let' [module' ({""
subst
_
module}
module)]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Tag"]) (tuple$ (list (text$ module') (text$ name))))))))
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Tag"]) (tuple$ (list (text$ module') (text$ name))))))))
- [#1 [_ (#Identifier [module name])]]
+ [#1 [_ {#Identifier [module name]}]]
(do meta_monad
[real_name ({""
(if (text\= "" subst)
@@ -1632,52 +1658,52 @@
(in [module name])}
module)
.let' [[module name] real_name]]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Identifier"]) (tuple$ (list (text$ module) (text$ name))))))))
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Identifier"]) (tuple$ (list (text$ module) (text$ name))))))))
- [#0 [_ (#Identifier [module name])]]
- (in_meta (with_location (form$ (list (tag$ [..prelude_module "Identifier"]) (tuple$ (list (text$ module) (text$ name)))))))
+ [#0 [_ {#Identifier [module name]}]]
+ (in_meta (with_location (variant$ (list (tag$ [..prelude_module "Identifier"]) (tuple$ (list (text$ module) (text$ name)))))))
- [#1 [_ (#Form (#Item [[_ (#Identifier ["" "~"])] (#Item [unquoted #End])]))]]
+ [#1 [_ {#Form {#Item [[_ {#Identifier ["" "~"]}] {#Item [unquoted #End]}]}}]]
(in_meta (form$ (list (text$ "lux type check")
(identifier$ [..prelude_module "Code"])
unquoted)))
- [#1 [_ (#Form (#Item [[_ (#Identifier ["" "~!"])] (#Item [dependent #End])]))]]
+ [#1 [_ {#Form {#Item [[_ {#Identifier ["" "~!"]}] {#Item [dependent #End]}]}}]]
(do meta_monad
[independent (untemplated replace? subst dependent)]
- (in (with_location (form$ (list (tag$ [..prelude_module "Form"])
- (untemplated_list (list (untemplated_text "lux in-module")
- (untemplated_text subst)
- independent)))))))
+ (in (with_location (variant$ (list (tag$ [..prelude_module "Form"])
+ (untemplated_list (list (untemplated_text "lux in-module")
+ (untemplated_text subst)
+ independent)))))))
- [#1 [_ (#Form (#Item [[_ (#Identifier ["" "~'"])] (#Item [keep_quoted #End])]))]]
+ [#1 [_ {#Form {#Item [[_ {#Identifier ["" "~'"]}] {#Item [keep_quoted #End]}]}}]]
(untemplated #0 subst keep_quoted)
- [_ [meta (#Form elems)]]
+ [_ [meta {#Form elems}]]
(do meta_monad
[output (spliced replace? (untemplated replace? subst) elems)
- .let' [[_ output'] (with_location (form$ (list (tag$ [..prelude_module "Form"]) output)))]]
+ .let' [[_ output'] (with_location (variant$ (list (tag$ [..prelude_module "Form"]) output)))]]
(in [meta output']))
- [_ [meta (#Variant elems)]]
+ [_ [meta {#Variant elems}]]
(do meta_monad
[output (spliced replace? (untemplated replace? subst) elems)
- .let' [[_ output'] (with_location (form$ (list (tag$ [..prelude_module "Variant"]) output)))]]
+ .let' [[_ output'] (with_location (variant$ (list (tag$ [..prelude_module "Variant"]) output)))]]
(in [meta output']))
- [_ [meta (#Tuple elems)]]
+ [_ [meta {#Tuple elems}]]
(do meta_monad
[output (spliced replace? (untemplated replace? subst) elems)
- .let' [[_ output'] (with_location (form$ (list (tag$ [..prelude_module "Tuple"]) output)))]]
+ .let' [[_ output'] (with_location (variant$ (list (tag$ [..prelude_module "Tuple"]) output)))]]
(in [meta output']))}
[replace? token]))
(macro:' .public (primitive tokens)
- ({(#Item [_ (#Text class_name)] #End)
- (in_meta (list (form$ (list (tag$ [..prelude_module "Primitive"]) (text$ class_name) (tag$ [..prelude_module "End"])))))
+ ({{#Item [_ {#Text class_name}] #End}
+ (in_meta (list (variant$ (list (tag$ [..prelude_module "Primitive"]) (text$ class_name) (tag$ [..prelude_module "End"])))))
- (#Item [_ (#Text class_name)] (#Item [_ (#Tuple params)] #End))
- (in_meta (list (form$ (list (tag$ [..prelude_module "Primitive"]) (text$ class_name) (untemplated_list params)))))
+ {#Item [_ {#Text class_name}] {#Item [_ {#Tuple params}] #End}}
+ (in_meta (list (variant$ (list (tag$ [..prelude_module "Primitive"]) (text$ class_name) (untemplated_list params)))))
_
(failure "Wrong syntax for primitive")}
@@ -1689,16 +1715,16 @@
#scopes scopes #type_context types #host host
#seed seed #expected expected #location location #extensions extensions
#scope_type_vars scope_type_vars #eval _eval]
- ({(#Some module_name)
- (#Right [state module_name])
+ ({{#Some module_name}
+ {#Right [state module_name]}
_
- (#Left "Cannot get the module name without a module!")}
+ {#Left "Cannot get the module name without a module!"}}
current_module)}
state))
(macro:' .public (` tokens)
- ({(#Item template #End)
+ ({{#Item template #End}
(do meta_monad
[current_module current_module_name
=template (untemplated #1 current_module template)]
@@ -1711,7 +1737,7 @@
tokens))
(macro:' .public (`' tokens)
- ({(#Item template #End)
+ ({{#Item template #End}
(do meta_monad
[=template (untemplated #1 "" template)]
(in (list (form$ (list (text$ "lux type check") (identifier$ [..prelude_module "Code"]) =template)))))
@@ -1721,7 +1747,7 @@
tokens))
(macro:' .public (' tokens)
- ({(#Item template #End)
+ ({{#Item template #End}
(do meta_monad
[=template (untemplated #0 "" template)]
(in (list (form$ (list (text$ "lux type check") (identifier$ [..prelude_module "Code"]) =template)))))
@@ -1731,15 +1757,21 @@
tokens))
(macro:' .public (|> tokens)
- ({(#Item [init apps])
+ ({{#Item [init apps]}
(in_meta (list (list\mix ("lux type check" (-> Code Code Code)
(function' [app acc]
- ({[_ (#Tuple parts)]
+ ({[_ {#Variant parts}]
+ (variant$ (list\composite parts (list acc)))
+
+ [_ {#Tuple parts}]
(tuple$ (list\composite parts (list acc)))
- [_ (#Form parts)]
+ [_ {#Form parts}]
(form$ (list\composite parts (list acc)))
+ [_ {#Tag _}]
+ (` {(~ app) (~ acc)})
+
_
(` ((~ app) (~ acc)))}
app)))
@@ -1751,15 +1783,21 @@
tokens))
(macro:' .public (<| tokens)
- ({(#Item [init apps])
+ ({{#Item [init apps]}
(in_meta (list (list\mix ("lux type check" (-> Code Code Code)
(function' [app acc]
- ({[_ (#Tuple parts)]
+ ({[_ {#Variant parts}]
+ (variant$ (list\composite parts (list acc)))
+
+ [_ {#Tuple parts}]
(tuple$ (list\composite parts (list acc)))
- [_ (#Form parts)]
+ [_ {#Form parts}]
(form$ (list\composite parts (list acc)))
+ [_ {#Tag name}]
+ (` {(~ app) (~ acc)})
+
_
(` ((~ app) (~ acc)))}
app)))
@@ -1777,8 +1815,8 @@
(def:''' .private (identifier_name x)
(-> Code ($' Maybe Name))
- ({[_ (#Identifier sname)]
- (#Some sname)
+ ({[_ {#Identifier sname}]
+ {#Some sname}
_
#None}
@@ -1786,8 +1824,8 @@
(def:''' .private (tag_name x)
(-> Code ($' Maybe Name))
- ({[_ (#Tag sname)]
- (#Some sname)
+ ({[_ {#Tag sname}]
+ {#Some sname}
_
#None}
@@ -1795,8 +1833,8 @@
(def:''' .private (identifier_short x)
(-> Code ($' Maybe Text))
- ({[_ (#Identifier "" sname)]
- (#Some sname)
+ ({[_ {#Identifier "" sname}]
+ {#Some sname}
_
#None}
@@ -1804,8 +1842,8 @@
(def:''' .private (tuple_list tuple)
(-> Code ($' Maybe ($' List Code)))
- ({[_ (#Tuple members)]
- (#Some members)
+ ({[_ {#Tuple members}]
+ {#Some members}
_
#None}
@@ -1813,22 +1851,22 @@
(def:''' .private (realized_template env template)
(-> Replacement_Environment Code Code)
- ({[_ (#Identifier "" sname)]
- ({(#Some subst)
+ ({[_ {#Identifier "" sname}]
+ ({{#Some subst}
subst
_
template}
(..replacement sname env))
- [meta (#Form elems)]
- [meta (#Form (list\each (realized_template env) elems))]
+ [meta {#Form elems}]
+ [meta {#Form (list\each (realized_template env) elems)}]
- [meta (#Tuple elems)]
- [meta (#Tuple (list\each (realized_template env) elems))]
+ [meta {#Tuple elems}]
+ [meta {#Tuple (list\each (realized_template env) elems)}]
- [meta (#Variant elems)]
- [meta (#Variant (list\each (realized_template env) elems))]
+ [meta {#Variant elems}]
+ [meta {#Variant (list\each (realized_template env) elems)}]
_
template}
@@ -1869,8 +1907,8 @@
(list\mix list\composite #End (list\reversed xs)))
(macro:' .public (template tokens)
- ({(#Item [[_ (#Tuple bindings)] (#Item [[_ (#Tuple templates)] data])])
- ({[(#Some bindings') (#Some data')]
+ ({{#Item [[_ {#Tuple bindings}] {#Item [[_ {#Tuple templates}] data]}]}
+ ({[{#Some bindings'} {#Some data'}]
(let' [apply ("lux type check" (-> Replacement_Environment ($' List Code))
(function' [env] (list\each (realized_template env) templates)))
num_bindings (list\size bindings')]
@@ -1988,7 +2026,7 @@
(def:''' .private (macro_type? type)
(-> Type Bit)
- ({(#Named ["library/lux" "Macro"] (#Primitive "#Macro" #End))
+ ({{#Named ["library/lux" "Macro"] {#Primitive "#Macro" #End}}
#1
_
@@ -2003,25 +2041,25 @@
[$module (plist\value module modules)
gdef (let' [[#module_hash _ #module_aliases _ #definitions bindings #imports _ #module_state _] ("lux type check" Module $module)]
(plist\value name bindings))]
- ({(#Alias [r_module r_name])
+ ({{#Alias [r_module r_name]}
(macro'' modules current_module r_module r_name)
- (#Definition [exported? def_type def_value])
+ {#Definition [exported? def_type def_value]}
(if (macro_type? def_type)
(if exported?
- (#Some ("lux type as" Macro def_value))
+ {#Some ("lux type as" Macro def_value)}
(if (text\= module current_module)
- (#Some ("lux type as" Macro def_value))
+ {#Some ("lux type as" Macro def_value)}
#None))
#None)
- (#Type [exported? type labels])
+ {#Type [exported? type labels]}
#None
- (#Label _)
+ {#Label _}
#None
- (#Slot _)
+ {#Slot _}
#None}
("lux type check" Global gdef))))
@@ -2047,7 +2085,7 @@
#seed seed #expected expected
#location location #extensions extensions
#scope_type_vars scope_type_vars #eval _eval]
- (#Right state (macro'' modules current_module module name))}
+ {#Right state (macro'' modules current_module module name)}}
state)))))
(def:''' .private (macro? name)
@@ -2055,7 +2093,7 @@
(do meta_monad
[name (normal name)
output (macro' name)]
- (in ({(#Some _) #1
+ (in ({{#Some _} #1
#None #0}
output))))
@@ -2065,20 +2103,20 @@
({#End
xs
- (#Item [x #End])
+ {#Item [x #End]}
xs
- (#Item [x xs'])
+ {#Item [x xs']}
(list& x sep (list\interposed sep xs'))}
xs))
(def:''' .private (single_expansion token)
(-> Code ($' Meta ($' List Code)))
- ({[_ (#Form (#Item [_ (#Identifier name)] args))]
+ ({[_ {#Form {#Item [_ {#Identifier name}] args}}]
(do meta_monad
[name' (normal name)
?macro (macro' name')]
- ({(#Some macro)
+ ({{#Some macro}
(("lux type as" Macro' macro) args)
#None
@@ -2091,11 +2129,11 @@
(def:''' .private (expansion token)
(-> Code ($' Meta ($' List Code)))
- ({[_ (#Form (#Item [_ (#Identifier name)] args))]
+ ({[_ {#Form {#Item [_ {#Identifier name}] args}}]
(do meta_monad
[name' (normal name)
?macro (macro' name')]
- ({(#Some macro)
+ ({{#Some macro}
(do meta_monad
[top_level_expansion (("lux type as" Macro' macro) args)
recursive_expansion (monad\each meta_monad expansion top_level_expansion)]
@@ -2111,11 +2149,11 @@
(def:''' .private (full_expansion syntax)
(-> Code ($' Meta ($' List Code)))
- ({[_ (#Form (#Item [_ (#Identifier name)] args))]
+ ({[_ {#Form {#Item [_ {#Identifier name}] args}}]
(do meta_monad
[name' (normal name)
?macro (macro' name')]
- ({(#Some macro)
+ ({{#Some macro}
(do meta_monad
[expansion (("lux type as" Macro' macro) args)
expansion' (monad\each meta_monad full_expansion expansion)]
@@ -2124,23 +2162,23 @@
#None
(do meta_monad
[args' (monad\each meta_monad full_expansion args)]
- (in (list (form$ (#Item (identifier$ name) (list\conjoint args'))))))}
+ (in (list (form$ {#Item (identifier$ name) (list\conjoint args')}))))}
?macro))
- [_ (#Form members)]
+ [_ {#Form members}]
(do meta_monad
[members' (monad\each meta_monad full_expansion members)]
(in (list (form$ (list\conjoint members')))))
- [_ (#Tuple members)]
+ [_ {#Variant members}]
(do meta_monad
[members' (monad\each meta_monad full_expansion members)]
- (in (list (tuple$ (list\conjoint members')))))
+ (in (list (variant$ (list\conjoint members')))))
- [_ (#Variant members)]
+ [_ {#Tuple members}]
(do meta_monad
[members' (monad\each meta_monad full_expansion members)]
- (in (list (variant$ (list\conjoint members')))))
+ (in (list (tuple$ (list\conjoint members')))))
_
(in_meta (list syntax))}
@@ -2152,49 +2190,49 @@
(def:''' .private (code\encoded code)
(-> Code Text)
- ({[_ (#Bit value)]
+ ({[_ {#Bit value}]
(bit\encoded value)
- [_ (#Nat value)]
+ [_ {#Nat value}]
(nat\encoded value)
- [_ (#Int value)]
+ [_ {#Int value}]
(int\encoded value)
- [_ (#Rev value)]
+ [_ {#Rev value}]
("lux io error" "@code\encoded Undefined behavior.")
- [_ (#Frac value)]
+ [_ {#Frac value}]
(frac\encoded value)
- [_ (#Text value)]
+ [_ {#Text value}]
(text\encoded value)
- [_ (#Identifier [module name])]
+ [_ {#Identifier [module name]}]
(if (text\= "" module)
name
($_ text\composite module "." name))
- [_ (#Tag [module name])]
+ [_ {#Tag [module name]}]
(if (text\= "" module)
($_ text\composite "#" name)
($_ text\composite "#" module "." name))
- [_ (#Form xs)]
+ [_ {#Form xs}]
($_ text\composite "(" (|> xs
(list\each code\encoded)
(list\interposed " ")
list\reversed
(list\mix text\composite "")) ")")
- [_ (#Tuple xs)]
+ [_ {#Tuple xs}]
($_ text\composite "[" (|> xs
(list\each code\encoded)
(list\interposed " ")
list\reversed
(list\mix text\composite "")) "]")
- [_ (#Variant xs)]
+ [_ {#Variant xs}]
($_ text\composite "{" (|> xs
(list\each code\encoded)
(list\interposed " ")
@@ -2204,45 +2242,45 @@
(def:''' .private (normal_type type)
(-> Code Code)
- ({[_ (#Form (#Item [_ (#Tag tag)] parts))]
- (form$ (#Item (tag$ tag) (list\each normal_type parts)))
+ ({[_ {#Variant {#Item [_ {#Tag tag}] parts}}]
+ (` {(~ (tag$ tag)) (~+ (list\each normal_type parts))})
- [_ (#Variant members)]
+ [_ {#Variant members}]
(` (Or (~+ (list\each normal_type members))))
- [_ (#Tuple members)]
+ [_ {#Tuple members}]
(` (Tuple (~+ (list\each normal_type members))))
- [_ (#Form (#Item [_ (#Text "lux in-module")]
- (#Item [_ (#Text module)]
- (#Item type'
- #End))))]
+ [_ {#Form {#Item [_ {#Text "lux in-module"}]
+ {#Item [_ {#Text module}]
+ {#Item type'
+ #End}}}}]
(` ("lux in-module" (~ (text$ module)) (~ (normal_type type'))))
- [_ (#Form (#Item [_ (#Identifier ["" ":~"])] (#Item expression #End)))]
+ [_ {#Form {#Item [_ {#Identifier ["" ":~"]}] {#Item expression #End}}}]
expression
- [_0 (#Form (#Item [_1 (#Variant (#Item binding (#Item body #End)))]
- (#Item value
- #End)))]
- [_0 (#Form (#Item [_1 (#Variant (#Item binding (#Item (normal_type body) #End)))]
- (#Item value
- #End)))]
-
- [_0 (#Form (#Item [_1 (#Identifier ["library/lux" "__adjusted_quantified_type__"])]
- (#Item _permission
- (#Item _level
- (#Item body
- #End)))))]
- [_0 (#Form (#Item [_1 (#Identifier [..prelude_module "__adjusted_quantified_type__"])]
- (#Item _permission
- (#Item _level
- (#Item (normal_type body)
- #End)))))]
-
- [_ (#Form (#Item type_fn args))]
+ [_0 {#Form {#Item [_1 {#Variant {#Item binding {#Item body #End}}}]
+ {#Item value
+ #End}}}]
+ [_0 {#Form {#Item [_1 {#Variant {#Item binding {#Item (normal_type body) #End}}}]
+ {#Item value
+ #End}}}]
+
+ [_0 {#Form {#Item [_1 {#Identifier ["library/lux" "__adjusted_quantified_type__"]}]
+ {#Item _permission
+ {#Item _level
+ {#Item body
+ #End}}}}}]
+ [_0 {#Form {#Item [_1 {#Identifier [..prelude_module "__adjusted_quantified_type__"]}]
+ {#Item _permission
+ {#Item _level
+ {#Item (normal_type body)
+ #End}}}}}]
+
+ [_ {#Form {#Item type_fn args}}]
(list\mix ("lux type check" (-> Code Code Code)
- (function' [arg type_fn] (` (#.Apply (~ arg) (~ type_fn)))))
+ (function' [arg type_fn] (` {#.Apply (~ arg) (~ type_fn)})))
(normal_type type_fn)
(list\each normal_type args))
@@ -2251,13 +2289,13 @@
type))
(macro:' .public (type tokens)
- ({(#Item type #End)
+ ({{#Item type #End}
(do meta_monad
- [initialized_quantification? (function' [lux] (#Right [lux (initialized_quantification? lux)]))]
+ [initialized_quantification? (function' [lux] {#Right [lux (initialized_quantification? lux)]})]
(if initialized_quantification?
(do meta_monad
[type+ (full_expansion type)]
- ({(#Item type' #End)
+ ({{#Item type' #End}
(in (list (normal_type type')))
_
@@ -2270,7 +2308,7 @@
tokens))
(macro:' .public (: tokens)
- ({(#Item type (#Item value #End))
+ ({{#Item type {#Item value #End}}
(in_meta (list (` ("lux type check"
(..type (~ type))
(~ value)))))
@@ -2280,7 +2318,7 @@
tokens))
(macro:' .public (:as tokens)
- ({(#Item type (#Item value #End))
+ ({{#Item type {#Item value #End}}
(in_meta (list (` ("lux type as"
(..type (~ type))
(~ value)))))
@@ -2313,16 +2351,16 @@
#seed seed #expected expected
#location location #extensions extensions
#scope_type_vars scope_type_vars #eval _eval]
- (#Right [#info info #source source #current_module _ #modules modules
+ {#Right [#info info #source source #current_module _ #modules modules
#scopes scopes #type_context types #host host
#seed ("lux i64 +" 1 seed) #expected expected
#location location #extensions extensions
#scope_type_vars scope_type_vars #eval _eval]
- (local_identifier$ ($_ text\composite "__gensym__" prefix (nat\encoded seed))))}
+ (local_identifier$ ($_ text\composite "__gensym__" prefix (nat\encoded seed)))}}
state))
(macro:' .public (exec tokens)
- ({(#Item value actions)
+ ({{#Item value actions}
(let' [dummy (local_identifier$ "")]
(in_meta (list (list\mix ("lux type check" (-> Code Code Code)
(function' [pre post] (` ({(~ dummy) (~ post)}
@@ -2336,29 +2374,29 @@
(macro:' .private (def:' tokens)
(let' [parts (: (Maybe [Code Code (List Code) (Maybe Code) Code])
- ({(#Item export_policy (#Item [_ (#Form (#Item name args))] (#Item type (#Item body #End))))
- (#Some [export_policy name args (#Some type) body])
+ ({{#Item export_policy {#Item [_ {#Form {#Item name args}}] {#Item type {#Item body #End}}}}
+ {#Some [export_policy name args {#Some type} body]}
- (#Item export_policy (#Item name (#Item type (#Item body #End))))
- (#Some [export_policy name #End (#Some type) body])
+ {#Item export_policy {#Item name {#Item type {#Item body #End}}}}
+ {#Some [export_policy name #End {#Some type} body]}
- (#Item export_policy (#Item [_ (#Form (#Item name args))] (#Item body #End)))
- (#Some [export_policy name args #None body])
+ {#Item export_policy {#Item [_ {#Form {#Item name args}}] {#Item body #End}}}
+ {#Some [export_policy name args #None body]}
- (#Item export_policy (#Item name (#Item body #End)))
- (#Some [export_policy name #End #None body])
+ {#Item export_policy {#Item name {#Item body #End}}}
+ {#Some [export_policy name #End #None body]}
_
#None}
tokens))]
- ({(#Some [export_policy name args ?type body])
+ ({{#Some [export_policy name args ?type body]}
(let' [body' ({#End
body
_
(` (function' (~ name) [(~+ args)] (~ body)))}
args)
- body'' ({(#Some type)
+ body'' ({{#Some type}
(` (: (~ type) (~ body')))
#None
@@ -2374,9 +2412,9 @@
(def:' .private (expander branches)
(-> (List Code) (Meta (List Code)))
- ({(#Item [_ (#Form (#Item [_ (#Identifier name)] args))]
- (#Item body
- branches'))
+ ({{#Item [_ {#Form {#Item [_ {#Identifier name}] args}}]
+ {#Item body
+ branches'}}
(do meta_monad
[??? (macro? name)]
(if ???
@@ -2389,7 +2427,7 @@
body
sub_expansion)))))
- (#Item pattern (#Item body branches'))
+ {#Item pattern {#Item body branches'}}
(do meta_monad
[sub_expansion (expander branches')]
(in (list& pattern body sub_expansion)))
@@ -2406,7 +2444,7 @@
branches))
(macro:' .public (case tokens)
- ({(#Item value branches)
+ ({{#Item value branches}
(do meta_monad
[expansion (expander branches)]
(in (list (` ((~ (variant$ expansion)) (~ value))))))
@@ -2417,11 +2455,11 @@
(macro:' .public (^ tokens)
(case tokens
- (#Item [_ (#Form (#Item pattern #End))] (#Item body branches))
+ {#Item [_ {#Form {#Item pattern #End}}] {#Item body branches}}
(do meta_monad
[pattern+ (full_expansion pattern)]
(case pattern+
- (#Item pattern' #End)
+ {#Item pattern' #End}
(in (list& pattern' body branches))
_
@@ -2432,7 +2470,7 @@
(macro:' .public (^or tokens)
(case tokens
- (^ (list& [_ (#Form patterns)] body branches))
+ (^ (list& [_ {#Form patterns}] body branches))
(case patterns
#End
(failure "^or cannot have 0 patterns")
@@ -2448,7 +2486,7 @@
(def:' .private (identifier? code)
(-> Code Bit)
(case code
- [_ (#Identifier _)]
+ [_ {#Identifier _}]
#1
_
@@ -2456,7 +2494,7 @@
(macro:' .public (let tokens)
(case tokens
- (^ (list [_ (#Tuple bindings)] body))
+ (^ (list [_ {#Tuple bindings}] body))
(if (multiple? 2 (list\size bindings))
(|> bindings pairs list\reversed
(list\mix (: (-> [Code Code] Code Code)
@@ -2476,12 +2514,12 @@
(macro:' .public (function tokens)
(case (: (Maybe [Text Code (List Code) Code])
(case tokens
- (^ (list [_ (#Form (list& [_ (#Identifier ["" name])] head tail))] body))
- (#Some name head tail body)
+ (^ (list [_ {#Form (list& [_ {#Identifier ["" name]}] head tail)}] body))
+ {#Some name head tail body}
_
#None))
- (#Some g!name head tail body)
+ {#Some g!name head tail body}
(let [g!blank (local_identifier$ "")
nest (: (-> Code (-> Code Code Code))
(function' [g!name]
@@ -2500,7 +2538,7 @@
(-> (List Code) (Maybe Any))
(case tokens
(^ (list))
- (#Some [])
+ {#Some []}
_
#None))
@@ -2509,7 +2547,7 @@
(-> (List Code) (Maybe [(List Code) Code]))
(case tokens
(^ (list& code tokens'))
- (#Some [tokens' code])
+ {#Some [tokens' code]}
_
#None))
@@ -2517,8 +2555,8 @@
(def:' .private (local_identifierP tokens)
(-> (List Code) (Maybe [(List Code) Text]))
(case tokens
- (^ (list& [_ (#Identifier ["" local_identifier])] tokens'))
- (#Some [tokens' local_identifier])
+ (^ (list& [_ {#Identifier ["" local_identifier]}] tokens'))
+ {#Some [tokens' local_identifier]}
_
#None))
@@ -2528,14 +2566,14 @@
(-> (List Code) (Maybe (List <item_type>)))
(case tokens
#End
- (#Some #End)
+ {#Some #End}
_
(do maybe_monad
[% (<item_parser> tokens)
.let' [[tokens head] %]
tail (<parser> tokens)]
- (in (#Item head tail)))))]
+ (in {#Item head tail}))))]
[parametersP Text local_identifierP]
[enhanced_parametersP Code anyP]
@@ -2545,7 +2583,7 @@
[(def:' .private (<parser> tokens)
(-> (List Code) (Maybe [(List Code) [Text (List <parameter_type>)]]))
(case tokens
- (^ (list& [_ (#Form local_declaration)] tokens'))
+ (^ (list& [_ {#Form local_declaration}] tokens'))
(do maybe_monad
[% (local_identifierP local_declaration)
.let' [[local_declaration name] %]
@@ -2567,13 +2605,13 @@
(case tokens
(^ (list& candidate tokens'))
(case candidate
- [_ (#Bit it)]
+ [_ {#Bit it}]
[tokens' candidate]
- [_ (#Identifier ["" _])]
+ [_ {#Identifier ["" _]}]
[tokens (` .private)]
- [_ (#Identifier it)]
+ [_ {#Identifier it}]
[tokens' candidate]
_
@@ -2600,11 +2638,11 @@
(case tokens
... TB
(^ (list& type body tokens'))
- (#Some [tokens' [(#Some type) body]])
+ {#Some [tokens' [{#Some type} body]]}
... B
(^ (list& body tokens'))
- (#Some [tokens' [#None body]])
+ {#Some [tokens' [#None body]]}
_
#None))
@@ -2621,7 +2659,7 @@
(macro:' .public (def: tokens)
(case (definitionP tokens)
- (#Some [export_policy name parameters ?type body])
+ {#Some [export_policy name parameters ?type body]}
(let [body (case parameters
#End
body
@@ -2630,7 +2668,7 @@
(` (function ((~ (..local_identifier$ name)) (~+ parameters))
(~ body))))
body (case ?type
- (#Some type)
+ {#Some type}
(` (: (~ type)
(~ body)))
@@ -2655,7 +2693,7 @@
(macro:' .public (macro: tokens)
(case (macroP tokens)
- (#Some [export_policy name args body])
+ {#Some [export_policy name args body]}
(let [name (local_identifier$ name)
body (case args
#End
@@ -2678,13 +2716,13 @@
#End
#None
- (#Item x xs')
+ {#Item x xs'}
(case (f x)
#None
(list\one f xs')
- (#Some y)
- (#Some y))))
+ {#Some y}
+ {#Some y})))
(template [<name> <form> <message>]
[(macro: .public (<name> tokens)
@@ -2712,17 +2750,17 @@
(macro: (maybe\else tokens state)
(case tokens
(^ (list else maybe))
- (let [g!temp (: Code [dummy_location (#Identifier ["" ""])])
+ (let [g!temp (: Code [dummy_location {#Identifier ["" ""]}])
code (` (case (~ maybe)
- (#.Some (~ g!temp))
+ {#.Some (~ g!temp)}
(~ g!temp)
#.None
(~ else)))]
- (#Right [state (list code)]))
+ {#Right [state (list code)]})
_
- (#Left "Wrong syntax for maybe\else")))
+ {#Left "Wrong syntax for maybe\else"}))
(def: (text\all_split_by splitter input)
(-> Text Text (List Text))
@@ -2730,7 +2768,7 @@
#None
(list input)
- (#Some idx)
+ {#Some idx}
(list& ("lux text clip" 0 idx input)
(text\all_split_by splitter
(let [after_offset ("lux i64 +" 1 idx)
@@ -2746,52 +2784,52 @@
#End
#None
- (#Item x xs')
+ {#Item x xs'}
(if ("lux i64 =" 0 idx)
- (#Some x)
+ {#Some x}
(item ("lux i64 -" 1 idx) xs'))))
... https://en.wikipedia.org/wiki/Lambda_calculus#%CE%B2-reduction
(def: (reduced env type)
(-> (List Type) Type Type)
(case type
- (#Sum left right)
- (#Sum (reduced env left) (reduced env right))
+ {#Sum left right}
+ {#Sum (reduced env left) (reduced env right)}
- (#Product left right)
- (#Product (reduced env left) (reduced env right))
+ {#Product left right}
+ {#Product (reduced env left) (reduced env right)}
- (#Apply arg func)
- (#Apply (reduced env arg) (reduced env func))
+ {#Apply arg func}
+ {#Apply (reduced env arg) (reduced env func)}
- (#UnivQ ?local_env ?local_def)
+ {#UnivQ ?local_env ?local_def}
(case ?local_env
#End
- (#UnivQ env ?local_def)
+ {#UnivQ env ?local_def}
_
type)
- (#ExQ ?local_env ?local_def)
+ {#ExQ ?local_env ?local_def}
(case ?local_env
#End
- (#ExQ env ?local_def)
+ {#ExQ env ?local_def}
_
type)
- (#Function ?input ?output)
- (#Function (reduced env ?input) (reduced env ?output))
+ {#Function ?input ?output}
+ {#Function (reduced env ?input) (reduced env ?output)}
- (#Parameter idx)
+ {#Parameter idx}
(case (item idx env)
- (#Some parameter)
+ {#Some parameter}
parameter
_
type)
- (#Named name type)
+ {#Named name type}
(reduced env type)
_
@@ -2801,18 +2839,18 @@
(def: (applied_type param type_fn)
(-> Type Type (Maybe Type))
(case type_fn
- (#UnivQ env body)
- (#Some (reduced (list& type_fn param env) body))
+ {#UnivQ env body}
+ {#Some (reduced (list& type_fn param env) body)}
- (#ExQ env body)
- (#Some (reduced (list& type_fn param env) body))
+ {#ExQ env body}
+ {#Some (reduced (list& type_fn param env) body)}
- (#Apply A F)
+ {#Apply A F}
(do maybe_monad
[type_fn* (applied_type A F)]
(applied_type param type_fn*))
- (#Named name type)
+ {#Named name type}
(applied_type param type)
_
@@ -2822,7 +2860,7 @@
[(def: (<name> type)
(-> Type (List Type))
(case type
- (<tag> left right)
+ {<tag> left right}
(list& left (<name> right))
_
@@ -2836,9 +2874,9 @@
(def: (flat_application type)
(-> Type [Type (List Type)])
(case type
- (#Apply head func')
+ {#Apply head func'}
(let [[func tail] (flat_application func')]
- [func (#Item head tail)])
+ [func {#Item head tail}])
_
[type (list)]))
@@ -2846,28 +2884,28 @@
(def: (interface_methods type)
(-> Type (Maybe (List Type)))
(case type
- (#Product _)
- (#Some (flat_tuple type))
+ {#Product _}
+ {#Some (flat_tuple type)}
- (#Apply arg func)
+ {#Apply arg func}
(do maybe_monad
[output (applied_type arg func)]
(interface_methods output))
- (#UnivQ _ body)
+ {#UnivQ _ body}
(interface_methods body)
- (#ExQ _ body)
+ {#ExQ _ body}
(interface_methods body)
- (#Named name type)
+ {#Named name type}
(interface_methods type)
- (#Sum _)
+ {#Sum _}
#None
_
- (#Some (list type))))
+ {#Some (list type)}))
(def: (module name)
(-> Text (Meta Module))
@@ -2877,11 +2915,11 @@
#seed seed #expected expected #location location #extensions extensions
#scope_type_vars scope_type_vars #eval _eval] state]
(case (plist\value name modules)
- (#Some module)
- (#Right state module)
+ {#Some module}
+ {#Right state module}
_
- (#Left ($_ text\composite "Unknown module: " name))))))
+ {#Left ($_ text\composite "Unknown module: " name)}))))
(def: (type_slot [module name])
(-> Name (Meta [Nat (List Name) Bit Type]))
@@ -2889,7 +2927,7 @@
[=module (..module module)
.let [[#module_hash _ #module_aliases _ #definitions definitions #imports _ #module_state _] =module]]
(case (plist\value (text\composite "#" name) definitions)
- (#Some (#Slot [exported type group index]))
+ {#Some {#Slot [exported type group index]}}
(in_meta [index
(list\each (function (_ slot)
[module slot])
@@ -2903,26 +2941,26 @@
(def: (record_slots type)
(-> Type (Meta (Maybe [(List Name) (List Type)])))
(case type
- (#Apply arg func)
+ {#Apply arg func}
(record_slots func)
- (#UnivQ env body)
+ {#UnivQ env body}
(record_slots body)
- (#ExQ env body)
+ {#ExQ env body}
(record_slots body)
- (#Named [module name] unnamed)
+ {#Named [module name] unnamed}
(do meta_monad
[=module (..module module)
.let [[#module_hash _ #module_aliases _ #definitions definitions #imports _ #module_state _] =module]]
(case (plist\value name definitions)
- (#Some (#Type [exported? (#Named _ _type) (#Right slots)]))
+ {#Some {#Type [exported? {#Named _ _type} {#Right slots}]}}
(case (interface_methods _type)
- (#Some members)
- (in_meta (#Some [(list\each (function (_ slot) [module slot])
- (#Item slots))
- members]))
+ {#Some members}
+ (in_meta {#Some [(list\each (function (_ slot) [module slot])
+ {#Item slots})
+ members]})
_
(in_meta #None))
@@ -2941,16 +2979,16 @@
#seed seed #expected expected #location location #extensions extensions
#scope_type_vars scope_type_vars #eval _eval] state]
(case expected
- (#Some type)
- (#Right state type)
+ {#Some type}
+ {#Right state type}
#None
- (#Left "Not expecting any type.")))))
+ {#Left "Not expecting any type."}))))
(def: (type\encoded type)
(-> Type Text)
(case type
- (#Primitive name params)
+ {#Primitive name params}
(case params
#End
name
@@ -2958,38 +2996,38 @@
_
($_ text\composite "(" name " " (|> params (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) ")"))
- (#Sum _)
- ($_ text\composite "(Or " (|> (flat_variant type) (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) ")")
+ {#Sum _}
+ ($_ text\composite "{" (|> (flat_variant type) (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) "}")
- (#Product _)
+ {#Product _}
($_ text\composite "[" (|> (flat_tuple type) (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) "]")
- (#Function _)
+ {#Function _}
($_ text\composite "(-> " (|> (flat_lambda type) (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite "")) ")")
- (#Parameter id)
+ {#Parameter id}
(nat\encoded id)
- (#Var id)
+ {#Var id}
($_ text\composite "⌈v:" (nat\encoded id) "⌋")
- (#Ex id)
+ {#Ex id}
($_ text\composite "⟨e:" (nat\encoded id) "⟩")
- (#UnivQ env body)
+ {#UnivQ env body}
($_ text\composite "(All " (type\encoded body) ")")
- (#ExQ env body)
+ {#ExQ env body}
($_ text\composite "(Ex " (type\encoded body) ")")
- (#Apply _)
+ {#Apply _}
(let [[func args] (flat_application type)]
($_ text\composite
"(" (type\encoded func) " "
(|> args (list\each type\encoded) (list\interposed " ") list\reversed (list\mix text\composite ""))
")"))
- (#Named name _)
+ {#Named name _}
(name\encoded name)
))
@@ -3000,7 +3038,7 @@
tags+type (record_slots struct_type)
tags (: (Meta (List Name))
(case tags+type
- (#Some [tags _])
+ {#Some [tags _]}
(in_meta tags)
_
@@ -3014,9 +3052,9 @@
(: (-> Code (Meta (List Code)))
(function (_ token)
(case token
- (^ [_ (#Form (list [_ (#Text "lux def")] [_ (#Identifier ["" tag_name])] value export_policy))])
+ (^ [_ {#Form (list [_ {#Text "lux def"}] [_ {#Identifier ["" tag_name]}] value export_policy)}])
(case (plist\value tag_name tag_mappings)
- (#Some tag)
+ {#Some tag}
(in (list tag value))
_
@@ -3033,7 +3071,7 @@
#End
""
- (#Item head tail)
+ {#Item head tail}
(list\mix (function (_ right left)
($_ text\composite left separator right))
head
@@ -3046,7 +3084,7 @@
#None
_
- (#Item tokens)))
+ {#Item tokens}))
(def: (implementationP tokens)
(-> (List Code) (Maybe [Code Text (List Code) Code (List Code)]))
@@ -3060,7 +3098,7 @@
(macro: .public (implementation: tokens)
(case (implementationP tokens)
- (#Some [export_policy name args type definitions])
+ {#Some [export_policy name args type definitions]}
(let [usage (case args
#End
(local_identifier$ name)
@@ -3085,12 +3123,12 @@
(-> (-> (List Code) (Maybe [(List Code) a]))
(-> (List Code) (Maybe (List a)))))
(case tokens
- (#Item _)
+ {#Item _}
(do maybe_monad
[% (itP tokens)
.let [[tokens' head] %]
tail (case tokens'
- (#Item _)
+ {#Item _}
(everyP itP tokens')
#End
@@ -3098,27 +3136,27 @@
(in (list& head tail)))
#End
- (#Some (list))))
+ {#Some (list)}))
(def: (caseP tokens)
(-> (List Code) (Maybe [(List Code) [Text Code]]))
(case tokens
- (^ (list& [_ (#Tag ["" niladic])] tokens'))
- (#Some [tokens' [niladic (` .Any)]])
+ (^ (list& [_ {#Tag ["" niladic]}] tokens'))
+ {#Some [tokens' [niladic (` .Any)]]}
- (^ (list& [_ (#Form (list& [_ (#Tag ["" polyadic])] caseT))] tokens'))
- (#Some [tokens' [polyadic (` (..Tuple (~+ caseT)))]])
+ (^ (list& [_ {#Variant (list& [_ {#Tag ["" polyadic]}] caseT)}] tokens'))
+ {#Some [tokens' [polyadic (` (..Tuple (~+ caseT)))]]}
_
#None))
(macro: .public (Variant tokens)
(case (everyP caseP tokens)
- (#Some cases)
+ {#Some cases}
(in_meta (list (` (..Union (~+ (list\each product\right cases))))
- (form$ (list\each (function (_ case)
- (text$ (product\left case)))
- cases))))
+ (variant$ (list\each (function (_ case)
+ (text$ (product\left case)))
+ cases))))
#None
(failure "Wrong syntax for Variant")))
@@ -3126,17 +3164,17 @@
(def: (slotP tokens)
(-> (List Code) (Maybe [(List Code) [Text Code]]))
(case tokens
- (^ (list& [_ (#Tag ["" slot])] type tokens'))
- (#Some [tokens' [slot type]])
+ (^ (list& [_ {#Tag ["" slot]}] type tokens'))
+ {#Some [tokens' [slot type]]}
_
#None))
(macro: .public (Record tokens)
(case tokens
- (^ (list [_ (#Tuple record)]))
+ (^ (list [_ {#Tuple record}]))
(case (everyP slotP record)
- (#Some slots)
+ {#Some slots}
(in_meta (list (` (..Tuple (~+ (list\each product\right slots))))
(tuple$ (list\each (function (_ slot)
(text$ (product\left slot)))
@@ -3161,30 +3199,30 @@
(def: (textP tokens)
(-> (List Code) (Maybe [(List Code) Text]))
(case tokens
- (^ (list& [_ (#Text it)] tokens'))
- (#Some [tokens' it])
+ (^ (list& [_ {#Text it}] tokens'))
+ {#Some [tokens' it]}
_
#None))
(def: (type_declaration it)
(-> Code (Meta (Tuple Code (Maybe (Either (List Text) (List Text))))))
- ({[_ (#Form (#Item [_ (#Identifier declarer)] parameters))]
+ ({[_ {#Form {#Item [_ {#Identifier declarer}] parameters}}]
(do meta_monad
[declaration (single_expansion (form$ (list& (identifier$ declarer) parameters)))]
(case declaration
- (^ (list type [_ (#Form tags)]))
+ (^ (list type [_ {#Variant tags}]))
(case (everyP textP tags)
- (#Some tags)
- (in_meta [type (#Some (#Left tags))])
+ {#Some tags}
+ (in_meta [type {#Some {#Left tags}}])
#None
(failure "Improper type-definition syntax"))
- (^ (list type [_ (#Tuple slots)]))
+ (^ (list type [_ {#Tuple slots}]))
(case (everyP textP slots)
- (#Some slots)
- (in_meta [type (#Some (#Right slots))])
+ {#Some slots}
+ (in_meta [type {#Some {#Right slots}}])
#None
(failure "Improper type-definition syntax"))
@@ -3201,7 +3239,7 @@
(macro: .public (type: tokens)
(case (typeP tokens)
- (#Some [export_policy name args type_codes])
+ {#Some [export_policy name args type_codes]}
(do meta_monad
[type+labels?? (..type_declaration type_codes)
module_name current_module_name
@@ -3210,30 +3248,27 @@
type' (: (Maybe Code)
(case args
#End
- (#Some type)
+ {#Some type}
_
- (#Some (` (.All ((~ type_name) (~+ (list\each local_identifier$ args)))
- (~ type))))))]]
+ {#Some (` (.All ((~ type_name) (~+ (list\each local_identifier$ args)))
+ (~ type)))}))]]
(case type'
- (#Some type'')
- (let [typeC (` (#.Named [(~ (text$ module_name))
+ {#Some type''}
+ (let [typeC (` {#.Named [(~ (text$ module_name))
(~ (text$ name))]
- (.type (~ type''))))]
+ (.type (~ type''))})]
(in_meta (list (case labels??
- (#Some labels)
- (case labels
- (#Left tags)
- (` ("lux def type tagged" (~ type_name)
- (~ typeC)
- ((~+ (list\each text$ tags)))
- (~ export_policy)))
-
- (#Right slots)
- (` ("lux def type tagged" (~ type_name)
- (~ typeC)
- [(~+ (list\each text$ slots))]
- (~ export_policy))))
+ {#Some labels}
+ (` ("lux def type tagged" (~ type_name)
+ (~ typeC)
+ (~ (case labels
+ {#Left tags}
+ (` {(~+ (list\each text$ tags))})
+
+ {#Right slots}
+ (` [(~+ (list\each text$ slots))])))
+ (~ export_policy)))
_
(` ("lux def" (~ type_name)
@@ -3261,8 +3296,8 @@
(type: Referrals
(Variant
#All
- (#Only (List Text))
- (#Exclude (List Text))
+ {#Only (List Text)}
+ {#Exclude (List Text)}
#Ignore
#Nothing))
@@ -3286,7 +3321,7 @@
(: (-> Code (Meta Text))
(function (_ def)
(case def
- [_ (#Identifier ["" name])]
+ [_ {#Identifier ["" name]}]
(in_meta name)
_
@@ -3296,24 +3331,24 @@
(def: (referrals_parser tokens)
(-> (List Code) (Meta [Referrals (List Code)]))
(case tokens
- (^or (^ (list& [_ (#Variant (list [_ (#Text "+")] [_ (#Tuple defs)]))] tokens'))
- (^ (list& [_ (#Variant (list [_ (#Text "only")] [_ (#Tuple defs)]))] tokens')))
+ (^or (^ (list& [_ {#Variant (list [_ {#Text "+"}] [_ {#Tuple defs}])}] tokens'))
+ (^ (list& [_ {#Variant (list [_ {#Text "only"}] [_ {#Tuple defs}])}] tokens')))
(do meta_monad
[defs' (..referral_references defs)]
- (in [(#Only defs') tokens']))
+ (in [{#Only defs'} tokens']))
- (^or (^ (list& [_ (#Variant (list [_ (#Text "-")] [_ (#Tuple defs)]))] tokens'))
- (^ (list& [_ (#Variant (list [_ (#Text "exclude")] [_ (#Tuple defs)]))] tokens')))
+ (^or (^ (list& [_ {#Variant (list [_ {#Text "-"}] [_ {#Tuple defs}])}] tokens'))
+ (^ (list& [_ {#Variant (list [_ {#Text "exclude"}] [_ {#Tuple defs}])}] tokens')))
(do meta_monad
[defs' (..referral_references defs)]
- (in [(#Exclude defs') tokens']))
+ (in [{#Exclude defs'} tokens']))
- (^or (^ (list& [_ (#Text "*")] tokens'))
- (^ (list& [_ (#Text "all")] tokens')))
+ (^or (^ (list& [_ {#Text "*"}] tokens'))
+ (^ (list& [_ {#Text "all"}] tokens')))
(in_meta [#All tokens'])
- (^or (^ (list& [_ (#Text "_")] tokens'))
- (^ (list& [_ (#Text "ignore")] tokens')))
+ (^or (^ (list& [_ {#Text "_"}] tokens'))
+ (^ (list& [_ {#Text "ignore"}] tokens')))
(in_meta [#Ignore tokens'])
_
@@ -3325,12 +3360,12 @@
#End
(in_meta [#End #End])
- (^ (list& [_ (#Form (list& [_ (#Text prefix)] structs))] parts'))
+ (^ (list& [_ {#Form (list& [_ {#Text prefix}] structs)}] parts'))
(do meta_monad
[structs' (monad\each meta_monad
(function (_ struct)
(case struct
- [_ (#Identifier ["" struct_name])]
+ [_ {#Identifier ["" struct_name]}]
(in_meta struct_name)
_
@@ -3338,7 +3373,7 @@
structs)
next+remainder (openings_parser parts')]
(let [[next remainder] next+remainder]
- (in_meta [(#Item [prefix structs'] next)
+ (in_meta [{#Item [prefix structs'] next}
remainder])))
_
@@ -3362,7 +3397,7 @@
((: (-> Text Text Text)
(function (recur left right)
(case (..text\split_by pattern right)
- (#Some [pre post])
+ {#Some [pre post]}
(recur ($_ "lux text concat" left pre replacement) post)
#None
@@ -3392,8 +3427,8 @@
(-> Text Text Text)
(case [(text\split_by ..module_separator hierarchy)
(text\split_by ..parallel_hierarchy_sigil root)]
- [(#Some [_ hierarchy'])
- (#Some ["" root'])]
+ [{#Some [_ hierarchy']}
+ {#Some ["" root']}]
(normal_parallel_path' hierarchy' root')
_
@@ -3404,8 +3439,8 @@
(def: (normal_parallel_path hierarchy root)
(-> Text Text (Maybe Text))
(case (text\split_by ..parallel_hierarchy_sigil root)
- (#Some ["" root'])
- (#Some (normal_parallel_path' hierarchy root'))
+ {#Some ["" root']}
+ {#Some (normal_parallel_path' hierarchy root')}
_
#None))
@@ -3416,7 +3451,7 @@
#None
relatives
- (#Some found)
+ {#Some found}
(if ("lux i64 =" relatives found)
(relative_ups ("lux i64 +" 1 relatives) input)
relatives)))
@@ -3427,7 +3462,7 @@
(^or [0 _] [_ #End])
list
- [_ (#Item _ tail)]
+ [_ {#Item _ tail}]
(list\after ("lux i64 -" 1 amount) tail)))
(def: (absolute_module_name nested? relative_root module)
@@ -3465,7 +3500,7 @@
(function (_ token)
(case token
... Simple
- [_ (#Identifier ["" module_name])]
+ [_ {#Identifier ["" module_name]}]
(do meta_monad
[absolute_module_name (..absolute_module_name nested? relative_root module_name)]
(in (list [#import_name absolute_module_name
@@ -3474,10 +3509,10 @@
#refer_open (list)]])))
... Nested
- (^ [_ (#Tuple (list& [_ (#Identifier ["" module_name])] extra))])
+ (^ [_ {#Tuple (list& [_ {#Identifier ["" module_name]}] extra)}])
(do meta_monad
[absolute_module_name (case (normal_parallel_path relative_root module_name)
- (#Some parallel_path)
+ {#Some parallel_path}
(in parallel_path)
#None
@@ -3498,10 +3533,10 @@
#refer_open openings]]
sub_imports))))
- (^ [_ (#Tuple (list& [_ (#Text alias)] [_ (#Identifier ["" module_name])] extra))])
+ (^ [_ {#Tuple (list& [_ {#Text alias}] [_ {#Identifier ["" module_name]}] extra)}])
(do meta_monad
[absolute_module_name (case (normal_parallel_path relative_root module_name)
- (#Some parallel_path)
+ {#Some parallel_path}
(in parallel_path)
#None
@@ -3510,15 +3545,15 @@
.let [[referral extra] referral+extra]
openings+extra (openings_parser extra)
.let [[openings extra] openings+extra
- module_alias (..module_alias (#Item module_name context) alias)]
- sub_imports (imports_parser #1 absolute_module_name (#Item module_alias context) extra)]
+ module_alias (..module_alias {#Item module_name context} alias)]
+ sub_imports (imports_parser #1 absolute_module_name {#Item module_alias context} extra)]
(in (case [referral openings]
[#Ignore #End]
sub_imports
_
(list& [#import_name absolute_module_name
- #import_alias (#Some module_alias)
+ #import_alias {#Some module_alias}
#import_refer [#refer_defs referral
#refer_open openings]]
sub_imports))))
@@ -3542,38 +3577,38 @@
#scope_type_vars scope_type_vars #eval _eval]
[current_module modules])]
(case (plist\value module modules)
- (#Some =module)
+ {#Some =module}
(let [to_alias (list\each (: (-> [Text Global]
(List Text))
(function (_ [name definition])
(case definition
- (#Alias _)
+ {#Alias _}
(list)
- (#Definition [exported? def_type def_value])
+ {#Definition [exported? def_type def_value]}
(if exported?
(list name)
(list))
- (#Type [exported? type labels])
+ {#Type [exported? type labels]}
(if exported?
(list name)
(list))
- (#Label _)
+ {#Label _}
(list)
- (#Slot _)
+ {#Slot _}
(list))))
(let [[#module_hash _ #module_aliases _ #definitions definitions #imports _ #module_state _] =module]
definitions))]
- (#Right state (list\conjoint to_alias)))
+ {#Right state (list\conjoint to_alias)})
#None
- (#Left ($_ text\composite
+ {#Left ($_ text\composite
"Unknown module: " (text\encoded module) ..\n
"Current module: " (case current_module
- (#Some current_module)
+ {#Some current_module}
(text\encoded current_module)
#None
@@ -3582,7 +3617,7 @@
(list\each (function (_ [name module])
(text$ name)))
tuple$
- code\encoded))))
+ code\encoded))})
))
(def: (list\only p xs)
@@ -3592,9 +3627,9 @@
#End
(list)
- (#Item x xs')
+ {#Item x xs'}
(if (p x)
- (#Item x (list\only p xs'))
+ {#Item x (list\only p xs')}
(list\only p xs'))))
(def: (is_member? cases name)
@@ -3611,7 +3646,7 @@
(-> (-> a (Maybe b)) a a (Maybe b)))
(case (f x1)
#None (f x2)
- (#Some y) (#Some y)))
+ {#Some y} {#Some y}))
(def: (in_env name state)
(-> Text Lux (Maybe Type))
@@ -3630,7 +3665,7 @@
(on_either (list\one (: (-> [Text [Type Any]] (Maybe Type))
(function (_ [bname [type _]])
(if (text\= name bname)
- (#Some type)
+ {#Some type}
#None))))
(: (List [Text [Type Any]]) locals)
(: (List [Text [Type Any]]) closure)))))
@@ -3647,26 +3682,26 @@
#None
#None
- (#Some [#definitions definitions #module_hash _ #module_aliases _ #imports _ #module_state _])
+ {#Some [#definitions definitions #module_hash _ #module_aliases _ #imports _ #module_state _]}
(case (plist\value v_name definitions)
#None
#None
- (#Some definition)
+ {#Some definition}
(case definition
- (#Alias real_name)
+ {#Alias real_name}
(definition_type real_name state)
- (#Definition [exported? def_type def_value])
- (#Some def_type)
+ {#Definition [exported? def_type def_value]}
+ {#Some def_type}
- (#Type [exported? type labels])
- (#Some ..Type)
+ {#Type [exported? type labels]}
+ {#Some ..Type}
- (#Label _)
+ {#Label _}
#None
- (#Slot _)
+ {#Slot _}
#None)))))
(def: (definition_value name state)
@@ -3678,29 +3713,29 @@
#scope_type_vars scope_type_vars #eval _eval] state]
(case (plist\value v_module modules)
#None
- (#Left (text\composite "Unknown definition: " (name\encoded name)))
+ {#Left (text\composite "Unknown definition: " (name\encoded name))}
- (#Some [#definitions definitions #module_hash _ #module_aliases _ #imports _ #module_state _])
+ {#Some [#definitions definitions #module_hash _ #module_aliases _ #imports _ #module_state _]}
(case (plist\value v_name definitions)
#None
- (#Left (text\composite "Unknown definition: " (name\encoded name)))
+ {#Left (text\composite "Unknown definition: " (name\encoded name))}
- (#Some definition)
+ {#Some definition}
(case definition
- (#Alias real_name)
+ {#Alias real_name}
(definition_value real_name state)
- (#Definition [exported? def_type def_value])
- (#Right [state [def_type def_value]])
+ {#Definition [exported? def_type def_value]}
+ {#Right [state [def_type def_value]]}
- (#Type [exported? type labels])
- (#Right [state [..Type type]])
+ {#Type [exported? type labels]}
+ {#Right [state [..Type type]]}
- (#Label _)
- (#Left (text\composite "Unknown definition: " (name\encoded name)))
+ {#Label _}
+ {#Left (text\composite "Unknown definition: " (name\encoded name))}
- (#Slot _)
- (#Left (text\composite "Unknown definition: " (name\encoded name))))))))
+ {#Slot _}
+ {#Left (text\composite "Unknown definition: " (name\encoded name))})))))
(def: (type_variable idx bindings)
(-> Nat (List [Nat (Maybe Type)]) (Maybe Type))
@@ -3708,7 +3743,7 @@
#End
#End
- (#Item [var bound] bindings')
+ {#Item [var bound] bindings'}
(if ("lux i64 =" idx var)
bound
(type_variable idx bindings'))))
@@ -3721,24 +3756,24 @@
(function (_ compiler)
(let [temp (if (text\= "" module)
(case (in_env name compiler)
- (#Some struct_type)
- (#Right [compiler struct_type])
+ {#Some struct_type}
+ {#Right [compiler struct_type]}
_
(case (definition_type [current_module name] compiler)
- (#Some struct_type)
- (#Right [compiler struct_type])
+ {#Some struct_type}
+ {#Right [compiler struct_type]}
_
- (#Left ($_ text\composite "Unknown var: " (name\encoded full_name)))))
+ {#Left ($_ text\composite "Unknown var: " (name\encoded full_name))}))
(case (definition_type full_name compiler)
- (#Some struct_type)
- (#Right [compiler struct_type])
+ {#Some struct_type}
+ {#Right [compiler struct_type]}
_
- (#Left ($_ text\composite "Unknown var: " (name\encoded full_name)))))]
+ {#Left ($_ text\composite "Unknown var: " (name\encoded full_name))}))]
(case temp
- (#Right [compiler (#Var type_id)])
+ {#Right [compiler {#Var type_id}]}
(let [[#info _ #source _ #current_module _ #modules _
#scopes _ #type_context type_context #host _
#seed _ #expected _ #location _ #extensions extensions
@@ -3748,8 +3783,8 @@
#None
temp
- (#Some actualT)
- (#Right [compiler actualT])))
+ {#Some actualT}
+ {#Right [compiler actualT]}))
_
temp))
@@ -3759,9 +3794,9 @@
(All (_ a b)
(-> (List a) (List b) (List [a b])))
(case xs
- (#Item x xs')
+ {#Item x xs'}
(case ys
- (#Item y ys')
+ {#Item y ys'}
(list& [x y] (zipped/2 xs' ys'))
_
@@ -3772,12 +3807,12 @@
(macro: .public (^open tokens)
(case tokens
- (^ (list& [_ (#Form (list [_ (#Text alias)]))] body branches))
+ (^ (list& [_ {#Form (list [_ {#Text alias}])}] body branches))
(do meta_monad
[g!temp (..identifier "temp")]
(in (list& g!temp (` (..^open (~ g!temp) (~ (text$ alias)) (~ body))) branches)))
- (^ (list [_ (#Identifier name)] [_ (#Text alias)] body))
+ (^ (list [_ {#Identifier name}] [_ {#Text alias}] body))
(do meta_monad
[init_type (type_definition name)
struct_evidence (record_slots init_type)]
@@ -3785,7 +3820,7 @@
#None
(failure (text\composite "Can only 'open' structs: " (type\encoded init_type)))
- (#Some tags&members)
+ {#Some tags&members}
(do meta_monad
[full_body ((: (-> Name [(List Name) (List Type)] Code (Meta Code))
(function (recur source [tags members] target)
@@ -3799,7 +3834,7 @@
(do meta_monad
[m_implementation (record_slots m_type)]
(case m_implementation
- (#Some m_tags&members)
+ {#Some m_tags&members}
(recur m_local
m_tags&members
enhanced_target)
@@ -3834,8 +3869,8 @@
(All (_ a)
(-> Nat (List a) (List [Nat a])))
(case xs
- (#Item x xs')
- (#Item [idx x] (enumeration' ("lux i64 +" 1 idx) xs'))
+ {#Item x xs'}
+ {#Item [idx x] (enumeration' ("lux i64 +" 1 idx) xs')}
#End
#End))
@@ -3847,7 +3882,7 @@
(macro: .public (value@ tokens)
(case tokens
- (^ (list [_ (#Tag slot')] record))
+ (^ (list [_ {#Tag slot'}] record))
(do meta_monad
[slot (normal slot')
output (..type_slot slot)
@@ -3855,7 +3890,7 @@
g!_ (..identifier "_")
g!output (..identifier "")]
(case (interface_methods type)
- (#Some members)
+ {#Some members}
(let [pattern (|> (zipped/2 tags (enumeration members))
(list\each (: (-> [Name [Nat Type]] (List Code))
(function (_ [[r_module r_name] [r_idx r_type]])
@@ -3870,7 +3905,7 @@
_
(failure "value@ can only use records.")))
- (^ (list [_ (#Tuple slots)] record))
+ (^ (list [_ {#Tuple slots}] record))
(in_meta (list (list\mix (: (-> Code Code Code)
(function (_ slot inner)
(` (..value@ (~ slot) (~ inner)))))
@@ -3901,7 +3936,7 @@
tuple$)
source+ (` ({(~ pattern) (~ g!output)} (~ source)))]]
(case output
- (#Some [tags' members'])
+ {#Some [tags' members']}
(do meta_monad
[decls' (monad\each meta_monad
(: (-> [Nat Name Type] (Meta (List Code)))
@@ -3917,15 +3952,15 @@
(macro: .public (open: tokens)
(case tokens
- (^ (list [_ (#Text alias)] struct))
+ (^ (list [_ {#Text alias}] struct))
(case struct
- [_ (#Identifier struct_name)]
+ [_ {#Identifier struct_name}]
(do meta_monad
[struct_type (type_definition struct_name)
output (record_slots struct_type)
.let [source (identifier$ struct_name)]]
(case output
- (#Some [tags members])
+ {#Some [tags members]}
(do meta_monad
[decls' (monad\each meta_monad (: (-> [Nat Name Type] (Meta (List Code)))
(function (_ [tag_index sname stype])
@@ -4001,13 +4036,13 @@
#All
(exported_definitions module_name)
- (#Only +defs)
+ {#Only +defs}
(do meta_monad
[*defs (exported_definitions module_name)
_ (test_referrals module_name *defs +defs)]
(in +defs))
- (#Exclude _defs)
+ {#Exclude _defs}
(do meta_monad
[*defs (exported_definitions module_name)
_ (test_referrals module_name *defs _defs)]
@@ -4033,7 +4068,7 @@
(macro: (refer tokens)
(case tokens
- (^ (list& [_ (#Text module_name)] options))
+ (^ (list& [_ {#Text module_name}] options))
(do meta_monad
[=refer (referrals module_name options)]
(referral_definitions module_name =refer))
@@ -4049,10 +4084,10 @@
#All
(list (' "*"))
- (#Only defs)
+ {#Only defs}
(list (variant$ (list (' "+") (tuple$ (list\each local_identifier$ defs)))))
- (#Exclude defs)
+ {#Exclude defs}
(list (variant$ (list (' "-") (tuple$ (list\each local_identifier$ defs)))))
#Ignore
@@ -4082,11 +4117,11 @@
(refer_code module_name m_alias =refer)))
imports)
=module (` ("lux def module" (~ =imports)))]]
- (in (#Item =module =refers))))
+ (in {#Item =module =refers})))
(macro: .public (\ tokens)
(case tokens
- (^ (list struct [_ (#Identifier member)]))
+ (^ (list struct [_ {#Identifier member}]))
(in_meta (list (` (let [(^open (~ (text$ (alias_stand_in 0)))) (~ struct)] (~ (identifier$ member))))))
(^ (list& struct member args))
@@ -4097,13 +4132,13 @@
(macro: .public (with@ tokens)
(case tokens
- (^ (list [_ (#Tag slot')] value record))
+ (^ (list [_ {#Tag slot'}] value record))
(do meta_monad
[slot (normal slot')
output (..type_slot slot)
.let [[idx tags exported? type] output]]
(case (interface_methods type)
- (#Some members)
+ {#Some members}
(do meta_monad
[pattern' (monad\each meta_monad
(: (-> [Name [Nat Type]] (Meta [Name Nat Code]))
@@ -4133,7 +4168,7 @@
_
(failure "with@ can only use records.")))
- (^ (list [_ (#Tuple slots)] value record))
+ (^ (list [_ {#Tuple slots}] value record))
(case slots
#End
(failure "Wrong syntax for with@")
@@ -4153,7 +4188,7 @@
[_ accesses'] (list\mix (: (-> [Code Code] [Code (List (List Code))] [Code (List (List Code))])
(function (_ [new_slot new_binding] [old_record accesses'])
[(` (value@ (~ new_slot) (~ new_binding)))
- (#Item (list new_binding old_record) accesses')]))
+ {#Item (list new_binding old_record) accesses'}]))
[record (: (List (List Code)) #End)]
pairs)
accesses (list\conjoint (list\reversed accesses'))]]
@@ -4180,13 +4215,13 @@
(macro: .public (revised@ tokens)
(case tokens
- (^ (list [_ (#Tag slot')] fun record))
+ (^ (list [_ {#Tag slot'}] fun record))
(do meta_monad
[slot (normal slot')
output (..type_slot slot)
.let [[idx tags exported? type] output]]
(case (interface_methods type)
- (#Some members)
+ {#Some members}
(do meta_monad
[pattern' (monad\each meta_monad
(: (-> [Name [Nat Type]] (Meta [Name Nat Code]))
@@ -4216,7 +4251,7 @@
_
(failure "revised@ can only use records.")))
- (^ (list [_ (#Tuple slots)] fun record))
+ (^ (list [_ {#Tuple slots}] fun record))
(case slots
#End
(failure "Wrong syntax for revised@")
@@ -4249,9 +4284,9 @@
(macro: .public (^template tokens)
(case tokens
- (^ (list& [_ (#Form (list [_ (#Tuple bindings)]
- [_ (#Tuple templates)]))]
- [_ (#Form data)]
+ (^ (list& [_ {#Form (list [_ {#Tuple bindings}]
+ [_ {#Tuple templates}])}]
+ [_ {#Form data}]
branches))
(case (: (Maybe (List Code))
(do maybe_monad
@@ -4267,7 +4302,7 @@
list\conjoint
in))
#None))))
- (#Some output)
+ {#Some output}
(in_meta (list\composite output branches))
#None
@@ -4293,57 +4328,57 @@
#End
#End
- (#Item x xs')
+ {#Item x xs'}
(case ys
#End
#End
- (#Item y ys')
+ {#Item y ys'}
(list& x y (interleaved xs' ys')))))
(def: (type_code type)
(-> Type Code)
(case type
- (#Primitive name params)
- (` (#.Primitive (~ (text$ name)) (~ (untemplated_list (list\each type_code params)))))
+ {#Primitive name params}
+ (` {#.Primitive (~ (text$ name)) (~ (untemplated_list (list\each type_code params)))})
(^template [<tag>]
- [(<tag> left right)
- (` (<tag> (~ (type_code left)) (~ (type_code right))))])
+ [{<tag> left right}
+ (` {<tag> (~ (type_code left)) (~ (type_code right))})])
([#.Sum] [#.Product]
[#.Function]
[#.Apply])
(^template [<tag>]
- [(<tag> id)
- (` (<tag> (~ (nat$ id))))])
+ [{<tag> id}
+ (` {<tag> (~ (nat$ id))})])
([#.Parameter] [#.Var] [#.Ex])
(^template [<tag>]
- [(<tag> env type)
+ [{<tag> env type}
(let [env' (untemplated_list (list\each type_code env))]
- (` (<tag> (~ env') (~ (type_code type)))))])
+ (` {<tag> (~ env') (~ (type_code type))}))])
([#.UnivQ] [#.ExQ])
- (#Named [module name] anonymous)
+ {#Named [module name] anonymous}
... TODO: Generate the explicit type definition instead of using
... the "identifier$" shortcut below.
- ... (` (#.Named [(~ (text$ module)) (~ (text$ name))]
- ... (~ (type_code anonymous))))
+ ... (` {#.Named [(~ (text$ module)) (~ (text$ name))]
+ ... (~ (type_code anonymous))})
(identifier$ [module name])))
(macro: .public (loop tokens)
(let [?params (case tokens
- (^ (list name [_ (#Tuple bindings)] body))
- (#Some [name bindings body])
+ (^ (list name [_ {#Tuple bindings}] body))
+ {#Some [name bindings body]}
- (^ (list [_ (#Tuple bindings)] body))
- (#Some [(local_identifier$ "recur") bindings body])
+ (^ (list [_ {#Tuple bindings}] body))
+ {#Some [(local_identifier$ "recur") bindings body]}
_
#None)]
(case ?params
- (#Some [name bindings body])
+ {#Some [name bindings body]}
(let [pairs (pairs bindings)
vars (list\each product\left pairs)
inits (list\each product\right pairs)]
@@ -4351,7 +4386,7 @@
(do meta_monad
[inits' (: (Meta (List Name))
(case (monad\each maybe_monad identifier_name inits)
- (#Some inits') (in_meta inits')
+ {#Some inits'} (in_meta inits')
#None (failure "Wrong syntax for loop")))
init_types (monad\each meta_monad type_definition inits')
expected ..expected_type]
@@ -4376,7 +4411,7 @@
(macro: .public (^slots tokens)
(case tokens
- (^ (list& [_ (#Form (list [_ (#Tuple (list& hslot' tslots'))]))] body branches))
+ (^ (list& [_ {#Form (list [_ {#Tuple (list& hslot' tslots')}])}] body branches))
(do meta_monad
[slots (: (Meta [Name (List Name)])
(case (: (Maybe [Name (List Name)])
@@ -4384,7 +4419,7 @@
[hslot (..tag_name hslot')
tslots (monad\each maybe_monad ..tag_name tslots')]
(in [hslot tslots])))
- (#Some slots)
+ {#Some slots}
(in_meta slots)
#None
@@ -4404,7 +4439,7 @@
(function (_ [module name])
(let [tag (tag$ [module name])]
(case (plist\value name slot_pairings)
- (#Some binding) (list tag binding)
+ {#Some binding} (list tag binding)
#None (list tag g!_))))))
list\conjoint
tuple$)]]
@@ -4416,27 +4451,27 @@
(def: (with_expansions' label tokens target)
(-> Text (List Code) Code (List Code))
(case target
- (^or [_ (#Bit _)] [_ (#Nat _)] [_ (#Int _)] [_ (#Rev _)] [_ (#Frac _)] [_ (#Text _)] [_ (#Tag _)])
+ (^or [_ {#Bit _}] [_ {#Nat _}] [_ {#Int _}] [_ {#Rev _}] [_ {#Frac _}] [_ {#Text _}] [_ {#Tag _}])
(list target)
- [_ (#Identifier [module name])]
+ [_ {#Identifier [module name]}]
(if (and (text\= "" module)
(text\= label name))
tokens
(list target))
(^template [<tag>]
- [[location (<tag> elems)]
- (list [location (<tag> (list\conjoint (list\each (with_expansions' label tokens) elems)))])])
+ [[location {<tag> elems}]
+ (list [location {<tag> (list\conjoint (list\each (with_expansions' label tokens) elems))}])])
([#Form]
[#Variant]
[#Tuple])))
(macro: .public (with_expansions tokens)
(case tokens
- (^ (list& [_ (#Tuple bindings)] bodies))
+ (^ (list& [_ {#Tuple bindings}] bodies))
(case bindings
- (^ (list& [_ (#Identifier ["" var_name])] expr bindings'))
+ (^ (list& [_ {#Identifier ["" var_name]}] expr bindings'))
(do meta_monad
[expansion (single_expansion expr)]
(in (with_expansions' var_name expansion
@@ -4457,7 +4492,7 @@
(-> Type Type)
(case type
(^template [<name>]
- [(#Named ["library/lux" <name>] _)
+ [{#Named ["library/lux" <name>] _}
type])
(["Bit"]
["Nat"]
@@ -4466,7 +4501,7 @@
["Frac"]
["Text"])
- (#Named _ type')
+ {#Named _ type'}
(flat_alias type')
_
@@ -4479,7 +4514,7 @@
.let [[type value] type+value]]
(case (flat_alias type)
(^template [<name> <type> <wrapper>]
- [(#Named ["library/lux" <name>] _)
+ [{#Named ["library/lux" <name>] _}
(in (<wrapper> (:as <type> value)))])
(["Bit" Bit bit$]
["Nat" Nat nat$]
@@ -4494,7 +4529,7 @@
(def: (static_literal token)
(-> Code (Meta Code))
(case token
- [_ (#Identifier [def_module def_name])]
+ [_ {#Identifier [def_module def_name]}]
(if (text\= "" def_module)
(do meta_monad
[current_module current_module_name]
@@ -4502,10 +4537,10 @@
(static_simple_literal [def_module def_name]))
(^template [<tag>]
- [[meta (<tag> parts)]
+ [[meta {<tag> parts}]
(do meta_monad
[=parts (monad\each meta_monad static_literal parts)]
- (in [meta (<tag> =parts)]))])
+ (in [meta {<tag> =parts}]))])
([#Form]
[#Variant]
[#Tuple])
@@ -4532,7 +4567,7 @@
(def: (case_level^ level)
(-> Code (Meta [Code Code]))
(case level
- (^ [_ (#Tuple (list expr binding))])
+ (^ [_ {#Tuple (list expr binding)}])
(in_meta [expr binding])
_
@@ -4545,7 +4580,7 @@
#End
(failure "Multi-level patterns cannot be empty.")
- (#Item init extras)
+ {#Item init extras}
(do meta_monad
[extras' (monad\each meta_monad case_level^ extras)]
(in [init extras']))))
@@ -4554,7 +4589,7 @@
(-> Code [Multi_Level_Case Code] (List Code))
(let [inner_pattern_body (list\mix (function (_ [calculation pattern] success)
(let [bind? (case pattern
- [_ (#Identifier _)]
+ [_ {#Identifier _}]
#1
_
@@ -4566,17 +4601,17 @@
(~+ (if bind?
(list)
(list g!_ (` #.None))))))))
- (` (#.Some (~ body)))
+ (` {#.Some (~ body)})
(: (List [Code Code]) (list\reversed levels)))]
(list init_pattern inner_pattern_body)))
(macro: .public (^multi tokens)
(case tokens
- (^ (list& [_meta (#Form levels)] body next_branches))
+ (^ (list& [_meta {#Form levels}] body next_branches))
(do meta_monad
[mlc (multi_level_case^ levels)
.let [initial_bind? (case mlc
- [[_ (#Identifier _)] _]
+ [[_ {#Identifier _}] _]
#1
_
@@ -4584,13 +4619,13 @@
expected ..expected_type
g!temp (..identifier "temp")]
(let [output (list g!temp
- (` ({(#Some (~ g!temp))
+ (` ({{#Some (~ g!temp)}
(~ g!temp)
#None
(case (~ g!temp)
(~+ next_branches))}
- ("lux type check" (#.Apply (~ (type_code expected)) Maybe)
+ ("lux type check" {#.Apply (~ (type_code expected)) Maybe}
(case (~ g!temp)
(~+ (multi_level_case$ g!temp [mlc body]))
@@ -4613,9 +4648,10 @@
(macro: .public (name_of tokens)
(case tokens
(^template [<tag>]
- [(^ (list [_ (<tag> [module name])]))
+ [(^ (list [_ {<tag> [module name]}]))
(in_meta (list (` [(~ (text$ module)) (~ (text$ name))])))])
- ([#Identifier] [#Tag])
+ ([#Identifier]
+ [#Tag])
_
(failure (..wrong_syntax_error [..prelude_module "name_of"]))))
@@ -4627,16 +4663,16 @@
#scopes scopes #type_context types #host host
#seed seed #expected expected #location location #extensions extensions
#scope_type_vars scope_type_vars #eval _eval]
- (#Right [state scope_type_vars])))
+ {#Right [state scope_type_vars]}))
(macro: .public (:parameter tokens)
(case tokens
- (^ (list [_ (#Nat idx)]))
+ (^ (list [_ {#Nat idx}]))
(do meta_monad
[stvs ..scope_type_vars]
(case (..item idx (list\reversed stvs))
- (#Some var_id)
- (in (list (` (#Ex (~ (nat$ var_id))))))
+ {#Some var_id}
+ (in (list (` {#Ex (~ (nat$ var_id))})))
#None
(failure (text\composite "Indexed-type does not exist: " (nat\encoded idx)))))
@@ -4651,7 +4687,7 @@
(macro: .public (^@ tokens)
(case tokens
- (^ (list& [_meta (#Form (list [_ (#Identifier ["" name])] pattern))] body branches))
+ (^ (list& [_meta {#Form (list [_ {#Identifier ["" name]}] pattern)}] body branches))
(let [g!whole (local_identifier$ name)]
(in_meta (list& g!whole
(` (case (~ g!whole) (~ pattern) (~ body)))
@@ -4662,7 +4698,7 @@
(macro: .public (^|> tokens)
(case tokens
- (^ (list& [_meta (#Form (list [_ (#Identifier ["" name])] [_ (#Tuple steps)]))] body branches))
+ (^ (list& [_meta {#Form (list [_ {#Identifier ["" name]}] [_ {#Tuple steps}])}] body branches))
(let [g!name (local_identifier$ name)]
(in_meta (list& g!name
(` (let [(~ g!name) (|> (~ g!name) (~+ steps))]
@@ -4685,7 +4721,7 @@
(def: location
(Meta Location)
(function (_ compiler)
- (#Right [compiler (value@ #location compiler)])))
+ {#Right [compiler (value@ #location compiler)]}))
(macro: .public (undefined tokens)
(case tokens
@@ -4702,7 +4738,7 @@
(macro: .public (:of tokens)
(case tokens
- (^ (list [_ (#Identifier var_name)]))
+ (^ (list [_ {#Identifier var_name}]))
(do meta_monad
[var_type (type_definition var_name)]
(in (list (type_code var_type))))
@@ -4719,8 +4755,8 @@
(def: (tupleP tokens)
(-> (List Code) (Maybe [(List Code) (List Code)]))
(case tokens
- (^ (list& [_ (#Tuple tuple)] tokens'))
- (#Some [tokens' tuple])
+ (^ (list& [_ {#Tuple tuple}] tokens'))
+ {#Some [tokens' tuple]}
_
#None))
@@ -4737,7 +4773,7 @@
(macro: .public (template: tokens)
(case (templateP tokens)
- (#Some [export_policy name args input_templates])
+ {#Some [export_policy name args input_templates]}
(do meta_monad
[g!tokens (..identifier "tokens")
g!compiler (..identifier "compiler")
@@ -4750,51 +4786,51 @@
((~ (local_identifier$ name)) (~ g!tokens) (~ g!compiler))
(case (~ g!tokens)
(^ (list (~+ (list\each local_identifier$ args))))
- (#.Right [(~ g!compiler)
+ {#.Right [(~ g!compiler)
(list (~+ (list\each (function (_ template)
(` (`' (~ (with_replacements rep_env
template)))))
- input_templates)))])
+ input_templates)))]}
(~ g!_)
- (#.Left (~ (text$ (..wrong_syntax_error [this_module name]))))))))))
+ {#.Left (~ (text$ (..wrong_syntax_error [this_module name])))}))))))
#None
(failure (..wrong_syntax_error (name_of ..template:)))))
(macro: .public (as_is tokens compiler)
- (#Right [compiler tokens]))
+ {#Right [compiler tokens]})
(macro: .public (char tokens compiler)
(case tokens
- (^multi (^ (list [_ (#Text input)]))
+ (^multi (^ (list [_ {#Text input}]))
(|> input "lux text size" ("lux i64 =" 1)))
(|> input ("lux text char" 0)
nat$ list
[compiler] #Right)
_
- (#Left (..wrong_syntax_error (name_of ..char)))))
+ {#Left (..wrong_syntax_error (name_of ..char))}))
(def: target
(Meta Text)
(function (_ compiler)
- (#Right [compiler (value@ [#info #target] compiler)])))
+ {#Right [compiler (value@ [#info #target] compiler)]}))
(def: (platform_name choice)
(-> Code (Meta Text))
(case choice
- [_ (#Text platform)]
+ [_ {#Text platform}]
(..in_meta platform)
- [_ (#Identifier identifier)]
+ [_ {#Identifier identifier}]
(do meta_monad
[identifier (..global_identifier identifier)
type+value (..definition_value identifier)
.let [[type value] type+value]]
(case (..flat_alias type)
- (^or (#Primitive "#Text" #End)
- (#Named ["library/lux" "Text"] (#Primitive "#Text" #End)))
+ (^or {#Primitive "#Text" #End}
+ {#Named ["library/lux" "Text"] {#Primitive "#Text" #End}})
(in (:as ..Text value))
_
@@ -4815,10 +4851,10 @@
#None
(failure ($_ text\composite "No code for target platform: " target))
- (#Some default)
+ {#Some default}
(in_meta (list default)))
- (#Item [key pick] options')
+ {#Item [key pick] options'}
(do meta_monad
[platform (..platform_name key)]
(if (text\= target platform)
@@ -4831,25 +4867,25 @@
list\size
(n/% 2)
("lux i64 =" 0))
- (#Some (pairs tokens))
+ {#Some (pairs tokens)}
#None))
(macro: .public (for tokens)
(do meta_monad
[target ..target]
(case tokens
- (^ (list [_ (#Tuple options)]))
+ (^ (list [_ {#Tuple options}]))
(case (pairs' options)
- (#Some options)
+ {#Some options}
(target_pick target options #None)
#None
(failure (..wrong_syntax_error (name_of ..for))))
- (^ (list [_ (#Tuple options)] default))
+ (^ (list [_ {#Tuple options}] default))
(case (pairs' options)
- (#Some options)
- (target_pick target options (#Some default))
+ {#Some options}
+ (target_pick target options {#Some default})
#None
(failure (..wrong_syntax_error (name_of ..for))))
@@ -4860,17 +4896,17 @@
(def: (embedded_expansions code)
(-> Code (Meta [(List [Code Code]) Code]))
(case code
- (^ [ann (#Form (list [_ (#Identifier ["" "~~"])] expansion))])
+ (^ [ann {#Form (list [_ {#Identifier ["" "~~"]}] expansion)}])
(do meta_monad
[g!expansion (..identifier "g!expansion")]
(in [(list [g!expansion expansion]) g!expansion]))
(^template [<tag>]
- [[ann (<tag> parts)]
+ [[ann {<tag> parts}]
(do meta_monad
[=parts (monad\each meta_monad embedded_expansions parts)]
(in [(list\mix list\composite (list) (list\each product\left =parts))
- [ann (<tag> (list\each product\right =parts))]]))])
+ [ann {<tag> (list\each product\right =parts)}]]))])
([#Form]
[#Variant]
[#Tuple])
@@ -4902,24 +4938,24 @@
#End
last
- (#Item [init inits'])
- (` (#.Item (~ init) (~ (untemplated_list& last inits'))))))
+ {#Item [init inits']}
+ (` {#.Item (~ init) (~ (untemplated_list& last inits'))})))
(template [<tag> <name>]
[(def: (<name> g!meta untemplated_pattern elems)
(-> Code (-> Code (Meta Code))
(-> (List Code) (Meta Code)))
(case (list\reversed elems)
- (#Item [_ (#Form (#Item [[_ (#Identifier ["" "~+"])] (#Item [spliced #End])]))]
- inits)
+ {#Item [_ {#Form {#Item [[_ {#Identifier ["" "~+"]}] {#Item [spliced #End]}]}}]
+ inits}
(do meta_monad
[=inits (monad\each meta_monad untemplated_pattern (list\reversed inits))]
- (in (` [(~ g!meta) (<tag> (~ (untemplated_list& spliced =inits)))])))
+ (in (` [(~ g!meta) {<tag> (~ (untemplated_list& spliced =inits))}])))
_
(do meta_monad
[=elems (monad\each meta_monad untemplated_pattern elems)]
- (in (` [(~ g!meta) (<tag> (~ (untemplated_list =elems)))])))))]
+ (in (` [(~ g!meta) {<tag> (~ (untemplated_list =elems))}])))))]
[#.Form untemplated_form]
[#.Tuple untemplated_tuple]
@@ -4932,8 +4968,8 @@
[g!meta (..identifier "g!meta")]
(case pattern
(^template [<tag> <gen>]
- [[_ (<tag> value)]
- (in (` [(~ g!meta) (<tag> (~ (<gen> value)))]))])
+ [[_ {<tag> value}]
+ (in (` [(~ g!meta) {<tag> (~ (<gen> value))}]))])
([#.Bit bit$]
[#.Nat nat$]
[#.Int int$]
@@ -4943,14 +4979,14 @@
[#.Tag name$]
[#.Identifier name$])
- [_ (#Form (#Item [[_ (#Identifier ["" "~"])] (#Item [unquoted #End])]))]
+ [_ {#Form {#Item [[_ {#Identifier ["" "~"]}] {#Item [unquoted #End]}]}}]
(in_meta unquoted)
- [_ (#Form (#Item [[_ (#Identifier ["" "~+"])] (#Item [spliced #End])]))]
+ [_ {#Form {#Item [[_ {#Identifier ["" "~+"]}] {#Item [spliced #End]}]}}]
(failure "Cannot use (~+) inside of ^code unless it is the last element in a form or a tuple.")
(^template [<tag> <untemplated>]
- [[_ (<tag> elems)]
+ [[_ {<tag> elems}]
(<untemplated> g!meta untemplated_pattern elems)])
([#Form ..untemplated_form]
[#Variant ..untemplated_variant]
@@ -4959,7 +4995,7 @@
(macro: .public (^code tokens)
(case tokens
- (^ (list& [_meta (#Form (list template))] body branches))
+ (^ (list& [_meta {#Form (list template)}] body branches))
(do meta_monad
[pattern (untemplated_pattern template)]
(in (list& pattern body branches)))
@@ -4982,7 +5018,7 @@
(macro: .public (:let tokens)
(case tokens
- (^ (list [_ (#Tuple bindings)] bodyT))
+ (^ (list [_ {#Tuple bindings}] bodyT))
(if (multiple? 2 (list\size bindings))
(in_meta (list (` (..with_expansions [(~+ (|> bindings
..pairs
@@ -5010,9 +5046,9 @@
(def: (methodP tokens)
(-> (List Code) (Maybe [(List Code) [Text Code]]))
(case tokens
- (^ (list& [_ (#Form (list [_ (#Text "lux type check")] type [_ (#Identifier ["" name])]))]
+ (^ (list& [_ {#Form (list [_ {#Text "lux type check"}] type [_ {#Identifier ["" name]}])}]
tokens'))
- (#Some [tokens' [name type]])
+ {#Some [tokens' [name type]]}
_
#None))
@@ -5021,7 +5057,7 @@
(do meta_monad
[methods' (monad\each meta_monad expansion tokens)]
(case (everyP methodP (list\conjoint methods'))
- (#Some methods)
+ {#Some methods}
(in (list (` (..Tuple (~+ (list\each product\right methods))))
(tuple$ (list\each (|>> product\left text$) methods))))
@@ -5031,13 +5067,13 @@
(def: (recursive_type g!self g!dummy name body)
(-> Code Code Text Code Code)
(` ((.All ((~ g!self) (~ g!dummy))
- (~ (let$ (local_identifier$ name) (` (#.Apply (..primitive "") (~ g!self)))
+ (~ (let$ (local_identifier$ name) (` {#.Apply (..primitive "") (~ g!self)})
body)))
(..primitive ""))))
(macro: .public (Rec tokens)
(case tokens
- (^ (list [_ (#Identifier "" name)] body))
+ (^ (list [_ {#Identifier "" name}] body))
(do meta_monad
[body' (expansion body)
g!self (identifier "g!self")
diff --git a/stdlib/source/library/lux/abstract/comonad.lux b/stdlib/source/library/lux/abstract/comonad.lux
index b4dd60a68..20e24bcb5 100644
--- a/stdlib/source/library/lux/abstract/comonad.lux
+++ b/stdlib/source/library/lux/abstract/comonad.lux
@@ -26,15 +26,15 @@
(macro: .public (be tokens state)
(case (: (Maybe [(Maybe Text) Code (List Code) Code])
(case tokens
- (^ (list [_ (#.Tuple (list [_ (#.Identifier ["" name])] comonad))] [_ (#.Tuple bindings)] body))
- (#.Some [(#.Some name) comonad bindings body])
+ (^ (list [_ {#.Tuple (list [_ {#.Identifier ["" name]}] comonad)}] [_ {#.Tuple bindings}] body))
+ {#.Some [{#.Some name} comonad bindings body]}
- (^ (list comonad [_ (#.Tuple bindings)] body))
- (#.Some [#.None comonad bindings body])
+ (^ (list comonad [_ {#.Tuple bindings}] body))
+ {#.Some [#.None comonad bindings body]}
_
#.None))
- (#.Some [?name comonad bindings body])
+ {#.Some [?name comonad bindings body]}
(if (|> bindings list.size (n.% 2) (n.= 0))
(let [[module short] (name_of ..be)
identifier (: (-> Text Code)
@@ -47,19 +47,19 @@
(with_expansions [<default> (` (|> (~ value) (~ g!disjoint) ((~ g!each) (function ((~ g!_) (~ var)) (~ body')))))]
(let [[var value] binding]
(case var
- [_ (#.Identifier ["" _])]
+ [_ {#.Identifier ["" _]}]
<default>
- [_ (#.Identifier _)]
+ [_ {#.Identifier _}]
(` ((~ var) (~ value) (~ body')))
_
<default>)))))
body
(list.reversed (list.pairs bindings)))]
- (#.Right [state (list (case ?name
- (#.Some name)
- (let [name [location.dummy (#.Identifier ["" name])]]
+ {#.Right [state (list (case ?name
+ {#.Some name}
+ (let [name [location.dummy {#.Identifier ["" name]}]]
(` (.case (~ comonad)
(~ name)
(.case (~ name)
@@ -69,8 +69,8 @@
#.None
(` (.case (~ comonad)
[(~ g!each) (~' out) (~ g!disjoint)]
- (~ body')))))]))
- (#.Left "'be' bindings must have an even number of parts."))
+ (~ body')))))]})
+ {#.Left "'be' bindings must have an even number of parts."})
#.None
- (#.Left "Wrong syntax for 'be'")))
+ {#.Left "Wrong syntax for 'be'"}))
diff --git a/stdlib/source/library/lux/abstract/enum.lux b/stdlib/source/library/lux/abstract/enum.lux
index 390bd9956..c78a0711f 100644
--- a/stdlib/source/library/lux/abstract/enum.lux
+++ b/stdlib/source/library/lux/abstract/enum.lux
@@ -16,10 +16,10 @@
(loop [end to
output #.End]
(cond (< end from)
- (recur (pred end) (#.Item end output))
+ (recur (pred end) {#.Item end output})
(< from end)
- (recur (succ end) (#.Item end output))
+ (recur (succ end) {#.Item end output})
... (= end from)
- (#.Item end output)))))
+ {#.Item end output}))))
diff --git a/stdlib/source/library/lux/abstract/functor.lux b/stdlib/source/library/lux/abstract/functor.lux
index c72ae415b..5b7b4d3f1 100644
--- a/stdlib/source/library/lux/abstract/functor.lux
+++ b/stdlib/source/library/lux/abstract/functor.lux
@@ -20,11 +20,11 @@
(implementation
(def: (each f fa|ga)
(case fa|ga
- (#.Left fa)
- (#.Left (f\each f fa))
+ {#.Left fa}
+ {#.Left (f\each f fa)}
- (#.Right ga)
- (#.Right (g\each f ga))))))
+ {#.Right ga}
+ {#.Right (g\each f ga)}))))
(type: .public (And f g)
(All (_ a) (.And (f a) (g a))))
diff --git a/stdlib/source/library/lux/abstract/monad.lux b/stdlib/source/library/lux/abstract/monad.lux
index 98baec35e..c915945a1 100644
--- a/stdlib/source/library/lux/abstract/monad.lux
+++ b/stdlib/source/library/lux/abstract/monad.lux
@@ -13,7 +13,7 @@
#.End
init
- (#.Item x xs')
+ {#.Item x xs'}
(list\mix f (f x init) xs')))
(def: (list\size xs)
@@ -24,21 +24,21 @@
#.End
counter
- (#.Item _ xs')
+ {#.Item _ xs'}
(recur (++ counter) xs'))))
(def: (reversed xs)
(All (_ a)
(-> (List a) (List a)))
- (list\mix (function (_ head tail) (#.Item head tail))
+ (list\mix (function (_ head tail) {#.Item head tail})
#.End
xs))
(def: (pairs xs)
(All (_ a) (-> (List a) (List [a a])))
(case xs
- (#.Item x1 (#.Item x2 xs'))
- (#.Item [x1 x2] (pairs xs'))
+ {#.Item x1 {#.Item x2 xs'}}
+ {#.Item [x1 x2] (pairs xs')}
_
#.End))
@@ -57,15 +57,15 @@
(macro: .public (do tokens state)
(case (: (Maybe [(Maybe Text) Code (List Code) Code])
(case tokens
- (^ (list [_ (#.Tuple (list [_ (#.Identifier ["" name])] monad))] [_ (#.Tuple bindings)] body))
- (#.Some [(#.Some name) monad bindings body])
+ (^ (list [_ {#.Tuple (list [_ {#.Identifier ["" name]}] monad)}] [_ {#.Tuple bindings}] body))
+ {#.Some [{#.Some name} monad bindings body]}
- (^ (list monad [_ (#.Tuple bindings)] body))
- (#.Some [#.None monad bindings body])
+ (^ (list monad [_ {#.Tuple bindings}] body))
+ {#.Some [#.None monad bindings body]}
_
#.None))
- (#.Some [?name monad bindings body])
+ {#.Some [?name monad bindings body]}
(if (|> bindings list\size .int ("lux i64 %" +2) ("lux i64 =" +0))
(let [[module short] (name_of ..do)
identifier (: (-> Text Code)
@@ -78,19 +78,19 @@
(with_expansions [<default> (` (|> (~ value) ((~ g!each) (function ((~ g!_) (~ var)) (~ body'))) (~ g!conjoint)))]
(let [[var value] binding]
(case var
- [_ (#.Identifier ["" _])]
+ [_ {#.Identifier ["" _]}]
<default>
- [_ (#.Identifier _)]
+ [_ {#.Identifier _}]
(` ((~ var) (~ value) (~ body')))
_
<default>)))))
body
(reversed (pairs bindings)))]
- (#.Right [state (list (case ?name
- (#.Some name)
- (let [name [location.dummy (#.Identifier ["" name])]]
+ {#.Right [state (list (case ?name
+ {#.Some name}
+ (let [name [location.dummy {#.Identifier ["" name]}]]
(` (.case (~ monad)
(~ name)
(.case (~ name)
@@ -100,11 +100,11 @@
#.None
(` (.case (~ monad)
[(~ g!each) (~' in) (~ g!conjoint)]
- (~ body')))))]))
- (#.Left "'do' bindings must have an even number of parts."))
+ (~ body')))))]})
+ {#.Left "'do' bindings must have an even number of parts."})
#.None
- (#.Left "Wrong syntax for 'do'")))
+ {#.Left "Wrong syntax for 'do'"}))
(def: .public (then monad f)
(All (_ ! a b)
@@ -123,10 +123,10 @@
#.End
(!\in #.End)
- (#.Item x xs')
+ {#.Item x xs'}
(|> x
(!\each (function (_ _x)
- (!\each (|>> (#.Item _x)) (recur xs'))))
+ (!\each (|>> {#.Item _x}) (recur xs'))))
!\conjoint)))))
(def: .public (each monad f)
@@ -139,10 +139,10 @@
#.End
(!\in #.End)
- (#.Item x xs')
+ {#.Item x xs'}
(|> (f x)
(!\each (function (_ _x)
- (!\each (|>> (#.Item _x)) (recur xs'))))
+ (!\each (|>> {#.Item _x}) (recur xs'))))
!\conjoint)))))
(def: .public (only monad f)
@@ -155,12 +155,12 @@
#.End
(!\in #.End)
- (#.Item head xs')
+ {#.Item head xs'}
(|> (f head)
(!\each (function (_ verdict)
(!\each (function (_ tail)
(if verdict
- (#.Item head tail)
+ {#.Item head tail}
tail))
(recur xs'))))
!\conjoint)))))
@@ -173,7 +173,7 @@
#.End
(\ monad in init)
- (#.Item x xs')
+ {#.Item x xs'}
(do monad
[init' (f x init)]
(mix monad f init' xs'))))
diff --git a/stdlib/source/library/lux/abstract/monad/free.lux b/stdlib/source/library/lux/abstract/monad/free.lux
index 2f4d88fcc..04718ceb8 100644
--- a/stdlib/source/library/lux/abstract/monad/free.lux
+++ b/stdlib/source/library/lux/abstract/monad/free.lux
@@ -8,19 +8,19 @@
(type: .public (Free F a)
(Variant
- (#Pure a)
- (#Effect (F (Free F a)))))
+ {#Pure a}
+ {#Effect (F (Free F a))}))
(implementation: .public (functor dsl)
(All (_ F) (-> (Functor F) (Functor (Free F))))
(def: (each f ea)
(case ea
- (#Pure a)
- (#Pure (f a))
+ {#Pure a}
+ {#Pure (f a)}
- (#Effect value)
- (#Effect (\ dsl each (each f) value)))))
+ {#Effect value}
+ {#Effect (\ dsl each (each f) value)})))
(implementation: .public (apply dsl)
(All (_ F) (-> (Functor F) (Apply (Free F))))
@@ -30,16 +30,16 @@
(def: (on ea ef)
(case [ef ea]
- [(#Pure f) (#Pure a)]
- (#Pure (f a))
+ [{#Pure f} {#Pure a}]
+ {#Pure (f a)}
- [(#Pure f) (#Effect fa)]
- (#Effect (\ dsl each
+ [{#Pure f} {#Effect fa}]
+ {#Effect (\ dsl each
(\ (..functor dsl) each f)
- fa))
+ fa)}
- [(#Effect ff) _]
- (#Effect (\ dsl each (on ea) ff))
+ [{#Effect ff} _]
+ {#Effect (\ dsl each (on ea) ff)}
)))
(implementation: .public (monad dsl)
@@ -48,20 +48,20 @@
(def: &functor (..functor dsl))
(def: (in a)
- (#Pure a))
+ {#Pure a})
(def: (conjoint efefa)
(case efefa
- (#Pure efa)
+ {#Pure efa}
(case efa
- (#Pure a)
- (#Pure a)
+ {#Pure a}
+ {#Pure a}
- (#Effect fa)
- (#Effect fa))
+ {#Effect fa}
+ {#Effect fa})
- (#Effect fefa)
- (#Effect (\ dsl each
+ {#Effect fefa}
+ {#Effect (\ dsl each
(\ (monad dsl) conjoint)
- fefa))
+ fefa)}
)))
diff --git a/stdlib/source/library/lux/abstract/monad/indexed.lux b/stdlib/source/library/lux/abstract/monad/indexed.lux
index 6e8ddb602..3051aba52 100644
--- a/stdlib/source/library/lux/abstract/monad/indexed.lux
+++ b/stdlib/source/library/lux/abstract/monad/indexed.lux
@@ -33,8 +33,8 @@
(type: Context
(Variant
- (#Macro Name Code)
- (#Binding Binding)))
+ {#Macro Name Code}
+ {#Binding Binding}))
(def: global_identifier
(Parser Name)
@@ -67,12 +67,12 @@
(macro.with_identifiers [g!_ g!then]
(let [body (list\mix (function (_ context next)
(case context
- (#Macro macro parameter)
+ {#Macro macro parameter}
(` ((~ (code.identifier macro))
(~ parameter)
(~ next)))
- (#Binding [binding value])
+ {#Binding [binding value]}
(` ((~ g!then)
(.function ((~ g!_) (~ binding))
(~ next))
@@ -80,7 +80,7 @@
expression
(list.reversed context))]
(in (list (case ?name
- (#.Some name)
+ {#.Some name}
(let [name (code.local_identifier name)]
(` (let [(~ name) (~ monad)
[#..in (~' in)
diff --git a/stdlib/source/library/lux/control/concatenative.lux b/stdlib/source/library/lux/control/concatenative.lux
index 28a48035f..2e70ed49e 100644
--- a/stdlib/source/library/lux/control/concatenative.lux
+++ b/stdlib/source/library/lux/control/concatenative.lux
@@ -67,7 +67,7 @@
(monad.do meta.monad
[expansion expander]
(case expansion
- (#.Item singleton #.End)
+ {#.Item singleton #.End}
(in singleton)
_
@@ -87,7 +87,7 @@
aliases))]
(case [(value@ #bottom inputs)
(value@ #bottom outputs)]
- [(#.Some bottomI) (#.Some bottomO)]
+ [{#.Some bottomI} {#.Some bottomO}]
(monad.do meta.monad
[inputC (singleton (macro.full_expansion (stack_mix (value@ #top inputs) bottomI)))
outputC (singleton (macro.full_expansion (stack_mix (value@ #top outputs) bottomO)))]
@@ -191,12 +191,12 @@
(def: .public ||L
(All (_ a b) (=> [a] [(Or a b)]))
(function (_ [stack l])
- [stack (0 #0 l)]))
+ [stack {0 #0 l}]))
(def: .public ||R
(All (_ a b) (=> [b] [(Or a b)]))
(function (_ [stack r])
- [stack (0 #1 r)]))
+ [stack {0 #1 r}]))
(template [<input> <output> <word> <func>]
[(`` (def: .public <word>
diff --git a/stdlib/source/library/lux/control/concurrency/actor.lux b/stdlib/source/library/lux/control/concurrency/actor.lux
index 5ce45f632..e3635595a 100644
--- a/stdlib/source/library/lux/control/concurrency/actor.lux
+++ b/stdlib/source/library/lux/control/concurrency/actor.lux
@@ -54,8 +54,8 @@
(do [! io.monad]
[current (async.value read)]
(case current
- (#.Some [head tail])
- (\ ! each (|>> (#.Item head))
+ {#.Some [head tail]}
+ (\ ! each (|>> {#.Item head})
(pending tail))
#.None
@@ -94,15 +94,15 @@
[[head tail] |mailbox|
?state' (on_mail head state self)]
(case ?state'
- (#try.Failure error)
+ {#try.Failure error}
(let [[_ resolve] (value@ #obituary (:representation self))]
(exec (io.run!
(do io.monad
[pending (..pending tail)]
- (resolve [error state (#.Item head pending)])))
+ (resolve [error state {#.Item head pending}])))
(in [])))
- (#try.Success state')
+ {#try.Success state'}
(recur state' tail))))]
self)))
@@ -147,10 +147,10 @@
(if resolved?
(do !
[_ (atom.write! (product.right entry) (value@ #mailbox (:representation actor)))]
- (in (#try.Success [])))
+ (in {#try.Success []}))
(recur |mailbox|&resolve)))
- (#.Some [_ |mailbox|'])
+ {#.Some [_ |mailbox|']}
(recur |mailbox|'))))))
(in (exception.except ..dead [])))))
@@ -171,15 +171,15 @@
(do [! async.monad]
[outcome (message state self)]
(case outcome
- (#try.Success [state' return])
+ {#try.Success [state' return]}
(exec
- (io.run! (resolve (#try.Success return)))
- (async.resolved (#try.Success state')))
+ (io.run! (resolve {#try.Success return}))
+ (async.resolved {#try.Success state'}))
- (#try.Failure error)
+ {#try.Failure error}
(exec
- (io.run! (resolve (#try.Failure error)))
- (async.resolved (#try.Failure error))))))]))
+ (io.run! (resolve {#try.Failure error}))
+ (async.resolved {#try.Failure error})))))]))
(def: .public (tell! message actor)
(All (_ s o) (-> (Message s o) (Actor s) (Async (Try o))))
@@ -187,11 +187,11 @@
(do async.monad
[outcome (async.future (..mail! mail actor))]
(case outcome
- (#try.Success)
+ {#try.Success}
async
- (#try.Failure error)
- (in (#try.Failure error))))))]
+ {#try.Failure error}
+ (in {#try.Failure error})))))]
)
)
@@ -244,7 +244,7 @@
#.None
(` (~! ..default_on_mail))
- (#.Some [[mailN stateN selfN] bodyC])
+ {#.Some [[mailN stateN selfN] bodyC]}
(` (function ((~ g!_)
(~ (code.local_identifier mailN))
(~ (code.local_identifier stateN))
diff --git a/stdlib/source/library/lux/control/concurrency/async.lux b/stdlib/source/library/lux/control/concurrency/async.lux
index 903ac8bd9..6e38aff6f 100644
--- a/stdlib/source/library/lux/control/concurrency/async.lux
+++ b/stdlib/source/library/lux/control/concurrency/async.lux
@@ -31,12 +31,12 @@
(do [! io.monad]
[(^@ old [_value _observers]) (atom.read! async)]
(case _value
- (#.Some _)
+ {#.Some _}
(in #0)
#.None
(do !
- [.let [new [(#.Some value) #.None]]
+ [.let [new [{#.Some value} #.None]]
succeeded? (atom.compare_and_swap! old new async)]
(if succeeded?
(do !
@@ -47,7 +47,7 @@
(def: .public (resolved value)
(All (_ a) (-> a (Async a)))
- (:abstraction (atom [(#.Some value) (list)])))
+ (:abstraction (atom [{#.Some value} (list)])))
(def: .public (async _)
(All (_ a) (-> Any [(Async a) (Resolver a)]))
@@ -66,11 +66,11 @@
[.let [async (:representation async)]
(^@ old [_value _observers]) (atom.read! async)]
(case _value
- (#.Some value)
+ {#.Some value}
(f value)
#.None
- (let [new [_value (#.Item f _observers)]]
+ (let [new [_value {#.Item f _observers}]]
(do !
[swapped? (atom.compare_and_swap! old new async)]
(if swapped?
@@ -85,7 +85,7 @@
(|>> (case> #.None
#0
- (#.Some _)
+ {#.Some _}
#1)))))
(implementation: .public functor
diff --git a/stdlib/source/library/lux/control/concurrency/frp.lux b/stdlib/source/library/lux/control/concurrency/frp.lux
index 1021c7e05..5498eeb06 100644
--- a/stdlib/source/library/lux/control/concurrency/frp.lux
+++ b/stdlib/source/library/lux/control/concurrency/frp.lux
@@ -42,7 +42,7 @@
stopped? (current #.None)]
(if stopped?
... I closed the sink.
- (in (#try.Success []))
+ (in {#try.Success []})
... Someone else interacted with the sink.
(do !
[latter (atom.read! sink)]
@@ -63,12 +63,12 @@
[(Async (Maybe [a (Channel a)]))
(async.Resolver (Maybe [a (Channel a)]))]
(async.async []))]
- fed? (current (#.Some [value next]))]
+ fed? (current {#.Some [value next]})]
(if fed?
... I fed the sink.
(do !
[_ (atom.compare_and_swap! current resolve_next sink)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
... Someone else interacted with the sink.
(do !
[latter (atom.read! sink)]
@@ -102,8 +102,8 @@
[item_f ff
item_a fa]
(case [item_f item_a]
- [(#.Some [head_f tail_f]) (#.Some [head_a tail_a])]
- (in (#.Some [(head_f head_a) (on tail_a tail_f)]))
+ [{#.Some [head_f tail_f]} {#.Some [head_a tail_a]}]
+ (in {#.Some [(head_f head_a) (on tail_a tail_f)]})
_
(in #.None)))))
@@ -118,7 +118,7 @@
(def: &functor ..functor)
(def: (in a)
- (async.resolved (#.Some [a ..empty])))
+ (async.resolved {#.Some [a ..empty]}))
(def: (conjoint mma)
(let [[output sink] (channel [])]
@@ -128,13 +128,13 @@
(do [! async.monad]
[?mma mma]
(case ?mma
- (#.Some [ma mma'])
+ {#.Some [ma mma']}
(do !
[_ (loop [ma ma]
(do !
[?ma ma]
(case ?ma
- (#.Some [a ma'])
+ {#.Some [a ma']}
(exec
(io.run! (\ sink feed a))
(recur ma'))
@@ -158,9 +158,9 @@
(do async.monad
[item channel]
(case item
- (#.Some [head tail])
+ {#.Some [head tail]}
(case (io.run! (subscriber head))
- (#.Some _)
+ {#.Some _}
(recur tail)
#.None
@@ -175,10 +175,10 @@
(do async.monad
[item channel]
(case item
- (#.Some [head tail])
+ {#.Some [head tail]}
(let [tail' (only pass? tail)]
(if (pass? head)
- (in (#.Some [head tail']))
+ (in {#.Some [head tail']})
tail'))
#.None
@@ -187,7 +187,7 @@
(def: .public (of_async async)
(All (_ a) (-> (Async a) (Channel a)))
(async\each (function (_ value)
- (#.Some [value ..empty]))
+ {#.Some [value ..empty]})
async))
(def: .public (mix f init channel)
@@ -200,7 +200,7 @@
#.None
(in init)
- (#.Some [head tail])
+ {#.Some [head tail]}
(do !
[init' (f head init)]
(mix f init' tail)))))
@@ -213,12 +213,12 @@
[item channel]
(case item
#.None
- (in (#.Some [init (in #.None)]))
+ (in {#.Some [init (in #.None)]})
- (#.Some [head tail])
+ {#.Some [head tail]}
(do !
[init' (f head init)]
- (in (#.Some [init (mixes f init' tail)]))))))
+ (in {#.Some [init (mixes f init' tail)]})))))
(def: .public (poll milli_seconds action)
(All (_ a)
@@ -241,8 +241,8 @@
(do async.monad
[?next (f init)]
(case ?next
- (#.Some [state output])
- (in (#.Some [output (iterations f state)]))
+ {#.Some [state output]}
+ (in {#.Some [output (iterations f state)]})
#.None
(in #.None))))
@@ -252,10 +252,10 @@
(do async.monad
[item channel]
(case item
- (#.Some [head tail])
+ {#.Some [head tail]}
(if (\ equivalence = previous head)
(distinct' equivalence previous tail)
- (in (#.Some [head (distinct' equivalence head tail)])))
+ (in {#.Some [head (distinct' equivalence head tail)]}))
#.None
(in #.None))))
@@ -265,8 +265,8 @@
(do async.monad
[item channel]
(in (case item
- (#.Some [head tail])
- (#.Some [head (distinct' equivalence head tail)])
+ {#.Some [head tail]}
+ {#.Some [head (distinct' equivalence head tail)]}
#.None
#.None))))
@@ -276,8 +276,8 @@
(do [! async.monad]
[item channel]
(case item
- (#.Some [head tail])
- (\ ! each (|>> (#.Item head))
+ {#.Some [head tail]}
+ (\ ! each (|>> {#.Item head})
(list tail))
#.None
@@ -289,7 +289,7 @@
#.End
..empty
- (#.Item head tail)
- (async.resolved (#.Some [head (do async.monad
+ {#.Item head tail}
+ (async.resolved {#.Some [head (do async.monad
[_ (async.delay milli_seconds)]
- (sequential milli_seconds tail))]))))
+ (sequential milli_seconds tail))]})))
diff --git a/stdlib/source/library/lux/control/concurrency/semaphore.lux b/stdlib/source/library/lux/control/concurrency/semaphore.lux
index 013720460..755e201ff 100644
--- a/stdlib/source/library/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/library/lux/control/concurrency/semaphore.lux
@@ -89,9 +89,9 @@
#.None
(in true)
- (#.Some sink)
+ {#.Some sink}
(sink []))]
- (in (#try.Success (value@ #open_positions post)))))))))]
+ (in {#try.Success (value@ #open_positions post)})))))))]
)
(abstract: .public Mutex
diff --git a/stdlib/source/library/lux/control/concurrency/stm.lux b/stdlib/source/library/lux/control/concurrency/stm.lux
index 6b89926ff..382859176 100644
--- a/stdlib/source/library/lux/control/concurrency/stm.lux
+++ b/stdlib/source/library/lux/control/concurrency/stm.lux
@@ -54,10 +54,10 @@
(do !
[result (\ sink feed new_value)]
(case result
- (#try.Success _)
+ {#try.Success _}
(in [])
- (#try.Failure _)
+ {#try.Failure _}
(un_follow! sink var))))
observers)]
(in []))
@@ -68,7 +68,7 @@
(do io.monad
[.let [[channel sink] (frp.channel [])]
_ (atom.update! (function (_ [value observers])
- [value (#.Item sink observers)])
+ [value {#.Item sink observers}])
(:representation target))]
(in [channel sink])))]
)
@@ -99,12 +99,12 @@
(All (_ a) (-> (Var a) (STM a)))
(function (_ tx)
(case (var_value var tx)
- (#.Some value)
+ {#.Some value}
[tx value]
#.None
(let [value (..read! var)]
- [(#.Item [var value value] tx)
+ [{#.Item [var value value] tx}
value]))))
(def: (with_updated_var var value tx)
@@ -113,28 +113,28 @@
#.End
#.End
- (#.Item [_var _original _current] tx')
+ {#.Item [_var _original _current] tx'}
(if (same? (:as (Var Any) var)
(:as (Var Any) _var))
- (#.Item [#var (:as (Var Any) _var)
+ {#.Item [#var (:as (Var Any) _var)
#original (:as Any _original)
#current (:as Any value)]
- tx')
- (#.Item [#var _var
+ tx'}
+ {#.Item [#var _var
#original _original
#current _current]
- (with_updated_var var value tx')))))
+ (with_updated_var var value tx')})))
(def: .public (write value var)
(All (_ a) (-> a (Var a) (STM Any)))
(function (_ tx)
(case (var_value var tx)
- (#.Some _)
+ {#.Some _}
[(with_updated_var var value tx)
[]]
#.None
- [(#.Item [var (..read! var) value] tx)
+ [{#.Item [var (..read! var) value] tx}
[]])))
(implementation: .public functor
@@ -223,7 +223,7 @@
(atom.write! (product.right entry) pending_commits)
(recur |commits|&resolve)))
- (#.Some [head tail])
+ {#.Some [head tail]}
(recur tail)))))))
(def: (process_commit! commit)
diff --git a/stdlib/source/library/lux/control/concurrency/thread.lux b/stdlib/source/library/lux/control/concurrency/thread.lux
index c9430c1ed..f52b7f319 100644
--- a/stdlib/source/library/lux/control/concurrency/thread.lux
+++ b/stdlib/source/library/lux/control/concurrency/thread.lux
@@ -91,14 +91,14 @@
(def: (execute! action)
(-> (IO Any) Any)
(case (try (io.run! action))
- (#try.Failure error)
+ {#try.Failure error}
(exec
("lux io log" ($_ "lux text concat"
"ERROR DURING THREAD EXECUTION:" text.new_line
error))
[])
- (#try.Success _)
+ {#try.Success _}
[]))
(def: .public (schedule! milli_seconds action)
@@ -129,9 +129,9 @@
... Default
(do [! io.monad]
[now (\ ! each (|>> instant.millis .nat) instant.now)
- _ (atom.update! (|>> (#.Item [#creation now
+ _ (atom.update! (|>> {#.Item [#creation now
#delay milli_seconds
- #action action]))
+ #action action]})
..runner)]
(in [])))))
diff --git a/stdlib/source/library/lux/control/exception.lux b/stdlib/source/library/lux/control/exception.lux
index 039265ff7..3ea07e3e7 100644
--- a/stdlib/source/library/lux/control/exception.lux
+++ b/stdlib/source/library/lux/control/exception.lux
@@ -40,26 +40,26 @@
(-> (Exception e) (-> Text a) (Try a)
(Try a)))
(case try
- (#//.Success output)
- (#//.Success output)
+ {#//.Success output}
+ {#//.Success output}
- (#//.Failure error)
+ {#//.Failure error}
(let [reference (value@ #label exception)]
(if (text.starts_with? reference error)
- (#//.Success (|> error
+ {#//.Success (|> error
(text.clip_since (text.size reference))
maybe.trusted
- then))
- (#//.Failure error)))))
+ then)}
+ {#//.Failure error}))))
(def: .public (otherwise else try)
(All (_ a)
(-> (-> Text a) (Try a) a))
(case try
- (#//.Success output)
+ {#//.Success output}
output
- (#//.Failure error)
+ {#//.Failure error}
(else error)))
(def: .public (error exception message)
@@ -68,12 +68,12 @@
(def: .public (except exception message)
(All (_ e a) (-> (Exception e) e (Try a)))
- (#//.Failure (..error exception message)))
+ {#//.Failure (..error exception message)})
(def: .public (assertion exception message test)
(All (_ e) (-> (Exception e) e Bit (Try Any)))
(if test
- (#//.Success [])
+ {#//.Success []}
(..except exception message)))
(def: exception
@@ -131,7 +131,7 @@
#.End
""
- (#.Item head tail)
+ {#.Item head tail}
(list\mix (function (_ post pre)
($_ text\composite pre text.new_line (on_entry post)))
(on_entry head)
@@ -148,8 +148,8 @@
(|> entries
(list\mix (function (_ entry [index next])
[(++ index)
- (#.Item [(n\encoded index) (format entry)]
- next)])
+ {#.Item [(n\encoded index) (format entry)]
+ next}])
[0 #.End])
product.right
list.reversed
@@ -173,13 +173,13 @@
(def: .public (with exception message computation)
(All (_ e a) (-> (Exception e) e (Try a) (Try a)))
(case computation
- (#//.Failure error)
- (#//.Failure (case error
+ {#//.Failure error}
+ {#//.Failure (case error
""
(..error exception message)
_
- (..decorated (..error exception message) error)))
+ (..decorated (..error exception message) error))}
success
success))
diff --git a/stdlib/source/library/lux/control/function/memo.lux b/stdlib/source/library/lux/control/function/memo.lux
index 8e99b18ab..cccc36bf4 100644
--- a/stdlib/source/library/lux/control/function/memo.lux
+++ b/stdlib/source/library/lux/control/function/memo.lux
@@ -23,7 +23,7 @@
(do [! state.monad]
[memory state.get]
(case (dictionary.value input memory)
- (#.Some output)
+ {#.Some output}
(in output)
#.None
diff --git a/stdlib/source/library/lux/control/function/mutual.lux b/stdlib/source/library/lux/control/function/mutual.lux
index 159f037e3..820d40253 100644
--- a/stdlib/source/library/lux/control/function/mutual.lux
+++ b/stdlib/source/library/lux/control/function/mutual.lux
@@ -58,7 +58,7 @@
#.End
(in (list body))
- (#.Item mutual #.End)
+ {#.Item mutual #.End}
(.let [g!name (|> mutual (value@ [#declaration #declaration.name]) code.local_identifier)]
(in (list (` (.let [(~ g!name) (: (~ (value@ #type mutual))
(function (~ (declaration.format (value@ #declaration mutual)))
@@ -110,7 +110,7 @@
#.End
(in (list))
- (#.Item definition #.End)
+ {#.Item definition #.End}
(.let [(^slots [#export_policy #mutual]) definition
(^slots [#declaration #type #body]) mutual]
(in (list (` (.def: (~ export_policy) (~ (declaration.format declaration))
diff --git a/stdlib/source/library/lux/control/lazy.lux b/stdlib/source/library/lux/control/lazy.lux
index 16b501d9e..baedf1354 100644
--- a/stdlib/source/library/lux/control/lazy.lux
+++ b/stdlib/source/library/lux/control/lazy.lux
@@ -25,13 +25,13 @@
(let [cache (atom.atom #.None)]
(:abstraction (function (_ _)
(case (io.run! (atom.read! cache))
- (#.Some value)
+ {#.Some value}
value
_
(let [value (generator [])]
(exec
- (io.run! (atom.compare_and_swap! _ (#.Some value) cache))
+ (io.run! (atom.compare_and_swap! _ {#.Some value} cache))
value)))))))
(def: .public (value lazy)
diff --git a/stdlib/source/library/lux/control/maybe.lux b/stdlib/source/library/lux/control/maybe.lux
index 036377285..0387618a8 100644
--- a/stdlib/source/library/lux/control/maybe.lux
+++ b/stdlib/source/library/lux/control/maybe.lux
@@ -13,7 +13,7 @@
... (type: (Maybe a)
... #.None
-... (#.Some a))
+... {#.Some a})
(implementation: .public monoid
(All (_ a) (Monoid (Maybe a)))
@@ -25,8 +25,8 @@
#.None
my
- (#.Some x)
- (#.Some x))))
+ {#.Some x}
+ {#.Some x})))
(implementation: .public functor
(Functor Maybe)
@@ -34,7 +34,7 @@
(def: (each f ma)
(case ma
#.None #.None
- (#.Some a) (#.Some (f a)))))
+ {#.Some a} {#.Some (f a)})))
(implementation: .public apply
(Apply Maybe)
@@ -43,8 +43,8 @@
(def: (on fa ff)
(case [ff fa]
- [(#.Some f) (#.Some a)]
- (#.Some (f a))
+ [{#.Some f} {#.Some a}]
+ {#.Some (f a)}
_
#.None)))
@@ -55,14 +55,14 @@
(def: &functor ..functor)
(def: (in x)
- (#.Some x))
+ {#.Some x})
(def: (conjoint mma)
(case mma
#.None
#.None
- (#.Some mx)
+ {#.Some mx}
mx)))
(implementation: .public (equivalence super)
@@ -73,7 +73,7 @@
[#.None #.None]
#1
- [(#.Some x) (#.Some y)]
+ [{#.Some x} {#.Some y}]
(\ super = x y)
_
@@ -90,7 +90,7 @@
#.None
0
- (#.Some value)
+ {#.Some value}
(\ super hash value))))
(implementation: .public (with monad)
@@ -109,7 +109,7 @@
#.None
(in #.None)
- (#.Some Mma)
+ {#.Some Mma}
Mma))))
(def: .public (lifted monad)
@@ -119,16 +119,16 @@
(macro: .public (else tokens state)
(case tokens
(^ (.list else maybe))
- (let [g!temp (: Code [location.dummy (#.Identifier ["" ""])])]
- (#.Right [state (.list (` (case (~ maybe)
- (#.Some (~ g!temp))
+ (let [g!temp (: Code [location.dummy {#.Identifier ["" ""]}])]
+ {#.Right [state (.list (` (case (~ maybe)
+ {#.Some (~ g!temp)}
(~ g!temp)
#.None
- (~ else))))]))
+ (~ else))))]})
_
- (#.Left "Wrong syntax for else")))
+ {#.Left "Wrong syntax for else"}))
(def: .public trusted
(All (_ a) (-> (Maybe a) a))
@@ -140,15 +140,15 @@
#.None
#.End
- (#.Some value)
- (#.Item value #.End)))
+ {#.Some value}
+ {#.Item value #.End}))
(macro: .public (when tokens state)
(case tokens
(^ (.list test then))
- (#.Right [state (.list (` (.if (~ test)
+ {#.Right [state (.list (` (.if (~ test)
(~ then)
- #.None)))])
+ #.None)))]}
_
- (#.Left "Wrong syntax for when")))
+ {#.Left "Wrong syntax for when"}))
diff --git a/stdlib/source/library/lux/control/parser.lux b/stdlib/source/library/lux/control/parser.lux
index 7b7c499aa..17731a079 100644
--- a/stdlib/source/library/lux/control/parser.lux
+++ b/stdlib/source/library/lux/control/parser.lux
@@ -25,11 +25,11 @@
(def: (each f ma)
(function (_ input)
(case (ma input)
- (#try.Failure msg)
- (#try.Failure msg)
+ {#try.Failure msg}
+ {#try.Failure msg}
- (#try.Success [input' a])
- (#try.Success [input' (f a)])))))
+ {#try.Success [input' a]}
+ {#try.Success [input' (f a)]}))))
(implementation: .public apply
(All (_ s) (Apply (Parser s)))
@@ -39,16 +39,16 @@
(def: (on fa ff)
(function (_ input)
(case (ff input)
- (#try.Success [input' f])
+ {#try.Success [input' f]}
(case (fa input')
- (#try.Success [input'' a])
- (#try.Success [input'' (f a)])
+ {#try.Success [input'' a]}
+ {#try.Success [input'' (f a)]}
- (#try.Failure msg)
- (#try.Failure msg))
+ {#try.Failure msg}
+ {#try.Failure msg})
- (#try.Failure msg)
- (#try.Failure msg)))))
+ {#try.Failure msg}
+ {#try.Failure msg}))))
(implementation: .public monad
(All (_ s) (Monad (Parser s)))
@@ -57,34 +57,34 @@
(def: (in x)
(function (_ input)
- (#try.Success [input x])))
+ {#try.Success [input x]}))
(def: (conjoint mma)
(function (_ input)
(case (mma input)
- (#try.Failure msg)
- (#try.Failure msg)
+ {#try.Failure msg}
+ {#try.Failure msg}
- (#try.Success [input' ma])
+ {#try.Success [input' ma]}
(ma input')))))
(def: .public (assertion message test)
(All (_ s) (-> Text Bit (Parser s Any)))
(function (_ input)
(if test
- (#try.Success [input []])
- (#try.Failure message))))
+ {#try.Success [input []]}
+ {#try.Failure message})))
(def: .public (maybe parser)
(All (_ s a)
(-> (Parser s a) (Parser s (Maybe a))))
(function (_ input)
(case (parser input)
- (#try.Failure _)
- (#try.Success [input #.None])
+ {#try.Failure _}
+ {#try.Success [input #.None]}
- (#try.Success [input' x])
- (#try.Success [input' (#.Some x)]))))
+ {#try.Success [input' x]}
+ {#try.Success [input' {#.Some x}]})))
(def: .public (result parser input)
(All (_ s a)
@@ -103,23 +103,23 @@
(-> (Parser s a) (Parser s b) (Parser s (Or a b))))
(function (_ tokens)
(case (left tokens)
- (#try.Success [tokens' output])
- (#try.Success [tokens' (0 #0 output)])
+ {#try.Success [tokens' output]}
+ {#try.Success [tokens' {0 #0 output}]}
- (#try.Failure _)
+ {#try.Failure _}
(case (right tokens)
- (#try.Success [tokens' output])
- (#try.Success [tokens' (0 #1 output)])
+ {#try.Success [tokens' output]}
+ {#try.Success [tokens' {0 #1 output}]}
- (#try.Failure error)
- (#try.Failure error)))))
+ {#try.Failure error}
+ {#try.Failure error}))))
(def: .public (either this that)
(All (_ s a)
(-> (Parser s a) (Parser s a) (Parser s a)))
(function (_ tokens)
(case (this tokens)
- (#try.Failure _)
+ {#try.Failure _}
(that tokens)
output
@@ -130,10 +130,10 @@
(-> (Parser s a) (Parser s (List a))))
(function (_ input)
(case (parser input)
- (#try.Failure _)
- (#try.Success [input (list)])
+ {#try.Failure _}
+ {#try.Success [input (list)]}
- (#try.Success [input' head])
+ {#try.Success [input' head]}
(..result (\ ..monad each (|>> (list& head))
(some parser))
input'))))
@@ -153,7 +153,7 @@
[x parser]
(|> parser
(exactly (-- amount))
- (\ ! each (|>> (#.Item x)))))))
+ (\ ! each (|>> {#.Item x}))))))
(def: .public (at_least amount parser)
(All (_ s a) (-> Nat (Parser s a) (Parser s (List a))))
@@ -167,11 +167,11 @@
0 (\ ..monad in (list))
_ (function (_ input)
(case (parser input)
- (#try.Failure msg)
- (#try.Success [input (list)])
+ {#try.Failure msg}
+ {#try.Success [input (list)]}
- (#try.Success [input' x])
- (..result (\ ..monad each (|>> (#.Item x))
+ {#try.Success [input' x]}
+ (..result (\ ..monad each (|>> {#.Item x})
(at_most (-- amount) parser))
input')))))
@@ -192,51 +192,51 @@
#.None
(in #.End)
- (#.Some x)
+ {#.Some x}
(|> parser
(..and separator)
..some
- (\ ! each (|>> (list\each product.right) (#.Item x)))))))
+ (\ ! each (|>> (list\each product.right) {#.Item x}))))))
(def: .public (not parser)
(All (_ s a) (-> (Parser s a) (Parser s Any)))
(function (_ input)
(case (parser input)
- (#try.Failure msg)
- (#try.Success [input []])
+ {#try.Failure msg}
+ {#try.Success [input []]}
_
- (#try.Failure "Expected to fail; yet succeeded."))))
+ {#try.Failure "Expected to fail; yet succeeded."})))
(def: .public (failure message)
(All (_ s a) (-> Text (Parser s a)))
(function (_ input)
- (#try.Failure message)))
+ {#try.Failure message}))
(def: .public (lifted operation)
(All (_ s a) (-> (Try a) (Parser s a)))
(function (_ input)
(case operation
- (#try.Success output)
- (#try.Success [input output])
+ {#try.Success output}
+ {#try.Success [input output]}
- (#try.Failure error)
- (#try.Failure error))))
+ {#try.Failure error}
+ {#try.Failure error})))
(def: .public (else value parser)
(All (_ s a) (-> a (Parser s a) (Parser s a)))
(function (_ input)
(case (parser input)
- (#try.Failure error)
- (#try.Success [input value])
+ {#try.Failure error}
+ {#try.Success [input value]}
- (#try.Success [input' output])
- (#try.Success [input' output]))))
+ {#try.Success [input' output]}
+ {#try.Success [input' output]})))
(def: .public remaining
(All (_ s) (Parser s s))
(function (_ inputs)
- (#try.Success [inputs inputs])))
+ {#try.Success [inputs inputs]}))
(def: .public (rec parser)
(All (_ s a) (-> (-> (Parser s a) (Parser s a)) (Parser s a)))
@@ -267,28 +267,28 @@
(All (_ s a) (-> (Parser s a) (Parser s Bit)))
(function (_ input)
(case (parser input)
- (#try.Failure error)
- (#try.Success [input false])
+ {#try.Failure error}
+ {#try.Success [input false]}
- (#try.Success [input' _])
- (#try.Success [input' true]))))
+ {#try.Success [input' _]}
+ {#try.Success [input' true]})))
(def: .public (parses parser)
(All (_ s a) (-> (Parser s a) (Parser s Any)))
(function (_ input)
(case (parser input)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [input' _])
- (#try.Success [input' []]))))
+ {#try.Success [input' _]}
+ {#try.Success [input' []]})))
(def: .public (speculative parser)
(All (_ s a) (-> (Parser s a) (Parser s a)))
(function (_ input)
(case (parser input)
- (#try.Success [input' output])
- (#try.Success [input output])
+ {#try.Success [input' output]}
+ {#try.Success [input output]}
output
output)))
@@ -297,13 +297,13 @@
(All (_ s a z) (-> (Codec a z) (Parser s a) (Parser s z)))
(function (_ input)
(case (parser input)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [input' to_decode])
+ {#try.Success [input' to_decode]}
(case (\ codec decoded to_decode)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success value)
- (#try.Success [input' value])))))
+ {#try.Success value}
+ {#try.Success [input' value]}))))
diff --git a/stdlib/source/library/lux/control/parser/analysis.lux b/stdlib/source/library/lux/control/parser/analysis.lux
index bbc90f043..0c5f47cb3 100644
--- a/stdlib/source/library/lux/control/parser/analysis.lux
+++ b/stdlib/source/library/lux/control/parser/analysis.lux
@@ -53,13 +53,13 @@
(def: .public (result parser input)
(All (_ a) (-> (Parser a) (List Analysis) (Try a)))
(case (parser input)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [#.End value])
- (#try.Success value)
+ {#try.Success [#.End value]}
+ {#try.Success value}
- (#try.Success [unconsumed _])
+ {#try.Success [unconsumed _]}
(exception.except ..unconsumed_input unconsumed)))
(def: .public any
@@ -69,23 +69,23 @@
#.End
(exception.except ..cannot_parse input)
- (#.Item [head tail])
- (#try.Success [tail head]))))
+ {#.Item [head tail]}
+ {#try.Success [tail head]})))
(def: .public end!
(Parser Any)
(function (_ tokens)
(case tokens
- #.End (#try.Success [tokens []])
- _ (#try.Failure (format "Expected list of tokens to be empty!"
- (remaining_inputs tokens))))))
+ #.End {#try.Success [tokens []]}
+ _ {#try.Failure (format "Expected list of tokens to be empty!"
+ (remaining_inputs tokens))})))
(def: .public end?
(Parser Bit)
(function (_ tokens)
- (#try.Success [tokens (case tokens
+ {#try.Success [tokens (case tokens
#.End true
- _ false)])))
+ _ false)]}))
(template [<query> <assertion> <tag> <type> <eq>]
[(`` (as_is (def: .public <query>
@@ -93,7 +93,7 @@
(function (_ input)
(case input
(^ (list& (<tag> x) input'))
- (#try.Success [input' x])
+ {#try.Success [input' x]}
_
(exception.except ..cannot_parse input))))
@@ -104,7 +104,7 @@
(case input
(^ (list& (<tag> actual) input'))
(if (\ <eq> = expected actual)
- (#try.Success [input' []])
+ {#try.Success [input' []]}
(exception.except ..cannot_parse input))
_
@@ -128,7 +128,7 @@
(^ (list& (/.tuple head) tail))
(do try.monad
[output (..result parser head)]
- (#try.Success [tail output]))
+ {#try.Success [tail output]})
_
(exception.except ..cannot_parse input))))
diff --git a/stdlib/source/library/lux/control/parser/binary.lux b/stdlib/source/library/lux/control/parser/binary.lux
index d6de3c7cd..0f5e925e1 100644
--- a/stdlib/source/library/lux/control/parser/binary.lux
+++ b/stdlib/source/library/lux/control/parser/binary.lux
@@ -41,29 +41,29 @@
(def: .public (result parser input)
(All (_ a) (-> (Parser a) Binary (Try a)))
(case (parser [0 input])
- (#try.Failure msg)
- (#try.Failure msg)
+ {#try.Failure msg}
+ {#try.Failure msg}
- (#try.Success [[end _] output])
+ {#try.Success [[end _] output]}
(let [length (/.size input)]
(if (n.= end length)
- (#try.Success output)
+ {#try.Success output}
(exception.except ..binary_was_not_fully_read [length end])))))
(def: .public end?
(Parser Bit)
(function (_ (^@ input [offset data]))
- (#try.Success [input (n.= offset (/.size data))])))
+ {#try.Success [input (n.= offset (/.size data))]}))
(def: .public offset
(Parser Offset)
(function (_ (^@ input [offset data]))
- (#try.Success [input offset])))
+ {#try.Success [input offset]}))
(def: .public remaining
(Parser Nat)
(function (_ (^@ input [offset data]))
- (#try.Success [input (n.- offset (/.size data))])))
+ {#try.Success [input (n.- offset (/.size data))]}))
(type: .public Size
Nat)
@@ -78,11 +78,11 @@
(Parser I64)
(function (_ [offset binary])
(case (<read> offset binary)
- (#try.Success data)
- (#try.Success [(n.+ <size> offset) binary] data)
+ {#try.Success data}
+ {#try.Success [(n.+ <size> offset) binary] data}
- (#try.Failure error)
- (#try.Failure error))))]
+ {#try.Failure error}
+ {#try.Failure error})))]
[bits/8 ..size/8 /.read/8!]
[bits/16 ..size/16 /.read/16!]
@@ -115,7 +115,7 @@
(with_expansions [<case>+' (template.spliced <case>+)]
(case flag
(^template [<number> <tag> <parser>]
- [<number> (`` (\ ! each (|>> ((~~ (template.spliced <tag>)))) <parser>))])
+ [<number> (`` (\ ! each (|>> {(~~ (template.spliced <tag>))}) <parser>))])
(<case>+')
_ (//.lifted (exception.except ..invalid_tag [(template.amount [<case>+]) flag])))))])
@@ -154,7 +154,7 @@
(-> Nat (Parser Binary))
(function (_ [offset binary])
(case size
- 0 (#try.Success [[offset binary] (/.empty 0)])
+ 0 {#try.Success [[offset binary] (/.empty 0)]}
_ (|> binary
(/.slice offset size)
(\ try.monad each (|>> [[(n.+ size offset) binary]]))))))
diff --git a/stdlib/source/library/lux/control/parser/cli.lux b/stdlib/source/library/lux/control/parser/cli.lux
index c60b80d6a..aca4512fb 100644
--- a/stdlib/source/library/lux/control/parser/cli.lux
+++ b/stdlib/source/library/lux/control/parser/cli.lux
@@ -16,26 +16,26 @@
(def: .public (result parser inputs)
(All (_ a) (-> (Parser a) (List Text) (Try a)))
(case (//.result parser inputs)
- (#try.Success [remaining output])
+ {#try.Success [remaining output]}
(case remaining
#.End
- (#try.Success output)
+ {#try.Success output}
_
- (#try.Failure (format "Remaining CLI inputs: " (text.interposed " " remaining))))
+ {#try.Failure (format "Remaining CLI inputs: " (text.interposed " " remaining))})
- (#try.Failure try)
- (#try.Failure try)))
+ {#try.Failure try}
+ {#try.Failure try}))
(def: .public any
(Parser Text)
(function (_ inputs)
(case inputs
- (#.Item arg inputs')
- (#try.Success [inputs' arg])
+ {#.Item arg inputs'}
+ {#try.Success [inputs' arg]}
_
- (#try.Failure "Cannot parse empty arguments."))))
+ {#try.Failure "Cannot parse empty arguments."})))
(def: .public (parse parser)
(All (_ a) (-> (-> Text (Try a)) (Parser a)))
@@ -52,33 +52,33 @@
[[remaining raw] (any inputs)]
(if (text\= reference raw)
(in [remaining []])
- (#try.Failure (format "Missing token: '" reference "'"))))))
+ {#try.Failure (format "Missing token: '" reference "'")}))))
(def: .public (somewhere cli)
(All (_ a) (-> (Parser a) (Parser a)))
(function (_ inputs)
(loop [immediate inputs]
(case (//.result cli immediate)
- (#try.Success [remaining output])
- (#try.Success [remaining output])
+ {#try.Success [remaining output]}
+ {#try.Success [remaining output]}
- (#try.Failure try)
+ {#try.Failure try}
(case immediate
#.End
- (#try.Failure try)
+ {#try.Failure try}
- (#.Item to_omit immediate')
+ {#.Item to_omit immediate'}
(do try.monad
[[remaining output] (recur immediate')]
- (in [(#.Item to_omit remaining)
+ (in [{#.Item to_omit remaining}
output])))))))
(def: .public end
(Parser Any)
(function (_ inputs)
(case inputs
- #.End (#try.Success [inputs []])
- _ (#try.Failure (format "Unknown parameters: " (text.interposed " " inputs))))))
+ #.End {#try.Success [inputs []]}
+ _ {#try.Failure (format "Unknown parameters: " (text.interposed " " inputs))})))
(def: .public (named name value)
(All (_ a) (-> Text (Parser a) (Parser a)))
diff --git a/stdlib/source/library/lux/control/parser/code.lux b/stdlib/source/library/lux/control/parser/code.lux
index f9fc4d550..d58874cf4 100644
--- a/stdlib/source/library/lux/control/parser/code.lux
+++ b/stdlib/source/library/lux/control/parser/code.lux
@@ -25,7 +25,7 @@
(All (_ a) (-> (List [a a]) (List a)))
(case pairs
#.End #.End
- (#.Item [[x y] pairs']) (list& x y (un_paired pairs'))))
+ {#.Item [[x y] pairs']} (list& x y (un_paired pairs'))))
(type: .public Parser
(//.Parser (List Code)))
@@ -41,29 +41,29 @@
(function (_ tokens)
(case tokens
#.End
- (#try.Failure "There are no tokens to parse!")
+ {#try.Failure "There are no tokens to parse!"}
- (#.Item [t tokens'])
- (#try.Success [tokens' t]))))
+ {#.Item [t tokens']}
+ {#try.Success [tokens' t]})))
(def: .public next
(Parser Code)
(function (_ tokens)
(case tokens
#.End
- (#try.Failure "There are no tokens to parse!")
+ {#try.Failure "There are no tokens to parse!"}
- (#.Item next _)
- (#try.Success [tokens next]))))
+ {#.Item next _}
+ {#try.Success [tokens next]})))
(template [<query> <check> <type> <tag> <eq> <desc>]
- [(with_expansions [<failure> (as_is (#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))))]
+ [(with_expansions [<failure> (as_is {#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})]
(def: .public <query>
(Parser <type>)
(function (_ tokens)
(case tokens
- (#.Item [[_ (<tag> x)] tokens'])
- (#try.Success [tokens' x])
+ {#.Item [[_ {<tag> x}] tokens']}
+ {#try.Success [tokens' x]}
_
<failure>)))
@@ -72,9 +72,9 @@
(-> <type> (Parser Any))
(function (_ tokens)
(case tokens
- (#.Item [[_ (<tag> actual)] tokens'])
+ {#.Item [[_ {<tag> actual}] tokens']}
(if (\ <eq> = expected actual)
- (#try.Success [tokens' []])
+ {#try.Success [tokens' []]}
<failure>)
_
@@ -94,23 +94,23 @@
(-> Code (Parser Any))
(function (_ tokens)
(case tokens
- (#.Item [token tokens'])
+ {#.Item [token tokens']}
(if (code\= code token)
- (#try.Success [tokens' []])
- (#try.Failure ($_ text\composite "Expected a " (code.format code) " but instead got " (code.format token)
- (remaining_inputs tokens))))
+ {#try.Success [tokens' []]}
+ {#try.Failure ($_ text\composite "Expected a " (code.format code) " but instead got " (code.format token)
+ (remaining_inputs tokens))})
_
- (#try.Failure "There are no tokens to parse!"))))
+ {#try.Failure "There are no tokens to parse!"})))
(template [<query> <check> <tag> <eq> <desc>]
- [(with_expansions [<failure> (as_is (#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))))]
+ [(with_expansions [<failure> (as_is {#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})]
(def: .public <query>
(Parser Text)
(function (_ tokens)
(case tokens
- (#.Item [[_ (<tag> ["" x])] tokens'])
- (#try.Success [tokens' x])
+ {#.Item [[_ {<tag> ["" x]}] tokens']}
+ {#try.Success [tokens' x]}
_
<failure>)))
@@ -119,9 +119,9 @@
(-> Text (Parser Any))
(function (_ tokens)
(case tokens
- (#.Item [[_ (<tag> ["" actual])] tokens'])
+ {#.Item [[_ {<tag> ["" actual]}] tokens']}
(if (\ <eq> = expected actual)
- (#try.Success [tokens' []])
+ {#try.Success [tokens' []]}
<failure>)
_
@@ -137,13 +137,13 @@
(-> (Parser a) (Parser a)))
(function (_ tokens)
(case tokens
- (#.Item [[_ (<tag> members)] tokens'])
+ {#.Item [[_ {<tag> members}] tokens']}
(case (p members)
- (#try.Success [#.End x]) (#try.Success [tokens' x])
- _ (#try.Failure ($_ text\composite "Parser was expected to fully consume " <desc> (remaining_inputs tokens))))
+ {#try.Success [#.End x]} {#try.Success [tokens' x]}
+ _ {#try.Failure ($_ text\composite "Parser was expected to fully consume " <desc> (remaining_inputs tokens))})
_
- (#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))))))]
+ {#try.Failure ($_ text\composite "Cannot parse " <desc> (remaining_inputs tokens))})))]
[form #.Form "form"]
[variant #.Variant "variant"]
@@ -154,32 +154,32 @@
(Parser Any)
(function (_ tokens)
(case tokens
- #.End (#try.Success [tokens []])
- _ (#try.Failure ($_ text\composite "Expected list of tokens to be empty!" (remaining_inputs tokens))))))
+ #.End {#try.Success [tokens []]}
+ _ {#try.Failure ($_ text\composite "Expected list of tokens to be empty!" (remaining_inputs tokens))})))
(def: .public end?
(Parser Bit)
(function (_ tokens)
- (#try.Success [tokens (case tokens
+ {#try.Success [tokens (case tokens
#.End true
- _ false)])))
+ _ false)]}))
(def: .public (result parser inputs)
(All (_ a) (-> (Parser a) (List Code) (Try a)))
(case (parser inputs)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [unconsumed value])
+ {#try.Success [unconsumed value]}
(case unconsumed
#.End
- (#try.Success value)
+ {#try.Success value}
_
- (#try.Failure (|> unconsumed
+ {#try.Failure (|> unconsumed
(list\each code.format)
(text.interposed ", ")
- (text\composite "Unconsumed inputs: "))))))
+ (text\composite "Unconsumed inputs: "))})))
(def: .public (local inputs parser)
(All (_ a) (-> (List Code) (Parser a) (Parser a)))
@@ -195,5 +195,5 @@
result (//.or parser
..any)]
(case result
- (#.Left _) (//.failure (text\composite "Did NOT expect to parse code: " (code.format sample)))
- (#.Right output) (in output))))
+ {#.Left _} (//.failure (text\composite "Did NOT expect to parse code: " (code.format sample)))
+ {#.Right output} (in output))))
diff --git a/stdlib/source/library/lux/control/parser/environment.lux b/stdlib/source/library/lux/control/parser/environment.lux
index 1ad723411..ce254222e 100644
--- a/stdlib/source/library/lux/control/parser/environment.lux
+++ b/stdlib/source/library/lux/control/parser/environment.lux
@@ -33,8 +33,8 @@
(-> Property (Parser Text))
(function (_ environment)
(case (dictionary.value name environment)
- (#.Some value)
- (#try.Success [environment value])
+ {#.Some value}
+ {#try.Success [environment value]}
#.None
(exception.except ..unknown_property [name]))))
diff --git a/stdlib/source/library/lux/control/parser/json.lux b/stdlib/source/library/lux/control/parser/json.lux
index 4d09fa72b..3a0d76c1f 100644
--- a/stdlib/source/library/lux/control/parser/json.lux
+++ b/stdlib/source/library/lux/control/parser/json.lux
@@ -34,16 +34,16 @@
(def: .public (result parser json)
(All (_ a) (-> (Parser a) JSON (Try a)))
(case (//.result parser (list json))
- (#try.Success [remainder output])
+ {#try.Success [remainder output]}
(case remainder
#.End
- (#try.Success output)
+ {#try.Success output}
_
(exception.except ..unconsumed_input remainder))
- (#try.Failure error)
- (#try.Failure error)))
+ {#try.Failure error}
+ {#try.Failure error}))
(def: .public any
(Parser JSON)
@@ -52,8 +52,8 @@
#.End
(exception.except ..empty_input [])
- (#.Item head tail)
- (#try.Success [tail head]))))
+ {#.Item head tail}
+ {#try.Success [tail head]})))
(exception: .public (unexpected_value [value JSON])
(exception.report
@@ -65,7 +65,7 @@
(do //.monad
[head ..any]
(case head
- (<tag> value)
+ {<tag> value}
(in value)
_
@@ -89,7 +89,7 @@
(do //.monad
[head ..any]
(case head
- (<tag> value)
+ {<tag> value}
(in (\ <equivalence> = test value))
_
@@ -100,10 +100,10 @@
(do //.monad
[head ..any]
(case head
- (<tag> value)
+ {<tag> value}
(if (\ <equivalence> = test value)
(in [])
- (//.failure (exception.error ..value_mismatch [(<tag> test) (<tag> value)])))
+ (//.failure (exception.error ..value_mismatch [{<tag> test} {<tag> value}])))
_
(//.failure (exception.error ..unexpected_value [head])))))]
@@ -123,12 +123,12 @@
(do //.monad
[head ..any]
(case head
- (#/.Array values)
+ {#/.Array values}
(case (//.result parser (row.list values))
- (#try.Failure error)
+ {#try.Failure error}
(//.failure error)
- (#try.Success [remainder output])
+ {#try.Success [remainder output]}
(case remainder
#.End
(in output)
@@ -144,17 +144,17 @@
(do //.monad
[head ..any]
(case head
- (#/.Object kvs)
+ {#/.Object kvs}
(case (|> kvs
dictionary.entries
(list\each (function (_ [key value])
- (list (#/.String key) value)))
+ (list {#/.String key} value)))
list.together
(//.result parser))
- (#try.Failure error)
+ {#try.Failure error}
(//.failure error)
- (#try.Success [remainder output])
+ {#try.Success [remainder output]}
(case remainder
#.End
(in output)
@@ -169,20 +169,20 @@
(All (_ a) (-> Text (Parser a) (Parser a)))
(function (recur inputs)
(case inputs
- (^ (list& (#/.String key) value inputs'))
+ (^ (list& {#/.String key} value inputs'))
(if (text\= key field_name)
(case (//.result parser (list value))
- (#try.Success [#.End output])
- (#try.Success [inputs' output])
+ {#try.Success [#.End output]}
+ {#try.Success [inputs' output]}
- (#try.Success [inputs'' _])
+ {#try.Success [inputs'' _]}
(exception.except ..unconsumed_input inputs'')
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
(do try.monad
[[inputs'' output] (recur inputs')]
- (in [(list& (#/.String key) value inputs'')
+ (in [(list& {#/.String key} value inputs'')
output])))
#.End
diff --git a/stdlib/source/library/lux/control/parser/synthesis.lux b/stdlib/source/library/lux/control/parser/synthesis.lux
index 0bc446089..1578f9115 100644
--- a/stdlib/source/library/lux/control/parser/synthesis.lux
+++ b/stdlib/source/library/lux/control/parser/synthesis.lux
@@ -53,13 +53,13 @@
(def: .public (result parser input)
(All (_ a) (-> (Parser a) (List Synthesis) (Try a)))
(case (parser input)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [#.End value])
- (#try.Success value)
+ {#try.Success [#.End value]}
+ {#try.Success value}
- (#try.Success [unconsumed _])
+ {#try.Success [unconsumed _]}
(exception.except ..unconsumed_input unconsumed)))
(def: .public any
@@ -69,22 +69,22 @@
#.End
(exception.except ..empty_input [])
- (#.Item [head tail])
- (#try.Success [tail head]))))
+ {#.Item [head tail]}
+ {#try.Success [tail head]})))
(def: .public end!
(Parser Any)
(.function (_ tokens)
(case tokens
- #.End (#try.Success [tokens []])
+ #.End {#try.Success [tokens []]}
_ (exception.except ..expected_empty_input [tokens]))))
(def: .public end?
(Parser Bit)
(.function (_ tokens)
- (#try.Success [tokens (case tokens
+ {#try.Success [tokens (case tokens
#.End true
- _ false)])))
+ _ false)]}))
(template [<query> <assertion> <tag> <type> <eq>]
[(`` (def: .public <query>
@@ -92,7 +92,7 @@
(.function (_ input)
(case input
(^ (list& (<tag> x) input'))
- (#try.Success [input' x])
+ {#try.Success [input' x]}
_
(exception.except ..cannot_parse input)))))
@@ -103,7 +103,7 @@
(case input
(^ (list& (<tag> actual) input'))
(if (\ <eq> = expected actual)
- (#try.Success [input' []])
+ {#try.Success [input' []]}
(exception.except ..cannot_parse input))
_
@@ -125,7 +125,7 @@
(^ (list& (/.tuple head) tail))
(do try.monad
[output (..result parser head)]
- (#try.Success [tail output]))
+ {#try.Success [tail output]})
_
(exception.except ..cannot_parse input))))
@@ -138,7 +138,7 @@
(if (n.= expected actual)
(do try.monad
[output (..result parser (list body))]
- (#try.Success [tail [environment output]]))
+ {#try.Success [tail [environment output]]})
(exception.except ..wrong_arity [expected actual]))
_
@@ -152,7 +152,7 @@
(do try.monad
[inits (..result init_parsers inits)
iteration (..result iteration_parser (list iteration))]
- (#try.Success [tail [start inits iteration]]))
+ {#try.Success [tail [start inits iteration]]})
_
(exception.except ..cannot_parse input))))
diff --git a/stdlib/source/library/lux/control/parser/text.lux b/stdlib/source/library/lux/control/parser/text.lux
index 9c847ad5c..8594dc353 100644
--- a/stdlib/source/library/lux/control/parser/text.lux
+++ b/stdlib/source/library/lux/control/parser/text.lux
@@ -58,18 +58,18 @@
(def: .public (result parser input)
(All (_ a) (-> (Parser a) Text (Try a)))
(case (parser [start_offset input])
- (#try.Failure msg)
- (#try.Failure msg)
+ {#try.Failure msg}
+ {#try.Failure msg}
- (#try.Success [[end_offset _] output])
+ {#try.Success [[end_offset _] output]}
(if (n.= end_offset (/.size input))
- (#try.Success output)
+ {#try.Success output}
(exception.except ..unconsumed_input [end_offset input]))))
(def: .public offset
(Parser Offset)
(function (_ (^@ input [offset tape]))
- (#try.Success [input offset])))
+ {#try.Success [input offset]}))
(def: (with_slices parser)
(-> (Parser (List Slice)) (Parser Slice))
@@ -87,8 +87,8 @@
(Parser Text)
(function (_ [offset tape])
(case (/.char offset tape)
- (#.Some output)
- (#try.Success [[("lux i64 +" 1 offset) tape] (/.of_char output)])
+ {#.Some output}
+ {#try.Success [[("lux i64 +" 1 offset) tape] (/.of_char output)]}
_
(exception.except ..cannot_parse []))))
@@ -97,10 +97,10 @@
(Parser Slice)
(function (_ [offset tape])
(case (/.char offset tape)
- (#.Some _)
- (#try.Success [[("lux i64 +" 1 offset) tape]
+ {#.Some _}
+ {#try.Success [[("lux i64 +" 1 offset) tape]
[#basis offset
- #distance 1]])
+ #distance 1]]}
_
(exception.except ..cannot_slice []))))
@@ -110,7 +110,7 @@
(All (_ a) (-> (Parser a) (Parser <type>)))
(function (_ input)
(case (parser input)
- (#try.Failure msg)
+ {#try.Failure msg}
(<any> input)
_
@@ -128,10 +128,10 @@
(-> Text (Parser Any))
(function (_ [offset tape])
(case (/.index_since offset reference tape)
- (#.Some where)
+ {#.Some where}
(if (n.= offset where)
- (#try.Success [[("lux i64 +" (/.size reference) offset) tape]
- []])
+ {#try.Success [[("lux i64 +" (/.size reference) offset) tape]
+ []]}
(exception.except ..cannot_match [reference]))
_
@@ -141,15 +141,15 @@
(Parser Any)
(function (_ (^@ input [offset tape]))
(if (n.= offset (/.size tape))
- (#try.Success [input []])
+ {#try.Success [input []]}
(exception.except ..unconsumed_input input))))
(def: .public next
(Parser Text)
(function (_ (^@ input [offset tape]))
(case (/.char offset tape)
- (#.Some output)
- (#try.Success [input (/.of_char output)])
+ {#.Some output}
+ {#try.Success [input (/.of_char output)]}
_
(exception.except ..cannot_parse []))))
@@ -157,7 +157,7 @@
(def: .public remaining
(Parser Text)
(function (_ (^@ input [offset tape]))
- (#try.Success [input (..left_over offset tape)])))
+ {#try.Success [input (..left_over offset tape)]}))
(def: .public (range bottom top)
(-> Nat Nat (Parser Text))
@@ -211,10 +211,10 @@
(-> Text (Parser Text))
(function (_ [offset tape])
(case (/.char offset tape)
- (#.Some output)
+ {#.Some output}
(let [output' (/.of_char output)]
(if (<modifier> (/.contains? output' options))
- (#try.Success [[("lux i64 +" 1 offset) tape] output'])
+ {#try.Success [[("lux i64 +" 1 offset) tape] output']}
(exception.except <exception> [options output])))
_
@@ -229,12 +229,12 @@
(-> Text (Parser Slice))
(function (_ [offset tape])
(case (/.char offset tape)
- (#.Some output)
+ {#.Some output}
(let [output' (/.of_char output)]
(if (<modifier> (/.contains? output' options))
- (#try.Success [[("lux i64 +" 1 offset) tape]
+ {#try.Success [[("lux i64 +" 1 offset) tape]
[#basis offset
- #distance 1]])
+ #distance 1]]}
(exception.except <exception> [options output])))
_
@@ -252,9 +252,9 @@
(-> (-> Char Bit) (Parser Text))
(function (_ [offset tape])
(case (/.char offset tape)
- (#.Some output)
+ {#.Some output}
(if (parser output)
- (#try.Success [[("lux i64 +" 1 offset) tape] (/.of_char output)])
+ {#try.Success [[("lux i64 +" 1 offset) tape] (/.of_char output)]}
(exception.except ..character_does_not_satisfy_predicate [output]))
_
@@ -340,11 +340,11 @@
(All (_ a) (-> Text (Parser a) (Parser a)))
(function (_ real_input)
(case (..result parser local_input)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success value)
- (#try.Success [real_input value]))))
+ {#try.Success value}
+ {#try.Success [real_input value]})))
(def: .public (slice parser)
(-> (Parser Slice) (Parser Text))
@@ -352,8 +352,8 @@
[[basis distance] parser]
(function (_ (^@ input [offset tape]))
(case (/.clip basis distance tape)
- (#.Some output)
- (#try.Success [input output])
+ {#.Some output}
+ {#try.Success [input output]}
#.None
(exception.except ..cannot_slice [])))))
diff --git a/stdlib/source/library/lux/control/parser/tree.lux b/stdlib/source/library/lux/control/parser/tree.lux
index 7a28812ac..68b4336a5 100644
--- a/stdlib/source/library/lux/control/parser/tree.lux
+++ b/stdlib/source/library/lux/control/parser/tree.lux
@@ -28,7 +28,7 @@
(def: .public value
(All (_ t) (Parser t t))
(function (_ zipper)
- (#try.Success [zipper (zipper.value zipper)])))
+ {#try.Success [zipper (zipper.value zipper)]}))
(exception: .public cannot_move_further)
@@ -40,8 +40,8 @@
#.None
(exception.except ..cannot_move_further [])
- (#.Some next)
- (#try.Success [next []]))))]
+ {#.Some next}
+ {#try.Success [next []]})))]
[down zipper.down]
[up zipper.up]
diff --git a/stdlib/source/library/lux/control/parser/type.lux b/stdlib/source/library/lux/control/parser/type.lux
index c75df1031..4e2414934 100644
--- a/stdlib/source/library/lux/control/parser/type.lux
+++ b/stdlib/source/library/lux/control/parser/type.lux
@@ -23,7 +23,7 @@
["[0]" //])
(template: (|recursion_dummy|)
- [(#.Primitive "" #.End)])
+ [{#.Primitive "" #.End}])
(template [<name>]
[(exception: .public (<name> [type Type])
@@ -74,13 +74,13 @@
(def: (result' env poly types)
(All (_ a) (-> Env (Parser a) (List Type) (Try a)))
(case (//.result poly [env types])
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [[env' remaining] output])
+ {#try.Success [[env' remaining] output]}
(case remaining
#.End
- (#try.Success output)
+ {#try.Success output}
_
(exception.except ..unconsumed_input remaining))))
@@ -92,17 +92,17 @@
(def: .public env
(Parser Env)
(.function (_ [env inputs])
- (#try.Success [[env inputs] env])))
+ {#try.Success [[env inputs] env]}))
(def: (with_env temp poly)
(All (_ a) (-> Env (Parser a) (Parser a)))
(.function (_ [env inputs])
(case (//.result poly [temp inputs])
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [[_ remaining] output])
- (#try.Success [[env remaining] output]))))
+ {#try.Success [[_ remaining] output]}
+ {#try.Success [[env remaining] output]})))
(def: .public next
(Parser Type)
@@ -111,8 +111,8 @@
#.End
(exception.except ..empty_input [])
- (#.Item headT tail)
- (#try.Success [[env inputs] headT]))))
+ {#.Item headT tail}
+ {#try.Success [[env inputs] headT]})))
(def: .public any
(Parser Type)
@@ -121,18 +121,18 @@
#.End
(exception.except ..empty_input [])
- (#.Item headT tail)
- (#try.Success [[env tail] headT]))))
+ {#.Item headT tail}
+ {#try.Success [[env tail] headT]})))
(def: .public (local types poly)
(All (_ a) (-> (List Type) (Parser a) (Parser a)))
(.function (_ [env pass_through])
(case (result' env poly types)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success output)
- (#try.Success [[env pass_through] output]))))
+ {#try.Success output}
+ {#try.Success [[env pass_through] output]})))
(def: (label idx)
(-> Nat Code)
@@ -146,11 +146,11 @@
(case (//.result poly
[(dictionary.has current_id [type g!var] env)
inputs])
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [[_ inputs'] output])
- (#try.Success [[env inputs'] [g!var output]])))))
+ {#try.Success [[_ inputs'] output]}
+ {#try.Success [[env inputs'] [g!var output]]}))))
(template [<name> <flattener> <tag> <exception>]
[(`` (def: .public (<name> poly)
@@ -192,8 +192,8 @@
(recur (++ current_arg)
(|> env'
(dictionary.has funcI [headT funcL])
- (dictionary.has (++ funcI) [(#.Parameter (++ funcI)) varL]))
- (#.Item varL all_varsL)))
+ (dictionary.has (++ funcI) [{#.Parameter (++ funcI)} varL]))
+ {#.Item varL all_varsL}))
(let [partialI (|> current_arg (n.* 2) (n.+ funcI))
partial_varI (++ partialI)
partial_varL (label partial_varI)
@@ -203,8 +203,8 @@
(recur (++ current_arg)
(|> env'
(dictionary.has partialI [(|recursion_dummy|) partialC])
- (dictionary.has partial_varI [(#.Parameter partial_varI) partial_varL]))
- (#.Item partial_varL all_varsL))))
+ (dictionary.has partial_varI [{#.Parameter partial_varI} partial_varL]))
+ {#.Item partial_varL all_varsL})))
[all_varsL env']))]]
(<| (with_env env')
(local (list non_poly))
@@ -229,7 +229,7 @@
.let [[funcT paramsT] (type.flat_application (type.anonymous headT))]]
(if (n.= 0 (list.size paramsT))
(//.failure (exception.error ..not_application headT))
- (..local (#.Item funcT paramsT) poly))))
+ (..local {#.Item funcT paramsT} poly))))
(template [<name> <test>]
[(def: .public (<name> expected)
@@ -258,9 +258,9 @@
[env ..env
headT any]
(case headT
- (#.Parameter idx)
+ {#.Parameter idx}
(case (dictionary.value (adjusted_idx env idx) env)
- (#.Some [poly_type poly_code])
+ {#.Some [poly_type poly_code]}
(in poly_code)
#.None
@@ -275,10 +275,10 @@
[env ..env
headT any]
(case headT
- (#.Parameter idx)
+ {#.Parameter idx}
(if (n.= id (adjusted_idx env idx))
(in [])
- (//.failure (exception.error ..wrong_parameter [(#.Parameter id) headT])))
+ (//.failure (exception.error ..wrong_parameter [{#.Parameter id} headT])))
_
(//.failure (exception.error ..not_parameter headT)))))
@@ -288,7 +288,7 @@
(do //.monad
[headT any]
(case headT
- (#.Ex ex_id)
+ {#.Ex ex_id}
(in ex_id)
_
@@ -299,7 +299,7 @@
(do //.monad
[inputT any]
(case inputT
- (#.Named name anonymousT)
+ {#.Named name anonymousT}
(in [name anonymousT])
_
@@ -310,7 +310,7 @@
(do [! //.monad]
[headT any]
(case (type.anonymous headT)
- (^ (#.Apply (|recursion_dummy|) (#.UnivQ _ headT')))
+ (^ {#.Apply (|recursion_dummy|) {#.UnivQ _ headT'}})
(do !
[[recT _ output] (|> poly
(with_extension (|recursion_dummy|))
@@ -327,9 +327,9 @@
[env ..env
headT any]
(case (type.anonymous headT)
- (^multi (^ (#.Apply (|recursion_dummy|) (#.Parameter funcT_idx)))
+ (^multi (^ {#.Apply (|recursion_dummy|) {#.Parameter funcT_idx}})
(n.= 0 (adjusted_idx env funcT_idx))
- [(dictionary.value 0 env) (#.Some [self_type self_call])])
+ [(dictionary.value 0 env) {#.Some [self_type self_call]}])
(in self_call)
_
diff --git a/stdlib/source/library/lux/control/parser/xml.lux b/stdlib/source/library/lux/control/parser/xml.lux
index a54e68170..6a1eb1206 100644
--- a/stdlib/source/library/lux/control/parser/xml.lux
+++ b/stdlib/source/library/lux/control/parser/xml.lux
@@ -42,13 +42,13 @@
(def: (result' parser attrs documents)
(All (_ a) (-> (Parser a) Attrs (List XML) (Try a)))
(case (//.result parser [attrs documents])
- (#try.Success [[attrs' remaining] output])
+ {#try.Success [[attrs' remaining] output]}
(if (list.empty? remaining)
- (#try.Success output)
+ {#try.Success output}
(exception.except ..unconsumed_inputs remaining))
- (#try.Failure error)
- (#try.Failure error)))
+ {#try.Failure error}
+ {#try.Failure error}))
(def: .public (result parser documents)
(All (_ a) (-> (Parser a) (List XML) (Try a)))
@@ -61,12 +61,12 @@
#.End
(exception.except ..empty_input [])
- (#.Item head tail)
+ {#.Item head tail}
(case head
- (#/.Text value)
- (#try.Success [[attrs tail] value])
+ {#/.Text value}
+ {#try.Success [[attrs tail] value]}
- (#/.Node _)
+ {#/.Node _}
(exception.except ..unexpected_input [])))))
(def: .public tag
@@ -76,13 +76,13 @@
#.End
(exception.except ..empty_input [])
- (#.Item head _)
+ {#.Item head _}
(case head
- (#/.Text _)
+ {#/.Text _}
(exception.except ..unexpected_input [])
- (#/.Node tag _ _)
- (#try.Success [[attrs documents] tag])))))
+ {#/.Node tag _ _}
+ {#try.Success [[attrs documents] tag]}))))
(def: .public (attribute name)
(-> Attribute (Parser Text))
@@ -91,8 +91,8 @@
#.None
(exception.except ..unknown_attribute [name (dictionary.keys attrs)])
- (#.Some value)
- (#try.Success [[attrs documents] value]))))
+ {#.Some value}
+ {#try.Success [[attrs documents] value]})))
(def: .public (node expected parser)
(All (_ a) (-> Tag (Parser a) (Parser a)))
@@ -101,12 +101,12 @@
#.End
(exception.except ..empty_input [])
- (#.Item head tail)
+ {#.Item head tail}
(case head
- (#/.Text _)
+ {#/.Text _}
(exception.except ..unexpected_input [])
- (#/.Node actual attrs' children)
+ {#/.Node actual attrs' children}
(if (name\= expected actual)
(|> children
(..result' parser attrs')
@@ -120,8 +120,8 @@
#.End
(exception.except ..empty_input [])
- (#.Item head tail)
- (#try.Success [[attrs tail] head]))))
+ {#.Item head tail}
+ {#try.Success [[attrs tail] head]})))
(exception: .public nowhere)
@@ -129,16 +129,16 @@
(All (_ a) (-> (Parser a) (Parser a)))
(function (recur [attrs input])
(case (//.result parser [attrs input])
- (#try.Success [[attrs remaining] output])
- (#try.Success [[attrs remaining] output])
+ {#try.Success [[attrs remaining] output]}
+ {#try.Success [[attrs remaining] output]}
- (#try.Failure error)
+ {#try.Failure error}
(case input
#.End
(exception.except ..nowhere [])
- (#.Item head tail)
+ {#.Item head tail}
(do try.monad
[[[attrs tail'] output] (recur [attrs tail])]
- (in [[attrs (#.Item head tail')]
+ (in [[attrs {#.Item head tail'}]
output]))))))
diff --git a/stdlib/source/library/lux/control/pipe.lux b/stdlib/source/library/lux/control/pipe.lux
index 9c3c5ce36..2f9c81229 100644
--- a/stdlib/source/library/lux/control/pipe.lux
+++ b/stdlib/source/library/lux/control/pipe.lux
@@ -37,7 +37,7 @@
(def: _reversed_
(Parser Any)
(function (_ tokens)
- (#try.Success [(list.reversed tokens) []])))
+ {#try.Success [(list.reversed tokens) []]}))
(syntax: .public (cond> [_ _reversed_
prev <code>.any
diff --git a/stdlib/source/library/lux/control/region.lux b/stdlib/source/library/lux/control/region.lux
index 58f406e3a..934daf578 100644
--- a/stdlib/source/library/lux/control/region.lux
+++ b/stdlib/source/library/lux/control/region.lux
@@ -35,20 +35,20 @@
output (Try a)])
(format error
(case output
- (#try.Success _)
+ {#try.Success _}
""
- (#try.Failure error|output)
+ {#try.Failure error|output}
(format separator
error|output))))
(def: (clean clean_up output)
(All (_ a) (-> (Try Any) (Try a) (Try a)))
(case clean_up
- (#try.Success _)
+ {#try.Success _}
output
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..clean_up_error [error output])))
(def: .public (run! monad computation)
@@ -65,9 +65,9 @@
(All (_ ! a) (-> (Monad !) (-> a (! (Try Any))) a
(All (_ r) (Region r ! a))))
(function (_ [region cleaners])
- (\ monad in [(#.Item (function (_ region) (cleaner value))
- cleaners)
- (#try.Success value)])))
+ (\ monad in [{#.Item (function (_ region) (cleaner value))
+ cleaners}
+ {#try.Success value}])))
(implementation: .public (functor super)
(All (_ !)
@@ -80,11 +80,11 @@
(\ super each
(function (_ [cleaners' temp])
[cleaners' (case temp
- (#try.Success value)
- (#try.Success (f value))
+ {#try.Success value}
+ {#try.Success (f value)}
- (#try.Failure error)
- (#try.Failure error))])
+ {#try.Failure error}
+ {#try.Failure error})])
(fa region+cleaners))))))
(implementation: .public (apply super)
@@ -101,16 +101,16 @@
[[cleaners ef] (ff [region cleaners])
[cleaners ea] (fa [region cleaners])]
(case ef
- (#try.Success f)
+ {#try.Success f}
(case ea
- (#try.Success a)
- (in [cleaners (#try.Success (f a))])
+ {#try.Success a}
+ (in [cleaners {#try.Success (f a)}])
- (#try.Failure error)
- (in [cleaners (#try.Failure error)]))
+ {#try.Failure error}
+ (in [cleaners {#try.Failure error}]))
- (#try.Failure error)
- (in [cleaners (#try.Failure error)]))))))
+ {#try.Failure error}
+ (in [cleaners {#try.Failure error}]))))))
(implementation: .public (monad super)
(All (_ !)
@@ -122,25 +122,25 @@
(def: (in value)
(function (_ [region cleaners])
- (\ super in [cleaners (#try.Success value)])))
+ (\ super in [cleaners {#try.Success value}])))
(def: (conjoint ffa)
(function (_ [region cleaners])
(do super
[[cleaners efa] (ffa [region cleaners])]
(case efa
- (#try.Success fa)
+ {#try.Success fa}
(fa [region cleaners])
- (#try.Failure error)
- (in [cleaners (#try.Failure error)]))))))
+ {#try.Failure error}
+ (in [cleaners {#try.Failure error}]))))))
(def: .public (failure monad error)
(All (_ ! a)
(-> (Monad !) Text
(All (_ r) (Region r ! a))))
(function (_ [region cleaners])
- (\ monad in [cleaners (#try.Failure error)])))
+ (\ monad in [cleaners {#try.Failure error}])))
(def: .public (except monad exception message)
(All (_ ! e a)
@@ -154,5 +154,5 @@
(All (_ r) (Region r ! a))))
(function (_ [region cleaners])
(\ monad each
- (|>> #try.Success [cleaners])
+ (|>> {#try.Success} [cleaners])
operation)))
diff --git a/stdlib/source/library/lux/control/remember.lux b/stdlib/source/library/lux/control/remember.lux
index b2db48900..dcf7c1c8b 100644
--- a/stdlib/source/library/lux/control/remember.lux
+++ b/stdlib/source/library/lux/control/remember.lux
@@ -30,7 +30,7 @@
["Today" (%.date today)]
["Message" message]
["Code" (case focus
- (#.Some focus)
+ {#.Some focus}
(%.code focus)
#.None
@@ -44,10 +44,10 @@
(do <>.monad
[raw <c>.text]
(case (\ date.codec decoded raw)
- (#try.Success date)
+ {#try.Success date}
(in date)
- (#try.Failure message)
+ {#try.Failure message}
(<>.failure message)))))
(syntax: .public (remember [deadline ..deadline
@@ -57,7 +57,7 @@
today (instant.date now)]
(if (date\< deadline today)
(in (case focus
- (#.Some focus)
+ {#.Some focus}
(list focus)
#.None
@@ -71,7 +71,7 @@
(in (list (` (..remember (~ (code.text (%.date deadline)))
(~ (code.text (format <message> " " message)))
(~+ (case focus
- (#.Some focus)
+ {#.Some focus}
(list focus)
#.None
diff --git a/stdlib/source/library/lux/control/try.lux b/stdlib/source/library/lux/control/try.lux
index 16d58007c..b18a38dd8 100644
--- a/stdlib/source/library/lux/control/try.lux
+++ b/stdlib/source/library/lux/control/try.lux
@@ -11,19 +11,19 @@
(type: .public (Try a)
(Variant
- (#Failure Text)
- (#Success a)))
+ {#Failure Text}
+ {#Success a}))
(implementation: .public functor
(Functor Try)
(def: (each f ma)
(case ma
- (#Failure msg)
- (#Failure msg)
+ {#Failure msg}
+ {#Failure msg}
- (#Success datum)
- (#Success (f datum)))))
+ {#Success datum}
+ {#Success (f datum)})))
(implementation: .public apply
(Apply Try)
@@ -32,16 +32,16 @@
(def: (on fa ff)
(case ff
- (#Success f)
+ {#Success f}
(case fa
- (#Success a)
- (#Success (f a))
+ {#Success a}
+ {#Success (f a)}
- (#Failure msg)
- (#Failure msg))
+ {#Failure msg}
+ {#Failure msg})
- (#Failure msg)
- (#Failure msg))))
+ {#Failure msg}
+ {#Failure msg})))
(implementation: .public monad
(Monad Try)
@@ -49,14 +49,14 @@
(def: &functor ..functor)
(def: (in a)
- (#Success a))
+ {#Success a})
(def: (conjoint mma)
(case mma
- (#Failure msg)
- (#Failure msg)
+ {#Failure msg}
+ {#Failure msg}
- (#Success ma)
+ {#Success ma}
ma)))
(implementation: .public (with monad)
@@ -74,10 +74,10 @@
(do monad
[eMea MeMea]
(case eMea
- (#Failure try)
- (in (#Failure try))
+ {#Failure try}
+ (in {#Failure try})
- (#Success Mea)
+ {#Success Mea}
Mea))))
(def: .public (lifted monad)
@@ -89,10 +89,10 @@
(def: (= reference sample)
(case [reference sample]
- [(#Success reference) (#Success sample)]
+ [{#Success reference} {#Success sample}]
(_\= reference sample)
- [(#Failure reference) (#Failure sample)]
+ [{#Failure reference} {#Failure sample}]
("lux text =" reference sample)
_
@@ -103,42 +103,42 @@
(All (_ a)
(-> (Try a) a))
(case try
- (#Success value)
+ {#Success value}
value
- (#Failure message)
+ {#Failure message}
(panic! message)))
(def: .public (maybe try)
(All (_ a)
(-> (Try a) (Maybe a)))
(case try
- (#Success value)
- (#.Some value)
+ {#Success value}
+ {#.Some value}
- (#Failure message)
+ {#Failure message}
#.None))
(def: .public (of_maybe maybe)
(All (_ a)
(-> (Maybe a) (Try a)))
(case maybe
- (#.Some value)
- (#Success value)
+ {#.Some value}
+ {#Success value}
#.None
- (#Failure (`` (("lux in-module" (~~ (static .prelude_module)) .name\encoded)
- (name_of ..of_maybe))))))
+ {#Failure (`` (("lux in-module" (~~ (static .prelude_module)) .name\encoded)
+ (name_of ..of_maybe)))}))
(macro: .public (else tokens compiler)
(case tokens
(^ (list else try))
- (#Success [compiler (list (` (case (~ try)
- (#..Success (~' g!temp))
+ {#Success [compiler (list (` (case (~ try)
+ {#..Success (~' g!temp)}
(~' g!temp)
- (#..Failure (~ [location.dummy (#.Identifier ["" ""])]))
- (~ else))))])
+ {#..Failure (~ [location.dummy {#.Identifier ["" ""]}])}
+ (~ else))))]}
_
- (#Failure "Wrong syntax for else")))
+ {#Failure "Wrong syntax for else"}))
diff --git a/stdlib/source/library/lux/control/writer.lux b/stdlib/source/library/lux/control/writer.lux
index 0805da036..6d824d2eb 100644
--- a/stdlib/source/library/lux/control/writer.lux
+++ b/stdlib/source/library/lux/control/writer.lux
@@ -63,7 +63,11 @@
(def: (conjoint MlMla)
(do monad
[[l1 Mla] (for [@.old
- (: ((:parameter 1) (Writer (:parameter 0) ((:parameter 1) (Writer (:parameter 0) (:parameter 2)))))
+ (: {#.Apply (Writer (:parameter 0)
+ {#.Apply (Writer (:parameter 0)
+ (:parameter 2))
+ (:parameter 1)})
+ (:parameter 1)}
MlMla)]
... On new compiler
MlMla)
diff --git a/stdlib/source/library/lux/data/binary.lux b/stdlib/source/library/lux/data/binary.lux
index 33bac997b..e4a07b788 100644
--- a/stdlib/source/library/lux/data/binary.lux
+++ b/stdlib/source/library/lux/data/binary.lux
@@ -198,31 +198,31 @@
(def: .public (read/8! index binary)
(-> Nat Binary (Try I64))
(if (n.< (..!size binary) index)
- (#try.Success (!read index binary))
+ {#try.Success (!read index binary)}
(exception.except ..index_out_of_bounds [(..!size binary) index])))
(def: .public (read/16! index binary)
(-> Nat Binary (Try I64))
(if (n.< (..!size binary) (n.+ 1 index))
- (#try.Success ($_ i64.or
+ {#try.Success ($_ i64.or
(i64.left_shifted 8 (!read index binary))
- (!read (n.+ 1 index) binary)))
+ (!read (n.+ 1 index) binary))}
(exception.except ..index_out_of_bounds [(..!size binary) index])))
(def: .public (read/32! index binary)
(-> Nat Binary (Try I64))
(if (n.< (..!size binary) (n.+ 3 index))
- (#try.Success ($_ i64.or
+ {#try.Success ($_ i64.or
(i64.left_shifted 24 (!read index binary))
(i64.left_shifted 16 (!read (n.+ 1 index) binary))
(i64.left_shifted 8 (!read (n.+ 2 index) binary))
- (!read (n.+ 3 index) binary)))
+ (!read (n.+ 3 index) binary))}
(exception.except ..index_out_of_bounds [(..!size binary) index])))
(def: .public (read/64! index binary)
(-> Nat Binary (Try I64))
(if (n.< (..!size binary) (n.+ 7 index))
- (#try.Success ($_ i64.or
+ {#try.Success ($_ i64.or
(i64.left_shifted 56 (!read index binary))
(i64.left_shifted 48 (!read (n.+ 1 index) binary))
(i64.left_shifted 40 (!read (n.+ 2 index) binary))
@@ -230,32 +230,32 @@
(i64.left_shifted 24 (!read (n.+ 4 index) binary))
(i64.left_shifted 16 (!read (n.+ 5 index) binary))
(i64.left_shifted 8 (!read (n.+ 6 index) binary))
- (!read (n.+ 7 index) binary)))
+ (!read (n.+ 7 index) binary))}
(exception.except ..index_out_of_bounds [(..!size binary) index])))
(def: .public (write/8! index value binary)
(-> Nat (I64 Any) Binary (Try Binary))
(if (n.< (..!size binary) index)
- (#try.Success (|> binary
- (!write index value)))
+ {#try.Success (|> binary
+ (!write index value))}
(exception.except ..index_out_of_bounds [(..!size binary) index])))
(def: .public (write/16! index value binary)
(-> Nat (I64 Any) Binary (Try Binary))
(if (n.< (..!size binary) (n.+ 1 index))
- (#try.Success (|> binary
+ {#try.Success (|> binary
(!write index (i64.right_shifted 8 value))
- (!write (n.+ 1 index) value)))
+ (!write (n.+ 1 index) value))}
(exception.except ..index_out_of_bounds [(..!size binary) index])))
(def: .public (write/32! index value binary)
(-> Nat (I64 Any) Binary (Try Binary))
(if (n.< (..!size binary) (n.+ 3 index))
- (#try.Success (|> binary
+ {#try.Success (|> binary
(!write index (i64.right_shifted 24 value))
(!write (n.+ 1 index) (i64.right_shifted 16 value))
(!write (n.+ 2 index) (i64.right_shifted 8 value))
- (!write (n.+ 3 index) value)))
+ (!write (n.+ 3 index) value))}
(exception.except ..index_out_of_bounds [(..!size binary) index])))
(def: .public (write/64! index value binary)
@@ -270,7 +270,7 @@
(!write (n.+ 6 index) (i64.right_shifted 8 value))
(!write (n.+ 7 index) value))]
(|> binary write_high write_low #try.Success))]
- (#try.Success (|> binary
+ {#try.Success (|> binary
(!write index (i64.right_shifted 56 value))
(!write (n.+ 1 index) (i64.right_shifted 48 value))
(!write (n.+ 2 index) (i64.right_shifted 40 value))
@@ -278,7 +278,7 @@
(!write (n.+ 4 index) (i64.right_shifted 24 value))
(!write (n.+ 5 index) (i64.right_shifted 16 value))
(!write (n.+ 6 index) (i64.right_shifted 8 value))
- (!write (n.+ 7 index) value))))
+ (!write (n.+ 7 index) value))})
(exception.except ..index_out_of_bounds [(..!size binary) index])))
(implementation: .public equivalence
@@ -329,7 +329,7 @@
(!read (n.+ source_offset index) source)
target)
(recur (++ index)))
- (#try.Success target))))))))
+ {#try.Success target})))))))
(def: .public (slice offset length binary)
(-> Nat Nat Binary (Try Binary))
@@ -337,7 +337,7 @@
limit (n.+ length offset)]
(if (n.> size limit)
(exception.except ..slice_out_of_bounds [size offset length])
- (with_expansions [<jvm> (as_is (#try.Success (java/util/Arrays::copyOfRange binary (.int offset) (.int limit))))]
+ (with_expansions [<jvm> (as_is {#try.Success (java/util/Arrays::copyOfRange binary (.int offset) (.int limit))})]
(for [@.old <jvm>
@.jvm <jvm>]
@@ -350,10 +350,10 @@
0 binary
_ (let [distance (n.- bytes (..!size binary))]
(case (..slice bytes distance binary)
- (#try.Success slice)
+ {#try.Success slice}
slice
- (#try.Failure _)
+ {#try.Failure _}
(..empty 0)))))
(implementation: .public monoid
diff --git a/stdlib/source/library/lux/data/bit.lux b/stdlib/source/library/lux/data/bit.lux
index b1926e164..d78777213 100644
--- a/stdlib/source/library/lux/data/bit.lux
+++ b/stdlib/source/library/lux/data/bit.lux
@@ -56,9 +56,9 @@
(def: (decoded input)
(case input
- "#1" (#.Right #1)
- "#0" (#.Right #0)
- _ (#.Left "Wrong syntax for Bit."))))
+ "#1" {#.Right #1}
+ "#0" {#.Right #0}
+ _ {#.Left "Wrong syntax for Bit."})))
(def: .public complement
(All (_ a) (-> (-> a Bit) (-> a Bit)))
diff --git a/stdlib/source/library/lux/data/collection/array.lux b/stdlib/source/library/lux/data/collection/array.lux
index 0bd99245d..31cfc865b 100644
--- a/stdlib/source/library/lux/data/collection/array.lux
+++ b/stdlib/source/library/lux/data/collection/array.lux
@@ -22,7 +22,7 @@
"#Array")
(type: .public (Array a)
- (#.Primitive ..type_name (#.Item a #.End)))
+ {#.Primitive ..type_name {#.Item a #.End}})
(with_expansions [<index_type> (primitive "java.lang.Long")
<elem_type> (primitive "java.lang.Object")
@@ -79,7 +79,7 @@
[(let [output (<read!> index array)]
(if (<null?> output)
#.None
- (#.Some output)))])
+ {#.Some output}))])
(def: .public (read! index array)
(All (_ a)
@@ -89,7 +89,7 @@
(let [value ("jvm aaload" array index)]
(if ("jvm object null?" value)
#.None
- (#.Some value)))
+ {#.Some value}))
@.jvm
(let [value (|> array
@@ -97,7 +97,7 @@
("jvm array read object" (!int index)))]
(if ("jvm object null?" value)
#.None
- (#.Some (:expected value))))
+ {#.Some (:expected value)}))
@.js (!read! "js array read" "js object undefined?")
@.python (!read! "python array read" "python object none?")
@@ -149,7 +149,7 @@
(All (_ a)
(-> Nat (Array a) Bit))
(case (..read! index array)
- (#.Some _)
+ {#.Some _}
true
_
@@ -162,7 +162,7 @@
#.None
array
- (#.Some value)
+ {#.Some value}
(write! index (transform value) array)))
(def: .public (upsert! index default transform array)
@@ -183,7 +183,7 @@
#.None
target
- (#.Some value)
+ {#.Some value}
(write! (n.+ offset dest_start) value target)))
dest_array
(list.indices length))))
@@ -195,7 +195,7 @@
#.None
count
- (#.Some _)
+ {#.Some _}
(++ count)))
0
(list.indices (size array))))
@@ -212,7 +212,7 @@
#.None
xs'
- (#.Some x)
+ {#.Some x}
(if (p x)
xs'
(delete! idx xs'))))
@@ -229,9 +229,9 @@
#.None
(recur (++ idx))
- (#.Some x)
+ {#.Some x}
(if (p x)
- (#.Some x)
+ {#.Some x}
(recur (++ idx))))
#.None))))
@@ -245,9 +245,9 @@
#.None
(recur (++ idx))
- (#.Some x)
+ {#.Some x}
(if (p idx x)
- (#.Some [idx x])
+ {#.Some [idx x]}
(recur (++ idx))))
#.None))))
@@ -259,7 +259,7 @@
#.None
ys
- (#.Some x)
+ {#.Some x}
(write! idx x ys)))
(empty arr_size)
(list.indices arr_size))))
@@ -286,8 +286,8 @@
_
(recur (-- idx)
(case (read! idx array)
- (#.Some head)
- (#.Item head output)
+ {#.Some head}
+ {#.Item head output}
#.None
output)))))
@@ -302,13 +302,13 @@
_
(recur (-- idx)
- (#.Item (maybe.else default (read! idx array))
- output)))))
+ {#.Item (maybe.else default (read! idx array))
+ output}))))
(def: .public (list default array)
(All (_ a) (-> (Maybe a) (Array a) (List a)))
(case default
- (#.Some default)
+ {#.Some default}
(list|+default default array)
#.None
@@ -327,7 +327,7 @@
[#.None #.None]
true
- [(#.Some x) (#.Some y)]
+ [{#.Some x} {#.Some y}]
(,\= x y)
_
@@ -359,7 +359,7 @@
#.None
mb
- (#.Some x)
+ {#.Some x}
(write! idx (f x) mb)))
(empty arr_size)
(list.indices arr_size))
@@ -377,7 +377,7 @@
#.None
(recur so_far (++ idx))
- (#.Some value)
+ {#.Some value}
(recur (f value so_far) (++ idx)))
so_far)))))
@@ -390,7 +390,7 @@
(loop [idx 0]
(if (n.< size idx)
(case (..read! idx array)
- (#.Some value)
+ {#.Some value}
(<op> (predicate value)
(recur (++ idx)))
diff --git a/stdlib/source/library/lux/data/collection/dictionary.lux b/stdlib/source/library/lux/data/collection/dictionary.lux
index 3d7e785f3..bc78d8032 100644
--- a/stdlib/source/library/lux/data/collection/dictionary.lux
+++ b/stdlib/source/library/lux/data/collection/dictionary.lux
@@ -58,11 +58,11 @@
... Dictionaries.
(type: (Node k v)
(Variant
- (#Hierarchy Nat (Array (Node k v)))
- (#Base Bit_Map
- (Array (Either (Node k v)
- [k v])))
- (#Collisions Hash_Code (Array [k v]))))
+ {#Hierarchy Nat (Array (Node k v))}
+ {#Base Bit_Map
+ (Array (Either (Node k v)
+ [k v]))}
+ {#Collisions Hash_Code (Array [k v])}))
... #Hierarchy nodes are meant to point down only to lower-level nodes.
(type: (Hierarchy k v)
@@ -127,7 +127,7 @@
... The cannonical empty node, which is just an empty #Base node.
(def: empty_node
Node
- (#Base clean_bitmap (array.empty 0)))
+ {#Base clean_bitmap (array.empty 0)})
... Expands a copy of the array, to have 1 extra slot, which is used
... for storing the value.
@@ -241,11 +241,11 @@
(let [[bitmap base] node]
(case (array.read! idx h_array)
#.None [insertion_idx node]
- (#.Some sub_node) (if (n.= except_idx idx)
+ {#.Some sub_node} (if (n.= except_idx idx)
[insertion_idx node]
[(++ insertion_idx)
[(with_bit_position (to_bit_position idx) bitmap)
- (array.write! insertion_idx (#.Left sub_node) base)]])
+ (array.write! insertion_idx {#.Left sub_node} base)]])
)))
[0 [clean_bitmap
(array.empty (-- h_size))]]
@@ -268,10 +268,10 @@
bitmap)
[(++ base_idx)
(case (array.read! base_idx base)
- (#.Some (#.Left sub_node))
+ {#.Some {#.Left sub_node}}
(array.write! hierarchy_idx sub_node h_array)
- (#.Some (#.Right [key' val']))
+ {#.Some {#.Right [key' val']}}
(array.write! hierarchy_idx
(node\has (level_up level) (\ key_hash hash key') key' val' key_hash empty_node)
h_array)
@@ -289,7 +289,7 @@
(def: (node\empty? node)
(All (_ k v) (-> (Node k v) Bit))
(`` (case node
- (#Base (~~ (static ..clean_bitmap)) _)
+ {#Base (~~ (static ..clean_bitmap)) _}
#1
_
@@ -300,47 +300,47 @@
(case node
... For #Hierarchy nodes, check whether one can add the element to
... a sub-node. If impossible, introduce a new singleton sub-node.
- (#Hierarchy _size hierarchy)
+ {#Hierarchy _size hierarchy}
(let [idx (level_index level hash)
[_size' sub_node] (case (array.read! idx hierarchy)
- (#.Some sub_node)
+ {#.Some sub_node}
[_size sub_node]
_
[(++ _size) empty_node])]
- (#Hierarchy _size'
- (array\revised idx (node\has (level_up level) hash key val key_hash sub_node)
- hierarchy)))
+ {#Hierarchy _size'
+ (array\revised idx (node\has (level_up level) hash key val key_hash sub_node)
+ hierarchy)})
... For #Base nodes, check if the corresponding Bit_Position has
... already been used.
- (#Base bitmap base)
+ {#Base bitmap base}
(let [bit (level_bit_position level hash)]
(if (with_bit_position? bit bitmap)
... If so...
(let [idx (base_index bit bitmap)]
(case (array.read! idx base)
... If it's being used by a node, add the KV to it.
- (#.Some (#.Left sub_node))
+ {#.Some {#.Left sub_node}}
(let [sub_node' (node\has (level_up level) hash key val key_hash sub_node)]
- (#Base bitmap (array\revised idx (#.Left sub_node') base)))
+ {#Base bitmap (array\revised idx {#.Left sub_node'} base)})
... Otherwise, if it's being used by a KV, compare the keys.
- (#.Some (#.Right key' val'))
+ {#.Some {#.Right key' val'}}
(if (\ key_hash = key key')
... If the same key is found, replace the value.
- (#Base bitmap (array\revised idx (#.Right key val) base))
+ {#Base bitmap (array\revised idx {#.Right key val} base)}
... Otherwise, compare the hashes of the keys.
- (#Base bitmap (array\revised idx
- (#.Left (let [hash' (\ key_hash hash key')]
+ {#Base bitmap (array\revised idx
+ {#.Left (let [hash' (\ key_hash hash key')]
(if (n.= hash hash')
... If the hashes are
... the same, a new
... #Collisions node
... is added.
- (#Collisions hash (|> (array.empty 2)
+ {#Collisions hash (|> (array.empty 2)
(array.write! 0 [key' val'])
- (array.write! 1 [key val])))
+ (array.write! 1 [key val]))}
... Otherwise, one can
... just keep using
... #Base nodes, so
@@ -349,8 +349,8 @@
(let [next_level (level_up level)]
(|> empty_node
(node\has next_level hash' key' val' key_hash)
- (node\has next_level hash key val key_hash))))))
- base)))
+ (node\has next_level hash key val key_hash)))))}
+ base)})
#.None
(undefined)))
@@ -360,35 +360,35 @@
(if (n.< ..promotion_threshold base_count)
... If so, resize the #Base node to accommodate the
... new KV-pair.
- (#Base (with_bit_position bit bitmap)
- (array\has (base_index bit bitmap) (#.Right [key val]) base))
+ {#Base (with_bit_position bit bitmap)
+ (array\has (base_index bit bitmap) {#.Right [key val]} base)}
... Otherwise, promote it to a #Hierarchy node, and add the new
... KV-pair as a singleton node to it.
- (#Hierarchy (++ base_count)
- (|> base
- (promotion node\has key_hash level bitmap)
- (array.write! (level_index level hash)
- (node\has (level_up level) hash key val key_hash empty_node))))))))
+ {#Hierarchy (++ base_count)
+ (|> base
+ (promotion node\has key_hash level bitmap)
+ (array.write! (level_index level hash)
+ (node\has (level_up level) hash key val key_hash empty_node)))}))))
... For #Collisions nodes, compare the hashes.
- (#Collisions _hash _colls)
+ {#Collisions _hash _colls}
(if (n.= hash _hash)
... If they're equal, that means the new KV contributes to the
... collisions.
(case (collision_index key_hash key _colls)
... If the key was already present in the collisions-list, its
... value gets updated.
- (#.Some coll_idx)
- (#Collisions _hash (array\revised coll_idx [key val] _colls))
+ {#.Some coll_idx}
+ {#Collisions _hash (array\revised coll_idx [key val] _colls)}
... Otherwise, the KV-pair is added to the collisions-list.
#.None
- (#Collisions _hash (array\has (array.size _colls) [key val] _colls)))
+ {#Collisions _hash (array\has (array.size _colls) [key val] _colls)})
... If the hashes are not equal, create a new #Base node that
... contains the old #Collisions node, plus the new KV-pair.
- (|> (#Base (level_bit_position level _hash)
- (|> (array.empty 1)
- (array.write! 0 (#.Left node))))
+ (|> {#Base (level_bit_position level _hash)
+ (|> (array.empty 1)
+ (array.write! 0 {#.Left node}))}
(node\has level hash key val key_hash)))
))
@@ -397,7 +397,7 @@
(case node
... For #Hierarchy nodes, find out if there's a valid sub-node for
... the Hash-Code.
- (#Hierarchy h_size h_array)
+ {#Hierarchy h_size h_array}
(let [idx (level_index level hash)]
(case (array.read! idx h_array)
... If not, there's nothing to remove.
@@ -405,7 +405,7 @@
node
... But if there is, try to remove the key from the sub-node.
- (#.Some sub_node)
+ {#.Some sub_node}
(let [sub_node' (node\lacks (level_up level) hash key key_hash sub_node)]
... Then check if a removal was actually done.
(if (same? sub_node sub_node')
@@ -416,22 +416,22 @@
... Check if it's due time for a demotion.
(if (n.> demotion_threshold h_size)
... If so, just clear the space.
- (#Hierarchy (-- h_size) (array\clear idx h_array))
+ {#Hierarchy (-- h_size) (array\clear idx h_array)}
... Otherwise, perform it.
- (#Base (demotion idx [h_size h_array])))
+ {#Base (demotion idx [h_size h_array])})
... But if the sub_removal yielded a non_empty node, then
... just update the hiearchy branch.
- (#Hierarchy h_size (array\revised idx sub_node' h_array)))))))
+ {#Hierarchy h_size (array\revised idx sub_node' h_array)})))))
... For #Base nodes, check whether the Bit_Position is set.
- (#Base bitmap base)
+ {#Base bitmap base}
(let [bit (level_bit_position level hash)]
(if (with_bit_position? bit bitmap)
(let [idx (base_index bit bitmap)]
(case (array.read! idx base)
... If set, check if it's a sub_node, and remove the KV
... from it.
- (#.Some (#.Left sub_node))
+ {#.Some {#.Left sub_node}}
(let [sub_node' (node\lacks (level_up level) hash key key_hash sub_node)]
... Verify that it was removed.
(if (same? sub_node sub_node')
@@ -445,20 +445,20 @@
empty_node
... But if not, then just unset the position and
... remove the node.
- (#Base (without_bit_position bit bitmap)
- (array\lacks idx base)))
+ {#Base (without_bit_position bit bitmap)
+ (array\lacks idx base)})
... But, if it did not come out empty, then the
... position is kept, and the node gets updated.
- (#Base bitmap
- (array\revised idx (#.Left sub_node') base)))))
+ {#Base bitmap
+ (array\revised idx {#.Left sub_node'} base)})))
... If, however, there was a KV-pair instead of a sub-node.
- (#.Some (#.Right [key' val']))
+ {#.Some {#.Right [key' val']}}
... Check if the keys match.
(if (\ key_hash = key key')
... If so, remove the KV-pair and unset the Bit_Position.
- (#Base (without_bit_position bit bitmap)
- (array\lacks idx base))
+ {#Base (without_bit_position bit bitmap)
+ (array\lacks idx base)}
... Otherwise, there's nothing to remove.
node)
@@ -468,42 +468,42 @@
node))
... For #Collisions nodes, It need to find out if the key already existst.
- (#Collisions _hash _colls)
+ {#Collisions _hash _colls}
(case (collision_index key_hash key _colls)
... If not, then there's nothing to remove.
#.None
node
... But if so, then check the size of the collisions list.
- (#.Some idx)
+ {#.Some idx}
(if (n.= 1 (array.size _colls))
... If there's only one left, then removing it leaves us with
... an empty node.
empty_node
... Otherwise, just shrink the array by removing the KV-pair.
- (#Collisions _hash (array\lacks idx _colls))))
+ {#Collisions _hash (array\lacks idx _colls)}))
))
(def: (node\value level hash key key_hash node)
(All (_ k v) (-> Level Hash_Code k (Hash k) (Node k v) (Maybe v)))
(case node
... For #Hierarchy nodes, just look-up the key on its children.
- (#Hierarchy _size hierarchy)
+ {#Hierarchy _size hierarchy}
(case (array.read! (level_index level hash) hierarchy)
#.None #.None
- (#.Some sub_node) (node\value (level_up level) hash key key_hash sub_node))
+ {#.Some sub_node} (node\value (level_up level) hash key key_hash sub_node))
... For #Base nodes, check the leaves, and recursively check the branches.
- (#Base bitmap base)
+ {#Base bitmap base}
(let [bit (level_bit_position level hash)]
(if (with_bit_position? bit bitmap)
(case (array.read! (base_index bit bitmap) base)
- (#.Some (#.Left sub_node))
+ {#.Some {#.Left sub_node}}
(node\value (level_up level) hash key key_hash sub_node)
- (#.Some (#.Right [key' val']))
+ {#.Some {#.Right [key' val']}}
(if (\ key_hash = key key')
- (#.Some val')
+ {#.Some val'}
#.None)
#.None
@@ -511,7 +511,7 @@
#.None))
... For #Collisions nodes, do a linear scan of all the known KV-pairs.
- (#Collisions _hash _colls)
+ {#Collisions _hash _colls}
(\ maybe.monad each product.right
(array.example (|>> product.left (\ key_hash = key))
_colls))
@@ -520,41 +520,41 @@
(def: (node\size node)
(All (_ k v) (-> (Node k v) Nat))
(case node
- (#Hierarchy _size hierarchy)
+ {#Hierarchy _size hierarchy}
(array\mix n.+ 0 (array\each node\size hierarchy))
- (#Base _ base)
+ {#Base _ base}
(array\mix n.+ 0 (array\each (function (_ sub_node')
(case sub_node'
- (#.Left sub_node) (node\size sub_node)
- (#.Right _) 1))
+ {#.Left sub_node} (node\size sub_node)
+ {#.Right _} 1))
base))
- (#Collisions hash colls)
+ {#Collisions hash colls}
(array.size colls)
))
(def: (node\entries node)
(All (_ k v) (-> (Node k v) (List [k v])))
(case node
- (#Hierarchy _size hierarchy)
+ {#Hierarchy _size hierarchy}
(array\mix (function (_ sub_node tail) (list\composite (node\entries sub_node) tail))
#.End
hierarchy)
- (#Base bitmap base)
+ {#Base bitmap base}
(array\mix (function (_ branch tail)
(case branch
- (#.Left sub_node)
+ {#.Left sub_node}
(list\composite (node\entries sub_node) tail)
- (#.Right [key' val'])
- (#.Item [key' val'] tail)))
+ {#.Right [key' val']}
+ {#.Item [key' val'] tail}))
#.End
base)
- (#Collisions hash colls)
- (array\mix (function (_ [key' val'] tail) (#.Item [key' val'] tail))
+ {#Collisions hash colls}
+ (array\mix (function (_ [key' val'] tail) {#.Item [key' val'] tail})
#.End
colls)))
@@ -591,15 +591,15 @@
(All (_ k v) (-> (Dictionary k v) k Bit))
(case (value key dict)
#.None #0
- (#.Some _) #1))
+ {#.Some _} #1))
(exception: .public key_already_exists)
(def: .public (has' key val dict)
(All (_ k v) (-> k v (Dictionary k v) (Try (Dictionary k v))))
(case (value key dict)
- #.None (#try.Success (has key val dict))
- (#.Some _) (exception.except ..key_already_exists [])))
+ #.None {#try.Success (has key val dict)}
+ {#.Some _} (exception.except ..key_already_exists [])))
(def: .public (revised key f dict)
(All (_ k v) (-> k (-> v v) (Dictionary k v) (Dictionary k v)))
@@ -607,7 +607,7 @@
#.None
dict
- (#.Some val)
+ {#.Some val}
(has key (f val) dict)))
(def: .public (revised' key default f dict)
@@ -641,7 +641,7 @@
(All (_ k v) (-> (Dictionary k v) (List <side>)))
(|>> ..entries
(list\mix (function (_ [k v] bundle)
- (#.Item <side> bundle))
+ {#.Item <side> bundle})
#.End)))]
[k keys]
@@ -661,7 +661,7 @@
#.None
(has key val2 dict)
- (#.Some val1)
+ {#.Some val1}
(has key (f val2 val1) dict)))
dict1
(entries dict2)))
@@ -672,7 +672,7 @@
#.None
dict
- (#.Some val)
+ {#.Some val}
(|> dict
(lacks from_key)
(has to_key val))))
@@ -683,7 +683,7 @@
(list\mix (function (_ key new_dict)
(case (value key dict)
#.None new_dict
- (#.Some val) (has key val new_dict)))
+ {#.Some val} (has key val new_dict)))
(empty key_hash)
keys)))
@@ -695,7 +695,7 @@
(..size subject))
(list.every? (function (_ [k rv])
(case (..value k subject)
- (#.Some sv)
+ {#.Some sv}
(,\= rv sv)
_
@@ -707,23 +707,23 @@
(def: (each f fa)
(case fa
- (#Hierarchy size hierarchy)
- (#Hierarchy size (array\each (each f) hierarchy))
+ {#Hierarchy size hierarchy}
+ {#Hierarchy size (array\each (each f) hierarchy)}
- (#Base bitmap base)
- (#Base bitmap (array\each (function (_ either)
+ {#Base bitmap base}
+ {#Base bitmap (array\each (function (_ either)
(case either
- (#.Left fa')
- (#.Left (each f fa'))
+ {#.Left fa'}
+ {#.Left (each f fa')}
- (#.Right [k v])
- (#.Right [k (f v)])))
- base))
+ {#.Right [k v]}
+ {#.Right [k (f v)]}))
+ base)}
- (#Collisions hash collisions)
- (#Collisions hash (array\each (function (_ [k v])
+ {#Collisions hash collisions}
+ {#Collisions hash (array\each (function (_ [k v])
[k (f v)])
- collisions)))))
+ collisions)})))
(implementation: .public functor
(All (_ k) (Functor (Dictionary k)))
diff --git a/stdlib/source/library/lux/data/collection/dictionary/ordered.lux b/stdlib/source/library/lux/data/collection/dictionary/ordered.lux
index 857683d40..d6376e88b 100644
--- a/stdlib/source/library/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/library/lux/data/collection/dictionary/ordered.lux
@@ -65,11 +65,11 @@
#.None
#.None
- (#.Some node)
+ {#.Some node}
(let [node_key (value@ #key node)]
(cond (\ dict = node_key key)
... (_\= node_key key)
- (#.Some (value@ #value node))
+ {#.Some (value@ #value node)}
(\ dict < node_key key)
... (_\< node_key key)
@@ -90,7 +90,7 @@
#.None
#0
- (#.Some node)
+ {#.Some node}
(let [node_key (value@ #key node)]
(or (\ dict = node_key key)
... (_\= node_key key)
@@ -106,13 +106,13 @@
#.None
#.None
- (#.Some node)
+ {#.Some node}
(loop [node node]
(case (value@ <side> node)
#.None
- (#.Some (value@ #value node))
+ {#.Some (value@ #value node)}
- (#.Some side)
+ {#.Some side}
(recur side)))))]
[min #left]
@@ -126,7 +126,7 @@
#.None
0
- (#.Some node)
+ {#.Some node}
(++ (n.+ (recur (value@ #left node))
(recur (value@ #right node)))))))
@@ -155,42 +155,42 @@
#Red
(red (value@ #key center)
(value@ #value center)
- (#.Some addition)
+ {#.Some addition}
(value@ #right center))
#Black
(with_expansions
[<default_behavior> (as_is (black (value@ #key center)
(value@ #value center)
- (#.Some addition)
+ {#.Some addition}
(value@ #right center)))]
(case (value@ #color addition)
#Red
(case (value@ #left addition)
- (^multi (#.Some left)
+ (^multi {#.Some left}
[(value@ #color left) #Red])
(red (value@ #key addition)
(value@ #value addition)
- (#.Some (blackened left))
- (#.Some (black (value@ #key center)
+ {#.Some (blackened left)}
+ {#.Some (black (value@ #key center)
(value@ #value center)
(value@ #right addition)
- (value@ #right center))))
+ (value@ #right center))})
_
(case (value@ #right addition)
- (^multi (#.Some right)
+ (^multi {#.Some right}
[(value@ #color right) #Red])
(red (value@ #key right)
(value@ #value right)
- (#.Some (black (value@ #key addition)
+ {#.Some (black (value@ #key addition)
(value@ #value addition)
(value@ #left addition)
- (value@ #left right)))
- (#.Some (black (value@ #key center)
+ (value@ #left right))}
+ {#.Some (black (value@ #key center)
(value@ #value center)
(value@ #right right)
- (value@ #right center))))
+ (value@ #right center))})
_
<default_behavior>))
@@ -205,41 +205,41 @@
(red (value@ #key center)
(value@ #value center)
(value@ #left center)
- (#.Some addition))
+ {#.Some addition})
#Black
(with_expansions
[<default_behavior> (as_is (black (value@ #key center)
(value@ #value center)
(value@ #left center)
- (#.Some addition)))]
+ {#.Some addition}))]
(case (value@ #color addition)
#Red
(case (value@ #right addition)
- (^multi (#.Some right)
+ (^multi {#.Some right}
[(value@ #color right) #Red])
(red (value@ #key addition)
(value@ #value addition)
- (#.Some (black (value@ #key center)
+ {#.Some (black (value@ #key center)
(value@ #value center)
(value@ #left center)
- (value@ #left addition)))
- (#.Some (blackened right)))
+ (value@ #left addition))}
+ {#.Some (blackened right)})
_
(case (value@ #left addition)
- (^multi (#.Some left)
+ (^multi {#.Some left}
[(value@ #color left) #Red])
(red (value@ #key left)
(value@ #value left)
- (#.Some (black (value@ #key center)
+ {#.Some (black (value@ #key center)
(value@ #value center)
(value@ #left center)
- (value@ #left left)))
- (#.Some (black (value@ #key addition)
+ (value@ #left left))}
+ {#.Some (black (value@ #key addition)
(value@ #value addition)
(value@ #right left)
- (value@ #right addition))))
+ (value@ #right addition))})
_
<default_behavior>))
@@ -253,9 +253,9 @@
root' (loop [?root (value@ #root dict)]
(case ?root
#.None
- (#.Some (red key value #.None #.None))
+ {#.Some (red key value #.None #.None)}
- (#.Some root)
+ {#.Some root}
(let [reference (value@ #key root)]
(`` (cond (~~ (template [<comp> <tag> <add>]
[(<comp> reference key)
@@ -263,15 +263,15 @@
outcome (recur side_root)]
(if (same? side_root outcome)
?root
- (#.Some (<add> (maybe.trusted outcome)
- root))))]
+ {#.Some (<add> (maybe.trusted outcome)
+ root)}))]
[_\< #left ..with_left]
[(order.> (value@ #&order dict)) #right ..with_right]
))
... (_\= reference key)
- (#.Some (with@ #value value root))
+ {#.Some (with@ #value value root)}
)))
))]
(with@ #root root' dict)))
@@ -279,28 +279,28 @@
(def: (left_balanced key value ?left ?right)
(All (_ k v) (-> k v (Maybe (Node k v)) (Maybe (Node k v)) (Node k v)))
(case ?left
- (^multi (#.Some left)
+ (^multi {#.Some left}
[(value@ #color left) #Red]
- [(value@ #left left) (#.Some left>>left)]
+ [(value@ #left left) {#.Some left>>left}]
[(value@ #color left>>left) #Red])
(red (value@ #key left)
(value@ #value left)
- (#.Some (blackened left>>left))
- (#.Some (black key value (value@ #right left) ?right)))
+ {#.Some (blackened left>>left)}
+ {#.Some (black key value (value@ #right left) ?right)})
- (^multi (#.Some left)
+ (^multi {#.Some left}
[(value@ #color left) #Red]
- [(value@ #right left) (#.Some left>>right)]
+ [(value@ #right left) {#.Some left>>right}]
[(value@ #color left>>right) #Red])
(red (value@ #key left>>right)
(value@ #value left>>right)
- (#.Some (black (value@ #key left)
+ {#.Some (black (value@ #key left)
(value@ #value left)
(value@ #left left)
- (value@ #left left>>right)))
- (#.Some (black key value
+ (value@ #left left>>right))}
+ {#.Some (black key value
(value@ #right left>>right)
- ?right)))
+ ?right)})
_
(black key value ?left ?right)))
@@ -308,26 +308,26 @@
(def: (right_balanced key value ?left ?right)
(All (_ k v) (-> k v (Maybe (Node k v)) (Maybe (Node k v)) (Node k v)))
(case ?right
- (^multi (#.Some right)
+ (^multi {#.Some right}
[(value@ #color right) #Red]
- [(value@ #right right) (#.Some right>>right)]
+ [(value@ #right right) {#.Some right>>right}]
[(value@ #color right>>right) #Red])
(red (value@ #key right)
(value@ #value right)
- (#.Some (black key value ?left (value@ #left right)))
- (#.Some (blackened right>>right)))
+ {#.Some (black key value ?left (value@ #left right))}
+ {#.Some (blackened right>>right)})
- (^multi (#.Some right)
+ (^multi {#.Some right}
[(value@ #color right) #Red]
- [(value@ #left right) (#.Some right>>left)]
+ [(value@ #left right) {#.Some right>>left}]
[(value@ #color right>>left) #Red])
(red (value@ #key right>>left)
(value@ #value right>>left)
- (#.Some (black key value ?left (value@ #left right>>left)))
- (#.Some (black (value@ #key right)
+ {#.Some (black key value ?left (value@ #left right>>left))}
+ {#.Some (black (value@ #key right)
(value@ #value right)
(value@ #right right>>left)
- (value@ #right right))))
+ (value@ #right right))})
_
(black key value ?left ?right)))
@@ -335,27 +335,27 @@
(def: (without_left key value ?left ?right)
(All (_ k v) (-> k v (Maybe (Node k v)) (Maybe (Node k v)) (Node k v)))
(case ?left
- (^multi (#.Some left)
+ (^multi {#.Some left}
[(value@ #color left) #Red])
- (red key value (#.Some (blackened left)) ?right)
+ (red key value {#.Some (blackened left)} ?right)
_
(case ?right
- (^multi (#.Some right)
+ (^multi {#.Some right}
[(value@ #color right) #Black])
- (right_balanced key value ?left (#.Some (reddened right)))
+ (right_balanced key value ?left {#.Some (reddened right)})
- (^multi (#.Some right)
+ (^multi {#.Some right}
[(value@ #color right) #Red]
- [(value@ #left right) (#.Some right>>left)]
+ [(value@ #left right) {#.Some right>>left}]
[(value@ #color right>>left) #Black])
(red (value@ #key right>>left)
(value@ #value right>>left)
- (#.Some (black key value ?left (value@ #left right>>left)))
- (#.Some (right_balanced (value@ #key right)
+ {#.Some (black key value ?left (value@ #left right>>left))}
+ {#.Some (right_balanced (value@ #key right)
(value@ #value right)
(value@ #right right>>left)
- (\ maybe.functor each reddened (value@ #right right)))))
+ (\ maybe.functor each reddened (value@ #right right)))})
_
(panic! error_message))
@@ -364,27 +364,27 @@
(def: (without_right key value ?left ?right)
(All (_ k v) (-> k v (Maybe (Node k v)) (Maybe (Node k v)) (Node k v)))
(case ?right
- (^multi (#.Some right)
+ (^multi {#.Some right}
[(value@ #color right) #Red])
- (red key value ?left (#.Some (blackened right)))
+ (red key value ?left {#.Some (blackened right)})
_
(case ?left
- (^multi (#.Some left)
+ (^multi {#.Some left}
[(value@ #color left) #Black])
- (left_balanced key value (#.Some (reddened left)) ?right)
+ (left_balanced key value {#.Some (reddened left)} ?right)
- (^multi (#.Some left)
+ (^multi {#.Some left}
[(value@ #color left) #Red]
- [(value@ #right left) (#.Some left>>right)]
+ [(value@ #right left) {#.Some left>>right}]
[(value@ #color left>>right) #Black])
(red (value@ #key left>>right)
(value@ #value left>>right)
- (#.Some (left_balanced (value@ #key left)
+ {#.Some (left_balanced (value@ #key left)
(value@ #value left)
(\ maybe.functor each reddened (value@ #left left))
- (value@ #left left>>right)))
- (#.Some (black key value (value@ #right left>>right) ?right)))
+ (value@ #left left>>right))}
+ {#.Some (black key value (value@ #right left>>right) ?right)})
_
(panic! error_message)
@@ -399,7 +399,7 @@
[_ #.None]
?left
- [(#.Some left) (#.Some right)]
+ [{#.Some left} {#.Some right}]
(case [(value@ #color left) (value@ #color right)]
[#Red #Red]
(do maybe.monad
@@ -408,37 +408,37 @@
#Red
(in (red (value@ #key fused)
(value@ #value fused)
- (#.Some (red (value@ #key left)
+ {#.Some (red (value@ #key left)
(value@ #value left)
(value@ #left left)
- (value@ #left fused)))
- (#.Some (red (value@ #key right)
+ (value@ #left fused))}
+ {#.Some (red (value@ #key right)
(value@ #value right)
(value@ #right fused)
- (value@ #right right)))))
+ (value@ #right right))}))
#Black
(in (red (value@ #key left)
(value@ #value left)
(value@ #left left)
- (#.Some (red (value@ #key right)
+ {#.Some (red (value@ #key right)
(value@ #value right)
- (#.Some fused)
- (value@ #right right)))))))
+ {#.Some fused}
+ (value@ #right right))}))))
[#Red #Black]
- (#.Some (red (value@ #key left)
+ {#.Some (red (value@ #key left)
(value@ #value left)
(value@ #left left)
(prepended (value@ #right left)
- ?right)))
+ ?right))}
[#Black #Red]
- (#.Some (red (value@ #key right)
+ {#.Some (red (value@ #key right)
(value@ #value right)
(prepended ?left
(value@ #left right))
- (value@ #right right)))
+ (value@ #right right))}
[#Black #Black]
(do maybe.monad
@@ -447,23 +447,23 @@
#Red
(in (red (value@ #key fused)
(value@ #value fused)
- (#.Some (black (value@ #key left)
+ {#.Some (black (value@ #key left)
(value@ #value left)
(value@ #left left)
- (value@ #left fused)))
- (#.Some (black (value@ #key right)
+ (value@ #left fused))}
+ {#.Some (black (value@ #key right)
(value@ #value right)
(value@ #right fused)
- (value@ #right right)))))
+ (value@ #right right))}))
#Black
(in (without_left (value@ #key left)
(value@ #value left)
(value@ #left left)
- (#.Some (black (value@ #key right)
+ {#.Some (black (value@ #key right)
(value@ #value right)
- (#.Some fused)
- (value@ #right right)))))
+ {#.Some fused}
+ (value@ #right right))}))
))
)
@@ -478,7 +478,7 @@
#.None
[#.None #0]
- (#.Some root)
+ {#.Some root}
(let [root_key (value@ #key root)
root_val (value@ #value root)]
(if (_\= root_key key)
@@ -495,22 +495,22 @@
[side_outcome _]
(if go_left?
(case (value@ #left root)
- (^multi (#.Some left)
+ (^multi {#.Some left}
[(value@ #color left) #Black])
- [(#.Some (without_left root_key root_val side_outcome (value@ #right root)))
+ [{#.Some (without_left root_key root_val side_outcome (value@ #right root))}
#0]
_
- [(#.Some (red root_key root_val side_outcome (value@ #right root)))
+ [{#.Some (red root_key root_val side_outcome (value@ #right root))}
#0])
(case (value@ #right root)
- (^multi (#.Some right)
+ (^multi {#.Some right}
[(value@ #color right) #Black])
- [(#.Some (without_right root_key root_val (value@ #left root) side_outcome))
+ [{#.Some (without_right root_key root_val (value@ #left root) side_outcome)}
#0]
_
- [(#.Some (red root_key root_val (value@ #left root) side_outcome))
+ [{#.Some (red root_key root_val (value@ #left root) side_outcome)}
#0])
)))
))
@@ -521,14 +521,14 @@
(with@ #root ?root dict)
dict)
- (#.Some root)
- (with@ #root (#.Some (blackened root)) dict)
+ {#.Some root}
+ (with@ #root {#.Some (blackened root)} dict)
)))
(def: .public (revised key transform dict)
(All (_ k v) (-> k (-> v v) (Dictionary k v) (Dictionary k v)))
(case (..value key dict)
- (#.Some old)
+ {#.Some old}
(..has key (transform old) dict)
#.None
@@ -549,7 +549,7 @@
#.None
(list)
- (#.Some node')
+ {#.Some node'}
($_ list\composite
(recur (value@ #left node'))
(list <output>)
@@ -571,7 +571,7 @@
[#.End #.End]
#1
- [(#.Item [keyR valueR] entriesR') (#.Item [keyS valueS] entriesS')]
+ [{#.Item [keyR valueR] entriesR'} {#.Item [keyS valueS] entriesS'}]
(and (/\= keyR keyS)
(,\= valueR valueS)
(recur entriesR' entriesS'))
diff --git a/stdlib/source/library/lux/data/collection/dictionary/plist.lux b/stdlib/source/library/lux/data/collection/dictionary/plist.lux
index 9bd4665df..85fec4622 100644
--- a/stdlib/source/library/lux/data/collection/dictionary/plist.lux
+++ b/stdlib/source/library/lux/data/collection/dictionary/plist.lux
@@ -34,9 +34,9 @@
#.End
#.None
- (#.Item [k' v'] properties')
+ {#.Item [k' v'] properties'}
(if (text\= key k')
- (#.Some v')
+ {#.Some v'}
(value key properties'))))
(template [<name> <type> <access>]
@@ -51,7 +51,7 @@
(def: .public (contains? key properties)
(All (_ a) (-> Text (PList a) Bit))
(case (..value key properties)
- (#.Some _)
+ {#.Some _}
true
#.None
@@ -63,12 +63,12 @@
#.End
(list [key val])
- (#.Item [k' v'] properties')
+ {#.Item [k' v'] properties'}
(if (text\= key k')
- (#.Item [key val]
- properties')
- (#.Item [k' v']
- (has key val properties')))))
+ {#.Item [key val]
+ properties'}
+ {#.Item [k' v']
+ (has key val properties')})))
(def: .public (revised key f properties)
(All (_ a) (-> Text (-> a a) (PList a) (PList a)))
@@ -76,10 +76,10 @@
#.End
#.End
- (#.Item [k' v'] properties')
+ {#.Item [k' v'] properties'}
(if (text\= key k')
- (#.Item [k' (f v')] properties')
- (#.Item [k' v'] (revised key f properties')))))
+ {#.Item [k' (f v')] properties'}
+ {#.Item [k' v'] (revised key f properties')})))
(def: .public (lacks key properties)
(All (_ a) (-> Text (PList a) (PList a)))
@@ -87,11 +87,11 @@
#.End
properties
- (#.Item [k' v'] properties')
+ {#.Item [k' v'] properties'}
(if (text\= key k')
properties'
- (#.Item [k' v']
- (lacks key properties')))))
+ {#.Item [k' v']
+ (lacks key properties')})))
(def: .public equivalence
(All (_ a) (-> (Equivalence a) (Equivalence (PList a))))
diff --git a/stdlib/source/library/lux/data/collection/list.lux b/stdlib/source/library/lux/data/collection/list.lux
index 286290c96..5c630614b 100644
--- a/stdlib/source/library/lux/data/collection/list.lux
+++ b/stdlib/source/library/lux/data/collection/list.lux
@@ -21,7 +21,7 @@
... (type: (List a)
... #End
-... (#Item a (List a)))
+... {#Item a (List a)})
(implementation: .public mix
(Mix List)
@@ -31,7 +31,7 @@
#.End
init
- (#.Item x xs')
+ {#.Item x xs'}
(mix f (f x init) xs'))))
(def: .public (mixes f init inputs)
@@ -40,13 +40,13 @@
#.End
(list init)
- (#.Item [head tail])
- (#.Item [init (mixes f (f head init) tail)])))
+ {#.Item [head tail]}
+ {#.Item [init (mixes f (f head init) tail)]}))
(def: .public (reversed xs)
(All (_ a)
(-> (List a) (List a)))
- (mix (function (_ head tail) (#.Item head tail))
+ (mix (function (_ head tail) {#.Item head tail})
#.End
xs))
@@ -57,9 +57,9 @@
#.End
#.End
- (#.Item x xs')
+ {#.Item x xs'}
(if (keep? x)
- (#.Item x (only keep? xs'))
+ {#.Item x (only keep? xs')}
(only keep? xs'))))
(def: .public (partition satisfies? list)
@@ -68,17 +68,17 @@
#.End
[#.End #.End]
- (#.Item head tail)
+ {#.Item head tail}
(let [[in out] (partition satisfies? tail)]
(if (satisfies? head)
- [(#.Item head in) out]
- [in (#.Item head out)]))))
+ [{#.Item head in} out]
+ [in {#.Item head out}]))))
(def: .public (pairs xs)
(All (_ a) (-> (List a) (List [a a])))
(case xs
(^ (list& x1 x2 xs'))
- (#.Item [x1 x2] (pairs xs'))
+ {#.Item [x1 x2] (pairs xs')}
_
#.End))
@@ -92,11 +92,11 @@
#.End
#.End
- (#.Item x xs')
+ {#.Item x xs'}
<then>)
<else>))]
- [first (#.Item x (first (-- n) xs')) #.End]
+ [first {#.Item x (first (-- n) xs')} #.End]
[after (after (-- n) xs') xs]
)
@@ -108,12 +108,12 @@
#.End
#.End
- (#.Item x xs')
+ {#.Item x xs'}
(if (predicate x)
<then>
<else>)))]
- [while (#.Item x (while predicate xs')) #.End]
+ [while {#.Item x (while predicate xs')} #.End]
[until (until predicate xs') xs]
)
@@ -125,9 +125,9 @@
#.End
[#.End #.End]
- (#.Item x xs')
+ {#.Item x xs'}
(let [[tail rest] (split_at (-- n) xs')]
- [(#.Item x tail) rest]))
+ [{#.Item x tail} rest]))
[#.End xs]))
(def: (split_when' predicate ys xs)
@@ -137,10 +137,10 @@
#.End
[ys xs]
- (#.Item x xs')
+ {#.Item x xs'}
(if (predicate x)
[ys xs]
- (split_when' predicate (#.Item x ys) xs'))))
+ (split_when' predicate {#.Item x ys} xs'))))
(def: .public (split_when predicate xs)
(All (_ a)
@@ -156,21 +156,21 @@
_
(let [[pre post] (split_at size list)]
- (#.Item pre (sub size post)))))
+ {#.Item pre (sub size post)})))
(def: .public (repeated n x)
(All (_ a)
(-> Nat a (List a)))
(case n
0 #.End
- _ (#.Item x (repeated (-- n) x))))
+ _ {#.Item x (repeated (-- n) x)}))
(def: (iterations' f x)
(All (_ a)
(-> (-> a (Maybe a)) a (List a)))
(case (f x)
- (#.Some x')
- (#.Item x (iterations' f x'))
+ {#.Some x'}
+ {#.Item x (iterations' f x')}
#.None
(list)))
@@ -179,8 +179,8 @@
(All (_ a)
(-> (-> a (Maybe a)) a (List a)))
(case (f x)
- (#.Some x')
- (#.Item x (iterations' f x'))
+ {#.Some x'}
+ {#.Item x (iterations' f x')}
#.None
(list x)))
@@ -192,10 +192,10 @@
#.End
#.None
- (#.Item x xs')
+ {#.Item x xs'}
(case (check x)
- (#.Some output)
- (#.Some output)
+ {#.Some output}
+ {#.Some output}
#.None
(one check xs'))))
@@ -207,8 +207,8 @@
@.js
(mix (function (_ head tail)
(case (check head)
- (#.Some head)
- (#.Item head tail)
+ {#.Some head}
+ {#.Item head tail}
#.None
tail))
@@ -218,10 +218,10 @@
#.End
#.End
- (#.Item x xs')
+ {#.Item x xs'}
(case (check x)
- (#.Some output)
- (#.Item output (all check xs'))
+ {#.Some output}
+ {#.Item output (all check xs')}
#.None
(all check xs')))))
@@ -231,7 +231,7 @@
(-> (Predicate a) (List a) (Maybe a)))
(..one (function (_ value)
(if (predicate value)
- (#.Some value)
+ {#.Some value}
#.None))
xs))
@@ -242,10 +242,10 @@
#.End
xs
- (#.Item x #.End)
+ {#.Item x #.End}
xs
- (#.Item x xs')
+ {#.Item x xs'}
(list& x sep (interposed sep xs'))))
(def: .public (size list)
@@ -260,7 +260,7 @@
#.End
<init>
- (#.Item head tail)
+ {#.Item head tail}
(<op> (predicate head)
(<name> predicate tail))))]
@@ -275,9 +275,9 @@
#.End
#.None
- (#.Item x xs')
+ {#.Item x xs'}
(case i
- 0 (#.Some x)
+ 0 {#.Some x}
_ (item (-- i) xs'))))
(implementation: .public (equivalence Equivalence<a>)
@@ -288,7 +288,7 @@
[#.End #.End]
#1
- [(#.Item x xs') (#.Item y ys')]
+ [{#.Item x xs'} {#.Item y ys'}]
(and (\ Equivalence<a> = x y)
(= xs' ys'))
@@ -317,8 +317,8 @@
#.End
ys
- (#.Item x xs')
- (#.Item x (composite xs' ys)))))
+ {#.Item x xs'}
+ {#.Item x (composite xs' ys)})))
(open: "[0]" ..monoid)
@@ -330,8 +330,8 @@
#.End
#.End
- (#.Item a ma')
- (#.Item (f a) (each f ma')))))
+ {#.Item a ma'}
+ {#.Item (f a) (each f ma')})))
(open: "[0]" ..functor)
@@ -345,7 +345,7 @@
#.End
#.End
- (#.Item f ff')
+ {#.Item f ff'}
(|> ff'
(on fa)
(composite (each f fa))))))
@@ -356,7 +356,7 @@
(def: &functor ..functor)
(def: (in a)
- (#.Item a #.End))
+ {#.Item a #.End})
(def: conjoint
(|>> reversed (mix composite identity))))
@@ -367,11 +367,11 @@
#.End
(list)
- (#.Item x xs')
+ {#.Item x xs'}
(let [[pre post] (mix (function (_ x' [pre post])
(if (< x x')
- [(#.Item x' pre) post]
- [pre (#.Item x' post)]))
+ [{#.Item x' pre} post]
+ [pre {#.Item x' post}]))
[(list) (list)]
xs')]
($_ composite (sorted < pre) (list x) (sorted < post)))))
@@ -391,7 +391,7 @@
#.End
#0
- (#.Item x' xs')
+ {#.Item x' xs'}
(or (\ eq = x x')
(member? eq xs' x))))
@@ -402,8 +402,8 @@
#.End
#.None
- (#.Item x xs')
- (#.Some <side>)))]
+ {#.Item x xs'}
+ {#.Some <side>}))]
[head a x]
[tail (List a) xs']
@@ -417,7 +417,7 @@
(def: (identifier$ name)
(-> Text Code)
- [["" 0 0] (#.Identifier "" name)])
+ [["" 0 0] {#.Identifier "" name}])
(def: (nat\encoded value)
(-> Nat Text)
@@ -443,7 +443,7 @@
(macro: .public (zipped tokens state)
(case tokens
- (^ (list [_ (#.Nat num_lists)]))
+ (^ (list [_ {#.Nat num_lists}]))
(if (n.> 0 num_lists)
(let [(^open "[0]") ..functor
indices (..indices num_lists)
@@ -458,7 +458,7 @@
(let [base (nat\encoded idx)]
[(identifier$ base)
(identifier$ ("lux text concat" base "'"))]))))
- pattern (` [(~+ (each (function (_ [v vs]) (` (#.Item (~ v) (~ vs))))
+ pattern (` [(~+ (each (function (_ [v vs]) (` {#.Item (~ v) (~ vs)}))
vars+lists))])
g!step (identifier$ "0step0")
g!blank (identifier$ "0,0")
@@ -467,23 +467,23 @@
(function ((~ g!step) (~+ list_vars))
(case [(~+ list_vars)]
(~ pattern)
- (#.Item [(~+ (each product.left vars+lists))]
- ((~ g!step) (~+ list_vars)))
+ {#.Item [(~+ (each product.left vars+lists))]
+ ((~ g!step) (~+ list_vars))}
(~ g!blank)
#.End))))]
- (#.Right [state (list code)]))
- (#.Left "Cannot zipped 0 lists."))
+ {#.Right [state (list code)]})
+ {#.Left "Cannot zipped 0 lists."})
_
- (#.Left "Wrong syntax for zipped")))
+ {#.Left "Wrong syntax for zipped"}))
(def: .public zipped/2 (zipped 2))
(def: .public zipped/3 (zipped 3))
(macro: .public (zipped_with tokens state)
(case tokens
- (^ (list [_ (#.Nat num_lists)]))
+ (^ (list [_ {#.Nat num_lists}]))
(if (n.> 0 num_lists)
(let [(^open "[0]") ..functor
indices (..indices num_lists)
@@ -501,7 +501,7 @@
(let [base (nat\encoded idx)]
[(identifier$ base)
(identifier$ ("lux text concat" base "'"))]))))
- pattern (` [(~+ (each (function (_ [v vs]) (` (#.Item (~ v) (~ vs))))
+ pattern (` [(~+ (each (function (_ [v vs]) (` {#.Item (~ v) (~ vs)}))
vars+lists))])
g!step (identifier$ "0step0")
g!blank (identifier$ "0,0")
@@ -510,16 +510,16 @@
(function ((~ g!step) (~ g!func) (~+ list_vars))
(case [(~+ list_vars)]
(~ pattern)
- (#.Item ((~ g!func) (~+ (each product.left vars+lists)))
- ((~ g!step) (~ g!func) (~+ list_vars)))
+ {#.Item ((~ g!func) (~+ (each product.left vars+lists)))
+ ((~ g!step) (~ g!func) (~+ list_vars))}
(~ g!blank)
#.End))))]
- (#.Right [state (list code)]))
- (#.Left "Cannot zipped_with 0 lists."))
+ {#.Right [state (list code)]})
+ {#.Left "Cannot zipped_with 0 lists."})
_
- (#.Left "Wrong syntax for zipped_with")))
+ {#.Left "Wrong syntax for zipped_with"}))
(def: .public zipped_with/2 (zipped_with 2))
(def: .public zipped_with/3 (zipped_with 3))
@@ -530,10 +530,10 @@
#.End
#.None
- (#.Item x #.End)
- (#.Some x)
+ {#.Item x #.End}
+ {#.Some x}
- (#.Item x xs')
+ {#.Item x xs'}
(last xs')))
(def: .public (inits xs)
@@ -542,16 +542,16 @@
#.End
#.None
- (#.Item x #.End)
- (#.Some #.End)
+ {#.Item x #.End}
+ {#.Some #.End}
- (#.Item x xs')
+ {#.Item x xs'}
(case (inits xs')
#.None
(undefined)
- (#.Some tail)
- (#.Some (#.Item x tail)))
+ {#.Some tail}
+ {#.Some {#.Item x tail}})
))
(def: .public together
@@ -573,7 +573,9 @@
[lMla MlMla
... TODO: Remove this version ASAP and use one below.
lla (for [@.old
- (: ((:parameter 0) (List (List (:parameter 1))))
+ (: {#.Apply
+ (type (List (List (:parameter 1))))
+ (:parameter 0)}
(monad.all ! lMla))]
(monad.all ! lMla))]
(in (..together lla)))))
@@ -590,15 +592,15 @@
#.End
#.End
- (#.Item x xs')
- (#.Item [idx x] (recur (++ idx) xs')))))
+ {#.Item x xs'}
+ {#.Item [idx x] (recur (++ idx) xs')})))
(macro: .public (when tokens state)
(case tokens
(^ (.list test then))
- (#.Right [state (.list (` (.if (~ test)
+ {#.Right [state (.list (` (.if (~ test)
(~ then)
- (.list))))])
+ (.list))))]}
_
- (#.Left "Wrong syntax for when")))
+ {#.Left "Wrong syntax for when"}))
diff --git a/stdlib/source/library/lux/data/collection/queue.lux b/stdlib/source/library/lux/data/collection/queue.lux
index 3e3bd9e87..7a52a1e9f 100644
--- a/stdlib/source/library/lux/data/collection/queue.lux
+++ b/stdlib/source/library/lux/data/collection/queue.lux
@@ -76,7 +76,7 @@
(with@ #front (.list val) queue)
_
- (revised@ #rear (|>> (#.Item val)) queue)))
+ (revised@ #rear (|>> {#.Item val}) queue)))
(implementation: .public (equivalence super)
(All (_ a) (-> (Equivalence a) (Equivalence (Queue a))))
diff --git a/stdlib/source/library/lux/data/collection/queue/priority.lux b/stdlib/source/library/lux/data/collection/queue/priority.lux
index 28f1f135f..6e56b4b1c 100644
--- a/stdlib/source/library/lux/data/collection/queue/priority.lux
+++ b/stdlib/source/library/lux/data/collection/queue/priority.lux
@@ -57,13 +57,13 @@
#.None
0
- (#.Some tree)
+ {#.Some tree}
(loop [node tree]
(case (tree.root node)
- (0 #0 _)
+ {0 #0 _}
1
- (0 #1 [left right])
+ {0 #1 [left right]}
(n.+ (recur left) (recur right))))))
(def: .public (member? equivalence queue member)
@@ -72,13 +72,13 @@
#.None
false
- (#.Some tree)
+ {#.Some tree}
(loop [node tree]
(case (tree.root node)
- (0 #0 reference)
+ {0 #0 reference}
(\ equivalence = reference member)
- (0 #1 [left right])
+ {0 #1 [left right]}
(or (recur left)
(recur right))))))
@@ -90,25 +90,25 @@
.let [highest_priority (tree.tag tree)]]
(loop [node tree]
(case (tree.root node)
- (0 #0 reference)
+ {0 #0 reference}
(if (n.= highest_priority (tree.tag node))
#.None
- (#.Some node))
+ {#.Some node})
- (0 #1 left right)
+ {0 #1 left right}
(if (n.= highest_priority (tree.tag left))
(case (recur left)
#.None
- (#.Some right)
+ {#.Some right}
- (#.Some =left)
- (#.Some (\ ..builder branch =left right)))
+ {#.Some =left}
+ {#.Some (\ ..builder branch =left right)})
(case (recur right)
#.None
- (#.Some left)
+ {#.Some left}
- (#.Some =right)
- (#.Some (\ ..builder branch left =right)))))))))
+ {#.Some =right}
+ {#.Some (\ ..builder branch left =right)})))))))
(def: .public (end priority value queue)
(All (_ a) (-> Priority a (Queue a) (Queue a)))
@@ -116,10 +116,10 @@
(:abstraction
(case (:representation queue)
#.None
- (#.Some addition)
+ {#.Some addition}
- (#.Some tree)
- (#.Some (\ ..builder branch tree addition))))))]
+ {#.Some tree}
+ {#.Some (\ ..builder branch tree addition)}))))]
)
(def: .public empty?
diff --git a/stdlib/source/library/lux/data/collection/row.lux b/stdlib/source/library/lux/data/collection/row.lux
index 728a67ce4..aa8c6d0f7 100644
--- a/stdlib/source/library/lux/data/collection/row.lux
+++ b/stdlib/source/library/lux/data/collection/row.lux
@@ -34,8 +34,8 @@
(type: (Node a)
(Variant
- (#Base (Array a))
- (#Hierarchy (Array (Node a)))))
+ {#Base (Array a)}
+ {#Hierarchy (Array (Node a))}))
(type: (Base a)
(Array a))
@@ -93,7 +93,7 @@
(def: (path level tail)
(All (_ a) (-> Level (Base a) (Node a)))
(if (n.= 0 level)
- (#Base tail)
+ {#Base tail}
(|> (empty_hierarchy [])
(array.write! 0 (path (level_down level) tail))
#Hierarchy)))
@@ -109,15 +109,15 @@
... If we're currently on a bottom node
sub_node (if (n.= branching_exponent level)
... Just add the tail to it
- (#Base tail)
+ {#Base tail}
... Otherwise, check whether there's a vacant spot
(case (array.read! sub_idx parent)
... If so, set the path to the tail
#.None
(..path (level_down level) tail)
... If not, push the tail onto the sub_node.
- (#.Some (#Hierarchy sub_node))
- (#Hierarchy (with_tail size (level_down level) tail sub_node))
+ {#.Some {#Hierarchy sub_node}}
+ {#Hierarchy (with_tail size (level_down level) tail sub_node)}
_
(undefined))
@@ -136,11 +136,11 @@
(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))
+ {#.Some {#Hierarchy sub_node}}
(|> (array.clone hierarchy)
- (array.write! sub_idx (#Hierarchy (hierarchy\has (level_down level) idx val sub_node))))
+ (array.write! sub_idx {#Hierarchy (hierarchy\has (level_down level) idx val sub_node)}))
- (^multi (#.Some (#Base base))
+ (^multi {#.Some {#Base base}}
(n.= 0 (level_down level)))
(|> (array.clone hierarchy)
(array.write! sub_idx (|> (array.clone base)
@@ -160,13 +160,13 @@
(do maybe.monad
[base|hierarchy (array.read! sub_idx hierarchy)
sub (case base|hierarchy
- (#Hierarchy sub)
+ {#Hierarchy sub}
(without_tail size (level_down level) sub)
- (#Base _)
+ {#Base _}
(undefined))]
(|> (array.clone hierarchy)
- (array.write! sub_idx (#Hierarchy sub))
+ (array.write! sub_idx {#Hierarchy sub})
#.Some))
... Else...
@@ -178,10 +178,10 @@
(def: (node\list node)
(All (_ a) (-> (Node a) (List a)))
(case node
- (#Base base)
+ {#Base base}
(array.list #.None base)
- (#Hierarchy hierarchy)
+ {#Hierarchy hierarchy}
(|> hierarchy
(array.list #.None)
list.reversed
@@ -228,7 +228,7 @@
(: (Hierarchy (:parameter 0))
(empty_hierarchy []))]
(empty_hierarchy []))
- (array.write! 0 (#Hierarchy (value@ #root row)))
+ (array.write! 0 {#Hierarchy (value@ #root row)})
(array.write! 1 (..path (value@ #level row) (value@ #tail row)))))
(revised@ #level level_up))
... Otherwise, just push the current tail onto the root.
@@ -261,18 +261,18 @@
hierarchy (value@ #root row)]
(case [(n.> branching_exponent level)
(array.read! (branch_idx (i64.right_shifted level idx)) hierarchy)]
- [#1 (#.Some (#Hierarchy sub))]
+ [#1 {#.Some {#Hierarchy sub}}]
(recur (level_down level) sub)
- [#0 (#.Some (#Base base))]
- (#try.Success base)
+ [#0 {#.Some {#Base base}}]
+ {#try.Success base}
[_ #.None]
(exception.except ..base_was_not_found [])
_
(exception.except ..incorrect_row_structure [])))
- (#try.Success (value@ #tail row)))
+ {#try.Success (value@ #tail row)})
(exception.except ..index_out_of_bounds [row idx])))
(def: .public (item idx row)
@@ -280,8 +280,8 @@
(do try.monad
[base (base_for idx row)]
(case (array.read! (branch_idx idx) base)
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(exception.except ..incorrect_row_structure []))))
@@ -290,14 +290,14 @@
(All (_ a) (-> Nat a (Row a) (Try (Row a))))
(let [row_size (value@ #size row)]
(if (within_bounds? row idx)
- (#try.Success (if (n.< (tail_off row_size) idx)
+ {#try.Success (if (n.< (tail_off row_size) idx)
(revised@ #root (hierarchy\has (value@ #level row) idx val)
row)
(revised@ #tail (for [@.old
(: (-> (Base (:parameter 0)) (Base (:parameter 0)))
(|>> array.clone (array.write! (branch_idx idx) val)))]
(|>> array.clone (array.write! (branch_idx idx) val)))
- row)))
+ row))}
(exception.except ..index_out_of_bounds [row idx]))))
(def: .public (revised idx f row)
@@ -332,10 +332,10 @@
(without_tail row_size init_level (value@ #root row)))]
(if (n.> branching_exponent level)
(case [(array.read! 1 root) (array.read! 0 root)]
- [#.None (#.Some (#Hierarchy sub_node))]
+ [#.None {#.Some {#Hierarchy sub_node}}]
(recur (level_down level) sub_node)
- ... [#.None (#.Some (#Base _))]
+ ... [#.None {#.Some {#Base _}}]
... (undefined)
_
@@ -350,8 +350,8 @@
(def: .public (list row)
(All (_ a) (-> (Row a) (List a)))
- (list\composite (node\list (#Hierarchy (value@ #root row)))
- (node\list (#Base (value@ #tail row)))))
+ (list\composite (node\list {#Hierarchy (value@ #root row)})
+ (node\list {#Base (value@ #tail row)})))
(def: .public of_list
(All (_ a) (-> (List a) (Row a)))
@@ -373,10 +373,10 @@
(def: (= v1 v2)
(case [v1 v2]
- [(#Base b1) (#Base b2)]
+ [{#Base b1} {#Base b2}]
(\ (array.equivalence Equivalence<a>) = b1 b2)
- [(#Hierarchy h1) (#Hierarchy h2)]
+ [{#Hierarchy h1} {#Hierarchy h2}]
(\ (array.equivalence (node_equivalence Equivalence<a>)) = h1 h2)
_
@@ -388,20 +388,20 @@
(def: (= v1 v2)
(and (n.= (value@ #size v1) (value@ #size v2))
(let [(^open "node\[0]") (node_equivalence Equivalence<a>)]
- (and (node\= (#Base (value@ #tail v1))
- (#Base (value@ #tail v2)))
- (node\= (#Hierarchy (value@ #root v1))
- (#Hierarchy (value@ #root v2))))))))
+ (and (node\= {#Base (value@ #tail v1)}
+ {#Base (value@ #tail v2)})
+ (node\= {#Hierarchy (value@ #root v1)}
+ {#Hierarchy (value@ #root v2)}))))))
(implementation: node_mix
(Mix Node)
(def: (mix f init xs)
(case xs
- (#Base base)
+ {#Base base}
(array\mix f init base)
- (#Hierarchy hierarchy)
+ {#Hierarchy hierarchy}
(array\mix (function (_ node init') (mix f init' node))
init
hierarchy))))
@@ -414,8 +414,8 @@
(mix f
(mix f
init
- (#Hierarchy (value@ #root xs)))
- (#Base (value@ #tail xs))))))
+ {#Hierarchy (value@ #root xs)})
+ {#Base (value@ #tail xs)}))))
(implementation: .public monoid
(All (_ a) (Monoid (Row a)))
@@ -430,11 +430,11 @@
(def: (each f xs)
(case xs
- (#Base base)
- (#Base (array\each f base))
+ {#Base base}
+ {#Base (array\each f base)}
- (#Hierarchy hierarchy)
- (#Hierarchy (array\each (each f) hierarchy)))))
+ {#Hierarchy hierarchy}
+ {#Hierarchy (array\each (each f) hierarchy)})))
(implementation: .public functor
(Functor Row)
@@ -485,15 +485,15 @@
(-> (Predicate a) (Node a) Bit))
(function (help predicate node)
(case node
- (#Base base)
+ {#Base base}
(<array> predicate base)
- (#Hierarchy hierarchy)
+ {#Hierarchy hierarchy}
(<array> (help predicate) hierarchy))))]
(function (<name> predicate row)
(let [(^slots [#root #tail]) row]
- (<op> (help predicate (#Hierarchy root))
- (help predicate (#Base tail)))))))]
+ (<op> (help predicate {#Hierarchy root})
+ (help predicate {#Base tail}))))))]
[every? array.every? #1 and]
[any? array.any? #0 or]
diff --git a/stdlib/source/library/lux/data/collection/sequence.lux b/stdlib/source/library/lux/data/collection/sequence.lux
index a641721c8..6e4e0b801 100644
--- a/stdlib/source/library/lux/data/collection/sequence.lux
+++ b/stdlib/source/library/lux/data/collection/sequence.lux
@@ -42,7 +42,7 @@
#.End
(recur start next)
- (#.Item head' tail')
+ {#.Item head' tail'}
(recur head' tail'))])))
(template [<name> <return>]
@@ -91,7 +91,7 @@
(if <pred_test>
[(list) xs]
(let [[tail next] (<splitter> <pred_step> xs')]
- [(#.Item [x tail]) next]))))]
+ [{#.Item [x tail]} next]))))]
[split_when (-> a Bit) (pred x) pred]
[split_at Nat (n.= 0 pred) (-- pred)]
diff --git a/stdlib/source/library/lux/data/collection/set/multi.lux b/stdlib/source/library/lux/data/collection/set/multi.lux
index cd36648eb..89baa8935 100644
--- a/stdlib/source/library/lux/data/collection/set/multi.lux
+++ b/stdlib/source/library/lux/data/collection/set/multi.lux
@@ -43,7 +43,7 @@
(case multiplicity
0 set
_ (case (dictionary.value elem (:representation set))
- (#.Some current)
+ {#.Some current}
(:abstraction
(if (n.> multiplicity current)
(dictionary.revised elem (n.- multiplicity) (:representation set))
diff --git a/stdlib/source/library/lux/data/collection/stack.lux b/stdlib/source/library/lux/data/collection/stack.lux
index feb2d2805..87925a89a 100644
--- a/stdlib/source/library/lux/data/collection/stack.lux
+++ b/stdlib/source/library/lux/data/collection/stack.lux
@@ -31,8 +31,8 @@
#.End
#.None
- (#.Item value _)
- (#.Some value)))
+ {#.Item value _}
+ {#.Some value}))
(def: .public (next stack)
(All (_ a) (-> (Stack a) (Maybe [a (Stack a)])))
@@ -40,12 +40,12 @@
#.End
#.None
- (#.Item top stack')
- (#.Some [top (:abstraction stack')])))
+ {#.Item top stack'}
+ {#.Some [top (:abstraction stack')]}))
(def: .public (top value stack)
(All (_ a) (-> a (Stack a) (Stack a)))
- (:abstraction (#.Item value (:representation stack))))
+ (:abstraction {#.Item value (:representation stack)}))
(implementation: .public (equivalence super)
(All (_ a)
diff --git a/stdlib/source/library/lux/data/collection/tree.lux b/stdlib/source/library/lux/data/collection/tree.lux
index 96d92ac6d..281e9f2ed 100644
--- a/stdlib/source/library/lux/data/collection/tree.lux
+++ b/stdlib/source/library/lux/data/collection/tree.lux
@@ -27,7 +27,7 @@
(value@ #children)
(list\each flat)
list\conjoint
- (#.Item (value@ #value tree))))
+ {#.Item (value@ #value tree)}))
(def: .public (leaf value)
(All (_ a) (-> a (Tree a)))
diff --git a/stdlib/source/library/lux/data/collection/tree/finger.lux b/stdlib/source/library/lux/data/collection/tree/finger.lux
index b4e042069..c5fc655e8 100644
--- a/stdlib/source/library/lux/data/collection/tree/finger.lux
+++ b/stdlib/source/library/lux/data/collection/tree/finger.lux
@@ -45,40 +45,40 @@
(:abstraction
[#monoid monoid
#tag tag
- #root (0 #0 value)]))
+ #root {0 #0 value}]))
(def: (branch left right)
(:abstraction
[#monoid monoid
#tag (\ monoid composite (..tag left) (..tag right))
- #root (0 #1 [left right])])))
+ #root {0 #1 [left right]}])))
(def: .public (value tree)
(All (_ @ t v) (-> (Tree @ t v) v))
(case (value@ #root (:representation tree))
- (0 #0 value)
+ {0 #0 value}
value
- (0 #1 [left right])
+ {0 #1 [left right]}
(value left)))
(def: .public (tags tree)
(All (_ @ t v) (-> (Tree @ t v) (List t)))
(case (value@ #root (:representation tree))
- (0 #0 value)
+ {0 #0 value}
(list (value@ #tag (:representation tree)))
- (0 #1 [left right])
+ {0 #1 [left right]}
(list\composite (tags left)
(tags right))))
(def: .public (values tree)
(All (_ @ t v) (-> (Tree @ t v) (List v)))
(case (value@ #root (:representation tree))
- (0 #0 value)
+ {0 #0 value}
(list value)
- (0 #1 [left right])
+ {0 #1 [left right]}
(list\composite (values left)
(values right))))
@@ -90,10 +90,10 @@
(loop [_tag tag//identity
_node root]
(case _node
- (0 #0 value)
- (#.Some value)
+ {0 #0 value}
+ {#.Some value}
- (0 #1 [left right])
+ {0 #1 [left right]}
(let [shifted_tag (tag//composite _tag (..tag left))]
(if (predicate shifted_tag)
(recur _tag (value@ #root (:representation left)))
@@ -104,7 +104,7 @@
(def: .public (exists? predicate tree)
(All (_ @ t v) (-> (Predicate t) (Tree @ t v) Bit))
(case (..one predicate tree)
- (#.Some _)
+ {#.Some _}
true
#.None
diff --git a/stdlib/source/library/lux/data/collection/tree/zipper.lux b/stdlib/source/library/lux/data/collection/tree/zipper.lux
index ee7daa341..313a61909 100644
--- a/stdlib/source/library/lux/data/collection/tree/zipper.lux
+++ b/stdlib/source/library/lux/data/collection/tree/zipper.lux
@@ -92,11 +92,11 @@
#.End
#.None
- (#.Item head tail)
- (#.Some [#family (#.Some [#parent (with@ [#node #//.children] (list) zipper)
+ {#.Item head tail}
+ {#.Some [#family {#.Some [#parent (with@ [#node #//.children] (list) zipper)
#lefts #.End
- #rights tail])
- #node head])))
+ #rights tail]}
+ #node head]}))
(def: .public (up zipper)
(All (_ a) (-> (Zipper a) (Maybe (Zipper a))))
@@ -107,33 +107,33 @@
(revised@ #node (: (-> (Tree (:parameter 0))
(Tree (:parameter 0)))
(with@ #//.children (list\composite (list.reversed lefts)
- (#.Item (value@ #node zipper)
- rights))))
+ {#.Item (value@ #node zipper)
+ rights})))
parent)]
(with@ [#node #//.children]
(list\composite (list.reversed lefts)
- (#.Item (value@ #node zipper)
- rights))
+ {#.Item (value@ #node zipper)
+ rights})
parent))))))
(template [<one> <all> <side> <op_side>]
[(def: .public (<one> zipper)
(All (_ a) (-> (Zipper a) (Maybe (Zipper a))))
(case (value@ #family zipper)
- (#.Some family)
+ {#.Some family}
(case (value@ <side> family)
- (#.Item next side')
- (#.Some (for [@.old
- [#family (#.Some (|> family
+ {#.Item next side'}
+ {#.Some (for [@.old
+ [#family {#.Some (|> family
(with@ <side> side')
- (revised@ <op_side> (|>> (#.Item (value@ #node zipper))))))
+ (revised@ <op_side> (|>> {#.Item (value@ #node zipper)})))}
#node next]]
(let [move (: (All (_ a) (-> (List (Tree a)) (Zipper a) (Family Zipper a) (Family Zipper a)))
(function (_ side' zipper)
(|>> (with@ <side> side')
- (revised@ <op_side> (|>> (#.Item (value@ #node zipper)))))))]
- [#family (#.Some (move side' zipper family))
- #node next])))
+ (revised@ <op_side> (|>> {#.Item (value@ #node zipper)})))))]
+ [#family {#.Some (move side' zipper family)}
+ #node next]))}
#.End
#.None)
@@ -147,24 +147,24 @@
#.None
#.None
- (#.Some family)
+ {#.Some family}
(case (list.reversed (value@ <side> family))
#.End
#.None
- (#.Item last prevs)
- (#.Some (for [@.old [#family (#.Some (|> family
+ {#.Item last prevs}
+ {#.Some (for [@.old [#family {#.Some (|> family
(with@ <side> #.End)
- (revised@ <op_side> (|>> (#.Item (value@ #node zipper))
- (list\composite prevs)))))
+ (revised@ <op_side> (|>> {#.Item (value@ #node zipper)}
+ (list\composite prevs))))}
#node last]]
(let [move (: (All (_ a) (-> (List (Tree a)) (Zipper a) (Family Zipper a) (Family Zipper a)))
(function (_ prevs zipper)
(|>> (with@ <side> #.End)
- (revised@ <op_side> (|>> (#.Item (value@ #node zipper))
+ (revised@ <op_side> (|>> {#.Item (value@ #node zipper)}
(list\composite prevs))))))]
- [#family (#.Some (move prevs zipper family))
- #node last]))))))]
+ [#family {#.Some (move prevs zipper family)}
+ #node last]))})))]
[right rightmost #rights #lefts]
[left leftmost #lefts #rights]
@@ -173,14 +173,14 @@
(def: .public (next zipper)
(All (_ a) (-> (Zipper a) (Maybe (Zipper a))))
(case (..down zipper)
- (#.Some forward)
- (#.Some forward)
+ {#.Some forward}
+ {#.Some forward}
#.None
(loop [@ zipper]
(case (..right @)
- (#.Some forward)
- (#.Some forward)
+ {#.Some forward}
+ {#.Some forward}
#.None
(do maybe.monad
@@ -190,12 +190,12 @@
(def: (bottom zipper)
(All (_ a) (-> (Zipper a) (Zipper a)))
(case (..right zipper)
- (#.Some forward)
+ {#.Some forward}
(bottom forward)
#.None
(case (..down zipper)
- (#.Some forward)
+ {#.Some forward}
(bottom forward)
#.None
@@ -207,13 +207,13 @@
#.None
(..up zipper)
- (#.Some backward)
- (#.Some (case (..down backward)
- (#.Some then)
+ {#.Some backward}
+ {#.Some (case (..down backward)
+ {#.Some then}
(..bottom then)
#.None
- backward))))
+ backward)}))
(template [<name> <move>]
[(def: .public (<name> zipper)
@@ -222,13 +222,13 @@
#.None
#.None
- (#.Some @)
+ {#.Some @}
(loop [@ @]
(case (<move> @)
#.None
- (#.Some @)
+ {#.Some @}
- (#.Some @)
+ {#.Some @}
(recur @)))))]
[end ..next]
@@ -241,7 +241,7 @@
#.None
true
- (#.Some _)
+ {#.Some _}
false))
(def: .public (interpose value zipper)
@@ -253,7 +253,7 @@
(def: .public (adopt value zipper)
(All (_ a) (-> a (Zipper a) (Zipper a)))
(revised@ [#node #//.children]
- (|>> (#.Item (//.leaf value)))
+ (|>> {#.Item (//.leaf value)})
zipper))
(def: .public (remove zipper)
@@ -266,7 +266,7 @@
(value@ #rights family)
(value@ #parent family)))
- (#.Item next side)
+ {#.Item next side}
(in (|> zipper
(with@ #family (|> family
(with@ #lefts side)
@@ -280,10 +280,10 @@
#.None
#.None
- (#.Some family)
- (#.Some (with@ #family
- (#.Some (revised@ <side> (|>> (#.Item (//.leaf value))) family))
- zipper))))]
+ {#.Some family}
+ {#.Some (with@ #family
+ {#.Some (revised@ <side> (|>> {#.Item (//.leaf value)}) family)}
+ zipper)}))]
[insert_left #lefts]
[insert_right #rights]
diff --git a/stdlib/source/library/lux/data/format/binary.lux b/stdlib/source/library/lux/data/format/binary.lux
index 234b7a093..0fcc94723 100644
--- a/stdlib/source/library/lux/data/format/binary.lux
+++ b/stdlib/source/library/lux/data/format/binary.lux
@@ -85,7 +85,7 @@
(function (_ altV)
(case altV
(^template [<number> <tag> <writer>]
- [(<tag> caseV)
+ [{<tag> caseV}
(let [[caseS caseT] (<writer> caseV)]
[(.++ caseS)
(function (_ [offset binary])
@@ -233,7 +233,7 @@
(function (_ altV)
(case altV
(^template [<number> <tag> <writer>]
- [(<tag> caseV)
+ [{<tag> caseV}
(let [[caseS caseT] (<writer> caseV)]
[(.++ caseS)
(function (_ [offset binary])
@@ -268,7 +268,7 @@
(function (_ altV)
(case altV
(^template [<number> <tag> <writer>]
- [(<tag> caseV)
+ [{<tag> caseV}
(let [[caseS caseT] (<writer> caseV)]
[(.++ caseS)
(function (_ [offset binary])
diff --git a/stdlib/source/library/lux/data/format/css.lux b/stdlib/source/library/lux/data/format/css.lux
index a0d849ccf..e0c1d1773 100644
--- a/stdlib/source/library/lux/data/format/css.lux
+++ b/stdlib/source/library/lux/data/format/css.lux
@@ -50,7 +50,7 @@
(def: .public (font font)
(-> Font (CSS Special))
(let [with_unicode (case (value@ #/font.unicode_range font)
- (#.Some unicode_range)
+ {#.Some unicode_range}
(let [unicode_range' (format "U+" (\ nat.hex encoded (value@ #/font.start unicode_range))
"-" (\ nat.hex encoded (value@ #/font.end unicode_range)))]
(list ["unicode-range" unicode_range']))
@@ -74,7 +74,7 @@
(-> URL (Maybe Query) (CSS Special))
(:abstraction (format (format "@import url(" (%.text url) ")")
(case query
- (#.Some query)
+ {#.Some query}
(format " " (/query.query query))
#.None
diff --git a/stdlib/source/library/lux/data/format/css/value.lux b/stdlib/source/library/lux/data/format/css/value.lux
index ae4393448..1d5fe95df 100644
--- a/stdlib/source/library/lux/data/format/css/value.lux
+++ b/stdlib/source/library/lux/data/format/css/value.lux
@@ -922,7 +922,7 @@
#.None
(:representation Stop stop)
- (#.Some hint)
+ {#.Some hint}
(format (:representation Hint hint) ..value_separator (:representation Stop stop))))])])
(type: .public (List/1 a)
@@ -1078,7 +1078,7 @@
(Value Image))
(let [after_extent (format "at " (:representation location))
with_extent (case extent
- (#.Some extent)
+ {#.Some extent}
(format (..extent extent) " " after_extent)
#.None
@@ -1158,7 +1158,7 @@
(def: .public (font_family options)
(-> (List Font) (Value Font))
(case options
- (#.Item _)
+ {#.Item _}
(|> options
(list\each ..font_name)
(text.interposed ",")
diff --git a/stdlib/source/library/lux/data/format/html.lux b/stdlib/source/library/lux/data/format/html.lux
index 10cf2c203..7e1a7e322 100644
--- a/stdlib/source/library/lux/data/format/html.lux
+++ b/stdlib/source/library/lux/data/format/html.lux
@@ -41,7 +41,7 @@
#Parent
#Self
#Top
- (#Frame Text)))
+ {#Frame Text}))
(def: (target value)
(-> Target Text)
@@ -50,7 +50,7 @@
#Parent "_parent"
#Self "_self"
#Top "_top"
- (#Frame name) name))
+ {#Frame name} name))
... Properly formats text to ensure no injection can happen on the HTML.
(def: safe
@@ -176,7 +176,7 @@
(-> URL (Maybe Target) Meta)
(let [partial (list ["href" href])
full (case target
- (#.Some target)
+ {#.Some target}
(list& ["target" (..target target)] partial)
#.None
@@ -213,7 +213,7 @@
(def: .public (image source attributes)
(-> URL Attributes Image)
(|> attributes
- (#.Item ["src" source])
+ {#.Item ["src" source]}
(..simple "img")))
(def: .public (svg attributes content)
@@ -267,9 +267,9 @@
(type: .public Shape
(Variant
- (#Rectangle Rectangle)
- (#Circle Circle)
- (#Polygon Polygon)))
+ {#Rectangle Rectangle}
+ {#Circle Circle}
+ {#Polygon Polygon}))
(template [<name> <shape> <type> <format>]
[(def: (<name> attributes shape)
@@ -286,13 +286,13 @@
(def: (area attributes shape)
(-> Attributes Shape (HTML Any))
(case shape
- (#Rectangle rectangle)
+ {#Rectangle rectangle}
(..rectangle attributes rectangle)
- (#Circle circle)
+ {#Circle circle}
(..circle attributes circle)
- (#Polygon polygon)
+ {#Polygon polygon}
(..polygon attributes polygon)))
(def: .public (each attributes areas for)
@@ -303,7 +303,7 @@
#.End
(..empty "map" attributes)
- (#.Item head tail)
+ {#.Item head tail}
(..tag "map" attributes
(list\mix (function.flipped ..and) head tail)))))
@@ -348,7 +348,7 @@
(-> (Maybe Content) Attributes <type> <type>)
(..tag <container_tag> attributes
(case description
- (#.Some description)
+ {#.Some description}
($_ ..and
(..tag <description_tag> (list) description)
content)
@@ -469,7 +469,7 @@
#.End
(..empty "dl" attributes)
- (#.Item head tail)
+ {#.Item head tail}
(..tag "dl" attributes
(list\mix (function.flipped ..and) head tail))))
@@ -527,7 +527,7 @@
#.End
head
- (#.Item first rest)
+ {#.Item first rest}
(..and head
(..table_body
(list\mix (function.flipped ..and) first rest))))
@@ -535,21 +535,21 @@
#.None
content
- (#.Some footer)
+ {#.Some footer}
(..and content
(..table_foot (..table_row footer))))
content (case columns
#.None
content
- (#.Some columns)
+ {#.Some columns}
(..and (..columns_group columns)
content))
content (case caption
#.None
content
- (#.Some caption)
+ {#.Some caption}
(..and (:as HTML caption)
content))]
(..tag "table" attributes
diff --git a/stdlib/source/library/lux/data/format/json.lux b/stdlib/source/library/lux/data/format/json.lux
index 052ce1c18..aa6ef2279 100644
--- a/stdlib/source/library/lux/data/format/json.lux
+++ b/stdlib/source/library/lux/data/format/json.lux
@@ -43,12 +43,12 @@
(type: .public JSON
(Rec JSON
(Variant
- (#Null Null)
- (#Boolean Boolean)
- (#Number Number)
- (#String String)
- (#Array (Row JSON))
- (#Object (Dictionary String JSON)))))
+ {#Null Null}
+ {#Boolean Boolean}
+ {#Number Number}
+ {#String String}
+ {#Array (Row JSON)}
+ {#Object (Dictionary String JSON)})))
(template [<name> <type>]
[(type: .public <name>
@@ -85,26 +85,26 @@
(def: (jsonF token)
(-> JSON Code)
(case token
- (#Null _)
+ {#Null _}
(` #..Null)
(^template [<ctor> <json_tag>]
- [(<json_tag> value)
- (` (<json_tag> (~ (<ctor> value))))])
+ [{<json_tag> value}
+ (` {<json_tag> (~ (<ctor> value))})])
([code.bit #..Boolean]
[code.frac #..Number]
[code.text #..String])
- (#Array members)
- (` (#..Array ((~! row.row) (~+ (row.list (row\each jsonF members))))))
+ {#Array members}
+ (` {#..Array ((~! row.row) (~+ (row.list (row\each jsonF members))))})
- (#Object pairs)
- (` (#..Object ((~! dictionary.of_list)
+ {#Object pairs}
+ (` {#..Object ((~! dictionary.of_list)
(~! text.hash)
(list (~+ (|> pairs
dictionary.entries
(list\each (function (_ [key_name value])
- (` [(~ (code.text key_name)) (~ (jsonF value))])))))))))))
+ (` [(~ (code.text key_name)) (~ (jsonF value))])))))))})))
(syntax: .public (json [token ..jsonP])
(in (list (` (: JSON (~ (jsonF token)))))))
@@ -112,47 +112,47 @@
(def: .public (fields json)
(-> JSON (Try (List String)))
(case json
- (#Object obj)
- (#try.Success (dictionary.keys obj))
+ {#Object obj}
+ {#try.Success (dictionary.keys obj)}
_
- (#try.Failure ($_ text\composite "Cannot get the fields of a non-object."))))
+ {#try.Failure ($_ text\composite "Cannot get the fields of a non-object.")}))
(def: .public (field key json)
(-> String JSON (Try JSON))
(case json
- (#Object obj)
+ {#Object obj}
(case (dictionary.value key obj)
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
- (#try.Failure ($_ text\composite "Missing field '" key "' on object.")))
+ {#try.Failure ($_ text\composite "Missing field '" key "' on object.")})
_
- (#try.Failure ($_ text\composite "Cannot get field '" key "' on a non-object."))))
+ {#try.Failure ($_ text\composite "Cannot get field '" key "' on a non-object.")}))
(def: .public (has key value json)
(-> String JSON JSON (Try JSON))
(case json
- (#Object obj)
- (#try.Success (#Object (dictionary.has key value obj)))
+ {#Object obj}
+ {#try.Success {#Object (dictionary.has key value obj)}}
_
- (#try.Failure ($_ text\composite "Cannot set field '" key "' on a non-object."))))
+ {#try.Failure ($_ text\composite "Cannot set field '" key "' on a non-object.")}))
(template [<name> <tag> <type>]
[(def: .public (<name> key json)
(-> Text JSON (Try <type>))
(case (field key json)
- (#try.Success (<tag> value))
- (#try.Success value)
+ {#try.Success {<tag> value}}
+ {#try.Success value}
- (#try.Success _)
- (#try.Failure ($_ text\composite "Wrong value type at key: " key))
+ {#try.Success _}
+ {#try.Failure ($_ text\composite "Wrong value type at key: " key)}
- (#try.Failure error)
- (#try.Failure error)))]
+ {#try.Failure error}
+ {#try.Failure error}))]
[boolean_field #Boolean Boolean]
[number_field #Number Number]
@@ -170,13 +170,13 @@
#1
(^template [<tag> <struct>]
- [[(<tag> x') (<tag> y')]
+ [[{<tag> x'} {<tag> y'}]
(\ <struct> = x' y')])
([#Boolean bit.equivalence]
[#Number f.equivalence]
[#String text.equivalence])
- [(#Array xs) (#Array ys)]
+ [{#Array xs} {#Array ys}]
(and (n.= (row.size xs) (row.size ys))
(list\mix (function (_ idx prev)
(and prev
@@ -188,13 +188,13 @@
#1
(list.indices (row.size xs))))
- [(#Object xs) (#Object ys)]
+ [{#Object xs} {#Object ys}]
(and (n.= (dictionary.size xs) (dictionary.size ys))
(list\mix (function (_ [xk xv] prev)
(and prev
(case (dictionary.value xk ys)
#.None #0
- (#.Some yv) (= xv yv))))
+ {#.Some yv} (= xv yv))))
#1
(dictionary.entries xs)))
@@ -273,7 +273,7 @@
(-> JSON Text)
(case json
(^template [<tag> <format>]
- [(<tag> value)
+ [{<tag> value}
(<format> value)])
([#Null ..null_format]
[#Boolean ..boolean_format]
@@ -337,10 +337,10 @@
offset (<text>.many <text>.decimal)]
(in ($_ text\composite mark (if signed?' "-" "") offset))))]
(case (f\decoded ($_ text\composite (if signed? "-" "") digits "." decimals exp))
- (#try.Failure message)
+ {#try.Failure message}
(<>.failure message)
- (#try.Success value)
+ {#try.Success value}
(in value))))
(def: escaped_parser
diff --git a/stdlib/source/library/lux/data/format/markdown.lux b/stdlib/source/library/lux/data/format/markdown.lux
index 163bb3b20..b04f60806 100644
--- a/stdlib/source/library/lux/data/format/markdown.lux
+++ b/stdlib/source/library/lux/data/format/markdown.lux
@@ -110,7 +110,7 @@
(list\each (function (_ [idx [summary detail]])
(format "1. " (:representation summary)
(case detail
- (#.Some detail)
+ {#.Some detail}
(|> detail
:representation
..indent
@@ -128,7 +128,7 @@
(|>> (list\each (function (_ [summary detail])
(format "* " (:representation summary)
(case detail
- (#.Some detail)
+ {#.Some detail}
(|> detail
:representation
..indent
diff --git a/stdlib/source/library/lux/data/format/tar.lux b/stdlib/source/library/lux/data/format/tar.lux
index c0864904c..ec7b997e9 100644
--- a/stdlib/source/library/lux/data/format/tar.lux
+++ b/stdlib/source/library/lux/data/format/tar.lux
@@ -76,7 +76,7 @@
[(def: .public (<in> value)
(-> Nat (Try <type>))
(if (n.< <limit> value)
- (#try.Success (:abstraction value))
+ {#try.Success (:abstraction value)}
(exception.except <exception> [value])))
(def: .public <out>
@@ -230,10 +230,10 @@
(def: (un_padded string)
(-> Binary (Try Binary))
(case (binary.size string)
- 0 (#try.Success string)
+ 0 {#try.Success string}
size (loop [end (-- size)]
(case end
- 0 (#try.Success (\ utf8.codec encoded ""))
+ 0 {#try.Success (\ utf8.codec encoded "")}
_ (do try.monad
[last_char (binary.read/8! end string)]
(`` (case (.nat last_char)
@@ -261,7 +261,7 @@
binary.size
(n.> <size>))
(exception.except <exception> [value])
- (#try.Success (:abstraction value)))
+ {#try.Success (:abstraction value)})
(exception.except ..not_ascii [value])))
(def: .public <out>
@@ -569,10 +569,10 @@
(type: .public Entry
(Variant
- (#Normal ..Normal)
- (#Symbolic_Link ..Symbolic_Link)
- (#Directory ..Directory)
- (#Contiguous ..Contiguous)))
+ {#Normal ..Normal}
+ {#Symbolic_Link ..Symbolic_Link}
+ {#Directory ..Directory}
+ {#Contiguous ..Contiguous}))
(type: Device
Small)
@@ -720,10 +720,10 @@
(def: entry_writer
(Writer Entry)
- (|>> (case> (#Normal value) (..normal_file_writer value)
- (#Symbolic_Link value) (..symbolic_link_writer value)
- (#Directory value) (..directory_writer value)
- (#Contiguous value) (..contiguous_file_writer value))))
+ (|>> (case> {#Normal value} (..normal_file_writer value)
+ {#Symbolic_Link value} (..symbolic_link_writer value)
+ {#Directory value} (..directory_writer value)
+ {#Contiguous value} (..contiguous_file_writer value))))
(def: end_of_archive_size
Size
diff --git a/stdlib/source/library/lux/data/format/xml.lux b/stdlib/source/library/lux/data/format/xml.lux
index 5131090ec..90aaa1b1e 100644
--- a/stdlib/source/library/lux/data/format/xml.lux
+++ b/stdlib/source/library/lux/data/format/xml.lux
@@ -37,8 +37,8 @@
(type: .public XML
(Rec XML
(Variant
- (#Text Text)
- (#Node Tag Attrs (List XML)))))
+ {#Text Text}
+ {#Node Tag Attrs (List XML)})))
(def: namespace_separator
":")
@@ -61,7 +61,7 @@
#.None
(<>.codec int.decimal (<text>.many <text>.decimal))
- (#.Some _)
+ {#.Some _}
(<>.codec int.decimal (<text>.many <text>.hexadecimal)))]
(in (|> code .nat text.of_char)))
(<>.before (<text>.this ";"))
@@ -95,7 +95,7 @@
#.None
(in ["" first_part])
- (#.Some second_part)
+ {#.Some second_part}
(in [first_part second_part]))))
(def: tag^ namespaced_symbol^)
@@ -176,18 +176,18 @@
.let [no_children^ ($_ <>.either
(do <>.monad
[_ (<text>.this "/>")]
- (in (#Node tag attrs (list))))
+ (in {#Node tag attrs (list)}))
(do <>.monad
[_ (<text>.this ">")
_ (<>.some (<>.either <text>.space
..comment^))
_ (..close_tag^ tag)]
- (in (#Node tag attrs (list)))))
+ (in {#Node tag attrs (list)})))
with_children^ (do <>.monad
[_ (<text>.this ">")
children (<>.many node^)
_ (..close_tag^ tag)]
- (in (#Node tag attrs children)))]]
+ (in {#Node tag attrs children}))]]
($_ <>.either
no_children^
with_children^))
@@ -245,10 +245,10 @@
(loop [prefix ""
input input]
(case input
- (#Text value)
+ {#Text value}
(sanitize_value value)
- (^ (#Node xml_tag xml_attrs (list (#Text value))))
+ (^ {#Node xml_tag xml_attrs (list {#Text value})})
(let [tag (..tag xml_tag)
attrs (if (dictionary.empty? xml_attrs)
""
@@ -258,7 +258,7 @@
(sanitize_value value)
"</" tag ">"))
- (#Node xml_tag xml_attrs xml_children)
+ {#Node xml_tag xml_attrs xml_children}
(let [tag (..tag xml_tag)
attrs (if (dictionary.empty? xml_attrs)
""
@@ -279,11 +279,11 @@
(def: (= reference sample)
(case [reference sample]
- [(#Text reference/value) (#Text sample/value)]
+ [{#Text reference/value} {#Text sample/value}]
(text\= reference/value sample/value)
- [(#Node reference/tag reference/attrs reference/children)
- (#Node sample/tag sample/attrs sample/children)]
+ [{#Node reference/tag reference/attrs reference/children}
+ {#Node sample/tag sample/attrs sample/children}]
(and (name\= reference/tag sample/tag)
(\ (dictionary.equivalence text.equivalence) = reference/attrs sample/attrs)
(n.= (list.size reference/children)
diff --git a/stdlib/source/library/lux/data/name.lux b/stdlib/source/library/lux/data/name.lux
index 64d1f19ff..79d1feef3 100644
--- a/stdlib/source/library/lux/data/name.lux
+++ b/stdlib/source/library/lux/data/name.lux
@@ -53,10 +53,10 @@
(def: (decoded input)
(case (text.all_split_by ..separator input)
(^ (list short))
- (#.Right ["" short])
+ {#.Right ["" short]}
(^ (list module short))
- (#.Right [module short])
+ {#.Right [module short]}
_
- (#.Left (text\composite "Invalid format for Name: " input)))))
+ {#.Left (text\composite "Invalid format for Name: " input)})))
diff --git a/stdlib/source/library/lux/data/sum.lux b/stdlib/source/library/lux/data/sum.lux
index 85d27f12b..174a2936f 100644
--- a/stdlib/source/library/lux/data/sum.lux
+++ b/stdlib/source/library/lux/data/sum.lux
@@ -9,7 +9,7 @@
[(def: .public (<name> value)
(All (_ left right)
(-> <name> (Or left right)))
- (0 <right?> value))]
+ {0 <right?> value})]
[#0 left]
[#1 right])
@@ -20,8 +20,8 @@
(-> (Or a b) c)))
(function (_ input)
(case input
- (0 #0 l) (on_left l)
- (0 #1 r) (on_right r))))
+ {0 #0 l} (on_left l)
+ {0 #1 r} (on_right r))))
(def: .public (then on_left on_right)
(All (_ l l' r r')
@@ -29,8 +29,8 @@
(-> (Or l r) (Or l' r'))))
(function (_ input)
(case input
- (0 #0 l) (0 #0 (on_left l))
- (0 #1 r) (0 #1 (on_right r)))))
+ {0 #0 l} {0 #0 (on_left l)}
+ {0 #1 r} {0 #1 (on_right r)})))
(template [<name> <side> <right?>]
[(def: .public (<name> items)
@@ -39,10 +39,10 @@
#.End
#.End
- (#.Item (0 <right?> x) items')
- (#.Item [x (<name> items')])
+ {#.Item {0 <right?> x} items'}
+ {#.Item [x (<name> items')]}
- (#.Item _ items')
+ {#.Item _ items'}
(<name> items')))]
[lefts a #0]
@@ -55,21 +55,21 @@
#.End
[#.End #.End]
- (#.Item x xs')
+ {#.Item x xs'}
(let [[lefts rights] (partition xs')]
(case x
- (0 #0 x') [(#.Item x' lefts) rights]
- (0 #1 x') [lefts (#.Item x' rights)]))))
+ {0 #0 x'} [{#.Item x' lefts} rights]
+ {0 #1 x'} [lefts {#.Item x' rights}]))))
(def: .public (equivalence left right)
(All (_ l r) (-> (Equivalence l) (Equivalence r) (Equivalence (Or l r))))
(implementation
(def: (= reference sample)
(case [reference sample]
- [(#.Left reference) (#.Left sample)]
+ [{#.Left reference} {#.Left sample}]
(\ left = reference sample)
- [(#.Right reference) (#.Right sample)]
+ [{#.Right reference} {#.Right sample}]
(\ right = reference sample)
_
@@ -83,8 +83,8 @@
(\ right &equivalence)))
(def: (hash value)
(case value
- (#.Left value)
+ {#.Left value}
(\ left hash value)
- (#.Right value)
+ {#.Right value}
(\ right hash value)))))
diff --git a/stdlib/source/library/lux/data/text.lux b/stdlib/source/library/lux/data/text.lux
index b3961edc4..7823bd333 100644
--- a/stdlib/source/library/lux/data/text.lux
+++ b/stdlib/source/library/lux/data/text.lux
@@ -53,7 +53,7 @@
(def: .public (char index input)
(-> Nat Text (Maybe Char))
(if (n.< ("lux text size" input) index)
- (#.Some ("lux text char" index input))
+ {#.Some ("lux text char" index input)}
#.None))
(def: .public (index_since offset pattern input)
@@ -74,13 +74,13 @@
#.None
output
- (#.Some offset')
+ {#.Some offset'}
(recur (++ offset') output')))))
(def: .public (starts_with? prefix x)
(-> Text Text Bit)
(case (index prefix x)
- (#.Some 0)
+ {#.Some 0}
true
_
@@ -89,7 +89,7 @@
(def: .public (ends_with? postfix x)
(-> Text Text Bit)
(case (last_index postfix x)
- (#.Some n)
+ {#.Some n}
(n.= (size x)
(n.+ (size postfix) n))
@@ -104,7 +104,7 @@
(def: .public (contains? sub text)
(-> Text Text Bit)
(case ("lux text index" 0 sub text)
- (#.Some _)
+ {#.Some _}
true
_
@@ -134,20 +134,20 @@
(-> Nat Nat Text (Maybe Text))
(if (|> size (n.+ offset) (n.> ("lux text size" input)))
#.None
- (#.Some ("lux text clip" offset size input))))
+ {#.Some ("lux text clip" offset size input)}))
(def: .public (clip_since offset input)
(-> Nat Text (Maybe Text))
(let [size ("lux text size" input)]
(if (n.> size offset)
#.None
- (#.Some ("lux text clip" offset (n.- offset size) input)))))
+ {#.Some ("lux text clip" offset (n.- offset size) input)})))
(def: .public (split_at at x)
(-> Nat Text (Maybe [Text Text]))
(case [(..clip 0 at x) (..clip_since at x)]
- [(#.Some pre) (#.Some post)]
- (#.Some [pre post])
+ [{#.Some pre} {#.Some post}]
+ {#.Some [pre post]}
_
#.None))
@@ -165,14 +165,14 @@
(loop [input sample
output (: (List Text) (list))]
(case (..split_by token input)
- (#.Some [pre post])
+ {#.Some [pre post]}
(|> output
- (#.Item pre)
+ {#.Item pre}
(recur post))
#.None
(|> output
- (#.Item input)
+ {#.Item input}
list.reversed))))
(def: .public (replaced/1 pattern replacement template)
@@ -219,7 +219,7 @@
(loop [left ""
right template]
(case (..split_by pattern right)
- (#.Some [pre post])
+ {#.Some [pre post]}
(recur ($_ "lux text concat" left pre replacement) post)
#.None
diff --git a/stdlib/source/library/lux/data/text/encoding/utf8.lux b/stdlib/source/library/lux/data/text/encoding/utf8.lux
index 817288316..fc063228e 100644
--- a/stdlib/source/library/lux/data/text/encoding/utf8.lux
+++ b/stdlib/source/library/lux/data/text/encoding/utf8.lux
@@ -113,7 +113,7 @@
(def: (decoded value)
(-> Binary (Try Text))
- (with_expansions [<jvm> (#try.Success (java/lang/String::new value (//.name //.utf_8)))]
+ (with_expansions [<jvm> {#try.Success (java/lang/String::new value (//.name //.utf_8))}]
(for [@.old <jvm>
@.jvm <jvm>
@@ -137,7 +137,7 @@
(try (:as Text ("python object do" "decode" (:expected value) "utf-8")))
@.lua
- (#try.Success ("lua utf8 decode" value))
+ {#try.Success ("lua utf8 decode" value)}
@.ruby
(|> value
diff --git a/stdlib/source/library/lux/data/text/escape.lux b/stdlib/source/library/lux/data/text/escape.lux
index db706cc42..422239a27 100644
--- a/stdlib/source/library/lux/data/text/escape.lux
+++ b/stdlib/source/library/lux/data/text/escape.lux
@@ -182,15 +182,15 @@
(case (|> current
("lux text clip" (n.+ ..ascii_escape_offset offset) ..code_size)
(\ n.hex decoded))
- (#try.Success char)
+ {#try.Success char}
(let [limit' (|> limit (n.- offset) (n.- ..unicode_escape_offset))]
- (#try.Success [(format previous
+ {#try.Success [(format previous
("lux text clip" 0 offset current)
(//.of_char char))
("lux text clip" (n.+ ..unicode_escape_offset offset) limit' current)
- limit']))
+ limit']})
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..invalid_unicode_escape [current offset])))
(def: .public (un_escaped text)
@@ -234,14 +234,14 @@
_
(recur (++ offset) previous current limit))
- (#try.Success (case previous
+ {#try.Success (case previous
"" current
- _ (format previous current))))))
+ _ (format previous current))})))
(syntax: .public (literal [literal <code>.text])
(case (..un_escaped literal)
- (#try.Success un_escaped)
+ {#try.Success un_escaped}
(in (list (code.text un_escaped)))
- (#try.Failure error)
+ {#try.Failure error}
(meta.failure error)))
diff --git a/stdlib/source/library/lux/data/text/format.lux b/stdlib/source/library/lux/data/text/format.lux
index 759ccb847..b22f3ce00 100644
--- a/stdlib/source/library/lux/data/text/format.lux
+++ b/stdlib/source/library/lux/data/text/format.lux
@@ -128,5 +128,5 @@
#.None
"#.None"
- (#.Some value)
- (..format "(#.Some " (format value) ")"))))
+ {#.Some value}
+ (..format "{#.Some " (format value) "}"))))
diff --git a/stdlib/source/library/lux/data/text/regex.lux b/stdlib/source/library/lux/data/text/regex.lux
index 94fd16694..63b112bb4 100644
--- a/stdlib/source/library/lux/data/text/regex.lux
+++ b/stdlib/source/library/lux/data/text/regex.lux
@@ -110,7 +110,7 @@
re_range^
re_options^))]
(in (case negate?
- (#.Some _) (` ((~! <text>.not) ($_ ((~! <>.either)) (~+ parts))))
+ {#.Some _} (` ((~! <text>.not) ($_ ((~! <>.either)) (~+ parts))))
#.None (` ($_ ((~! <>.either)) (~+ parts)))))))
(def: re_user_class^
@@ -273,7 +273,7 @@
(type: Re_Group
(Variant
#Non_Capturing
- (#Capturing [(Maybe Text) Nat])))
+ {#Capturing [(Maybe Text) Nat]}))
(def: (re_sequential^ capturing? re_scoped^ current_module)
(-> Bit
@@ -290,16 +290,16 @@
[Nat (List Code) (List (List Code))])
(function (_ part [idx names steps])
(case part
- (^or (#.Left complex) (#.Right [#Non_Capturing complex]))
+ (^or {#.Left complex} {#.Right [#Non_Capturing complex]})
[idx
names
(list& (list g!temp complex
(` .let) (` [(~ g!total) (\ (~! //.monoid) (~' composite) (~ g!total) (~ g!temp))]))
steps)]
- (#.Right [(#Capturing [?name num_captures]) scoped])
+ {#.Right [{#Capturing [?name num_captures]} scoped]}
(let [[idx! name!] (case ?name
- (#.Some _name)
+ {#.Some _name}
[idx (code.identifier ["" _name])]
#.None
@@ -334,31 +334,31 @@
(All (_ l r) (-> (Parser [Text l]) (Parser [Text r]) (Parser [Text (Or l r)])))
(function (_ input)
(case (left input)
- (#try.Success [input' [lt lv]])
- (#try.Success [input' [lt (0 #0 lv)]])
+ {#try.Success [input' [lt lv]]}
+ {#try.Success [input' [lt {0 #0 lv}]]}
- (#try.Failure _)
+ {#try.Failure _}
(case (right input)
- (#try.Success [input' [rt rv]])
- (#try.Success [input' [rt (0 #1 rv)]])
+ {#try.Success [input' [rt rv]]}
+ {#try.Success [input' [rt {0 #1 rv}]]}
- (#try.Failure error)
- (#try.Failure error)))))
+ {#try.Failure error}
+ {#try.Failure error}))))
(def: (|||_^ left right)
(All (_ l r) (-> (Parser [Text l]) (Parser [Text r]) (Parser Text)))
(function (_ input)
(case (left input)
- (#try.Success [input' [lt lv]])
- (#try.Success [input' lt])
+ {#try.Success [input' [lt lv]]}
+ {#try.Success [input' lt]}
- (#try.Failure _)
+ {#try.Failure _}
(case (right input)
- (#try.Success [input' [rt rv]])
- (#try.Success [input' rt])
+ {#try.Success [input' [rt rv]]}
+ {#try.Success [input' rt]}
- (#try.Failure error)
- (#try.Failure error)))))
+ {#try.Failure error}
+ {#try.Failure error}))))
(def: (prep_alternative [num_captures alt])
(-> [Nat Code] Code)
@@ -401,12 +401,12 @@
_ (<text>.this ">")
[num_captures pattern] (re_alternative^ #1 re_scoped^ current_module)
_ (<text>.this ")")]
- (in [(#Capturing [(#.Some captured_name) num_captures]) pattern]))
+ (in [{#Capturing [{#.Some captured_name} num_captures]} pattern]))
(do <>.monad
[_ (<text>.this "(")
[num_captures pattern] (re_alternative^ #1 re_scoped^ current_module)
_ (<text>.this ")")]
- (in [(#Capturing [#.None num_captures]) pattern]))))
+ (in [{#Capturing [#.None num_captures]} pattern]))))
(def: (regex^ current_module)
(-> Text (Parser Code))
@@ -417,11 +417,11 @@
[current_module meta.current_module_name]
(case (<text>.result (regex^ current_module)
pattern)
- (#try.Failure error)
+ {#try.Failure error}
(meta.failure (format "Error while parsing regular-expression:" //.new_line
error))
- (#try.Success regex)
+ {#try.Success regex}
(in (list regex)))))
(syntax: .public (^regex [[pattern bindings] (<code>.form (<>.and <code>.text (<>.maybe <code>.any)))
@@ -430,6 +430,6 @@
(with_identifiers [g!temp]
(in (list& (` (^multi (~ g!temp)
[((~! <text>.result) (..regex (~ (code.text pattern))) (~ g!temp))
- (#try.Success (~ (maybe.else g!temp bindings)))]))
+ {#try.Success (~ (maybe.else g!temp bindings))}]))
body
branches))))
diff --git a/stdlib/source/library/lux/data/text/unicode/set.lux b/stdlib/source/library/lux/data/text/unicode/set.lux
index b47505a09..32a05b3a4 100644
--- a/stdlib/source/library/lux/data/text/unicode/set.lux
+++ b/stdlib/source/library/lux/data/text/unicode/set.lux
@@ -217,10 +217,10 @@
(loop [tree (:representation set)]
(if (//block.within? (tree.tag tree) character)
(case (tree.root tree)
- (0 #0 _)
+ {0 #0 _}
true
- (0 #1 left right)
+ {0 #1 left right}
(or (recur left)
(recur right)))
false)))
diff --git a/stdlib/source/library/lux/debug.lux b/stdlib/source/library/lux/debug.lux
index 8f3245ea2..7b107d8e5 100644
--- a/stdlib/source/library/lux/debug.lux
+++ b/stdlib/source/library/lux/debug.lux
@@ -126,7 +126,7 @@
(let [member ("lua array read" idx tuple)]
(if ("lua object nil?" member)
#.End
- (#.Item member (recur (++ idx))))))))]
+ {#.Item member (recur (++ idx))})))))]
(as_is))
(def: (tuple_inspection inspection)
@@ -145,7 +145,7 @@
(with_expansions [<jvm> (let [object (:as java/lang/Object value)]
(`` (<| (~~ (template [<class> <processing>]
[(case (ffi.check <class> object)
- (#.Some value)
+ {#.Some value}
(`` (|> value (~~ (template.spliced <processing>))))
#.None)]
@@ -155,16 +155,16 @@
[java/lang/String [(:as .Text) %.text]]
))
(case (ffi.check [java/lang/Object] object)
- (#.Some value)
+ {#.Some value}
(let [value (:as (array.Array java/lang/Object) value)]
(case (array.read! 0 value)
- (^multi (#.Some tag)
+ (^multi {#.Some tag}
[(ffi.check java/lang/Integer tag)
- (#.Some tag)]
+ {#.Some tag}]
[[(array.read! 1 value) (array.read! 2 value)]
- [last? (#.Some choice)]])
+ [last? {#.Some choice}]])
(let [last? (case last?
- (#.Some _) #1
+ {#.Some _} #1
#.None #0)]
(|> (%.format (%.nat (.nat (java/lang/Integer::longValue tag)))
" " (%.bit last?)
@@ -256,8 +256,8 @@
"number"
(case (math::type [value])
- (#.Some "integer") (|> value (:as .Int) %.int)
- (#.Some "float") (|> value (:as .Frac) %.frac)
+ {#.Some "integer"} (|> value (:as .Int) %.int)
+ {#.Some "float"} (|> value (:as .Frac) %.frac)
_
(..tostring value))
@@ -447,18 +447,18 @@
representations membersR+
variantV variantV]
(case representations
- (#.Item leftR (#.Item rightR extraR+))
+ {#.Item leftR {#.Item rightR extraR+}}
(case (:as (Or Any Any) variantV)
- (#.Left left)
+ {#.Left left}
[lefts #0 (leftR left)]
- (#.Right right)
+ {#.Right right}
(case extraR+
#.End
[lefts #1 (rightR right)]
_
- (recur (++ lefts) (#.Item rightR extraR+) right)))
+ (recur (++ lefts) {#.Item rightR extraR+} right)))
_
(undefined)))]
@@ -475,10 +475,10 @@
#.End
""
- (#.Item lastR #.End)
+ {#.Item lastR #.End}
(lastR tupleV)
- (#.Item headR tailR)
+ {#.Item headR tailR}
(let [[leftV rightV] (:as [Any Any] tupleV)]
(%.format (headR leftV) " " (recur tailR rightV)))))]
(%.format "[" tuple_body "]"))))))
@@ -496,7 +496,7 @@
(do <>.monad
[[funcT inputsT+] (<type>.applied (<>.and <type>.any (<>.many <type>.any)))]
(case (type.applied inputsT+ funcT)
- (#.Some outputT)
+ {#.Some outputT}
(<type>.local (list outputT) representation)
#.None
@@ -512,10 +512,10 @@
(def: .public (representation type value)
(-> Type Any (Try Text))
(case (<type>.result ..representation_parser type)
- (#try.Success representation)
- (#try.Success (representation value))
+ {#try.Success representation}
+ {#try.Success (representation value)}
- (#try.Failure _)
+ {#try.Failure _}
(exception.except ..cannot_represent_value type)))
(syntax: .public (private [definition <code>.identifier])
@@ -589,7 +589,7 @@
#.None
(` (~! ..inspection))
- (#.Some format)
+ {#.Some format}
format)]
(` [(~ (code.text name))
((~ format) (~ (code.local_identifier name)))])))
diff --git a/stdlib/source/library/lux/documentation.lux b/stdlib/source/library/lux/documentation.lux
index f523c3335..7ebe3cfdf 100644
--- a/stdlib/source/library/lux/documentation.lux
+++ b/stdlib/source/library/lux/documentation.lux
@@ -35,12 +35,12 @@
["[0]" syntax]]]]]]])
(template: (|recursion_dummy|)
- [(#.Primitive "" #.End)])
+ [{#.Primitive "" #.End}])
(type: Fragment
(Variant
- (#Comment Text)
- (#Code Code)))
+ {#Comment Text}
+ {#Code Code}))
(def: fragment
(Parser Fragment)
@@ -51,7 +51,7 @@
(-> Code Nat)
(case code
(^template [<tag>]
- [[[_ _ column] (<tag> _)]
+ [[[_ _ column] {<tag> _}]
column])
([#.Bit]
[#.Nat]
@@ -63,7 +63,7 @@
[#.Tag])
(^template [<tag>]
- [[[_ _ column] (<tag> members)]
+ [[[_ _ column] {<tag> members}]
(|> members
(list\each reference_column)
(list\mix n.min column))])
@@ -89,7 +89,7 @@
(-> Text Location Nat Code [Location Text])
(case example
(^template [<tag> <prefix>]
- [[new_location (<tag> [module short])]
+ [[new_location {<tag> [module short]}]
(let [documentation (<| (text.prefix <prefix>)
(cond (text\= expected_module module)
short
@@ -106,7 +106,7 @@
[#.Tag syntax.sigil])
(^template [<tag> <format>]
- [[new_location (<tag> value)]
+ [[new_location {<tag> value}]
(let [documentation (`` (|> value (~~ (template.spliced <format>))))]
[(revised@ #.column (n.+ (text.size documentation)) new_location)
(format (padding reference_column old_location new_location)
@@ -119,7 +119,7 @@
[#.Text [%.text]])
(^template [|<| |>| <tag>]
- [[group_location (<tag> members)]
+ [[group_location {<tag> members}]
(let [[group_location' members_documentation] (list\mix (function (_ part [last_location text_accum])
(let [[member_location member_documentation] (code_documentation expected_module last_location reference_column part)]
[member_location (format text_accum member_documentation)]))
@@ -144,10 +144,10 @@
(def: (fragment_documentation module fragment)
(-> Text Fragment Text)
(case fragment
- (#Comment comment)
+ {#Comment comment}
(..single_line_comment comment)
- (#Code example)
+ {#Code example}
(let [reference_column (..reference_column example)
[location _] example]
(|> example
@@ -161,7 +161,7 @@
(-> Nat Text)
(format "_" (%.nat id))
... (case (text.char id ..parameter_name_options)
- ... (#.Some char)
+ ... {#.Some char}
... (text.of_char char)
... #.None
@@ -192,7 +192,7 @@
(if (type_parameter? id)
(let [parameter_id (..parameter_id level id)]
(case (list.item parameter_id type_function_arguments)
- (#.Some found)
+ {#.Some found}
found
_
@@ -222,29 +222,29 @@
(def: (%type' level type_function_name nestable? module type)
(-> Nat Text Bit Text Type Text)
(case type
- (#.Primitive name params)
+ {#.Primitive name params}
(|> params
(list\each (|>> (%type' level type_function_name false module)
(format " ")))
- (#.Item (%.text name))
+ {#.Item (%.text name)}
text.together
(text.enclosed ["(primitive " ")"]))
- (#.Sum _)
+ {#.Sum _}
(|> type
type.flat_variant
(list\each (%type' level type_function_name false module))
(text.interposed " ")
(text.enclosed ["(Or " ")"]))
- (#.Product _)
+ {#.Product _}
(|> type
type.flat_tuple
(list\each (%type' level type_function_name false module))
(text.interposed " ")
(text.enclosed ["[" "]"]))
- (#.Function input output)
+ {#.Function input output}
(let [[ins out] (type.flat_function type)]
(format "(-> "
(|> ins (list\each (%type' level type_function_name false module)) (text.interposed " "))
@@ -252,17 +252,17 @@
(%type' level type_function_name false module out)
")"))
- (#.Parameter idx)
+ {#.Parameter idx}
(parameter_name [type_function_name (list)] level idx)
(^template [<tag> <pre> <post>]
- [(<tag> id)
+ [{<tag> id}
(format <pre> (%.nat id) <post>)])
([#.Var "⌈" "⌋"]
[#.Ex "⟨" "⟩"])
(^template [<tag> <name> <flat>]
- [(<tag> _)
+ [{<tag> _}
(let [[level' body] (<flat> type)
args (level_parameters level level')
body_doc (%type' (n.+ level level') type_function_name nestable? module body)]
@@ -274,15 +274,15 @@
([#.UnivQ "All" type.flat_univ_q]
[#.ExQ "Ex" type.flat_ex_q])
- (^ (#.Apply (|recursion_dummy|) (#.Parameter 0)))
+ (^ {#.Apply (|recursion_dummy|) {#.Parameter 0}})
type_function_name
- (^ (#.Apply (|recursion_dummy|) (#.UnivQ _ body)))
+ (^ {#.Apply (|recursion_dummy|) {#.UnivQ _ body}})
(format "(Rec " type_function_name
\n (nested " " (%type' level type_function_name nestable? module body))
")")
- (#.Apply param fun)
+ {#.Apply param fun}
(let [[type_func type_arguments] (type.flat_application type)]
(format "(" (%type' level type_function_name false module type_func)
" " (|> type_arguments
@@ -290,7 +290,7 @@
(text.interposed " "))
")"))
- (#.Named [_module _name] type)
+ {#.Named [_module _name] type}
(cond (text\= module _module)
_name
@@ -308,9 +308,9 @@
(def: (parameterized_type arity type)
(-> Nat Type (Maybe Type))
(case arity
- 0 (#.Some type)
+ 0 {#.Some type}
_ (case type
- (#.UnivQ _env _type)
+ {#.UnivQ _env _type}
(parameterized_type (-- arity) _type)
_
@@ -325,7 +325,7 @@
_
(case type
- (#.Primitive name params)
+ {#.Primitive name params}
(case params
#.End
(format "(primitive " (%.text name) ")")
@@ -333,7 +333,7 @@
_
(format "(primitive " (%.text name) " " (|> params (list\each (type_definition' false level arity type_function_info #.None module)) (text.interposed " ")) ")"))
- (#.Sum _)
+ {#.Sum _}
(let [members (type.flat_variant type)]
(case tags
#.End
@@ -348,20 +348,20 @@
(list.zipped/2 tags)
(list\each (function (_ [t_name type])
(case type
- (#.Product _)
+ {#.Product _}
(let [types (type.flat_tuple type)]
- (format " (#" t_name " "
+ (format " {#" t_name " "
(|> types
(list\each (type_definition' false level arity type_function_info #.None module))
(text.interposed " "))
- ")"))
+ "}"))
_
- (format " (#" t_name " " (type_definition' false level arity type_function_info #.None module type) ")"))))
+ (format " {#" t_name " " (type_definition' false level arity type_function_info #.None module type) "}"))))
(text.interposed \n)
(text.enclosed [(format "(Variant" \n) ")"]))))
- (#.Product _)
+ {#.Product _}
(let [members (type.flat_tuple type)]
(case tags
#.End
@@ -376,24 +376,24 @@
(text.enclosed [" [" "]"])
(text.enclosed [(format "(Record" \n) ")"]))))
- (#.Function input output)
+ {#.Function input output}
(let [[ins out] (type.flat_function type)]
(format "(-> " (|> ins (list\each (type_definition' false level arity type_function_info #.None module)) (text.interposed " "))
" "
(type_definition' false level arity type_function_info #.None module out)
")"))
- (#.Parameter idx)
+ {#.Parameter idx}
(parameter_name type_function_info level idx)
(^template [<tag> <pre>]
- [(<tag> id)
+ [{<tag> id}
(format <pre> (%.nat id))])
([#.Var "-"]
[#.Ex "+"])
(^template [<tag> <name> <flat>]
- [(<tag> _)
+ [{<tag> _}
(let [[level' body] (<flat> type)
args (level_parameters (n.- arity level) level')
body_doc (type_definition' nestable? (n.+ level level') arity type_function_info tags module body)
@@ -409,10 +409,10 @@
[#.ExQ "Ex" type.flat_ex_q])
... Recursive call
- (^ (#.Apply (|recursion_dummy|) (#.Parameter 0)))
+ (^ {#.Apply (|recursion_dummy|) {#.Parameter 0}})
(product.left type_function_info)
- (^ (#.Apply (|recursion_dummy|) (#.UnivQ _ body)))
+ (^ {#.Apply (|recursion_dummy|) {#.UnivQ _ body}})
(|> (type_definition' nestable? level arity type_function_info tags module body)
(text.all_split_by \n)
(list\each (text.prefix " "))
@@ -420,7 +420,7 @@
(text.enclosed [(format "(Rec " (product.left type_function_info) \n)
")"]))
- (#.Apply param fun)
+ {#.Apply param fun}
(let [[type_func type_arguments] (type.flat_application type)]
(format "(" (type_definition' false level arity type_function_info tags module type_func)
" " (|> type_arguments
@@ -428,7 +428,7 @@
(text.interposed " "))
")"))
- (#.Named [_module _name] type)
+ {#.Named [_module _name] type}
(cond (text\= module _module)
_name
@@ -443,7 +443,7 @@
(-> Text [Text (List Text)] (List Text) Type Text)
(let [arity (list.size parameters)]
(case (parameterized_type arity type)
- (#.Some type)
+ {#.Some type}
(type_definition' true (-- arity) arity [name parameters] tags module type)
#.None
@@ -552,7 +552,7 @@
(~+ (list\each code.local_identifier parameters))))
... Description
(~+ (case description
- (#.Some description)
+ {#.Some description}
(list (` (<| ((~! md.paragraph))
((~! md.text))
(~ description))))
diff --git a/stdlib/source/library/lux/extension.lux b/stdlib/source/library/lux/extension.lux
index 885c32fbc..e4b320a27 100644
--- a/stdlib/source/library/lux/extension.lux
+++ b/stdlib/source/library/lux/extension.lux
@@ -51,10 +51,10 @@
(~ g!_) <end>]
(.\ (~! <>.monad) (~' in) (~ body)))
(~ g!inputs))
- (#.Right (~ g!_))
+ {#.Right (~ g!_)}
(~ g!_)
- (#.Left (~ g!error))
+ {#.Left (~ g!error)}
((~! phase.failure) (~ g!error)))
))))))))]
diff --git a/stdlib/source/library/lux/ffi.js.lux b/stdlib/source/library/lux/ffi.js.lux
index b8a1dbf58..57f346903 100644
--- a/stdlib/source/library/lux/ffi.js.lux
+++ b/stdlib/source/library/lux/ffi.js.lux
@@ -93,8 +93,8 @@
(type: Method
(Variant
- (#Static Static_Method)
- (#Virtual Virtual_Method)))
+ {#Static Static_Method}
+ {#Virtual Virtual_Method}))
(def: common_method
(Parser Common_Method)
@@ -116,9 +116,9 @@
(type: Member
(Variant
- (#Constructor Constructor)
- (#Field Field)
- (#Method Method)))
+ {#Constructor Constructor}
+ {#Field Field}
+ {#Method Method}))
(def: member
(Parser Member)
@@ -144,7 +144,7 @@
(-> Code [Bit Code] Code)
(if nullable?
(` (case (~ input)
- (#.Some (~ g!temp))
+ {#.Some (~ g!temp)}
(~ g!temp)
#.None
@@ -165,7 +165,7 @@
(` (let [(~ g!temp) (~ output)]
(if ("js object null?" (~ g!temp))
#.None
- (#.Some (~ g!temp)))))
+ {#.Some (~ g!temp)})))
(` (let [(~ g!temp) (~ output)]
(if (not ("js object null?" (~ g!temp)))
(~ g!temp)
@@ -176,8 +176,8 @@
(type: Import
(Variant
- (#Class [Class_Declaration Text (List Member)])
- (#Function Static_Method)))
+ {#Class [Class_Declaration Text (List Member)]}
+ {#Function Static_Method}))
(def: class_declaration
(Parser Class_Declaration)
@@ -238,7 +238,7 @@
(syntax: .public (import: [import ..import])
(with_identifiers [g!temp g!_]
(case import
- (#Class [[class_name class_parameters] format members])
+ {#Class [[class_name class_parameters] format members]}
(with_identifiers [g!object]
(let [qualify (: (-> Text Code)
(function (_ member_name)
@@ -254,7 +254,7 @@
(..Object (primitive (~ (code.text real_class))))))
(list\each (function (_ member)
(case member
- (#Constructor inputsT)
+ {#Constructor inputsT}
(let [g!inputs (input_variables inputsT)]
(` (def: ((~ (qualify "new"))
[(~+ (list\each product.right g!inputs))])
@@ -266,7 +266,7 @@
("js constant" (~ (code.text real_class)))
[(~+ (list\each (with_null g!temp) g!inputs))])))))
- (#Field [static? field fieldT])
+ {#Field [static? field fieldT]}
(if static?
(` ((~! syntax:) ((~ (qualify field)) [])
(\ (~! meta.monad) (~' in)
@@ -280,9 +280,9 @@
(:expected
(~ (without_null g!temp fieldT (` ("js object get" (~ (code.text field)) (~ g!object)))))))))
- (#Method method)
+ {#Method method}
(case method
- (#Static [method alias inputsT io? try? outputT])
+ {#Static [method alias inputsT io? try? outputT]}
(..make_function (qualify (maybe.else method alias))
g!temp
(%.format real_class "." method)
@@ -291,7 +291,7 @@
try?
outputT)
- (#Virtual [method alias inputsT io? try? outputT])
+ {#Virtual [method alias inputsT io? try? outputT]}
(let [g!inputs (input_variables inputsT)]
(` (def: ((~ (qualify (maybe.else method alias)))
[(~+ (list\each product.right g!inputs))]
@@ -312,7 +312,7 @@
[(~+ (list\each (with_null g!temp) g!inputs))])))))))))))
members)))))
- (#Function [name alias inputsT io? try? outputT])
+ {#Function [name alias inputsT io? try? outputT]}
(in (list (..make_function (code.local_identifier (maybe.else name alias))
g!temp
name
@@ -337,9 +337,9 @@
#.None
(~ g!_)
- (#.Some (:as (~ type) (~ constant))))))))
+ {#.Some (:as (~ type) (~ constant))})))))
- (#.Item [next tail])
+ {#.Item [next tail]}
(let [separator "."]
(in (list (` (: (.Maybe (~ type))
(case (..type_of (~ constant))
@@ -355,7 +355,7 @@
#.None
.false
- (#.Some _)
+ {#.Some _}
.true)])
(template [<name> <constant>]
@@ -370,7 +370,7 @@
(def: .public on_node_js?
Bit
(case (..constant (Object Any) [process])
- (#.Some process)
+ {#.Some process}
(case (:as Text
("js apply" ("js constant" "Object.prototype.toString.call") process))
"[object process]"
diff --git a/stdlib/source/library/lux/ffi.jvm.lux b/stdlib/source/library/lux/ffi.jvm.lux
index fd9e9d111..0ccc11f86 100644
--- a/stdlib/source/library/lux/ffi.jvm.lux
+++ b/stdlib/source/library/lux/ffi.jvm.lux
@@ -56,7 +56,7 @@
(template [<name> <class>]
[(`` (def: .public <name>
.Type
- (#.Primitive <class> #.End)))]
+ {#.Primitive <class> #.End}))]
[Boolean box.boolean]
[Byte box.byte]
@@ -71,7 +71,7 @@
(template [<name> <class>]
[(`` (def: .public <name>
.Type
- (#.Primitive (reflection.reflection <class>) #.End)))]
+ {#.Primitive (reflection.reflection <class>) #.End}))]
... Primitives
[boolean reflection.boolean]
@@ -227,8 +227,8 @@
(type: FieldDecl
(Variant
- (#ConstantField (Type Value) Code)
- (#VariableField State (Type Value))))
+ {#ConstantField (Type Value) Code}
+ {#VariableField State (Type Value)}))
(type: MethodDecl
(Record
@@ -239,43 +239,43 @@
(type: Method_Definition
(Variant
- (#ConstructorMethod [Bit
+ {#ConstructorMethod [Bit
(List (Type Var))
Text
(List Argument)
(List (Typed Code))
Code
- (List (Type Class))])
- (#VirtualMethod [Bit
+ (List (Type Class))]}
+ {#VirtualMethod [Bit
Bit
(List (Type Var))
Text
(List Argument)
(Type Return)
Code
- (List (Type Class))])
- (#OverridenMethod [Bit
+ (List (Type Class))]}
+ {#OverridenMethod [Bit
(Type Declaration)
(List (Type Var))
Text
(List Argument)
(Type Return)
Code
- (List (Type Class))])
- (#StaticMethod [Bit
+ (List (Type Class))]}
+ {#StaticMethod [Bit
(List (Type Var))
(List Argument)
(Type Return)
Code
- (List (Type Class))])
- (#AbstractMethod [(List (Type Var))
+ (List (Type Class))]}
+ {#AbstractMethod [(List (Type Var))
(List Argument)
(Type Return)
- (List (Type Class))])
- (#NativeMethod [(List (Type Var))
+ (List (Type Class))]}
+ {#NativeMethod [(List (Type Var))
(List Argument)
(Type Return)
- (List (Type Class))])))
+ (List (Type Class))]}))
(type: Partial_Call
(Record
@@ -318,10 +318,10 @@
(type: Import_Member_Declaration
(Variant
- (#EnumDecl (List Text))
- (#ConstructorDecl [ImportMethodCommons ImportConstructorDecl])
- (#MethodDecl [ImportMethodCommons ImportMethodDecl])
- (#FieldAccessDecl ImportFieldDecl)))
+ {#EnumDecl (List Text)}
+ {#ConstructorDecl [ImportMethodCommons ImportConstructorDecl]}
+ {#MethodDecl [ImportMethodCommons ImportMethodDecl]}
+ {#FieldAccessDecl ImportFieldDecl}))
(def: (primitive_type mode type)
(-> Primitive_Mode (Type Primitive) Code)
@@ -362,7 +362,7 @@
(-> (Type Parameter) Code)
(`` (<| (~~ (template [<when> <binding> <then>]
[(case (<when> type)
- (#.Some <binding>)
+ {#.Some <binding>}
<then>
#.None)]
@@ -382,7 +382,7 @@
(-> Primitive_Mode (Type Value) Code)
(`` (<| (~~ (template [<when> <binding> <then>]
[(case (<when> type)
- (#.Some <binding>)
+ {#.Some <binding>}
<then>
#.None)]
@@ -390,12 +390,12 @@
[parser.parameter? type (parameter_type type)]
[parser.primitive? type (primitive_type mode type)]
[parser.array? elementT (case (parser.primitive? elementT)
- (#.Some elementT)
- (` (#.Primitive (~ (code.text (..reflection (type.array elementT)))) #.End))
+ {#.Some elementT}
+ (` {#.Primitive (~ (code.text (..reflection (type.array elementT)))) #.End})
#.None
- (` (#.Primitive (~ (code.text array.type_name))
- (#.Item (~ (value_type mode elementT)) #.End))))]))
+ (` {#.Primitive (~ (code.text array.type_name))
+ {#.Item (~ (value_type mode elementT)) #.End}}))]))
(undefined)
)))
@@ -433,8 +433,8 @@
(-> (-> Code Code) Code Code)
(case (f input)
(^template [<tag>]
- [[meta (<tag> parts)]
- [meta (<tag> (list\each (replaced f) parts))]])
+ [[meta {<tag> parts}]
+ [meta {<tag> (list\each (replaced f) parts)}]])
([#.Form]
[#.Variant]
[#.Tuple])
@@ -445,7 +445,7 @@
(def: (parser->replacer p ast)
(-> (Parser Code) (-> Code Code))
(case (<>.result p (list ast))
- (#.Right [#.End ast'])
+ {#.Right [#.End ast']}
ast'
_
@@ -455,10 +455,10 @@
(def: (field->parser class_name self_name [[field_name _ _] field])
(-> Text Text [Member_Declaration FieldDecl] (Parser Code))
(case field
- (#ConstantField _)
+ {#ConstantField _}
(get_const_parser class_name field_name)
- (#VariableField _)
+ {#VariableField _}
(<>.either (get_var_parser class_name field_name self_name)
(put_var_parser class_name field_name self_name))))
@@ -510,22 +510,22 @@
(def: (method->parser class_name [[method_name _ _] meth_def])
(-> Text [Member_Declaration Method_Definition] (Parser Code))
(case meth_def
- (#ConstructorMethod strict? type_vars self_name args constructor_args return_expr exs)
+ {#ConstructorMethod strict? type_vars self_name args constructor_args return_expr exs}
(constructor_parser class_name args)
- (#StaticMethod strict? type_vars args return_type return_expr exs)
+ {#StaticMethod strict? type_vars args return_type return_expr exs}
(static_method_parser class_name method_name args)
- (#VirtualMethod final? strict? type_vars self_name args return_type return_expr exs)
+ {#VirtualMethod final? strict? type_vars self_name args return_type return_expr exs}
(virtual_method_parser class_name method_name args self_name)
- (#OverridenMethod strict? owner_class type_vars self_name args return_type return_expr exs)
+ {#OverridenMethod strict? owner_class type_vars self_name args return_type return_expr exs}
(special_method_parser class_name method_name args self_name)
- (#AbstractMethod type_vars args return_type exs)
+ {#AbstractMethod type_vars args return_type exs}
(virtual_method_parser class_name method_name args "")
- (#NativeMethod type_vars args return_type exs)
+ {#NativeMethod type_vars args return_type exs}
(virtual_method_parser class_name method_name args "")))
(def: privacy_modifier^
@@ -754,14 +754,14 @@
anns ..annotations^
type (..type^ type_vars)
body <code>.any]
- (in [[name #PublicP anns] (#ConstantField [type body])])))
+ (in [[name #PublicP anns] {#ConstantField [type body]}])))
(<code>.form (do <>.monad
[pm privacy_modifier^
sm state_modifier^
name <code>.local_identifier
anns ..annotations^
type (..type^ type_vars)]
- (in [[name pm anns] (#VariableField [sm type])])))))
+ (in [[name pm anns] {#VariableField [sm type]}])))))
(def: (argument^ type_vars)
(-> (List (Type Var)) (Parser Argument))
@@ -798,7 +798,7 @@
(in [[#member_name constructor_method_name
#member_privacy pm
#member_anns annotations]
- (#ConstructorMethod strict_fp? method_vars self_name arguments constructor_args body exs)]))))
+ {#ConstructorMethod strict_fp? method_vars self_name arguments constructor_args body exs}]))))
(def: (virtual_method_def^ class_vars)
(-> (List (Type Var)) (Parser [Member_Declaration Method_Definition]))
@@ -819,7 +819,7 @@
(in [[#member_name name
#member_privacy pm
#member_anns annotations]
- (#VirtualMethod final? strict_fp? method_vars self_name arguments return_type body exs)]))))
+ {#VirtualMethod final? strict_fp? method_vars self_name arguments return_type body exs}]))))
(def: overriden_method_def^
(Parser [Member_Declaration Method_Definition])
@@ -840,7 +840,7 @@
(in [[#member_name name
#member_privacy #PublicP
#member_anns annotations]
- (#OverridenMethod strict_fp? owner_class method_vars self_name arguments return_type body exs)]))))
+ {#OverridenMethod strict_fp? owner_class method_vars self_name arguments return_type body exs}]))))
(def: static_method_def^
(Parser [Member_Declaration Method_Definition])
@@ -859,7 +859,7 @@
(in [[#member_name name
#member_privacy pm
#member_anns annotations]
- (#StaticMethod strict_fp? method_vars arguments return_type body exs)]))))
+ {#StaticMethod strict_fp? method_vars arguments return_type body exs}]))))
(def: abstract_method_def^
(Parser [Member_Declaration Method_Definition])
@@ -876,7 +876,7 @@
(in [[#member_name name
#member_privacy pm
#member_anns annotations]
- (#AbstractMethod method_vars arguments return_type exs)]))))
+ {#AbstractMethod method_vars arguments return_type exs}]))))
(def: native_method_def^
(Parser [Member_Declaration Method_Definition])
@@ -893,7 +893,7 @@
(in [[#member_name name
#member_privacy pm
#member_anns annotations]
- (#NativeMethod method_vars arguments return_type exs)]))))
+ {#NativeMethod method_vars arguments return_type exs}]))))
(def: (method_def^ class_vars)
(-> (List (Type Var)) (Parser [Member_Declaration Method_Definition]))
@@ -938,7 +938,7 @@
(<code>.form (do <>.monad
[_ (<code>.this! (' "enum"))
enum_members (<>.some <code>.local_identifier)]
- (in (#EnumDecl enum_members))))
+ (in {#EnumDecl enum_members})))
(<code>.form (do <>.monad
[tvars (<>.else (list) ..vars^)
_ (<code>.identifier! ["" "new"])
@@ -947,7 +947,7 @@
?prim_mode (<>.maybe primitive_mode^)
args (..import_member_args^ total_vars)
[io? try? maybe?] import_member_return_flags^]
- (in (#ConstructorDecl [[#import_member_mode (maybe.else #AutoPrM ?prim_mode)
+ (in {#ConstructorDecl [[#import_member_mode (maybe.else #AutoPrM ?prim_mode)
#import_member_alias (maybe.else "new" ?alias)
#import_member_kind #VirtualIMK
#import_member_tvars tvars
@@ -955,7 +955,7 @@
#import_member_maybe? maybe?
#import_member_try? try?
#import_member_io? io?]
- []]))
+ []]})
))
(<code>.form (do <>.monad
[kind (: (Parser ImportMethodKind)
@@ -969,7 +969,7 @@
args (..import_member_args^ total_vars)
[io? try? maybe?] import_member_return_flags^
return (..return^ total_vars)]
- (in (#MethodDecl [[#import_member_mode (maybe.else #AutoPrM ?prim_mode)
+ (in {#MethodDecl [[#import_member_mode (maybe.else #AutoPrM ?prim_mode)
#import_member_alias (maybe.else name ?alias)
#import_member_kind kind
#import_member_tvars tvars
@@ -978,7 +978,7 @@
#import_member_try? try?
#import_member_io? io?]
[#import_method_name name
- #import_method_return return]]))))
+ #import_method_return return]]})))
(<code>.form (do <>.monad
[static? (<>.parses? (<code>.this! (' "static")))
name <code>.local_identifier
@@ -986,12 +986,12 @@
gtype (..type^ owner_vars)
maybe? (<>.parses? (<code>.this! (' "?")))
setter? (<>.parses? (<code>.this! (' #!)))]
- (in (#FieldAccessDecl [#import_field_mode (maybe.else #AutoPrM ?prim_mode)
+ (in {#FieldAccessDecl [#import_field_mode (maybe.else #AutoPrM ?prim_mode)
#import_field_name name
#import_field_static? static?
#import_field_maybe? maybe?
#import_field_setter? setter?
- #import_field_type gtype]))))
+ #import_field_type gtype]})))
))
(def: bundle
@@ -1061,14 +1061,14 @@
(def: (field_decl$ [[name pm anns] field])
(-> [Member_Declaration FieldDecl] Code)
(case field
- (#ConstantField class value)
+ {#ConstantField class value}
(` ("constant" (~ (code.text name))
[(~+ (list\each annotation$ anns))]
(~ (value$ class))
(~ value)
))
- (#VariableField sm class)
+ {#VariableField sm class}
(` ("variable" (~ (code.text name))
(~ (privacy_modifier$ pm))
(~ (state_modifier$ sm))
@@ -1088,7 +1088,7 @@
(def: (method_def$ fully_qualified_class_name method_parser super_class fields [[name pm anns] method_def])
(-> External (Parser Code) (Type Class) (List [Member_Declaration FieldDecl]) [Member_Declaration Method_Definition] Code)
(case method_def
- (#ConstructorMethod strict_fp? type_vars self_name arguments constructor_args body exs)
+ {#ConstructorMethod strict_fp? type_vars self_name arguments constructor_args body exs}
(let [replacer (|> (list\each (field->parser fully_qualified_class_name self_name) fields)
(list\mix <>.either method_parser)
parser->replacer)]
@@ -1104,7 +1104,7 @@
(~ (replaced replacer body))
)))
- (#VirtualMethod final? strict_fp? type_vars self_name arguments return_type body exs)
+ {#VirtualMethod final? strict_fp? type_vars self_name arguments return_type body exs}
(let [replacer (|> (list\each (field->parser fully_qualified_class_name self_name) fields)
(list\mix <>.either method_parser)
parser->replacer)]
@@ -1121,7 +1121,7 @@
[(~+ (list\each class$ exs))]
(~ (replaced replacer body)))))
- (#OverridenMethod strict_fp? declaration type_vars self_name arguments return_type body exs)
+ {#OverridenMethod strict_fp? declaration type_vars self_name arguments return_type body exs}
(let [replacer (|> (list\each (field->parser fully_qualified_class_name self_name) fields)
(list\mix <>.either method_parser)
parser->replacer)
@@ -1150,7 +1150,7 @@
(replaced super_replacer)))
)))
- (#StaticMethod strict_fp? type_vars arguments return_type body exs)
+ {#StaticMethod strict_fp? type_vars arguments return_type body exs}
(let [replacer (parser->replacer (<>.failure ""))]
(` ("static"
(~ (code.text name))
@@ -1163,7 +1163,7 @@
[(~+ (list\each class$ exs))]
(~ (replaced replacer body)))))
- (#AbstractMethod type_vars arguments return_type exs)
+ {#AbstractMethod type_vars arguments return_type exs}
(` ("abstract"
(~ (code.text name))
(~ (privacy_modifier$ pm))
@@ -1173,7 +1173,7 @@
(~ (return$ return_type))
[(~+ (list\each class$ exs))]))
- (#NativeMethod type_vars arguments return_type exs)
+ {#NativeMethod type_vars arguments return_type exs}
(` ("native"
(~ (code.text name))
(~ (privacy_modifier$ pm))
@@ -1255,12 +1255,12 @@
(in (list (` (let [(~ g!temp) (~ expr)]
(if ("jvm object null?" (~ g!temp))
#.None
- (#.Some (~ g!temp)))))))))
+ {#.Some (~ g!temp)})))))))
(syntax: .public (!!! [expr <code>.any])
(with_identifiers [g!value]
(in (list (` (.case (~ expr)
- (#.Some (~ g!value))
+ {#.Some (~ g!value)}
(~ g!value)
#.None
@@ -1273,11 +1273,11 @@
class_type (` (.primitive (~ (code.text class_name))))
check_type (` (.Maybe (~ class_type)))
check_code (` (if ("jvm object instance?" (~ (code.text class_name)) (~ g!unchecked))
- (#.Some (.:as (~ class_type)
- (~ g!unchecked)))
+ {#.Some (.:as (~ class_type)
+ (~ g!unchecked))}
#.None))]
(case unchecked
- (#.Some unchecked)
+ {#.Some unchecked}
(in (list (` (: (~ check_type)
(let [(~ g!unchecked) (~ unchecked)]
(~ check_code))))))
@@ -1314,10 +1314,10 @@
(def: (member_type_vars class_tvars member)
(-> (List (Type Var)) Import_Member_Declaration (List (Type Var)))
(case member
- (#ConstructorDecl [commons _])
+ {#ConstructorDecl [commons _]}
(list\composite class_tvars (value@ #import_member_tvars commons))
- (#MethodDecl [commons _])
+ {#MethodDecl [commons _]}
(case (value@ #import_member_kind commons)
#StaticIMK
(value@ #import_member_tvars commons)
@@ -1331,7 +1331,7 @@
(def: (member_def_arg_bindings vars member)
(-> (List (Type Var)) Import_Member_Declaration (Meta [(List [Bit Code]) (List (Type Value)) (List Code)]))
(case member
- (^or (#ConstructorDecl [commons _]) (#MethodDecl [commons _]))
+ (^or {#ConstructorDecl [commons _]} {#MethodDecl [commons _]})
(let [(^slots [#import_member_tvars #import_member_args]) commons]
(do [! meta.monad]
[arg_inputs (monad.each !
@@ -1356,7 +1356,7 @@
(def: (with_return_maybe member never_null? unboxed return_term)
(-> Import_Member_Declaration Bit (Type Value) Code Code)
(case member
- (^or (#ConstructorDecl [commons _]) (#MethodDecl [commons _]))
+ (^or {#ConstructorDecl [commons _]} {#MethodDecl [commons _]})
(cond (or never_null?
(dictionary.key? ..boxes unboxed))
return_term
@@ -1379,7 +1379,7 @@
[(def: (<name> member return_term)
(-> Import_Member_Declaration Code Code)
(case member
- (^or (#ConstructorDecl [commons _]) (#MethodDecl [commons _]))
+ (^or {#ConstructorDecl [commons _]} {#MethodDecl [commons _]})
(if (value@ <tag> commons)
<term_trans>
return_term)
@@ -1420,7 +1420,7 @@
raw)
(list)]))))
unboxed/boxed (case (dictionary.value unboxed ..boxes)
- (#.Some boxed)
+ {#.Some boxed}
(<unbox/box> unboxed boxed refined)
#.None
@@ -1490,7 +1490,7 @@
(-> (List (Type Var)) Class_Kind (Type Declaration) [(List [Bit Code]) (List (Type Value)) (List Code)] Import_Member_Declaration Text Text (Meta (List Code)))
(let [[full_name class_tvars] (parser.declaration class)]
(case member
- (#EnumDecl enum_members)
+ {#EnumDecl enum_members}
(with_identifiers [g!_]
(do meta.monad
[.let [enum_type (: Code
@@ -1509,7 +1509,7 @@
(~ (get_static_field full_name name)))))))]]
(in (list\each getter_interop enum_members))))
- (#ConstructorDecl [commons _])
+ {#ConstructorDecl [commons _]}
(do meta.monad
[.let [classT (type.class full_name (list))
def_name (code.identifier ["" (..import_name import_format method_prefix (value@ #import_member_alias commons))])
@@ -1528,7 +1528,7 @@
(in (list (` ((~! syntax:) ((~ def_name) [(~+ (syntax_inputs (list\each product.right arg_function_inputs)))])
((~' in) (.list (.` (~ jvm_interop)))))))))
- (#MethodDecl [commons method])
+ {#MethodDecl [commons method]}
(with_identifiers [g!obj]
(do meta.monad
[.let [def_name (code.identifier ["" (..import_name import_format method_prefix (value@ #import_member_alias commons))])
@@ -1566,7 +1566,7 @@
(list\each ..decorate_input))))))
jvm_interop (: Code
(case (type.void? method_return)
- (#.Left method_return)
+ {#.Left method_return}
(|> [method_return
callC]
(with_automatic_output_conversion (value@ #import_member_mode commons))
@@ -1575,7 +1575,7 @@
(with_return_io member))
- (#.Right method_return)
+ {#.Right method_return}
(|> callC
(with_return_try member)
(with_return_io member))))]]
@@ -1583,7 +1583,7 @@
(~+ (syntax_inputs object_ast))])
((~' in) (.list (.` (~ jvm_interop))))))))))
- (#FieldAccessDecl fad)
+ {#FieldAccessDecl fad}
(do meta.monad
[.let [(^open "[0]") fad
getter_name (code.identifier ["" (..import_name import_format method_prefix import_field_name)])
@@ -1655,12 +1655,12 @@
(-> (Type Declaration) (Meta Class_Kind))
(let [[class_name _] (parser.declaration declaration)]
(case (load_class class_name)
- (#.Right class)
+ {#.Right class}
(\ meta.monad in (if (interface? class)
#Interface
#Class))
- (#.Left _)
+ {#.Left _}
(meta.failure (format "Unknown class: " class_name)))))
(syntax: .public (import: [declaration ..declaration^
@@ -1708,7 +1708,7 @@
(if (lux_type\= .Any type)
(\ meta.monad in $Object)
(case type
- (#.Primitive name params)
+ {#.Primitive name params}
(`` (cond (~~ (template [<type>]
[(text\= (..reflection <type>) name)
(case params
@@ -1747,7 +1747,7 @@
(text\= array.type_name name)
(case params
- (#.Item elementLT #.End)
+ {#.Item elementLT #.End}
(\ meta.monad each type.array
(lux_type->jvm_type elementLT))
@@ -1759,7 +1759,7 @@
#.End
(let [[_ unprefixed] (maybe.trusted (text.split_by descriptor.array_prefix name))]
(\ meta.monad each type.array
- (lux_type->jvm_type (#.Primitive unprefixed (list)))))
+ (lux_type->jvm_type {#.Primitive unprefixed (list)})))
_
<failure>)
@@ -1772,22 +1772,22 @@
(do meta.monad
[paramJT (lux_type->jvm_type paramLT)]
(case (parser.parameter? paramJT)
- (#.Some paramJT)
+ {#.Some paramJT}
(in paramJT)
#.None
<failure>)))
params)))))
- (#.Apply A F)
+ {#.Apply A F}
(case (lux_type.applied (list A) F)
#.None
<failure>
- (#.Some type')
+ {#.Some type'}
(lux_type->jvm_type type'))
- (#.Named _ type')
+ {#.Named _ type'}
(lux_type->jvm_type type')
_
@@ -1795,7 +1795,7 @@
(syntax: .public (length [array <code>.any])
(case array
- [_ (#.Identifier array_name)]
+ [_ {#.Identifier array_name}]
(do meta.monad
[array_type (meta.type array_name)
array_jvm_type (lux_type->jvm_type array_type)
@@ -1830,7 +1830,7 @@
(syntax: .public (read! [idx <code>.any
array <code>.any])
(case array
- [_ (#.Identifier array_name)]
+ [_ {#.Identifier array_name}]
(do meta.monad
[array_type (meta.type array_name)
array_jvm_type (lux_type->jvm_type array_type)
@@ -1868,7 +1868,7 @@
value <code>.any
array <code>.any])
(case array
- [_ (#.Identifier array_name)]
+ [_ {#.Identifier array_name}]
(do meta.monad
[array_type (meta.type array_name)
array_jvm_type (lux_type->jvm_type array_type)
@@ -1918,7 +1918,7 @@
object <code>.any])
(case [(parser.array? type)
(parser.class? type)]
- (^or [(#.Some _) _] [_ (#.Some _)])
+ (^or [{#.Some _} _] [_ {#.Some _}])
(in (list (` (.: (~ (..value_type #ManualPrM type))
("jvm object cast" (~ object))))))
diff --git a/stdlib/source/library/lux/ffi.lua.lux b/stdlib/source/library/lux/ffi.lua.lux
index 91f5b598c..8760b35f0 100644
--- a/stdlib/source/library/lux/ffi.lua.lux
+++ b/stdlib/source/library/lux/ffi.lua.lux
@@ -91,8 +91,8 @@
(type: Method
(Variant
- (#Static Static_Method)
- (#Virtual Virtual_Method)))
+ {#Static Static_Method}
+ {#Virtual Virtual_Method}))
(def: common_method
(Parser Common_Method)
@@ -114,8 +114,8 @@
(type: Member
(Variant
- (#Field Field)
- (#Method Method)))
+ {#Field Field}
+ {#Method Method}))
(def: member
(Parser Member)
@@ -140,7 +140,7 @@
(-> Code [Bit Code] Code)
(if nilable?
(` (case (~ input)
- (#.Some (~ g!temp))
+ {#.Some (~ g!temp)}
(~ g!temp)
#.None
@@ -153,7 +153,7 @@
(` (let [(~ g!temp) (~ output)]
(if ("lua object nil?" (~ g!temp))
#.None
- (#.Some (~ g!temp)))))
+ {#.Some (~ g!temp)})))
(` (let [(~ g!temp) (~ output)]
(if (not ("lua object nil?" (~ g!temp)))
(~ g!temp)
@@ -161,9 +161,9 @@
(type: Import
(Variant
- (#Class [Text Text (List Member)])
- (#Function Static_Method)
- (#Constant Field)))
+ {#Class [Text Text (List Member)]}
+ {#Function Static_Method}
+ {#Constant Field}))
(def: import
($_ <>.or
@@ -221,7 +221,7 @@
... (import: (os/getenv [..String] "io" "?" ..String)))}
(with_identifiers [g!temp]
(case import
- (#Class [class format members])
+ {#Class [class format members]}
(with_identifiers [g!object]
(let [qualify (: (-> Text Code)
(function (_ member_name)
@@ -232,7 +232,7 @@
g!type (code.local_identifier class)
real_class (text.replaced "/" "." class)
imported (case (text.all_split_by "/" class)
- (#.Item head tail)
+ {#.Item head tail}
(list\mix (function (_ sub super)
(` ("lua object get" (~ (code.text sub))
(:as (..Object .Any) (~ super)))))
@@ -245,7 +245,7 @@
(..Object (primitive (~ (code.text real_class))))))
(list\each (function (_ member)
(case member
- (#Field [static? field fieldT])
+ {#Field [static? field fieldT]}
(if static?
(` ((~! syntax:) ((~ (qualify field)) [])
(\ (~! meta.monad) (~' in)
@@ -260,9 +260,9 @@
(~ (without_nil g!temp fieldT (` ("lua object get" (~ (code.text field))
(:as (..Object .Any) (~ g!object))))))))))
- (#Method method)
+ {#Method method}
(case method
- (#Static [method alias inputsT io? try? outputT])
+ {#Static [method alias inputsT io? try? outputT]}
(..make_function (qualify (maybe.else method alias))
g!temp
(` ("lua object get" (~ (code.text method))
@@ -272,7 +272,7 @@
try?
outputT)
- (#Virtual [method alias inputsT io? try? outputT])
+ {#Virtual [method alias inputsT io? try? outputT]}
(let [g!inputs (input_variables inputsT)]
(` (def: ((~ (qualify (maybe.else method alias)))
[(~+ (list\each product.right g!inputs))]
@@ -292,7 +292,7 @@
(~+ (list\each (with_nil g!temp) g!inputs)))))))))))))
members)))))
- (#Function [name alias inputsT io? try? outputT])
+ {#Function [name alias inputsT io? try? outputT]}
(in (list (..make_function (code.local_identifier (maybe.else name alias))
g!temp
(` ("lua constant" (~ (code.text (text.replaced "/" "." name)))))
@@ -301,7 +301,7 @@
try?
outputT)))
- (#Constant [_ name fieldT])
+ {#Constant [_ name fieldT]}
(in (list (` ((~! syntax:) ((~ (code.local_identifier name)) [])
(\ (~! meta.monad) (~' in)
(list (` (.:as (~ (nilable_type fieldT))
diff --git a/stdlib/source/library/lux/ffi.old.lux b/stdlib/source/library/lux/ffi.old.lux
index 6e77cb642..ce87fcbec 100644
--- a/stdlib/source/library/lux/ffi.old.lux
+++ b/stdlib/source/library/lux/ffi.old.lux
@@ -78,10 +78,10 @@
(type: GenericType
(Rec GenericType
(Variant
- (#GenericTypeVar Text)
- (#GenericClass [Text (List GenericType)])
- (#GenericArray GenericType)
- (#GenericWildcard (Maybe [BoundKind GenericType])))))
+ {#GenericTypeVar Text}
+ {#GenericClass [Text (List GenericType)]}
+ {#GenericArray GenericType}
+ {#GenericWildcard (Maybe [BoundKind GenericType])})))
(type: Type_Parameter
[Text (List GenericType)])
@@ -147,8 +147,8 @@
(type: FieldDecl
(Variant
- (#ConstantField GenericType Code)
- (#VariableField State GenericType)))
+ {#ConstantField GenericType Code}
+ {#VariableField State GenericType}))
(type: MethodDecl
(Record
@@ -167,42 +167,42 @@
(type: Method_Definition
(Variant
- (#ConstructorMethod [Bit
+ {#ConstructorMethod [Bit
(List Type_Parameter)
(List ArgDecl)
(List ConstructorArg)
Code
- (List GenericType)])
- (#VirtualMethod [Bit
+ (List GenericType)]}
+ {#VirtualMethod [Bit
Bit
(List Type_Parameter)
Text
(List ArgDecl)
GenericType
Code
- (List GenericType)])
- (#OverridenMethod [Bit
+ (List GenericType)]}
+ {#OverridenMethod [Bit
Class_Declaration
(List Type_Parameter)
Text
(List ArgDecl)
GenericType
Code
- (List GenericType)])
- (#StaticMethod [Bit
+ (List GenericType)]}
+ {#StaticMethod [Bit
(List Type_Parameter)
(List ArgDecl)
GenericType
Code
- (List GenericType)])
- (#AbstractMethod [(List Type_Parameter)
+ (List GenericType)]}
+ {#AbstractMethod [(List Type_Parameter)
(List ArgDecl)
GenericType
- (List GenericType)])
- (#NativeMethod [(List Type_Parameter)
+ (List GenericType)]}
+ {#NativeMethod [(List Type_Parameter)
(List ArgDecl)
GenericType
- (List GenericType)])))
+ (List GenericType)]}))
(type: Partial_Call
(Record
@@ -245,10 +245,10 @@
(type: Import_Member_Declaration
(Variant
- (#EnumDecl (List Text))
- (#ConstructorDecl [ImportMethodCommons ImportConstructorDecl])
- (#MethodDecl [ImportMethodCommons ImportMethodDecl])
- (#FieldAccessDecl ImportFieldDecl)))
+ {#EnumDecl (List Text)}
+ {#ConstructorDecl [ImportMethodCommons ImportConstructorDecl]}
+ {#MethodDecl [ImportMethodCommons ImportMethodDecl]}
+ {#FieldAccessDecl ImportFieldDecl}))
... Utils
(def: (manual_primitive_type class)
@@ -256,7 +256,7 @@
(case class
(^template [<prim> <type>]
[<prim>
- (#.Some (' <type>))])
+ {#.Some (' <type>)}])
(["boolean" (primitive "java.lang.Boolean")]
["byte" (primitive "java.lang.Byte")]
["short" (primitive "java.lang.Short")]
@@ -275,7 +275,7 @@
(case class
(^template [<prim> <type>]
[<prim>
- (#.Some (' <type>))])
+ {#.Some (' <type>)}])
(["boolean" .Bit]
["byte" .Int]
["short" .Int]
@@ -300,12 +300,12 @@
(case [name+params mode in_array?]
(^multi [[prim #.End] #ManualPrM #0]
[(manual_primitive_type prim)
- (#.Some output)])
+ {#.Some output}])
output
(^multi [[prim #.End] #AutoPrM #0]
[(auto_primitive_type prim)
- (#.Some output)])
+ {#.Some output}])
output
[[name params] _ _]
@@ -316,7 +316,7 @@
(def: (class_type' mode type_params in_array? class)
(-> Primitive_Mode (List Type_Parameter) Bit GenericType Code)
(case class
- (#GenericTypeVar name)
+ {#GenericTypeVar name}
(case (list.example (function (_ [pname pbounds])
(and (text\= name pname)
(not (list.empty? pbounds))))
@@ -324,21 +324,21 @@
#.None
(code.identifier ["" name])
- (#.Some [pname pbounds])
+ {#.Some [pname pbounds]}
(class_type' mode type_params in_array? (maybe.trusted (list.head pbounds))))
- (#GenericClass name+params)
+ {#GenericClass name+params}
(generic_class_type' mode type_params in_array? name+params
class_type')
- (#GenericArray param)
+ {#GenericArray param}
(let [=param (class_type' mode type_params #1 param)]
(` ((~! array.Array) (~ =param))))
- (^or (#GenericWildcard #.None) (#GenericWildcard (#.Some [#LowerBound _])))
+ (^or {#GenericWildcard #.None} {#GenericWildcard {#.Some [#LowerBound _]}})
(` .Any)
- (#GenericWildcard (#.Some [#UpperBound upper_bound]))
+ {#GenericWildcard {#.Some [#UpperBound upper_bound]}}
(class_type' mode type_params in_array? upper_bound)
))
@@ -358,7 +358,7 @@
#.End
(code.identifier ["" pname])
- (#.Item bound1 _)
+ {#.Item bound1 _}
(class_type #ManualPrM class_params bound1))))
class_params)]
(` (primitive (~ (code.text (safe class_name)))
@@ -369,7 +369,7 @@
(def: (simple_class$ env class)
(-> (List Type_Parameter) GenericType Text)
(case class
- (#GenericTypeVar name)
+ {#GenericTypeVar name}
(case (list.example (function (_ [pname pbounds])
(and (text\= name pname)
(not (list.empty? pbounds))))
@@ -377,25 +377,25 @@
#.None
type_var_class
- (#.Some [pname pbounds])
+ {#.Some [pname pbounds]}
(simple_class$ env (maybe.trusted (list.head pbounds))))
- (^or (#GenericWildcard #.None) (#GenericWildcard (#.Some [#LowerBound _])))
+ (^or {#GenericWildcard #.None} {#GenericWildcard {#.Some [#LowerBound _]}})
type_var_class
- (#GenericWildcard (#.Some [#UpperBound upper_bound]))
+ {#GenericWildcard {#.Some [#UpperBound upper_bound]}}
(simple_class$ env upper_bound)
- (#GenericClass name env)
+ {#GenericClass name env}
(safe name)
- (#GenericArray param')
+ {#GenericArray param'}
(case param'
- (#GenericArray param)
+ {#GenericArray param}
(format "[" (simple_class$ env param))
(^template [<prim> <class>]
- [(#GenericClass <prim> #.End)
+ [{#GenericClass <prim> #.End}
<class>])
(["boolean" "[Z"]
["byte" "[B"]
@@ -436,8 +436,8 @@
(-> (-> Code Code) Code Code)
(case (f input)
(^template [<tag>]
- [[meta (<tag> parts)]
- [meta (<tag> (list\each (pre_walk_replace f) parts))]])
+ [[meta {<tag> parts}]
+ [meta {<tag> (list\each (pre_walk_replace f) parts)}]])
([#.Form]
[#.Variant]
[#.Tuple])
@@ -448,7 +448,7 @@
(def: (parser_replacer p ast)
(-> (Parser Code) (-> Code Code))
(case (<>.result p (list ast))
- (#.Right [#.End ast'])
+ {#.Right [#.End ast']}
ast'
_
@@ -458,10 +458,10 @@
(def: (field_parser class_name [[field_name _ _] field])
(-> Text [Member_Declaration FieldDecl] (Parser Code))
(case field
- (#ConstantField _)
+ {#ConstantField _}
(get_const_parser class_name field_name)
- (#VariableField _)
+ {#VariableField _}
(<>.either (get_var_parser class_name field_name)
(put_var_parser class_name field_name))))
@@ -505,20 +505,20 @@
(def: (method_parser params class_name [[method_name _ _] meth_def])
(-> (List Type_Parameter) Text [Member_Declaration Method_Definition] (Parser Code))
(case meth_def
- (#ConstructorMethod strict? type_vars args constructor_args return_expr exs)
+ {#ConstructorMethod strict? type_vars args constructor_args return_expr exs}
(constructor_parser params class_name args)
- (#StaticMethod strict? type_vars args return_type return_expr exs)
+ {#StaticMethod strict? type_vars args return_type return_expr exs}
(static_method_parser params class_name method_name args)
- (^or (#VirtualMethod final? strict? type_vars self_name args return_type return_expr exs)
- (#OverridenMethod strict? owner_class type_vars self_name args return_type return_expr exs))
+ (^or {#VirtualMethod final? strict? type_vars self_name args return_type return_expr exs}
+ {#OverridenMethod strict? owner_class type_vars self_name args return_type return_expr exs})
(special_method_parser params class_name method_name args)
- (#AbstractMethod type_vars args return_type exs)
+ {#AbstractMethod type_vars args return_type exs}
(virtual_method_parser params class_name method_name args)
- (#NativeMethod type_vars args return_type exs)
+ {#NativeMethod type_vars args return_type exs}
(virtual_method_parser params class_name method_name args)))
... Parsers
@@ -556,24 +556,24 @@
($_ <>.either
(do <>.monad
[_ (<code>.this! (' ?))]
- (in (#GenericWildcard #.None)))
+ (in {#GenericWildcard #.None}))
(<code>.tuple (do <>.monad
[_ (<code>.this! (' ?))
bound_kind bound_kind^
bound recur^]
- (in (#GenericWildcard (#.Some [bound_kind bound])))))
+ (in {#GenericWildcard {#.Some [bound_kind bound]}})))
(do <>.monad
[name <code>.local_identifier
_ (no_periods_assertion name)]
(if (list.member? text.equivalence (list\each product.left type_vars) name)
- (in (#GenericTypeVar name))
- (in (#GenericClass name (list)))))
+ (in {#GenericTypeVar name})
+ (in {#GenericClass name (list)})))
(<code>.tuple (do <>.monad
[component recur^]
(case component
(^template [<class> <name>]
- [(#GenericClass <name> #.End)
- (in (#GenericClass <class> (list)))])
+ [{#GenericClass <name> #.End}
+ (in {#GenericClass <class> (list)})])
(["[Z" "boolean"]
["[B" "byte"]
["[S" "short"]
@@ -584,14 +584,14 @@
["[C" "char"])
_
- (in (#GenericArray component)))))
+ (in {#GenericArray component}))))
(<code>.form (do <>.monad
[name <code>.local_identifier
_ (no_periods_assertion name)
params (<>.some recur^)
_ (<>.assertion (format name " cannot be a type-parameter!")
(not (list.member? text.equivalence (list\each product.left type_vars) name)))]
- (in (#GenericClass name params))))
+ (in {#GenericClass name params})))
))))
(def: type_param^
@@ -702,14 +702,14 @@
anns ..annotations^
type (..generic_type^ type_vars)
body <code>.any]
- (in [[name #PublicP anns] (#ConstantField [type body])])))
+ (in [[name #PublicP anns] {#ConstantField [type body]}])))
(<code>.form (do <>.monad
[pm privacy_modifier^
sm state_modifier^
name <code>.local_identifier
anns ..annotations^
type (..generic_type^ type_vars)]
- (in [[name pm anns] (#VariableField [sm type])])))))
+ (in [[name pm anns] {#VariableField [sm type]}])))))
(def: (arg_decl^ type_vars)
(-> (List Type_Parameter) (Parser ArgDecl))
@@ -744,7 +744,7 @@
(in [[#member_name constructor_method_name
#member_privacy pm
#member_anns annotations]
- (#ConstructorMethod strict_fp? method_vars arg_decls constructor_args body exs)]))))
+ {#ConstructorMethod strict_fp? method_vars arg_decls constructor_args body exs}]))))
(def: (virtual_method_def^ class_vars)
(-> (List Type_Parameter) (Parser [Member_Declaration Method_Definition]))
@@ -765,10 +765,10 @@
(in [[#member_name name
#member_privacy pm
#member_anns annotations]
- (#VirtualMethod final? strict_fp?
- method_vars
- this_name arg_decls return_type
- body exs)]))))
+ {#VirtualMethod final? strict_fp?
+ method_vars
+ this_name arg_decls return_type
+ body exs}]))))
(def: overriden_method_def^
(Parser [Member_Declaration Method_Definition])
@@ -788,10 +788,10 @@
(in [[#member_name name
#member_privacy #PublicP
#member_anns annotations]
- (#OverridenMethod strict_fp?
- owner_class method_vars
- this_name arg_decls return_type
- body exs)]))))
+ {#OverridenMethod strict_fp?
+ owner_class method_vars
+ this_name arg_decls return_type
+ body exs}]))))
(def: static_method_def^
(Parser [Member_Declaration Method_Definition])
@@ -810,7 +810,7 @@
(in [[#member_name name
#member_privacy pm
#member_anns annotations]
- (#StaticMethod strict_fp? method_vars arg_decls return_type body exs)]))))
+ {#StaticMethod strict_fp? method_vars arg_decls return_type body exs}]))))
(def: abstract_method_def^
(Parser [Member_Declaration Method_Definition])
@@ -827,7 +827,7 @@
(in [[#member_name name
#member_privacy pm
#member_anns annotations]
- (#AbstractMethod method_vars arg_decls return_type exs)]))))
+ {#AbstractMethod method_vars arg_decls return_type exs}]))))
(def: native_method_def^
(Parser [Member_Declaration Method_Definition])
@@ -844,7 +844,7 @@
(in [[#member_name name
#member_privacy pm
#member_anns annotations]
- (#NativeMethod method_vars arg_decls return_type exs)]))))
+ {#NativeMethod method_vars arg_decls return_type exs}]))))
(def: (method_def^ class_vars)
(-> (List Type_Parameter) (Parser [Member_Declaration Method_Definition]))
@@ -885,7 +885,7 @@
(<code>.form (do <>.monad
[_ (<code>.this! (' "enum"))
enum_members (<>.some <code>.local_identifier)]
- (in (#EnumDecl enum_members))))
+ (in {#EnumDecl enum_members})))
(<code>.form (do <>.monad
[tvars ..type_params^
_ (<code>.this! (' new))
@@ -894,7 +894,7 @@
?prim_mode (<>.maybe primitive_mode^)
args (..import_member_args^ total_vars)
[io? try? maybe?] import_member_return_flags^]
- (in (#ConstructorDecl [[#import_member_mode (maybe.else #AutoPrM ?prim_mode)
+ (in {#ConstructorDecl [[#import_member_mode (maybe.else #AutoPrM ?prim_mode)
#import_member_alias (maybe.else "new" ?alias)
#import_member_kind #VirtualIMK
#import_member_tvars tvars
@@ -902,7 +902,7 @@
#import_member_maybe? maybe?
#import_member_try? try?
#import_member_io? io?]
- []]))))
+ []]})))
(<code>.form (do <>.monad
[kind (: (Parser ImportMethodKind)
(<>.or (<code>.this! (' "static"))
@@ -915,7 +915,7 @@
args (..import_member_args^ total_vars)
[io? try? maybe?] import_member_return_flags^
return (..generic_type^ total_vars)]
- (in (#MethodDecl [[#import_member_mode (maybe.else #AutoPrM ?prim_mode)
+ (in {#MethodDecl [[#import_member_mode (maybe.else #AutoPrM ?prim_mode)
#import_member_alias (maybe.else name ?alias)
#import_member_kind kind
#import_member_tvars tvars
@@ -924,7 +924,7 @@
#import_member_try? try?
#import_member_io? io?]
[#import_method_name name
- #import_method_return return]]))))
+ #import_method_return return]]})))
(<code>.form (do <>.monad
[static? (<>.parses? (<code>.this! (' "static")))
name <code>.local_identifier
@@ -932,12 +932,12 @@
gtype (..generic_type^ owner_vars)
maybe? (<>.parses? (<code>.this! (' "?")))
setter? (<>.parses? (<code>.this! (' #!)))]
- (in (#FieldAccessDecl [#import_field_mode (maybe.else #AutoPrM ?prim_mode)
+ (in {#FieldAccessDecl [#import_field_mode (maybe.else #AutoPrM ?prim_mode)
#import_field_name name
#import_field_static? static?
#import_field_maybe? maybe?
#import_field_setter? setter?
- #import_field_type gtype]))))
+ #import_field_type gtype]})))
))
(def: bundle
@@ -992,19 +992,19 @@
(def: (generic_type$ gtype)
(-> GenericType JVM_Code)
(case gtype
- (#GenericTypeVar name)
+ {#GenericTypeVar name}
name
- (#GenericClass name params)
+ {#GenericClass name params}
(format "(" (safe name) " " (spaced (list\each generic_type$ params)) ")")
- (#GenericArray param)
+ {#GenericArray param}
(format "(" array.type_name " " (generic_type$ param) ")")
- (#GenericWildcard #.None)
+ {#GenericWildcard #.None}
"?"
- (#GenericWildcard (#.Some [bound_kind bound]))
+ {#GenericWildcard {#.Some [bound_kind bound]}}
(format (bound_kind$ bound_kind) (generic_type$ bound))))
(def: (type_param$ [name bounds])
@@ -1041,7 +1041,7 @@
(def: (field_decl$ [[name pm anns] field])
(-> [Member_Declaration FieldDecl] JVM_Code)
(case field
- (#ConstantField class value)
+ {#ConstantField class value}
(with_parens
(spaced (list "constant" name
(with_brackets (spaced (list\each annotation$ anns)))
@@ -1049,7 +1049,7 @@
(code.format value))
))
- (#VariableField sm class)
+ {#VariableField sm class}
(with_parens
(spaced (list "variable" name
(privacy_modifier$ pm)
@@ -1072,7 +1072,7 @@
(def: (method_def$ replacer super_class [[name pm anns] method_def])
(-> (-> Code Code) Super_Class_Decl [Member_Declaration Method_Definition] JVM_Code)
(case method_def
- (#ConstructorMethod strict_fp? type_vars arg_decls constructor_args body exs)
+ {#ConstructorMethod strict_fp? type_vars arg_decls constructor_args body exs}
(with_parens
(spaced (list "init"
(privacy_modifier$ pm)
@@ -1085,7 +1085,7 @@
(code.format (pre_walk_replace replacer body))
)))
- (#VirtualMethod final? strict_fp? type_vars this_name arg_decls return_type body exs)
+ {#VirtualMethod final? strict_fp? type_vars this_name arg_decls return_type body exs}
(with_parens
(spaced (list "virtual"
name
@@ -1100,7 +1100,7 @@
(code.format (pre_walk_replace replacer (` (let [(~ (code.local_identifier this_name)) (~' _jvm_this)]
(~ body))))))))
- (#OverridenMethod strict_fp? class_decl type_vars this_name arg_decls return_type body exs)
+ {#OverridenMethod strict_fp? class_decl type_vars this_name arg_decls return_type body exs}
(let [super_replacer (parser_replacer (<code>.form (do <>.monad
[_ (<code>.this! (' ::super!))
args (<code>.tuple (<>.exactly (list.size arg_decls) <code>.any))
@@ -1128,7 +1128,7 @@
(code.format))
))))
- (#StaticMethod strict_fp? type_vars arg_decls return_type body exs)
+ {#StaticMethod strict_fp? type_vars arg_decls return_type body exs}
(with_parens
(spaced (list "static"
name
@@ -1141,7 +1141,7 @@
(generic_type$ return_type)
(code.format (pre_walk_replace replacer body)))))
- (#AbstractMethod type_vars arg_decls return_type exs)
+ {#AbstractMethod type_vars arg_decls return_type exs}
(with_parens
(spaced (list "abstract"
name
@@ -1152,7 +1152,7 @@
(with_brackets (spaced (list\each arg_decl$ arg_decls)))
(generic_type$ return_type))))
- (#NativeMethod type_vars arg_decls return_type exs)
+ {#NativeMethod type_vars arg_decls return_type exs}
(with_parens
(spaced (list "native"
name
@@ -1242,12 +1242,12 @@
(in (list (` (let [(~ g!temp) (~ expr)]
(if ("jvm object null?" (~ g!temp))
#.None
- (#.Some (~ g!temp)))))))))
+ {#.Some (~ g!temp)})))))))
(syntax: .public (!!! [expr <code>.any])
(with_identifiers [g!value]
(in (list (` (.case (~ expr)
- (#.Some (~ g!value))
+ {#.Some (~ g!value)}
(~ g!value)
#.None
@@ -1260,11 +1260,11 @@
class_type (` (.primitive (~ (code.text class_name))))
check_type (` (.Maybe (~ class_type)))
check_code (` (if ((~ (code.text (format "jvm instanceof" ":" class_name))) (~ g!unchecked))
- (#.Some (.:as (~ class_type)
- (~ g!unchecked)))
+ {#.Some (.:as (~ class_type)
+ (~ g!unchecked))}
#.None))]
(case unchecked
- (#.Some unchecked)
+ {#.Some unchecked}
(in (list (` (: (~ check_type)
(let [(~ g!unchecked) (~ unchecked)]
(~ check_code))))))
@@ -1299,10 +1299,10 @@
(def: (member_type_vars class_tvars member)
(-> (List Type_Parameter) Import_Member_Declaration (List Type_Parameter))
(case member
- (#ConstructorDecl [commons _])
+ {#ConstructorDecl [commons _]}
(list\composite class_tvars (value@ #import_member_tvars commons))
- (#MethodDecl [commons _])
+ {#MethodDecl [commons _]}
(case (value@ #import_member_kind commons)
#StaticIMK
(value@ #import_member_tvars commons)
@@ -1316,7 +1316,7 @@
(def: (member_def_arg_bindings type_params class member)
(-> (List Type_Parameter) Class_Declaration Import_Member_Declaration (Meta [(List [Bit Code]) (List Text) (List Code)]))
(case member
- (^or (#ConstructorDecl [commons _]) (#MethodDecl [commons _]))
+ (^or {#ConstructorDecl [commons _]} {#MethodDecl [commons _]})
(let [(^slots [#import_member_tvars #import_member_args]) commons]
(do [! meta.monad]
[arg_inputs (monad.each !
@@ -1343,7 +1343,7 @@
(def: (decorate_return_maybe class member return_term)
(-> Class_Declaration Import_Member_Declaration Code Code)
(case member
- (^or (#ConstructorDecl [commons _]) (#MethodDecl [commons _]))
+ (^or {#ConstructorDecl [commons _]} {#MethodDecl [commons _]})
(if (value@ #import_member_maybe? commons)
(` (??? (~ return_term)))
(let [g!temp (` ((~' ~') (~ (code.identifier ["" " Ω "]))))]
@@ -1362,7 +1362,7 @@
[(def: (<name> member return_term)
(-> Import_Member_Declaration Code Code)
(case member
- (^or (#ConstructorDecl [commons _]) (#MethodDecl [commons _]))
+ (^or {#ConstructorDecl [commons _]} {#MethodDecl [commons _]})
(if (value@ <tag> commons)
<term_trans>
return_term)
@@ -1437,7 +1437,7 @@
(list.only free_type_param?)
(list\each lux_type_parameter))]
(case member
- (#EnumDecl enum_members)
+ {#EnumDecl enum_members}
(macro.with_identifiers [g!_]
(do [! meta.monad]
[.let [enum_type (: Code
@@ -1458,7 +1458,7 @@
((~ (code.text (format "jvm getstatic" ":" full_name ":" name)))))))))]]
(in (list\each getter_interop enum_members))))
- (#ConstructorDecl [commons _])
+ {#ConstructorDecl [commons _]}
(do meta.monad
[.let [def_name (code.identifier ["" (..import_name import_format method_prefix (value@ #import_member_alias commons))])
jvm_extension (code.text (format "jvm new" ":" full_name ":" (text.interposed "," arg_classes)))
@@ -1470,7 +1470,7 @@
(in (list (` ((~! syntax:) ((~ def_name) [(~+ (syntax_inputs (list\each product.right arg_function_inputs)))])
((~' in) (.list (.` (~ jvm_interop)))))))))
- (#MethodDecl [commons method])
+ {#MethodDecl [commons method]}
(with_identifiers [g!obj]
(do meta.monad
[.let [def_name (code.identifier ["" (..import_name import_format method_prefix (value@ #import_member_alias commons))])
@@ -1504,7 +1504,7 @@
(~+ (syntax_inputs object_ast))])
((~' in) (.list (.` (~ jvm_interop))))))))))
- (#FieldAccessDecl fad)
+ {#FieldAccessDecl fad}
(do meta.monad
[.let [(^open "[0]") fad
base_gtype (class_type import_field_mode type_params import_field_type)
@@ -1583,12 +1583,12 @@
(-> Class_Declaration (Meta Class_Kind))
(let [class_name (..safe class_name)]
(case (..load_class class_name)
- (#try.Success class)
+ {#try.Success class}
(\ meta.monad in (if (interface? class)
#Interface
#Class))
- (#try.Failure error)
+ {#try.Failure error}
(meta.failure (format "Cannot load class: " class_name text.new_line
error)))))
@@ -1607,7 +1607,7 @@
size <code>.any])
(case type
(^template [<type> <array_op>]
- [(^ (#GenericClass <type> (list)))
+ [(^ {#GenericClass <type> (list)})
(in (list (` (<array_op> (~ size)))))])
(["boolean" "jvm znewarray"]
["byte" "jvm bnewarray"]
@@ -1629,18 +1629,18 @@
(if (type\= Any type)
(\ meta.monad in "java.lang.Object")
(case type
- (#.Primitive name params)
+ {#.Primitive name params}
(\ meta.monad in name)
- (#.Apply A F)
+ {#.Apply A F}
(case (type.applied (list A) F)
#.None
(meta.failure (format "Cannot apply type: " (type.format F) " to " (type.format A)))
- (#.Some type')
+ {#.Some type'}
(type_class_name type'))
- (#.Named _ type')
+ {#.Named _ type'}
(type_class_name type')
_
@@ -1649,7 +1649,7 @@
(syntax: .public (read! [idx <code>.any
array <code>.any])
(case array
- [_ (#.Identifier array_name)]
+ [_ {#.Identifier array_name}]
(do meta.monad
[array_type (meta.type array_name)
array_jvm_type (type_class_name array_type)]
@@ -1678,7 +1678,7 @@
value <code>.any
array <code>.any])
(case array
- [_ (#.Identifier array_name)]
+ [_ {#.Identifier array_name}]
(do meta.monad
[array_type (meta.type array_name)
array_jvm_type (type_class_name array_type)]
diff --git a/stdlib/source/library/lux/ffi.php.lux b/stdlib/source/library/lux/ffi.php.lux
index 78d75f269..ae8e4b347 100644
--- a/stdlib/source/library/lux/ffi.php.lux
+++ b/stdlib/source/library/lux/ffi.php.lux
@@ -99,8 +99,8 @@
(type: Method
(Variant
- (#Static Static_Method)
- (#Virtual Virtual_Method)))
+ {#Static Static_Method}
+ {#Virtual Virtual_Method}))
(def: common_method
(Parser Common_Method)
@@ -122,8 +122,8 @@
(type: Member
(Variant
- (#Field Field)
- (#Method Method)))
+ {#Field Field}
+ {#Method Method}))
(def: member
(Parser Member)
@@ -148,7 +148,7 @@
(-> Code [Bit Code] Code)
(if nullable?
(` (case (~ input)
- (#.Some (~ g!temp))
+ {#.Some (~ g!temp)}
(~ g!temp)
#.Null
@@ -161,7 +161,7 @@
(` (let [(~ g!temp) (~ output)]
(if ("php object null?" (~ g!temp))
#.None
- (#.Some (~ g!temp)))))
+ {#.Some (~ g!temp)})))
(` (let [(~ g!temp) (~ output)]
(if (not ("php object null?" (~ g!temp)))
(~ g!temp)
@@ -169,9 +169,9 @@
(type: Import
(Variant
- (#Class Text (Maybe Alias) Text (List Member))
- (#Function Static_Method)
- (#Constant Field)))
+ {#Class Text (Maybe Alias) Text (List Member)}
+ {#Function Static_Method}
+ {#Constant Field}))
(def: import
(Parser Import)
@@ -188,10 +188,10 @@
(syntax: .public (try [expression <code>.any])
... {#.doc (example (case (try (risky_computation input))
- ... (#.Right success)
+ ... {#.Right success}
... (do_something success)
- ... (#.Left error)
+ ... {#.Left error}
... (recover_from_failure error)))}
(in (list (` ("lux try" ((~! io.io) (~ expression)))))))
@@ -239,7 +239,7 @@
(syntax: .public (import: [import ..import])
(with_identifiers [g!temp]
(case import
- (#Class [class alias format members])
+ {#Class [class alias format members]}
(with_identifiers [g!object]
(let [qualify (: (-> Text Code)
(function (_ member_name)
@@ -253,7 +253,7 @@
(..Object (primitive (~ (code.text class))))))
(list\each (function (_ member)
(case member
- (#Field [static? field alias fieldT])
+ {#Field [static? field alias fieldT]}
(if static?
(` ((~! syntax:) ((~ (qualify (maybe.else field alias))) [])
(\ (~! meta.monad) (~' in)
@@ -267,9 +267,9 @@
(~ (without_null g!temp fieldT (` ("php object get" (~ (code.text field))
(:as (..Object .Any) (~ g!object))))))))))
- (#Method method)
+ {#Method method}
(case method
- (#Static [method alias inputsT io? try? outputT])
+ {#Static [method alias inputsT io? try? outputT]}
(..make_function (qualify (maybe.else method alias))
g!temp
(` ("php object get" (~ (code.text method))
@@ -280,7 +280,7 @@
try?
outputT)
- (#Virtual [method alias inputsT io? try? outputT])
+ {#Virtual [method alias inputsT io? try? outputT]}
(let [g!inputs (input_variables inputsT)]
(` (def: ((~ (qualify (maybe.else method alias)))
[(~+ (list\each product.right g!inputs))]
@@ -300,7 +300,7 @@
(~+ (list\each (with_null g!temp) g!inputs)))))))))))))
members)))))
- (#Function [name alias inputsT io? try? outputT])
+ {#Function [name alias inputsT io? try? outputT]}
(let [imported (` ("php constant" (~ (code.text name))))]
(in (list (..make_function (code.local_identifier (maybe.else name alias))
g!temp
@@ -310,7 +310,7 @@
try?
outputT))))
- (#Constant [_ name alias fieldT])
+ {#Constant [_ name alias fieldT]}
(let [imported (` ("php constant" (~ (code.text name))))]
(in (list (` ((~! syntax:) ((~ (code.local_identifier (maybe.else name alias))) [])
(\ (~! meta.monad) (~' in)
diff --git a/stdlib/source/library/lux/ffi.py.lux b/stdlib/source/library/lux/ffi.py.lux
index d5f1e23a2..ccee694ae 100644
--- a/stdlib/source/library/lux/ffi.py.lux
+++ b/stdlib/source/library/lux/ffi.py.lux
@@ -92,8 +92,8 @@
(type: Method
(Variant
- (#Static Static_Method)
- (#Virtual Virtual_Method)))
+ {#Static Static_Method}
+ {#Virtual Virtual_Method}))
(def: common_method
(Parser Common_Method)
@@ -115,9 +115,9 @@
(type: Member
(Variant
- (#Constructor Constructor)
- (#Field Field)
- (#Method Method)))
+ {#Constructor Constructor}
+ {#Field Field}
+ {#Method Method}))
(def: member
(Parser Member)
@@ -143,7 +143,7 @@
(-> Code [Bit Code] Code)
(if noneable?
(` (case (~ input)
- (#.Some (~ g!temp))
+ {#.Some (~ g!temp)}
(~ g!temp)
#.None
@@ -156,7 +156,7 @@
(` (let [(~ g!temp) (~ output)]
(if ("python object none?" (~ g!temp))
#.None
- (#.Some (~ g!temp)))))
+ {#.Some (~ g!temp)})))
(` (let [(~ g!temp) (~ output)]
(if (not ("python object none?" (~ g!temp)))
(~ g!temp)
@@ -164,8 +164,8 @@
(type: Import
(Variant
- (#Class [Text Text (List Member)])
- (#Function Static_Method)))
+ {#Class [Text Text (List Member)]}
+ {#Function Static_Method}))
(def: import
(Parser Import)
@@ -241,7 +241,7 @@
... ("static" getmtime [..String] "io" "try" ..Float)]))}
(with_identifiers [g!temp]
(case import
- (#Class [class format members])
+ {#Class [class format members]}
(with_identifiers [g!object]
(let [qualify (: (-> Text Code)
(function (_ member_name)
@@ -252,7 +252,7 @@
g!type (code.local_identifier class)
real_class (text.replaced "/" "." class)
imported (case (text.all_split_by "/" class)
- (#.Item head tail)
+ {#.Item head tail}
(list\mix (function (_ sub super)
(` ("python object get" (~ (code.text sub))
(:as (..Object .Any) (~ super)))))
@@ -265,7 +265,7 @@
(..Object (primitive (~ (code.text real_class))))))
(list\each (function (_ member)
(case member
- (#Constructor inputsT)
+ {#Constructor inputsT}
(let [g!inputs (input_variables inputsT)]
(` (def: ((~ (qualify "new"))
[(~+ (list\each product.right g!inputs))])
@@ -276,7 +276,7 @@
(:as ..Function (~ imported))
(~+ (list\each (with_none g!temp) g!inputs)))))))
- (#Field [static? field fieldT])
+ {#Field [static? field fieldT]}
(if static?
(` ((~! syntax:) ((~ (qualify field)) [])
(\ (~! meta.monad) (~' in)
@@ -291,9 +291,9 @@
(~ (without_none g!temp fieldT (` ("python object get" (~ (code.text field))
(:as (..Object .Any) (~ g!object))))))))))
- (#Method method)
+ {#Method method}
(case method
- (#Static [method alias inputsT io? try? outputT])
+ {#Static [method alias inputsT io? try? outputT]}
(..make_function (qualify (maybe.else method alias))
g!temp
(` ("python object get" (~ (code.text method))
@@ -303,7 +303,7 @@
try?
outputT)
- (#Virtual [method alias inputsT io? try? outputT])
+ {#Virtual [method alias inputsT io? try? outputT]}
(let [g!inputs (input_variables inputsT)]
(` (def: ((~ (qualify (maybe.else method alias)))
[(~+ (list\each product.right g!inputs))]
@@ -323,7 +323,7 @@
(~+ (list\each (with_none g!temp) g!inputs)))))))))))))
members)))))
- (#Function [name alias inputsT io? try? outputT])
+ {#Function [name alias inputsT io? try? outputT]}
(in (list (..make_function (code.local_identifier (maybe.else name alias))
g!temp
(` ("python constant" (~ (code.text name))))
diff --git a/stdlib/source/library/lux/ffi.rb.lux b/stdlib/source/library/lux/ffi.rb.lux
index 62620c6af..c2d06bb78 100644
--- a/stdlib/source/library/lux/ffi.rb.lux
+++ b/stdlib/source/library/lux/ffi.rb.lux
@@ -99,8 +99,8 @@
(type: Method
(Variant
- (#Static Static_Method)
- (#Virtual Virtual_Method)))
+ {#Static Static_Method}
+ {#Virtual Virtual_Method}))
(def: common_method
(Parser Common_Method)
@@ -122,8 +122,8 @@
(type: Member
(Variant
- (#Field Field)
- (#Method Method)))
+ {#Field Field}
+ {#Method Method}))
(def: member
(Parser Member)
@@ -148,7 +148,7 @@
(-> Code [Bit Code] Code)
(if nilable?
(` (case (~ input)
- (#.Some (~ g!temp))
+ {#.Some (~ g!temp)}
(~ g!temp)
#.None
@@ -161,7 +161,7 @@
(` (let [(~ g!temp) (~ output)]
(if ("ruby object nil?" (~ g!temp))
#.None
- (#.Some (~ g!temp)))))
+ {#.Some (~ g!temp)})))
(` (let [(~ g!temp) (~ output)]
(if (not ("ruby object nil?" (~ g!temp)))
(~ g!temp)
@@ -169,9 +169,9 @@
(type: Import
(Variant
- (#Class Text (Maybe Alias) Text (List Member))
- (#Function Static_Method)
- (#Constant Field)))
+ {#Class Text (Maybe Alias) Text (List Member)}
+ {#Function Static_Method}
+ {#Constant Field}))
(def: import
(Parser [(Maybe Text) Import])
@@ -232,7 +232,7 @@
(syntax: .public (import: [[?module import] ..import])
(with_identifiers [g!temp]
(case import
- (#Class [class alias format members])
+ {#Class [class alias format members]}
(with_identifiers [g!object]
(let [qualify (: (-> Text Code)
(function (_ member_name)
@@ -243,7 +243,7 @@
g!type (code.local_identifier (maybe.else class alias))
module_import (: (List Code)
(case ?module
- (#.Some module)
+ {#.Some module}
(list (` ("ruby import" (~ (code.text module)))))
#.None
@@ -253,7 +253,7 @@
(..Object (primitive (~ (code.text class))))))
(list\each (function (_ member)
(case member
- (#Field [static? field alias fieldT])
+ {#Field [static? field alias fieldT]}
(if static?
(` ((~! syntax:) ((~ (qualify (maybe.else field alias))) [])
(\ (~! meta.monad) (~' in)
@@ -269,9 +269,9 @@
(~ (without_nil g!temp fieldT (` ("ruby object get" (~ (code.text field))
(:as (..Object .Any) (~ g!object))))))))))
- (#Method method)
+ {#Method method}
(case method
- (#Static [method alias inputsT io? try? outputT])
+ {#Static [method alias inputsT io? try? outputT]}
(..make_function (qualify (maybe.else method alias))
g!temp
(` ("ruby object get" (~ (code.text method))
@@ -284,7 +284,7 @@
try?
outputT)
- (#Virtual [method alias inputsT io? try? outputT])
+ {#Virtual [method alias inputsT io? try? outputT]}
(let [g!inputs (input_variables inputsT)]
(` (def: ((~ (qualify (maybe.else method alias)))
[(~+ (list\each product.right g!inputs))]
@@ -304,10 +304,10 @@
(~+ (list\each (with_nil g!temp) g!inputs)))))))))))))
members)))))
- (#Function [name alias inputsT io? try? outputT])
+ {#Function [name alias inputsT io? try? outputT]}
(let [imported (` (.exec
(~+ (case ?module
- (#.Some module)
+ {#.Some module}
(list (` ("ruby import" (~ (code.text module)))))
#.None
@@ -321,10 +321,10 @@
try?
outputT))))
- (#Constant [_ name alias fieldT])
+ {#Constant [_ name alias fieldT]}
(let [imported (` (.exec
(~+ (case ?module
- (#.Some module)
+ {#.Some module}
(list (` ("ruby import" (~ (code.text module)))))
#.None
diff --git a/stdlib/source/library/lux/ffi.scm.lux b/stdlib/source/library/lux/ffi.scm.lux
index 0862942c1..18800df0a 100644
--- a/stdlib/source/library/lux/ffi.scm.lux
+++ b/stdlib/source/library/lux/ffi.scm.lux
@@ -120,7 +120,7 @@
(-> Code [Bit Code] Code)
(if nilable?
(` (case (~ input)
- (#.Some (~ g!temp))
+ {#.Some (~ g!temp)}
(~ g!temp)
#.None
@@ -133,7 +133,7 @@
(` (let [(~ g!temp) (~ output)]
(if ("scheme object nil?" (~ g!temp))
#.None
- (#.Some (~ g!temp)))))
+ {#.Some (~ g!temp)})))
(` (let [(~ g!temp) (~ output)]
(if (not ("scheme object nil?" (~ g!temp)))
(~ g!temp)
@@ -141,8 +141,8 @@
(type: Import
(Variant
- (#Function Common_Method)
- (#Constant Field)))
+ {#Function Common_Method}
+ {#Constant Field}))
(def: import
(Parser Import)
@@ -153,10 +153,10 @@
(syntax: .public (try [expression <code>.any])
... {#.doc (example (case (try (risky_computation input))
- ... (#.Right success)
+ ... {#.Right success}
... (do_something success)
- ... (#.Left error)
+ ... {#.Left error}
... (recover_from_failure error)))}
(in (list (` ("lux try" ((~! io.io) (~ expression)))))))
@@ -204,7 +204,7 @@
(syntax: .public (import: [import ..import])
(with_identifiers [g!temp]
(case import
- (#Function [name alias inputsT io? try? outputT])
+ {#Function [name alias inputsT io? try? outputT]}
(let [imported (` ("scheme constant" (~ (code.text name))))]
(in (list (..make_function (code.local_identifier (maybe.else name alias))
g!temp
@@ -214,7 +214,7 @@
try?
outputT))))
- (#Constant [_ name alias fieldT])
+ {#Constant [_ name alias fieldT]}
(let [imported (` ("scheme constant" (~ (code.text name))))]
(in (list (` ((~! syntax:) ((~ (code.local_identifier (maybe.else name alias))))
(\ (~! meta.monad) (~' in)
diff --git a/stdlib/source/library/lux/macro.lux b/stdlib/source/library/lux/macro.lux
index 46d2ada34..5962e36fa 100644
--- a/stdlib/source/library/lux/macro.lux
+++ b/stdlib/source/library/lux/macro.lux
@@ -21,11 +21,11 @@
(def: .public (single_expansion syntax)
(-> Code (Meta (List Code)))
(case syntax
- [_ (#.Form (#.Item [[_ (#.Identifier name)] args]))]
+ [_ {#.Form {#.Item [[_ {#.Identifier name}] args]}}]
(do //.monad
[?macro (//.macro name)]
(case ?macro
- (#.Some macro)
+ {#.Some macro}
((:as Macro' macro) args)
#.None
@@ -37,11 +37,11 @@
(def: .public (expansion syntax)
(-> Code (Meta (List Code)))
(case syntax
- [_ (#.Form (#.Item [[_ (#.Identifier name)] args]))]
+ [_ {#.Form {#.Item [[_ {#.Identifier name}] args]}}]
(do //.monad
[?macro (//.macro name)]
(case ?macro
- (#.Some macro)
+ {#.Some macro}
(do [! //.monad]
[top_level_expansion ((:as Macro' macro) args)]
(|> top_level_expansion
@@ -57,11 +57,11 @@
(def: .public (full_expansion syntax)
(-> Code (Meta (List Code)))
(case syntax
- [_ (#.Form (#.Item [[_ (#.Identifier name)] args]))]
+ [_ {#.Form {#.Item [[_ {#.Identifier name}] args]}}]
(do //.monad
[?macro (//.macro name)]
(case ?macro
- (#.Some macro)
+ {#.Some macro}
(do //.monad
[expansion ((:as Macro' macro) args)
expansion' (monad.each //.monad full_expansion expansion)]
@@ -72,18 +72,18 @@
[parts' (monad.each //.monad full_expansion (list& (code.identifier name) args))]
(in (list (code.form (list\conjoint parts')))))))
- [_ (#.Form (#.Item [harg targs]))]
+ [_ {#.Form {#.Item [harg targs]}}]
(do //.monad
[harg+ (full_expansion harg)
targs+ (monad.each //.monad full_expansion targs)]
(in (list (code.form (list\composite harg+ (list\conjoint (: (List (List Code)) targs+)))))))
- [_ (#.Variant members)]
+ [_ {#.Variant members}]
(do //.monad
[members' (monad.each //.monad full_expansion members)]
(in (list (code.variant (list\conjoint members')))))
- [_ (#.Tuple members)]
+ [_ {#.Tuple members}]
(do //.monad
[members' (monad.each //.monad full_expansion members)]
(in (list (code.tuple (list\conjoint members')))))
@@ -103,7 +103,7 @@
(def: (local_identifier ast)
(-> Code (Meta Text))
(case ast
- [_ (#.Identifier [_ name])]
+ [_ {#.Identifier [_ name]}]
(\ //.monad in name)
_
@@ -117,7 +117,7 @@
(macro: .public (with_identifiers tokens)
(case tokens
- (^ (list [_ (#.Tuple identifiers)] body))
+ (^ (list [_ {#.Tuple identifiers}] body))
(do [! //.monad]
[identifier_names (monad.each ! ..local_identifier identifiers)
.let [identifier_defs (list\conjoint (list\each (: (-> Text (List Code))
@@ -148,16 +148,16 @@
macro_name [module short]]
(case (: (Maybe [Bit Code])
(case tokens
- (^ (list [_ (#.Text "omit")]
+ (^ (list [_ {#.Text "omit"}]
token))
- (#.Some [#1 token])
+ {#.Some [#1 token]}
(^ (list token))
- (#.Some [#0 token])
+ {#.Some [#0 token]}
_
#.None))
- (#.Some [omit? token])
+ {#.Some [omit? token]}
(do //.monad
[location //.location
output (<func> token)
diff --git a/stdlib/source/library/lux/macro/code.lux b/stdlib/source/library/lux/macro/code.lux
index b80a1a418..aaa054c96 100644
--- a/stdlib/source/library/lux/macro/code.lux
+++ b/stdlib/source/library/lux/macro/code.lux
@@ -20,17 +20,17 @@
["[0]" location]]]])
... (type: (Code' w)
-... (#.Bit Bit)
-... (#.Nat Nat)
-... (#.Int Int)
-... (#.Rev Rev)
-... (#.Frac Frac)
-... (#.Text Text)
-... (#.Identifier Name)
-... (#.Tag Name)
-... (#.Form (List (w (Code' w))))
-... (#.Variant (List (w (Code' w))))
-... (#.Tuple (List (w (Code' w)))))
+... {#.Bit Bit}
+... {#.Nat Nat}
+... {#.Int Int}
+... {#.Rev Rev}
+... {#.Frac Frac}
+... {#.Text Text}
+... {#.Identifier Name}
+... {#.Tag Name}
+... {#.Form (List (w (Code' w)))}
+... {#.Variant (List (w (Code' w)))}
+... {#.Tuple (List (w (Code' w)))})
... (type: Code
... (Ann Location (Code' (Ann Location))))
@@ -38,7 +38,7 @@
(template [<name> <type> <tag>]
[(def: .public (<name> x)
(-> <type> Code)
- [location.dummy (<tag> x)])]
+ [location.dummy {<tag> x}])]
[bit Bit #.Bit]
[nat Nat #.Nat]
@@ -56,7 +56,7 @@
(template [<name> <tag>]
[(def: .public (<name> name)
(-> Text Code)
- [location.dummy (<tag> ["" name])])]
+ [location.dummy {<tag> ["" name]}])]
[local_identifier #.Identifier]
[local_tag #.Tag])
@@ -67,7 +67,7 @@
(def: (= x y)
(case [x y]
(^template [<tag> <eq>]
- [[[_ (<tag> x')] [_ (<tag> y')]]
+ [[[_ {<tag> x'}] [_ {<tag> y'}]]
(\ <eq> = x' y')])
([#.Bit bit.equivalence]
[#.Nat nat.equivalence]
@@ -79,7 +79,7 @@
[#.Tag name.equivalence])
(^template [<tag>]
- [[[_ (<tag> xs')] [_ (<tag> ys')]]
+ [[[_ {<tag> xs'}] [_ {<tag> ys'}]]
(\ (list.equivalence =) = xs' ys')])
([#.Form]
[#.Variant]
@@ -92,7 +92,7 @@
(-> Code Text)
(case ast
(^template [<tag> <struct>]
- [[_ (<tag> value)]
+ [[_ {<tag> value}]
(\ <struct> encoded value)])
([#.Bit bit.codec]
[#.Nat nat.decimal]
@@ -101,14 +101,14 @@
[#.Frac frac.decimal]
[#.Identifier name.codec])
- [_ (#.Text value)]
+ [_ {#.Text value}]
(text.format value)
- [_ (#.Tag name)]
+ [_ {#.Tag name}]
(text\composite "#" (\ name.codec encoded name))
(^template [<tag> <open> <close>]
- [[_ (<tag> members)]
+ [[_ {<tag> members}]
($_ text\composite
<open>
(list\mix (function (_ next prev)
@@ -130,8 +130,8 @@
substitute
(case ast
(^template [<tag>]
- [[location (<tag> parts)]
- [location (<tag> (list\each (replaced original substitute) parts))]])
+ [[location {<tag> parts}]
+ [location {<tag> (list\each (replaced original substitute) parts)}]])
([#.Form]
[#.Variant]
[#.Tuple])
diff --git a/stdlib/source/library/lux/macro/local.lux b/stdlib/source/library/lux/macro/local.lux
index ca48592af..f53a6473b 100644
--- a/stdlib/source/library/lux/macro/local.lux
+++ b/stdlib/source/library/lux/macro/local.lux
@@ -36,14 +36,14 @@
(All (_ a) (-> Text (-> Module (Try [Module a])) (Meta a)))
(function (_ compiler)
(case (|> compiler (value@ #.modules) (plist.value name))
- (#.Some module)
+ {#.Some module}
(case (body module)
- (#try.Success [module' output])
- (#try.Success [(revised@ #.modules (plist.has name module') compiler)
- output])
+ {#try.Success [module' output]}
+ {#try.Success [(revised@ #.modules (plist.has name module') compiler)
+ output]}
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
#.None
(exception.except ..unknown_module [name]))))
@@ -52,17 +52,17 @@
(-> [Name Macro] (Meta Any))
(do meta.monad
[[module_name definition_name] (meta.normal name)
- .let [definition (: Global (#.Definition [false .Macro macro]))
+ .let [definition (: Global {#.Definition [false .Macro macro]})
add_macro! (: (-> (PList Global) (PList Global))
(plist.has definition_name definition))]]
(..with_module module_name
(function (_ module)
(case (|> module (value@ #.definitions) (plist.value definition_name))
#.None
- (#try.Success [(revised@ #.definitions add_macro! module)
- []])
+ {#try.Success [(revised@ #.definitions add_macro! module)
+ []]}
- (#.Some _)
+ {#.Some _}
(exception.except ..cannot_shadow_definition [module_name definition_name]))))))
(def: (pop_one name)
@@ -74,9 +74,9 @@
(..with_module module_name
(function (_ module)
(case (|> module (value@ #.definitions) (plist.value definition_name))
- (#.Some _)
- (#try.Success [(revised@ #.definitions lacks_macro! module)
- []])
+ {#.Some _}
+ {#try.Success [(revised@ #.definitions lacks_macro! module)
+ []]}
#.None
(exception.except ..unknown_definition [module_name definition_name]))))))
@@ -90,7 +90,7 @@
_ (..pop_one self)
compiler meta.compiler_state]
(in (case (value@ #.expected compiler)
- (#.Some _)
+ {#.Some _}
(list (' []))
#.None
diff --git a/stdlib/source/library/lux/macro/syntax.lux b/stdlib/source/library/lux/macro/syntax.lux
index efdb15f1f..3b885c86a 100644
--- a/stdlib/source/library/lux/macro/syntax.lux
+++ b/stdlib/source/library/lux/macro/syntax.lux
@@ -29,19 +29,19 @@
(All (_ a) (-> Code (Parser a) (Parser a)))
(function (_ tokens)
(case (parser tokens)
- (#try.Success [tokens output])
- (#try.Success [tokens output])
+ {#try.Success [tokens output]}
+ {#try.Success [tokens output]}
- (#try.Failure error)
- (#try.Failure ($_ text\composite
+ {#try.Failure error}
+ {#try.Failure ($_ text\composite
"Failed to parse: " (code.format binding) text.new_line
- error)))))
+ error)})))
(def: (un_paired pairs)
(All (_ a) (-> (List [a a]) (List a)))
(case pairs
#.End #.End
- (#.Item [[x y] pairs']) (list& x y (un_paired pairs'))))
+ {#.Item [[x y] pairs']} (list& x y (un_paired pairs'))))
(def: syntax
(Parser [Code [Text (List Code)] Code])
@@ -54,7 +54,7 @@
(macro: .public (syntax: tokens)
(case (</>.result ..syntax tokens)
- (#try.Success [export_policy [name args] body])
+ {#try.Success [export_policy [name args] body]}
(with_identifiers [g!tokens g!body g!error]
(do [! meta.monad]
[_ (if (|> args list.size nat.even?)
@@ -67,10 +67,10 @@
(` ((~! ..self_documenting) (' (~ var))
(~ parser)))])]
(case var
- [_ (#.Identifier ["" _])]
+ [_ {#.Identifier ["" _]}]
<default>
- [_ (#.Identifier _)]
+ [_ {#.Identifier _}]
(in [var parser])
_
@@ -86,11 +86,11 @@
[(~+ (..un_paired vars+parsers))]
((~' in) (~ body))))
(~ g!tokens))
- (#try.Success (~ g!body))
+ {#try.Success (~ g!body)}
((~ g!body) (~ g!state))
- (#try.Failure (~ g!error))
- (#try.Failure ((~! text.interposed) (~! text.new_line) (list (~ error_msg) (~ g!error)))))))))))
+ {#try.Failure (~ g!error)}
+ {#try.Failure ((~! text.interposed) (~! text.new_line) (list (~ error_msg) (~ g!error)))})))))))
- (#try.Failure error)
+ {#try.Failure error}
(meta.failure (macro.wrong_syntax_error (name_of ..syntax:)))))
diff --git a/stdlib/source/library/lux/macro/syntax/definition.lux b/stdlib/source/library/lux/macro/syntax/definition.lux
index 707c44ea2..9cbe2fb1a 100644
--- a/stdlib/source/library/lux/macro/syntax/definition.lux
+++ b/stdlib/source/library/lux/macro/syntax/definition.lux
@@ -56,10 +56,10 @@
(` ((~ (code.text ..extension))
(~ (code.local_identifier name))
(~ (case value
- (#.Left check)
+ {#.Left check}
(//check.format check)
- (#.Right value)
+ {#.Right value}
value))
(~ (code.bit export?)))))
@@ -90,9 +90,9 @@
(do <>.monad
[definition (..parser compiler)
_ (case (value@ #value definition)
- (#.Left _)
+ {#.Left _}
(in [])
- (#.Right _)
+ {#.Right _}
(<>.lifted (exception.except ..lacks_type [definition])))]
(in definition)))
diff --git a/stdlib/source/library/lux/macro/syntax/export.lux b/stdlib/source/library/lux/macro/syntax/export.lux
index 91428bb7e..2d33f7098 100644
--- a/stdlib/source/library/lux/macro/syntax/export.lux
+++ b/stdlib/source/library/lux/macro/syntax/export.lux
@@ -16,11 +16,11 @@
(do [! <>.monad]
[candiate <code>.next]
(case candiate
- [_ (#.Identifier ["" _])]
+ [_ {#.Identifier ["" _]}]
(in default_policy)
- (^or [_ (#.Bit _)]
- [_ (#.Identifier _)])
+ (^or [_ {#.Bit _}]
+ [_ {#.Identifier _}])
(do !
[_ <code>.any]
(in candiate))
diff --git a/stdlib/source/library/lux/macro/template.lux b/stdlib/source/library/lux/macro/template.lux
index 2f690935b..8be738131 100644
--- a/stdlib/source/library/lux/macro/template.lux
+++ b/stdlib/source/library/lux/macro/template.lux
@@ -86,11 +86,11 @@
[(syntax: .public (<name> [name (<>.or (<>.and (..part true) (..part false))
(..part false))])
(case name
- (#.Left [simple complex])
+ {#.Left [simple complex]}
(in (list (<complex> [(text.interposed "" simple)
(text.interposed "" complex)])))
- (#.Right simple)
+ {#.Right simple}
(in (list (|> simple (text.interposed "") <simple>)))))]
[identifier code.local_identifier code.identifier]
@@ -103,17 +103,17 @@
(def: (applied env template)
(-> Environment Code Code)
(case template
- [_ (#.Identifier "" name)]
+ [_ {#.Identifier "" name}]
(case (dictionary.value name env)
- (#.Some substitute)
+ {#.Some substitute}
substitute
#.None
template)
(^template [<tag>]
- [[meta (<tag> elems)]
- [meta (<tag> (list\each (applied env) elems))]])
+ [[meta {<tag> elems}]
+ [meta {<tag> (list\each (applied env) elems)}]])
([#.Form]
[#.Variant]
[#.Tuple])
@@ -143,7 +143,7 @@
(.let [environment (: Environment
(|> (list.zipped/2 parameters inputs)
(dictionary.of_list text.hash)))]
- (#.Right [compiler (list\each (..applied environment) template)]))
+ {#.Right [compiler (list\each (..applied environment) template)]})
(exception.except ..irregular_arguments [parameters_amount inputs_amount]))))))
(def: local
@@ -162,12 +162,12 @@
[here_name meta.current_module_name
expression? (: (Meta Bit)
(function (_ lux)
- (#try.Success [lux (case (value@ #.expected lux)
+ {#try.Success [lux (case (value@ #.expected lux)
#.None
false
- (#.Some _)
- true)])))
+ {#.Some _}
+ true)]}))
g!pop (local.push (list\each (function (_ local)
[[here_name (value@ #name local)]
(..macro local)])
diff --git a/stdlib/source/library/lux/math/infix.lux b/stdlib/source/library/lux/math/infix.lux
index 616c62709..de54af790 100644
--- a/stdlib/source/library/lux/math/infix.lux
+++ b/stdlib/source/library/lux/math/infix.lux
@@ -21,10 +21,10 @@
(type: Infix
(Rec Infix
(Variant
- (#Const Code)
- (#Call (List Code))
- (#Unary Code Infix)
- (#Binary Infix Code Infix))))
+ {#Const Code}
+ {#Call (List Code)}
+ {#Unary Code Infix}
+ {#Binary Infix Code Infix})))
(def: literal
(Parser Code)
@@ -51,7 +51,7 @@
init_param expression
steps (<>.some (<>.and <code>.any expression))]
(in (list\mix (function (_ [op param] [_subject _op _param])
- [(#Binary _subject _op _param) op param])
+ [{#Binary _subject _op _param} op param])
[init_subject init_op init_param]
steps))))
)))
@@ -59,16 +59,16 @@
(def: (prefix infix)
(-> Infix Code)
(case infix
- (#Const value)
+ {#Const value}
value
- (#Call parts)
+ {#Call parts}
(code.form parts)
- (#Unary op subject)
+ {#Unary op subject}
(` ((~ op) (~ (prefix subject))))
- (#Binary left op right)
+ {#Binary left op right}
(` ((~ op) (~ (prefix right)) (~ (prefix left))))))
(syntax: .public (infix [expr ..expression])
diff --git a/stdlib/source/library/lux/math/modular.lux b/stdlib/source/library/lux/math/modular.lux
index 189a4b060..e82f222cc 100644
--- a/stdlib/source/library/lux/math/modular.lux
+++ b/stdlib/source/library/lux/math/modular.lux
@@ -136,7 +136,7 @@
(let [[modulus value] (:representation modular)
[[vk mk] gcd] (i.extended_gcd value (//.divisor modulus))]
(case gcd
- +1 (#.Some (..modular modulus vk))
+ +1 {#.Some (..modular modulus vk)}
_ #.None)))]
)
@@ -151,6 +151,6 @@
(-> (Modulus r%) (Modulus s%)
(Try (-> (Mod s%) (Mod r%)))))
(if (//.= reference subject)
- (#try.Success (|>> ..value
- (..modular reference)))
+ {#try.Success (|>> ..value
+ (..modular reference))}
(exception.except ..moduli_are_not_equal [reference subject])))
diff --git a/stdlib/source/library/lux/math/modulus.lux b/stdlib/source/library/lux/math/modulus.lux
index 4a4b000df..0d3c4fb7f 100644
--- a/stdlib/source/library/lux/math/modulus.lux
+++ b/stdlib/source/library/lux/math/modulus.lux
@@ -27,7 +27,7 @@
(Ex (_ %) (-> Int (Try (Modulus %))))
(if (i.= +0 value)
(exception.except ..zero_cannot_be_a_modulus [])
- (#try.Success (:abstraction value))))
+ {#try.Success (:abstraction value)}))
(def: .public divisor
(All (_ %) (-> (Modulus %) Int))
diff --git a/stdlib/source/library/lux/math/number.lux b/stdlib/source/library/lux/math/number.lux
index 2f0338817..4c20fd9fd 100644
--- a/stdlib/source/library/lux/math/number.lux
+++ b/stdlib/source/library/lux/math/number.lux
@@ -19,7 +19,7 @@
(def: (separator_prefixed? number)
(-> Text Bit)
(case ("lux text index" 0 ..separator number)
- (#.Some 0)
+ {#.Some 0}
#1
_
@@ -32,34 +32,34 @@
(template [<macro> <nat> <int> <rev> <frac> <error>]
[(macro: .public (<macro> tokens state)
(case tokens
- (#.Item [meta (#.Text repr')] #.End)
+ {#.Item [meta {#.Text repr'}] #.End}
(if (..separator_prefixed? repr')
- (#try.Failure <error>)
+ {#try.Failure <error>}
(let [repr (..without_separators repr')]
(case (\ <nat> decoded repr)
- (#try.Success value)
- (#try.Success [state (list [meta (#.Nat value)])])
+ {#try.Success value}
+ {#try.Success [state (list [meta {#.Nat value}])]}
- (^multi (#try.Failure _)
+ (^multi {#try.Failure _}
[(\ <int> decoded repr)
- (#try.Success value)])
- (#try.Success [state (list [meta (#.Int value)])])
+ {#try.Success value}])
+ {#try.Success [state (list [meta {#.Int value}])]}
- (^multi (#try.Failure _)
+ (^multi {#try.Failure _}
[(\ <rev> decoded repr)
- (#try.Success value)])
- (#try.Success [state (list [meta (#.Rev value)])])
+ {#try.Success value}])
+ {#try.Success [state (list [meta {#.Rev value}])]}
- (^multi (#try.Failure _)
+ (^multi {#try.Failure _}
[(\ <frac> decoded repr)
- (#try.Success value)])
- (#try.Success [state (list [meta (#.Frac value)])])
+ {#try.Success value}])
+ {#try.Success [state (list [meta {#.Frac value}])]}
_
- (#try.Failure <error>))))
+ {#try.Failure <error>})))
_
- (#try.Failure <error>)))]
+ {#try.Failure <error>}))]
[bin /nat.binary /int.binary /rev.binary /frac.binary "Invalid binary syntax."]
[oct /nat.octal /int.octal /rev.octal /frac.octal "Invalid octal syntax."]
diff --git a/stdlib/source/library/lux/math/number/frac.lux b/stdlib/source/library/lux/math/number/frac.lux
index c919e8ab5..230f18c1d 100644
--- a/stdlib/source/library/lux/math/number/frac.lux
+++ b/stdlib/source/library/lux/math/number/frac.lux
@@ -201,11 +201,11 @@
(def: (decoded input)
(case ("lux f64 decode" input)
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
- (#try.Failure "Could not decode Frac"))))
+ {#try.Failure "Could not decode Frac"})))
(def: log/2
(-> Frac Frac)
@@ -355,13 +355,13 @@
(\ codec decoded))]
(in [("lux text clip" 0 split_index representation)
(//int.* <factor> (.int exponent))]))])
- ([+1 (^or [(#.Some split_index) #.None #.None #.None]
- [#.None (#.Some split_index) #.None #.None])]
- [-1 (^or [#.None #.None (#.Some split_index) #.None]
- [#.None #.None #.None (#.Some split_index)])])
+ ([+1 (^or [{#.Some split_index} #.None #.None #.None]
+ [#.None {#.Some split_index} #.None #.None])]
+ [-1 (^or [#.None #.None {#.Some split_index} #.None]
+ [#.None #.None #.None {#.Some split_index}])])
_
- (#try.Success [representation +0])))
+ {#try.Success [representation +0]}))
(template [<struct> <nat> <int> <error>]
[(implementation: .public <struct>
@@ -388,7 +388,7 @@
(do [! try.monad]
[[mantissa exponent] (..representation_exponent <nat> representation)
[whole decimal] (case ("lux text index" 0 "." mantissa)
- (#.Some split_index)
+ {#.Some split_index}
(do !
[.let [after_offset (++ split_index)
after_length (//nat.- after_offset ("lux text size" mantissa))]
@@ -399,7 +399,7 @@
decimal]))
#.None
- (#try.Failure ("lux text concat" <error> representation)))
+ {#try.Failure ("lux text concat" <error> representation)})
.let [whole ("lux text clip" 1 (-- ("lux text size" whole)) whole)]
mantissa (\ <nat> decoded (case decimal
0 whole
@@ -410,7 +410,7 @@
(//i64.left_shifted ..sign_offset (.i64 sign))
(//i64.left_shifted ..mantissa_size (.i64 (//int.+ (.int ..double_bias) exponent)))
(//i64.zero ..mantissa_size (.i64 mantissa))))))
- (#try.Failure ("lux text concat" <error> representation))))))]
+ {#try.Failure ("lux text concat" <error> representation)}))))]
[binary //nat.binary //int.binary "Invalid binary syntax: "]
[octal //nat.octal //int.octal "Invalid octaladecimal syntax: "]
diff --git a/stdlib/source/library/lux/math/number/i64.lux b/stdlib/source/library/lux/math/number/i64.lux
index 4fbab4334..8ccf4b8c8 100644
--- a/stdlib/source/library/lux/math/number/i64.lux
+++ b/stdlib/source/library/lux/math/number/i64.lux
@@ -197,7 +197,7 @@
sign (..bit (-- width))
mantissa (..mask (-- width))
co_mantissa (..xor (.i64 -1) mantissa)]
- (#.Some (: Sub
+ {#.Some (: Sub
(implementation
(def: &equivalence ..equivalence)
(def: width width)
@@ -207,5 +207,5 @@
(def: (wide value)
(.i64 (case (.nat (..and sign value))
0 value
- _ (..or co_mantissa value))))))))
+ _ (..or co_mantissa value))))))})
#.None))
diff --git a/stdlib/source/library/lux/math/number/int.lux b/stdlib/source/library/lux/math/number/int.lux
index 0e515f8a5..5c4ff3cd6 100644
--- a/stdlib/source/library/lux/math/number/int.lux
+++ b/stdlib/source/library/lux/math/number/int.lux
@@ -229,8 +229,8 @@
(\ try.functor each (|>> -- .int ..opposite --)))
_
- (#try.Failure <error>))
- (#try.Failure <error>)))))]
+ {#try.Failure <error>})
+ {#try.Failure <error>}))))]
[binary //nat.binary "Invalid binary syntax for Int: "]
[octal //nat.octal "Invalid octal syntax for Int: "]
diff --git a/stdlib/source/library/lux/math/number/nat.lux b/stdlib/source/library/lux/math/number/nat.lux
index 3efe7f197..0b0bf4105 100644
--- a/stdlib/source/library/lux/math/number/nat.lux
+++ b/stdlib/source/library/lux/math/number/nat.lux
@@ -191,8 +191,8 @@
(def: (binary_value digit)
(-> Nat (Maybe Nat))
(case digit
- (^ (char "0")) (#.Some 0)
- (^ (char "1")) (#.Some 1)
+ (^ (char "0")) {#.Some 0}
+ (^ (char "1")) {#.Some 1}
_ #.None))
(def: (octal_character value)
@@ -211,14 +211,14 @@
(def: (octal_value digit)
(-> Nat (Maybe Nat))
(case digit
- (^ (char "0")) (#.Some 0)
- (^ (char "1")) (#.Some 1)
- (^ (char "2")) (#.Some 2)
- (^ (char "3")) (#.Some 3)
- (^ (char "4")) (#.Some 4)
- (^ (char "5")) (#.Some 5)
- (^ (char "6")) (#.Some 6)
- (^ (char "7")) (#.Some 7)
+ (^ (char "0")) {#.Some 0}
+ (^ (char "1")) {#.Some 1}
+ (^ (char "2")) {#.Some 2}
+ (^ (char "3")) {#.Some 3}
+ (^ (char "4")) {#.Some 4}
+ (^ (char "5")) {#.Some 5}
+ (^ (char "6")) {#.Some 6}
+ (^ (char "7")) {#.Some 7}
_ #.None))
(def: (decimal_character value)
@@ -239,16 +239,16 @@
(def: (decimal_value digit)
(-> Nat (Maybe Nat))
(case digit
- (^ (char "0")) (#.Some 0)
- (^ (char "1")) (#.Some 1)
- (^ (char "2")) (#.Some 2)
- (^ (char "3")) (#.Some 3)
- (^ (char "4")) (#.Some 4)
- (^ (char "5")) (#.Some 5)
- (^ (char "6")) (#.Some 6)
- (^ (char "7")) (#.Some 7)
- (^ (char "8")) (#.Some 8)
- (^ (char "9")) (#.Some 9)
+ (^ (char "0")) {#.Some 0}
+ (^ (char "1")) {#.Some 1}
+ (^ (char "2")) {#.Some 2}
+ (^ (char "3")) {#.Some 3}
+ (^ (char "4")) {#.Some 4}
+ (^ (char "5")) {#.Some 5}
+ (^ (char "6")) {#.Some 6}
+ (^ (char "7")) {#.Some 7}
+ (^ (char "8")) {#.Some 8}
+ (^ (char "9")) {#.Some 9}
_ #.None))
(def: (hexadecimal_character value)
@@ -276,12 +276,12 @@
(-> Nat (Maybe Nat))
(case digit
(^template [<character> <number>]
- [(^ (char <character>)) (#.Some <number>)])
+ [(^ (char <character>)) {#.Some <number>}])
(["0" 0] ["1" 1] ["2" 2] ["3" 3] ["4" 4]
["5" 5] ["6" 6] ["7" 7] ["8" 8] ["9" 9])
(^template [<lower> <upper> <number>]
- [(^or (^ (char <lower>)) (^ (char <upper>))) (#.Some <number>)])
+ [(^or (^ (char <lower>)) (^ (char <upper>))) {#.Some <number>}])
(["a" "A" 10] ["b" "B" 11] ["c" "C" 12]
["d" "D" 13] ["e" "E" 14] ["f" "F" 15])
_ #.None))
@@ -312,16 +312,16 @@
output 0]
(if (..< input_size idx)
(case (<to_value> ("lux text char" idx repr))
- (#.Some digit_value)
+ {#.Some digit_value}
(recur (++ idx)
(|> output
("lux i64 left-shift" <shift>)
("lux i64 or" digit_value)))
_
- (#try.Failure ("lux text concat" <error> repr)))
- (#try.Success output)))
- (#try.Failure ("lux text concat" <error> repr))))))]
+ {#try.Failure ("lux text concat" <error> repr)})
+ {#try.Success output}))
+ {#try.Failure ("lux text concat" <error> repr)}))))]
[1 binary binary_character binary_value "Invalid binary syntax for Nat: "]
[3 octal octal_character octal_value "Invalid octal syntax for Nat: "]
@@ -345,7 +345,7 @@
(def: (decoded repr)
(let [input_size ("lux text size" repr)]
- (with_expansions [<failure> (#try.Failure ("lux text concat" "Invalid decimal syntax for Nat: " repr))]
+ (with_expansions [<failure> {#try.Failure ("lux text concat" "Invalid decimal syntax for Nat: " repr)}]
(if (..> 0 input_size)
(loop [idx 0
output 0]
@@ -354,10 +354,10 @@
#.None
<failure>
- (#.Some digit_value)
+ {#.Some digit_value}
(recur (++ idx)
(|> output (..* 10) (..+ digit_value))))
- (#try.Success output)))
+ {#try.Success output}))
<failure>)))))
(implementation: .public hash
diff --git a/stdlib/source/library/lux/math/number/ratio.lux b/stdlib/source/library/lux/math/number/ratio.lux
index 1e6aff940..be5bb235a 100644
--- a/stdlib/source/library/lux/math/number/ratio.lux
+++ b/stdlib/source/library/lux/math/number/ratio.lux
@@ -30,7 +30,7 @@
(def: .public (nat value)
(-> Ratio (Maybe Nat))
(case (value@ #denominator value)
- 1 (#.Some (value@ #numerator value))
+ 1 {#.Some (value@ #numerator value)}
_ #.None))
(def: (normal (^slots [#numerator #denominator]))
@@ -136,7 +136,7 @@
(def: (decoded input)
(case (text.split_by ..separator input)
- (#.Some [num denom])
+ {#.Some [num denom]}
(do try.monad
[numerator (n\decoded num)
denominator (n\decoded denom)]
@@ -144,7 +144,7 @@
#denominator denominator])))
#.None
- (#.Left (text\composite "Invalid syntax for ratio: " input)))))
+ {#.Left (text\composite "Invalid syntax for ratio: " input)})))
(template [<identity> <composite> <name>]
[(implementation: .public <name>
diff --git a/stdlib/source/library/lux/math/number/rev.lux b/stdlib/source/library/lux/math/number/rev.lux
index 07013dc94..a652d3913 100644
--- a/stdlib/source/library/lux/math/number/rev.lux
+++ b/stdlib/source/library/lux/math/number/rev.lux
@@ -225,7 +225,7 @@
("lux text clip" 1 (-- ("lux text size" input)) input))
(template [<struct> <codec> <char_bit_size> <error>]
- [(with_expansions [<error_output> (as_is (#try.Failure ("lux text concat" <error> repr)))]
+ [(with_expansions [<error_output> (as_is {#try.Failure ("lux text concat" <error> repr)})]
(implementation: .public <struct>
(Codec Text Rev)
@@ -253,8 +253,8 @@
(case ("lux text char" 0 repr)
(^ (char "."))
(case (\ <codec> decoded (..decimals repr))
- (#try.Success output)
- (#try.Success (.rev output))
+ {#try.Success output}
+ {#try.Success (.rev output)}
_
<error_output>)
@@ -365,10 +365,10 @@
#.None
#.None
- (#.Some digit)
+ {#.Some digit}
(recur (++ idx)
(digits\put! idx digit output)))
- (#.Some output))))))
+ {#.Some output})))))
(def: (digits\< param subject)
(-> Digits Digits Bit)
@@ -425,7 +425,7 @@
(def: (decoded input)
(let [dotted? (case ("lux text index" 0 "." input)
- (#.Some 0)
+ {#.Some 0}
true
_
@@ -435,7 +435,7 @@
(//nat.<= (++ //i64.width)))]
(if (and dotted? within_limits?)
(case (|> input ..decimals ..text_digits)
- (#.Some digits)
+ {#.Some digits}
(loop [digits digits
idx 0
output 0]
@@ -447,9 +447,9 @@
(recur (digits\-! power digits)
(++ idx)
(//i64.one (//nat.- idx (-- //i64.width)) output))))
- (#try.Success (.rev output))))
+ {#try.Success (.rev output)}))
#.None
- (#try.Failure ("lux text concat" "Wrong syntax for Rev: " input)))
- (#try.Failure ("lux text concat" "Wrong syntax for Rev: " input))))
+ {#try.Failure ("lux text concat" "Wrong syntax for Rev: " input)})
+ {#try.Failure ("lux text concat" "Wrong syntax for Rev: " input)}))
))
diff --git a/stdlib/source/library/lux/math/random.lux b/stdlib/source/library/lux/math/random.lux
index 348482e63..b7dd727d7 100644
--- a/stdlib/source/library/lux/math/random.lux
+++ b/stdlib/source/library/lux/math/random.lux
@@ -91,7 +91,7 @@
(do ..monad
[sample random]
(case (check sample)
- (#.Some output)
+ {#.Some output}
(in output)
#.None
@@ -102,7 +102,7 @@
(do ..monad
[sample gen]
(case (refiner sample)
- (#.Some refined)
+ {#.Some refined}
(in refined)
#.None
@@ -207,10 +207,10 @@
(if ?
(do !
[=left left]
- (in (0 #0 =left)))
+ (in {0 #0 =left}))
(do !
[=right right]
- (in (0 #1 =right))))))
+ (in {0 #1 =right})))))
(def: .public (either left right)
(All (_ a) (-> (Random a) (Random a) (Random a)))
@@ -233,22 +233,26 @@
(if some?
(do !
[value value_gen]
- (in (#.Some value)))
+ (in {#.Some value}))
(in #.None))))
-(template [<name> <type> <zero> <plus>]
- [(def: .public (<name> size value_gen)
- (All (_ a) (-> Nat (Random a) (Random (<type> a))))
- (if (n.> 0 size)
- (do ..monad
- [x value_gen
- xs (<name> (-- size) value_gen)]
- (in (<plus> x xs)))
- (\ ..monad in <zero>)))]
-
- [list List (.list) #.Item]
- [row Row row.empty row.suffix]
- )
+(def: .public (list size value_gen)
+ (All (_ a) (-> Nat (Random a) (Random (List a))))
+ (if (n.> 0 size)
+ (do ..monad
+ [x value_gen
+ xs (list (-- size) value_gen)]
+ (in {#.Item x xs}))
+ (\ ..monad in (.list))))
+
+(def: .public (row size value_gen)
+ (All (_ a) (-> Nat (Random a) (Random (Row a))))
+ (if (n.> 0 size)
+ (do ..monad
+ [x value_gen
+ xs (row (-- size) value_gen)]
+ (in (row.suffix x xs)))
+ (\ ..monad in row.empty)))
(template [<name> <type> <ctor>]
[(def: .public (<name> size value_gen)
diff --git a/stdlib/source/library/lux/meta.lux b/stdlib/source/library/lux/meta.lux
index 122dde3ca..433d76d91 100644
--- a/stdlib/source/library/lux/meta.lux
+++ b/stdlib/source/library/lux/meta.lux
@@ -34,11 +34,11 @@
(def: (each f fa)
(function (_ lux)
(case (fa lux)
- (#try.Failure msg)
- (#try.Failure msg)
+ {#try.Failure msg}
+ {#try.Failure msg}
- (#try.Success [lux' a])
- (#try.Success [lux' (f a)])))))
+ {#try.Success [lux' a]}
+ {#try.Success [lux' (f a)]}))))
(implementation: .public apply
(Apply Meta)
@@ -48,16 +48,16 @@
(def: (on fa ff)
(function (_ lux)
(case (ff lux)
- (#try.Success [lux' f])
+ {#try.Success [lux' f]}
(case (fa lux')
- (#try.Success [lux'' a])
- (#try.Success [lux'' (f a)])
+ {#try.Success [lux'' a]}
+ {#try.Success [lux'' (f a)]}
- (#try.Failure msg)
- (#try.Failure msg))
+ {#try.Failure msg}
+ {#try.Failure msg})
- (#try.Failure msg)
- (#try.Failure msg)))))
+ {#try.Failure msg}
+ {#try.Failure msg}))))
(implementation: .public monad
(Monad Meta)
@@ -66,15 +66,15 @@
(def: (in x)
(function (_ lux)
- (#try.Success [lux x])))
+ {#try.Success [lux x]}))
(def: (conjoint mma)
(function (_ lux)
(case (mma lux)
- (#try.Failure msg)
- (#try.Failure msg)
+ {#try.Failure msg}
+ {#try.Failure msg}
- (#try.Success [lux' ma])
+ {#try.Success [lux' ma]}
(ma lux')))))
(def: .public (result' lux action)
@@ -84,54 +84,54 @@
(def: .public (result lux action)
(All (_ a) (-> Lux (Meta a) (Try a)))
(case (action lux)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [_ output])
- (#try.Success output)))
+ {#try.Success [_ output]}
+ {#try.Success output}))
(def: .public (either left right)
(All (_ a) (-> (Meta a) (Meta a) (Meta a)))
(function (_ lux)
(case (left lux)
- (#try.Failure error)
+ {#try.Failure error}
(right lux)
- (#try.Success [lux' output])
- (#try.Success [lux' output]))))
+ {#try.Success [lux' output]}
+ {#try.Success [lux' output]})))
(def: .public (assertion message test)
(-> Text Bit (Meta Any))
(function (_ lux)
(if test
- (#try.Success [lux []])
- (#try.Failure message))))
+ {#try.Success [lux []]}
+ {#try.Failure message})))
(def: .public (failure error)
(All (_ a)
(-> Text (Meta a)))
(function (_ state)
- (#try.Failure (location.with (value@ #.location state) error))))
+ {#try.Failure (location.with (value@ #.location state) error)}))
(def: .public (module name)
(-> Text (Meta Module))
(function (_ lux)
(case (plist.value name (value@ #.modules lux))
- (#.Some module)
- (#try.Success [lux module])
+ {#.Some module}
+ {#try.Success [lux module]}
_
- (#try.Failure ($_ text\composite "Unknown module: " name)))))
+ {#try.Failure ($_ text\composite "Unknown module: " name)})))
(def: .public current_module_name
(Meta Text)
(function (_ lux)
(case (value@ #.current_module lux)
- (#.Some current_module)
- (#try.Success [lux current_module])
+ {#.Some current_module}
+ {#try.Success [lux current_module]}
_
- (#try.Failure "No current module."))))
+ {#try.Failure "No current module."})))
(def: .public current_module
(Meta Module)
@@ -143,7 +143,7 @@
(def: (macro_type? type)
(-> Type Bit)
(`` (case type
- (#.Named [(~~ (static .prelude_module)) "Macro"] (#.Primitive "#Macro" #.End))
+ {#.Named [(~~ (static .prelude_module)) "Macro"] {#.Primitive "#Macro" #.End}}
true
_
@@ -166,12 +166,12 @@
[[module name] (..normal full_name)]
(: (Meta (Maybe Macro))
(function (_ lux)
- (#try.Success [lux
+ {#try.Success [lux
(case (..current_module_name lux)
- (#try.Failure error)
+ {#try.Failure error}
#.None
- (#try.Success [_ this_module])
+ {#try.Success [_ this_module]}
(let [modules (value@ #.modules lux)]
(loop [module module
name name]
@@ -183,45 +183,45 @@
(value@ #.definitions)
(plist.value name)))]
(case definition
- (#.Alias [r_module r_name])
+ {#.Alias [r_module r_name]}
(recur r_module r_name)
- (#.Definition [exported? def_type def_value])
+ {#.Definition [exported? def_type def_value]}
(if (macro_type? def_type)
- (#.Some (:as Macro def_value))
+ {#.Some (:as Macro def_value)}
#.None)
- (#.Type [exported? type labels])
+ {#.Type [exported? type labels]}
#.None
- (#.Label _)
+ {#.Label _}
#.None
- (#.Slot _)
- #.None)))))])))))
+ {#.Slot _}
+ #.None)))))]}))))
(def: .public seed
(Meta Nat)
(function (_ lux)
- (#try.Success [(revised@ #.seed ++ lux)
- (value@ #.seed lux)])))
+ {#try.Success [(revised@ #.seed ++ lux)
+ (value@ #.seed lux)]}))
(def: .public (module_exists? module)
(-> Text (Meta Bit))
(function (_ lux)
- (#try.Success [lux (case (plist.value module (value@ #.modules lux))
- (#.Some _)
+ {#try.Success [lux (case (plist.value module (value@ #.modules lux))
+ {#.Some _}
#1
#.None
- #0)])))
+ #0)]}))
(def: (on_either f x1 x2)
(All (_ a b)
(-> (-> a (Maybe b)) a a (Maybe b)))
(case (f x1)
#.None (f x2)
- (#.Some y) (#.Some y)))
+ {#.Some y} {#.Some y}))
(def: (type_variable idx bindings)
(-> Nat (List [Nat (Maybe Type)]) (Maybe Type))
@@ -229,7 +229,7 @@
#.End
#.None
- (#.Item [var bound] bindings')
+ {#.Item [var bound] bindings'}
(if (n.= idx var)
bound
(type_variable idx bindings'))))
@@ -237,16 +237,16 @@
(def: (clean_type type)
(-> Type (Meta Type))
(case type
- (#.Var var)
+ {#.Var var}
(function (_ lux)
(case (|> lux
(value@ [#.type_context #.var_bindings])
(type_variable var))
- (^or #.None (#.Some (#.Var _)))
- (#try.Success [lux type])
+ (^or #.None {#.Some {#.Var _}})
+ {#try.Success [lux type]}
- (#.Some type')
- (#try.Success [lux type'])))
+ {#.Some type'}
+ {#try.Success [lux type']}))
_
(\ ..monad in type)))
@@ -269,11 +269,11 @@
(: (List [Text [Type Any]])
(value@ [#.captured #.mappings] scope)))]
(in type))
- (#.Some var_type)
+ {#.Some var_type}
((clean_type var_type) lux)
#.None
- (#try.Failure ($_ text\composite "Unknown variable: " name))))))
+ {#try.Failure ($_ text\composite "Unknown variable: " name)}))))
(def: without_lux_runtime
(-> (List Text) (List Text))
@@ -303,8 +303,8 @@
(value@ #.modules)
(plist.value normal_module))]
(plist.value normal_short definitions)))
- (#.Some definition)
- (#try.Success [lux definition])
+ {#.Some definition}
+ {#try.Success [lux definition]}
_
(let [current_module (|> lux (value@ #.current_module) (maybe.else "???"))
@@ -312,11 +312,11 @@
(value@ #.modules)
(list\each product.left)
..module_listing)]
- (#try.Failure ($_ text\composite
+ {#try.Failure ($_ text\composite
"Unknown definition: " (name\encoded name) text.new_line
" Current module: " current_module text.new_line
(case (plist.value current_module (value@ #.modules lux))
- (#.Some this_module)
+ {#.Some this_module}
(let [candidates (|> lux
(value@ #.modules)
(list\each (function (_ [module_name module])
@@ -324,20 +324,20 @@
(value@ #.definitions)
(list.all (function (_ [def_name global])
(case global
- (^or (#.Definition [exported? _])
- (#.Type [exported? _]))
+ (^or {#.Definition [exported? _]}
+ {#.Type [exported? _]})
(if (and exported?
(text\= normal_short def_name))
- (#.Some (name\encoded [module_name def_name]))
+ {#.Some (name\encoded [module_name def_name])}
#.None)
- (#.Alias _)
+ {#.Alias _}
#.None
- (#.Label _)
+ {#.Label _}
#.None
- (#.Slot _)
+ {#.Slot _}
#.None))))))
list.together
(list.sorted text\<)
@@ -357,35 +357,35 @@
_
"")
- " All known modules: " all_known_modules text.new_line)))))))
+ " All known modules: " all_known_modules text.new_line)})))))
(def: .public (export name)
(-> Name (Meta Definition))
(do ..monad
[definition (..definition name)]
(case definition
- (#.Definition definition)
+ {#.Definition definition}
(let [[exported? def_type def_value] definition]
(if exported?
(in definition)
(failure ($_ text\composite "Definition is not an export: " (name\encoded name)))))
- (#.Type [exported? type labels])
+ {#.Type [exported? type labels]}
(if exported?
(in [exported? .Type type])
(failure ($_ text\composite "Type is not an export: " (name\encoded name))))
- (#.Alias de_aliased)
+ {#.Alias de_aliased}
(failure ($_ text\composite
"Aliases are not considered exports: "
(name\encoded name)))
- (#.Label _)
+ {#.Label _}
(failure ($_ text\composite
"Tags are not considered exports: "
(name\encoded name)))
- (#.Slot _)
+ {#.Slot _}
(failure ($_ text\composite
"Slots are not considered exports: "
(name\encoded name))))))
@@ -395,21 +395,21 @@
(do ..monad
[definition (definition name)]
(case definition
- (#.Alias de_aliased)
+ {#.Alias de_aliased}
(definition_type de_aliased)
- (#.Definition [exported? def_type def_value])
+ {#.Definition [exported? def_type def_value]}
(clean_type def_type)
- (#.Type [exported? type labels])
+ {#.Type [exported? type labels]}
(in .Type)
- (#.Label _)
+ {#.Label _}
(failure ($_ text\composite
"Tags have no type: "
(name\encoded name)))
- (#.Slot _)
+ {#.Slot _}
(failure ($_ text\composite
"Slots have no type: "
(name\encoded name))))))
@@ -429,10 +429,10 @@
(do ..monad
[definition (definition name)]
(case definition
- (#.Alias de_aliased)
+ {#.Alias de_aliased}
(type_definition de_aliased)
- (#.Definition [exported? def_type def_value])
+ {#.Definition [exported? def_type def_value]}
(let [type_code (`` ("lux in-module" (~~ (static .prelude_module)) .type_code))]
(if (or (same? .Type def_type)
(\ code.equivalence =
@@ -441,13 +441,13 @@
(in (:as Type def_value))
(..failure ($_ text\composite "Definition is not a type: " (name\encoded name)))))
- (#.Type [exported? type labels])
+ {#.Type [exported? type labels]}
(in type)
- (#.Label _)
+ {#.Label _}
(..failure ($_ text\composite "Tag is not a type: " (name\encoded name)))
- (#.Slot _)
+ {#.Slot _}
(..failure ($_ text\composite "Slot is not a type: " (name\encoded name))))))
(def: .public (globals module)
@@ -455,29 +455,29 @@
(function (_ lux)
(case (plist.value module (value@ #.modules lux))
#.None
- (#try.Failure ($_ text\composite "Unknown module: " module))
+ {#try.Failure ($_ text\composite "Unknown module: " module)}
- (#.Some module)
- (#try.Success [lux (value@ #.definitions module)]))))
+ {#.Some module}
+ {#try.Success [lux (value@ #.definitions module)]})))
(def: .public (definitions module)
(-> Text (Meta (List [Text Definition])))
(\ ..monad each
(list.all (function (_ [name global])
(case global
- (#.Alias de_aliased)
+ {#.Alias de_aliased}
#.None
- (#.Definition definition)
- (#.Some [name definition])
+ {#.Definition definition}
+ {#.Some [name definition]}
- (#.Type [exported? type labels])
- (#.Some [name [exported? .Type type]])
+ {#.Type [exported? type labels]}
+ {#.Some [name [exported? .Type type]]}
- (#.Label _)
+ {#.Label _}
#.None
- (#.Slot _)
+ {#.Slot _}
#.None)))
(..globals module)))
@@ -505,12 +505,12 @@
[.let [[module_name name] type_name]
module (..module module_name)]
(case (plist.value name (value@ #.definitions module))
- (#.Some (#.Type [exported? type labels]))
+ {#.Some {#.Type [exported? type labels]}}
(case labels
- (^or (#.Left labels)
- (#.Right labels))
- (in (#.Some (list\each (|>> [module_name])
- (#.Item labels)))))
+ (^or {#.Left labels}
+ {#.Right labels})
+ (in {#.Some (list\each (|>> [module_name])
+ {#.Item labels})}))
_
(in #.None))))
@@ -518,17 +518,17 @@
(def: .public location
(Meta Location)
(function (_ lux)
- (#try.Success [lux (value@ #.location lux)])))
+ {#try.Success [lux (value@ #.location lux)]}))
(def: .public expected_type
(Meta Type)
(function (_ lux)
(case (value@ #.expected lux)
- (#.Some type)
- (#try.Success [lux type])
+ {#.Some type}
+ {#try.Success [lux type]}
#.None
- (#try.Failure "Not expecting any type."))))
+ {#try.Failure "Not expecting any type."})))
(def: .public (imported_modules module_name)
(-> Text (Meta (List Text)))
@@ -556,7 +556,7 @@
=module (..module module)
this_module_name ..current_module_name]
(case (plist.value (text\composite "#" name) (value@ #.definitions =module))
- (#.Some (<tag> [exported? type group idx]))
+ {#.Some {<tag> [exported? type group idx]}}
(if (or (text\= this_module_name module)
exported?)
(in [idx (list\each (|>> [module]) group) type])
@@ -577,17 +577,17 @@
this_module_name ..current_module_name]
(in (list.all (function (_ [short global])
(case global
- (#.Type [exported? type labels])
+ {#.Type [exported? type labels]}
(if (or exported?
(text\= this_module_name module))
- (#.Some [(list\each (|>> [module])
+ {#.Some [(list\each (|>> [module])
(case labels
- (#.Left tags)
- (#.Item tags)
+ {#.Left tags}
+ {#.Item tags}
- (#.Right slots)
- (#.Item slots)))
- type])
+ {#.Right slots}
+ {#.Item slots}))
+ type]}
#.None)
_
@@ -599,52 +599,52 @@
(function (_ lux)
(case (list.inits (value@ #.scopes lux))
#.None
- (#try.Failure "No local environment")
+ {#try.Failure "No local environment"}
- (#.Some scopes)
- (#try.Success [lux
+ {#.Some scopes}
+ {#try.Success [lux
(list\each (|>> (value@ [#.locals #.mappings])
(list\each (function (_ [name [type _]])
[name type])))
- scopes)]))))
+ scopes)]})))
(def: .public (de_aliased def_name)
(-> Name (Meta Name))
(do ..monad
[constant (..definition def_name)]
(in (case constant
- (#.Alias real_def_name)
+ {#.Alias real_def_name}
real_def_name
- (#.Definition _)
+ {#.Definition _}
def_name
- (#.Type _)
+ {#.Type _}
def_name
- (#.Label _)
+ {#.Label _}
def_name
- (#.Slot _)
+ {#.Slot _}
def_name))))
(def: .public compiler_state
(Meta Lux)
(function (_ lux)
- (#try.Success [lux lux])))
+ {#try.Success [lux lux]}))
(def: .public type_context
(Meta Type_Context)
(function (_ lux)
- (#try.Success [lux (value@ #.type_context lux)])))
+ {#try.Success [lux (value@ #.type_context lux)]}))
(def: .public (lifted result)
(All (_ a) (-> (Try a) (Meta a)))
(case result
- (#try.Success output)
+ {#try.Success output}
(\ ..monad in output)
- (#try.Failure error)
+ {#try.Failure error}
(..failure error)))
(def: .public (eval type code)
@@ -658,8 +658,8 @@
(All (_ it) (-> (Meta it) (Meta (Try it))))
(function (_ lux)
(case (computation lux)
- (#try.Success [lux' output])
- (#try.Success [lux' (#try.Success output)])
+ {#try.Success [lux' output]}
+ {#try.Success [lux' {#try.Success output}]}
- (#try.Failure error)
- (#try.Success [lux (#try.Failure error)]))))
+ {#try.Failure error}
+ {#try.Success [lux {#try.Failure error}]})))
diff --git a/stdlib/source/library/lux/meta/location.lux b/stdlib/source/library/lux/meta/location.lux
index 7f37b4d77..3c797eda0 100644
--- a/stdlib/source/library/lux/meta/location.lux
+++ b/stdlib/source/library/lux/meta/location.lux
@@ -22,14 +22,14 @@
(case tokens
#.End
(let [location (value@ #.location compiler)]
- (#.Right [compiler
+ {#.Right [compiler
(list (` (.: .Location
- [(~ [..dummy (#.Text (value@ #.module location))])
- (~ [..dummy (#.Nat (value@ #.line location))])
- (~ [..dummy (#.Nat (value@ #.column location))])])))]))
+ [(~ [..dummy {#.Text (value@ #.module location)}])
+ (~ [..dummy {#.Nat (value@ #.line location)}])
+ (~ [..dummy {#.Nat (value@ #.column location)}])])))]})
_
- (#.Left (`` (("lux in-module" (~~ (static .prelude_module)) wrong_syntax_error) (name_of ..here))))))
+ {#.Left (`` (("lux in-module" (~~ (static .prelude_module)) wrong_syntax_error) (name_of ..here)))}))
(def: .public (format it)
(-> Location Text)
diff --git a/stdlib/source/library/lux/program.lux b/stdlib/source/library/lux/program.lux
index 7b81afa69..844da6654 100644
--- a/stdlib/source/library/lux/program.lux
+++ b/stdlib/source/library/lux/program.lux
@@ -21,8 +21,8 @@
(type: Arguments
(Variant
- (#Raw Text)
- (#Parsed (List Code))))
+ {#Raw Text}
+ {#Parsed (List Code)}))
(def: arguments^
(<code>.Parser Arguments)
@@ -43,11 +43,11 @@
((~' in) (~ g!output))))]
(in (list (` ("lux def program"
(~ (case args
- (#Raw args)
+ {#Raw args}
(` (.function ((~ g!program) (~ (code.identifier ["" args])))
(~ initialization+event_loop)))
- (#Parsed args)
+ {#Parsed args}
(` (.function ((~ g!program) (~ g!args))
(case ((~! <cli>.result) (: (~! (<cli>.Parser (io.IO .Any)))
((~! do) (~! <>.monad)
@@ -55,8 +55,8 @@
(~ g!_) (~! <cli>.end)]
((~' in) (~ initialization+event_loop))))
(~ g!args))
- (#.Right (~ g!output))
+ {#.Right (~ g!output)}
(~ g!output)
- (#.Left (~ g!message))
+ {#.Left (~ g!message)}
(.panic! (~ g!message))))))))))))))
diff --git a/stdlib/source/library/lux/target/common_lisp.lux b/stdlib/source/library/lux/target/common_lisp.lux
index a208ba0ff..1a14f8d6e 100644
--- a/stdlib/source/library/lux/target/common_lisp.lux
+++ b/stdlib/source/library/lux/target/common_lisp.lux
@@ -156,7 +156,7 @@
#.End
""
- (#.Item _)
+ {#.Item _}
(|> singles
(list\each ..code)
(text.interposed " ")
@@ -174,7 +174,7 @@
(def: .public (call/* func)
(-> (Expression Any) (-> (List (Expression Any)) (Computation Any)))
- (|>> (#.Item func) ..form))
+ (|>> {#.Item func} ..form))
(template [<name> <function>]
[(def: .public <name>
@@ -406,7 +406,7 @@
#.End
expression
- (#.Item single #.End)
+ {#.Item single #.End}
(:abstraction
(format <prefix> single " " (:representation expression)))
diff --git a/stdlib/source/library/lux/target/js.lux b/stdlib/source/library/lux/target/js.lux
index c648d5bf2..662f0c3a4 100644
--- a/stdlib/source/library/lux/target/js.lux
+++ b/stdlib/source/library/lux/target/js.lux
@@ -406,7 +406,7 @@
(text.interposed text.new_line))
text.new_line
(case default
- (#.Some default)
+ {#.Some default}
(format "default:"
(..nested (:representation default)))
diff --git a/stdlib/source/library/lux/target/jvm.lux b/stdlib/source/library/lux/target/jvm.lux
index e32769bbc..0d07ab2aa 100644
--- a/stdlib/source/library/lux/target/jvm.lux
+++ b/stdlib/source/library/lux/target/jvm.lux
@@ -11,18 +11,18 @@
(type: .public Literal
(Variant
- (#Boolean Bit)
- (#Int Int)
- (#Long Int)
- (#Double Frac)
- (#Char Nat)
- (#String Text)))
+ {#Boolean Bit}
+ {#Int Int}
+ {#Long Int}
+ {#Double Frac}
+ {#Char Nat}
+ {#String Text}))
(type: .public Constant
(Variant
- (#BIPUSH Int)
+ {#BIPUSH Int}
- (#SIPUSH Int)
+ {#SIPUSH Int}
#ICONST_M1
#ICONST_0
@@ -44,7 +44,7 @@
#ACONST_NULL
- (#LDC Literal)))
+ {#LDC Literal}))
(type: .public Int_Arithmetic
(Variant
@@ -84,10 +84,10 @@
(type: .public Arithmetic
(Variant
- (#Int_Arithmetic Int_Arithmetic)
- (#Long_Arithmetic Long_Arithmetic)
- (#Float_Arithmetic Float_Arithmetic)
- (#Double_Arithmetic Double_Arithmetic)))
+ {#Int_Arithmetic Int_Arithmetic}
+ {#Long_Arithmetic Long_Arithmetic}
+ {#Float_Arithmetic Float_Arithmetic}
+ {#Double_Arithmetic Double_Arithmetic}))
(type: .public Int_Bitwise
(Variant
@@ -109,8 +109,8 @@
(type: .public Bitwise
(Variant
- (#Int_Bitwise Int_Bitwise)
- (#Long_Bitwise Long_Bitwise)))
+ {#Int_Bitwise Int_Bitwise}
+ {#Long_Bitwise Long_Bitwise}))
(type: .public Conversion
(Variant
@@ -137,8 +137,8 @@
(Variant
#ARRAYLENGTH
- (#NEWARRAY (Type Primitive))
- (#ANEWARRAY (Type category.Object))
+ {#NEWARRAY (Type Primitive)}
+ {#ANEWARRAY (Type category.Object)}
#BALOAD
#BASTORE
@@ -166,58 +166,58 @@
(type: .public Object
(Variant
- (#GETSTATIC (Type Class) Text (Type Value))
- (#PUTSTATIC (Type Class) Text (Type Value))
+ {#GETSTATIC (Type Class) Text (Type Value)}
+ {#PUTSTATIC (Type Class) Text (Type Value)}
- (#NEW (Type Class))
+ {#NEW (Type Class)}
- (#INSTANCEOF (Type Class))
- (#CHECKCAST (Type category.Object))
+ {#INSTANCEOF (Type Class)}
+ {#CHECKCAST (Type category.Object)}
- (#GETFIELD (Type Class) Text (Type Value))
- (#PUTFIELD (Type Class) Text (Type Value))
+ {#GETFIELD (Type Class) Text (Type Value)}
+ {#PUTFIELD (Type Class) Text (Type Value)}
- (#INVOKEINTERFACE (Type Class) Text (Type Method))
- (#INVOKESPECIAL (Type Class) Text (Type Method))
- (#INVOKESTATIC (Type Class) Text (Type Method))
- (#INVOKEVIRTUAL (Type Class) Text (Type Method))))
+ {#INVOKEINTERFACE (Type Class) Text (Type Method)}
+ {#INVOKESPECIAL (Type Class) Text (Type Method)}
+ {#INVOKESTATIC (Type Class) Text (Type Method)}
+ {#INVOKEVIRTUAL (Type Class) Text (Type Method)}))
(type: .public Register
Nat)
(type: .public Local_Int
(Variant
- (#ILOAD Register)
- (#ISTORE Register)))
+ {#ILOAD Register}
+ {#ISTORE Register}))
(type: .public Local_Long
(Variant
- (#LLOAD Register)
- (#LSTORE Register)))
+ {#LLOAD Register}
+ {#LSTORE Register}))
(type: .public Local_Float
(Variant
- (#FLOAD Register)
- (#FSTORE Register)))
+ {#FLOAD Register}
+ {#FSTORE Register}))
(type: .public Local_Double
(Variant
- (#DLOAD Register)
- (#DSTORE Register)))
+ {#DLOAD Register}
+ {#DSTORE Register}))
(type: .public Local_Object
(Variant
- (#ALOAD Register)
- (#ASTORE Register)))
+ {#ALOAD Register}
+ {#ASTORE Register}))
(type: .public Local
(Variant
- (#Local_Int Local_Int)
- (#IINC Register)
- (#Local_Long Local_Long)
- (#Local_Float Local_Float)
- (#Local_Double Local_Double)
- (#Local_Object Local_Object)))
+ {#Local_Int Local_Int}
+ {#IINC Register}
+ {#Local_Long Local_Long}
+ {#Local_Float Local_Float}
+ {#Local_Double Local_Double}
+ {#Local_Object Local_Object}))
(type: .public Stack
(Variant
@@ -246,30 +246,30 @@
(type: .public (Branching label)
(Variant
- (#IF_ICMPEQ label)
- (#IF_ICMPGE label)
- (#IF_ICMPGT label)
- (#IF_ICMPLE label)
- (#IF_ICMPLT label)
- (#IF_ICMPNE label)
- (#IFEQ label)
- (#IFNE label)
- (#IFGE label)
- (#IFGT label)
- (#IFLE label)
- (#IFLT label)
-
- (#TABLESWITCH Int Int label (List label))
- (#LOOKUPSWITCH label (List [Int label]))
-
- (#IF_ACMPEQ label)
- (#IF_ACMPNE label)
- (#IFNONNULL label)
- (#IFNULL label)))
+ {#IF_ICMPEQ label}
+ {#IF_ICMPGE label}
+ {#IF_ICMPGT label}
+ {#IF_ICMPLE label}
+ {#IF_ICMPLT label}
+ {#IF_ICMPNE label}
+ {#IFEQ label}
+ {#IFNE label}
+ {#IFGE label}
+ {#IFGT label}
+ {#IFLE label}
+ {#IFLT label}
+
+ {#TABLESWITCH Int Int label (List label)}
+ {#LOOKUPSWITCH label (List [Int label])}
+
+ {#IF_ACMPEQ label}
+ {#IF_ACMPNE label}
+ {#IFNONNULL label}
+ {#IFNULL label}))
(type: .public (Exception label)
(Variant
- (#Try label label label (Type Class))
+ {#Try label label label (Type Class)}
#ATHROW))
(type: .public Concurrency
@@ -288,26 +288,26 @@
(type: .public (Control label)
(Variant
- (#GOTO label)
- (#Branching (Branching label))
- (#Exception (Exception label))
- (#Concurrency Concurrency)
- (#Return Return)))
+ {#GOTO label}
+ {#Branching (Branching label)}
+ {#Exception (Exception label)}
+ {#Concurrency Concurrency}
+ {#Return Return}))
(type: .public (Instruction embedded label)
(Variant
#NOP
- (#Constant Constant)
- (#Arithmetic Arithmetic)
- (#Bitwise Bitwise)
- (#Conversion Conversion)
- (#Array Array)
- (#Object Object)
- (#Local Local)
- (#Stack Stack)
- (#Comparison Comparison)
- (#Control (Control label))
- (#Embedded embedded)))
+ {#Constant Constant}
+ {#Arithmetic Arithmetic}
+ {#Bitwise Bitwise}
+ {#Conversion Conversion}
+ {#Array Array}
+ {#Object Object}
+ {#Local Local}
+ {#Stack Stack}
+ {#Comparison Comparison}
+ {#Control (Control label)}
+ {#Embedded embedded}))
(type: .public (Bytecode embedded label)
(Row (Instruction embedded label)))
diff --git a/stdlib/source/library/lux/target/jvm/attribute.lux b/stdlib/source/library/lux/target/jvm/attribute.lux
index 78ce1854d..ed10a42c6 100644
--- a/stdlib/source/library/lux/target/jvm/attribute.lux
+++ b/stdlib/source/library/lux/target/jvm/attribute.lux
@@ -55,8 +55,8 @@
(type: .public Attribute
(Rec Attribute
(Variant
- (#Constant (Info (Constant Any)))
- (#Code (Info <Code>)))))
+ {#Constant (Info (Constant Any))}
+ {#Code (Info <Code>)})))
(type: .public Code
<Code>)
@@ -82,16 +82,16 @@
(-> Attribute Nat)
(case attribute
(^template [<tag>]
- [(<tag> [name length info])
+ [{<tag> [name length info]}
(|> length //unsigned.value (n.+ ..common_attribute_length))])
([#Constant] [#Code])))
... TODO: Inline ASAP
(def: (constant' @name index)
(-> (Index UTF8) (Constant Any) Attribute)
- (#Constant [#name @name
+ {#Constant [#name @name
#length (|> /constant.length //unsigned.u4 try.trusted)
- #info index]))
+ #info index]})
(def: .public (constant index)
(-> (Constant Any) (Resource Attribute))
@@ -102,13 +102,13 @@
... TODO: Inline ASAP
(def: (code' @name specification)
(-> (Index UTF8) Code Attribute)
- (#Code [#name @name
+ {#Code [#name @name
... https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3
#length (|> specification
(/code.length ..length)
//unsigned.u4
try.trusted)
- #info specification]))
+ #info specification]})
(def: .public (code specification)
(-> Code (Resource Attribute))
@@ -119,8 +119,8 @@
(def: .public (writer value)
(Writer Attribute)
(case value
- (#Constant attribute)
+ {#Constant attribute}
((info_writer /constant.writer) attribute)
- (#Code attribute)
+ {#Code attribute}
((info_writer (/code.writer writer)) attribute)))
diff --git a/stdlib/source/library/lux/target/jvm/bytecode.lux b/stdlib/source/library/lux/target/jvm/bytecode.lux
index 85fa58c78..d999f5320 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode.lux
@@ -78,7 +78,7 @@
(def: relative_identity
Relative
- (function.constant (#try.Success [..no_exceptions _.empty])))
+ (function.constant {#try.Success [..no_exceptions _.empty]}))
(implementation: relative_monoid
(Monoid Relative)
@@ -106,11 +106,11 @@
(def: .public new_label
(Bytecode Label)
(function (_ [pool environment tracker])
- (#try.Success [[pool
+ {#try.Success [[pool
environment
(revised@ #next ++ tracker)]
[..relative_identity
- (value@ #next tracker)]])))
+ (value@ #next tracker)]]}))
(exception: .public (label_has_already_been_set [label Label])
(exception.report
@@ -131,7 +131,7 @@
(with_expansions [<success> (as_is (in [[pool
environment
(revised@ #known
- (dictionary.has label [actual (#.Some @here)])
+ (dictionary.has label [actual {#.Some @here}])
tracker)]
[..relative_identity
[]]]))]
@@ -140,10 +140,10 @@
(function (_ [pool environment tracker])
(let [@here (value@ #program_counter tracker)]
(case (dictionary.value label (value@ #known tracker))
- (#.Some [expected (#.Some address)])
+ {#.Some [expected {#.Some address}]}
(exception.except ..label_has_already_been_set [label])
- (#.Some [expected #.None])
+ {#.Some [expected #.None]}
(do try.monad
[[actual environment] (/environment.continue expected environment)]
<success>)
@@ -455,10 +455,10 @@
(do ..monad
[index (..lifted (//constant/pool.string value))]
(case (|> index //index.value //unsigned.value //unsigned.u1)
- (#try.Success index)
+ {#try.Success index}
(..bytecode $0 $1 @_ _.ldc [index])
- (#try.Failure _)
+ {#try.Failure _}
(..bytecode $0 $1 @_ _.ldc_w/string [index]))))
(import: java/lang/Float
@@ -480,10 +480,10 @@
_ (do ..monad
[index (..lifted (<constant> (<constructor> value)))]
(case (|> index //index.value //unsigned.value //unsigned.u1)
- (#try.Success index)
+ {#try.Success index}
(..bytecode $0 $1 @_ _.ldc [index])
- (#try.Failure _)
+ {#try.Failure _}
(..bytecode $0 $1 @_ <wide> [index])))))]
[int I32 //constant.integer //constant/pool.integer _.ldc_w/integer
@@ -502,10 +502,10 @@
(do ..monad
[index (..lifted (//constant/pool.float (//constant.float value)))]
(case (|> index //index.value //unsigned.value //unsigned.u1)
- (#try.Success index)
+ {#try.Success index}
(..bytecode $0 $1 @_ _.ldc [index])
- (#try.Failure _)
+ {#try.Failure _}
(..bytecode $0 $1 @_ _.ldc_w/float [index]))))
(def: float_bits
@@ -583,10 +583,10 @@
(def: (register id)
(-> Nat (Bytecode Register))
(case (//unsigned.u1 id)
- (#try.Success register)
+ {#try.Success register}
(\ ..monad in register)
- (#try.Failure error)
+ {#try.Failure error}
(..except ..invalid_register [id])))
(template [<for> <size> <name> <general> <specials>]
@@ -715,10 +715,10 @@
(def: (resolve_label label resolver)
(-> Label Resolver (Try [Stack Address]))
(case (dictionary.value label resolver)
- (#.Some [actual (#.Some address)])
- (#try.Success [actual address])
+ {#.Some [actual {#.Some address}]}
+ {#try.Success [actual address]}
- (#.Some [actual #.None])
+ {#.Some [actual #.None]}
(exception.except ..unset_label [label])
#.None
@@ -727,7 +727,7 @@
(def: (acknowledge_label stack label tracker)
(-> Stack Label Tracker Tracker)
(case (dictionary.value label (value@ #known tracker))
- (#.Some _)
+ {#.Some _}
tracker
#.None
@@ -757,10 +757,10 @@
(\ /stack.equivalence = expected actual))
jump (..jump @from @to)]
(case jump
- (#.Left jump)
+ {#.Left jump}
(exception.except ..cannot_do_a_big_jump [label @from jump])
- (#.Right jump)
+ {#.Right jump}
(in [..no_exceptions (bytecode jump)]))))
[]]])))))))]
@@ -802,19 +802,19 @@
(with@ #program_counter program_counter'))]
[(function (_ resolver)
(case (dictionary.value label resolver)
- (#.Some [expected (#.Some @to)])
+ {#.Some [expected {#.Some @to}]}
(do try.monad
[_ (exception.assertion ..mismatched_environments [(name_of <instruction>) label @here expected actual]
(\ /stack.equivalence = expected actual))
jump (..jump @from @to)]
(case jump
- (#.Left jump)
+ {#.Left jump}
<on_long_jump>
- (#.Right jump)
+ {#.Right jump}
<on_short_jump>))
- (#.Some [expected #.None])
+ {#.Some [expected #.None]}
(exception.except ..unset_label [label])
#.None
@@ -832,10 +832,10 @@
(def: (big_jump jump)
(-> Any_Jump Big_Jump)
(case jump
- (#.Left big)
+ {#.Left big}
big
- (#.Right small)
+ {#.Right small}
(/jump.lifted small)))
(exception: .public invalid_tableswitch)
@@ -865,7 +865,7 @@
(monad.each ! get)
(monad.then ! (monad.each ! product.right)))]
(in [@default @at_minimum @afterwards]))
- (#.Some [@default @at_minimum @afterwards])
+ {#.Some [@default @at_minimum @afterwards]}
(do [! try.monad]
[>default (\ ! each ..big_jump (..jump @from @default))
>at_minimum (\ ! each ..big_jump (..jump @from @at_minimum))
@@ -907,7 +907,7 @@
(monad.each ! (|>> product.right get))
(monad.then ! (monad.each ! product.right)))]
(in [@default @cases]))
- (#.Some [@default @cases])
+ {#.Some [@default @cases]}
(do [! try.monad]
[>default (\ ! each ..big_jump (..jump @from @default))
>cases (|> @cases
@@ -1025,7 +1025,7 @@
(do ..monad
[@catch (..lifted (//constant/pool.class (//name.internal (..reflection catch))))]
(function (_ [pool environment tracker])
- (#try.Success
+ {#try.Success
[[pool
environment
(..acknowledge_label /stack.catch @handler tracker)]
@@ -1042,7 +1042,7 @@
#//exception.handler @handler
#//exception.catch @catch])
_.empty])))
- []]]))))
+ []]]})))
(def: .public (composite pre post)
(All (_ pre post)
diff --git a/stdlib/source/library/lux/target/jvm/bytecode/environment.lux b/stdlib/source/library/lux/target/jvm/bytecode/environment.lux
index 9ba2ca0d4..c7b6481fb 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode/environment.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode/environment.lux
@@ -28,7 +28,7 @@
(do try.monad
[limit (<limit> type)]
(in [#limit limit
- #stack (#.Some /stack.empty)])))]
+ #stack {#.Some /stack.empty}])))]
[static /limit.static]
[virtual /limit.virtual]
@@ -53,8 +53,8 @@
(def: .public (stack environment)
(-> Environment (Try Stack))
(case (value@ #..stack environment)
- (#.Some stack)
- (#try.Success stack)
+ {#.Some stack}
+ {#try.Success stack}
#.None
(exception.except ..discontinuity [])))
@@ -72,13 +72,13 @@
(def: .public (continue expected environment)
(-> Stack Environment (Try [Stack Environment]))
(case (value@ #..stack environment)
- (#.Some actual)
+ {#.Some actual}
(if (\ /stack.equivalence = expected actual)
- (#try.Success [actual environment])
+ {#try.Success [actual environment]}
(exception.except ..mismatched_stacks [expected actual]))
#.None
- (#try.Success [expected (with@ #..stack (#.Some expected) environment)])))
+ {#try.Success [expected (with@ #..stack {#.Some expected} environment)]}))
(def: .public (consumes amount)
(-> U2 Condition)
@@ -88,7 +88,7 @@
(do try.monad
[previous (..stack environment)
current (/stack.pop amount previous)]
- (in (with@ #..stack (#.Some current) environment)))))
+ (in (with@ #..stack {#.Some current} environment)))))
(def: .public (produces amount)
(-> U2 Condition)
@@ -100,7 +100,7 @@
(value@ [#..limit #/limit.stack])
(/stack.max current))]]
(in (|> environment
- (with@ #..stack (#.Some current))
+ (with@ #..stack {#.Some current})
(with@ [#..limit #/limit.stack] limit))))))
(def: .public (has registry)
diff --git a/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux b/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
index 9fe36c303..646278f35 100644
--- a/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
+++ b/stdlib/source/library/lux/target/jvm/bytecode/instruction.lux
@@ -634,12 +634,12 @@
_ (binary.write/32! offset (///signed.value maximum) binary)]
(loop [offset (n.+ (///unsigned.value ..integer_size) offset)
afterwards (: (List Big_Jump)
- (#.Item at_minimum afterwards))]
+ {#.Item at_minimum afterwards})]
(case afterwards
#.End
(in binary)
- (#.Item head tail)
+ {#.Item head tail}
(do !
[_ (binary.write/32! offset (///signed.value head) binary)]
(recur (n.+ (///unsigned.value ..big_jump_size) offset)
@@ -698,7 +698,7 @@
#.End
(in binary)
- (#.Item [value jump] tail)
+ {#.Item [value jump] tail}
(do !
[_ (binary.write/32! offset (///signed.value value) binary)
_ (binary.write/32! (n.+ (///unsigned.value ..integer_size) offset) (///signed.value jump) binary)]
diff --git a/stdlib/source/library/lux/target/jvm/constant.lux b/stdlib/source/library/lux/target/jvm/constant.lux
index d1e9b2122..27efe496d 100644
--- a/stdlib/source/library/lux/target/jvm/constant.lux
+++ b/stdlib/source/library/lux/target/jvm/constant.lux
@@ -157,22 +157,22 @@
(type: .public Constant
(Variant
- (#UTF8 UTF8)
- (#Integer Integer)
- (#Float Float)
- (#Long Long)
- (#Double Double)
- (#Class Class)
- (#String String)
- (#Field (Reference //category.Value))
- (#Method (Reference //category.Method))
- (#Interface_Method (Reference //category.Method))
- (#Name_And_Type (Name_And_Type Any))))
+ {#UTF8 UTF8}
+ {#Integer Integer}
+ {#Float Float}
+ {#Long Long}
+ {#Double Double}
+ {#Class Class}
+ {#String String}
+ {#Field (Reference //category.Value)}
+ {#Method (Reference //category.Method)}
+ {#Interface_Method (Reference //category.Method)}
+ {#Name_And_Type (Name_And_Type Any)}))
(def: .public (size constant)
(-> Constant Nat)
(case constant
- (^or (#Long _) (#Double _))
+ (^or {#Long _} {#Double _})
2
_
@@ -186,7 +186,7 @@
(def: (= reference sample)
(case [reference sample]
(^template [<tag> <equivalence>]
- [[(<tag> reference) (<tag> sample)]
+ [[{<tag> reference} {<tag> sample}]
(\ <equivalence> = reference sample)])
([#UTF8 text.equivalence]
[#Integer (..value_equivalence i32.equivalence)]
@@ -244,7 +244,7 @@
(function (_ value)
(case value
(^template [<case> <tag> <writer>]
- [(<case> value)
+ [{<case> value}
(binaryF\composite (/tag.writer <tag>)
(<writer> value))])
(<constants>)
diff --git a/stdlib/source/library/lux/target/jvm/constant/pool.lux b/stdlib/source/library/lux/target/jvm/constant/pool.lux
index 2ae78260d..41ff5ad26 100644
--- a/stdlib/source/library/lux/target/jvm/constant/pool.lux
+++ b/stdlib/source/library/lux/target/jvm/constant/pool.lux
@@ -57,19 +57,19 @@
(with_expansions [<try_again> (as_is (recur (.++ idx)))]
(loop [idx 0]
(case (row.item idx pool)
- (#try.Success entry)
+ {#try.Success entry}
(case entry
- [index (<tag> reference)]
+ [index {<tag> reference}]
(if (\ <equivalence> = reference <value>')
- (#try.Success [[current pool]
- index])
+ {#try.Success [[current pool]
+ index]}
<try_again>)
_
<try_again>)
- (#try.Failure _)
- (let [new (<tag> <value>')]
+ {#try.Failure _}
+ (let [new {<tag> <value>'}]
(do [! try.monad]
[@new (//unsigned.u2 (//.size new))
next (: (Try Index)
diff --git a/stdlib/source/library/lux/target/jvm/encoding/signed.lux b/stdlib/source/library/lux/target/jvm/encoding/signed.lux
index 3bafb4bfc..5d4f124a6 100644
--- a/stdlib/source/library/lux/target/jvm/encoding/signed.lux
+++ b/stdlib/source/library/lux/target/jvm/encoding/signed.lux
@@ -67,7 +67,7 @@
(i64.or negative value)
(i64.and positive value))
value)
- (#try.Success (:abstraction value))
+ {#try.Success (:abstraction value)}
(exception.except ..value_exceeds_the_scope [value <size>])))))
(template [<abstract_operation> <concrete_operation>]
diff --git a/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux b/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux
index df550075b..097265bcf 100644
--- a/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux
+++ b/stdlib/source/library/lux/target/jvm/encoding/unsigned.lux
@@ -74,7 +74,7 @@
(-> Nat (Try <name>))
(if (n.> (:representation <maximum>) value)
(exception.except ..value_exceeds_the_maximum [(name_of <name>) value <maximum>])
- (#try.Success (:abstraction value))))
+ {#try.Success (:abstraction value)}))
(def: .public (<+> parameter subject)
(-> <name> <name> (Try <name>))
@@ -88,7 +88,7 @@
subject' (:representation subject)]
(if (n.> subject' parameter')
(exception.except ..subtraction_cannot_yield_negative_value [(name_of <name>) parameter subject])
- (#try.Success (:abstraction (n.- parameter' subject'))))))
+ {#try.Success (:abstraction (n.- parameter' subject'))})))
(def: .public (<max> left right)
(-> <name> <name> <name>)
diff --git a/stdlib/source/library/lux/target/jvm/loader.lux b/stdlib/source/library/lux/target/jvm/loader.lux
index 1d5eda342..82999be00 100644
--- a/stdlib/source/library/lux/target/jvm/loader.lux
+++ b/stdlib/source/library/lux/target/jvm/loader.lux
@@ -116,12 +116,12 @@
(let [class_name (:as Text class_name)
classes (|> library atom.read! io.run!)]
(case (dictionary.value class_name classes)
- (#.Some bytecode)
+ {#.Some bytecode}
(case (..define class_name bytecode (<| <cast> self))
- (#try.Success class)
+ {#try.Success class}
(:expected class)
- (#try.Failure error)
+ {#try.Failure error}
(panic! (exception.error ..cannot_define [class_name error])))
#.None
@@ -135,7 +135,7 @@
(in (exception.except ..already_stored name))
(do !
[_ (atom.update! (dictionary.has name bytecode) library)]
- (in (#try.Success []))))))
+ (in {#try.Success []})))))
(def: .public (load name loader)
(-> Text java/lang/ClassLoader
diff --git a/stdlib/source/library/lux/target/jvm/method.lux b/stdlib/source/library/lux/target/jvm/method.lux
index 11e8e1c06..a56b732c3 100644
--- a/stdlib/source/library/lux/target/jvm/method.lux
+++ b/stdlib/source/library/lux/target/jvm/method.lux
@@ -59,16 +59,16 @@
(monad.all !)
(\ ! each row.of_list))
attributes (case code
- (#.Some code)
+ {#.Some code}
(do !
[environment (case (if (//modifier.has? static modifier)
(//bytecode/environment.static type)
(//bytecode/environment.virtual type))
- (#try.Success environment)
+ {#try.Success environment}
(in environment)
- (#try.Failure error)
- (function (_ _) (#try.Failure error)))
+ {#try.Failure error}
+ (function (_ _) {#try.Failure error}))
[environment exceptions instruction output] (//bytecode.resolve environment code)
.let [bytecode (|> instruction //bytecode/instruction.result format.instance)]
@code (//attribute.code [#//attribute/code.limit (value@ #//bytecode/environment.limit environment)
diff --git a/stdlib/source/library/lux/target/jvm/reflection.lux b/stdlib/source/library/lux/target/jvm/reflection.lux
index 740d43c63..59a3d72d6 100644
--- a/stdlib/source/library/lux/target/jvm/reflection.lux
+++ b/stdlib/source/library/lux/target/jvm/reflection.lux
@@ -128,10 +128,10 @@
(def: .public (load class_loader name)
(-> java/lang/ClassLoader External (Try (java/lang/Class java/lang/Object)))
(case (java/lang/Class::forName name false class_loader)
- (#try.Success class)
- (#try.Success class)
+ {#try.Success class}
+ {#try.Success class}
- (#try.Failure _)
+ {#try.Failure _}
(exception.except ..unknown_class [name])))
(def: .public (sub? class_loader super sub)
@@ -146,7 +146,7 @@
java/lang/reflect/Type
(Try (/.Type Class)))
(<| (case (ffi.check java/lang/Class reflection)
- (#.Some class)
+ {#.Some class}
(let [class_name (|> class
(:as (java/lang/Class java/lang/Object))
java/lang/Class::getName)]
@@ -164,13 +164,13 @@
[/reflection.char]))
(text.starts_with? /descriptor.array_prefix class_name))
(exception.except ..not_a_class reflection)
- (#try.Success (/.class class_name (list))))))
+ {#try.Success (/.class class_name (list))})))
_)
(case (ffi.check java/lang/reflect/ParameterizedType reflection)
- (#.Some reflection)
+ {#.Some reflection}
(let [raw (java/lang/reflect/ParameterizedType::getRawType reflection)]
(case (ffi.check java/lang/Class raw)
- (#.Some raw)
+ {#.Some raw}
(do [! try.monad]
[paramsT (|> reflection
java/lang/reflect/ParameterizedType::getActualTypeArguments
@@ -190,11 +190,11 @@
(def: .public (parameter reflection)
(-> java/lang/reflect/Type (Try (/.Type Parameter)))
(<| (case (ffi.check java/lang/reflect/TypeVariable reflection)
- (#.Some reflection)
- (#try.Success (/.var (java/lang/reflect/TypeVariable::getName reflection)))
+ {#.Some reflection}
+ {#try.Success (/.var (java/lang/reflect/TypeVariable::getName reflection))}
_)
(case (ffi.check java/lang/reflect/WildcardType reflection)
- (#.Some reflection)
+ {#.Some reflection}
... TODO: Instead of having single lower/upper bounds, should
... allow for multiple ones.
(case [(array.read! 0 (java/lang/reflect/WildcardType::getLowerBounds reflection))
@@ -202,18 +202,18 @@
(^template [<pattern> <kind>]
[<pattern>
(case (ffi.check java/lang/reflect/GenericArrayType bound)
- (#.Some _)
+ {#.Some _}
... TODO: Array bounds should not be "erased" as they
... are right now.
- (#try.Success /.wildcard)
+ {#try.Success /.wildcard}
_
(\ try.monad each <kind> (..class' parameter bound)))])
- ([[_ (#.Some bound)] /.upper]
- [[(#.Some bound) _] /.lower])
+ ([[_ {#.Some bound}] /.upper]
+ [[{#.Some bound} _] /.lower])
_
- (#try.Success /.wildcard))
+ {#try.Success /.wildcard})
_)
(..class' parameter reflection)))
@@ -225,14 +225,14 @@
(def: .public (type reflection)
(-> java/lang/reflect/Type (Try (/.Type Value)))
(<| (case (ffi.check java/lang/Class reflection)
- (#.Some reflection)
+ {#.Some reflection}
(let [class_name (|> reflection
(:as (java/lang/Class java/lang/Object))
java/lang/Class::getName)]
(`` (cond (~~ (template [<reflection> <type>]
[(text\= (/reflection.reflection <reflection>)
class_name)
- (#try.Success <type>)]
+ {#try.Success <type>}]
[/reflection.boolean /.boolean]
[/reflection.byte /.byte]
@@ -244,10 +244,10 @@
[/reflection.char /.char]))
(if (text.starts_with? /descriptor.array_prefix class_name)
(<t>.result /parser.value (|> class_name //name.internal //name.read))
- (#try.Success (/.class class_name (list)))))))
+ {#try.Success (/.class class_name (list))}))))
_)
(case (ffi.check java/lang/reflect/GenericArrayType reflection)
- (#.Some reflection)
+ {#.Some reflection}
(|> reflection
java/lang/reflect/GenericArrayType::getGenericComponentType
type
@@ -260,13 +260,13 @@
(-> java/lang/reflect/Type (Try (/.Type Return)))
(with_expansions [<else> (as_is (..type reflection))]
(case (ffi.check java/lang/Class reflection)
- (#.Some class)
+ {#.Some class}
(let [class_name (|> reflection
(:as (java/lang/Class java/lang/Object))
java/lang/Class::getName)]
(if (text\= (/reflection.reflection /reflection.void)
class_name)
- (#try.Success /.void)
+ {#try.Success /.void}
<else>))
#.None
@@ -295,7 +295,7 @@
(def: .public (correspond class type)
(-> (java/lang/Class java/lang/Object) Type (Try Mapping))
(case type
- (#.Primitive name params)
+ {#.Primitive name params}
(let [class_name (java/lang/Class::getName class)
class_params (array.list #.None (java/lang/Class::getTypeParameters class))
num_class_params (list.size class_params)
@@ -312,12 +312,12 @@
(exception.except ..type_parameter_mismatch [num_class_params num_type_params class type]))
(exception.except ..cannot_correspond [class type])))
- (#.Named name anonymousT)
+ {#.Named name anonymousT}
(correspond class anonymousT)
- (#.Apply inputT abstractionT)
+ {#.Apply inputT abstractionT}
(case (type.applied (list inputT) abstractionT)
- (#.Some outputT)
+ {#.Some outputT}
(correspond class outputT)
#.None
@@ -349,13 +349,13 @@
(def: .public (field field target)
(-> Text (java/lang/Class java/lang/Object) (Try java/lang/reflect/Field))
(case (java/lang/Class::getDeclaredField field target)
- (#try.Success field)
+ {#try.Success field}
(let [owner (java/lang/reflect/Field::getDeclaringClass field)]
(if (same? owner target)
- (#try.Success field)
+ {#try.Success field}
(exception.except ..mistaken_field_owner [field owner target])))
- (#try.Failure _)
+ {#try.Failure _}
(exception.except ..unknown_field [field target])))
(def: .public deprecated?
diff --git a/stdlib/source/library/lux/target/jvm/type/lux.lux b/stdlib/source/library/lux/target/jvm/type/lux.lux
index 023d844e8..d144ac6fe 100644
--- a/stdlib/source/library/lux/target/jvm/type/lux.lux
+++ b/stdlib/source/library/lux/target/jvm/type/lux.lux
@@ -55,7 +55,7 @@
[(def: <name>
(Parser (Check Type))
(<>.after <parser>
- (<>\in (check\in (#.Primitive (//reflection.reflection <reflection>) #.End)))))]
+ (<>\in (check\in {#.Primitive (//reflection.reflection <reflection>) #.End}))))]
[boolean //parser.boolean //reflection.boolean]
[byte //parser.byte //reflection.byte]
@@ -71,7 +71,7 @@
[(def: <name>
(Parser (Check Type))
(<>.after <parser>
- (<>\in (check\in (#.Primitive <box> #.End)))))]
+ (<>\in (check\in {#.Primitive <box> #.End}))))]
[boxed_boolean //parser.boolean //box.boolean]
[boxed_byte //parser.byte //box.byte]
@@ -123,7 +123,7 @@
#.None
(check.except ..unknown_var [var])
- (#.Some type)
+ {#.Some type}
(check\in type)))))
(def: (class' parameter)
@@ -136,7 +136,7 @@
(<>.else (list)))]
(in (do [! check.monad]
[parameters (monad.all ! parameters)]
- (in (#.Primitive name parameters)))))
+ (in {#.Primitive name parameters}))))
(<>.after (<text>.this //descriptor.class_prefix))
(<>.before (<text>.this //descriptor.class_suffix))))
@@ -173,7 +173,7 @@
(-> (Parser (Check Type)) (Parser (Check Type)))
(|>> (<>\each (check\each (function (_ elementT)
(case elementT
- (#.Primitive name #.End)
+ {#.Primitive name #.End}
(if (`` (or (~~ (template [<reflection>]
[(text\= (//reflection.reflection <reflection>) name)]
@@ -185,7 +185,7 @@
[//reflection.float]
[//reflection.double]
[//reflection.char]))))
- (#.Primitive (|> name //reflection.class //reflection.array //reflection.reflection) #.End)
+ {#.Primitive (|> name //reflection.class //reflection.array //reflection.reflection) #.End}
(|> elementT array.Array .type))
_
@@ -229,8 +229,8 @@
(def: .public (check operation input)
(All (_ a) (-> (Parser (Check a)) Text (Check a)))
(case (<text>.result operation input)
- (#try.Success check)
+ {#try.Success check}
check
- (#try.Failure error)
+ {#try.Failure error}
(check.failure error)))
diff --git a/stdlib/source/library/lux/target/python.lux b/stdlib/source/library/lux/target/python.lux
index af0514a76..a649fbcf1 100644
--- a/stdlib/source/library/lux/target/python.lux
+++ b/stdlib/source/library/lux/target/python.lux
@@ -371,7 +371,7 @@
(format "while " (:representation test) ":"
(..nested (:representation body!))
(case else!
- (#.Some else!)
+ {#.Some else!}
(format text.new_line "else:"
(..nested (:representation else!)))
@@ -424,7 +424,7 @@
(def: .public (exec code globals)
(-> (Expression Any) (Maybe (Expression Any)) (Statement Any))
(let [extra (case globals
- (#.Some globals)
+ {#.Some globals}
(.list globals)
#.None
diff --git a/stdlib/source/library/lux/target/ruby.lux b/stdlib/source/library/lux/target/ruby.lux
index acc560f31..85a3c92c3 100644
--- a/stdlib/source/library/lux/target/ruby.lux
+++ b/stdlib/source/library/lux/target/ruby.lux
@@ -373,7 +373,7 @@
#.None
proc
- (#.Some name)
+ {#.Some name}
(format (:representation name) " = " proc))
(text.enclosed ["(" ")"])
:abstraction)))
diff --git a/stdlib/source/library/lux/target/scheme.lux b/stdlib/source/library/lux/target/scheme.lux
index 285d934ad..390a43867 100644
--- a/stdlib/source/library/lux/target/scheme.lux
+++ b/stdlib/source/library/lux/target/scheme.lux
@@ -76,7 +76,7 @@
(def: (arguments [mandatory rest])
(-> Arguments (Code Any))
(case rest
- (#.Some rest)
+ {#.Some rest}
(case mandatory
#.End
rest
@@ -159,17 +159,17 @@
(|>> (case> #.End
(:abstraction "()")
- (#.Item head tail)
+ {#.Item head tail}
(|> tail
(list\each (|>> :representation ..nested))
- (#.Item (:representation head))
+ {#.Item (:representation head)}
(text.interposed nested_new_line)
(text.enclosed ["(" ")"])
:abstraction)))))
(def: .public (apply/* args func)
(-> (List Expression) Expression Computation)
- (..form (#.Item func args)))
+ (..form {#.Item func args}))
(template [<name> <function>]
[(def: .public (<name> members)
@@ -340,7 +340,7 @@
(-> Var Arguments Expression Computation)
(..form (list (..var "define")
(|> arguments
- (revised@ #mandatory (|>> (#.Item name)))
+ (revised@ #mandatory (|>> {#.Item name}))
..arguments)
body)))
@@ -350,7 +350,7 @@
(def: .public begin
(-> (List Expression) Computation)
- (|>> (#.Item (..var "begin")) ..form))
+ (|>> {#.Item (..var "begin")} ..form))
(def: .public (set! name value)
(-> Var Expression Computation)
@@ -371,7 +371,7 @@
#.None
(list)
- (#.Some else)
+ {#.Some else}
(list (..form (list (..var "else") else))))
(list\composite (list\each (function (_ [when then])
(..form (list when then)))
diff --git a/stdlib/source/library/lux/test.lux b/stdlib/source/library/lux/test.lux
index ae72ceb48..6aebcaadc 100644
--- a/stdlib/source/library/lux/test.lux
+++ b/stdlib/source/library/lux/test.lux
@@ -306,7 +306,7 @@
(loop [remaining encoding
output (set.of_list name.hash (list))]
(case (text.split_by ..coverage_separator remaining)
- (#.Some [head tail])
+ {#.Some [head tail]}
(recur tail (set.has [module head] output))
#.None
@@ -353,7 +353,7 @@
.let [coverage (|> definitions
(list\mix (function (_ [short [exported? _]] aggregate)
(if exported?
- (#.Item short aggregate)
+ {#.Item short aggregate}
aggregate))
#.End)
..encoded_coverage)]]
@@ -381,10 +381,10 @@
product.right
(function (_ _))
"lux try"
- (case> (#try.Success output)
+ (case> {#try.Success output}
output
- (#try.Failure error)
+ {#try.Failure error}
(..assertion (exception.error ..error_during_execution [error]) false))
io.io
async.future
diff --git a/stdlib/source/library/lux/time.lux b/stdlib/source/library/lux/time.lux
index de7525d42..f87a8f6f6 100644
--- a/stdlib/source/library/lux/time.lux
+++ b/stdlib/source/library/lux/time.lux
@@ -86,7 +86,7 @@
(def: .public (of_millis milli_seconds)
(-> Nat (Try Time))
(if (n.< ..limit milli_seconds)
- (#try.Success (:abstraction milli_seconds))
+ {#try.Success (:abstraction milli_seconds)}
(exception.except ..time_exceeds_a_day [milli_seconds])))
(def: .public millis
diff --git a/stdlib/source/library/lux/time/date.lux b/stdlib/source/library/lux/time/date.lux
index a739ff6f5..7053a71e1 100644
--- a/stdlib/source/library/lux/time/date.lux
+++ b/stdlib/source/library/lux/time/date.lux
@@ -79,11 +79,11 @@
(-> Year Month Nat (Try Date))
(if (..invalid_day? year month day_of_month)
(exception.except ..invalid_day [year month day_of_month])
- (#try.Success
+ {#try.Success
(:abstraction
[#year year
#month month
- #day day_of_month]))))
+ #day day_of_month])}))
(def: .public epoch
Date
diff --git a/stdlib/source/library/lux/time/day.lux b/stdlib/source/library/lux/time/day.lux
index ecdbc79ab..aee0a9f33 100644
--- a/stdlib/source/library/lux/time/day.lux
+++ b/stdlib/source/library/lux/time/day.lux
@@ -112,7 +112,7 @@
(def: (decoded value)
(case value
(^template [<tag>]
- [(^ (template.text [<tag>])) (#try.Success <tag>)])
+ [(^ (template.text [<tag>])) {#try.Success <tag>}])
([#..Monday]
[#..Tuesday]
[#..Wednesday]
@@ -158,7 +158,7 @@
(-> Nat (Try Day))
(case number
(^template [<number> <day>]
- [<number> (#try.Success <day>)])
+ [<number> {#try.Success <day>}])
(<pairs>)
_ (exception.except ..invalid_day [number])))
)
diff --git a/stdlib/source/library/lux/time/duration.lux b/stdlib/source/library/lux/time/duration.lux
index 2361a23f8..d0c044d39 100644
--- a/stdlib/source/library/lux/time/duration.lux
+++ b/stdlib/source/library/lux/time/duration.lux
@@ -178,8 +178,8 @@
(..merged (..up seconds ..second))
(..merged (..up millis ..milli_second)))]]
(in (case sign
- (#.Left _) (..inverse span)
- (#.Right _) span)))))
+ {#.Left _} (..inverse span)
+ {#.Right _} span)))))
(implementation: .public codec
(Codec Text Duration)
diff --git a/stdlib/source/library/lux/time/month.lux b/stdlib/source/library/lux/time/month.lux
index 57724be44..e2936b80e 100644
--- a/stdlib/source/library/lux/time/month.lux
+++ b/stdlib/source/library/lux/time/month.lux
@@ -88,7 +88,7 @@
(-> Nat (Try Month))
(case number
(^template [<number> <month>]
- [<number> (#try.Success <month>)])
+ [<number> {#try.Success <month>}])
(<pairs>)
_ (exception.except ..invalid_month [number])))
)
@@ -226,7 +226,7 @@
(def: (decoded value)
(case value
(^template [<tag>]
- [(^ (template.text [<tag>])) (#try.Success <tag>)])
+ [(^ (template.text [<tag>])) {#try.Success <tag>}])
([#..January]
[#..February]
[#..March]
diff --git a/stdlib/source/library/lux/time/year.lux b/stdlib/source/library/lux/time/year.lux
index 5a621bac3..9b69e84d6 100644
--- a/stdlib/source/library/lux/time/year.lux
+++ b/stdlib/source/library/lux/time/year.lux
@@ -42,7 +42,7 @@
(-> Int (Try Year))
(case value
+0 (exception.except ..there_is_no_year_0 [])
- _ (#try.Success (:abstraction (..internal value)))))
+ _ {#try.Success (:abstraction (..internal value))}))
(def: .public value
(-> Year Int)
@@ -118,8 +118,8 @@
digits (<text>.many <text>.decimal)
raw_year (<>.codec i.decimal (in (text\composite "+" digits)))]
(<>.lifted (..year (case sign
- (#.Left _) (i.* -1 raw_year)
- (#.Right _) raw_year)))))
+ {#.Left _} (i.* -1 raw_year)
+ {#.Right _} raw_year)))))
(implementation: .public codec
(Codec Text Year)
diff --git a/stdlib/source/library/lux/tool/compiler/default/init.lux b/stdlib/source/library/lux/tool/compiler/default/init.lux
index 35759ca87..a43b9a4d9 100644
--- a/stdlib/source/library/lux/tool/compiler/default/init.lux
+++ b/stdlib/source/library/lux/tool/compiler/default/init.lux
@@ -94,22 +94,22 @@
(def: (reader current_module aliases [location offset source_code])
(-> Module Aliases Source (///analysis.Operation Reader))
(function (_ [bundle state])
- (#try.Success [[bundle state]
- (///syntax.parse current_module aliases ("lux text size" source_code))])))
+ {#try.Success [[bundle state]
+ (///syntax.parse current_module aliases ("lux text size" source_code))]}))
(def: (read source reader)
(-> Source Reader (///analysis.Operation [Source Code]))
(function (_ [bundle compiler])
(case (reader source)
- (#.Left [source' error])
- (#try.Failure error)
+ {#.Left [source' error]}
+ {#try.Failure error}
- (#.Right [source' output])
+ {#.Right [source' output]}
(let [[location _] output]
- (#try.Success [[bundle (|> compiler
+ {#try.Success [[bundle (|> compiler
(with@ #.source source')
(with@ #.location location))]
- [source' output]])))))
+ [source' output]]}))))
(type: (Operation a)
(All (_ anchor expression directive)
@@ -209,13 +209,13 @@
(..reader module aliases source))]
(function (_ state)
(case (///phase.result' state (..iteration' wrapper archive expander reader source pre_payload))
- (#try.Success [state source&requirements&buffer])
- (#try.Success [state (#.Some source&requirements&buffer)])
+ {#try.Success [state source&requirements&buffer]}
+ {#try.Success [state {#.Some source&requirements&buffer}]}
- (#try.Failure error)
+ {#try.Failure error}
(if (exception.match? ///syntax.end_of_file error)
- (#try.Success [state #.None])
- (exception.with ///.cannot_compile module (#try.Failure error)))))))
+ {#try.Success [state #.None]}
+ (exception.with ///.cannot_compile module {#try.Failure error}))))))
(def: (default_dependencies prelude input)
(-> Module ///.Input (List Module))
@@ -257,16 +257,16 @@
#descriptor.state #.Compiled
#descriptor.registry final_registry]]]
(in [state
- (#.Right [descriptor
+ {#.Right [descriptor
(document.write key analysis_module)
(row\each (function (_ [artifact_id custom directive])
[artifact_id custom (write_directive directive)])
- final_buffer)])]))
+ final_buffer)]}]))
- (#.Some [source requirements temporary_payload])
+ {#.Some [source requirements temporary_payload]}
(let [[temporary_buffer temporary_registry] temporary_payload]
(in [state
- (#.Left [#///.dependencies (|> requirements
+ {#.Left [#///.dependencies (|> requirements
(value@ #///directive.imports)
(list\each product.left))
#///.process (function (_ state archive)
@@ -284,5 +284,5 @@
(value@ #///directive.referrals)
(monad.each ! (execute! archive)))
temporary_payload (..get_current_payload temporary_payload)]
- (..iteration wrapper archive expander module source temporary_payload (..module_aliases analysis_module))))))])]))
+ (..iteration wrapper archive expander module source temporary_payload (..module_aliases analysis_module))))))]}]))
)))))]))))
diff --git a/stdlib/source/library/lux/tool/compiler/default/platform.lux b/stdlib/source/library/lux/tool/compiler/default/platform.lux
index d24ad8f33..f884282eb 100644
--- a/stdlib/source/library/lux/tool/compiler/default/platform.lux
+++ b/stdlib/source/library/lux/tool/compiler/default/platform.lux
@@ -382,7 +382,7 @@
(exception.except ..cannot_import_circular_dependency [importer importee])
... else
- (#try.Success [])))
+ {#try.Success []}))
(with_expansions [<Context> (as_is [Archive <State+>])
<Result> (as_is (Try <Context>))
@@ -423,20 +423,20 @@
[[_ dependence] (stm.update (..depend importer module) dependence)]
(in dependence)))]
(case (..verify_dependencies importer module dependence)
- (#try.Failure error)
- (in [(async.resolved (#try.Failure error))
+ {#try.Failure error}
+ (in [(async.resolved {#try.Failure error})
#.None])
- (#try.Success _)
+ {#try.Success _}
(do !
[[archive state] (stm.read current)]
(if (archive.archived? archive module)
- (in [(async\in (#try.Success [archive state]))
+ (in [(async\in {#try.Success [archive state]})
#.None])
(do !
[@pending (stm.read pending)]
(case (dictionary.value module @pending)
- (#.Some [return signal])
+ {#.Some [return signal]}
(in [return
#.None])
@@ -446,7 +446,7 @@
[module_id (archive.id module archive)]
(in [module_id archive]))
(archive.reserve module archive))
- (#try.Success [module_id archive])
+ {#try.Success [module_id archive]}
(do !
[_ (stm.write [archive state] current)
.let [[return signal] (:sharing [<type_vars>]
@@ -457,31 +457,31 @@
(async.async []))]
_ (stm.update (dictionary.has module [return signal]) pending)]
(in [return
- (#.Some [[archive state]
+ {#.Some [[archive state]
module_id
- signal])]))
+ signal]}]))
- (#try.Failure error)
- (in [(async\in (#try.Failure error))
+ {#try.Failure error}
+ (in [(async\in {#try.Failure error})
#.None])))))))))))
_ (case signal
#.None
(in [])
- (#.Some [context module_id resolver])
+ {#.Some [context module_id resolver]}
(do !
[result (compile importer import! module_id context module)
result (case result
- (#try.Failure error)
+ {#try.Failure error}
(in result)
- (#try.Success [resulting_archive resulting_state])
+ {#try.Success [resulting_archive resulting_state]}
(stm.commit! (do stm.monad
[[_ [merged_archive _]] (stm.update (function (_ [archive state])
[(archive.merged resulting_archive archive)
state])
current)]
- (in (#try.Success [merged_archive resulting_state])))))
+ (in {#try.Success [merged_archive resulting_state]}))))
_ (async.future (resolver result))]
(in [])))]
return)))))
@@ -579,7 +579,7 @@
#.End
(in [archive state])
- (#.Item _)
+ {#.Item _}
(do !
[archive,document+ (|> new_dependencies
(list\each (import! module))
@@ -598,27 +598,27 @@
try.trusted
product.left)
archive)
- (#try.Success [state more|done])
+ {#try.Success [state more|done]}
(case more|done
- (#.Left more)
+ {#.Left more}
(continue! [archive state] more all_dependencies)
- (#.Right [descriptor document output])
+ {#.Right [descriptor document output]}
(do !
[.let [_ (debug.log! (..module_compilation_log module state))
descriptor (with@ #descriptor.references all_dependencies descriptor)]
_ (..cache_module static platform module_id [descriptor document output])]
(case (archive.has module [descriptor document output] archive)
- (#try.Success archive)
+ {#try.Success archive}
(in [archive
(..with_reset_log state)])
- (#try.Failure error)
- (async\in (#try.Failure error)))))
+ {#try.Failure error}
+ (async\in {#try.Failure error}))))
- (#try.Failure error)
+ {#try.Failure error}
(do !
[_ (ioW.freeze (value@ #&file_system platform) static archive)]
- (async\in (#try.Failure error)))))))))]
+ (async\in {#try.Failure error}))))))))]
(compiler archive.runtime_module compilation_module)))
)))
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 35c150116..fb9566948 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis.lux
@@ -38,12 +38,12 @@
(type: .public Primitive
(.Variant
#Unit
- (#Bit Bit)
- (#Nat Nat)
- (#Int Int)
- (#Rev Rev)
- (#Frac Frac)
- (#Text Text)))
+ {#Bit Bit}
+ {#Nat Nat}
+ {#Int Int}
+ {#Rev Rev}
+ {#Frac Frac}
+ {#Text Text}))
(type: .public Tag
Nat)
@@ -77,15 +77,15 @@
(type: .public (Composite a)
(.Variant
- (#Variant (Variant a))
- (#Tuple (Tuple a))))
+ {#Variant (Variant a)}
+ {#Tuple (Tuple a)}))
(type: .public Pattern
(Rec Pattern
(.Variant
- (#Simple Primitive)
- (#Complex (Composite Pattern))
- (#Bind Register))))
+ {#Simple Primitive}
+ {#Complex (Composite Pattern)}
+ {#Bind Register})))
(type: .public (Branch' e)
(Record
@@ -101,13 +101,13 @@
(type: .public Analysis
(Rec Analysis
(.Variant
- (#Primitive Primitive)
- (#Structure (Composite Analysis))
- (#Reference Reference)
- (#Case Analysis (Match' Analysis))
- (#Function (Environment Analysis) Analysis)
- (#Apply Analysis Analysis)
- (#Extension (Extension Analysis)))))
+ {#Primitive Primitive}
+ {#Structure (Composite Analysis)}
+ {#Reference Reference}
+ {#Case Analysis (Match' Analysis)}
+ {#Function (Environment Analysis) Analysis}
+ {#Apply Analysis Analysis}
+ {#Extension (Extension Analysis)})))
(type: .public Branch
(Branch' Analysis))
@@ -124,7 +124,7 @@
true
(^template [<tag> <=>]
- [[(<tag> reference) (<tag> sample)]
+ [[{<tag> reference} {<tag> sample}]
(<=> reference sample)])
([#Bit bit\=]
[#Nat n.=]
@@ -141,13 +141,13 @@
(def: (= reference sample)
(case [reference sample]
- [(#Variant [reference_lefts reference_right? reference_value])
- (#Variant [sample_lefts sample_right? sample_value])]
+ [{#Variant [reference_lefts reference_right? reference_value]}
+ {#Variant [sample_lefts sample_right? sample_value]}]
(and (n.= reference_lefts sample_lefts)
(bit\= reference_right? sample_right?)
(/\= reference_value sample_value))
- [(#Tuple reference) (#Tuple sample)]
+ [{#Tuple reference} {#Tuple sample}]
(\ (list.equivalence /\=) = reference sample)
_
@@ -161,13 +161,13 @@
(def: (hash value)
(case value
- (#Variant [lefts right? value])
+ {#Variant [lefts right? value]}
($_ n.* 2
(\ n.hash hash lefts)
(\ bit.hash hash right?)
(\ super hash value))
- (#Tuple members)
+ {#Tuple members}
($_ n.* 3
(\ (list.hash super) hash members))
)))
@@ -177,13 +177,13 @@
(def: (= reference sample)
(case [reference sample]
- [(#Simple reference) (#Simple sample)]
+ [{#Simple reference} {#Simple sample}]
(\ primitive_equivalence = reference sample)
- [(#Complex reference) (#Complex sample)]
+ [{#Complex reference} {#Complex sample}]
(\ (composite_equivalence =) = reference sample)
- [(#Bind reference) (#Bind sample)]
+ [{#Bind reference} {#Bind sample}]
(n.= reference sample)
_
@@ -201,31 +201,31 @@
(def: (= reference sample)
(case [reference sample]
- [(#Primitive reference) (#Primitive sample)]
+ [{#Primitive reference} {#Primitive sample}]
(\ primitive_equivalence = reference sample)
- [(#Structure reference) (#Structure sample)]
+ [{#Structure reference} {#Structure sample}]
(\ (composite_equivalence =) = reference sample)
- [(#Reference reference) (#Reference sample)]
+ [{#Reference reference} {#Reference sample}]
(\ reference.equivalence = reference sample)
- [(#Case [reference_analysis reference_match])
- (#Case [sample_analysis sample_match])]
+ [{#Case [reference_analysis reference_match]}
+ {#Case [sample_analysis sample_match]}]
(and (= reference_analysis sample_analysis)
- (\ (list.equivalence (branch_equivalence =)) = (#.Item reference_match) (#.Item sample_match)))
+ (\ (list.equivalence (branch_equivalence =)) = {#.Item reference_match} {#.Item sample_match}))
- [(#Function [reference_environment reference_analysis])
- (#Function [sample_environment sample_analysis])]
+ [{#Function [reference_environment reference_analysis]}
+ {#Function [sample_environment sample_analysis]}]
(and (= reference_analysis sample_analysis)
(\ (list.equivalence =) = reference_environment sample_environment))
- [(#Apply [reference_input reference_abstraction])
- (#Apply [sample_input sample_abstraction])]
+ [{#Apply [reference_input reference_abstraction]}
+ {#Apply [sample_input sample_abstraction]}]
(and (= reference_input sample_input)
(= reference_abstraction sample_abstraction))
- [(#Extension reference) (#Extension sample)]
+ [{#Extension reference} {#Extension sample}]
(\ (extension.equivalence =) = reference sample)
_
@@ -239,11 +239,11 @@
)
(template: .public (unit)
- [(#..Primitive #..Unit)])
+ [{#..Primitive #..Unit}])
(template [<name> <tag>]
[(template: .public (<name> value)
- [(#..Primitive (<tag> value))])]
+ [{#..Primitive {<tag> value}}])]
[bit #..Bit]
[nat #..Nat]
@@ -264,14 +264,17 @@
(n.= (-- size) tag))
(template: .public (no_op value)
- [(|> 1 #variable.Local #reference.Variable #..Reference
- (#..Function (list))
- (#..Apply value))])
+ [(|> 1
+ {#variable.Local}
+ {#reference.Variable}
+ {#..Reference}
+ {#..Function (list)}
+ {#..Apply value})])
(def: .public (apply [abstraction inputs])
(-> (Application Analysis) Analysis)
(list\mix (function (_ input abstraction')
- (#Apply input abstraction'))
+ {#Apply input abstraction'})
abstraction
inputs))
@@ -280,39 +283,39 @@
(loop [abstraction analysis
inputs (list)]
(case abstraction
- (#Apply input next)
- (recur next (#.Item input inputs))
+ {#Apply input next}
+ (recur next {#.Item input inputs})
_
[abstraction inputs])))
(template [<name> <tag>]
[(template: .public (<name> content)
- [(.<| #..Reference
+ [(.<| {#..Reference}
<tag>
content)])]
- [variable #reference.Variable]
- [constant #reference.Constant]
+ [variable {#reference.Variable}]
+ [constant {#reference.Constant}]
- [variable/local reference.local]
- [variable/foreign reference.foreign]
+ [variable/local (reference.local)]
+ [variable/foreign (reference.foreign)]
)
(template [<name> <tag>]
[(template: .public (<name> content)
- [(.<| #..Complex
+ [(.<| {#..Complex}
<tag>
content)])]
- [pattern/variant #..Variant]
- [pattern/tuple #..Tuple]
+ [pattern/variant {#..Variant}]
+ [pattern/tuple {#..Tuple}]
)
(template [<name> <tag>]
[(template: .public (<name> content)
- [(.<| #..Structure
- <tag>
+ [(.<| {#..Structure}
+ {<tag>}
content)])]
[variant #..Variant]
@@ -320,11 +323,11 @@
)
(template: .public (pattern/unit)
- [(#..Simple #..Unit)])
+ [{#..Simple #..Unit}])
(template [<name> <tag>]
[(template: .public (<name> content)
- [(#..Simple (<tag> content))])]
+ [{#..Simple {<tag> content}}])]
[pattern/bit #..Bit]
[pattern/nat #..Nat]
@@ -335,18 +338,18 @@
)
(template: .public (pattern/bind register)
- [(#..Bind register)])
+ [{#..Bind register}])
(def: .public (%analysis analysis)
(Format Analysis)
(case analysis
- (#Primitive primitive)
+ {#Primitive primitive}
(case primitive
#Unit
"[]"
(^template [<tag> <format>]
- [(<tag> value)
+ [{<tag> value}
(<format> value)])
([#Bit %.bit]
[#Nat %.nat]
@@ -355,24 +358,24 @@
[#Frac %.frac]
[#Text %.text]))
- (#Structure structure)
+ {#Structure structure}
(case structure
- (#Variant [lefts right? value])
+ {#Variant [lefts right? value]}
(format "(" (%.nat lefts) " " (%.bit right?) " " (%analysis value) ")")
- (#Tuple members)
+ {#Tuple members}
(|> members
(list\each %analysis)
(text.interposed " ")
(text.enclosed ["[" "]"])))
- (#Reference reference)
+ {#Reference reference}
(reference.format reference)
- (#Case analysis match)
+ {#Case analysis match}
"{?}"
- (#Function environment body)
+ {#Function environment body}
(|> (%analysis body)
(format " ")
(format (|> environment
@@ -381,15 +384,15 @@
(text.enclosed ["[" "]"])))
(text.enclosed ["(" ")"]))
- (#Apply _)
+ {#Apply _}
(|> analysis
..application
- #.Item
+ {#.Item}
(list\each %analysis)
(text.interposed " ")
(text.enclosed ["(" ")"]))
- (#Extension name parameters)
+ {#Extension name parameters}
(|> parameters
(list\each %analysis)
(text.interposed " ")
@@ -412,12 +415,12 @@
(function (_ [bundle state])
(let [old_source (value@ #.source state)]
(case (action [bundle (with@ #.source source state)])
- (#try.Success [[bundle' state'] output])
- (#try.Success [[bundle' (with@ #.source old_source state')]
- output])
+ {#try.Success [[bundle' state'] output]}
+ {#try.Success [[bundle' (with@ #.source old_source state')]
+ output]}
- (#try.Failure error)
- (#try.Failure error)))))
+ {#try.Failure error}
+ {#try.Failure error}))))
(def: fresh_bindings
(All (_ k v) (Bindings k v))
@@ -434,18 +437,18 @@
(def: .public (with_scope action)
(All (_ a) (-> (Operation a) (Operation [Scope a])))
(function (_ [bundle state])
- (case (action [bundle (revised@ #.scopes (|>> (#.Item fresh_scope)) state)])
- (#try.Success [[bundle' state'] output])
+ (case (action [bundle (revised@ #.scopes (|>> {#.Item fresh_scope}) state)])
+ {#try.Success [[bundle' state'] output]}
(case (value@ #.scopes state')
- (#.Item head tail)
- (#try.Success [[bundle' (with@ #.scopes tail state')]
- [head output]])
+ {#.Item head tail}
+ {#try.Success [[bundle' (with@ #.scopes tail state')]
+ [head output]]}
#.End
- (#try.Failure "Impossible error: Drained scopes!"))
+ {#try.Failure "Impossible error: Drained scopes!"})
- (#try.Failure error)
- (#try.Failure error))))
+ {#try.Failure error}
+ {#try.Failure error})))
(def: scope_reset
(List Scope)
@@ -455,18 +458,18 @@
(All (_ a) (-> (Operation a) (Operation a)))
(function (_ [bundle state])
(case (action [bundle (with@ #.scopes ..scope_reset state)])
- (#try.Success [[bundle' state'] output])
- (#try.Success [[bundle' (with@ #.scopes (value@ #.scopes state) state')]
- output])
+ {#try.Success [[bundle' state'] output]}
+ {#try.Success [[bundle' (with@ #.scopes (value@ #.scopes state) state')]
+ output]}
- (#try.Failure error)
- (#try.Failure error))))
+ {#try.Failure error}
+ {#try.Failure error})))
(def: .public (with_current_module name)
(All (_ a) (-> Text (Operation a) (Operation a)))
(extension.localized (value@ #.current_module)
(with@ #.current_module)
- (function.constant (#.Some name))))
+ (function.constant {#.Some name})))
(def: .public (with_location location action)
(All (_ a) (-> Location (Operation a) (Operation a)))
@@ -475,12 +478,12 @@
(function (_ [bundle state])
(let [old_location (value@ #.location state)]
(case (action [bundle (with@ #.location location state)])
- (#try.Success [[bundle' state'] output])
- (#try.Success [[bundle' (with@ #.location old_location state')]
- output])
+ {#try.Success [[bundle' state'] output]}
+ {#try.Success [[bundle' (with@ #.location old_location state')]
+ output]}
- (#try.Failure error)
- (#try.Failure error))))))
+ {#try.Failure error}
+ {#try.Failure error})))))
(def: (locate_error location error)
(-> Location Text Text)
@@ -490,7 +493,7 @@
(def: .public (failure error)
(-> Text Operation)
(function (_ [bundle state])
- (#try.Failure (locate_error (value@ #.location state) error))))
+ {#try.Failure (locate_error (value@ #.location state) error)}))
(def: .public (except exception parameters)
(All (_ e) (-> (Exception e) e Operation))
@@ -505,7 +508,7 @@
(def: .public (failure' error)
(-> Text (phase.Operation Lux))
(function (_ state)
- (#try.Failure (locate_error (value@ #.location state) error))))
+ {#try.Failure (locate_error (value@ #.location state) error)}))
(def: .public (except' exception parameters)
(All (_ e) (-> (Exception e) e (phase.Operation Lux)))
@@ -516,18 +519,18 @@
(function (_ bundle,state)
(case (exception.with exception message
(action bundle,state))
- (#try.Success output)
- (#try.Success output)
+ {#try.Success output}
+ {#try.Success output}
- (#try.Failure error)
+ {#try.Failure error}
(let [[bundle state] bundle,state]
- (#try.Failure (locate_error (value@ #.location state) error))))))
+ {#try.Failure (locate_error (value@ #.location state) error)}))))
(def: .public (install state)
(-> .Lux (Operation Any))
(function (_ [bundle _])
- (#try.Success [[bundle state]
- []])))
+ {#try.Success [[bundle state]
+ []]}))
(template [<name> <type> <field> <value>]
[(def: .public (<name> value)
@@ -535,7 +538,7 @@
(extension.update (with@ <field> <value>)))]
[set_source_code Source #.source value]
- [set_current_module Text #.current_module (#.Some value)]
+ [set_current_module Text #.current_module {#.Some value}]
[set_location Location #.location value]
)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/macro.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/macro.lux
index 0b9e317fe..ed5983d14 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/macro.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/macro.lux
@@ -38,10 +38,10 @@
(do try.monad
[output (expander macro inputs state)]
(case output
- (#try.Success output)
- (#try.Success output)
+ {#try.Success output}
+ {#try.Success output}
- (#try.Failure error)
+ {#try.Failure error}
((meta.failure (exception.error ..expansion_failed [name inputs error])) state)))))
(def: .public (expand_one expander name macro inputs)
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 dd8d86836..cd74d94f4 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/directive.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/directive.lux
@@ -70,7 +70,7 @@
(All (_ anchor expression directive)
(Operation anchor expression directive <phase>))
(function (_ [bundle state])
- (#try.Success [[bundle state] (value@ [<component> #..phase] state)])))]
+ {#try.Success [[bundle state] (value@ [<component> #..phase] state)]}))]
[analysis #..analysis analysis.Phase]
[synthesis #..synthesis synthesis.Phase]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/generation.lux b/stdlib/source/library/lux/tool/compiler/language/lux/generation.lux
index 7ed71e658..72a086650 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/generation.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/generation.lux
@@ -115,21 +115,21 @@
(All (_ anchor expression directive output) <with_type>)
(function (_ body)
(function (_ [bundle state])
- (case (body [bundle (with@ <tag> (#.Some <with_value>) state)])
- (#try.Success [[bundle' state'] output])
- (#try.Success [[bundle' (with@ <tag> (value@ <tag> state) state')]
- output])
+ (case (body [bundle (with@ <tag> {#.Some <with_value>} state)])
+ {#try.Success [[bundle' state'] output]}
+ {#try.Success [[bundle' (with@ <tag> (value@ <tag> state) state')]
+ output]}
- (#try.Failure error)
- (#try.Failure error)))))
+ {#try.Failure error}
+ {#try.Failure error}))))
(def: .public <get>
(All (_ anchor expression directive)
(Operation anchor expression directive <get_type>))
(function (_ (^@ stateE [bundle state]))
(case (value@ <tag> state)
- (#.Some output)
- (#try.Success [stateE output])
+ {#.Some output}
+ {#try.Success [stateE output]}
#.None
(exception.except <exception> []))))
@@ -138,8 +138,8 @@
(All (_ anchor expression directive)
(-> <get_type> (Operation anchor expression directive Any)))
(function (_ [bundle state])
- (#try.Success [[bundle (with@ <tag> (#.Some value) state)]
- []])))]
+ {#try.Success [[bundle (with@ <tag> {#.Some value} state)]
+ []]}))]
[#anchor
(with_anchor anchor)
@@ -160,14 +160,14 @@
(All (_ anchor expression directive)
(Operation anchor expression directive artifact.Registry))
(function (_ (^@ stateE [bundle state]))
- (#try.Success [stateE (value@ #registry state)])))
+ {#try.Success [stateE (value@ #registry state)]}))
(def: .public (set_registry value)
(All (_ anchor expression directive)
(-> artifact.Registry (Operation anchor expression directive Any)))
(function (_ [bundle state])
- (#try.Success [[bundle (with@ #registry value state)]
- []])))
+ {#try.Success [[bundle (with@ #registry value state)]
+ []]}))
(def: .public next
(All (_ anchor expression directive)
@@ -197,10 +197,10 @@
(-> Context expression (Operation anchor expression directive Any)))
(function (_ (^@ state+ [bundle state]))
(case (\ (value@ #host state) evaluate! label code)
- (#try.Success output)
- (#try.Success [state+ output])
+ {#try.Success output}
+ {#try.Success [state+ output]}
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..cannot_interpret error))))
(def: .public (execute! code)
@@ -208,10 +208,10 @@
(-> directive (Operation anchor expression directive Any)))
(function (_ (^@ state+ [bundle state]))
(case (\ (value@ #host state) execute! code)
- (#try.Success output)
- (#try.Success [state+ output])
+ {#try.Success output}
+ {#try.Success [state+ output]}
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..cannot_interpret error))))
(def: .public (define! context custom code)
@@ -219,10 +219,10 @@
(-> Context (Maybe Text) expression (Operation anchor expression directive [Text Any directive])))
(function (_ (^@ stateE [bundle state]))
(case (\ (value@ #host state) define! context custom code)
- (#try.Success output)
- (#try.Success [stateE output])
+ {#try.Success output}
+ {#try.Success [stateE output]}
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..cannot_interpret error))))
(def: .public (save! artifact_id custom code)
@@ -231,11 +231,11 @@
(do [! phase.monad]
[?buffer (extension.read (value@ #buffer))]
(case ?buffer
- (#.Some buffer)
+ {#.Some buffer}
... TODO: Optimize by no longer checking for overwrites...
(if (row.any? (|>> product.left (n.= artifact_id)) buffer)
(phase.except ..cannot_overwrite_output [artifact_id])
- (extension.update (with@ #buffer (#.Some (row.suffix [artifact_id custom code] buffer)))))
+ (extension.update (with@ #buffer {#.Some (row.suffix [artifact_id custom code] buffer)})))
#.None
(phase.except ..no_buffer_for_saving_code [artifact_id]))))
@@ -246,8 +246,8 @@
(-> Text (Operation anchor expression directive artifact.ID)))
(function (_ (^@ stateE [bundle state]))
(let [[id registry'] (<artifact> name (value@ #registry state))]
- (#try.Success [[bundle (with@ #registry registry' state)]
- id]))))]
+ {#try.Success [[bundle (with@ #registry registry' state)]
+ id]})))]
[learn artifact.definition]
[learn_custom artifact.custom]
@@ -272,16 +272,16 @@
(do try.monad
[module_id (archive.id _module archive)
registry (if (text\= (value@ #module state) _module)
- (#try.Success (value@ #registry state))
+ {#try.Success (value@ #registry state)}
(do try.monad
[[descriptor document] (archive.find _module archive)]
- (#try.Success (value@ #descriptor.registry descriptor))))]
+ {#try.Success (value@ #descriptor.registry descriptor)}))]
(case (artifact.remember _name registry)
#.None
(exception.except ..unknown_definition [name (artifact.definitions registry)])
- (#.Some id)
- (#try.Success [stateE [module_id id]]))))))
+ {#.Some id}
+ {#try.Success [stateE [module_id id]]})))))
(exception: .public no_context)
@@ -301,7 +301,7 @@
#.None
(exception.except ..no_context [])
- (#.Some id)
+ {#.Some id}
(do try.monad
[module_id (archive.id (value@ #module state) archive)]
(in [stateE [module_id id]])))))
@@ -313,7 +313,7 @@
(Operation anchor expression directive a)))
(function (_ [bundle state])
(do try.monad
- [[[bundle' state'] output] (body [bundle (with@ #context (#.Some id) state)])]
+ [[[bundle' state'] output] (body [bundle (with@ #context {#.Some id} state)])]
(in [[bundle' (with@ #context (value@ #context state) state')]
output]))))
@@ -326,7 +326,7 @@
(do try.monad
[[[bundle' state'] output] (body [bundle (|> state
(with@ #registry registry')
- (with@ #context (#.Some id)))])
+ (with@ #context {#.Some id}))])
module_id (archive.id (value@ #module state) archive)]
(in [[bundle' (with@ #context (value@ #context state) state')]
[[module_id id]
@@ -336,6 +336,6 @@
(All (_ anchor expression directive a)
(-> Text (Operation anchor expression directive Any)))
(function (_ [bundle state])
- (#try.Success [[bundle
+ {#try.Success [[bundle
(revised@ #log (row.suffix message) state)]
- []])))
+ []]}))
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 c8c2b9fd3..53968905c 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
@@ -41,7 +41,7 @@
(-> Archive Phase (Fix (-> (Code' (Ann Location)) (Operation Analysis))))
(case code'
(^template [<tag> <analyser>]
- [(<tag> value)
+ [{<tag> value}
(<analyser> value)])
([#.Bit /primitive.bit]
[#.Nat /primitive.nat]
@@ -50,28 +50,28 @@
[#.Frac /primitive.frac]
[#.Text /primitive.text])
- (^ (#.Form (list& [_ (#.Tag tag)]
- values)))
+ (^ {#.Form (list& [_ {#.Tag tag}]
+ values)})
(case values
- (#.Item value #.End)
+ {#.Item value #.End}
(/structure.tagged_sum compile tag archive value)
_
(/structure.tagged_sum compile tag archive (` [(~+ values)])))
- (^ (#.Form (list& [_ (#.Nat lefts)] [_ (#.Bit right?)]
- values)))
+ (^ {#.Form (list& [_ {#.Nat lefts}] [_ {#.Bit right?}]
+ values)})
(case values
- (#.Item value #.End)
+ {#.Item value #.End}
(/structure.sum compile lefts right? archive value)
_
(/structure.sum compile lefts right? archive (` [(~+ values)])))
- (#.Tag tag)
+ {#.Tag tag}
(/structure.tagged_sum compile tag archive (' []))
- (^ (#.Tuple elems))
+ (^ {#.Tuple elems})
(/structure.record archive compile elems)
_
@@ -80,30 +80,30 @@
(def: (compile|others expander archive compile code')
(-> Expander Archive Phase (-> (Code' (Ann Location)) (Operation Analysis)))
(case code'
- (#.Identifier reference)
+ {#.Identifier reference}
(/reference.reference reference)
- (^ (#.Form (list [_ (#.Record branches)] input)))
+ (^ {#.Form (list [_ {#.Record branches}] input)})
(/case.case compile branches archive input)
- (^ (#.Form (list& [_ (#.Text extension_name)] extension_args)))
+ (^ {#.Form (list& [_ {#.Text extension_name}] extension_args)})
(//extension.apply archive compile [extension_name extension_args])
- (^ (#.Form (list [_ (#.Tuple (list [_ (#.Identifier ["" function_name])]
- [_ (#.Identifier ["" arg_name])]))]
- body)))
+ (^ {#.Form (list [_ {#.Tuple (list [_ {#.Identifier ["" function_name]}]
+ [_ {#.Identifier ["" arg_name]}])}]
+ body)})
(/function.function compile function_name arg_name archive body)
- (^ (#.Form (list& functionC argsC+)))
+ (^ {#.Form (list& functionC argsC+)})
(do [! //.monad]
[[functionT functionA] (/type.with_inference
(compile archive functionC))]
(case functionA
- (#/.Reference (#reference.Constant def_name))
+ {#/.Reference {#reference.Constant def_name}}
(do !
[?macro (//extension.lifted (meta.macro def_name))]
(case ?macro
- (#.Some macro)
+ {#.Some macro}
(do !
[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 ec8fb396e..d7a7bf6ab 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
@@ -69,8 +69,8 @@
#.End
baseT
- (#.Item head tail)
- (re_quantify tail (#.UnivQ head baseT))))
+ {#.Item head tail}
+ (re_quantify tail {#.UnivQ head baseT})))
... Type-checking on the input value is done during the analysis of a
... "case" expression, to ensure that the patterns being used make
@@ -85,53 +85,53 @@
(list))
caseT caseT]
(.case caseT
- (#.Var id)
+ {#.Var id}
(do ///.monad
[?caseT' (//type.with_env
(check.peek id))]
(.case ?caseT'
- (#.Some caseT')
+ {#.Some caseT'}
(recur envs caseT')
_
(/.except ..cannot_simplify_for_pattern_matching caseT)))
- (#.Named name unnamedT)
+ {#.Named name unnamedT}
(recur envs unnamedT)
- (#.UnivQ env unquantifiedT)
- (recur (#.Item env envs) unquantifiedT)
+ {#.UnivQ env unquantifiedT}
+ (recur {#.Item env envs} unquantifiedT)
- (#.ExQ _)
+ {#.ExQ _}
(do ///.monad
[[var_id varT] (//type.with_env
check.var)]
(recur envs (maybe.trusted (type.applied (list varT) caseT))))
- (#.Apply inputT funcT)
+ {#.Apply inputT funcT}
(.case funcT
- (#.Var funcT_id)
+ {#.Var funcT_id}
(do ///.monad
[funcT' (//type.with_env
(do check.monad
[?funct' (check.peek funcT_id)]
(.case ?funct'
- (#.Some funct')
+ {#.Some funct'}
(in funct')
_
(check.except ..cannot_simplify_for_pattern_matching caseT))))]
- (recur envs (#.Apply inputT funcT')))
+ (recur envs {#.Apply inputT funcT'}))
_
(.case (type.applied (list inputT) funcT)
- (#.Some outputT)
+ {#.Some outputT}
(recur envs outputT)
#.None
(/.except ..cannot_simplify_for_pattern_matching caseT)))
- (#.Product _)
+ {#.Product _}
(|> caseT
type.flat_tuple
(list\each (re_quantify envs))
@@ -169,56 +169,56 @@
(def: (analyse_pattern num_tags inputT pattern next)
(All (_ a) (-> (Maybe Nat) Type Code (Operation a) (Operation [Pattern a])))
(.case pattern
- [location (#.Identifier ["" name])]
+ [location {#.Identifier ["" name]}]
(/.with_location location
(do ///.monad
[outputA (//scope.with_local [name inputT]
next)
idx //scope.next_local]
- (in [(#/.Bind idx) outputA])))
+ (in [{#/.Bind idx} outputA])))
(^template [<type> <input> <output>]
[[location <input>]
- (analyse_primitive <type> inputT location (#/.Simple <output>) next)])
- ([Bit (#.Bit pattern_value) (#/.Bit pattern_value)]
- [Nat (#.Nat pattern_value) (#/.Nat pattern_value)]
- [Int (#.Int pattern_value) (#/.Int pattern_value)]
- [Rev (#.Rev pattern_value) (#/.Rev pattern_value)]
- [Frac (#.Frac pattern_value) (#/.Frac pattern_value)]
- [Text (#.Text pattern_value) (#/.Text pattern_value)]
- [Any (#.Tuple #.End) #/.Unit])
+ (analyse_primitive <type> inputT location {#/.Simple <output>} next)])
+ ([Bit {#.Bit pattern_value} {#/.Bit pattern_value}]
+ [Nat {#.Nat pattern_value} {#/.Nat pattern_value}]
+ [Int {#.Int pattern_value} {#/.Int pattern_value}]
+ [Rev {#.Rev pattern_value} {#/.Rev pattern_value}]
+ [Frac {#.Frac pattern_value} {#/.Frac pattern_value}]
+ [Text {#.Text pattern_value} {#/.Text pattern_value}]
+ [Any {#.Tuple #.End} #/.Unit])
- (^ [location (#.Tuple (list singleton))])
+ (^ [location {#.Tuple (list singleton)}])
(analyse_pattern #.None inputT singleton next)
- [location (#.Tuple sub_patterns)]
+ [location {#.Tuple sub_patterns}]
(do [! ///.monad]
[record (//structure.normal sub_patterns)
record_size,members,recordT (: (Operation (Maybe [Nat (List Code) Type]))
(.case record
- (#.Some record)
+ {#.Some record}
(//structure.order record)
#.None
(in #.None)))]
(.case record_size,members,recordT
- (#.Some [record_size members recordT])
+ {#.Some [record_size members recordT]}
(do !
[_ (.case inputT
- (#.Var _id)
+ {#.Var _id}
(//type.with_env
(check.check inputT recordT))
_
(in []))]
- (analyse_pattern (#.Some record_size) inputT [location (#.Tuple members)] next))
+ (analyse_pattern {#.Some record_size} inputT [location {#.Tuple members}] next))
#.None
(/.with_location location
(do [! ///.monad]
[inputT' (simplify_case inputT)]
(.case inputT'
- (#.Product _)
+ {#.Product _}
(let [matches (loop [types (type.flat_tuple inputT')
patterns sub_patterns
output (: (List [Type Code])
@@ -227,17 +227,17 @@
[#.End #.End]
output
- [(#.Item headT #.End) (#.Item headP #.End)]
- (#.Item [headT headP] output)
+ [{#.Item headT #.End} {#.Item headP #.End}]
+ {#.Item [headT headP] output}
- [remainingT (#.Item headP #.End)]
- (#.Item [(type.tuple remainingT) headP] output)
+ [remainingT {#.Item headP #.End}]
+ {#.Item [(type.tuple remainingT) headP] output}
- [(#.Item headT #.End) remainingP]
- (#.Item [headT (code.tuple remainingP)] output)
+ [{#.Item headT #.End} remainingP]
+ {#.Item [headT (code.tuple remainingP)] output}
- [(#.Item headT tailT) (#.Item headP tailP)]
- (recur tailT tailP (#.Item [headT headP] output))
+ [{#.Item headT tailT} {#.Item headP tailP}]
+ (recur tailT tailP {#.Item [headT headP] output})
_
(undefined)))]
@@ -261,22 +261,22 @@
_
(/.except ..cannot_match_with_pattern [inputT' pattern]))))))
- [location (#.Tag tag)]
+ [location {#.Tag tag}]
(/.with_location location
(analyse_pattern #.None inputT (` ((~ pattern))) next))
- (^ [location (#.Form (list& [_ (#.Nat lefts)] [_ (#.Bit right?)] values))])
+ (^ [location {#.Form (list& [_ {#.Nat lefts}] [_ {#.Bit right?}] values)}])
(/.with_location location
(do ///.monad
[inputT' (simplify_case inputT)]
(.case inputT'
- (#.Sum _)
+ {#.Sum _}
(let [flat_sum (type.flat_variant inputT')
size_sum (list.size flat_sum)
num_cases (maybe.else size_sum num_tags)
idx (/.tag lefts right?)]
(.case (list.item idx flat_sum)
- (^multi (#.Some caseT)
+ (^multi {#.Some caseT}
(n.< num_cases idx))
(do ///.monad
[[testP nextA] (if (and (n.> num_cases size_sum)
@@ -292,7 +292,7 @@
_
(/.except ..sum_has_no_case [idx inputT])))
- (#.UnivQ _)
+ {#.UnivQ _}
(do ///.monad
[[ex_id exT] (//type.with_env
check.existential)]
@@ -304,7 +304,7 @@
_
(/.except ..cannot_match_with_pattern [inputT' pattern]))))
- (^ [location (#.Form (list& [_ (#.Tag tag)] values))])
+ (^ [location {#.Form (list& [_ {#.Tag tag}] values)}])
(/.with_location location
(do ///.monad
[tag (///extension.lifted (meta.normal tag))
@@ -312,7 +312,7 @@
_ (//type.with_env
(check.check inputT variantT))
.let [[lefts right?] (/.choice (list.size group) idx)]]
- (analyse_pattern (#.Some (list.size group)) inputT (` ((~ (code.nat lefts)) (~ (code.bit right?)) (~+ values))) next)))
+ (analyse_pattern {#.Some (list.size group)} inputT (` ((~ (code.nat lefts)) (~ (code.bit right?)) (~+ values))) next)))
_
(/.except ..not_a_pattern pattern)
@@ -321,7 +321,7 @@
(def: .public (case analyse branches archive inputC)
(-> Phase (List [Code Code]) Phase)
(.case branches
- (#.Item [patternH bodyH] branchesT)
+ {#.Item [patternH bodyH] branchesT}
(do [! ///.monad]
[[inputT inputA] (//type.with_inference
(analyse archive inputC))
@@ -333,13 +333,13 @@
outputHC (|> outputH product.left /coverage.determine)
outputTC (monad.each ! (|>> product.left /coverage.determine) outputT)
_ (.case (monad.mix try.monad /coverage.merged outputHC outputTC)
- (#try.Success coverage)
+ {#try.Success coverage}
(///.assertion non_exhaustive_pattern_matching [inputC branches coverage]
(/coverage.exhaustive? coverage))
- (#try.Failure error)
+ {#try.Failure error}
(/.failure error))]
- (in (#/.Case inputA [outputH outputT])))
+ (in {#/.Case inputA [outputH outputT]}))
#.End
(/.except ..cannot_have_empty_branches "")))
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 5dcedd669..70623af8a 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
@@ -51,16 +51,16 @@
(Rec Coverage
(.Variant
#Partial
- (#Bit Bit)
- (#Variant (Maybe Nat) (Dictionary Nat Coverage))
- (#Seq Coverage Coverage)
- (#Alt Coverage Coverage)
+ {#Bit Bit}
+ {#Variant (Maybe Nat) (Dictionary Nat Coverage)}
+ {#Seq Coverage Coverage}
+ {#Alt Coverage Coverage}
#Exhaustive)))
(def: .public (exhaustive? coverage)
(-> Coverage Bit)
(case coverage
- (#Exhaustive _)
+ {#Exhaustive _}
#1
_
@@ -72,12 +72,12 @@
#Partial
"#Partial"
- (#Bit value')
+ {#Bit value'}
(|> value'
%.bit
- (text.enclosed ["(#Bit " ")"]))
+ (text.enclosed ["{#Bit " "}"]))
- (#Variant ?max_cases cases)
+ {#Variant ?max_cases cases}
(|> cases
dictionary.entries
(list\each (function (_ [idx coverage])
@@ -85,13 +85,13 @@
(text.interposed " ")
(text.enclosed ["{" "}"])
(format (%.nat (..cases ?max_cases)) " ")
- (text.enclosed ["(#Variant " ")"]))
+ (text.enclosed ["{#Variant " "}"]))
- (#Seq left right)
- (format "(#Seq " (%coverage left) " " (%coverage right) ")")
+ {#Seq left right}
+ (format "{#Seq " (%coverage left) " " (%coverage right) "}")
- (#Alt left right)
- (format "(#Alt " (%coverage left) " " (%coverage right) ")")
+ {#Alt left right}
+ (format "{#Alt " (%coverage left) " " (%coverage right) "}")
#Exhaustive
"#Exhaustive"))
@@ -99,14 +99,14 @@
(def: .public (determine pattern)
(-> Pattern (Operation Coverage))
(case pattern
- (^or (#/.Simple #/.Unit)
- (#/.Bind _))
+ (^or {#/.Simple #/.Unit}
+ {#/.Bind _})
(////\in #Exhaustive)
... Primitive patterns always have partial coverage because there
... are too many possibilities as far as values go.
(^template [<tag>]
- [(#/.Simple (<tag> _))
+ [{#/.Simple {<tag> _}}
(////\in #Partial)])
([#/.Nat]
[#/.Int]
@@ -117,17 +117,17 @@
... Bits are the exception, since there is only "#1" and
... "#0", which means it is possible for bit
... pattern-matching to become exhaustive if complementary parts meet.
- (#/.Simple (#/.Bit value))
- (////\in (#Bit value))
+ {#/.Simple {#/.Bit value}}
+ (////\in {#Bit value})
... Tuple patterns can be exhaustive if there is exhaustiveness for all of
... their sub-patterns.
- (#/.Complex (#/.Tuple membersP+))
+ {#/.Complex {#/.Tuple membersP+}}
(case (list.reversed membersP+)
- (^or #.End (#.Item _ #.End))
+ (^or #.End {#.Item _ #.End})
(/.except ..invalid_tuple_pattern [])
- (#.Item lastP prevsP+)
+ {#.Item lastP prevsP+}
(do ////.monad
[lastC (determine lastP)]
(monad.mix ////.monad
@@ -139,22 +139,22 @@
(in leftC)
_
- (in (#Seq leftC rightC)))))
+ (in {#Seq leftC rightC}))))
lastC prevsP+)))
... Variant patterns can be shown to be exhaustive if all the possible
... cases are handled exhaustively.
- (#/.Complex (#/.Variant [lefts right? value]))
+ {#/.Complex {#/.Variant [lefts right? value]}}
(do ////.monad
[value_coverage (determine value)
.let [idx (if right?
(++ lefts)
lefts)]]
- (in (#Variant (if right?
- (#.Some idx)
+ (in {#Variant (if right?
+ {#.Some idx}
#.None)
- (|> (dictionary.empty n.hash)
- (dictionary.has idx value_coverage)))))))
+ (|> (dictionary.empty n.hash)
+ (dictionary.has idx value_coverage))}))))
(def: (xor left right)
(-> Bit Bit Bit)
@@ -176,7 +176,7 @@
(def: (flat_alt coverage)
(-> Coverage (List Coverage))
(case coverage
- (#Alt left right)
+ {#Alt left right}
(list& left (flat_alt right))
_
@@ -188,19 +188,19 @@
[#Exhaustive #Exhaustive]
#1
- [(#Bit sideR) (#Bit sideS)]
+ [{#Bit sideR} {#Bit sideS}]
(bit\= sideR sideS)
- [(#Variant allR casesR) (#Variant allS casesS)]
+ [{#Variant allR casesR} {#Variant allS casesS}]
(and (n.= (cases allR)
(cases allS))
(\ (dictionary.equivalence =) = casesR casesS))
- [(#Seq leftR rightR) (#Seq leftS rightS)]
+ [{#Seq leftR rightR} {#Seq leftS rightS}]
(and (= leftR leftS)
(= rightR rightS))
- [(#Alt _) (#Alt _)]
+ [{#Alt _} {#Alt _}]
(let [flatR (flat_alt reference)
flatS (flat_alt sample)]
(and (n.= (list.size flatR) (list.size flatS))
@@ -230,11 +230,11 @@
(try\in #Partial)
... 2 bit coverages are exhaustive if they complement one another.
- (^multi [(#Bit sideA) (#Bit sideSF)]
+ (^multi [{#Bit sideA} {#Bit sideSF}]
(xor sideA sideSF))
(try\in #Exhaustive)
- [(#Variant allA casesA) (#Variant allSF casesSF)]
+ [{#Variant allA casesA} {#Variant allSF casesSF}]
(let [addition_cases (cases allSF)
so_far_cases (cases allA)]
(cond (and (known_cases? addition_cases)
@@ -250,7 +250,7 @@
[casesM (monad.mix !
(function (_ [tagA coverageA] casesSF')
(case (dictionary.value tagA casesSF')
- (#.Some coverageSF)
+ {#.Some coverageSF}
(do !
[coverageM (merged coverageA coverageSF)]
(in (dictionary.has tagA coverageM casesSF')))
@@ -264,15 +264,15 @@
(dictionary.size casesM))
(list.every? exhaustive? (dictionary.values casesM)))
#Exhaustive
- (#Variant (case allSF
- (#.Some _)
+ {#Variant (case allSF
+ {#.Some _}
allSF
_
allA)
- casesM))))))
+ casesM})))))
- [(#Seq leftA rightA) (#Seq leftSF rightSF)]
+ [{#Seq leftA rightA} {#Seq leftSF rightSF}]
(case [(coverage/= leftSF leftA) (coverage/= rightSF rightA)]
... Same prefix
[#1 #0]
@@ -283,17 +283,17 @@
... (since only the "left" part would influence whether the
... merged coverage is exhaustive or not).
(in leftSF)
- (in (#Seq leftSF rightM))))
+ (in {#Seq leftSF rightM})))
... Same suffix
[#0 #1]
(do try.monad
[leftM (merged leftA leftSF)]
- (in (#Seq leftM rightA)))
+ (in {#Seq leftM rightA}))
... The 2 sequences cannot possibly be merged.
[#0 #0]
- (try\in (#Alt so_far addition))
+ (try\in {#Alt so_far addition})
... There is nothing the addition adds to the coverage.
[#1 #1]
@@ -308,12 +308,12 @@
(try\in #Exhaustive)
... The left part will always match, so the addition is redundant.
- (^multi [(#Seq left right) single]
+ (^multi [{#Seq left right} single]
(coverage/= left single))
(exception.except ..redundant_pattern [so_far addition])
... The right part is not necessary, since it can always match the left.
- (^multi [single (#Seq left right)]
+ (^multi [single {#Seq left right}]
(coverage/= left single))
(try\in single)
@@ -326,7 +326,7 @@
... other ones in the original Alt.
... This process must be repeated until no further productive
... merges can be done.
- [_ (#Alt leftS rightS)]
+ [_ {#Alt leftS rightS}]
(do [! try.monad]
[.let [fuse_once (: (-> Coverage (List Coverage)
(Try [(Maybe Coverage)
@@ -337,34 +337,34 @@
#.End
(in [#.None (list coverageA)])
- (#.Item altSF altsSF')
+ {#.Item altSF altsSF'}
(case (merged coverageA altSF)
- (#try.Success altMSF)
+ {#try.Success altMSF}
(case altMSF
- (#Alt _)
+ {#Alt _}
(do !
[[success altsSF+] (recur altsSF')]
- (in [success (#.Item altSF altsSF+)]))
+ (in [success {#.Item altSF altsSF+}]))
_
- (in [(#.Some altMSF) altsSF']))
+ (in [{#.Some altMSF} altsSF']))
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
))))]
[successA possibilitiesSF] (fuse_once addition (flat_alt so_far))]
(loop [successA successA
possibilitiesSF possibilitiesSF]
(case successA
- (#.Some coverageA')
+ {#.Some coverageA'}
(do !
[[successA' possibilitiesSF'] (fuse_once coverageA' possibilitiesSF)]
(recur successA' possibilitiesSF'))
#.None
(case (list.reversed possibilitiesSF)
- (#.Item last prevs)
- (in (list\mix (function (_ left right) (#Alt left right))
+ {#.Item last prevs}
+ (in (list\mix (function (_ left right) {#Alt left right})
last
prevs))
@@ -376,4 +376,4 @@
... The addition cannot possibly improve the coverage.
(exception.except ..redundant_pattern [so_far addition])
... There are now 2 alternative paths.
- (try\in (#Alt so_far addition)))))
+ (try\in {#Alt so_far addition}))))
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 fe0a32584..c0733c07a 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
@@ -54,31 +54,31 @@
(loop [expectedT functionT]
(/.with_stack ..cannot_analyse [expectedT function_name arg_name body]
(case expectedT
- (#.Named name unnamedT)
+ {#.Named name unnamedT}
(recur unnamedT)
- (#.Apply argT funT)
+ {#.Apply argT funT}
(case (type.applied (list argT) funT)
- (#.Some value)
+ {#.Some value}
(recur value)
#.None
(/.failure (ex.error cannot_analyse [expectedT function_name arg_name body])))
(^template [<tag> <instancer>]
- [(<tag> _)
+ [{<tag> _}
(do !
[[_ instanceT] (//type.with_env <instancer>)]
(recur (maybe.trusted (type.applied (list instanceT) expectedT))))])
([#.UnivQ check.existential]
[#.ExQ check.var])
- (#.Var id)
+ {#.Var id}
(do !
[?expectedT' (//type.with_env
(check.peek id))]
(case ?expectedT'
- (#.Some expectedT')
+ {#.Some expectedT'}
(recur expectedT')
... Inference
@@ -86,17 +86,17 @@
(do !
[[input_id inputT] (//type.with_env check.var)
[output_id outputT] (//type.with_env check.var)
- .let [functionT (#.Function inputT outputT)]
+ .let [functionT {#.Function inputT outputT}]
functionA (recur functionT)
_ (//type.with_env
(check.check expectedT functionT))]
(in functionA))))
- (#.Function inputT outputT)
+ {#.Function inputT outputT}
(<| (\ ! each (.function (_ [scope bodyA])
- (#/.Function (list\each (|>> /.variable)
+ {#/.Function (list\each (|>> /.variable)
(//scope.environment scope))
- bodyA)))
+ bodyA}))
/.with_scope
... Functions have access not only to their argument, but
... also to themselves, through a local variable.
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 b6d610a7f..47768945d 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
@@ -66,27 +66,28 @@
(def: (replace parameter_idx replacement type)
(-> Nat Type Type Type)
(case type
- (#.Primitive name params)
- (#.Primitive name (list\each (replace parameter_idx replacement) params))
+ {#.Primitive name params}
+ {#.Primitive name (list\each (replace parameter_idx replacement) params)}
(^template [<tag>]
- [(<tag> left right)
- (<tag> (replace parameter_idx replacement left)
- (replace parameter_idx replacement right))])
+ [{<tag> left right}
+ {<tag>
+ (replace parameter_idx replacement left)
+ (replace parameter_idx replacement right)}])
([#.Sum]
[#.Product]
[#.Function]
[#.Apply])
- (#.Parameter idx)
+ {#.Parameter idx}
(if (n.= parameter_idx idx)
replacement
type)
(^template [<tag>]
- [(<tag> env quantified)
- (<tag> (list\each (replace parameter_idx replacement) env)
- (replace (n.+ 2 parameter_idx) replacement quantified))])
+ [{<tag> env quantified}
+ {<tag> (list\each (replace parameter_idx replacement) env)
+ (replace (n.+ 2 parameter_idx) replacement quantified)}])
([#.UnivQ]
[#.ExQ])
@@ -96,7 +97,7 @@
(def: (named_type location id)
(-> Location Nat Type)
(let [name (format "{New Type " (%.location location) " " (%.nat id) "}")]
- (#.Primitive name (list))))
+ {#.Primitive name (list)}))
(def: new_named_type
(Operation Type)
@@ -120,17 +121,17 @@
[_ (//type.infer inferT)]
(in [inferT (list)]))
- (#.Item argC args')
+ {#.Item argC args'}
(case inferT
- (#.Named name unnamedT)
+ {#.Named name unnamedT}
(general archive analyse unnamedT args)
- (#.UnivQ _)
+ {#.UnivQ _}
(do ///.monad
[[var_id varT] (//type.with_env check.var)]
(general archive analyse (maybe.trusted (type.applied (list varT) inferT)) args))
- (#.ExQ _)
+ {#.ExQ _}
(do [! ///.monad]
[[var_id varT] (//type.with_env check.var)
output (general archive analyse
@@ -146,9 +147,9 @@
(check.check varT newT))))]
(in output))
- (#.Apply inputT transT)
+ {#.Apply inputT transT}
(case (type.applied (list inputT) transT)
- (#.Some outputT)
+ {#.Some outputT}
(general archive analyse outputT args)
#.None
@@ -161,7 +162,7 @@
... By inferring back-to-front, a lot of type-annotations can be
... avoided in Lux code, since the inference algorithm can piece
... things together more easily.
- (#.Function inputT outputT)
+ {#.Function inputT outputT}
(do ///.monad
[[outputT' args'A] (general archive analyse outputT args')
argA (<| (/.with_stack ..cannot_infer_argument [inputT argC])
@@ -169,12 +170,12 @@
(analyse archive argC))]
(in [outputT' (list& argA args'A)]))
- (#.Var infer_id)
+ {#.Var infer_id}
(do ///.monad
[?inferT' (//type.with_env
(check.peek infer_id))]
(case ?inferT'
- (#.Some inferT')
+ {#.Some inferT'}
(general archive analyse inferT' args)
_
@@ -188,22 +189,22 @@
(-> Nat Type Type Type)
(function (recur base)
(case base
- (#.Primitive name parameters)
- (#.Primitive name (list\each recur parameters))
+ {#.Primitive name parameters}
+ {#.Primitive name (list\each recur parameters)}
(^template [<tag>]
- [(<tag> left right)
- (<tag> (recur left) (recur right))])
+ [{<tag> left right}
+ {<tag> (recur left) (recur right)}])
([#.Sum] [#.Product] [#.Function] [#.Apply])
- (#.Parameter index)
+ {#.Parameter index}
(if (n.= target index)
sub
base)
(^template [<tag>]
- [(<tag> environment quantified)
- (<tag> (list\each recur environment) quantified)])
+ [{<tag> environment quantified}
+ {<tag> (list\each recur environment) quantified}])
([#.UnivQ] [#.ExQ])
_
@@ -213,26 +214,26 @@
(def: (record' record_size target originalT inferT)
(-> Nat Nat Type Type (Operation Type))
(case inferT
- (#.Named name unnamedT)
+ {#.Named name unnamedT}
(record' record_size target originalT unnamedT)
(^template [<tag>]
- [(<tag> env bodyT)
+ [{<tag> env bodyT}
(do ///.monad
[bodyT+ (record' record_size (n.+ 2 target) originalT bodyT)]
- (in (<tag> env bodyT+)))])
+ (in {<tag> env bodyT+}))])
([#.UnivQ]
[#.ExQ])
- (#.Apply inputT funcT)
+ {#.Apply inputT funcT}
(case (type.applied (list inputT) funcT)
- (#.Some outputT)
+ {#.Some outputT}
(record' record_size target originalT outputT)
#.None
(/.except ..invalid_type_application inferT))
- (#.Product _)
+ {#.Product _}
(let [[lefts right] (list.split_at (-- record_size) (type.flat_tuple inferT))]
(///\in (|> inferT
(type.function (list\composite lefts (list (type.tuple right))))
@@ -251,20 +252,20 @@
(loop [depth 0
currentT inferT]
(case currentT
- (#.Named name unnamedT)
+ {#.Named name unnamedT}
(do ///.monad
[unnamedT+ (recur depth unnamedT)]
(in unnamedT+))
(^template [<tag>]
- [(<tag> env bodyT)
+ [{<tag> env bodyT}
(do ///.monad
[bodyT+ (recur (++ depth) bodyT)]
- (in (<tag> env bodyT+)))])
+ (in {<tag> env bodyT+}))])
([#.UnivQ]
[#.ExQ])
- (#.Sum _)
+ {#.Sum _}
(let [cases (type.flat_variant currentT)
actual_size (list.size cases)
boundary (-- expected_size)]
@@ -272,7 +273,7 @@
(and (n.> expected_size actual_size)
(n.< boundary tag)))
(case (list.item tag cases)
- (#.Some caseT)
+ {#.Some caseT}
(///\in (if (n.= 0 depth)
(type.function (list caseT) currentT)
(let [replace' (replace (|> depth -- (n.* 2)) inferT)]
@@ -296,9 +297,9 @@
... else
(/.except ..variant_tag_out_of_bounds [expected_size tag inferT])))
- (#.Apply inputT funcT)
+ {#.Apply inputT funcT}
(case (type.applied (list inputT) funcT)
- (#.Some outputT)
+ {#.Some outputT}
(variant tag expected_size outputT)
#.None
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 31ace4429..84124d32f 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
@@ -44,19 +44,19 @@
(exception.report
["Definition" (%.name name)]
["Original" (case already_existing
- (#.Alias alias)
+ {#.Alias alias}
(format "alias " (%.name alias))
- (#.Definition definition)
+ {#.Definition definition}
(format "definition " (%.name name))
- (#.Type _)
+ {#.Type _}
(format "type " (%.name name))
- (#.Label _)
+ {#.Label _}
(format "tag " (%.name name))
- (#.Slot _)
+ {#.Slot _}
(format "slot " (%.name name)))]))
(exception: .public (can_only_change_state_of_active_module [module Text
@@ -82,14 +82,14 @@
(do ///.monad
[self_name meta.current_module_name]
(function (_ state)
- (#try.Success [(revised@ #.modules
+ {#try.Success [(revised@ #.modules
(plist.revised self_name (revised@ #.imports (function (_ current)
(if (list.any? (text\= module)
current)
current
- (#.Item module current)))))
+ {#.Item module current}))))
state)
- []])))))
+ []]}))))
(def: .public (alias alias module)
(-> Text Text (Operation Any))
@@ -97,11 +97,11 @@
(do ///.monad
[self_name meta.current_module_name]
(function (_ state)
- (#try.Success [(revised@ #.modules
+ {#try.Success [(revised@ #.modules
(plist.revised self_name (revised@ #.module_aliases (: (-> (List [Text Text]) (List [Text Text]))
- (|>> (#.Item [alias module])))))
+ (|>> {#.Item [alias module]}))))
state)
- []])))))
+ []]}))))
(def: .public (exists? module)
(-> Text (Operation Bit))
@@ -110,8 +110,8 @@
(|> state
(value@ #.modules)
(plist.value module)
- (case> (#.Some _) #1 #.None #0)
- [state] #try.Success))))
+ (case> {#.Some _} #1 #.None #0)
+ [state] {#try.Success}))))
(def: .public (define name definition)
(-> Text Global (Operation Any))
@@ -122,26 +122,26 @@
(function (_ state)
(case (plist.value name (value@ #.definitions self))
#.None
- (#try.Success [(revised@ #.modules
+ {#try.Success [(revised@ #.modules
(plist.has self_name
(revised@ #.definitions
(: (-> (List [Text Global]) (List [Text Global]))
- (|>> (#.Item [name definition])))
+ (|>> {#.Item [name definition]}))
self))
state)
- []])
+ []]}
- (#.Some already_existing)
+ {#.Some already_existing}
((/.except' ..cannot_define_more_than_once [[self_name name] already_existing]) state))))))
(def: .public (create hash name)
(-> Nat Text (Operation Any))
(///extension.lifted
(function (_ state)
- (#try.Success [(revised@ #.modules
+ {#try.Success [(revised@ #.modules
(plist.has name (..empty hash))
state)
- []]))))
+ []]})))
(def: .public (with_module hash name action)
(All (_ a) (-> Nat Text (Operation a) (Operation [Module a])))
@@ -158,15 +158,15 @@
(///extension.lifted
(function (_ state)
(case (|> state (value@ #.modules) (plist.value module_name))
- (#.Some module)
+ {#.Some module}
(let [active? (case (value@ #.module_state module)
#.Active #1
_ #0)]
(if active?
- (#try.Success [(revised@ #.modules
+ {#try.Success [(revised@ #.modules
(plist.has module_name (with@ #.module_state <tag> module))
state)
- []])
+ []]}
((/.except' can_only_change_state_of_active_module [module_name <tag>])
state)))
@@ -178,11 +178,11 @@
(///extension.lifted
(function (_ state)
(case (|> state (value@ #.modules) (plist.value module_name))
- (#.Some module)
- (#try.Success [state
+ {#.Some module}
+ {#try.Success [state
(case (value@ #.module_state module)
<tag> #1
- _ #0)])
+ _ #0)]}
#.None
((/.except' unknown_module module_name) state)))))]
@@ -197,8 +197,8 @@
(///extension.lifted
(function (_ state)
(case (|> state (value@ #.modules) (plist.value module_name))
- (#.Some module)
- (#try.Success [state (value@ #.module_hash module)])
+ {#.Some module}
+ {#try.Success [state (value@ #.module_hash module)]}
#.None
((/.except' unknown_module module_name) state)))))
@@ -208,7 +208,7 @@
(do [! ///.monad]
[self_name (///extension.lifted meta.current_module_name)
[type_module type_name] (case type
- (#.Named type_name _)
+ {#.Named type_name _}
(in type_name)
_
@@ -218,6 +218,6 @@
(monad.each ! (function (_ [index short])
(..define (format "#" short)
(if record?
- (#.Slot [exported? type tags index])
- (#.Label [exported? type tags index]))))
+ {#.Slot [exported? type tags index]}
+ {#.Label [exported? type tags index]})))
(list.enumeration tags))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/primitive.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
index 17b41ba71..ad481b931 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
@@ -16,7 +16,7 @@
(-> <type> (Operation Analysis))
(do ///.monad
[_ (//type.infer <type>)]
- (in (#/.Primitive (<tag> value)))))]
+ (in {#/.Primitive {<tag> value}})))]
[bit .Bit #/.Bit]
[nat .Nat #/.Nat]
@@ -30,4 +30,4 @@
(Operation Analysis)
(do ///.monad
[_ (//type.infer .Any)]
- (in (#/.Primitive #/.Unit))))
+ (in {#/.Primitive #/.Unit})))
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 f3bc9d282..26946da08 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
@@ -40,10 +40,10 @@
(do [! ///.monad]
[constant (///extension.lifted (meta.definition def_name))]
(case constant
- (#.Alias real_def_name)
+ {#.Alias real_def_name}
(definition real_def_name)
- (#.Definition [exported? actualT _])
+ {#.Definition [exported? actualT _]}
(do !
[_ (//type.infer actualT)
(^@ def_name [::module ::name]) (///extension.lifted (meta.normal def_name))
@@ -58,7 +58,7 @@
(/.except foreign_module_has_not_been_imported [current ::module])))
(/.except definition_has_not_been_exported def_name))))
- (#.Type [exported? value labels])
+ {#.Type [exported? value labels]}
(do !
[_ (//type.infer .Type)
(^@ def_name [::module ::name]) (///extension.lifted (meta.normal def_name))
@@ -73,10 +73,10 @@
(/.except foreign_module_has_not_been_imported [current ::module])))
(/.except definition_has_not_been_exported def_name))))
- (#.Label _)
+ {#.Label _}
(/.except labels_are_not_definitions [def_name])
- (#.Slot _)
+ {#.Slot _}
(/.except labels_are_not_definitions [def_name])))))
(def: (variable var_name)
@@ -84,10 +84,10 @@
(do [! ///.monad]
[?var (//scope.find var_name)]
(case ?var
- (#.Some [actualT ref])
+ {#.Some [actualT ref]}
(do !
[_ (//type.infer actualT)]
- (in (#.Some (|> ref ///reference.variable #/.Reference))))
+ (in {#.Some (|> ref ///reference.variable #/.Reference)}))
#.None
(in #.None))))
@@ -99,7 +99,7 @@
(do [! ///.monad]
[?var (variable simple_name)]
(case ?var
- (#.Some varA)
+ {#.Some varA}
(in varA)
#.None
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 aa452e685..2b3e9f411 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
@@ -41,7 +41,7 @@
(value@ [#.locals #.mappings])
(plist.value name)
(maybe\each (function (_ [type value])
- [type (#variable.Local value)]))))
+ [type {#variable.Local value}]))))
(def: (captured? name scope)
(-> Text Scope Bit)
@@ -54,9 +54,9 @@
(loop [idx 0
mappings (value@ [#.captured #.mappings] scope)]
(case mappings
- (#.Item [_name [_source_type _source_ref]] mappings')
+ {#.Item [_name [_source_type _source_ref]] mappings'}
(if (text\= name _name)
- (#.Some [_source_type (#variable.Foreign idx)])
+ {#.Some [_source_type {#variable.Foreign idx}]}
(recur (++ idx) mappings'))
#.End
@@ -70,8 +70,8 @@
(def: (reference name scope)
(-> Text Scope (Maybe [Type Variable]))
(case (..local name scope)
- (#.Some type)
- (#.Some type)
+ {#.Some type}
+ {#.Some type}
_
(..captured name scope)))
@@ -85,25 +85,25 @@
(list.split_when (|>> (reference? name))))]
(case outer
#.End
- (#.Right [state #.None])
+ {#.Right [state #.None]}
- (#.Item top_outer _)
+ {#.Item top_outer _}
(let [[ref_type init_ref] (maybe.else (undefined)
(..reference name top_outer))
[ref inner'] (list\mix (: (-> Scope [Variable (List Scope)] [Variable (List Scope)])
(function (_ scope ref+inner)
- [(#variable.Foreign (value@ [#.captured #.counter] scope))
- (#.Item (revised@ #.captured
+ [{#variable.Foreign (value@ [#.captured #.counter] scope)}
+ {#.Item (revised@ #.captured
(: (-> Foreign Foreign)
(|>> (revised@ #.counter ++)
(revised@ #.mappings (plist.has name [ref_type (product.left ref+inner)]))))
scope)
- (product.right ref+inner))]))
+ (product.right ref+inner)}]))
[init_ref #.End]
(list.reversed inner))
scopes (list\composite inner' outer)]
- (#.Right [(with@ #.scopes scopes state)
- (#.Some [ref_type ref])]))
+ {#.Right [(with@ #.scopes scopes state)
+ {#.Some [ref_type ref]}]})
)))))
(exception: .public cannot_create_local_binding_without_a_scope)
@@ -113,7 +113,7 @@
(All (_ a) (-> [Text Type] (Operation a) (Operation a)))
(function (_ [bundle state])
(case (value@ #.scopes state)
- (#.Item head tail)
+ {#.Item head tail}
(let [old_mappings (value@ [#.locals #.mappings] head)
new_var_id (value@ [#.locals #.counter] head)
new_head (revised@ #.locals
@@ -121,21 +121,21 @@
(|>> (revised@ #.counter ++)
(revised@ #.mappings (plist.has name [type new_var_id]))))
head)]
- (case (///.result' [bundle (with@ #.scopes (#.Item new_head tail) state)]
+ (case (///.result' [bundle (with@ #.scopes {#.Item new_head tail} state)]
action)
- (#try.Success [[bundle' state'] output])
+ {#try.Success [[bundle' state'] output]}
(case (value@ #.scopes state')
- (#.Item head' tail')
- (let [scopes' (#.Item (with@ #.locals (value@ #.locals head) head')
- tail')]
- (#try.Success [[bundle' (with@ #.scopes scopes' state')]
- output]))
+ {#.Item head' tail'}
+ (let [scopes' {#.Item (with@ #.locals (value@ #.locals head) head')
+ tail'}]
+ {#try.Success [[bundle' (with@ #.scopes scopes' state')]
+ output]})
_
(exception.except ..invalid_scope_alteration []))
- (#try.Failure error)
- (#try.Failure error)))
+ {#try.Failure error}
+ {#try.Failure error}))
_
(exception.except ..cannot_create_local_binding_without_a_scope []))
@@ -165,19 +165,19 @@
#.End
(list)
- (#.Item top _)
+ {#.Item top _}
(value@ #.name top))]
(case (action [bundle (revised@ #.scopes
- (|>> (#.Item (scope parent_name name)))
+ (|>> {#.Item (scope parent_name name)})
state)])
- (#try.Success [[bundle' state'] output])
- (#try.Success [[bundle' (revised@ #.scopes
+ {#try.Success [[bundle' state'] output]}
+ {#try.Success [[bundle' (revised@ #.scopes
(|>> list.tail (maybe.else (list)))
state')]
- output])
+ output]}
- (#try.Failure error)
- (#try.Failure error)))))
+ {#try.Failure error}
+ {#try.Failure error}))))
(exception: .public cannot_get_next_reference_when_there_is_no_scope)
@@ -186,8 +186,8 @@
(///extension.lifted
(function (_ state)
(case (value@ #.scopes state)
- (#.Item top _)
- (#try.Success [state (value@ [#.locals #.counter] top)])
+ {#.Item top _}
+ {#try.Success [state (value@ [#.locals #.counter] top)]}
#.End
(exception.except ..cannot_get_next_reference_when_there_is_no_scope [])))))
@@ -195,11 +195,11 @@
(def: (ref_variable ref)
(-> Ref Variable)
(case ref
- (#.Local register)
- (#variable.Local register)
+ {#.Local register}
+ {#variable.Local register}
- (#.Captured register)
- (#variable.Foreign register)))
+ {#.Captured register}
+ {#variable.Foreign register}))
(def: .public (environment scope)
(-> Scope (List Variable))
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 f6c226e9a..417fe9709 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
@@ -113,10 +113,10 @@
(check.clean expectedT))]
(/.with_stack ..cannot_analyse_variant [expectedT' tag valueC]
(case expectedT
- (#.Sum _)
+ {#.Sum _}
(let [flat (type.flat_variant expectedT)]
(case (list.item tag flat)
- (#.Some variant_type)
+ {#.Some variant_type}
(do !
[valueA (//type.with_type variant_type
(analyse archive valueC))]
@@ -125,16 +125,16 @@
#.None
(/.except //inference.variant_tag_out_of_bounds [(list.size flat) tag expectedT])))
- (#.Named name unnamedT)
+ {#.Named name unnamedT}
(//type.with_type unnamedT
(recur valueC))
- (#.Var id)
+ {#.Var id}
(do !
[?expectedT' (//type.with_env
(check.peek id))]
(case ?expectedT'
- (#.Some expectedT')
+ {#.Some expectedT'}
(//type.with_type expectedT'
(recur valueC))
@@ -145,7 +145,7 @@
(/.except ..cannot_infer_numeric_tag [expectedT tag valueC])))
(^template [<tag> <instancer>]
- [(<tag> _)
+ [{<tag> _}
(do !
[[instance_id instanceT] (//type.with_env <instancer>)]
(//type.with_type (maybe.trusted (type.applied (list instanceT) expectedT))
@@ -153,15 +153,15 @@
([#.UnivQ check.existential]
[#.ExQ check.var])
- (#.Apply inputT funT)
+ {#.Apply inputT funT}
(case funT
- (#.Var funT_id)
+ {#.Var funT_id}
(do !
[?funT' (//type.with_env
(check.peek funT_id))]
(case ?funT'
- (#.Some funT')
- (//type.with_type (#.Apply inputT funT')
+ {#.Some funT'}
+ (//type.with_type {#.Apply inputT funT'}
(recur valueC))
_
@@ -169,7 +169,7 @@
_
(case (type.applied (list inputT) funT)
- (#.Some outputT)
+ {#.Some outputT}
(//type.with_type outputT
(recur valueC))
@@ -187,26 +187,26 @@
(loop [membersT+ (type.flat_tuple expectedT)
membersC+ members]
(case [membersT+ membersC+]
- [(#.Item memberT #.End) (#.Item memberC #.End)]
+ [{#.Item memberT #.End} {#.Item memberC #.End}]
(do !
[memberA (//type.with_type memberT
(analyse archive memberC))]
(in (list memberA)))
- [(#.Item memberT #.End) _]
+ [{#.Item memberT #.End} _]
(//type.with_type memberT
(\ ! each (|>> list) (analyse archive (code.tuple membersC+))))
- [_ (#.Item memberC #.End)]
+ [_ {#.Item memberC #.End}]
(//type.with_type (type.tuple membersT+)
(\ ! each (|>> list) (analyse archive memberC)))
- [(#.Item memberT membersT+') (#.Item memberC membersC+')]
+ [{#.Item memberT membersT+'} {#.Item memberC membersC+'}]
(do !
[memberA (//type.with_type memberT
(analyse archive memberC))
memberA+ (recur membersT+' membersC+')]
- (in (#.Item memberA memberA+)))
+ (in {#.Item memberA memberA+}))
_
(/.except ..cannot_analyse_tuple [expectedT members]))))]
@@ -218,19 +218,19 @@
[expectedT (///extension.lifted meta.expected_type)]
(/.with_stack ..cannot_analyse_tuple [expectedT membersC]
(case expectedT
- (#.Product _)
+ {#.Product _}
(..typed_product archive analyse membersC)
- (#.Named name unnamedT)
+ {#.Named name unnamedT}
(//type.with_type unnamedT
(product archive analyse membersC))
- (#.Var id)
+ {#.Var id}
(do !
[?expectedT' (//type.with_env
(check.peek id))]
(case ?expectedT'
- (#.Some expectedT')
+ {#.Some expectedT'}
(//type.with_type expectedT'
(product archive analyse membersC))
@@ -245,7 +245,7 @@
(in (/.tuple (list\each product.right membersTA))))))
(^template [<tag> <instancer>]
- [(<tag> _)
+ [{<tag> _}
(do !
[[instance_id instanceT] (//type.with_env <instancer>)]
(//type.with_type (maybe.trusted (type.applied (list instanceT) expectedT))
@@ -253,15 +253,15 @@
([#.UnivQ check.existential]
[#.ExQ check.var])
- (#.Apply inputT funT)
+ {#.Apply inputT funT}
(case funT
- (#.Var funT_id)
+ {#.Var funT_id}
(do !
[?funT' (//type.with_env
(check.peek funT_id))]
(case ?funT'
- (#.Some funT')
- (//type.with_type (#.Apply inputT funT')
+ {#.Some funT'}
+ (//type.with_type {#.Apply inputT funT'}
(product archive analyse membersC))
_
@@ -269,7 +269,7 @@
_
(case (type.applied (list inputT) funT)
- (#.Some outputT)
+ {#.Some outputT}
(//type.with_type outputT
(product archive analyse membersC))
@@ -289,7 +289,7 @@
[lefts right?] (/.choice case_size idx)]
expectedT (///extension.lifted meta.expected_type)]
(case expectedT
- (#.Var _)
+ {#.Var _}
(do !
[inferenceT (//inference.variant idx case_size variantT)
[inferredT valueA+] (//inference.general archive analyse inferenceT (list valueC))]
@@ -308,13 +308,13 @@
output (: (List [Name Code])
#.End)]
(case input
- (^ (list& [_ (#.Tag slotH)] valueH tail))
+ (^ (list& [_ {#.Tag slotH}] valueH tail))
(do ///.monad
[slotH (///extension.lifted (meta.normal slotH))]
- (recur tail (#.Item [slotH valueH] output)))
+ (recur tail {#.Item [slotH valueH] output}))
#.End
- (\ ///.monad in (#.Some output))
+ (\ ///.monad in {#.Some output})
_
(\ ///.monad in #.None))))
@@ -327,16 +327,16 @@
(case record
... empty_record = empty_tuple = unit/any = []
#.End
- (\ ///.monad in (#.Some [0 (list) Any]))
+ (\ ///.monad in {#.Some [0 (list) Any]})
- (#.Item [head_k head_v] _)
+ {#.Item [head_k head_v] _}
(do [! ///.monad]
[slotH' (///extension.lifted
(do meta.monad
[head_k (meta.normal head_k)]
(meta.try (meta.slot head_k))))]
(case slotH'
- (#try.Success [_ slot_set recordT])
+ {#try.Success [_ slot_set recordT]}
(do !
[.let [size_record (list.size record)
size_ts (list.size slot_set)]
@@ -350,7 +350,7 @@
(do !
[key (///extension.lifted (meta.normal key))]
(case (dictionary.value key tag->idx)
- (#.Some idx)
+ {#.Some idx}
(if (dictionary.key? idx->val idx)
(/.except ..cannot_repeat_tag [key record])
(in (dictionary.has idx val idx->val)))
@@ -363,9 +363,9 @@
.let [ordered_tuple (list\each (function (_ idx)
(maybe.trusted (dictionary.value idx idx->val)))
tuple_range)]]
- (in (#.Some [size_ts ordered_tuple recordT])))
+ (in {#.Some [size_ts ordered_tuple recordT]}))
- (#try.Failure error)
+ {#try.Failure error}
(in #.None)))
))
@@ -378,12 +378,12 @@
(^ (list singletonC))
(analyse archive singletonC)
- (^ (list [_ (#.Tag pseudo_slot)] singletonC))
+ (^ (list [_ {#.Tag pseudo_slot}] singletonC))
(do [! ///.monad]
[head_k (///extension.lifted (meta.normal pseudo_slot))
slot (///extension.lifted (meta.try (meta.slot head_k)))]
(case slot
- (#try.Success [_ slot_set recordT])
+ {#try.Success [_ slot_set recordT]}
(case (list.size slot_set)
1 (analyse archive singletonC)
_ (..product archive analyse members))
@@ -398,18 +398,18 @@
#.None
(..product archive analyse members)
- (#.Some slots)
+ {#.Some slots}
(do !
[record_size,membersC,recordT (..order slots)]
(case record_size,membersC,recordT
#.None
(..product archive analyse members)
- (#.Some [record_size membersC recordT])
+ {#.Some [record_size membersC recordT]}
(do !
[expectedT (///extension.lifted meta.expected_type)]
(case expectedT
- (#.Var _)
+ {#.Var _}
(do !
[inferenceT (//inference.record record_size recordT)
[inferredT membersA] (//inference.general archive analyse inferenceT membersC)]
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 7a5bde817..33a8715d5 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
@@ -19,17 +19,17 @@
(def: .public (with_type expected)
(All (_ a) (-> Type (Operation a) (Operation a)))
(///extension.localized (value@ #.expected) (with@ #.expected)
- (function.constant (#.Some expected))))
+ (function.constant {#.Some expected})))
(def: .public (with_env action)
(All (_ a) (-> (Check a) (Operation a)))
(function (_ (^@ stateE [bundle state]))
(case (action (value@ #.type_context state))
- (#try.Success [context' output])
- (#try.Success [[bundle (with@ #.type_context context' state)]
- output])
+ {#try.Success [context' output]}
+ {#try.Success [[bundle (with@ #.type_context context' state)]
+ output]}
- (#try.Failure error)
+ {#try.Failure error}
((/.failure error) stateE))))
(def: .public with_fresh_env
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 3d3163553..dc47f7039 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
@@ -48,13 +48,13 @@
Eval)
(function (_ type code lux)
(case (compiler_eval archive type code [bundle lux])
- (#try.Success [[_bundle lux'] value])
- (#try.Success [lux' value])
+ {#try.Success [[_bundle lux'] value]}
+ {#try.Success [lux' value]}
- (#try.Failure error)
- (#try.Failure error))))
+ {#try.Failure error}
+ {#try.Failure error})))
-(with_expansions [<lux_def_module> (as_is [|form_location| (#.Form (list& [|text_location| (#.Text "lux def module")] annotations))])]
+(with_expansions [<lux_def_module> (as_is [|form_location| {#.Form (list& [|text_location| {#.Text "lux def module"}] annotations)}])]
(def: .public (phase wrapper expander)
(-> //.Wrapper Expander Phase)
(let [analysis (//analysis.phase expander)]
@@ -70,10 +70,10 @@
extension_eval (:as Eval (wrapper (:expected compiler_eval)))]
_ (//.set_state (with@ [#//extension.state #/.analysis #/.state #//extension.state #.eval] extension_eval state))]
(case code
- (^ [_ (#.Form (list& [_ (#.Text name)] inputs))])
+ (^ [_ {#.Form (list& [_ {#.Text name}] inputs)}])
(//extension.apply archive recur [name inputs])
- (^ [_ (#.Form (list& macro inputs))])
+ (^ [_ {#.Form (list& macro inputs)}])
(do !
[expansion (/.lifted_analysis
(do !
@@ -84,7 +84,7 @@
(do !
[?macro (//extension.lifted (meta.macro macro_name))
macro (case ?macro
- (#.Some macro)
+ {#.Some macro}
(in macro)
#.None
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 d54049e4e..2fd695eef 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
@@ -98,8 +98,8 @@
(function (_ [bundle state])
(case (dictionary.value name bundle)
#.None
- (#try.Success [[(dictionary.has name (extender handler) bundle) state]
- []])
+ {#try.Success [[(dictionary.has name (extender handler) bundle) state]
+ []]}
_
(exception.except ..cannot_overwrite name))))
@@ -119,7 +119,7 @@
(-> Archive (Phase s i o) (Extension i) (Operation s i o o)))
(function (_ (^@ stateE [bundle state]))
(case (dictionary.value name bundle)
- (#.Some handler)
+ {#.Some handler}
(((handler name phase) archive parameters)
stateE)
@@ -134,11 +134,11 @@
(function (_ [bundle state])
(let [old (get state)]
(case (operation [bundle (set (transform old) state)])
- (#try.Success [[bundle' state'] output])
- (#try.Success [[bundle' (set old state')] output])
+ {#try.Success [[bundle' state'] output]}
+ {#try.Success [[bundle' (set old state')] output]}
- (#try.Failure error)
- (#try.Failure error))))))
+ {#try.Failure error}
+ {#try.Failure error})))))
(def: .public (temporary transform)
(All (_ s i o v)
@@ -147,11 +147,11 @@
(function (_ operation)
(function (_ [bundle state])
(case (operation [bundle (transform state)])
- (#try.Success [[bundle' state'] output])
- (#try.Success [[bundle' state] output])
+ {#try.Success [[bundle' state'] output]}
+ {#try.Success [[bundle' state] output]}
- (#try.Failure error)
- (#try.Failure error)))))
+ {#try.Failure error}
+ {#try.Failure error}))))
(def: .public (with_state state)
(All (_ s i o v)
@@ -162,13 +162,13 @@
(All (_ s i o v)
(-> (-> s v) (Operation s i o v)))
(function (_ [bundle state])
- (#try.Success [[bundle state] (get state)])))
+ {#try.Success [[bundle state] (get state)]}))
(def: .public (update transform)
(All (_ s i o)
(-> (-> s s) (Operation s i o Any)))
(function (_ [bundle state])
- (#try.Success [[bundle (transform state)] []])))
+ {#try.Success [[bundle (transform state)] []]}))
(def: .public (lifted action)
(All (_ s i o v)
@@ -176,8 +176,8 @@
(//.Operation [(Bundle s i o) s] v)))
(function (_ [bundle state])
(case (action state)
- (#try.Success [state' output])
- (#try.Success [[bundle state'] output])
+ {#try.Success [state' output]}
+ {#try.Success [[bundle state'] output]}
- (#try.Failure error)
- (#try.Failure error))))
+ {#try.Failure error}
+ {#try.Failure error})))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux
index 66b58bf74..36578eb15 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/js.lux
@@ -38,7 +38,7 @@
(phase archive lengthC))
[var_id varT] (analysis/type.with_env check.var)
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list lengthA)))))]))
+ (in {#analysis.Extension extension (list lengthA)})))]))
(def: array::length
Handler
@@ -50,7 +50,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer Nat)]
- (in (#analysis.Extension extension (list arrayA)))))]))
+ (in {#analysis.Extension extension (list arrayA)})))]))
(def: array::read
Handler
@@ -64,7 +64,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer varT)]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: array::write
Handler
@@ -80,7 +80,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA valueA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA valueA arrayA)})))]))
(def: array::delete
Handler
@@ -94,7 +94,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: bundle::array
Bundle
@@ -117,7 +117,7 @@
(phase archive constructorC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list& constructorA inputsA)))))]))
+ (in {#analysis.Extension extension (list& constructorA inputsA)})))]))
(def: object::get
Handler
@@ -128,8 +128,8 @@
[objectA (analysis/type.with_type Any
(phase archive objectC))
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list (analysis.text fieldC)
- objectA)))))]))
+ (in {#analysis.Extension extension (list (analysis.text fieldC)
+ objectA)})))]))
(def: object::do
Handler
@@ -141,9 +141,9 @@
(phase archive objectC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list& (analysis.text methodC)
+ (in {#analysis.Extension extension (list& (analysis.text methodC)
objectA
- inputsA)))))]))
+ inputsA)})))]))
(def: bundle::object
Bundle
@@ -165,7 +165,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: js::apply
Handler
@@ -177,7 +177,7 @@
(phase archive abstractionC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list& abstractionA inputsA)))))]))
+ (in {#analysis.Extension extension (list& abstractionA inputsA)})))]))
(def: js::type_of
Handler
@@ -188,7 +188,7 @@
[objectA (analysis/type.with_type Any
(phase archive objectC))
_ (analysis/type.infer .Text)]
- (in (#analysis.Extension extension (list objectA)))))]))
+ (in {#analysis.Extension extension (list objectA)})))]))
(def: js::function
Handler
@@ -201,8 +201,8 @@
(phase archive abstractionC))
_ (analysis/type.infer (for [@.js ffi.Function]
Any))]
- (in (#analysis.Extension extension (list (analysis.nat arity)
- abstractionA)))))]))
+ (in {#analysis.Extension extension (list (analysis.nat arity)
+ abstractionA)})))]))
(def: .public bundle
Bundle
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 9ea592c20..bc9151306 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
@@ -161,13 +161,13 @@
(def: inheritance_relationship_type_name "_jvm_inheritance")
(def: .public (inheritance_relationship_type class super_class super_interfaces)
(-> .Type .Type (List .Type) .Type)
- (#.Primitive ..inheritance_relationship_type_name
- (list& class super_class super_interfaces)))
+ {#.Primitive ..inheritance_relationship_type_name
+ (list& class super_class super_interfaces)})
... TODO: Get rid of this template block and use the definition in
... lux/ffi.jvm.lux ASAP
(template [<name> <class>]
- [(def: .public <name> .Type (#.Primitive <class> #.End))]
+ [(def: .public <name> .Type {#.Primitive <class> #.End})]
... Boxes
[Boolean box.boolean]
@@ -355,23 +355,23 @@
(def: (jvm_type luxT)
(-> .Type (Operation (Type Value)))
(case luxT
- (#.Named name anonymousT)
+ {#.Named name anonymousT}
(jvm_type anonymousT)
- (#.Apply inputT abstractionT)
+ {#.Apply inputT abstractionT}
(case (type.applied (list inputT) abstractionT)
- (#.Some outputT)
+ {#.Some outputT}
(jvm_type outputT)
#.None
(/////analysis.except ..non_jvm_type luxT))
- (^ (#.Primitive (static array.type_name) (list elemT)))
+ (^ {#.Primitive (static array.type_name) (list elemT)})
(phase\each jvm.array (jvm_type elemT))
- (#.Primitive class parametersT)
+ {#.Primitive class parametersT}
(case (dictionary.value class ..boxes)
- (#.Some [_ primitive_type])
+ {#.Some [_ primitive_type]}
(case parametersT
#.End
(phase\in primitive_type)
@@ -387,7 +387,7 @@
(do phase.monad
[parameterJT (jvm_type parameterT)]
(case (jvm_parser.parameter? parameterJT)
- (#.Some parameterJT)
+ {#.Some parameterJT}
(in parameterJT)
#.None
@@ -395,7 +395,7 @@
parametersT))]
(in (jvm.class class parametersJT))))
- (#.Ex _)
+ {#.Ex _}
(phase\in (jvm.class ..object_class (list)))
_
@@ -417,11 +417,11 @@
(^ (list arrayC))
(do phase.monad
[_ (typeA.infer ..int)
- arrayA (typeA.with_type (#.Primitive (|> (jvm.array primitive_type)
+ arrayA (typeA.with_type {#.Primitive (|> (jvm.array primitive_type)
..reflection)
- (list))
+ (list)}
(analyse archive arrayC))]
- (in (#/////analysis.Extension extension_name (list arrayA))))
+ (in {#/////analysis.Extension extension_name (list arrayA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 1 (list.size args)]))))
@@ -438,8 +438,8 @@
(analyse archive arrayC))
varT (typeA.with_env (check.clean varT))
arrayJT (jvm_array_type (.type (array.Array varT)))]
- (in (#/////analysis.Extension extension_name (list (/////analysis.text (..signature arrayJT))
- arrayA))))
+ (in {#/////analysis.Extension extension_name (list (/////analysis.text (..signature arrayJT))
+ arrayA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 1 (list.size args)]))))
@@ -452,9 +452,9 @@
(do phase.monad
[lengthA (typeA.with_type ..int
(analyse archive lengthC))
- _ (typeA.infer (#.Primitive (|> (jvm.array primitive_type) ..reflection)
- (list)))]
- (in (#/////analysis.Extension extension_name (list lengthA))))
+ _ (typeA.infer {#.Primitive (|> (jvm.array primitive_type) ..reflection)
+ (list)})]
+ (in {#/////analysis.Extension extension_name (list lengthA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 1 (list.size args)]))))
@@ -470,13 +470,13 @@
expectedT (///.lifted meta.expected_type)
expectedJT (jvm_array_type expectedT)
elementJT (case (jvm_parser.array? expectedJT)
- (#.Some elementJT)
+ {#.Some elementJT}
(in elementJT)
#.None
(/////analysis.except ..non_array expectedT))]
- (in (#/////analysis.Extension extension_name (list (/////analysis.text (..signature elementJT))
- lengthA))))
+ (in {#/////analysis.Extension extension_name (list (/////analysis.text (..signature elementJT))
+ lengthA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 1 (list.size args)]))))
@@ -484,11 +484,11 @@
(def: (check_parameter objectT)
(-> .Type (Operation (Type Parameter)))
(case objectT
- (^ (#.Primitive (static array.type_name)
- (list elementT)))
+ (^ {#.Primitive (static array.type_name)
+ (list elementT)})
(/////analysis.except ..non_parameter objectT)
- (#.Primitive name parameters)
+ {#.Primitive name parameters}
(`` (cond (or (~~ (template [<type>]
[(text\= (..reflection <type>) name)]
@@ -506,24 +506,24 @@
... else
(phase\in (jvm.class name (list)))))
- (#.Named name anonymous)
+ {#.Named name anonymous}
(check_parameter anonymous)
(^template [<tag>]
- [(<tag> id)
+ [{<tag> id}
(phase\in (jvm.class ..object_class (list)))])
([#.Var]
[#.Ex])
(^template [<tag>]
- [(<tag> env unquantified)
+ [{<tag> env unquantified}
(check_parameter unquantified)])
([#.UnivQ]
[#.ExQ])
- (#.Apply inputT abstractionT)
+ {#.Apply inputT abstractionT}
(case (type.applied (list inputT) abstractionT)
- (#.Some outputT)
+ {#.Some outputT}
(check_parameter outputT)
#.None
@@ -535,7 +535,7 @@
(def: (check_jvm objectT)
(-> .Type (Operation (Type Value)))
(case objectT
- (#.Primitive name #.End)
+ {#.Primitive name #.End}
(`` (cond (~~ (template [<type>]
[(text\= (..reflection <type>) name)
(phase\in <type>)]
@@ -565,34 +565,34 @@
(text.starts_with? descriptor.array_prefix name)
(let [[_ unprefixed] (maybe.trusted (text.split_by descriptor.array_prefix name))]
(\ phase.monad each jvm.array
- (check_jvm (#.Primitive unprefixed (list)))))
+ (check_jvm {#.Primitive unprefixed (list)})))
... else
(phase\in (jvm.class name (list)))))
- (^ (#.Primitive (static array.type_name)
- (list elementT)))
+ (^ {#.Primitive (static array.type_name)
+ (list elementT)})
(|> elementT
check_jvm
(phase\each jvm.array))
- (#.Primitive name parameters)
+ {#.Primitive name parameters}
(do [! phase.monad]
[parameters (monad.each ! check_parameter parameters)]
(phase\in (jvm.class name parameters)))
- (#.Named name anonymous)
+ {#.Named name anonymous}
(check_jvm anonymous)
(^template [<tag>]
- [(<tag> env unquantified)
+ [{<tag> env unquantified}
(check_jvm unquantified)])
([#.UnivQ]
[#.ExQ])
- (#.Apply inputT abstractionT)
+ {#.Apply inputT abstractionT}
(case (type.applied (list inputT) abstractionT)
- (#.Some outputT)
+ {#.Some outputT}
(check_jvm outputT)
#.None
@@ -624,10 +624,10 @@
[_ (typeA.infer lux_type)
idxA (typeA.with_type ..int
(analyse archive idxC))
- arrayA (typeA.with_type (#.Primitive (|> (jvm.array jvm_type) ..reflection)
- (list))
+ arrayA (typeA.with_type {#.Primitive (|> (jvm.array jvm_type) ..reflection)
+ (list)}
(analyse archive arrayC))]
- (in (#/////analysis.Extension extension_name (list idxA arrayA))))
+ (in {#/////analysis.Extension extension_name (list idxA arrayA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 2 (list.size args)]))))
@@ -647,17 +647,17 @@
arrayJT (jvm_array_type (.type (array.Array varT)))
idxA (typeA.with_type ..int
(analyse archive idxC))]
- (in (#/////analysis.Extension extension_name (list (/////analysis.text (..signature arrayJT))
+ (in {#/////analysis.Extension extension_name (list (/////analysis.text (..signature arrayJT))
idxA
- arrayA))))
+ arrayA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 2 (list.size args)]))))
(def: (write_primitive_array_handler lux_type jvm_type)
(-> .Type (Type Primitive) Handler)
- (let [array_type (#.Primitive (|> (jvm.array jvm_type) ..reflection)
- (list))]
+ (let [array_type {#.Primitive (|> (jvm.array jvm_type) ..reflection)
+ (list)}]
(function (_ extension_name analyse archive args)
(case args
(^ (list idxC valueC arrayC))
@@ -669,9 +669,9 @@
(analyse archive valueC))
arrayA (typeA.with_type array_type
(analyse archive arrayC))]
- (in (#/////analysis.Extension extension_name (list idxA
+ (in {#/////analysis.Extension extension_name (list idxA
valueA
- arrayA))))
+ arrayA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 3 (list.size args)])))))
@@ -693,10 +693,10 @@
(analyse archive idxC))
valueA (typeA.with_type varT
(analyse archive valueC))]
- (in (#/////analysis.Extension extension_name (list (/////analysis.text (..signature arrayJT))
+ (in {#/////analysis.Extension extension_name (list (/////analysis.text (..signature arrayJT))
idxA
valueA
- arrayA))))
+ arrayA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 3 (list.size args)]))))
@@ -759,7 +759,7 @@
(do phase.monad
[expectedT (///.lifted meta.expected_type)
_ (check_object expectedT)]
- (in (#/////analysis.Extension extension_name (list))))
+ (in {#/////analysis.Extension extension_name (list)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 0 (list.size args)]))))
@@ -774,7 +774,7 @@
[objectT objectA] (typeA.with_inference
(analyse archive objectC))
_ (check_object objectT)]
- (in (#/////analysis.Extension extension_name (list objectA))))
+ (in {#/////analysis.Extension extension_name (list objectA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 1 (list.size args)]))))
@@ -789,7 +789,7 @@
(analyse archive monitorC))
_ (check_object monitorT)
exprA (analyse archive exprC)]
- (in (#/////analysis.Extension extension_name (list monitorA exprA))))
+ (in {#/////analysis.Extension extension_name (list monitorA exprA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 2 (list.size args)]))))
@@ -809,7 +809,7 @@
(if ?
(in [])
(/////analysis.except non_throwable exception_class)))]
- (in (#/////analysis.Extension extension_name (list exceptionA))))
+ (in {#/////analysis.Extension extension_name (list exceptionA)}))
_
(/////analysis.except ///.incorrect_arity [extension_name 1 (list.size args)]))))
@@ -820,12 +820,12 @@
(case args
(^ (list classC))
(case classC
- [_ (#.Text class)]
+ [_ {#.Text class}]
(do phase.monad
[_ (..ensure_fresh_class! class_loader class)
- _ (typeA.infer (#.Primitive "java.lang.Class" (list (#.Primitive class (list)))))
+ _ (typeA.infer {#.Primitive "java.lang.Class" (list {#.Primitive class (list)})})
_ (phase.lifted (reflection!.load class_loader class))]
- (in (#/////analysis.Extension extension_name (list (/////analysis.text class)))))
+ (in {#/////analysis.Extension extension_name (list (/////analysis.text class))}))
_
(/////analysis.except ///.invalid_syntax [extension_name %.code args]))
@@ -846,18 +846,18 @@
object_class (check_object objectT)
? (phase.lifted (reflection!.sub? class_loader object_class sub_class))]
(if ?
- (in (#/////analysis.Extension extension_name (list (/////analysis.text sub_class) objectA)))
+ (in {#/////analysis.Extension extension_name (list (/////analysis.text sub_class) objectA)})
(/////analysis.except cannot_possibly_be_an_instance (format sub_class " !<= " object_class)))))]))
(template [<name> <category> <parser>]
[(def: .public (<name> mapping typeJ)
(-> Mapping (Type <category>) (Operation .Type))
(case (|> typeJ ..signature (<text>.result (<parser> mapping)))
- (#try.Success check)
+ {#try.Success check}
(typeA.with_env
check)
- (#try.Failure error)
+ {#try.Failure error}
(phase.failure error)))]
[boxed_reflection_type Value luxT.boxed_type]
@@ -880,19 +880,19 @@
superT (reflection_type mapping superJT)]
(in [[super_name superT] (java/lang/Class::isAssignableFrom super_class target_class)])))
(case (java/lang/Class::getGenericSuperclass source_class)
- (#.Some super)
+ {#.Some super}
(list& super (array.list #.None (java/lang/Class::getGenericInterfaces source_class)))
#.None
(if (java/lang/reflect/Modifier::isInterface (java/lang/Class::getModifiers source_class))
- (#.Item (:as java/lang/reflect/Type (ffi.class_for java/lang/Object))
- (array.list #.None (java/lang/Class::getGenericInterfaces source_class)))
+ {#.Item (:as java/lang/reflect/Type (ffi.class_for java/lang/Object))
+ (array.list #.None (java/lang/Class::getGenericInterfaces source_class))}
(array.list #.None (java/lang/Class::getGenericInterfaces source_class)))))))
(def: (inheritance_candidate_parents class_loader fromT target_class toT fromC)
(-> java/lang/ClassLoader .Type (java/lang/Class java/lang/Object) .Type Code (Operation (List [[Text .Type] Bit])))
(case fromT
- (^ (#.Primitive _ (list& self_classT super_classT super_interfacesT+)))
+ (^ {#.Primitive _ (list& self_classT super_classT super_interfacesT+)})
(monad.each phase.monad
(function (_ superT)
(do [! phase.monad]
@@ -959,15 +959,15 @@
(case (|> candidate_parents
(list.only product.right)
(list\each product.left))
- (#.Item [next_name nextT] _)
+ {#.Item [next_name nextT] _}
(recur [next_name nextT])
#.End
(in false)))))))))]
(if can_cast?
- (in (#/////analysis.Extension extension_name (list (/////analysis.text source_name)
+ (in {#/////analysis.Extension extension_name (list (/////analysis.text source_name)
(/////analysis.text target_name)
- fromA)))
+ fromA)})
(/////analysis.except ..cannot_cast [fromT toT fromC])))
_
@@ -1001,7 +1001,7 @@
(not deprecated?))
fieldT (reflection_type luxT.fresh fieldJT)
_ (typeA.infer fieldT)]
- (in (<| (#/////analysis.Extension extension_name)
+ (in (<| {#/////analysis.Extension extension_name}
(list (/////analysis.text class)
(/////analysis.text field)
(/////analysis.text (|> fieldJT ..reflection)))))))]))
@@ -1025,7 +1025,7 @@
fieldT (reflection_type luxT.fresh fieldJT)
valueA (typeA.with_type fieldT
(analyse archive valueC))]
- (in (<| (#/////analysis.Extension extension_name)
+ (in (<| {#/////analysis.Extension extension_name}
(list (/////analysis.text class)
(/////analysis.text field)
valueA)))))]))
@@ -1049,7 +1049,7 @@
(not deprecated?))
fieldT (reflection_type mapping fieldJT)
_ (typeA.infer fieldT)]
- (in (<| (#/////analysis.Extension extension_name)
+ (in (<| {#/////analysis.Extension extension_name}
(list (/////analysis.text class)
(/////analysis.text field)
(/////analysis.text (..reflection fieldJT))
@@ -1078,7 +1078,7 @@
fieldT (reflection_type mapping fieldJT)
valueA (typeA.with_type fieldT
(analyse archive valueC))]
- (in (<| (#/////analysis.Extension extension_name)
+ (in (<| {#/////analysis.Extension extension_name}
(list (/////analysis.text class)
(/////analysis.text field)
(/////analysis.text (..reflection fieldJT))
@@ -1122,7 +1122,7 @@
(and prev
(jvm\= expectedJC (: (Type Value)
(case (jvm_parser.var? actualJC)
- (#.Some name)
+ {#.Some name}
(|> aliasing
(dictionary.value name)
(maybe.else name)
@@ -1151,7 +1151,7 @@
(list.every? (function (_ [expectedJC actualJC])
(jvm\= expectedJC (: (Type Value)
(case (jvm_parser.var? actualJC)
- (#.Some name)
+ {#.Some name}
(|> aliasing
(dictionary.value name)
(maybe.else name)
@@ -1217,7 +1217,7 @@
inputsT
_
- (list& (#.Primitive (java/lang/Class::getName owner) owner_tvarsT)
+ (list& {#.Primitive (java/lang/Class::getName owner) owner_tvarsT}
inputsT)))
outputT)]]
(in [methodT
@@ -1245,7 +1245,7 @@
(monad.each ! (|>> reflection!.type phase.lifted))
(phase\each (monad.each ! (reflection_type mapping)))
phase\conjoint)
- .let [objectT (#.Primitive (java/lang/Class::getName owner) owner_tvarsT)
+ .let [objectT {#.Primitive (java/lang/Class::getName owner) owner_tvarsT}
constructorT (<| (type.univ_q (dictionary.size mapping))
(type.function inputsT)
objectT)]]
@@ -1255,14 +1255,14 @@
(type: Evaluation
(Variant
- (#Pass Method_Signature)
- (#Hint Method_Signature)))
+ {#Pass Method_Signature}
+ {#Hint Method_Signature}))
(template [<name> <tag>]
[(def: <name>
(-> Evaluation (Maybe Method_Signature))
- (|>> (case> (<tag> output)
- (#.Some output)
+ (|>> (case> {<tag> output}
+ {#.Some output}
_
#.None)))]
@@ -1310,7 +1310,7 @@
(|>> #Hint))
(method_signature method_style method)))))))]
(case (list.all pass! candidates)
- (#.Item method #.End)
+ {#.Item method #.End}
(in method)
#.End
@@ -1340,7 +1340,7 @@
(if passes? (|>> #Pass) (|>> #Hint))
(constructor_signature constructor))))))]
(case (list.all pass! candidates)
- (#.Item constructor #.End)
+ {#.Item constructor #.End}
(in constructor)
#.End
@@ -1387,10 +1387,10 @@
(not deprecated?))
[outputT argsA] (inferenceA.general archive analyse methodT (list\each product.right argsTC))
outputJT (check_return outputT)]
- (in (#/////analysis.Extension extension_name (list& (/////analysis.text (..signature (jvm.class class (list))))
+ (in {#/////analysis.Extension extension_name (list& (/////analysis.text (..signature (jvm.class class (list))))
(/////analysis.text method)
(/////analysis.text (..signature outputJT))
- (decorate_inputs argsT argsA))))))]))
+ (decorate_inputs argsT argsA))})))]))
(def: (invoke::virtual class_loader)
(-> java/lang/ClassLoader Handler)
@@ -1405,17 +1405,17 @@
(not deprecated?))
[outputT allA] (inferenceA.general archive analyse methodT (list& objectC (list\each product.right argsTC)))
.let [[objectA argsA] (case allA
- (#.Item objectA argsA)
+ {#.Item objectA argsA}
[objectA argsA]
_
(undefined))]
outputJT (check_return outputT)]
- (in (#/////analysis.Extension extension_name (list& (/////analysis.text (..signature (jvm.class class (list))))
+ (in {#/////analysis.Extension extension_name (list& (/////analysis.text (..signature (jvm.class class (list))))
(/////analysis.text method)
(/////analysis.text (..signature outputJT))
objectA
- (decorate_inputs argsT argsA))))))]))
+ (decorate_inputs argsT argsA))})))]))
(def: (invoke::special class_loader)
(-> java/lang/ClassLoader Handler)
@@ -1430,10 +1430,10 @@
(not deprecated?))
[outputT argsA] (inferenceA.general archive analyse methodT (list& objectC (list\each product.right argsTC)))
outputJT (check_return outputT)]
- (in (#/////analysis.Extension extension_name (list& (/////analysis.text (..signature (jvm.class class (list))))
+ (in {#/////analysis.Extension extension_name (list& (/////analysis.text (..signature (jvm.class class (list))))
(/////analysis.text method)
(/////analysis.text (..signature outputJT))
- (decorate_inputs argsT argsA))))))]))
+ (decorate_inputs argsT argsA))})))]))
(def: (invoke::interface class_loader)
(-> java/lang/ClassLoader Handler)
@@ -1451,18 +1451,18 @@
(not deprecated?))
[outputT allA] (inferenceA.general archive analyse methodT (list& objectC (list\each product.right argsTC)))
.let [[objectA argsA] (case allA
- (#.Item objectA argsA)
+ {#.Item objectA argsA}
[objectA argsA]
_
(undefined))]
outputJT (check_return outputT)]
- (in (#/////analysis.Extension extension_name
- (list& (/////analysis.text (..signature (jvm.class class_name (list))))
- (/////analysis.text method)
- (/////analysis.text (..signature outputJT))
- objectA
- (decorate_inputs argsT argsA))))))]))
+ (in {#/////analysis.Extension extension_name
+ (list& (/////analysis.text (..signature (jvm.class class_name (list))))
+ (/////analysis.text method)
+ (/////analysis.text (..signature outputJT))
+ objectA
+ (decorate_inputs argsT argsA))})))]))
(def: (invoke::constructor class_loader)
(-> java/lang/ClassLoader Handler)
@@ -1476,8 +1476,8 @@
_ (phase.assertion ..deprecated_method [class ..constructor_method methodT]
(not deprecated?))
[outputT argsA] (inferenceA.general archive analyse methodT (list\each product.right argsTC))]
- (in (#/////analysis.Extension extension_name (list& (/////analysis.text (..signature (jvm.class class (list))))
- (decorate_inputs argsT argsA))))))]))
+ (in {#/////analysis.Extension extension_name (list& (/////analysis.text (..signature (jvm.class class (list))))
+ (decorate_inputs argsT argsA))})))]))
(def: (bundle::member class_loader)
(-> java/lang/ClassLoader Bundle)
@@ -1693,7 +1693,7 @@
(in [name luxT])))
arguments)
[scope bodyA] (|> arguments'
- (#.Item [self_name selfT])
+ {#.Item [self_name selfT]}
list.reversed
(list\mix scope.with_local (analyse archive body))
(typeA.with_type .Any)
@@ -1707,10 +1707,10 @@
(/////analysis.tuple (list\each ..argument_analysis arguments))
(/////analysis.tuple (list\each class_analysis exceptions))
(/////analysis.tuple (list\each typed_analysis super_arguments))
- (#/////analysis.Function
+ {#/////analysis.Function
(list\each (|>> /////analysis.variable)
(scope.environment scope))
- (/////analysis.tuple (list bodyA)))
+ (/////analysis.tuple (list bodyA))}
))))))
(type: .public (Virtual_Method a)
@@ -1769,7 +1769,7 @@
(in [name luxT])))
arguments)
[scope bodyA] (|> arguments'
- (#.Item [self_name selfT])
+ {#.Item [self_name selfT]}
list.reversed
(list\mix scope.with_local (analyse archive body))
(typeA.with_type returnT)
@@ -1785,10 +1785,10 @@
(/////analysis.tuple (list\each ..argument_analysis arguments))
(return_analysis return)
(/////analysis.tuple (list\each class_analysis exceptions))
- (#/////analysis.Function
+ {#/////analysis.Function
(list\each (|>> /////analysis.variable)
(scope.environment scope))
- (/////analysis.tuple (list bodyA)))
+ (/////analysis.tuple (list bodyA))}
))))))
(type: .public (Static_Method a)
@@ -1857,10 +1857,10 @@
(return_analysis return)
(/////analysis.tuple (list\each class_analysis
exceptions))
- (#/////analysis.Function
+ {#/////analysis.Function
(list\each (|>> /////analysis.variable)
(scope.environment scope))
- (/////analysis.tuple (list bodyA)))
+ (/////analysis.tuple (list bodyA))}
))))))
(type: .public (Overriden_Method a)
@@ -1914,10 +1914,10 @@
(case (list.one (function (_ super)
(let [[super_name super_parameters] (jvm_parser.read_class super)]
(if (text\= parent_name super_name)
- (#.Some super_parameters)
+ {#.Some super_parameters}
#.None)))
supers)
- (#.Some super_parameters)
+ {#.Some super_parameters}
(let [expected_count (list.size parent_parameters)
actual_count (list.size super_parameters)]
(if (n.= expected_count actual_count)
@@ -1966,25 +1966,25 @@
bodyA
2
- (#/////analysis.Case (/////analysis.unit)
- [[#/////analysis.when
- (#/////analysis.Bind 2)
+ {#/////analysis.Case (/////analysis.unit)
+ [[#/////analysis.when
+ {#/////analysis.Bind 2}
- #/////analysis.then
- bodyA]
- (list)])
+ #/////analysis.then
+ bodyA]
+ (list)]}
_
- (#/////analysis.Case (/////analysis.unit)
- [[#/////analysis.when
- (#/////analysis.Complex
- (#/////analysis.Tuple (|> arity
- list.indices
- (list\each (|>> (n.+ 2) #/////analysis.Bind)))))
+ {#/////analysis.Case (/////analysis.unit)
+ [[#/////analysis.when
+ {#/////analysis.Complex
+ {#/////analysis.Tuple (|> arity
+ list.indices
+ (list\each (|>> (n.+ 2) #/////analysis.Bind)))}}
- #/////analysis.then
- bodyA]
- (list)]))))
+ #/////analysis.then
+ bodyA]
+ (list)]})))
(def: .public (analyse_overriden_method analyse archive selfT mapping supers method)
(-> Phase Archive .Type Mapping (List (Type Class)) (Overriden_Method Code) (Operation Analysis))
@@ -2012,7 +2012,7 @@
arguments)
returnT (boxed_reflection_return mapping return)
[scope bodyA] (|> arguments'
- (#.Item [self_name selfT])
+ {#.Item [self_name selfT]}
list.reversed
(list\mix scope.with_local (analyse archive body))
(typeA.with_type returnT)
@@ -2028,15 +2028,15 @@
(return_analysis return)
(/////analysis.tuple (list\each class_analysis
exceptions))
- (#/////analysis.Function
+ {#/////analysis.Function
(list\each (|>> /////analysis.variable)
(scope.environment scope))
- (..hide_method_body (list.size arguments) bodyA))
+ (..hide_method_body (list.size arguments) bodyA)}
))))))
(type: .public (Method_Definition a)
(Variant
- (#Overriden_Method (Overriden_Method a))))
+ {#Overriden_Method (Overriden_Method a)}))
(def: .public parameter_types
(-> (List (Type Var)) (Check (List [(Type Var) .Type])))
@@ -2082,7 +2082,7 @@
(in (|> (list.zipped/2 expected_parameters actual_parameters)
(list\mix (function (_ [expected actual] mapping)
(case (jvm_parser.var? actual)
- (#.Some actual)
+ {#.Some actual}
(dictionary.has actual expected mapping)
#.None
@@ -2154,7 +2154,7 @@
selfT (///.lifted (do meta.monad
[where meta.current_module_name
id meta.seed]
- (in (inheritance_relationship_type (#.Primitive (..anonymous_class_name where id) (list))
+ (in (inheritance_relationship_type {#.Primitive (..anonymous_class_name where id) (list)}
super_classT
super_interfaceT+))))
_ (typeA.infer selfT)
@@ -2165,14 +2165,14 @@
(analyse archive term))]
(in [type termA])))
constructor_args)
- .let [supers (#.Item super_class super_interfaces)]
+ .let [supers {#.Item super_class super_interfaces}]
_ (..require_complete_method_concretion class_loader supers methods)
methodsA (monad.each ! (analyse_overriden_method analyse archive selfT mapping supers) methods)]
- (in (#/////analysis.Extension extension_name
- (list (class_analysis super_class)
- (/////analysis.tuple (list\each class_analysis super_interfaces))
- (/////analysis.tuple (list\each typed_analysis constructor_argsA+))
- (/////analysis.tuple methodsA))))))]))
+ (in {#/////analysis.Extension extension_name
+ (list (class_analysis super_class)
+ (/////analysis.tuple (list\each class_analysis super_interfaces))
+ (/////analysis.tuple (list\each typed_analysis constructor_argsA+))
+ (/////analysis.tuple methodsA))})))]))
(def: (bundle::class class_loader)
(-> java/lang/ClassLoader Bundle)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux
index f7ed4ed54..c9c1dfb0b 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/lua.lux
@@ -50,7 +50,7 @@
(phase archive lengthC))
[var_id varT] (analysis/type.with_env check.var)
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list lengthA)))))]))
+ (in {#analysis.Extension extension (list lengthA)})))]))
(def: array::length
Handler
@@ -62,7 +62,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer Nat)]
- (in (#analysis.Extension extension (list arrayA)))))]))
+ (in {#analysis.Extension extension (list arrayA)})))]))
(def: array::read
Handler
@@ -76,7 +76,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer varT)]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: array::write
Handler
@@ -92,7 +92,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA valueA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA valueA arrayA)})))]))
(def: array::delete
Handler
@@ -106,7 +106,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: bundle::array
Bundle
@@ -128,8 +128,8 @@
[objectA (analysis/type.with_type ..Object
(phase archive objectC))
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list (analysis.text fieldC)
- objectA)))))]))
+ (in {#analysis.Extension extension (list (analysis.text fieldC)
+ objectA)})))]))
(def: object::do
Handler
@@ -141,9 +141,9 @@
(phase archive objectC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list& (analysis.text methodC)
+ (in {#analysis.Extension extension (list& (analysis.text methodC)
objectA
- inputsA)))))]))
+ inputsA)})))]))
(def: bundle::object
Bundle
@@ -165,7 +165,7 @@
[inputA (analysis/type.with_type (type <fromT>)
(phase archive inputC))
_ (analysis/type.infer (type <toT>))]
- (in (#analysis.Extension extension (list inputA)))))]))]
+ (in {#analysis.Extension extension (list inputA)})))]))]
[utf8::encode Text (array.Array (I64 Any))]
[utf8::decode (array.Array (I64 Any)) Text]
@@ -186,7 +186,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: lua::apply
Handler
@@ -198,7 +198,7 @@
(phase archive abstractionC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list& abstractionA inputsA)))))]))
+ (in {#analysis.Extension extension (list& abstractionA inputsA)})))]))
(def: lua::power
Handler
@@ -211,7 +211,7 @@
baseA (analysis/type.with_type Frac
(phase archive baseC))
_ (analysis/type.infer Frac)]
- (in (#analysis.Extension extension (list powerA baseA)))))]))
+ (in {#analysis.Extension extension (list powerA baseA)})))]))
(def: lua::import
Handler
@@ -220,7 +220,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer ..Object)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: lua::function
Handler
@@ -232,8 +232,8 @@
abstractionA (analysis/type.with_type (-> inputT Any)
(phase archive abstractionC))
_ (analysis/type.infer ..Function)]
- (in (#analysis.Extension extension (list (analysis.nat arity)
- abstractionA)))))]))
+ (in {#analysis.Extension extension (list (analysis.nat arity)
+ abstractionA)})))]))
(def: .public bundle
Bundle
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 fb283bf9e..0609bee0a 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
@@ -41,10 +41,10 @@
Handler))
(function (_ extension_name analyse archive args)
(case (<code>.result syntax args)
- (#try.Success inputs)
+ {#try.Success inputs}
(handler extension_name analyse archive inputs)
- (#try.Failure _)
+ {#try.Failure _}
(////analysis.except ///.invalid_syntax [extension_name %.code args]))))
(def: (simple inputsT+ outputT)
@@ -60,7 +60,7 @@
(typeA.with_type argT
(analyse archive argC)))
(list.zipped/2 inputsT+ args))]
- (in (#////analysis.Extension extension_name argsA)))
+ (in {#////analysis.Extension extension_name argsA}))
(////analysis.except ///.incorrect_arity [extension_name num_expected num_actual]))))))
(def: .public (nullary valueT)
@@ -119,7 +119,7 @@
(list (////analysis.tuple (list\each (|>> ////analysis.nat) cases))
branch))))
(list& input else)
- (#////analysis.Extension extension_name)))))])))
+ {#////analysis.Extension extension_name}))))])))
... "lux is" represents reference/pointer equality.
(def: lux::is
@@ -142,7 +142,7 @@
_ (typeA.infer (type (Either Text varT)))
opA (typeA.with_type (type (-> .Any varT))
(analyse archive opC))]
- (in (#////analysis.Extension extension_name (list opA))))
+ (in {#////analysis.Extension extension_name (list opA)}))
_
(////analysis.except ///.incorrect_arity [extension_name 1 (list.size args)]))))
@@ -151,7 +151,7 @@
Handler
(function (_ extension_name analyse archive argsC+)
(case argsC+
- (^ (list [_ (#.Text module_name)] exprC))
+ (^ (list [_ {#.Text module_name}] exprC))
(////analysis.with_current_module module_name
(analyse archive exprC))
@@ -214,15 +214,15 @@
(do !
[input_type (///.lifted (meta.definition (name_of .Macro')))]
(case input_type
- (^or (#.Definition [exported? def_type def_value])
- (#.Type [exported? def_value labels]))
+ (^or {#.Definition [exported? def_type def_value]}
+ {#.Type [exported? def_value labels]})
(in (:as Type def_value))
- (^or (#.Label _)
- (#.Slot _))
+ (^or {#.Label _}
+ {#.Slot _})
(////.failure (exception.error ..not_a_type [(name_of .Macro')]))
- (#.Alias real_name)
+ {#.Alias real_name}
(recur real_name))))]
(typeA.with_type input_type
(phase archive valueC))))]))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux
index a52f8bb53..16717539b 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/php.lux
@@ -38,7 +38,7 @@
(phase archive lengthC))
[var_id varT] (analysis/type.with_env check.var)
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list lengthA)))))]))
+ (in {#analysis.Extension extension (list lengthA)})))]))
(def: array::length
Handler
@@ -50,7 +50,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer Nat)]
- (in (#analysis.Extension extension (list arrayA)))))]))
+ (in {#analysis.Extension extension (list arrayA)})))]))
(def: array::read
Handler
@@ -64,7 +64,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer varT)]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: array::write
Handler
@@ -80,7 +80,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA valueA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA valueA arrayA)})))]))
(def: array::delete
Handler
@@ -94,7 +94,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: bundle::array
Bundle
@@ -127,7 +127,7 @@
(do [! phase.monad]
[inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list& (analysis.text constructor) inputsA)))))]))
+ (in {#analysis.Extension extension (list& (analysis.text constructor) inputsA)})))]))
(def: object::get
Handler
@@ -138,8 +138,8 @@
[objectA (analysis/type.with_type ..Object
(phase archive objectC))
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list (analysis.text fieldC)
- objectA)))))]))
+ (in {#analysis.Extension extension (list (analysis.text fieldC)
+ objectA)})))]))
(def: object::do
Handler
@@ -151,9 +151,9 @@
(phase archive objectC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list& (analysis.text methodC)
+ (in {#analysis.Extension extension (list& (analysis.text methodC)
objectA
- inputsA)))))]))
+ inputsA)})))]))
(def: bundle::object
Bundle
@@ -173,7 +173,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: php::apply
Handler
@@ -185,7 +185,7 @@
(phase archive abstractionC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list& abstractionA inputsA)))))]))
+ (in {#analysis.Extension extension (list& abstractionA inputsA)})))]))
(def: php::pack
Handler
@@ -198,7 +198,7 @@
dataA (analysis/type.with_type (type (Array (I64 Any)))
(phase archive dataC))
_ (analysis/type.infer Text)]
- (in (#analysis.Extension extension (list formatA dataA)))))]))
+ (in {#analysis.Extension extension (list formatA dataA)})))]))
(def: .public bundle
Bundle
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux
index 700f80163..ec21b45bc 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/python.lux
@@ -38,7 +38,7 @@
(phase archive lengthC))
[var_id varT] (analysis/type.with_env check.var)
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list lengthA)))))]))
+ (in {#analysis.Extension extension (list lengthA)})))]))
(def: array::length
Handler
@@ -50,7 +50,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer Nat)]
- (in (#analysis.Extension extension (list arrayA)))))]))
+ (in {#analysis.Extension extension (list arrayA)})))]))
(def: array::read
Handler
@@ -64,7 +64,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer varT)]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: array::write
Handler
@@ -80,7 +80,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA valueA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA valueA arrayA)})))]))
(def: array::delete
Handler
@@ -94,7 +94,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: bundle::array
Bundle
@@ -136,8 +136,8 @@
[objectA (analysis/type.with_type ..Object
(phase archive objectC))
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list (analysis.text fieldC)
- objectA)))))]))
+ (in {#analysis.Extension extension (list (analysis.text fieldC)
+ objectA)})))]))
(def: object::do
Handler
@@ -149,9 +149,9 @@
(phase archive objectC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list& (analysis.text methodC)
+ (in {#analysis.Extension extension (list& (analysis.text methodC)
objectA
- inputsA)))))]))
+ inputsA)})))]))
(def: bundle::object
Bundle
@@ -170,7 +170,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: python::import
Handler
@@ -179,7 +179,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer ..Object)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: python::apply
Handler
@@ -191,7 +191,7 @@
(phase archive abstractionC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list& abstractionA inputsA)))))]))
+ (in {#analysis.Extension extension (list& abstractionA inputsA)})))]))
(def: python::function
Handler
@@ -203,8 +203,8 @@
abstractionA (analysis/type.with_type (-> inputT Any)
(phase archive abstractionC))
_ (analysis/type.infer ..Function)]
- (in (#analysis.Extension extension (list (analysis.nat arity)
- abstractionA)))))]))
+ (in {#analysis.Extension extension (list (analysis.nat arity)
+ abstractionA)})))]))
(def: python::exec
Handler
@@ -217,7 +217,7 @@
globalsA (analysis/type.with_type ..Dict
(phase archive globalsC))
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list codeA globalsA)))))]))
+ (in {#analysis.Extension extension (list codeA globalsA)})))]))
(def: .public bundle
Bundle
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux
index 6bf24f1fa..525458cdd 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/ruby.lux
@@ -38,7 +38,7 @@
(phase archive lengthC))
[var_id varT] (analysis/type.with_env check.var)
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list lengthA)))))]))
+ (in {#analysis.Extension extension (list lengthA)})))]))
(def: array::length
Handler
@@ -50,7 +50,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer Nat)]
- (in (#analysis.Extension extension (list arrayA)))))]))
+ (in {#analysis.Extension extension (list arrayA)})))]))
(def: array::read
Handler
@@ -64,7 +64,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer varT)]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: array::write
Handler
@@ -80,7 +80,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA valueA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA valueA arrayA)})))]))
(def: array::delete
Handler
@@ -94,7 +94,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: bundle::array
Bundle
@@ -128,8 +128,8 @@
[objectA (analysis/type.with_type ..Object
(phase archive objectC))
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list (analysis.text fieldC)
- objectA)))))]))
+ (in {#analysis.Extension extension (list (analysis.text fieldC)
+ objectA)})))]))
(def: object::do
Handler
@@ -141,9 +141,9 @@
(phase archive objectC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer .Any)]
- (in (#analysis.Extension extension (list& (analysis.text methodC)
+ (in {#analysis.Extension extension (list& (analysis.text methodC)
objectA
- inputsA)))))]))
+ inputsA)})))]))
(def: bundle::object
Bundle
@@ -162,7 +162,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: ruby::apply
Handler
@@ -174,7 +174,7 @@
(phase archive abstractionC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list& abstractionA inputsA)))))]))
+ (in {#analysis.Extension extension (list& abstractionA inputsA)})))]))
(def: ruby::import
Handler
@@ -183,7 +183,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer Bit)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: .public bundle
Bundle
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux
index 2075522d7..a0df81d93 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/scheme.lux
@@ -38,7 +38,7 @@
(phase archive lengthC))
[var_id varT] (analysis/type.with_env check.var)
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list lengthA)))))]))
+ (in {#analysis.Extension extension (list lengthA)})))]))
(def: array::length
Handler
@@ -50,7 +50,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer Nat)]
- (in (#analysis.Extension extension (list arrayA)))))]))
+ (in {#analysis.Extension extension (list arrayA)})))]))
(def: array::read
Handler
@@ -64,7 +64,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer varT)]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: array::write
Handler
@@ -80,7 +80,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA valueA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA valueA arrayA)})))]))
(def: array::delete
Handler
@@ -94,7 +94,7 @@
arrayA (analysis/type.with_type (type (Array varT))
(phase archive arrayC))
_ (analysis/type.infer (type (Array varT)))]
- (in (#analysis.Extension extension (list indexA arrayA)))))]))
+ (in {#analysis.Extension extension (list indexA arrayA)})))]))
(def: bundle::array
Bundle
@@ -131,7 +131,7 @@
(function (_ extension phase archive name)
(do phase.monad
[_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list (analysis.text name))))))]))
+ (in {#analysis.Extension extension (list (analysis.text name))})))]))
(def: scheme::apply
Handler
@@ -143,7 +143,7 @@
(phase archive abstractionC))
inputsA (monad.each ! (|>> (phase archive) (analysis/type.with_type Any)) inputsC)
_ (analysis/type.infer Any)]
- (in (#analysis.Extension extension (list& abstractionA inputsA)))))]))
+ (in {#analysis.Extension extension (list& abstractionA inputsA)})))]))
(def: .public bundle
Bundle
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 6dc2b393d..76c66e37d 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
@@ -144,8 +144,8 @@
)))
(type: Field
- (#Constant Constant)
- (#Variable Variable))
+ {#Constant Constant}
+ {#Variable Variable})
(def: field
(Parser Field)
@@ -155,10 +155,10 @@
))
(type: Method_Definition
- (#Constructor (jvm.Constructor Code))
- (#Virtual_Method (jvm.Virtual_Method Code))
- (#Static_Method (jvm.Static_Method Code))
- (#Overriden_Method (jvm.Overriden_Method Code)))
+ {#Constructor (jvm.Constructor Code)}
+ {#Virtual_Method (jvm.Virtual_Method Code)}
+ {#Static_Method (jvm.Static_Method Code)}
+ {#Overriden_Method (jvm.Overriden_Method Code)})
(def: method
(Parser Method_Definition)
@@ -186,10 +186,10 @@
(-> Field (Resource field.Field))
(case field
... TODO: Handle annotations.
- (#Constant [name annotations type value])
+ {#Constant [name annotations type value]}
(case value
(^template [<tag> <type> <constant>]
- [[_ (<tag> value)]
+ [[_ {<tag> value}]
(do pool.monad
[constant (`` (|> value (~~ (template.spliced <constant>))))
attribute (attribute.constant constant)]
@@ -210,7 +210,7 @@
(undefined))
... TODO: Handle annotations.
- (#Variable [name visibility state annotations type])
+ {#Variable [name visibility state annotations type]}
(field.field (modifier\composite visibility state)
name type (row.row))))
@@ -225,16 +225,16 @@
[methodA (: (Operation analysis.Analysis)
(directive.lifted_analysis
(case methodC
- (#Constructor method)
+ {#Constructor method}
(jvm.analyse_constructor_method analyse selfT mapping method)
- (#Virtual_Method method)
+ {#Virtual_Method method}
(jvm.analyse_virtual_method analyse selfT mapping method)
- (#Static_Method method)
+ {#Static_Method method}
(jvm.analyse_static_method analyse mapping method)
- (#Overriden_Method method)
+ {#Overriden_Method method}
(jvm.analyse_overriden_method analyse selfT mapping method))))]
(directive.lifted_synthesis
(synthesize methodA)))))
@@ -275,7 +275,7 @@
(monad.each check.monad
(|>> ..signature (luxT.check (luxT.class mapping)))
super_interfaces)))
- .let [selfT (jvm.inheritance_relationship_type (#.Primitive name (list\each product.right parameters))
+ .let [selfT (jvm.inheritance_relationship_type {#.Primitive name (list\each product.right parameters)}
super_classT
super_interfaceT+)]
state (extension.lifted phase.get_state)
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 0ebdde096..4ea0c4e7a 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
@@ -54,10 +54,10 @@
(Handler anchor expression directive)))
(function (_ extension_name phase archive inputs)
(case (<code>.result syntax inputs)
- (#try.Success inputs)
+ {#try.Success inputs}
(handler extension_name phase archive inputs)
- (#try.Failure error)
+ {#try.Failure error}
(phase.except ///.invalid_syntax [extension_name %.code inputs]))))
(def: (context [module_id artifact_id])
@@ -138,7 +138,7 @@
(check.clean code//type))]
(in [code//type codeA]))
- (#.Some expected)
+ {#.Some expected}
(do !
[codeA (typeA.with_type expected
(analyse archive codeC))]
@@ -219,7 +219,7 @@
(-> Expander /////analysis.Bundle Handler)
(function (_ extension_name phase archive inputsC+)
(case inputsC+
- (^ (list [_ (#.Identifier ["" short_name])] valueC exported?C))
+ (^ (list [_ {#.Identifier ["" short_name]}] valueC exported?C))
(do phase.monad
[current_module (/////directive.lifted_analysis
(///.lifted meta.current_module_name))
@@ -227,7 +227,7 @@
[type valueT value] (..definition archive full_name #.None valueC)
[_ _ exported?] (evaluate! archive Bit exported?C)
_ (/////directive.lifted_analysis
- (module.define short_name (#.Definition [(:as Bit exported?) type value])))
+ (module.define short_name {#.Definition [(:as Bit exported?) type value]}))
_ (..refresh expander host_analysis)
_ (..announce_definition! short_name type)]
(in /////directive.no_requirements))
@@ -258,23 +258,23 @@
.let [full_name [current_module short_name]]
[_ _ exported?] (evaluate! archive Bit exported?C)
.let [exported? (:as Bit exported?)]
- [type valueT value] (..definition archive full_name (#.Some .Type) valueC)
+ [type valueT value] (..definition archive full_name {#.Some .Type} valueC)
labels (/////directive.lifted_analysis
(do phase.monad
[.let [[record? labels] (case labels
- (#.Left tags)
+ {#.Left tags}
[false tags]
- (#.Right slots)
+ {#.Right slots}
[true slots])]
_ (case labels
#.End
- (module.define short_name (#.Definition [exported? type value]))
+ (module.define short_name {#.Definition [exported? type value]})
- (#.Item labels)
- (module.define short_name (#.Type [exported? (:as .Type value) (if record?
- (#.Right labels)
- (#.Left labels))])))
+ {#.Item labels}
+ (module.define short_name {#.Type [exported? (:as .Type value) (if record?
+ {#.Right labels}
+ {#.Left labels})]}))
_ (module.declare_tags record? labels exported? (:as .Type value))]
(in labels)))
_ (..refresh expander host_analysis)
@@ -325,15 +325,15 @@
[current_module (///.lifted meta.current_module_name)
constant (///.lifted (meta.definition original))]
(case constant
- (#.Alias de_aliased)
+ {#.Alias de_aliased}
(phase.except ..cannot_alias_an_alias [[current_module alias] original de_aliased])
- (^or (#.Definition _)
- (#.Type _))
- (module.define alias (#.Alias original))
+ (^or {#.Definition _}
+ {#.Type _})
+ (module.define alias {#.Alias original})
- (^or (#.Label _)
- (#.Slot _))
+ (^or {#.Label _}
+ {#.Slot _})
(phase.except ..cannot_alias_a_label [[current_module alias] original]))))
(def: def::alias
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux
index facb40e7e..8c6df79fd 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux
@@ -45,10 +45,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except extension.invalid_syntax [extension_name %synthesis input]))))
(template: (!unary function)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux
index 1072bffe4..54b345e36 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux
@@ -45,10 +45,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except extension.invalid_syntax [extension_name %synthesis input]))))
... [Procedures]
@@ -101,7 +101,7 @@
Phase!
(case synthesis
... TODO: Get rid of this ASAP
- (#synthesis.Extension "lux syntax char case!" parameters)
+ {#synthesis.Extension "lux syntax char case!" parameters}
(do /////.monad
[body (expression archive synthesis)]
(in (:as Statement body)))
@@ -115,9 +115,13 @@
[synthesis.text]
[synthesis.variant]
[synthesis.tuple]
- [#synthesis.Reference]
[synthesis.branch/get]
- [synthesis.function/apply]
+ [synthesis.function/apply])
+
+ (^template [<tag>]
+ [(^ {<tag> value})
+ (/////\each _.return (expression archive synthesis))])
+ ([#synthesis.Reference]
[#synthesis.Extension])
(^ (synthesis.branch/case case))
@@ -162,13 +166,13 @@
... (in (_.apply/* (_.closure (list)
... (_.switch (_.the //runtime.i64_low_field inputG)
... conditionals!
- ... (#.Some (_.return else!))))
+ ... {#.Some (_.return else!)}))
... (list)))
(in (<| (:as Expression)
(: Statement)
(_.switch (_.the //runtime.i64_low_field inputG)
conditionals!
- (#.Some else!))))))]))
+ {#.Some else!})))))]))
... [Bundles]
(def: lux_procs
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 2ff3fd02a..f3efd5f47 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
@@ -49,10 +49,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except /////extension.invalid_syntax [extension_name //////synthesis.%synthesis input]))))
(def: $Boolean (type.class "java.lang.Boolean" (list)))
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 e0626e0b6..b070a0a6b 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
@@ -339,9 +339,9 @@
(do <>.monad
[arrayJT (<t>.then parser.array <s>.text)]
(case (parser.array? arrayJT)
- (#.Some elementJT)
+ {#.Some elementJT}
(case (parser.object? elementJT)
- (#.Some elementJT)
+ {#.Some elementJT}
(in elementJT)
#.None
@@ -644,7 +644,7 @@
(do //////.monad
[.let [$class (type.class class (list))]]
(case (dictionary.value unboxed ..primitives)
- (#.Some primitive)
+ {#.Some primitive}
(in (_.getstatic $class field primitive))
#.None
@@ -661,7 +661,7 @@
[valueG (generate archive valueS)
.let [$class (type.class class (list))]]
(case (dictionary.value unboxed ..primitives)
- (#.Some primitive)
+ {#.Some primitive}
(in ($_ _.composite
valueG
(_.putstatic $class field primitive)
@@ -683,7 +683,7 @@
[objectG (generate archive objectS)
.let [$class (type.class class (list))
getG (case (dictionary.value unboxed ..primitives)
- (#.Some primitive)
+ {#.Some primitive}
(_.getfield $class field primitive)
#.None
@@ -703,7 +703,7 @@
objectG (generate archive objectS)
.let [$class (type.class class (list))
putG (case (dictionary.value unboxed ..primitives)
- (#.Some primitive)
+ {#.Some primitive}
(_.putfield $class field primitive)
#.None
@@ -729,10 +729,10 @@
(do //////.monad
[valueG (generate archive valueS)]
(case (type.primitive? valueT)
- (#.Right valueT)
+ {#.Right valueT}
(in [valueT valueG])
- (#.Left valueT)
+ {#.Left valueT}
(in [valueT ($_ _.composite
valueG
(_.checkcast valueT))]))))
@@ -740,10 +740,10 @@
(def: (prepare_output outputT)
(-> (Type Return) (Bytecode Any))
(case (type.void? outputT)
- (#.Right outputT)
+ {#.Right outputT}
..unitG
- (#.Left outputT)
+ {#.Left outputT}
(\ _.monad in [])))
(def: invoke::static
@@ -855,13 +855,13 @@
(//////synthesis.path/then (normalize bodyS))
(^template [<tag>]
- [(^ (<tag> leftP rightP))
- (<tag> (recur leftP) (recur rightP))])
+ [(^ {<tag> leftP rightP})
+ {<tag> (recur leftP) (recur rightP)}])
([#//////synthesis.Alt]
[#//////synthesis.Seq])
(^template [<tag>]
- [(^ (<tag> value))
+ [(^ {<tag> value})
path])
([#//////synthesis.Pop]
[#//////synthesis.Bind]
@@ -875,7 +875,7 @@
(function (recur body)
(case body
(^template [<tag>]
- [(^ (<tag> value))
+ [(^ {<tag> value})
body])
([#//////synthesis.Primitive]
[//////synthesis.constant])
@@ -928,8 +928,8 @@
(^ (//////synthesis.function/apply [functionS inputsS+]))
(//////synthesis.function/apply [(recur functionS) (list\each recur inputsS+)])
- (#//////synthesis.Extension [name inputsS+])
- (#//////synthesis.Extension [name (list\each recur inputsS+)]))))
+ {#//////synthesis.Extension [name inputsS+]}
+ {#//////synthesis.Extension [name (list\each recur inputsS+)]})))
(def: $Object
(type.class "java.lang.Object" (list)))
@@ -952,12 +952,12 @@
(_.putfield class (///reference.foreign_name register) $Object)))))]
(method.method method.public "<init>" (anonymous_init_method env)
(list)
- (#.Some ($_ _.composite
+ {#.Some ($_ _.composite
(_.aload 0)
(monad.each _.monad product.right inputsTG)
(_.invokespecial super_class "<init>" (type.method [(list\each product.left inputsTG) type.void (list)]))
store_capturedG
- _.return)))))
+ _.return)})))
(def: (anonymous_instance generate archive class env)
(-> Phase Archive (Type category.Class) (Environment Synthesis) (Operation (Bytecode Any)))
@@ -972,17 +972,17 @@
(def: (returnG returnT)
(-> (Type Return) (Bytecode Any))
(case (type.void? returnT)
- (#.Right returnT)
+ {#.Right returnT}
_.return
- (#.Left returnT)
+ {#.Left returnT}
(case (type.primitive? returnT)
- (#.Left returnT)
+ {#.Left returnT}
($_ _.composite
(_.checkcast returnT)
_.areturn)
- (#.Right returnT)
+ {#.Right returnT}
(cond (or (\ type.equivalence = type.boolean returnT)
(\ type.equivalence = type.byte returnT)
(\ type.equivalence = type.short returnT)
@@ -1027,7 +1027,7 @@
... Give them names as "foreign" variables.
list.enumeration
(list\each (function (_ [id capture])
- [capture (#//////variable.Foreign id)]))
+ [capture {#//////variable.Foreign id}]))
(dictionary.from_list //////variable.hash))
normalized_methods (list\each (function (_ [environment
[ownerT name
@@ -1037,7 +1037,7 @@
(let [local_mapping (|> environment
list.enumeration
(list\each (function (_ [foreign_id capture])
- [(#//////variable.Foreign foreign_id)
+ [{#//////variable.Foreign foreign_id}
(|> global_mapping
(dictionary.value capture)
maybe.trusted)]))
@@ -1066,9 +1066,9 @@
returnT
exceptionsT])
(list)
- (#.Some ($_ _.composite
+ {#.Some ($_ _.composite
bodyG
- (returnG returnT)))))))
+ (returnG returnT))}))))
normalized_methods)
bytecode (<| (\ ! each (format.result class.writer))
//////.lifted
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux
index 1be1bcfa5..3523c19fa 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux
@@ -48,10 +48,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except extension.invalid_syntax [extension_name %synthesis input]))))
(template: (!unary function)
@@ -61,7 +61,7 @@
Phase!
(case synthesis
... TODO: Get rid of this ASAP
- (#synthesis.Extension "lux syntax char case!" parameters)
+ {#synthesis.Extension "lux syntax char case!" parameters}
(do /////.monad
[body (expression archive synthesis)]
(in (:as Statement body)))
@@ -75,9 +75,13 @@
[synthesis.text]
[synthesis.variant]
[synthesis.tuple]
- [#synthesis.Reference]
[synthesis.branch/get]
- [synthesis.function/apply]
+ [synthesis.function/apply])
+
+ (^template [<tag>]
+ [(^ {<tag> value})
+ (/////\each _.return (expression archive synthesis))])
+ ([#synthesis.Reference]
[#synthesis.Extension])
(^ (synthesis.branch/case case))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux
index d5f740ed4..9a06cd980 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux
@@ -45,10 +45,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except extension.invalid_syntax [extension_name %synthesis input]))))
(template: (!unary function)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux
index 03cb557dc..cbb7c557d 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux
@@ -47,7 +47,7 @@
Phase!
(case synthesis
... TODO: Get rid of this ASAP
- (#synthesis.Extension "lux syntax char case!" parameters)
+ {#synthesis.Extension "lux syntax char case!" parameters}
(do /////.monad
[body (expression archive synthesis)]
(in (:as (Statement Any) body)))
@@ -61,9 +61,13 @@
[synthesis.text]
[synthesis.variant]
[synthesis.tuple]
- [#synthesis.Reference]
[synthesis.branch/get]
- [synthesis.function/apply]
+ [synthesis.function/apply])
+
+ (^template [<tag>]
+ [(^ {<tag> value})
+ (/////\each _.return (expression archive synthesis))])
+ ([#synthesis.Reference]
[#synthesis.Extension])
(^ (synthesis.branch/case case))
@@ -88,10 +92,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<synthesis>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except extension.invalid_syntax [extension_name %synthesis input]))))
... TODO: Get rid of this ASAP
@@ -124,10 +128,10 @@
... .let [dependencies (//case.dependencies (list\mix (function (_ right left)
... (synthesis.path/seq left right))
... (synthesis.path/then input)
- ... (#.Item (synthesis.path/then else)
- ... (list\each (|>> product.right
- ... synthesis.path/then)
- ... conditionals))))
+ ... {#.Item (synthesis.path/then else)
+ ... (list\each (|>> product.right
+ ... synthesis.path/then)
+ ... conditionals)}))
... @closure (_.var (reference.artifact artifact_id))
... closure (_.def @closure dependencies
... ($_ _.then
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux
index 68725c83a..2e533b5bd 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux
@@ -45,10 +45,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except extension.invalid_syntax [extension_name %synthesis input]))))
... (template: (!unary function)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux
index a253cb8de..6b6538363 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux
@@ -48,17 +48,17 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except extension.invalid_syntax [extension_name %synthesis input]))))
(def: .public (statement expression archive synthesis)
Phase!
(case synthesis
... TODO: Get rid of this ASAP
- (#synthesis.Extension "lux syntax char case!" parameters)
+ {#synthesis.Extension "lux syntax char case!" parameters}
(do /////.monad
[body (expression archive synthesis)]
(in (:as Statement
@@ -73,9 +73,13 @@
[synthesis.text]
[synthesis.variant]
[synthesis.tuple]
- [#synthesis.Reference]
[synthesis.branch/get]
- [synthesis.function/apply]
+ [synthesis.function/apply])
+
+ (^template [<tag>]
+ [(^ {<tag> value})
+ (/////\each _.return (expression archive synthesis))])
+ ([#synthesis.Reference]
[#synthesis.Extension])
(^ (synthesis.branch/case case))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux
index bc2ad5cba..7161326e1 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux
@@ -45,10 +45,10 @@
Handler))
(function (_ extension_name phase archive input)
(case (<s>.result parser input)
- (#try.Success input')
+ {#try.Success input'}
(handler extension_name phase archive input')
- (#try.Failure error)
+ {#try.Failure error}
(/////.except extension.invalid_syntax [extension_name %synthesis input]))))
(template: (!unary function)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp.lux
index 1b1f29f46..26a967a45 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp.lux
@@ -34,7 +34,7 @@
[////synthesis.f64 /primitive.f64]
[////synthesis.text /primitive.text])
- (#////synthesis.Reference value)
+ {#////synthesis.Reference value}
(//reference.reference /reference.system archive value)
(^template [<tag> <generator>]
@@ -52,6 +52,6 @@
[////synthesis.loop/recur /loop.recur]
[////synthesis.function/abstraction /function.function])
- (#////synthesis.Extension extension)
+ {#////synthesis.Extension extension}
(///extension.apply archive generate extension)
))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/case.lux
index 90f67a68a..5442b7268 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/case.lux
@@ -117,7 +117,7 @@
(_.go @fail)
(..push! @temp)))
(.case next!
- (#.Some next!)
+ {#.Some next!}
(list next!)
#.None
@@ -150,14 +150,14 @@
#/////synthesis.Pop
(///////phase\in ..pop!)
- (#/////synthesis.Bind register)
+ {#/////synthesis.Bind register}
(///////phase\in (_.setq (..register register) ..peek))
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur [$output @done @fail thenP])
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur [$output @done @fail elseP])
#.None
@@ -171,7 +171,7 @@
then!))))
(^template [<tag> <format> <=>]
- [(<tag> item)
+ [{<tag> item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(do !
@@ -179,7 +179,7 @@
(in [(<=> [(|> match <format>)
..peek])
then!])))
- (#.Item item))]
+ {#.Item item})]
(in (list\mix (function (_ [when then] else)
(_.if when then else))
(_.go @fail)
@@ -195,7 +195,7 @@
(^ (<simple> idx nextP))
(|> nextP
[$output @done @fail] recur
- (\ ///////phase.monad each (|>> #.Some (<choice> @fail true idx))))])
+ (\ ///////phase.monad each (|>> {#.Some} (<choice> @fail true idx))))])
([/////synthesis.side/left /////synthesis.simple_left_side ..left_choice]
[/////synthesis.side/right /////synthesis.simple_right_side ..right_choice])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux
index 0f7c76ed8..1c7fd4877 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/runtime.lux
@@ -109,7 +109,7 @@
(let [runtime (code.local_identifier (///reference.artifact [..module_id runtime_id]))
runtime_name (` (_.var (~ (code.text (%.code runtime)))))]
(case declaration
- (#.Left name)
+ {#.Left name}
(let [g!name (code.local_identifier name)
code_nameC (code.local_identifier (format "@" name))]
(in (list (` (def: .public (~ g!name)
@@ -120,7 +120,7 @@
(_.Expression Any)
(_.defparameter (~ runtime_name) (~ code)))))))
- (#.Right [name inputs])
+ {#.Right [name inputs]}
(let [g!name (code.local_identifier name)
code_nameC (code.local_identifier (format "@" name))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/structure.lux
index eb78e6402..2a5fa7c1c 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/common_lisp/structure.lux
@@ -20,7 +20,7 @@
#.End
(///////phase\in (//primitive.text /////synthesis.unit))
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(expression archive singletonS)
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js.lux
index e6aa9cdce..65b06ce16 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js.lux
@@ -49,7 +49,7 @@
(^ (synthesis.tuple members))
(/structure.tuple expression archive members)
- (#synthesis.Reference value)
+ {#synthesis.Reference value}
(//reference.reference /reference.system archive value)
(^ (synthesis.branch/case case))
@@ -76,7 +76,7 @@
(^ (synthesis.function/apply application))
(/function.apply expression archive application)
- (#synthesis.Extension extension)
+ {#synthesis.Extension extension}
(///extension.apply archive expression extension)))
(def: .public generate
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/case.lux
index 5f634c533..8f98d44ab 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/case.lux
@@ -171,7 +171,7 @@
[/////synthesis.simple_right_side ..right_choice])
(^ (/////synthesis.member/left 0))
- (///////phase\in (#.Some (push_cursor! (_.at (_.i32 +0) ..peek_cursor))))
+ (///////phase\in {#.Some (push_cursor! (_.at (_.i32 +0) ..peek_cursor))})
... Extra optimization
(^ (/////synthesis.path/seq
@@ -179,9 +179,9 @@
(/////synthesis.!bind_top register thenP)))
(do ///////phase.monad
[then! (recur thenP)]
- (in (#.Some ($_ _.then
+ (in {#.Some ($_ _.then
(_.define (..register register) (_.at (_.i32 +0) ..peek_cursor))
- then!))))
+ then!)}))
... Extra optimization
(^template [<pm> <getter>]
@@ -190,26 +190,26 @@
(/////synthesis.!bind_top register thenP)))
(do ///////phase.monad
[then! (recur thenP)]
- (in (#.Some ($_ _.then
+ (in {#.Some ($_ _.then
(_.define (..register register) (<getter> (_.i32 (.int lefts)) ..peek_cursor))
- then!))))])
+ then!)}))])
([/////synthesis.member/left //runtime.tuple//left]
[/////synthesis.member/right //runtime.tuple//right])
(^ (/////synthesis.!bind_top register thenP))
(do ///////phase.monad
[then! (recur thenP)]
- (in (#.Some ($_ _.then
+ (in {#.Some ($_ _.then
(_.define (..register register) ..peek_and_pop_cursor)
- then!))))
+ then!)}))
(^ (/////synthesis.!multi_pop nextP))
(.let [[extra_pops nextP'] (////synthesis/case.count_pops nextP)]
(do ///////phase.monad
[next! (recur nextP')]
- (in (#.Some ($_ _.then
+ (in {#.Some ($_ _.then
(multi_pop_cursor! (n.+ 2 extra_pops))
- next!)))))
+ next!)})))
_
(///////phase\in #.None)))
@@ -221,25 +221,25 @@
(do ///////phase.monad
[outcome (optimized_pattern_matching recur pathP)]
(.case outcome
- (#.Some outcome)
+ {#.Some outcome}
(in outcome)
#.None
(.case pathP
- (#/////synthesis.Then bodyS)
+ {#/////synthesis.Then bodyS}
(statement expression archive bodyS)
#/////synthesis.Pop
(///////phase\in pop_cursor!)
- (#/////synthesis.Bind register)
+ {#/////synthesis.Bind register}
(///////phase\in (_.define (..register register) ..peek_cursor))
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur thenP)
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur elseP)
#.None
@@ -252,7 +252,7 @@
else!
then!))))
- (#/////synthesis.I64_Fork item)
+ {#/////synthesis.I64_Fork item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(do !
@@ -260,7 +260,7 @@
(in [(//runtime.i64//= (//primitive.i64 (.int match))
..peek_cursor)
then!])))
- (#.Item item))]
+ {#.Item item})]
(in (_.cond clauses ..fail_pm!)))
(^template [<tag> <format>]
@@ -268,10 +268,10 @@
(do [! ///////phase.monad]
[cases (monad.each ! (function (_ [match then])
(\ ! each (|>> [(list (<format> match))]) (recur then)))
- (#.Item item))]
+ {#.Item item})]
(in (_.switch ..peek_cursor
cases
- (#.Some ..fail_pm!))))])
+ {#.Some ..fail_pm!})))])
([#/////synthesis.F64_Fork //primitive.f64]
[#/////synthesis.Text_Fork //primitive.text])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux
index 58bf53a29..f2be9fda5 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux
@@ -104,7 +104,7 @@
(macro.with_identifiers [g!_ runtime]
(let [runtime_name (` (_.var (~ (code.text (%.code runtime)))))]
(case declaration
- (#.Left name)
+ {#.Left name}
(let [g!name (code.local_identifier name)]
(in (list (` (def: .public (~ g!name)
Var
@@ -116,7 +116,7 @@
(function ((~ g!_) (~ g!name))
(~ code))))))))
- (#.Right [name inputs])
+ {#.Right [name inputs]}
(let [g!name (code.local_identifier name)
inputsC (list\each code.local_identifier inputs)
inputs_typesC (list\each (function.constant (` _.Expression)) inputs)]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/structure.lux
index c4284d345..88072200f 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/structure.lux
@@ -20,7 +20,7 @@
#.End
(///////phase\in //runtime.unit)
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(generate archive singletonS)
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm.lux
index c2a125d4a..6a1a607cb 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm.lux
@@ -36,12 +36,12 @@
(^ (synthesis.tuple members))
(/structure.tuple generate archive members)
- (#synthesis.Reference reference)
+ {#synthesis.Reference reference}
(case reference
- (#reference.Variable variable)
+ {#reference.Variable variable}
(/reference.variable archive variable)
- (#reference.Constant constant)
+ {#reference.Constant constant}
(/reference.constant archive constant))
(^ (synthesis.branch/case [valueS pathS]))
@@ -68,6 +68,6 @@
(^ (synthesis.function/apply application))
(/function.apply generate archive application)
- (#synthesis.Extension extension)
+ {#synthesis.Extension extension}
(///extension.apply archive generate extension)
))
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 075e8d68a..2da725141 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
@@ -95,12 +95,12 @@
#synthesis.Pop
(operation\in ..pop)
- (#synthesis.Bind register)
+ {#synthesis.Bind register}
(operation\in ($_ _.composite
..peek
(_.astore register)))
- (#synthesis.Then bodyS)
+ {#synthesis.Then bodyS}
(do phase.monad
[bodyG (phase archive bodyS)]
(in ($_ _.composite
@@ -171,7 +171,7 @@
([synthesis.member/left //runtime.left_projection]
[synthesis.member/right //runtime.right_projection])
- (#synthesis.Alt leftP rightP)
+ {#synthesis.Alt leftP rightP}
(do phase.monad
[@alt_else //runtime.forge_label
left! (path' (++ stack_depth) @alt_else @end phase archive leftP)
@@ -183,7 +183,7 @@
_.pop
right!)))
- (#synthesis.Seq leftP rightP)
+ {#synthesis.Seq leftP rightP}
(do phase.monad
[left! (path' stack_depth @else @end phase archive leftP)
right! (path' stack_depth @else @end phase archive rightP)]
@@ -243,10 +243,10 @@
[recordG (phase archive recordS)]
(in (list\mix (function (_ step so_far)
(.let [next (.case step
- (#.Left lefts)
+ {#.Left lefts}
(..left_projection lefts)
- (#.Right lefts)
+ {#.Right lefts}
(..right_projection lefts))]
(_.composite so_far next)))
recordG
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/debug.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/debug.lux
index d1785ac0a..b0833504c 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/debug.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/debug.lux
@@ -24,8 +24,8 @@
(file.get_file io.monad file.default file_path))]
(\ file over_write bytecode))]
(in (case outcome
- (#try.Success definition)
+ {#try.Success definition}
file_path
- (#try.Failure error)
+ {#try.Failure error}
error)))))
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 a16c047e7..994a9f33f 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
@@ -85,7 +85,7 @@
(method.method //.modifier ////runtime.apply::name
(////runtime.apply::type apply_arity)
(list)
- (#.Some (case num_partials
+ {#.Some (case num_partials
0 ($_ _.composite
////reference.this
(..inputs ..this_offset apply_arity)
@@ -97,7 +97,7 @@
@labelsT (|> _.new_label
(list.repeated (-- num_partials))
(monad.all _.monad))
- .let [cases (|> (list\composite (#.Item [@labelsH @labelsT])
+ .let [cases (|> (list\composite {#.Item [@labelsH @labelsT]}
(list @default))
list.enumeration
(list\each (function (_ [stage @case])
@@ -132,7 +132,7 @@
(apply (n.+ ..this_offset arity_inputs) additional_inputs)
_.areturn))
- ... (i.< over_extent (.int stage))
+... (i.< over_extent (.int stage))
(let [current_environment (|> (list.indices (list.size environment))
(list\each (///foreign.get class))
(monad.all _.monad))
@@ -154,4 +154,4 @@
($_ _.composite
///partial/count.value
(_.tableswitch (try.trusted (signed.s4 +0)) @default [@labelsH @labelsT])
- cases)))))))
+ 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 ae02754ae..723ff6ce5 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,11 +31,11 @@
(method.method //.modifier name
(..type arity)
(list)
- (#.Some ($_ _.composite
+ {#.Some ($_ _.composite
(_.set_label @begin)
body
_.areturn
- ))))
+ )}))
(def: .public method
(-> Arity Label (Bytecode Any) (Resource Method))
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 e39e582db..91df54eca 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
@@ -94,9 +94,9 @@
(method.method //.modifier ..name
(..type environment arity)
(list)
- (#.Some ($_ _.composite
+ {#.Some ($_ _.composite
////reference.this
(..super environment_size arity)
(store_all environment_size (///foreign.put class) offset_foreign)
(store_all (-- arity) (///partial.put class) offset_partial)
- _.return)))))
+ _.return)})))
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 0e8365945..79926e5b8 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
@@ -69,7 +69,7 @@
(method.method //.modifier //init.name
(//init.type environment arity)
(list)
- (#.Some ($_ _.composite
+ {#.Some ($_ _.composite
////reference.this
(//init.super environment_size arity)
(monad.each _.monad (function (_ register)
@@ -78,4 +78,4 @@
(monad.each _.monad (function (_ register)
(///partial.put class register (_.aload (after_arity register))))
(list.indices (n.- ///arity.minimum arity)))
- _.areturn)))))
+ _.areturn)})))
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 f406c2879..b5bdb1e1d 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,8 +43,8 @@
(method.method //.modifier ..name
(..type class)
(list)
- (#.Some ($_ _.composite
+ {#.Some ($_ _.composite
(if (arity.multiary? arity)
(//new.instance' (..current_environment class environment) class environment arity)
////reference.this)
- _.areturn))))
+ _.areturn)}))
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 6e5030da6..0ffbbceb3 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
@@ -81,20 +81,20 @@
(def: (class_value class_name class)
(-> Text (java/lang/Class java/lang/Object) (Try Any))
(case (java/lang/Class::getField ..value::field class)
- (#try.Success field)
+ {#try.Success field}
(case (java/lang/reflect/Field::get #.None field)
- (#try.Success ?value)
+ {#try.Success ?value}
(case ?value
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(exception.except ..invalid_value [class_name]))
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..cannot_load [class_name error]))
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..invalid_field [class_name ..value::field error])))
(def: class_path_separator
@@ -110,11 +110,11 @@
(list (field.field ..value::modifier ..value::field ..value::type (row.row)))
(list (method.method ..init::modifier "<clinit>" ..init::type
(list)
- (#.Some
+ {#.Some
($_ _.composite
valueG
(_.putstatic (type.class bytecode_name (list)) ..value::field ..value::type)
- _.return))))
+ _.return)}))
(row.row))]
(io.run! (do [! (try.with io.monad)]
[bytecode (\ ! each (format.result class.writer)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/primitive.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/primitive.lux
index 3edc41c03..9ed5eb48e 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/primitive.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/primitive.lux
@@ -51,21 +51,21 @@
value
(case (signed.s1 value)
- (#try.Success value)
+ {#try.Success value}
(do _.monad
[_ (_.bipush value)
_ _.i2l]
..wrap_i64)
- (#try.Failure _)
+ {#try.Failure _}
(case (signed.s2 value)
- (#try.Success value)
+ {#try.Success value}
(do _.monad
[_ (_.sipush value)
_ _.i2l]
..wrap_i64)
- (#try.Failure _)
+ {#try.Failure _}
(do _.monad
[_ (_.long value)]
..wrap_i64)))))
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 8ba5655a1..4074cf6cc 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
@@ -132,12 +132,12 @@
(let [super_class (|> ..^Object type.reflection reflection.reflection name.internal)
main (method.method ..main::modifier "main" ..main::type
(list)
- (#.Some ($_ _.composite
+ {#.Some ($_ _.composite
program
..input_list
..feed_inputs
..run_io
- _.return)))]
+ _.return)})]
[..class
(<| (format.result class.writer)
try.trusted
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 931f8fd72..778b23005 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
@@ -53,10 +53,10 @@
(def: .public (variable archive variable)
(-> Archive Variable (Operation (Bytecode Any)))
(case variable
- (#variable.Local variable)
+ {#variable.Local variable}
(operation\in (_.aload variable))
- (#variable.Foreign variable)
+ {#variable.Foreign variable}
(..foreign archive variable)))
(def: .public (constant archive name)
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 ad6166d3f..c3c8f518c 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
@@ -151,12 +151,12 @@
(method.method ..modifier ..variant::name
..variant::type
(list)
- (#.Some ($_ _.composite
- new_variant ... A[3]
- (..set! ..variant_tag $tag) ... A[3]
+ {#.Some ($_ _.composite
+ new_variant ... A[3]
+ (..set! ..variant_tag $tag) ... A[3]
(..set! ..variant_last? $last?) ... A[3]
(..set! ..variant_value $value) ... A[3]
- _.areturn)))))
+ _.areturn)})))
(def: .public left_flag _.aconst_null)
(def: .public right_flag ..unit)
@@ -213,13 +213,13 @@
(method.method ..modifier ..decode_frac::name
..decode_frac::type
(list)
- (#.Some
+ {#.Some
(..risky
($_ _.composite
_.aload_0
(_.invokestatic //type.frac "parseDouble" (type.method [(list) (list //type.text) type.double (list)]))
(//value.wrap type.double)
- )))))
+ ))}))
(def: .public log!
(Bytecode Any)
@@ -250,10 +250,10 @@
(method.method ..modifier name
..failure::type
(list)
- (#.Some
+ {#.Some
($_ _.composite
(..illegal_state_exception message)
- _.athrow))))
+ _.athrow)}))
(def: pm_failure::name "pm_failure")
(def: .public pm_failure (..procedure ..pm_failure::name ..failure::type))
@@ -272,7 +272,7 @@
(method.method ..modifier ..push::name
..push::type
(list)
- (#.Some
+ {#.Some
(let [new_stack_frame! ($_ _.composite
_.iconst_2
(_.anewarray //type.value))
@@ -282,7 +282,7 @@
new_stack_frame!
(..set! ..stack_head $head)
(..set! ..stack_tail $tail)
- _.areturn)))))
+ _.areturn))}))
(def: case::name "case")
(def: case::type (type.method [(list) (list //type.variant //type.tag //type.flag) //type.value (list)]))
@@ -291,7 +291,7 @@
(def: case::method
(method.method ..modifier ..case::name ..case::type
(list)
- (#.Some
+ {#.Some
(do _.monad
[@loop _.new_label
@perfect_match! _.new_label
@@ -320,7 +320,7 @@
($_ _.composite
... tag, sumT
update_$variant ... tag, sumT
- update_$tag ... sub_tag
+ update_$tag ... sub_tag
(_.goto @loop_start))))
super_nested_tag ($_ _.composite
@@ -340,15 +340,15 @@
_.dup2 (_.if_icmpeq @tags_match!)
_.dup2 (_.if_icmpgt @maybe_nested)
$last? (_.ifnull @mismatch!) ... tag, sumT
- super_nested ... super_variant
+ super_nested ... super_variant
_.areturn
(_.set_label @tags_match!) ... tag, sumT
- $last? ... tag, sumT, wants_last?
+ $last? ... tag, sumT, wants_last?
$variant ::last? ... tag, sumT, wants_last?, is_last?
(_.if_acmpeq @perfect_match!) ... tag, sumT
- (_.set_label @maybe_nested) ... tag, sumT
- $variant ::last? ... tag, sumT, last?
- (_.ifnull @mismatch!) ... tag, sumT
+ (_.set_label @maybe_nested) ... tag, sumT
+ $variant ::last? ... tag, sumT, last?
+ (_.ifnull @mismatch!) ... tag, sumT
(recur @loop)
(_.set_label @perfect_match!) ... tag, sumT
... _.pop2
@@ -358,7 +358,7 @@
... _.pop2
not_found
_.areturn
- )))))
+ ))}))
(def: projection_type (type.method [(list) (list //type.tuple //type.offset) //type.value (list)]))
@@ -395,7 +395,7 @@
left_projection::method
(method.method ..modifier ..left_projection::name ..projection_type
(list)
- (#.Some
+ {#.Some
(do _.monad
[@loop _.new_label
@recursive _.new_label
@@ -408,12 +408,12 @@
_.areturn
(_.set_label @recursive)
... Recursive
- (recur @loop)))))
+ (recur @loop)))})
right_projection::method
(method.method ..modifier ..right_projection::name ..projection_type
(list)
- (#.Some
+ {#.Some
(do _.monad
[@loop _.new_label
@not_tail _.new_label
@@ -443,7 +443,7 @@
(recur @loop)
(_.set_label @slice)
super_nested
- _.areturn))))]
+ _.areturn))})]
[left_projection::method
right_projection::method]))
@@ -466,7 +466,7 @@
(def: try::method
(method.method ..modifier ..try::name ..try::type
(list)
- (#.Some
+ {#.Some
(do _.monad
[@try _.new_label
@handler _.new_label
@@ -501,7 +501,7 @@
(_.invokevirtual //type.error "printStackTrace" (type.method [(list) (list ^PrintWriter) type.void (list)])) ... W
(_.invokevirtual ^StringWriter "toString" (type.method [(list) (list) //type.text (list)])) ... S
..left_injection _.areturn
- )))))
+ ))}))
(def: reflection
(All (_ category)
@@ -549,7 +549,7 @@
(list\each (function (_ arity)
(method.method method.public ..apply::name (..apply::type arity)
(list)
- (#.Some
+ {#.Some
(let [previous_inputs (|> arity
list.indices
(monad.each _.monad _.aload))]
@@ -559,14 +559,14 @@
(_.checkcast //function.class)
(_.aload arity)
(_.invokevirtual //function.class ..apply::name (..apply::type //function/arity.minimum))
- _.areturn))))))
+ _.areturn))})))
(list& (method.method (modifier\composite method.public method.abstract)
..apply::name (..apply::type //function/arity.minimum)
(list)
#.None)))
<init>::method (method.method method.public "<init>" //function.init
(list)
- (#.Some
+ {#.Some
(let [$partials _.iload_1]
($_ _.composite
..this
@@ -574,7 +574,7 @@
..this
$partials
(_.putfield //function.class //function/count.field //function/count.type)
- _.return))))
+ _.return))})
modifier (: (Modifier Class)
($_ modifier\composite
class.public
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/structure.lux
index c3bb19132..6b1a09aea 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/jvm/structure.lux
@@ -32,7 +32,7 @@
#.End
(\ phase.monad in //runtime.unit)
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(generate archive singletonS)
_
@@ -64,15 +64,15 @@
4 _.iconst_4
5 _.iconst_5
tag (case (signed.s1 (.int tag))
- (#try.Success value)
+ {#try.Success value}
(_.bipush value)
- (#try.Failure _)
+ {#try.Failure _}
(case (signed.s2 (.int tag))
- (#try.Success value)
+ {#try.Success value}
(_.sipush value)
- (#try.Failure _)
+ {#try.Failure _}
(_.int (.i64 tag))))))
(def: .public (flag right?)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua.lux
index 7cc28fb4d..66472f114 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua.lux
@@ -49,7 +49,7 @@
(^ (synthesis.tuple members))
(/structure.tuple expression archive members)
- (#synthesis.Reference value)
+ {#synthesis.Reference value}
(//reference.reference /reference.system archive value)
(^ (synthesis.branch/case case))
@@ -76,7 +76,7 @@
(^ (synthesis.function/apply application))
(/function.apply expression archive application)
- (#synthesis.Extension extension)
+ {#synthesis.Extension extension}
(///extension.apply archive expression extension)))
(def: .public generate
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/case.lux
index d21406763..7188a282c 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/case.lux
@@ -163,20 +163,20 @@
(-> Phase! Phase Archive Path (Operation Statement))
(function (recur pathP)
(.case pathP
- (#/////synthesis.Then bodyS)
+ {#/////synthesis.Then bodyS}
(statement expression archive bodyS)
#/////synthesis.Pop
(///////phase\in ..pop!)
- (#/////synthesis.Bind register)
+ {#/////synthesis.Bind register}
(///////phase\in (_.local/1 (..register register) ..peek))
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur thenP)
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur elseP)
#.None
@@ -190,7 +190,7 @@
then!))))
(^template [<tag> <format>]
- [(<tag> item)
+ [{<tag> item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(do !
@@ -198,7 +198,7 @@
(in [(_.= (|> match <format>)
..peek)
then!])))
- (#.Item item))]
+ {#.Item item})]
(in (_.cond clauses ..fail!)))])
([#/////synthesis.I64_Fork (<| _.int .int)]
[#/////synthesis.F64_Fork _.float]
@@ -254,10 +254,10 @@
set.list
(list\each (function (_ variable)
(.case variable
- (#///////variable.Local register)
+ {#///////variable.Local register}
(..register register)
- (#///////variable.Foreign register)
+ {#///////variable.Foreign register}
(..capture register))))))
(def: .public (case! statement expression archive [valueS pathP])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux
index 9ed2c2624..a6e448433 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux
@@ -127,7 +127,7 @@
(let [runtime (code.local_identifier (///reference.artifact [..module_id runtime_id]))
runtime_name (` (_.var (~ (code.text (%.code runtime)))))]
(case declaration
- (#.Left name)
+ {#.Left name}
(macro.with_identifiers [g!_]
(let [g!name (code.local_identifier name)]
(in (list (` (def: .public (~ g!name)
@@ -140,7 +140,7 @@
(function ((~ g!_) (~ g!name))
(_.set (~ g!name) (~ code))))))))))
- (#.Right [name inputs])
+ {#.Right [name inputs]}
(macro.with_identifiers [g!_]
(let [g!name (code.local_identifier name)
inputsC (list\each code.local_identifier inputs)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux
index 10be9ba18..29a909d0e 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux
@@ -20,7 +20,7 @@
#.End
(///////phase\in (//primitive.text /////synthesis.unit))
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(generate archive singletonS)
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php.lux
index fae8d8d61..9c16f64cb 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php.lux
@@ -72,7 +72,7 @@
[////synthesis.f64 /primitive.f64]
[////synthesis.text /primitive.text])
- (#////synthesis.Reference value)
+ {#////synthesis.Reference value}
(//reference.reference /reference.system archive value)
(^template [<tag> <generator>]
@@ -95,7 +95,7 @@
(^ (////synthesis.loop/recur _))
(//////phase.except ..cannot_recur_as_an_expression [])
- (#////synthesis.Extension extension)
+ {#////synthesis.Extension extension}
(///extension.apply archive expression extension)))
(def: .public generate
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/case.lux
index 295d24457..a5532afc3 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/case.lux
@@ -163,20 +163,20 @@
(Generator! Path)
(function (recur pathP)
(.case pathP
- (#/////synthesis.Then bodyS)
+ {#/////synthesis.Then bodyS}
(statement expression archive bodyS)
#/////synthesis.Pop
(///////phase\in ..pop!)
- (#/////synthesis.Bind register)
+ {#/////synthesis.Bind register}
(///////phase\in (_.set! (..register register) ..peek))
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur thenP)
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur elseP)
#.None
@@ -190,7 +190,7 @@
then!))))
(^template [<tag> <format>]
- [(<tag> item)
+ [{<tag> item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(do !
@@ -198,7 +198,7 @@
(in [(_.=== (|> match <format>)
..peek)
then!])))
- (#.Item item))]
+ {#.Item item})]
(in (_.cond clauses ..fail!)))])
([#/////synthesis.I64_Fork //primitive.i64]
[#/////synthesis.F64_Fork //primitive.f64]
@@ -264,10 +264,10 @@
set.list
(list\each (function (_ variable)
(.case variable
- (#///////variable.Local register)
+ {#///////variable.Local register}
(..register register)
- (#///////variable.Foreign register)
+ {#///////variable.Foreign register}
(..capture register))))))
(def: .public (case! statement expression archive [valueS pathP])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux
index 0fe181b78..d8a418657 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/runtime.lux
@@ -95,7 +95,7 @@
(let [runtime (code.local_identifier (///reference.artifact [..module_id runtime_id]))
runtime_name (` (_.constant (~ (code.text (%.code runtime)))))]
(case declaration
- (#.Left name)
+ {#.Left name}
(macro.with_identifiers [g!_]
(let [g!name (code.local_identifier name)]
(in (list (` (def: .public (~ g!name)
@@ -108,7 +108,7 @@
(function ((~ g!_) (~ g!name))
(_.define (~ g!name) (~ code))))))))))
- (#.Right [name inputs])
+ {#.Right [name inputs]}
(macro.with_identifiers [g!_]
(let [g!name (code.local_identifier name)
inputsC (list\each code.local_identifier inputs)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/structure.lux
index 69f687713..cb499a364 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/structure.lux
@@ -23,7 +23,7 @@
#.End
(///////phase\in (//primitive.text /////synthesis.unit))
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(expression archive singletonS)
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python.lux
index 86433d927..b691c09d6 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python.lux
@@ -49,7 +49,7 @@
(^ (////synthesis.tuple members))
(/structure.tuple expression archive members)
- (#////synthesis.Reference value)
+ {#////synthesis.Reference value}
(//reference.reference /reference.system archive value)
(^ (////synthesis.branch/case case))
@@ -76,7 +76,7 @@
(^ (////synthesis.function/apply application))
(/function.apply expression archive application)
- (#////synthesis.Extension extension)
+ {#////synthesis.Extension extension}
(///extension.apply archive expression extension)))
(def: .public generate
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux
index c4f914d01..6cdabddd0 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux
@@ -163,7 +163,7 @@
($_ _.then
(_.set (list g!once) (_.bool false))
body!)
- (#.Some _.continue)))))
+ {#.Some _.continue}))))
(def: (alternation in_closure? g!once pre! post!)
(-> Bit SVar (Statement Any) (Statement Any) (Statement Any))
@@ -179,34 +179,34 @@
(-> (-> Path (Operation (Statement Any)))
(-> Path (Operation (Maybe (Statement Any)))))
(.case pathP
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur thenP)
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur elseP)
#.None
(in ..fail_pm!))]
- (in (#.Some (.if when
+ (in {#.Some (.if when
(_.if ..peek
then!
else!)
(_.if ..peek
else!
- then!)))))
+ then!))}))
(^template [<tag> <format>]
- [(<tag> item)
+ [{<tag> item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(\ ! each
(|>> [(_.= (|> match <format>)
..peek)])
(recur then)))
- (#.Item item))]
- (in (#.Some (_.cond clauses
- ..fail_pm!))))])
+ {#.Item item})]
+ (in {#.Some (_.cond clauses
+ ..fail_pm!)}))])
([#/////synthesis.I64_Fork (<| //primitive.i64 .int)]
[#/////synthesis.F64_Fork (<| //primitive.f64)]
[#/////synthesis.Text_Fork (<| //primitive.text)])
@@ -220,18 +220,18 @@
(do [! ///////phase.monad]
[?output (primitive_pattern_matching recur pathP)]
(.case ?output
- (#.Some output)
+ {#.Some output}
(in output)
#.None
(.case pathP
- (#/////synthesis.Then bodyS)
+ {#/////synthesis.Then bodyS}
(statement expression archive bodyS)
#/////synthesis.Pop
(///////phase\in ..pop!)
- (#/////synthesis.Bind register)
+ {#/////synthesis.Bind register}
(///////phase\in (_.set (list (..register register)) ..peek))
(^template [<complex> <simple> <choice>]
@@ -302,10 +302,10 @@
set.list
(list\each (function (_ variable)
(.case variable
- (#///////variable.Local register)
+ {#///////variable.Local register}
(..register register)
- (#///////variable.Foreign register)
+ {#///////variable.Foreign register}
(..capture register))))))
(def: .public (case! in_closure? statement expression archive [valueS pathP])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux
index 16283e2e9..c2055e2cc 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux
@@ -126,7 +126,7 @@
(<>.some <code>.local_identifier))))
code <code>.any])
(case declaration
- (#.Left name)
+ {#.Left name}
(macro.with_identifiers [g!_]
(let [nameC (code.local_identifier name)
code_nameC (code.local_identifier (format "@" name))
@@ -138,7 +138,7 @@
(function ((~ g!_) (~ g!_))
(_.set (list (~ g!_)) (~ code))))))))))
- (#.Right [name inputs])
+ {#.Right [name inputs]}
(macro.with_identifiers [g!_]
(let [nameC (code.local_identifier name)
code_nameC (code.local_identifier (format "@" name))
@@ -174,7 +174,7 @@
(runtime: (lux::exec code globals)
($_ _.then
- (_.exec code (#.Some globals))
+ (_.exec code {#.Some globals})
(_.return ..unit)))
(def: runtime::lux
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/structure.lux
index 3d0903731..5950a81ff 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/structure.lux
@@ -20,7 +20,7 @@
#.End
(///////phase\in (//primitive.text /////synthesis.unit))
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(generate archive singletonS)
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r.lux
index 4a6d95239..4e3e67097 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r.lux
@@ -36,7 +36,7 @@
[////synthesis.f64 /primitive.f64]
[////synthesis.text /primitive.text])
- (#////synthesis.Reference value)
+ {#////synthesis.Reference value}
(//reference.reference /reference.system archive value)
(^template [<tag> <generator>]
@@ -54,6 +54,6 @@
[////synthesis.loop/recur /loop.recur]
[////synthesis.function/abstraction /function.function])
- (#////synthesis.Extension extension)
+ {#////synthesis.Extension extension}
(///extension.apply archive generate extension)
))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/case.lux
index 83859e8be..15e9c75e5 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/case.lux
@@ -135,20 +135,20 @@
(Generator Path)
(function (recur pathP)
(.case pathP
- (#/////synthesis.Then bodyS)
+ {#/////synthesis.Then bodyS}
(expression archive bodyS)
#/////synthesis.Pop
(///////phase\in ..pop_cursor!)
- (#/////synthesis.Bind register)
+ {#/////synthesis.Bind register}
(///////phase\in (_.set! (..register register) ..peek))
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur thenP)
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur elseP)
#.None
@@ -162,7 +162,7 @@
then!))))
(^template [<tag> <format> <=>]
- [(<tag> item)
+ [{<tag> item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(do !
@@ -170,7 +170,7 @@
(in [(<=> (|> match <format>)
..peek)
then!])))
- (#.Item item))]
+ {#.Item item})]
(in (list\mix (function (_ [when then] else)
(_.if when then else))
..fail!
@@ -214,9 +214,9 @@
..save_cursor!
leftO)
#.None
- (#.Some (..catch ($_ _.then
+ {#.Some (..catch ($_ _.then
..restore_cursor!
- rightO)))
+ rightO))}
#.None)))
)))
@@ -226,7 +226,7 @@
[pattern_matching! (pattern_matching' expression archive pathP)]
(in (_.try pattern_matching!
#.None
- (#.Some (..catch (_.stop (_.string "Invalid expression for pattern-matching."))))
+ {#.Some (..catch (_.stop (_.string "Invalid expression for pattern-matching.")))}
#.None))))
(def: .public (case expression archive [valueS pathP])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/common.lux
index d240e786b..9d2c878cf 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/common.lux
@@ -126,10 +126,10 @@
(function (_ proc_name)
(function (_ translate inputsS)
(case (s.result inputsS ($_ p.and s.nat (s.tuple (p.many s.any)) s.any))
- (#e.Success [offset initsS+ bodyS])
+ {#e.Success [offset initsS+ bodyS]}
(loopT.translate_loop translate offset initsS+ bodyS)
- (#e.Error error)
+ {#e.Error error}
(&.throw Wrong_Syntax (wrong_syntax proc_name inputsS)))
)))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/host.lux
index ea6f59abd..4975c0aec 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/procedure/host.lux
@@ -25,7 +25,7 @@
... (def: (lua//global proc translate inputs)
... (-> Text @.Proc)
... (case inputs
-... (^ (list [_ (#.Text name)]))
+... (^ (list [_ {#.Text name}]))
... (do macro.Monad<Meta>
... []
... (in name))
@@ -56,7 +56,7 @@
... (def: (table//call proc translate inputs)
... (-> Text @.Proc)
... (case inputs
-... (^ (list& tableS [_ (#.Text field)] argsS+))
+... (^ (list& tableS [_ {#.Text field}] argsS+))
... (do [@ macro.Monad<Meta>]
... [tableO (translate tableS)
... argsO+ (monad.each @ translate argsS+)]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux
index e7d794d5e..246a010c9 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/runtime.lux
@@ -98,7 +98,7 @@
(let [runtime (code.local_identifier (///reference.artifact [..module_id runtime_id]))
runtime_name (` (_.var (~ (code.text (%.code runtime)))))]
(case declaration
- (#.Left name)
+ {#.Left name}
(let [g!name (code.local_identifier name)]
(in (list (` (def: .public (~ g!name)
_.SVar
@@ -108,7 +108,7 @@
_.Expression
(_.set! (~ runtime_name) (~ code)))))))
- (#.Right [name inputs])
+ {#.Right [name inputs]}
(let [g!name (code.local_identifier name)
inputsC (list\each code.local_identifier inputs)
inputs_typesC (list\each (function.constant (` _.Expression))
@@ -524,9 +524,9 @@
(_.set! value (_.apply (list ..unit) op))
(..right value))
#.None
- (#.Some (_.function (list error)
+ {#.Some (_.function (list error)
(..left (_.item (_.string "message")
- error))))
+ error)))}
#.None)))
(runtime: (lux::program_args program_args)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/structure.lux
index 4d6562a4f..711366595 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/r/structure.lux
@@ -23,7 +23,7 @@
#.End
(///////phase\in (//primitive.text /////synthesis.unit))
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(expression archive singletonS)
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/reference.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/reference.lux
index 4913559a1..49389b109 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/reference.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/reference.lux
@@ -73,18 +73,18 @@
(All (_ expression)
(-> (System expression) Variable expression))
(case variable
- (#variable.Local register)
+ {#variable.Local register}
(..local system register)
- (#variable.Foreign register)
+ {#variable.Foreign register}
(..foreign system register)))
(def: .public (reference system archive reference)
(All (_ anchor expression directive)
(-> (System expression) Archive Reference (////generation.Operation anchor expression directive expression)))
(case reference
- (#reference.Constant value)
+ {#reference.Constant value}
(..constant system archive value)
- (#reference.Variable value)
+ {#reference.Variable value}
(phase\in (..variable system value))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby.lux
index 9202b75d3..b9202972d 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby.lux
@@ -65,10 +65,10 @@
(^ (////synthesis.loop/recur _))
(//////phase.except ..cannot_recur_as_an_expression [])
- (#////synthesis.Reference value)
+ {#////synthesis.Reference value}
(//reference.reference /reference.system archive value)
- (#////synthesis.Extension extension)
+ {#////synthesis.Extension extension}
(///extension.apply archive expression extension)))
(def: .public generate
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux
index 8d19caff8..1e6cb7058 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux
@@ -188,34 +188,34 @@
(-> (-> Path (Operation Statement))
(-> Path (Operation (Maybe Statement))))
(.case pathP
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur thenP)
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur elseP)
#.None
(in ..fail!))]
- (in (#.Some (.if when
+ (in {#.Some (.if when
(_.if ..peek
then!
else!)
(_.if ..peek
else!
- then!)))))
+ then!))}))
(^template [<tag> <format>]
- [(<tag> item)
+ [{<tag> item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(\ ! each
(|>> [(_.= (|> match <format>)
..peek)])
(recur then)))
- (#.Item item))]
- (in (#.Some (_.cond clauses
- ..fail!))))])
+ {#.Item item})]
+ (in {#.Some (_.cond clauses
+ ..fail!)}))])
([#/////synthesis.I64_Fork (<| //primitive.i64 .int)]
[#/////synthesis.F64_Fork (<| //primitive.f64)]
[#/////synthesis.Text_Fork (<| //primitive.text)])
@@ -229,25 +229,25 @@
(do ///////phase.monad
[?output (primitive_pattern_matching recur pathP)]
(.case ?output
- (#.Some output)
+ {#.Some output}
(in output)
#.None
(.case pathP
- (#/////synthesis.Then bodyS)
+ {#/////synthesis.Then bodyS}
(statement expression archive bodyS)
#/////synthesis.Pop
(///////phase\in ..pop!)
- (#/////synthesis.Bind register)
+ {#/////synthesis.Bind register}
(///////phase\in (_.set (list (..register register)) ..peek))
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur thenP)
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur elseP)
#.None
@@ -261,14 +261,14 @@
then!))))
(^template [<tag> <format>]
- [(<tag> item)
+ [{<tag> item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(\ ! each
(|>> [(_.= (|> match <format>)
..peek)])
(recur then)))
- (#.Item item))]
+ {#.Item item})]
(in (_.cond clauses
..fail!)))])
([#/////synthesis.I64_Fork (<| //primitive.i64 .int)]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
index 108f98020..091d1fd31 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
@@ -84,7 +84,7 @@
initialize_self!
(list.indices arity))
[declaration instatiation] (with_closure closureO+ function_name
- (_.lambda (#.Some @self) (list (_.variadic @curried))
+ (_.lambda {#.Some @self} (list (_.variadic @curried))
($_ _.then
(_.set (list @num_args) (_.the "length" @curried))
(_.cond (list [(|> @num_args (_.= arityO))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux
index c5f424373..643bde0b2 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux
@@ -96,7 +96,7 @@
(let [runtime (code.local_identifier (///reference.artifact [..module_id runtime_id]))
runtime_name (` (_.local (~ (code.text (%.code runtime)))))]
(case declaration
- (#.Left name)
+ {#.Left name}
(macro.with_identifiers [g!_]
(let [g!name (code.local_identifier name)]
(in (list (` (def: .public (~ g!name) LVar (~ runtime_name)))
@@ -106,7 +106,7 @@
(function ((~ g!_) (~ g!name))
(_.set (list (~ g!name)) (~ code))))))))))
- (#.Right [name inputs])
+ {#.Right [name inputs]}
(macro.with_identifiers [g!_]
(let [g!name (code.local_identifier name)
inputsC (list\each code.local_identifier inputs)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux
index a93fba45e..32ec74e4f 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux
@@ -20,7 +20,7 @@
#.End
(///////phase\in (//primitive.text /////synthesis.unit))
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(generate archive singletonS)
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme.lux
index 079ef448c..20108a0cd 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme.lux
@@ -36,7 +36,7 @@
[////synthesis.f64 /primitive.f64]
[////synthesis.text /primitive.text])
- (#////synthesis.Reference value)
+ {#////synthesis.Reference value}
(//reference.reference /reference.system archive value)
(^template [<tag> <generator>]
@@ -54,6 +54,6 @@
[////synthesis.loop/recur /loop.recur]
[////synthesis.function/abstraction /function.function])
- (#////synthesis.Extension extension)
+ {#////synthesis.Extension extension}
(///extension.apply archive generate extension)
))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux
index 16a00e907..bfdb9bf93 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux
@@ -129,20 +129,20 @@
(Generator Path)
(function (recur pathP)
(.case pathP
- (#/////synthesis.Then bodyS)
+ {#/////synthesis.Then bodyS}
(expression archive bodyS)
#/////synthesis.Pop
(///////phase\in pop_cursor!)
- (#/////synthesis.Bind register)
+ {#/////synthesis.Bind register}
(///////phase\in (_.define_constant (..register register) ..peek))
- (#/////synthesis.Bit_Fork when thenP elseP)
+ {#/////synthesis.Bit_Fork when thenP elseP}
(do [! ///////phase.monad]
[then! (recur thenP)
else! (.case elseP
- (#.Some elseP)
+ {#.Some elseP}
(recur elseP)
#.None
@@ -156,7 +156,7 @@
then!))))
(^template [<tag> <format> <=>]
- [(<tag> item)
+ [{<tag> item}
(do [! ///////phase.monad]
[clauses (monad.each ! (function (_ [match then])
(do !
@@ -164,7 +164,7 @@
(in [(<=> (|> match <format>)
..peek)
then!])))
- (#.Item item))]
+ {#.Item item})]
(in (list\mix (function (_ [when then] else)
(_.if when then else))
..fail!
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/function.lux
index d18881c4d..f0d2751f3 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/function.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/function.lux
@@ -76,7 +76,7 @@
@num_args (_.var "num_args")
@self (_.var (///reference.artifact function_name))]]
(with_closure closureO+
- (_.letrec (list [@self (_.lambda [(list) (#.Some @curried)]
+ (_.letrec (list [@self (_.lambda [(list) {#.Some @curried}]
(_.let (list [@num_args (_.length/1 @curried)])
(<| (_.if (|> @num_args (_.=/2 arityO))
(<| (_.let (list [(//case.register 0) @self]))
@@ -94,7 +94,7 @@
(apply_poly arity_args)
(apply_poly output_func_args))))))
... (|> @num_args (_.</2 arityO))
- (_.lambda [(list) (#.Some @missing)]
+ (_.lambda [(list) {#.Some @missing}]
(|> @self
(apply_poly (_.append/2 @curried @missing)))))
))])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux
index 996f552b1..0f8ae8b9a 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/runtime.lux
@@ -80,7 +80,7 @@
(let [runtime (code.local_identifier (///reference.artifact [..module_id runtime_id]))
runtime_name (` (_.var (~ (code.text (%.code runtime)))))]
(case declaration
- (#.Left name)
+ {#.Left name}
(let [g!name (code.local_identifier name)]
(in (list (` (def: .public (~ g!name)
Var
@@ -90,7 +90,7 @@
_.Computation
(_.define_constant (~ runtime_name) (~ code)))))))
- (#.Right [name inputs])
+ {#.Right [name inputs]}
(let [g!name (code.local_identifier name)
inputsC (list\each code.local_identifier inputs)
inputs_typesC (list\each (function.constant (` _.Expression))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/structure.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/structure.lux
index ad071de02..cc84cf77c 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/structure.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/scheme/structure.lux
@@ -23,7 +23,7 @@
#.End
(///////phase\in (//primitive.text /////synthesis.unit))
- (#.Item singletonS #.End)
+ {#.Item singletonS #.End}
(expression archive singletonS)
_
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 5b5403a37..faa6739cb 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
@@ -28,18 +28,18 @@
(-> ///analysis.Primitive /.Primitive)
(case analysis
#///analysis.Unit
- (#/.Text /.unit)
+ {#/.Text /.unit}
(^template [<analysis> <synthesis>]
- [(<analysis> value)
- (<synthesis> value)])
+ [{<analysis> value}
+ {<synthesis> value}])
([#///analysis.Bit #/.Bit]
[#///analysis.Frac #/.F64]
[#///analysis.Text #/.Text])
(^template [<analysis> <synthesis>]
- [(<analysis> value)
- (<synthesis> (.i64 value))])
+ [{<analysis> value}
+ {<synthesis> (.i64 value)}])
([#///analysis.Nat #/.I64]
[#///analysis.Int #/.I64]
[#///analysis.Rev #/.I64])))
@@ -48,48 +48,48 @@
Phase
(function (optimization' analysis)
(case analysis
- (#///analysis.Primitive analysis')
- (phase\in (#/.Primitive (..primitive analysis')))
+ {#///analysis.Primitive analysis'}
+ (phase\in {#/.Primitive (..primitive analysis')})
- (#///analysis.Reference reference)
- (phase\in (#/.Reference reference))
+ {#///analysis.Reference reference}
+ (phase\in {#/.Reference reference})
- (#///analysis.Structure structure)
+ {#///analysis.Structure structure}
(/.with_currying? false
(case structure
- (#///analysis.Variant variant)
+ {#///analysis.Variant variant}
(do phase.monad
[valueS (optimization' (value@ #///analysis.value variant))]
(in (/.variant (with@ #///analysis.value valueS variant))))
- (#///analysis.Tuple tuple)
+ {#///analysis.Tuple tuple}
(|> tuple
(monad.each phase.monad optimization')
(phase\each (|>> /.tuple)))))
- (#///analysis.Case inputA branchesAB+)
+ {#///analysis.Case inputA branchesAB+}
(/.with_currying? false
(/case.synthesize optimization branchesAB+ archive inputA))
(^ (///analysis.no_op value))
(optimization' value)
- (#///analysis.Apply _)
+ {#///analysis.Apply _}
(/.with_currying? false
(/function.apply optimization archive analysis))
- (#///analysis.Function environmentA bodyA)
+ {#///analysis.Function environmentA bodyA}
(/function.abstraction optimization environmentA archive bodyA)
- (#///analysis.Extension name args)
+ {#///analysis.Extension name args}
(/.with_currying? false
(function (_ state)
(|> (//extension.apply archive optimization [name args])
(phase.result' state)
- (case> (#try.Success output)
- (#try.Success output)
+ (case> {#try.Success output}
+ {#try.Success output}
- (#try.Failure _)
+ {#try.Failure _}
(|> args
(monad.each phase.monad optimization')
(phase\each (|>> [name] #/.Extension))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/case.lux
index d42f0da7e..50b89c2e2 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/case.lux
@@ -31,25 +31,25 @@
(def: clean_up
(-> Path Path)
- (|>> (#/.Seq #/.Pop)))
+ (|>> {#/.Seq #/.Pop}))
(def: (path' pattern end? thenC)
(-> Pattern Bit (Operation Path) (Operation Path))
(case pattern
- (#///analysis.Simple simple)
+ {#///analysis.Simple simple}
(case simple
#///analysis.Unit
thenC
- (#///analysis.Bit when)
+ {#///analysis.Bit when}
(///\each (function (_ then)
- (#/.Bit_Fork when then #.None))
+ {#/.Bit_Fork when then #.None})
thenC)
(^template [<from> <to> <conversion>]
- [(<from> test)
+ [{<from> test}
(///\each (function (_ then)
- (<to> [(<conversion> test) then] (list)))
+ {<to> [(<conversion> test) then] (list)})
thenC)])
([#///analysis.Nat #/.I64_Fork .i64]
[#///analysis.Int #/.I64_Fork .i64]
@@ -57,32 +57,32 @@
[#///analysis.Frac #/.F64_Fork |>]
[#///analysis.Text #/.Text_Fork |>]))
- (#///analysis.Bind register)
- (<| (\ ///.monad each (|>> (#/.Seq (#/.Bind register))))
+ {#///analysis.Bind register}
+ (<| (\ ///.monad each (|>> {#/.Seq {#/.Bind register}}))
/.with_new_local
thenC)
- (#///analysis.Complex (#///analysis.Variant [lefts right? value_pattern]))
- (<| (///\each (|>> (#/.Seq (#/.Access (#/.Side (if right?
- (#.Right lefts)
- (#.Left lefts)))))))
+ {#///analysis.Complex {#///analysis.Variant [lefts right? value_pattern]}}
+ (<| (///\each (|>> {#/.Seq {#/.Access {#/.Side (if right?
+ {#.Right lefts}
+ {#.Left lefts})}}}))
(path' value_pattern end?)
(when> [(new> (not end?) [])] [(///\each ..clean_up)])
thenC)
- (#///analysis.Complex (#///analysis.Tuple tuple))
+ {#///analysis.Complex {#///analysis.Tuple tuple}}
(let [tuple::last (-- (list.size tuple))]
(list\mix (function (_ [tuple::lefts tuple::member] nextC)
(.case tuple::member
- (#///analysis.Simple #///analysis.Unit)
+ {#///analysis.Simple #///analysis.Unit}
nextC
_
(let [right? (n.= tuple::last tuple::lefts)
end?' (and end? right?)]
- (<| (///\each (|>> (#/.Seq (#/.Access (#/.Member (if right?
- (#.Right (-- tuple::lefts))
- (#.Left tuple::lefts)))))))
+ (<| (///\each (|>> {#/.Seq {#/.Access {#/.Member (if right?
+ {#.Right (-- tuple::lefts)}
+ {#.Left tuple::lefts})}}}))
(path' tuple::member end?')
(when> [(new> (not end?') [])] [(///\each ..clean_up)])
nextC))))
@@ -104,74 +104,74 @@
#.End
(list [new_test new_then])
- (#.Item old_item)
- (#.Item (weave_branch weave equivalence [new_test new_then] old_item)))]))
+ {#.Item old_item}
+ {#.Item (weave_branch weave equivalence [new_test new_then] old_item)})]))
(def: (weave_fork weave equivalence new_fork old_fork)
(All (_ a) (-> (-> Path Path Path) (Equivalence a) (/.Fork a Path) (/.Fork a Path)
(/.Fork a Path)))
- (list\mix (..weave_branch weave equivalence) old_fork (#.Item new_fork)))
+ (list\mix (..weave_branch weave equivalence) old_fork {#.Item new_fork}))
(def: (weave new old)
(-> Path Path Path)
- (with_expansions [<default> (as_is (#/.Alt old new))]
+ (with_expansions [<default> (as_is {#/.Alt old new})]
(case [new old]
[_
- (#/.Alt old_left old_right)]
- (#/.Alt old_left
- (weave new old_right))
+ {#/.Alt old_left old_right}]
+ {#/.Alt old_left
+ (weave new old_right)}
- [(#/.Seq preN postN)
- (#/.Seq preO postO)]
+ [{#/.Seq preN postN}
+ {#/.Seq preO postO}]
(case (weave preN preO)
- (#/.Alt _)
+ {#/.Alt _}
<default>
woven
- (#/.Seq woven (weave postN postO)))
+ {#/.Seq woven (weave postN postO)})
[#/.Pop #/.Pop]
old
- [(#/.Bit_Fork new_when new_then new_else)
- (#/.Bit_Fork old_when old_then old_else)]
+ [{#/.Bit_Fork new_when new_then new_else}
+ {#/.Bit_Fork old_when old_then old_else}]
(if (bit\= new_when old_when)
- (#/.Bit_Fork old_when
- (weave new_then old_then)
- (case [new_else old_else]
- [#.None #.None]
- #.None
-
- (^or [(#.Some woven_then) #.None]
- [#.None (#.Some woven_then)])
- (#.Some woven_then)
-
- [(#.Some new_else) (#.Some old_else)]
- (#.Some (weave new_else old_else))))
- (#/.Bit_Fork old_when
- (case new_else
- #.None
- old_then
-
- (#.Some new_else)
- (weave new_else old_then))
- (#.Some (case old_else
- #.None
- new_then
-
- (#.Some old_else)
- (weave new_then old_else)))))
+ {#/.Bit_Fork old_when
+ (weave new_then old_then)
+ (case [new_else old_else]
+ [#.None #.None]
+ #.None
+
+ (^or [{#.Some woven_then} #.None]
+ [#.None {#.Some woven_then}])
+ {#.Some woven_then}
+
+ [{#.Some new_else} {#.Some old_else}]
+ {#.Some (weave new_else old_else)})}
+ {#/.Bit_Fork old_when
+ (case new_else
+ #.None
+ old_then
+
+ {#.Some new_else}
+ (weave new_else old_then))
+ {#.Some (case old_else
+ #.None
+ new_then
+
+ {#.Some old_else}
+ (weave new_then old_else))}})
(^template [<tag> <equivalence>]
- [[(<tag> new_fork) (<tag> old_fork)]
- (<tag> (..weave_fork weave <equivalence> new_fork old_fork))])
+ [[{<tag> new_fork} {<tag> old_fork}]
+ {<tag> (..weave_fork weave <equivalence> new_fork old_fork)}])
([#/.I64_Fork i64.equivalence]
[#/.F64_Fork frac.equivalence]
[#/.Text_Fork text.equivalence])
(^template [<access> <side>]
- [[(#/.Access (<access> (<side> newL)))
- (#/.Access (<access> (<side> oldL)))]
+ [[{#/.Access {<access> {<side> newL}}}
+ {#/.Access {<access> {<side> oldL}}}]
(if (n.= newL oldL)
old
<default>)])
@@ -180,7 +180,7 @@
[#/.Member #.Left]
[#/.Member #.Right])
- [(#/.Bind newR) (#/.Bind oldR)]
+ [{#/.Bind newR} {#/.Bind oldR}]
(if (n.= newR oldR)
old
<default>)
@@ -196,23 +196,23 @@
<continue> (as_is (recur (++ lefts)
tail))
<member> (as_is (if (list.empty? tail)
- (#.Right (-- lefts))
- (#.Left lefts)))]
+ {#.Right (-- lefts)}
+ {#.Left lefts}))]
(case patterns
#.End
<failure>
- (#.Item head tail)
+ {#.Item head tail}
(case head
- (#///analysis.Simple #///analysis.Unit)
+ {#///analysis.Simple #///analysis.Unit}
<continue>
- (#///analysis.Bind register)
+ {#///analysis.Bind register}
(if (n.= @selection register)
(list <member>)
<continue>)
- (#///analysis.Complex (#///analysis.Tuple sub_patterns))
+ {#///analysis.Complex {#///analysis.Tuple sub_patterns}}
(case (get sub_patterns @selection)
#.End
<continue>
@@ -231,8 +231,8 @@
(in (/.branch/case [input (list\mix weave headSP tailSP+)]))))
(template: (!masking <variable> <output>)
- [[[(#///analysis.Bind <variable>)
- (#///analysis.Reference (///reference.local <output>))]
+ [[[{#///analysis.Bind <variable>}
+ {#///analysis.Reference (///reference.local <output>)}]
(list)]])
(def: .public (synthesize_let synthesize archive input @variable body)
@@ -246,7 +246,7 @@
(-> Phase Archive Synthesis Register Register (Operation Synthesis))
(if (n.= @variable @output)
(///\in input)
- (..synthesize_let synthesize archive input @variable (#///analysis.Reference (///reference.local @output)))))
+ (..synthesize_let synthesize archive input @variable {#///analysis.Reference (///reference.local @output)})))
(def: .public (synthesize_if synthesize archive test then else)
(-> Phase Archive Synthesis Analysis Analysis (Operation Synthesis))
@@ -257,7 +257,7 @@
(template: (!get <patterns> <output>)
[[[(///analysis.pattern/tuple <patterns>)
- (#///analysis.Reference (///reference.local <output>))]
+ {#///analysis.Reference (///reference.local <output>)}]
(.list)]])
(def: .public (synthesize_get synthesize archive input patterns @member)
@@ -282,7 +282,7 @@
(^ (!masking @variable @output))
(..synthesize_masking synthesize^ archive inputS @variable @output)
- [[(#///analysis.Bind @variable) body]
+ [[{#///analysis.Bind @variable} body]
#.End]
(..synthesize_let synthesize^ archive inputS @variable body)
@@ -338,26 +338,26 @@
[path path
path_storage ..empty]
(case path
- (^or #/.Pop (#/.Access Access))
+ (^or #/.Pop {#/.Access Access})
path_storage
(^ (/.path/bind register))
(revised@ #bindings (set.has register)
path_storage)
- (#/.Bit_Fork _ default otherwise)
+ {#/.Bit_Fork _ default otherwise}
(|> (case otherwise
#.None
path_storage
- (#.Some otherwise)
+ {#.Some otherwise}
(for_path otherwise path_storage))
(for_path default))
- (^or (#/.I64_Fork forks)
- (#/.F64_Fork forks)
- (#/.Text_Fork forks))
- (|> (#.Item forks)
+ (^or {#/.I64_Fork forks}
+ {#/.F64_Fork forks}
+ {#/.Text_Fork forks})
+ (|> {#.Item forks}
(list\each product.right)
(list\mix for_path path_storage))
@@ -376,16 +376,16 @@
(^ (/.tuple members))
(list\mix for_synthesis synthesis_storage members)
- (#/.Reference (#///reference.Variable (#///reference/variable.Local register)))
+ {#/.Reference {#///reference.Variable {#///reference/variable.Local register}}}
(if (set.member? (value@ #bindings synthesis_storage) register)
synthesis_storage
- (revised@ #dependencies (set.has (#///reference/variable.Local register)) synthesis_storage))
+ (revised@ #dependencies (set.has {#///reference/variable.Local register}) synthesis_storage))
- (#/.Reference (#///reference.Variable var))
+ {#/.Reference {#///reference.Variable var}}
(revised@ #dependencies (set.has var) synthesis_storage)
(^ (/.function/apply [functionS argsS]))
- (list\mix for_synthesis synthesis_storage (#.Item functionS argsS))
+ (list\mix for_synthesis synthesis_storage {#.Item functionS argsS})
(^ (/.function/abstraction [environment arity bodyS]))
(list\mix for_synthesis synthesis_storage environment)
@@ -423,7 +423,7 @@
(^ (/.loop/recur replacementsS+))
(list\mix for_synthesis synthesis_storage replacementsS+)
- (#/.Extension [extension argsS])
+ {#/.Extension [extension argsS]}
(list\mix for_synthesis synthesis_storage argsS)
_
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/function.lux
index 96139976a..278b6343e 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/function.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/function.lux
@@ -85,7 +85,7 @@
(def: (find_foreign environment register)
(-> (Environment Synthesis) Register (Operation Synthesis))
(case (list.item register environment)
- (#.Some aliased)
+ {#.Some aliased}
(phase\in aliased)
#.None
@@ -94,30 +94,30 @@
(def: (grow_path grow path)
(-> (-> Synthesis (Operation Synthesis)) Path (Operation Path))
(case path
- (#/.Bind register)
- (phase\in (#/.Bind (++ register)))
+ {#/.Bind register}
+ (phase\in {#/.Bind (++ register)})
(^template [<tag>]
- [(<tag> left right)
+ [{<tag> left right}
(do phase.monad
[left' (grow_path grow left)
right' (grow_path grow right)]
- (in (<tag> left' right')))])
+ (in {<tag> left' right'}))])
([#/.Alt] [#/.Seq])
- (#/.Bit_Fork when then else)
+ {#/.Bit_Fork when then else}
(do [! phase.monad]
[then (grow_path grow then)
else (case else
- (#.Some else)
- (\ ! each (|>> #.Some) (grow_path grow else))
+ {#.Some else}
+ (\ ! each (|>> {#.Some}) (grow_path grow else))
#.None
(in #.None))]
- (in (#/.Bit_Fork when then else)))
+ (in {#/.Bit_Fork when then else}))
(^template [<tag>]
- [(<tag> [[test then] elses])
+ [{<tag> [[test then] elses]}
(do [! phase.monad]
[then (grow_path grow then)
elses (monad.each ! (function (_ [else_test else_then])
@@ -125,15 +125,15 @@
[else_then (grow_path grow else_then)]
(in [else_test else_then])))
elses)]
- (in (<tag> [[test then] elses])))])
+ (in {<tag> [[test then] elses]}))])
([#/.I64_Fork]
[#/.F64_Fork]
[#/.Text_Fork])
- (#/.Then thenS)
+ {#/.Then thenS}
(|> thenS
grow
- (phase\each (|>> #/.Then)))
+ (phase\each (|>> {#/.Then})))
_
(phase\in path)))
@@ -141,14 +141,14 @@
(def: (grow environment expression)
(-> (Environment Synthesis) Synthesis (Operation Synthesis))
(case expression
- (#/.Structure structure)
+ {#/.Structure structure}
(case structure
- (#////analysis.Variant [lefts right? subS])
+ {#////analysis.Variant [lefts right? subS]}
(|> subS
(grow environment)
(phase\each (|>> [lefts right?] /.variant)))
- (#////analysis.Tuple membersS+)
+ {#////analysis.Tuple membersS+}
(|> membersS+
(monad.each phase.monad (grow environment))
(phase\each (|>> /.tuple))))
@@ -156,66 +156,66 @@
(^ (..self_reference))
(phase\in (/.function/apply [expression (list (/.variable/local 1))]))
- (#/.Reference reference)
+ {#/.Reference reference}
(case reference
- (#////reference.Variable variable)
+ {#////reference.Variable variable}
(case variable
- (#////reference/variable.Local register)
+ {#////reference/variable.Local register}
(phase\in (/.variable/local (++ register)))
- (#////reference/variable.Foreign register)
+ {#////reference/variable.Foreign register}
(..find_foreign environment register))
- (#////reference.Constant constant)
+ {#////reference.Constant constant}
(phase\in expression))
- (#/.Control control)
+ {#/.Control control}
(case control
- (#/.Branch branch)
+ {#/.Branch branch}
(case branch
- (#/.Let [inputS register bodyS])
+ {#/.Let [inputS register bodyS]}
(do phase.monad
[inputS' (grow environment inputS)
bodyS' (grow environment bodyS)]
(in (/.branch/let [inputS' (++ register) bodyS'])))
- (#/.If [testS thenS elseS])
+ {#/.If [testS thenS elseS]}
(do phase.monad
[testS' (grow environment testS)
thenS' (grow environment thenS)
elseS' (grow environment elseS)]
(in (/.branch/if [testS' thenS' elseS'])))
- (#/.Get members inputS)
+ {#/.Get members inputS}
(do phase.monad
[inputS' (grow environment inputS)]
(in (/.branch/get [members inputS'])))
- (#/.Case [inputS pathS])
+ {#/.Case [inputS pathS]}
(do phase.monad
[inputS' (grow environment inputS)
pathS' (grow_path (grow environment) pathS)]
(in (/.branch/case [inputS' pathS']))))
- (#/.Loop loop)
+ {#/.Loop loop}
(case loop
- (#/.Scope [start initsS+ iterationS])
+ {#/.Scope [start initsS+ iterationS]}
(do [! phase.monad]
[initsS+' (monad.each ! (grow environment) initsS+)
iterationS' (grow environment iterationS)]
(in (/.loop/scope [(++ start) initsS+' iterationS'])))
- (#/.Recur argumentsS+)
+ {#/.Recur argumentsS+}
(|> argumentsS+
(monad.each phase.monad (grow environment))
(phase\each (|>> /.loop/recur))))
- (#/.Function function)
+ {#/.Function function}
(case function
- (#/.Abstraction [_env _arity _body])
+ {#/.Abstraction [_env _arity _body]}
(do [! phase.monad]
[_env' (monad.each !
- (|>> (case> (#/.Reference (#////reference.Variable (#////reference/variable.Foreign register)))
+ (|>> (case> {#/.Reference {#////reference.Variable {#////reference/variable.Foreign register}}}
(..find_foreign environment register)
captured
@@ -223,7 +223,7 @@
_env)]
(in (/.function/abstraction [_env' _arity _body])))
- (#/.Apply funcS argsS+)
+ {#/.Apply funcS argsS+}
(do [! phase.monad]
[funcS (grow environment funcS)
argsS+ (monad.each ! (grow environment) argsS+)]
@@ -236,12 +236,12 @@
[funcS
argsS+]))))))
- (#/.Extension name argumentsS+)
+ {#/.Extension name argumentsS+}
(|> argumentsS+
(monad.each phase.monad (grow environment))
- (phase\each (|>> (#/.Extension name))))
+ (phase\each (|>> {#/.Extension name})))
- (#/.Primitive _)
+ {#/.Primitive _}
(phase\in expression)))
(def: .public (abstraction phase environment archive bodyA)
@@ -269,7 +269,7 @@
(in (if currying?
(/.function/abstraction abstraction)
(case (//loop.optimization false 1 (list) abstraction)
- (#.Some [startL initsL bodyL])
+ {#.Some [startL initsL bodyL]}
(/.function/abstraction [#/.environment environment
#/.arity (value@ #/.arity abstraction)
#/.body (/.loop/scope [startL initsL bodyL])])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/loop.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
index 3b9d37fdd..c65c261e8 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
@@ -30,30 +30,30 @@
(-> (Transform Synthesis) Register (Transform Path))
(function (recur path)
(case path
- (#/.Bind register)
- (#.Some (#/.Bind (register_optimization offset register)))
+ {#/.Bind register}
+ {#.Some {#/.Bind (register_optimization offset register)}}
(^template [<tag>]
- [(<tag> left right)
+ [{<tag> left right}
(do maybe.monad
[left' (recur left)
right' (recur right)]
- (in (<tag> left' right')))])
+ (in {<tag> left' right'}))])
([#/.Alt] [#/.Seq])
- (#/.Bit_Fork when then else)
+ {#/.Bit_Fork when then else}
(do [! maybe.monad]
[then (recur then)
else (case else
- (#.Some else)
+ {#.Some else}
(\ ! each (|>> #.Some) (recur else))
#.None
(in #.None))]
- (in (#/.Bit_Fork when then else)))
+ (in {#/.Bit_Fork when then else}))
(^template [<tag>]
- [(<tag> [[test then] elses])
+ [{<tag> [[test then] elses]}
(do [! maybe.monad]
[then (recur then)
elses (monad.each ! (function (_ [else_test else_then])
@@ -61,58 +61,58 @@
[else_then (recur else_then)]
(in [else_test else_then])))
elses)]
- (in (<tag> [[test then] elses])))])
+ (in {<tag> [[test then] elses]}))])
([#/.I64_Fork]
[#/.F64_Fork]
[#/.Text_Fork])
- (#/.Then body)
+ {#/.Then body}
(|> body
body_optimization
- (maybe\each (|>> #/.Then)))
+ (maybe\each (|>> {#/.Then})))
_
- (#.Some path))))
+ {#.Some path})))
(def: (body_optimization true_loop? offset scope_environment arity expr)
(-> Bit Register (Environment Synthesis) Arity (Transform Synthesis))
(loop [return? true
expr expr]
(case expr
- (#/.Primitive _)
- (#.Some expr)
+ {#/.Primitive _}
+ {#.Some expr}
- (#/.Structure structure)
+ {#/.Structure structure}
(case structure
- (#analysis.Variant variant)
+ {#analysis.Variant variant}
(do maybe.monad
[value' (|> variant (value@ #analysis.value) (recur false))]
(in (|> variant
(with@ #analysis.value value')
/.variant)))
- (#analysis.Tuple tuple)
+ {#analysis.Tuple tuple}
(|> tuple
(monad.each maybe.monad (recur false))
(maybe\each (|>> /.tuple))))
- (#/.Reference reference)
+ {#/.Reference reference}
(case reference
- (^ (#reference.Variable (variable.self)))
+ (^ {#reference.Variable (variable.self)})
(if true_loop?
#.None
- (#.Some expr))
+ {#.Some expr})
(^ (reference.constant constant))
- (#.Some expr)
+ {#.Some expr}
(^ (reference.local register))
- (#.Some (#/.Reference (reference.local (register_optimization offset register))))
+ {#.Some {#/.Reference (reference.local (register_optimization offset register))}}
(^ (reference.foreign register))
(if true_loop?
(list.item register scope_environment)
- (#.Some expr)))
+ {#.Some expr}))
(^ (/.branch/case [input path]))
(do maybe.monad
@@ -165,7 +165,7 @@
[abstraction' (recur false abstraction)]
(in (/.function/apply [abstraction' arguments']))))]
(case abstraction
- (^ (#/.Reference (#reference.Variable (variable.self))))
+ (^ {#/.Reference {#reference.Variable (variable.self)}})
(if (and return?
(n.= arity (list.size arguments)))
(in (/.loop/recur arguments'))
@@ -177,30 +177,30 @@
<application>)))
... TODO: Stop relying on this custom code.
- (^ (#/.Extension ["lux syntax char case!" (list& input else matches)]))
+ (^ {#/.Extension ["lux syntax char case!" (list& input else matches)]})
(if return?
(do [! maybe.monad]
[input (recur false input)
matches (monad.each !
(function (_ match)
(case match
- (^ (#/.Structure (#analysis.Tuple (list when then))))
+ (^ {#/.Structure {#analysis.Tuple (list when then)}})
(do !
[when (recur false when)
then (recur return? then)]
- (in (#/.Structure (#analysis.Tuple (list when then)))))
+ (in {#/.Structure {#analysis.Tuple (list when then)}}))
_
(recur false match)))
matches)
else (recur return? else)]
- (in (#/.Extension ["lux syntax char case!" (list& input else matches)])))
+ (in {#/.Extension ["lux syntax char case!" (list& input else matches)]}))
#.None)
- (#/.Extension [name args])
+ {#/.Extension [name args]}
(|> args
(monad.each maybe.monad (recur false))
- (maybe\each (|>> [name] #/.Extension))))))
+ (maybe\each (|>> [name] {#/.Extension}))))))
(def: .public (optimization true_loop? offset inits functionS)
(-> Bit Register (List Synthesis) Abstraction (Maybe [Register (List Synthesis) 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 91e229d1a..757bdb4c3 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
@@ -39,133 +39,133 @@
(-> (Remover Synthesis) (Remover Path))
(function (recur path)
(case path
- (#/.Seq (#/.Bind register)
- post)
+ {#/.Seq {#/.Bind register}
+ post}
(if (n.= redundant register)
(recur post)
- (#/.Seq (#/.Bind (if (n.> redundant register)
+ {#/.Seq {#/.Bind (if (n.> redundant register)
(-- register)
- register))
- (recur post)))
+ register)}
+ (recur post)})
- (^or (#/.Seq (#/.Access (#/.Member member))
- (#/.Seq (#/.Bind register)
- post))
+ (^or {#/.Seq {#/.Access {#/.Member member}}
+ {#/.Seq {#/.Bind register}
+ post}}
... This alternative form should never occur in practice.
... Yet, it is "technically" possible to construct it.
- (#/.Seq (#/.Seq (#/.Access (#/.Member member))
- (#/.Bind register))
- post))
+ {#/.Seq {#/.Seq {#/.Access {#/.Member member}}
+ {#/.Bind register}}
+ post})
(if (n.= redundant register)
(recur post)
- (#/.Seq (#/.Access (#/.Member member))
- (#/.Seq (#/.Bind (if (n.> redundant register)
- (-- register)
- register))
- (recur post))))
+ {#/.Seq {#/.Access {#/.Member member}}
+ {#/.Seq {#/.Bind (if (n.> redundant register)
+ (-- register)
+ register)}
+ (recur post)}})
(^template [<tag>]
- [(<tag> left right)
- (<tag> (recur left) (recur right))])
+ [{<tag> left right}
+ {<tag> (recur left) (recur right)}])
([#/.Seq]
[#/.Alt])
- (#/.Bit_Fork when then else)
- (#/.Bit_Fork when (recur then) (maybe\each recur else))
+ {#/.Bit_Fork when then else}
+ {#/.Bit_Fork when (recur then) (maybe\each recur else)}
(^template [<tag>]
- [(<tag> [[test then] tail])
- (<tag> [[test (recur then)]
+ [{<tag> [[test then] tail]}
+ {<tag> [[test (recur then)]
(list\each (function (_ [test' then'])
[test' (recur then')])
- tail)])])
+ tail)]}])
([#/.I64_Fork]
[#/.F64_Fork]
[#/.Text_Fork])
(^or #/.Pop
- (#/.Access _))
+ {#/.Access _})
path
- (#/.Bind register)
+ {#/.Bind register}
(undefined)
- (#/.Then then)
- (#/.Then (remove_local redundant then))
+ {#/.Then then}
+ {#/.Then (remove_local redundant then)}
)))
(def: (remove_local_from_variable redundant variable)
(Remover Variable)
(case variable
- (#variable.Local register)
- (#variable.Local (..prune redundant register))
+ {#variable.Local register}
+ {#variable.Local (..prune redundant register)}
- (#variable.Foreign register)
+ {#variable.Foreign register}
variable))
(def: (remove_local redundant)
(Remover Synthesis)
(function (recur synthesis)
(case synthesis
- (#/.Primitive _)
+ {#/.Primitive _}
synthesis
- (#/.Structure structure)
- (#/.Structure (case structure
- (#analysis.Variant [lefts right value])
- (#analysis.Variant [lefts right (recur value)])
+ {#/.Structure structure}
+ {#/.Structure (case structure
+ {#analysis.Variant [lefts right value]}
+ {#analysis.Variant [lefts right (recur value)]}
- (#analysis.Tuple tuple)
- (#analysis.Tuple (list\each recur tuple))))
+ {#analysis.Tuple tuple}
+ {#analysis.Tuple (list\each recur tuple)})}
- (#/.Reference reference)
+ {#/.Reference reference}
(case reference
- (#reference.Variable variable)
+ {#reference.Variable variable}
(/.variable (..remove_local_from_variable redundant variable))
- (#reference.Constant constant)
+ {#reference.Constant constant}
synthesis)
- (#/.Control control)
- (#/.Control (case control
- (#/.Branch branch)
- (#/.Branch (case branch
- (#/.Let input register output)
- (#/.Let (recur input)
- (..prune redundant register)
- (recur output))
+ {#/.Control control}
+ {#/.Control (case control
+ {#/.Branch branch}
+ {#/.Branch (case branch
+ {#/.Let input register output}
+ {#/.Let (recur input)
+ (..prune redundant register)
+ (recur output)}
- (#/.If test then else)
- (#/.If (recur test) (recur then) (recur else))
+ {#/.If test then else}
+ {#/.If (recur test) (recur then) (recur else)}
- (#/.Get path record)
- (#/.Get path (recur record))
+ {#/.Get path record}
+ {#/.Get path (recur record)}
- (#/.Case input path)
- (#/.Case (recur input) (remove_local_from_path remove_local redundant path))))
+ {#/.Case input path}
+ {#/.Case (recur input) (remove_local_from_path remove_local redundant path)})}
- (#/.Loop loop)
- (#/.Loop (case loop
- (#/.Scope [start inits iteration])
- (#/.Scope [(..prune redundant start)
+ {#/.Loop loop}
+ {#/.Loop (case loop
+ {#/.Scope [start inits iteration]}
+ {#/.Scope [(..prune redundant start)
(list\each recur inits)
- (recur iteration)])
+ (recur iteration)]}
- (#/.Recur resets)
- (#/.Recur (list\each recur resets))))
+ {#/.Recur resets}
+ {#/.Recur (list\each recur resets)})}
- (#/.Function function)
- (#/.Function (case function
- (#/.Abstraction [environment arity body])
- (#/.Abstraction [(list\each recur environment)
+ {#/.Function function}
+ {#/.Function (case function
+ {#/.Abstraction [environment arity body]}
+ {#/.Abstraction [(list\each recur environment)
arity
- body])
+ body]}
- (#/.Apply abstraction inputs)
- (#/.Apply (recur abstraction) (list\each recur inputs))))))
+ {#/.Apply abstraction inputs}
+ {#/.Apply (recur abstraction) (list\each recur inputs)})})}
- (#/.Extension name inputs)
- (#/.Extension name (list\each recur inputs)))))
+ {#/.Extension name inputs}
+ {#/.Extension name (list\each recur inputs)})))
(type: Redundancy
(Dictionary Register Bit))
@@ -198,15 +198,15 @@
(function (recur [redundancy values])
(case values
#.End
- (#try.Success [redundancy
- values])
+ {#try.Success [redundancy
+ values]}
- (#.Item head tail)
+ {#.Item head tail}
(do try.monad
[[redundancy head] (optimization [redundancy head])
[redundancy tail] (recur [redundancy tail])]
(in [redundancy
- (#.Item head tail)])))))
+ {#.Item head tail}])))))
(template [<name>]
[(exception: .public (<name> [register Register])
@@ -221,9 +221,9 @@
(-> Register Redundancy (Try Redundancy))
(case (dictionary.value register redundancy)
#.None
- (#try.Success (dictionary.has register ..redundant! redundancy))
+ {#try.Success (dictionary.has register ..redundant! redundancy)}
- (#.Some _)
+ {#.Some _}
(exception.except ..redundant_declaration [register])))
(def: (observe register redundancy)
@@ -232,8 +232,8 @@
#.None
(exception.except ..unknown_register [register])
- (#.Some _)
- (#try.Success (dictionary.has register ..necessary! redundancy))))
+ {#.Some _}
+ {#try.Success (dictionary.has register ..necessary! redundancy)}))
(def: (format redundancy)
(%.Format Redundancy)
@@ -248,26 +248,26 @@
(function (recur [redundancy path])
(case path
(^or #/.Pop
- (#/.Access _))
- (#try.Success [redundancy
- path])
+ {#/.Access _})
+ {#try.Success [redundancy
+ path]}
- (#/.Bit_Fork when then else)
+ {#/.Bit_Fork when then else}
(do [! try.monad]
[[redundancy then] (recur [redundancy then])
[redundancy else] (case else
- (#.Some else)
+ {#.Some else}
(\ ! each
(function (_ [redundancy else])
- [redundancy (#.Some else)])
+ [redundancy {#.Some else}])
(recur [redundancy else]))
#.None
(in [redundancy #.None]))]
- (in [redundancy (#/.Bit_Fork when then else)]))
+ (in [redundancy {#/.Bit_Fork when then else}]))
(^template [<tag> <type>]
- [(<tag> [[test then] elses])
+ [{<tag> [[test then] elses]}
(do [! try.monad]
[[redundancy then] (recur [redundancy then])
[redundancy elses] (..list_optimization (: (Optimization [<type> Path])
@@ -276,24 +276,24 @@
[[redundancy else_then] (recur [redundancy else_then])]
(in [redundancy [else_test else_then]]))))
[redundancy elses])]
- (in [redundancy (<tag> [[test then] elses])]))])
+ (in [redundancy {<tag> [[test then] elses]}]))])
([#/.I64_Fork (I64 Any)]
[#/.F64_Fork Frac]
[#/.Text_Fork Text])
- (#/.Bind register)
+ {#/.Bind register}
(do try.monad
[redundancy (..declare register redundancy)]
(in [redundancy
path]))
- (#/.Alt left right)
+ {#/.Alt left right}
(do try.monad
[[redundancy left] (recur [redundancy left])
[redundancy right] (recur [redundancy right])]
- (in [redundancy (#/.Alt left right)]))
+ (in [redundancy {#/.Alt left right}]))
- (#/.Seq pre post)
+ {#/.Seq pre post}
(do try.monad
[.let [baseline (|> redundancy
dictionary.keys
@@ -313,56 +313,56 @@
(in [(list\mix dictionary.lacks redundancy (set.list bindings))
(|> redundants
(list.sorted n.>)
- (list\mix (..remove_local_from_path ..remove_local) (#/.Seq pre post)))]))
+ (list\mix (..remove_local_from_path ..remove_local) {#/.Seq pre post}))]))
- (#/.Then then)
+ {#/.Then then}
(do try.monad
[[redundancy then] (optimization [redundancy then])]
- (in [redundancy (#/.Then then)]))
+ (in [redundancy {#/.Then then}]))
)))
(def: (optimization' [redundancy synthesis])
(Optimization Synthesis)
- (with_expansions [<no_op> (as_is (#try.Success [redundancy
- synthesis]))]
+ (with_expansions [<no_op> (as_is {#try.Success [redundancy
+ synthesis]})]
(case synthesis
- (#/.Primitive _)
+ {#/.Primitive _}
<no_op>
- (#/.Structure structure)
+ {#/.Structure structure}
(case structure
- (#analysis.Variant [lefts right value])
+ {#analysis.Variant [lefts right value]}
(do try.monad
[[redundancy value] (optimization' [redundancy value])]
(in [redundancy
- (#/.Structure (#analysis.Variant [lefts right value]))]))
+ {#/.Structure {#analysis.Variant [lefts right value]}}]))
- (#analysis.Tuple tuple)
+ {#analysis.Tuple tuple}
(do try.monad
[[redundancy tuple] (..list_optimization optimization' [redundancy tuple])]
(in [redundancy
- (#/.Structure (#analysis.Tuple tuple))])))
+ {#/.Structure {#analysis.Tuple tuple}}])))
- (#/.Reference reference)
+ {#/.Reference reference}
(case reference
- (#reference.Variable variable)
+ {#reference.Variable variable}
(case variable
- (#variable.Local register)
+ {#variable.Local register}
(do try.monad
[redundancy (..observe register redundancy)]
<no_op>)
- (#variable.Foreign register)
+ {#variable.Foreign register}
<no_op>)
- (#reference.Constant constant)
+ {#reference.Constant constant}
<no_op>)
- (#/.Control control)
+ {#/.Control control}
(case control
- (#/.Branch branch)
+ {#/.Branch branch}
(case branch
- (#/.Let input register output)
+ {#/.Let input register output}
(do try.monad
[[redundancy input] (optimization' [redundancy input])
redundancy (..declare register redundancy)
@@ -371,70 +371,70 @@
(dictionary.value register)
(maybe.else ..necessary!))]]
(in [(dictionary.lacks register redundancy)
- (#/.Control (if redundant?
- (#/.Branch (#/.Case input
- (#/.Seq #/.Pop
- (#/.Then (..remove_local register output)))))
- (#/.Branch (#/.Let input register output))))]))
+ {#/.Control (if redundant?
+ {#/.Branch {#/.Case input
+ {#/.Seq #/.Pop
+ {#/.Then (..remove_local register output)}}}}
+ {#/.Branch {#/.Let input register output}})}]))
- (#/.If test then else)
+ {#/.If test then else}
(do try.monad
[[redundancy test] (optimization' [redundancy test])
[redundancy then] (optimization' [redundancy then])
[redundancy else] (optimization' [redundancy else])]
(in [redundancy
- (#/.Control (#/.Branch (#/.If test then else)))]))
+ {#/.Control {#/.Branch {#/.If test then else}}}]))
- (#/.Get path record)
+ {#/.Get path record}
(do try.monad
[[redundancy record] (optimization' [redundancy record])]
(in [redundancy
- (#/.Control (#/.Branch (#/.Get path record)))]))
+ {#/.Control {#/.Branch {#/.Get path record}}}]))
- (#/.Case input path)
+ {#/.Case input path}
(do try.monad
[[redundancy input] (optimization' [redundancy input])
[redundancy path] (..path_optimization optimization' [redundancy path])]
(in [redundancy
- (#/.Control (#/.Branch (#/.Case input path)))])))
+ {#/.Control {#/.Branch {#/.Case input path}}}])))
- (#/.Loop loop)
+ {#/.Loop loop}
(case loop
- (#/.Scope [start inits iteration])
+ {#/.Scope [start inits iteration]}
(do try.monad
[[redundancy inits] (..list_optimization optimization' [redundancy inits])
.let [[extension redundancy] (..extended start (list.size inits) redundancy)]
[redundancy iteration] (optimization' [redundancy iteration])]
(in [(list\mix dictionary.lacks redundancy extension)
- (#/.Control (#/.Loop (#/.Scope [start inits iteration])))]))
+ {#/.Control {#/.Loop {#/.Scope [start inits iteration]}}}]))
- (#/.Recur resets)
+ {#/.Recur resets}
(do try.monad
[[redundancy resets] (..list_optimization optimization' [redundancy resets])]
(in [redundancy
- (#/.Control (#/.Loop (#/.Recur resets)))])))
+ {#/.Control {#/.Loop {#/.Recur resets}}}])))
- (#/.Function function)
+ {#/.Function function}
(case function
- (#/.Abstraction [environment arity body])
+ {#/.Abstraction [environment arity body]}
(do [! try.monad]
[[redundancy environment] (..list_optimization optimization' [redundancy environment])
[_ body] (optimization' [(..default arity) body])]
(in [redundancy
- (#/.Control (#/.Function (#/.Abstraction [environment arity body])))]))
+ {#/.Control {#/.Function {#/.Abstraction [environment arity body]}}}]))
- (#/.Apply abstraction inputs)
+ {#/.Apply abstraction inputs}
(do try.monad
[[redundancy abstraction] (optimization' [redundancy abstraction])
[redundancy inputs] (..list_optimization optimization' [redundancy inputs])]
(in [redundancy
- (#/.Control (#/.Function (#/.Apply abstraction inputs)))]))))
+ {#/.Control {#/.Function {#/.Apply abstraction inputs}}}]))))
- (#/.Extension name inputs)
+ {#/.Extension name inputs}
(do try.monad
[[redundancy inputs] (..list_optimization optimization' [redundancy inputs])]
(in [redundancy
- (#/.Extension name inputs)])))))
+ {#/.Extension name inputs}])))))
(def: .public optimization
(-> Synthesis (Try Synthesis))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/program.lux b/stdlib/source/library/lux/tool/compiler/language/lux/program.lux
index f085683fc..6b9fbfd09 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/program.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/program.lux
@@ -48,7 +48,7 @@
[program_id (artifact.remember ..name registry)]
(in [module_id program_id])))
registries)
- (#.Some program_context)
+ {#.Some program_context}
(in program_context)
#.None
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux b/stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux
index ec444b003..b855ced2f 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/syntax.lux
@@ -171,12 +171,12 @@
["Text" (%.text text)]))
(template: (!failure parser where offset source_code)
- [(#.Left [[where offset source_code]
- (exception.error ..unrecognized_input [where (%.name (name_of parser)) source_code offset])])])
+ [{#.Left [[where offset source_code]
+ (exception.error ..unrecognized_input [where (%.name (name_of parser)) source_code offset])]}])
(template: (!end_of_file where offset source_code current_module)
- [(#.Left [[where offset source_code]
- (exception.error ..end_of_file current_module)])])
+ [{#.Left [[where offset source_code]
+ (exception.error ..end_of_file current_module)]}])
(type: (Parser a)
(-> Source (Either [Source Text] [Source a])))
@@ -193,10 +193,10 @@
(template: (!letE <binding> <computation> <body>)
[(case <computation>
- (#.Right <binding>)
+ {#.Right <binding>}
<body>
- ... (#.Left error)
+ ... {#.Left error}
<<otherwise>>
(:expected <<otherwise>>))])
@@ -227,14 +227,14 @@
(loop [source (: Source [(!forward 1 where) offset source_code])
stack (: (List Code) #.End)]
(case (parse source)
- (#.Right [source' top])
- (recur source' (#.Item top stack))
+ {#.Right [source' top]}
+ (recur source' {#.Item top stack})
- (#.Left [source' error])
+ {#.Left [source' error]}
(if (same? <close> error)
- (#.Right [source'
- [where (<tag> (list.reversed stack))]])
- (#.Left [source' error])))))]
+ {#.Right [source'
+ [where {<tag> (list.reversed stack)}]]}
+ {#.Left [source' error]}))))]
... Form and tuple syntax is mostly the same, differing only in the
... delimiters involved.
@@ -250,15 +250,15 @@
(loop [source (: Source [(!forward 1 where) offset source_code])
stack (: (List [Code Code]) #.End)]
(case (parse source)
- (#.Right [sourceF field])
+ {#.Right [sourceF field]}
(!letE [sourceFV value] (parse sourceF)
- (recur sourceFV (#.Item [field value] stack)))
+ (recur sourceFV {#.Item [field value] stack}))
- (#.Left [source' error])
+ {#.Left [source' error]}
(if (same? ..close_variant error)
- (#.Right [source'
- [where (#.Record (list.reversed stack))]])
- (#.Left [source' error])))))
+ {#.Right [source'
+ [where {#.Record (list.reversed stack)}]]}
+ {#.Left [source' error]}))))
(template: (!guarantee_no_new_lines where offset source_code content body)
[(case ("lux text index" 0 (static text.new_line) content)
@@ -266,21 +266,21 @@
body
g!_
- (#.Left [[where offset source_code]
- (exception.error ..text_cannot_contain_new_lines content)]))])
+ {#.Left [[where offset source_code]
+ (exception.error ..text_cannot_contain_new_lines content)]})])
(def: (text_parser where offset source_code)
(-> Location Offset Text (Either [Source Text] [Source Code]))
(case ("lux text index" offset (static ..text_delimiter) source_code)
- (#.Some g!end)
+ {#.Some g!end}
(<| (let [g!content (!clip offset g!end source_code)])
(!guarantee_no_new_lines where offset source_code g!content)
- (#.Right [[(let [size (!n/- offset g!end)]
+ {#.Right [[(let [size (!n/- offset g!end)]
(revised@ #.column (|>> (!n/+ size) (!n/+ 2)) where))
(!++ g!end)
source_code]
[where
- (#.Text g!content)]]))
+ {#.Text g!content}]]})
_
(!failure ..text_parser where offset source_code)))
@@ -338,16 +338,16 @@
(!clip <start> <end>)
(text.replaced ..digit_separator "")
(\ <codec> decoded))
- (#.Right output)
- (#.Right [[(let [[where::file where::line where::column] where]
+ {#.Right output}
+ {#.Right [[(let [[where::file where::line where::column] where]
[where::file where::line (!n/+ (!n/- <start> <end>) where::column)])
<end>
<source_code>]
- [where (<tag> output)]])
+ [where {<tag> output}]]}
- (#.Left error)
- (#.Left [[where <start> <source_code>]
- error]))])
+ {#.Left error}
+ {#.Left [[where <start> <source_code>]
+ error]})])
(def: no_exponent
Offset
@@ -423,10 +423,10 @@
(signed_parser source_code//size offset where (!++/2 offset) source_code)
(!full_name_parser offset [where (!++ offset) source_code] where @aliases #.Identifier)))])
-(with_expansions [<output> (#.Right [[(revised@ #.column (|>> (!n/+ (!n/- start end))) where)
+(with_expansions [<output> {#.Right [[(revised@ #.column (|>> (!n/+ (!n/- start end))) where)
end
source_code]
- (!clip start end source_code)])]
+ (!clip start end source_code)]}]
(inline: (name_part_parser start where offset source_code)
(-> Nat Location Offset Text
(Either [Source Text] [Source Text]))
@@ -440,7 +440,7 @@
(template: (!half_name_parser @offset @char @module)
[(!if_name_char?|head @char
(!letE [source' name] (..name_part_parser @offset (!forward 1 where) (!++ @offset) source_code)
- (#.Right [source' [@module name]]))
+ {#.Right [source' [@module name]]})
(!failure ..!half_name_parser where @offset source_code))])
(`` (def: (short_name_parser source_code//size current_module [where offset/0 source_code])
@@ -456,9 +456,9 @@
(template: (!short_name_parser source_code//size @current_module @source @where @tag)
[(!letE [source' name] (..short_name_parser source_code//size @current_module @source)
- (#.Right [source' [@where (@tag name)]]))])
+ {#.Right [source' [@where {@tag name}]]})])
-(with_expansions [<simple> (as_is (#.Right [source' ["" simple]]))]
+(with_expansions [<simple> (as_is {#.Right [source' ["" simple]]})]
(`` (def: (full_name_parser aliases start source)
(-> Aliases Offset (Parser Name))
(<| (!letE [source' simple] (let [[where offset source_code] source]
@@ -471,15 +471,15 @@
(if ("lux text =" "" complex)
(let [[where offset source_code] source]
(!failure ..full_name_parser where offset source_code))
- (#.Right [source'' [(|> aliases
+ {#.Right [source'' [(|> aliases
(dictionary.value simple)
(maybe.else simple))
- complex]])))
+ complex]]}))
<simple>)))))
(template: (!full_name_parser @offset @source @where @aliases @tag)
[(!letE [source' full_name] (..full_name_parser @aliases @offset @source)
- (#.Right [source' [@where (@tag full_name)]]))])
+ {#.Right [source' [@where {@tag full_name}]]})])
... TODO: Grammar macro for specifying syntax.
... (grammar: lux_grammar
@@ -492,14 +492,14 @@
<recur> (as_is (parse current_module aliases source_code//size))]
(template: (!close closer)
- [(#.Left [<move_1> closer])])
+ [{#.Left [<move_1> closer]}])
(def: (bit_syntax value [where offset/0 source_code])
(-> Bit (Parser Code))
- (#.Right [[(revised@ #.column (|>> !++/2) where)
+ {#.Right [[(revised@ #.column (|>> !++/2) where)
(!++/2 offset/0)
source_code]
- [where (#.Bit value)]]))
+ [where {#.Bit value}]]})
(def: .public (parse current_module aliases source_code//size)
(-> Text Aliases Nat (Parser Code))
@@ -566,7 +566,7 @@
(with_expansions [<rev_parser> (rev_parser source_code//size offset/0 where (!++ offset/1) source_code)
<short_name_parser> (!short_name_parser source_code//size current_module [where offset/1 source_code] where #.Identifier)
<comment_parser> (case ("lux text index" (!++ offset/1) (static text.new_line) source_code)
- (#.Some end)
+ {#.Some end}
(recur (!vertical where end source_code))
_
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 2209cdcce..e718a2469 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux
@@ -54,10 +54,10 @@
(type: .public Primitive
(Variant
- (#Bit Bit)
- (#I64 (I64 Any))
- (#F64 Frac)
- (#Text Text)))
+ {#Bit Bit}
+ {#I64 (I64 Any)}
+ {#F64 Frac}
+ {#Text Text}))
(type: .public Side
(Either Nat Nat))
@@ -67,8 +67,8 @@
(type: .public Access
(Variant
- (#Side Side)
- (#Member Member)))
+ {#Side Side}
+ {#Member Member}))
(type: .public (Fork value next)
[[value next] (List [value next])])
@@ -76,15 +76,15 @@
(type: .public (Path' s)
(Variant
#Pop
- (#Access Access)
- (#Bind Register)
- (#Bit_Fork Bit (Path' s) (Maybe (Path' s)))
- (#I64_Fork (Fork (I64 Any) (Path' s)))
- (#F64_Fork (Fork Frac (Path' s)))
- (#Text_Fork (Fork Text (Path' s)))
- (#Alt (Path' s) (Path' s))
- (#Seq (Path' s) (Path' s))
- (#Then s)))
+ {#Access Access}
+ {#Bind Register}
+ {#Bit_Fork Bit (Path' s) (Maybe (Path' s))}
+ {#I64_Fork (Fork (I64 Any) (Path' s))}
+ {#F64_Fork (Fork Frac (Path' s))}
+ {#Text_Fork (Fork Text (Path' s))}
+ {#Alt (Path' s) (Path' s)}
+ {#Seq (Path' s) (Path' s)}
+ {#Then s}))
(type: .public (Abstraction' s)
(Record
@@ -99,10 +99,10 @@
(type: .public (Branch s)
(Variant
- (#Let s Register s)
- (#If s s s)
- (#Get (List Member) s)
- (#Case s (Path' s))))
+ {#Let s Register s}
+ {#If s s s}
+ {#Get (List Member) s}
+ {#Case s (Path' s)}))
(type: .public (Scope s)
(Record
@@ -112,28 +112,28 @@
(type: .public (Loop s)
(Variant
- (#Scope (Scope s))
- (#Recur (List s))))
+ {#Scope (Scope s)}
+ {#Recur (List s)}))
(type: .public (Function s)
(Variant
- (#Abstraction (Abstraction' s))
- (#Apply s (List s))))
+ {#Abstraction (Abstraction' s)}
+ {#Apply s (List s)}))
(type: .public (Control s)
(Variant
- (#Branch (Branch s))
- (#Loop (Loop s))
- (#Function (Function s))))
+ {#Branch (Branch s)}
+ {#Loop (Loop s)}
+ {#Function (Function s)}))
(type: .public Synthesis
(Rec Synthesis
(Variant
- (#Primitive Primitive)
- (#Structure (Composite Synthesis))
- (#Reference Reference)
- (#Control (Control Synthesis))
- (#Extension (Extension Synthesis)))))
+ {#Primitive Primitive}
+ {#Structure (Composite Synthesis)}
+ {#Reference Reference}
+ {#Control (Control Synthesis)}
+ {#Extension (Extension Synthesis)})))
(template [<special> <general>]
[(type: .public <special>
@@ -165,9 +165,9 @@
(template [<name> <kind> <side>]
[(template: .public (<name> content)
- [(.<| #..Access
- <kind>
- <side>
+ [(.<| {#..Access}
+ {<kind>}
+ {<side>}
content)])]
[side/left #..Side #.Left]
@@ -178,7 +178,7 @@
(template [<name> <tag>]
[(template: .public (<name> content)
- [(<tag> content)])]
+ [{<tag> content}])]
[path/bind #..Bind]
[path/then #..Then]
@@ -186,7 +186,7 @@
(template [<name> <tag>]
[(template: .public (<name> left right)
- [(<tag> [left right])])]
+ [{<tag> left right}])]
[path/alt #..Alt]
[path/seq #..Seq]
@@ -223,7 +223,7 @@
(template [<name> <tag>]
[(template: .public (<name> content)
- [(#..Primitive (<tag> content))])]
+ [{#..Primitive {<tag> content}}])]
[bit #..Bit]
[i64 #..I64]
@@ -233,8 +233,8 @@
(template [<name> <tag>]
[(template: .public (<name> content)
- [(<| #..Structure
- <tag>
+ [(<| {#..Structure}
+ {<tag>}
content)])]
[variant #analysis.Variant]
@@ -243,7 +243,7 @@
(template [<name> <tag>]
[(template: .public (<name> content)
- [(.<| #..Reference
+ [(.<| {#..Reference}
<tag>
content)])]
@@ -255,9 +255,9 @@
(template [<name> <family> <tag>]
[(template: .public (<name> content)
- [(.<| #..Control
- <family>
- <tag>
+ [(.<| {#..Control}
+ {<family>}
+ {<tag>}
content)])]
[branch/case #..Branch #..Case]
@@ -278,11 +278,11 @@
#Pop
"_"
- (#Bit_Fork when then else)
+ {#Bit_Fork when then else}
(format "(?"
" " (%.bit when) " " (%path' %then then)
(case else
- (#.Some else)
+ {#.Some else}
(format " " (%.bit (not when)) " " (%path' %then else))
#.None
@@ -290,8 +290,8 @@
")")
(^template [<tag> <format>]
- [(<tag> item)
- (|> (#.Item item)
+ [{<tag> item}
+ (|> {#.Item item}
(list\each (function (_ [test then])
(format (<format> test) " " (%path' %then then))))
(text.interposed " ")
@@ -300,125 +300,125 @@
[#F64_Fork %.frac]
[#Text_Fork %.text])
- (#Access access)
+ {#Access access}
(case access
- (#Side side)
+ {#Side side}
(case side
- (#.Left lefts)
+ {#.Left lefts}
(format "(" (%.nat lefts) " #0" ")")
- (#.Right lefts)
+ {#.Right lefts}
(format "(" (%.nat lefts) " #1" ")"))
- (#Member member)
+ {#Member member}
(case member
- (#.Left lefts)
+ {#.Left lefts}
(format "[" (%.nat lefts) " #0" "]")
- (#.Right lefts)
+ {#.Right lefts}
(format "[" (%.nat lefts) " #1" "]")))
- (#Bind register)
+ {#Bind register}
(format "(@ " (%.nat register) ")")
- (#Alt left right)
+ {#Alt left right}
(format "(Variant " (%path' %then left) " " (%path' %then right) ")")
- (#Seq left right)
+ {#Seq left right}
(format "(Tuple " (%path' %then left) " " (%path' %then right) ")")
- (#Then then)
+ {#Then then}
(|> (%then then)
(text.enclosed ["(! " ")"]))))
(def: .public (%synthesis value)
(Format Synthesis)
(case value
- (#Primitive primitive)
+ {#Primitive primitive}
(case primitive
(^template [<pattern> <format>]
- [(<pattern> value)
+ [{<pattern> value}
(<format> value)])
([#Bit %.bit]
[#F64 %.frac]
[#Text %.text])
- (#I64 value)
+ {#I64 value}
(%.int (.int value)))
- (#Structure structure)
+ {#Structure structure}
(case structure
- (#analysis.Variant [lefts right? content])
+ {#analysis.Variant [lefts right? content]}
(|> (%synthesis content)
(format (%.nat lefts) " " (%.bit right?) " ")
- (text.enclosed ["(" ")"]))
+ (text.enclosed ["{" "}"]))
- (#analysis.Tuple members)
+ {#analysis.Tuple members}
(|> members
(list\each %synthesis)
(text.interposed " ")
(text.enclosed ["[" "]"])))
- (#Reference reference)
+ {#Reference reference}
(reference.format reference)
- (#Control control)
+ {#Control control}
(case control
- (#Function function)
+ {#Function function}
(case function
- (#Abstraction [environment arity body])
+ {#Abstraction [environment arity body]}
(let [environment' (|> environment
(list\each %synthesis)
(text.interposed " ")
(text.enclosed ["[" "]"]))]
(|> (format environment' " " (%.nat arity) " " (%synthesis body))
- (text.enclosed ["(#function " ")"])))
+ (text.enclosed ["{#function " "}"])))
- (#Apply func args)
+ {#Apply func args}
(|> args
(list\each %synthesis)
(text.interposed " ")
(format (%synthesis func) " ")
(text.enclosed ["(" ")"])))
- (#Branch branch)
+ {#Branch branch}
(case branch
- (#Let input register body)
+ {#Let input register body}
(|> (format (%.nat register) " " (%synthesis input) " " (%synthesis body))
- (text.enclosed ["(#let " ")"]))
+ (text.enclosed ["{#let " "}"]))
- (#If test then else)
+ {#If test then else}
(|> (format (%synthesis test) " " (%synthesis then) " " (%synthesis else))
- (text.enclosed ["(#if " ")"]))
+ (text.enclosed ["{#if " "}"]))
- (#Get members record)
+ {#Get members record}
(|> (format (%.list (%path' %synthesis)
(list\each (|>> #Member #Access) members))
" " (%synthesis record))
- (text.enclosed ["(#get " ")"]))
+ (text.enclosed ["{#get " "}"]))
- (#Case input path)
+ {#Case input path}
(|> (format (%synthesis input) " " (%path' %synthesis path))
- (text.enclosed ["(#case " ")"])))
+ (text.enclosed ["{#case " "}"])))
- (#Loop loop)
+ {#Loop loop}
(case loop
- (#Scope scope)
+ {#Scope scope}
(|> (format (%.nat (value@ #start scope))
" " (|> (value@ #inits scope)
(list\each %synthesis)
(text.interposed " ")
(text.enclosed ["[" "]"]))
" " (%synthesis (value@ #iteration scope)))
- (text.enclosed ["(#loop " ")"]))
+ (text.enclosed ["{#loop " "}"]))
- (#Recur args)
+ {#Recur args}
(|> args
(list\each %synthesis)
(text.interposed " ")
- (text.enclosed ["(#recur " ")"]))))
+ (text.enclosed ["{#recur " "}"]))))
- (#Extension [name args])
+ {#Extension [name args]}
(|> (list\each %synthesis args)
(text.interposed " ")
(format (%.text name) " ")
@@ -434,13 +434,13 @@
(def: (= reference sample)
(case [reference sample]
(^template [<tag> <eq> <format>]
- [[(<tag> reference') (<tag> sample')]
+ [[{<tag> reference'} {<tag> sample'}]
(<eq> reference' sample')])
([#Bit bit\= %.bit]
[#F64 f.= %.frac]
[#Text text\= %.text])
- [(#I64 reference') (#I64 sample')]
+ [{#I64 reference'} {#I64 sample'}]
(i.= (.int reference') (.int sample'))
_
@@ -453,7 +453,7 @@
(def: hash
(|>> (case> (^template [<tag> <hash>]
- [(<tag> value')
+ [{<tag> value'}
(\ <hash> hash value')])
([#Bit bit.hash]
[#F64 f.hash]
@@ -478,7 +478,7 @@
(def: (= reference sample)
(case [reference sample]
(^template [<tag> <equivalence>]
- [[(<tag> reference) (<tag> sample)]
+ [[{<tag> reference} {<tag> sample}]
(\ <equivalence> = reference sample)])
([#Side ..side_equivalence]
[#Member ..member_equivalence])
@@ -495,7 +495,7 @@
(let [sub_hash (sum.hash n.hash n.hash)]
(case value
(^template [<tag>]
- [(<tag> value)
+ [{<tag> value}
(\ sub_hash hash value)])
([#Side]
[#Member])))))
@@ -508,33 +508,33 @@
[#Pop #Pop]
true
- [(#Bit_Fork reference_when reference_then reference_else)
- (#Bit_Fork sample_when sample_then sample_else)]
+ [{#Bit_Fork reference_when reference_then reference_else}
+ {#Bit_Fork sample_when sample_then sample_else}]
(and (bit\= reference_when sample_when)
(= reference_then sample_then)
(\ (maybe.equivalence =) = reference_else sample_else))
(^template [<tag> <equivalence>]
- [[(<tag> reference_item)
- (<tag> sample_item)]
+ [[{<tag> reference_item}
+ {<tag> sample_item}]
(\ (list.equivalence (product.equivalence <equivalence> =)) =
- (#.Item reference_item)
- (#.Item sample_item))])
+ {#.Item reference_item}
+ {#.Item sample_item})])
([#I64_Fork i64.equivalence]
[#F64_Fork f.equivalence]
[#Text_Fork text.equivalence])
(^template [<tag> <equivalence>]
- [[(<tag> reference') (<tag> sample')]
+ [[{<tag> reference'} {<tag> sample'}]
(\ <equivalence> = reference' sample')])
([#Access ..access_equivalence]
[#Then equivalence])
- [(#Bind reference') (#Bind sample')]
+ [{#Bind reference'} {#Bind sample'}]
(n.= reference' sample')
(^template [<tag>]
- [[(<tag> leftR rightR) (<tag> leftS rightS)]
+ [[{<tag> leftR rightR} {<tag> leftS rightS}]
(and (= leftR leftS)
(= rightR rightS))])
([#Alt]
@@ -554,20 +554,20 @@
#Pop
2
- (#Access access)
+ {#Access access}
(n.* 3 (\ ..access_hash hash access))
- (#Bind register)
+ {#Bind register}
(n.* 5 (\ n.hash hash register))
- (#Bit_Fork when then else)
+ {#Bit_Fork when then else}
($_ n.* 7
(\ bit.hash hash when)
(hash then)
(\ (maybe.hash (path'_hash super)) hash else))
(^template [<factor> <tag> <hash>]
- [(<tag> item)
+ [{<tag> item}
(let [case_hash (product.hash <hash>
(path'_hash super))
item_hash (product.hash case_hash (list.hash case_hash))]
@@ -577,14 +577,14 @@
[17 #Text_Fork text.hash])
(^template [<factor> <tag>]
- [(<tag> fork)
+ [{<tag> fork}
(let [recur_hash (path'_hash super)
fork_hash (product.hash recur_hash recur_hash)]
(n.* <factor> (\ fork_hash hash fork)))])
([19 #Alt]
[23 #Seq])
- (#Then body)
+ {#Then body}
(n.* 29 (\ super hash body))
)))
@@ -593,25 +593,25 @@
(def: (= reference sample)
(case [reference sample]
- [(#Let [reference_input reference_register reference_body])
- (#Let [sample_input sample_register sample_body])]
+ [{#Let [reference_input reference_register reference_body]}
+ {#Let [sample_input sample_register sample_body]}]
(and (\= reference_input sample_input)
(n.= reference_register sample_register)
(\= reference_body sample_body))
- [(#If [reference_test reference_then reference_else])
- (#If [sample_test sample_then sample_else])]
+ [{#If [reference_test reference_then reference_else]}
+ {#If [sample_test sample_then sample_else]}]
(and (\= reference_test sample_test)
(\= reference_then sample_then)
(\= reference_else sample_else))
- [(#Get [reference_path reference_record])
- (#Get [sample_path sample_record])]
+ [{#Get [reference_path reference_record]}
+ {#Get [sample_path sample_record]}]
(and (\ (list.equivalence ..member_equivalence) = reference_path sample_path)
(\= reference_record sample_record))
- [(#Case [reference_input reference_path])
- (#Case [sample_input sample_path])]
+ [{#Case [reference_input reference_path]}
+ {#Case [sample_input sample_path]}]
(and (\= reference_input sample_input)
(\ (path'_equivalence \=) = reference_path sample_path))
@@ -626,24 +626,24 @@
(def: (hash value)
(case value
- (#Let [input register body])
+ {#Let [input register body]}
($_ n.* 2
(\ super hash input)
(\ n.hash hash register)
(\ super hash body))
- (#If [test then else])
+ {#If [test then else]}
($_ n.* 3
(\ super hash test)
(\ super hash then)
(\ super hash else))
- (#Get [path record])
+ {#Get [path record]}
($_ n.* 5
(\ (list.hash ..member_hash) hash path)
(\ super hash record))
- (#Case [input path])
+ {#Case [input path]}
($_ n.* 7
(\ super hash input)
(\ (..path'_hash super) hash path))
@@ -654,13 +654,13 @@
(def: (= reference sample)
(case [reference sample]
- [(#Scope [reference_start reference_inits reference_iteration])
- (#Scope [sample_start sample_inits sample_iteration])]
+ [{#Scope [reference_start reference_inits reference_iteration]}
+ {#Scope [sample_start sample_inits sample_iteration]}]
(and (n.= reference_start sample_start)
(\ (list.equivalence \=) = reference_inits sample_inits)
(\= reference_iteration sample_iteration))
- [(#Recur reference) (#Recur sample)]
+ [{#Recur reference} {#Recur sample}]
(\ (list.equivalence \=) = reference sample)
_
@@ -674,13 +674,13 @@
(def: (hash value)
(case value
- (#Scope [start inits iteration])
+ {#Scope [start inits iteration]}
($_ n.* 2
(\ n.hash hash start)
(\ (list.hash super) hash inits)
(\ super hash iteration))
- (#Recur resets)
+ {#Recur resets}
($_ n.* 3
(\ (list.hash super) hash resets))
)))
@@ -690,14 +690,14 @@
(def: (= reference sample)
(case [reference sample]
- [(#Abstraction [reference_environment reference_arity reference_body])
- (#Abstraction [sample_environment sample_arity sample_body])]
+ [{#Abstraction [reference_environment reference_arity reference_body]}
+ {#Abstraction [sample_environment sample_arity sample_body]}]
(and (\ (list.equivalence \=) = reference_environment sample_environment)
(n.= reference_arity sample_arity)
(\= reference_body sample_body))
- [(#Apply [reference_abstraction reference_arguments])
- (#Apply [sample_abstraction sample_arguments])]
+ [{#Apply [reference_abstraction reference_arguments]}
+ {#Apply [sample_abstraction sample_arguments]}]
(and (\= reference_abstraction sample_abstraction)
(\ (list.equivalence \=) = reference_arguments sample_arguments))
@@ -712,13 +712,13 @@
(def: (hash value)
(case value
- (#Abstraction [environment arity body])
+ {#Abstraction [environment arity body]}
($_ n.* 2
(\ (list.hash super) hash environment)
(\ n.hash hash arity)
(\ super hash body))
- (#Apply [abstraction arguments])
+ {#Apply [abstraction arguments]}
($_ n.* 3
(\ super hash abstraction)
(\ (list.hash super) hash arguments))
@@ -730,7 +730,7 @@
(def: (= reference sample)
(case [reference sample]
(^template [<tag> <equivalence>]
- [[(<tag> reference) (<tag> sample)]
+ [[{<tag> reference} {<tag> sample}]
(\ (<equivalence> \=) = reference sample)])
([#Branch ..branch_equivalence]
[#Loop ..loop_equivalence]
@@ -748,7 +748,7 @@
(def: (hash value)
(case value
(^template [<factor> <tag> <hash>]
- [(<tag> value)
+ [{<tag> value}
(n.* <factor> (\ (<hash> super) hash value))])
([2 #Branch ..branch_hash]
[3 #Loop ..loop_hash]
@@ -761,7 +761,7 @@
(def: (= reference sample)
(case [reference sample]
(^template [<tag> <equivalence>]
- [[(<tag> reference') (<tag> sample')]
+ [[{<tag> reference'} {<tag> sample'}]
(\ <equivalence> = reference' sample')])
([#Primitive ..primitive_equivalence]
[#Structure (analysis.composite_equivalence =)]
@@ -785,7 +785,7 @@
(let [recur_hash [..equivalence hash]]
(case value
(^template [<tag> <hash>]
- [(<tag> value)
+ [{<tag> value}
(\ <hash> hash value)])
([#Primitive ..primitive_hash]
[#Structure (analysis.composite_hash recur_hash)]
@@ -795,14 +795,14 @@
(template: .public (!bind_top register thenP)
[($_ ..path/seq
- (#..Bind register)
- #..Pop
+ {#..Bind register}
+ {#..Pop}
thenP)])
(template: .public (!multi_pop nextP)
[($_ ..path/seq
- #..Pop
- #..Pop
+ {#..Pop}
+ {#..Pop}
nextP)])
... TODO: There are sister patterns to the simple side checks for tuples.
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive.lux b/stdlib/source/library/lux/tool/compiler/meta/archive.lux
index d7d2fe237..83bbc51e9 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive.lux
@@ -92,8 +92,8 @@
(-> Module Archive (Try ID))
(let [(^slots [#..resolver]) (:representation archive)]
(case (dictionary.value module resolver)
- (#.Some [id _])
- (#try.Success id)
+ {#.Some [id _]}
+ {#try.Success id}
#.None
(exception.except ..unknown_document [module
@@ -103,31 +103,31 @@
(-> Module Archive (Try [ID Archive]))
(let [(^slots [#..next #..resolver]) (:representation archive)]
(case (dictionary.value module resolver)
- (#.Some _)
+ {#.Some _}
(exception.except ..module_has_already_been_reserved [module])
#.None
- (#try.Success [next
+ {#try.Success [next
(|> archive
:representation
(revised@ #..resolver (dictionary.has module [next #.None]))
(revised@ #..next ++)
- :abstraction)]))))
+ :abstraction)]})))
(def: .public (has module [descriptor document output] archive)
(-> Module [Descriptor (Document Any) Output] Archive (Try Archive))
(let [(^slots [#..resolver]) (:representation archive)]
(case (dictionary.value module resolver)
- (#.Some [id #.None])
- (#try.Success (|> archive
+ {#.Some [id #.None]}
+ {#try.Success (|> archive
:representation
- (revised@ #..resolver (dictionary.has module [id (#.Some [descriptor document output])]))
- :abstraction))
+ (revised@ #..resolver (dictionary.has module [id {#.Some [descriptor document output]}]))
+ :abstraction)}
- (#.Some [id (#.Some [existing_descriptor existing_document existing_output])])
+ {#.Some [id {#.Some [existing_descriptor existing_document existing_output]}]}
(if (same? document existing_document)
... TODO: Find out why this code allows for the same module to be added more than once. It looks fishy...
- (#try.Success archive)
+ {#try.Success archive}
(exception.except ..cannot_replace_document [module existing_document document]))
#.None
@@ -137,10 +137,10 @@
(-> Module Archive (Try [Descriptor (Document Any) Output]))
(let [(^slots [#..resolver]) (:representation archive)]
(case (dictionary.value module resolver)
- (#.Some [id (#.Some entry)])
- (#try.Success entry)
+ {#.Some [id {#.Some entry}]}
+ {#try.Success entry}
- (#.Some [id #.None])
+ {#.Some [id #.None]}
(exception.except ..module_is_only_reserved [module])
#.None
@@ -150,10 +150,10 @@
(def: .public (archived? archive module)
(-> Archive Module Bit)
(case (..find module archive)
- (#try.Success _)
+ {#try.Success _}
bit.yes
- (#try.Failure _)
+ {#try.Failure _}
bit.no))
(def: .public archived
@@ -163,14 +163,14 @@
dictionary.entries
(list.all (function (_ [module [id descriptor+document]])
(case descriptor+document
- (#.Some _) (#.Some module)
+ {#.Some _} {#.Some module}
#.None #.None)))))
(def: .public (reserved? archive module)
(-> Archive Module Bit)
(let [(^slots [#..resolver]) (:representation archive)]
(case (dictionary.value module resolver)
- (#.Some [id _])
+ {#.Some [id _]}
bit.yes
#.None
@@ -199,7 +199,7 @@
(revised@ #resolver (function (_ resolver)
(list\mix (function (_ [module [id entry]] resolver)
(case entry
- (#.Some _)
+ {#.Some _}
(dictionary.has module [id entry] resolver)
#.None
@@ -235,7 +235,7 @@
dictionary.entries
(list.all (function (_ [module [id descriptor+document]])
(case descriptor+document
- (#.Some _) (#.Some [module id])
+ {#.Some _} {#.Some [module id]}
#.None #.None)))
[version next]
(binary.result ..writer))))
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/artifact.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/artifact.lux
index a9851c301..6c2662602 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive/artifact.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/artifact.lux
@@ -27,12 +27,12 @@
(type: .public Category
(Variant
#Anonymous
- (#Definition Text)
- (#Analyser Text)
- (#Synthesizer Text)
- (#Generator Text)
- (#Directive Text)
- (#Custom Text)))
+ {#Definition Text}
+ {#Analyser Text}
+ {#Synthesizer Text}
+ {#Generator Text}
+ {#Directive Text}
+ {#Custom Text}))
(type: .public Artifact
(Record
@@ -75,7 +75,7 @@
(|> registry
:representation
(revised@ #artifacts (row.suffix [#id id
- #category (<tag> name)]))
+ #category {<tag> name}]))
(revised@ #resolver (dictionary.has name id))
:abstraction)]))
@@ -86,7 +86,7 @@
(value@ #artifacts)
row.list
(list.all (|>> (value@ #category)
- (case> (<tag> name) (#.Some name)
+ (case> {<tag> name} {#.Some name}
_ #.None)))))]
[#Definition definition definitions]
@@ -109,7 +109,7 @@
(function (_ value)
(case value
(^template [<nat> <tag> <writer>]
- [(<tag> value) ((binary.and binary.nat <writer>) [<nat> value])])
+ [{<tag> value} ((binary.and binary.nat <writer>) [<nat> value])])
([0 #Anonymous binary.any]
[1 #Definition binary.text]
[2 #Analyser binary.text]
@@ -135,7 +135,7 @@
[tag <binary>.nat]
(case tag
(^template [<nat> <tag> <parser>]
- [<nat> (\ ! each (|>> <tag>) <parser>)])
+ [<nat> (\ ! each (|>> {<tag>}) <parser>)])
([0 #Anonymous <binary>.any]
[1 #Definition <binary>.text]
[2 #Analyser <binary>.text]
@@ -153,7 +153,7 @@
(..resource registry)
(^template [<tag> <create>]
- [(<tag> name)
+ [{<tag> name}
(<create> name registry)])
([#Definition ..definition]
[#Analyser ..analyser]
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/document.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/document.lux
index 3fcf381d3..96d5a9922 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive/document.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/document.lux
@@ -37,12 +37,12 @@
(if (\ signature.equivalence =
(key.signature key)
document//signature)
- (#try.Success (:sharing [e]
+ {#try.Success (:sharing [e]
(Key e)
key
e
- (:expected document//content)))
+ (:expected document//content))}
(exception.except ..invalid_signature [(key.signature key)
document//signature]))))
diff --git a/stdlib/source/library/lux/tool/compiler/meta/cache/dependency.lux b/stdlib/source/library/lux/tool/compiler/meta/cache/dependency.lux
index e839651e4..f586c398a 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/cache/dependency.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/cache/dependency.lux
@@ -57,10 +57,10 @@
(function (_ recur module)
(do [! state.monad]
[.let [parents (case (archive.find module archive)
- (#try.Success [descriptor document])
+ {#try.Success [descriptor document]}
(value@ #descriptor.references descriptor)
- (#try.Failure error)
+ {#try.Failure error}
..fresh)]
ancestors (monad.each ! recur (set.list parents))]
(in (list\mix set.union parents ancestors)))))
diff --git a/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux b/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
index 1d7baccbd..fe1e8d223 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
@@ -95,7 +95,7 @@
(do async.monad
[? (\ fs directory? path)]
(if ?
- (in (#try.Success []))
+ (in {#try.Success []})
(\ fs make_directory path))))
(def: .public (prepare fs static module_id)
@@ -104,16 +104,16 @@
[.let [module (..module fs static module_id)]
module_exists? (\ fs directory? module)]
(if module_exists?
- (in (#try.Success []))
+ (in {#try.Success []})
(do (try.with !)
[_ (ensure_directory fs (..unversioned_lux_archive fs static))
_ (ensure_directory fs (..versioned_lux_archive fs static))]
(|> module
(\ fs make_directory)
- (\ ! each (|>> (case> (#try.Success output)
- (#try.Success [])
+ (\ ! each (|>> (case> {#try.Success output}
+ {#try.Success []}
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..cannot_prepare [(..archive fs static)
module_id
error])))))))))
@@ -223,7 +223,7 @@
output (: Output row.empty)]
(let [[analysers synthesizers generators directives] bundles]
(case input
- (#.Item [[artifact_id artifact_category] input'])
+ {#.Item [[artifact_id artifact_category] input']}
(case (do !
[data (try.of_maybe (dictionary.value (format (%.nat artifact_id) extension) actual))
.let [context [module_id artifact_id]
@@ -240,7 +240,7 @@
directives]
output]))
- (#artifact.Definition name)
+ {#artifact.Definition name}
(let [output (row.suffix [artifact_id #.None data] output)]
(if (text\= $/program.name name)
(in [definitions
@@ -258,7 +258,7 @@
directives]
output]))))
- (#artifact.Analyser extension)
+ {#artifact.Analyser extension}
(do !
[.let [output (row.suffix [artifact_id #.None data] output)]
value (\ host re_load context #.None directive)]
@@ -269,7 +269,7 @@
directives]
output]))
- (#artifact.Synthesizer extension)
+ {#artifact.Synthesizer extension}
(do !
[.let [output (row.suffix [artifact_id #.None data] output)]
value (\ host re_load context #.None directive)]
@@ -280,7 +280,7 @@
directives]
output]))
- (#artifact.Generator extension)
+ {#artifact.Generator extension}
(do !
[.let [output (row.suffix [artifact_id #.None data] output)]
value (\ host re_load context #.None directive)]
@@ -291,7 +291,7 @@
directives]
output]))
- (#artifact.Directive extension)
+ {#artifact.Directive extension}
(do !
[.let [output (row.suffix [artifact_id #.None data] output)]
value (\ host re_load context #.None directive)]
@@ -302,48 +302,48 @@
(dictionary.has extension (:as directive.Handler value) directives)]
output]))
- (#artifact.Custom name)
+ {#artifact.Custom name}
(do !
- [.let [output (row.suffix [artifact_id (#.Some name) data] output)]
- _ (\ host re_learn context (#.Some name) directive)]
+ [.let [output (row.suffix [artifact_id {#.Some name} data] output)]
+ _ (\ host re_learn context {#.Some name} directive)]
(in [definitions
[analysers
synthesizers
generators
directives]
output]))))
- (#try.Success [definitions' bundles' output'])
+ {#try.Success [definitions' bundles' output']}
(recur input' definitions' bundles' output')
failure
failure)
#.End
- (#try.Success [definitions bundles output])))))
+ {#try.Success [definitions bundles output]}))))
content (document.read $.key document)
definitions (monad.each ! (function (_ [def_name def_global])
(case def_global
(^template [<tag>]
- [(<tag> payload)
- (in [def_name (<tag> payload)])])
+ [{<tag> payload}
+ (in [def_name {<tag> payload}])])
([#.Alias]
[#.Label]
[#.Slot])
- (#.Definition [exported? type _])
+ {#.Definition [exported? type _]}
(|> definitions
(dictionary.value def_name)
try.of_maybe
(\ ! each (|>> [exported? type]
- #.Definition
+ {#.Definition}
[def_name])))
- (#.Type [exported? _ labels])
+ {#.Type [exported? _ labels]}
(|> definitions
(dictionary.value def_name)
try.of_maybe
(\ ! each (function (_ def_value)
- [def_name (#.Type [exported? (:as .Type def_value) labels])])))))
+ [def_name {#.Type [exported? (:as .Type def_value) labels]}])))))
(value@ #.definitions content))]
(in [(document.write $.key (with@ #.definitions definitions content))
bundles])))
@@ -388,7 +388,7 @@
(|>> (list.all (function (_ [valid_cache? [module_name [module_id _]]])
(if valid_cache?
#.None
- (#.Some [module_name module_id]))))
+ {#.Some [module_name module_id]})))
(dictionary.of_list text.hash)))
(def: (full_purge caches load_order)
@@ -477,12 +477,12 @@
(do async.monad
[binary (\ fs read (..general_descriptor fs static))]
(case binary
- (#try.Success binary)
+ {#try.Success binary}
(do (try.with async.monad)
[archive (async\in (archive.import ///.version binary))]
(..load_every_reserved_module host_environment fs static import contexts archive))
- (#try.Failure error)
- (in (#try.Success [archive.empty
+ {#try.Failure error}
+ (in {#try.Success [archive.empty
(fresh_analysis_state (value@ #static.host static))
- ..empty_bundles])))))
+ ..empty_bundles]}))))
diff --git a/stdlib/source/library/lux/tool/compiler/meta/io/context.lux b/stdlib/source/library/lux/tool/compiler/meta/io/context.lux
index af43ef991..69a0858e6 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/io/context.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/io/context.lux
@@ -61,12 +61,12 @@
#.End
(async\in (exception.except ..cannot_find_module [importer module]))
- (#.Item context contexts')
+ {#.Item context contexts'}
(let [path (format (..path fs context module) extension)]
(do async.monad
[? (\ fs file? path)]
(if ?
- (in (#try.Success path))
+ (in {#try.Success path})
(find_source_file fs importer contexts' module extension))))))
(def: (full_host_extension partial_host_extension)
@@ -81,12 +81,12 @@
(do [! async.monad]
[outcome (..find_source_file fs importer contexts module (..full_host_extension partial_host_extension))]
(case outcome
- (#try.Success path)
+ {#try.Success path}
(|> path
(\ fs read)
(\ (try.with !) each (|>> [path])))
- (#try.Failure _)
+ {#try.Failure _}
(do [! (try.with !)]
[path (..find_source_file fs importer contexts module ..lux_extension)]
(|> path
@@ -97,14 +97,14 @@
(-> Module Import Extension Module (Try [file.Path Binary]))
(let [path (format module (..full_host_extension partial_host_extension))]
(case (dictionary.value path import)
- (#.Some data)
- (#try.Success [path data])
+ {#.Some data}
+ {#try.Success [path data]}
#.None
(let [path (format module ..lux_extension)]
(case (dictionary.value path import)
- (#.Some data)
- (#try.Success [path data])
+ {#.Some data}
+ {#try.Success [path data]}
#.None
(exception.except ..cannot_find_module [importer module]))))))
@@ -117,10 +117,10 @@
(do [! async.monad]
[outcome (find_local_source_file fs importer import contexts partial_host_extension module)]
(case outcome
- (#try.Success [path data])
+ {#try.Success [path data]}
(in outcome)
- (#try.Failure _)
+ {#try.Failure _}
(in (..find_library_source_file importer import partial_host_extension module)))))
(def: .public (read fs importer import contexts partial_host_extension module)
@@ -129,13 +129,13 @@
(do (try.with async.monad)
[[path binary] (..find_any_source_file fs importer import contexts partial_host_extension module)]
(case (\ utf8.codec decoded binary)
- (#try.Success code)
+ {#try.Success code}
(in [#////.module module
#////.file path
#////.hash (text\hash code)
#////.code code])
- (#try.Failure _)
+ {#try.Failure _}
(async\in (exception.except ..cannot_read_module [module])))))
(type: .public Enumeration
diff --git a/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux b/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux
index f8bb67b70..75eca1c30 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux
@@ -208,29 +208,29 @@
duplicates duplicates
sink sink]
(case (java/util/jar/JarInputStream::getNextJarEntry input)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success ?entry)
+ {#try.Success ?entry}
(case ?entry
#.None
(exec
(java/io/Closeable::close input)
- (#try.Success [entries duplicates sink]))
+ {#try.Success [entries duplicates sink]})
- (#.Some entry)
+ {#.Some entry}
(let [entry_path (java/util/zip/ZipEntry::getName entry)
entry_size (java/util/zip/ZipEntry::getSize entry)]
(if (not (or (java/util/zip/ZipEntry::isDirectory entry)
(text.starts_with? "META-INF/maven/" entry_path)
(text.starts_with? "META-INF/leiningen/" entry_path)))
(case (java/util/jar/JarOutputStream::putNextEntry (java/util/jar/JarEntry::new entry_path) sink)
- (#try.Failure error)
+ {#try.Failure error}
(recur entries
(set.has entry_path duplicates)
sink)
- (#try.Success _)
+ {#try.Success _}
(let [[entry_size entry_data] (read_jar_entry entry input)]
(recur (set.has entry_path entries)
duplicates
diff --git a/stdlib/source/library/lux/tool/compiler/meta/packager/scheme.lux b/stdlib/source/library/lux/tool/compiler/meta/packager/scheme.lux
index b471a30f5..c78d07b6f 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/packager/scheme.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/packager/scheme.lux
@@ -114,7 +114,7 @@
(\ encoding.utf8 encoded)
tar.content))
module_file (tar.path (..module_file module_id))]
- (in (#tar.Normal [module_file now ..mode ..ownership entry_content]))))
+ (in {#tar.Normal [module_file now ..mode ..ownership entry_content]})))
(def: .public (package now)
(-> Instant Packager)
diff --git a/stdlib/source/library/lux/tool/compiler/phase.lux b/stdlib/source/library/lux/tool/compiler/phase.lux
index 3f6caddbf..4809e8ed9 100644
--- a/stdlib/source/library/lux/tool/compiler/phase.lux
+++ b/stdlib/source/library/lux/tool/compiler/phase.lux
@@ -53,13 +53,13 @@
(All (_ s o)
(Operation s s))
(function (_ state)
- (#try.Success [state state])))
+ {#try.Success [state state]}))
(def: .public (set_state state)
(All (_ s o)
(-> s (Operation s Any)))
(function (_ _)
- (#try.Success [state []])))
+ {#try.Success [state []]}))
(def: .public (sub [get set] operation)
(All (_ s s' o)
@@ -94,7 +94,7 @@
(def: .public identity
(All (_ s a) (Phase s a a))
(function (_ archive input state)
- (#try.Success [state input])))
+ {#try.Success [state input]}))
(def: .public (composite pre post)
(All (_ s0 s1 i t o)
diff --git a/stdlib/source/library/lux/tool/compiler/reference.lux b/stdlib/source/library/lux/tool/compiler/reference.lux
index 4e48f1db9..0f345a12f 100644
--- a/stdlib/source/library/lux/tool/compiler/reference.lux
+++ b/stdlib/source/library/lux/tool/compiler/reference.lux
@@ -21,8 +21,8 @@
(type: .public Reference
(Variant
- (#Variable Variable)
- (#Constant Constant)))
+ {#Variable Variable}
+ {#Constant Constant}))
(implementation: .public equivalence
(Equivalence Reference)
@@ -30,7 +30,7 @@
(def: (= reference sample)
(case [reference sample]
(^template [<tag> <equivalence>]
- [[(<tag> reference) (<tag> sample)]
+ [[{<tag> reference} {<tag> sample}]
(\ <equivalence> = reference sample)])
([#Variable /variable.equivalence]
[#Constant name.equivalence])
@@ -47,7 +47,7 @@
(def: (hash value)
(case value
(^template [<factor> <tag> <hash>]
- [(<tag> value)
+ [{<tag> value}
($_ n.* <factor>
(\ <hash> hash value))])
([2 #Variable /variable.hash]
@@ -57,7 +57,7 @@
(template [<name> <family> <tag>]
[(template: .public (<name> content)
[(<| <family>
- <tag>
+ {<tag>}
content)])]
[local #..Variable #/variable.Local]
@@ -66,7 +66,7 @@
(template [<name> <tag>]
[(template: .public (<name> content)
- [(<| <tag>
+ [(<| {<tag>}
content)])]
[variable #..Variable]
@@ -79,8 +79,8 @@
(def: .public format
(Format Reference)
- (|>> (case> (#Variable variable)
+ (|>> (case> {#Variable variable}
(/variable.format variable)
- (#Constant constant)
+ {#Constant constant}
(%.name constant))))
diff --git a/stdlib/source/library/lux/tool/compiler/reference/variable.lux b/stdlib/source/library/lux/tool/compiler/reference/variable.lux
index eea52b976..bde1de15b 100644
--- a/stdlib/source/library/lux/tool/compiler/reference/variable.lux
+++ b/stdlib/source/library/lux/tool/compiler/reference/variable.lux
@@ -19,8 +19,8 @@
(type: .public Variable
(Variant
- (#Local Register)
- (#Foreign Register)))
+ {#Local Register}
+ {#Foreign Register}))
(implementation: .public equivalence
(Equivalence Variable)
@@ -28,7 +28,7 @@
(def: (= reference sample)
(case [reference sample]
(^template [<tag>]
- [[(<tag> reference') (<tag> sample')]
+ [[{<tag> reference'} {<tag> sample'}]
(n.= reference' sample')])
([#Local] [#Foreign])
@@ -43,14 +43,14 @@
(def: hash
(|>> (case> (^template [<factor> <tag>]
- [(<tag> register)
+ [{<tag> register}
($_ n.* <factor>
(\ n.hash hash register))])
([2 #Local]
[3 #Foreign])))))
(template: .public (self)
- [(#..Local 0)])
+ [{#..Local 0}])
(def: .public self?
(-> Variable Bit)
@@ -62,8 +62,8 @@
(def: .public format
(Format Variable)
- (|>> (case> (#Local local)
+ (|>> (case> {#Local local}
(%.format "+" (%.nat local))
- (#Foreign foreign)
+ {#Foreign foreign}
(%.format "-" (%.nat foreign)))))
diff --git a/stdlib/source/library/lux/tool/interpreter.lux b/stdlib/source/library/lux/tool/interpreter.lux
index 79c8073f3..85020815f 100644
--- a/stdlib/source/library/lux/tool/interpreter.lux
+++ b/stdlib/source/library/lux/tool/interpreter.lux
@@ -135,10 +135,10 @@
<Interpretation>
(interpret_directive code)))
- (#try.Success [state' output])
- (#try.Success [state' output])
+ {#try.Success [state' output]}
+ {#try.Success [state' output]}
- (#try.Failure error)
+ {#try.Failure error}
(if (ex.match? total.not_a_directive error)
(<| (phase.result' state)
(:sharing [anchor expression directive]
@@ -147,7 +147,7 @@
<Interpretation>
(interpret_expression code)))
- (#try.Failure error)))))
+ {#try.Failure error}))))
)
(def: (execute configuration code)
@@ -218,12 +218,12 @@
(text\= ..exit_command line))
(\ Console<!> write ..farewell_message)
(case (read_eval_print (revised@ #source (add_line line) context))
- (#try.Success [context' representation])
+ {#try.Success [context' representation]}
(do !
[_ (\ Console<!> write representation)]
(recur context' #0))
- (#try.Failure error)
+ {#try.Failure error}
(if (ex.match? syntax.end_of_file error)
(recur context #1)
(exec (log! (ex.error ..error error))
diff --git a/stdlib/source/library/lux/type.lux b/stdlib/source/library/lux/type.lux
index 7c347bd0e..c99823da1 100644
--- a/stdlib/source/library/lux/type.lux
+++ b/stdlib/source/library/lux/type.lux
@@ -33,7 +33,7 @@
(loop [num_args 0
type type]
(case type
- (<tag> env sub_type)
+ {<tag> env sub_type}
(recur (++ num_args) sub_type)
_
@@ -46,7 +46,7 @@
(def: .public (flat_function type)
(-> Type [(List Type) Type])
(case type
- (#.Function in out')
+ {#.Function in out'}
(let [[ins out] (flat_function out')]
[(list& in ins) out])
@@ -56,7 +56,7 @@
(def: .public (flat_application type)
(-> Type [Type (List Type)])
(case type
- (#.Apply arg func')
+ {#.Apply arg func'}
(let [[func args] (flat_application func')]
[func (list\composite args (list arg))])
@@ -67,7 +67,7 @@
[(def: .public (<name> type)
(-> Type (List Type))
(case type
- (<tag> left right)
+ {<tag> left right}
(list& left (<name> right))
_
@@ -80,7 +80,7 @@
(def: .public (format type)
(-> Type Text)
(case type
- (#.Primitive name params)
+ {#.Primitive name params}
($_ text\composite
"(primitive "
(text.enclosed' text.double_quote name)
@@ -90,7 +90,7 @@
")")
(^template [<tag> <open> <close> <flat>]
- [(<tag> _)
+ [{<tag> _}
($_ text\composite <open>
(|> (<flat> type)
(list\each format)
@@ -101,7 +101,7 @@
([#.Sum "(Or " ")" flat_variant]
[#.Product "[" "]" flat_tuple])
- (#.Function input output)
+ {#.Function input output}
(let [[ins out] (flat_function type)]
($_ text\composite "(-> "
(|> ins
@@ -111,26 +111,26 @@
(list\mix text\composite ""))
" " (format out) ")"))
- (#.Parameter idx)
+ {#.Parameter idx}
(n\encoded idx)
- (#.Var id)
+ {#.Var id}
($_ text\composite "⌈v:" (n\encoded id) "⌋")
- (#.Ex id)
+ {#.Ex id}
($_ text\composite "⟨e:" (n\encoded id) "⟩")
- (#.Apply param fun)
+ {#.Apply param fun}
(let [[type_func type_args] (flat_application type)]
($_ text\composite "(" (format type_func) " " (|> type_args (list\each format) list.reversed (list.interposed " ") (list\mix text\composite "")) ")"))
(^template [<tag> <desc>]
- [(<tag> env body)
+ [{<tag> env body}
($_ text\composite "(" <desc> " {" (|> env (list\each format) (text.interposed " ")) "} " (format body) ")")])
([#.UnivQ "All"]
[#.ExQ "Ex"])
- (#.Named [module name] type)
+ {#.Named [module name] type}
($_ text\composite module "." name)
))
@@ -138,27 +138,27 @@
(def: (reduced env type)
(-> (List Type) Type Type)
(case type
- (#.Primitive name params)
- (#.Primitive name (list\each (reduced env) params))
+ {#.Primitive name params}
+ {#.Primitive name (list\each (reduced env) params)}
(^template [<tag>]
- [(<tag> left right)
- (<tag> (reduced env left) (reduced env right))])
+ [{<tag> left right}
+ {<tag> (reduced env left) (reduced env right)}])
([#.Sum] [#.Product]
[#.Function] [#.Apply])
(^template [<tag>]
- [(<tag> old_env def)
+ [{<tag> old_env def}
(case old_env
#.End
- (<tag> env def)
+ {<tag> env def}
_
- (<tag> (list\each (reduced env) old_env) def))])
+ {<tag> (list\each (reduced env) old_env) def})])
([#.UnivQ]
[#.ExQ])
- (#.Parameter idx)
+ {#.Parameter idx}
(maybe.else (panic! ($_ text\composite
"Unknown type parameter" text.new_line
" Index: " (n\encoded idx) text.new_line
@@ -183,7 +183,7 @@
@.php false]
(same? x y))
(case [x y]
- [(#.Primitive xname xparams) (#.Primitive yname yparams)]
+ [{#.Primitive xname xparams} {#.Primitive yname yparams}]
(and (text\= xname yname)
(n.= (list.size yparams) (list.size xparams))
(list\mix (.function (_ [x y] prev) (and prev (= x y)))
@@ -191,26 +191,26 @@
(list.zipped/2 xparams yparams)))
(^template [<tag>]
- [[(<tag> xid) (<tag> yid)]
+ [[{<tag> xid} {<tag> yid}]
(n.= yid xid)])
([#.Var] [#.Ex] [#.Parameter])
- (^or [(#.Function xleft xright) (#.Function yleft yright)]
- [(#.Apply xleft xright) (#.Apply yleft yright)])
+ (^or [{#.Function xleft xright} {#.Function yleft yright}]
+ [{#.Apply xleft xright} {#.Apply yleft yright}])
(and (= xleft yleft)
(= xright yright))
- [(#.Named xname xtype) (#.Named yname ytype)]
+ [{#.Named xname xtype} {#.Named yname ytype}]
(and (name\= xname yname)
(= xtype ytype))
(^template [<tag>]
- [[(<tag> xL xR) (<tag> yL yR)]
+ [[{<tag> xL xR} {<tag> yL yR}]
(and (= xL yL) (= xR yR))])
([#.Sum] [#.Product])
- (^or [(#.UnivQ xenv xbody) (#.UnivQ yenv ybody)]
- [(#.ExQ xenv xbody) (#.ExQ yenv ybody)])
+ (^or [{#.UnivQ xenv xbody} {#.UnivQ yenv ybody}]
+ [{#.ExQ xenv xbody} {#.ExQ yenv ybody}])
(and (n.= (list.size yenv) (list.size xenv))
(= xbody ybody)
(list\mix (.function (_ [x y] prev) (and prev (= x y)))
@@ -225,21 +225,21 @@
(-> (List Type) Type (Maybe Type))
(case params
#.End
- (#.Some func)
+ {#.Some func}
- (#.Item param params')
+ {#.Item param params'}
(case func
(^template [<tag>]
- [(<tag> env body)
+ [{<tag> env body}
(|> body
(reduced (list& func param env))
(applied params'))])
([#.UnivQ] [#.ExQ])
- (#.Apply A F)
+ {#.Apply A F}
(applied (list& A params) F)
- (#.Named name unnamed)
+ {#.Named name unnamed}
(applied params unnamed)
_
@@ -248,36 +248,36 @@
(def: .public (code type)
(-> Type Code)
(case type
- (#.Primitive name params)
- (` (#.Primitive (~ (code.text name))
- (.list (~+ (list\each code params)))))
+ {#.Primitive name params}
+ (` {#.Primitive (~ (code.text name))
+ (.list (~+ (list\each code params)))})
(^template [<tag>]
- [(<tag> idx)
- (` (<tag> (~ (code.nat idx))))])
+ [{<tag> idx}
+ (` {<tag> (~ (code.nat idx))})])
([#.Var] [#.Ex] [#.Parameter])
(^template [<tag>]
- [(<tag> left right)
- (` (<tag> (~ (code left))
- (~ (code right))))])
+ [{<tag> left right}
+ (` {<tag> (~ (code left))
+ (~ (code right))})])
([#.Sum] [#.Product] [#.Function] [#.Apply])
- (#.Named name sub_type)
+ {#.Named name sub_type}
(code.identifier name)
(^template [<tag>]
- [(<tag> env body)
- (` (<tag> (.list (~+ (list\each code env)))
- (~ (code body))))])
+ [{<tag> env body}
+ (` {<tag> (.list (~+ (list\each code env)))
+ (~ (code body))})])
([#.UnivQ] [#.ExQ])
))
(def: .public (de_aliased type)
(-> Type Type)
(case type
- (#.Named _ (#.Named name type'))
- (de_aliased (#.Named name type'))
+ {#.Named _ {#.Named name type'}}
+ (de_aliased {#.Named name type'})
_
type))
@@ -285,7 +285,7 @@
(def: .public (anonymous type)
(-> Type Type)
(case type
- (#.Named name type')
+ {#.Named name type'}
(anonymous type')
_
@@ -298,11 +298,11 @@
#.End
<base>
- (#.Item type #.End)
+ {#.Item type #.End}
type
- (#.Item type types')
- (<ctor> type (<name> types'))))]
+ {#.Item type types'}
+ {<ctor> type (<name> types')}))]
[variant Nothing #.Sum]
[tuple Any #.Product]
@@ -314,8 +314,8 @@
#.End
output
- (#.Item input inputs')
- (#.Function input (function inputs' output))))
+ {#.Item input inputs'}
+ {#.Function input (function inputs' output)}))
(def: .public (application params quant)
(-> (List Type) Type Type)
@@ -323,15 +323,15 @@
#.End
quant
- (#.Item param params')
- (application params' (#.Apply param quant))))
+ {#.Item param params'}
+ (application params' {#.Apply param quant})))
(template [<name> <tag>]
[(def: .public (<name> size body)
(-> Nat Type Type)
(case size
0 body
- _ (|> body (<name> (-- size)) (<tag> (list)))))]
+ _ (|> body (<name> (-- size)) {<tag> (list)})))]
[univ_q #.UnivQ]
[ex_q #.ExQ]
@@ -340,15 +340,15 @@
(def: .public (quantified? type)
(-> Type Bit)
(case type
- (#.Named [module name] _type)
+ {#.Named [module name] _type}
(quantified? _type)
- (#.Apply A F)
+ {#.Apply A F}
(|> (..applied (list A) F)
(\ maybe.monad each quantified?)
(maybe.else #0))
- (^or (#.UnivQ _) (#.ExQ _))
+ (^or {#.UnivQ _} {#.ExQ _})
#1
_
@@ -361,12 +361,12 @@
_ (|> element_type
(array (-- depth))
(list)
- (#.Primitive array.type_name))))
+ {#.Primitive array.type_name})))
(def: .public (flat_array type)
(-> Type [Nat Type])
(case type
- (^multi (^ (#.Primitive name (list element_type)))
+ (^multi (^ {#.Primitive name (list element_type)})
(text\= array.type_name name))
(let [[depth element_type] (flat_array element_type)]
[(++ depth) element_type])
@@ -391,7 +391,7 @@
(<>.maybe (<>.after (<code>.identifier! ..secret_marker) <code>.any)))
<code>.any)])
(case input
- (#.Left [valueN valueC])
+ {#.Left [valueN valueC]}
(do meta.monad
[location meta.location
valueT (meta.type valueN)
@@ -399,7 +399,7 @@
($_ text\composite
(name\encoded (name_of ..:log!)) " " (location.format location) text.new_line
"Expression: " (case valueC
- (#.Some valueC)
+ {#.Some valueC}
(code.format valueC)
#.None
@@ -408,7 +408,7 @@
" Type: " (..format valueT)))]]
(in (list (code.identifier valueN))))
- (#.Right valueC)
+ {#.Right valueC}
(macro.with_identifiers [g!value]
(in (list (` (.let [(~ g!value) (~ valueC)]
(..:log! (~ valueC) (~ (code.identifier ..secret_marker)) (~ g!value)))))))))
@@ -429,7 +429,7 @@
#.None
(in (list casterC))
- (#.Some value)
+ {#.Some value}
(in (list (` ((~ casterC) (~ value)))))))))
(type: Typed
diff --git a/stdlib/source/library/lux/type/abstract.lux b/stdlib/source/library/lux/type/abstract.lux
index 9a9e1d473..d3a6b5c35 100644
--- a/stdlib/source/library/lux/type/abstract.lux
+++ b/stdlib/source/library/lux/type/abstract.lux
@@ -28,7 +28,7 @@
(def: (push value stack)
(All (_ a) (-> a (Stack a) (Stack a)))
- (#.Item value stack))
+ {#.Item value stack})
(def: pop
(All (_ a) (-> (Stack a) (Maybe (Stack a))))
@@ -48,7 +48,7 @@
(template: (!peek <source> <reference> <then>)
[(loop [entries <source>]
(case entries
- (#.Item [head_name head] tail)
+ {#.Item [head_name head] tail}
(if (text\= <reference> head_name)
<then>
(recur tail))
@@ -60,13 +60,13 @@
(-> Text (List [Text Global]) (Stack Frame))
(!peek source reference
(case head
- (#.Definition [exported? frame_type frame_value])
+ {#.Definition [exported? frame_type frame_value]}
(:as (Stack Frame) frame_value)
- (^or (#.Type _)
- (#.Alias _)
- (#.Label _)
- (#.Slot _))
+ (^or {#.Type _}
+ {#.Alias _}
+ {#.Label _}
+ {#.Slot _})
(undefined))))
(def: (peek_frames reference definition_reference source)
@@ -82,15 +82,15 @@
(let [[reference definition_reference] (name_of ..frames)
current_frames (peek_frames reference definition_reference (value@ #.modules compiler))]
(case (case frame
- (#.Some frame)
+ {#.Some frame}
(list.example (function (_ [actual _])
(text\= frame actual))
current_frames)
#.None
(..peek current_frames))
- (#.Some frame)
- (#.Right [compiler frame])
+ {#.Some frame}
+ {#.Right [compiler frame]}
#.None
(exception.except ..no_active_frames [])))))
@@ -101,17 +101,17 @@
(def: .public (specific name)
(-> Text (Meta Frame))
- (..peek! (#.Some name)))
+ (..peek! {#.Some name}))
(template: (!push <source> <reference> <then>)
[(loop [entries <source>]
(case entries
- (#.Item [head_name head] tail)
+ {#.Item [head_name head] tail}
(if (text\= <reference> head_name)
- (#.Item [head_name <then>]
- tail)
- (#.Item [head_name head]
- (recur tail)))
+ {#.Item [head_name <then>]
+ tail}
+ {#.Item [head_name head]
+ (recur tail)})
#.End
(undefined)))])
@@ -120,15 +120,15 @@
(-> Text Frame (List [Text Global]) (List [Text Global]))
(!push source reference
(case head
- (#.Definition [exported? frames_type frames_value])
- (#.Definition [exported?
+ {#.Definition [exported? frames_type frames_value]}
+ {#.Definition [exported?
frames_type
- (..push frame (:as (Stack Frame) frames_value))])
+ (..push frame (:as (Stack Frame) frames_value))]}
- (^or (#.Type _)
- (#.Alias _)
- (#.Label _)
- (#.Slot _))
+ (^or {#.Type _}
+ {#.Alias _}
+ {#.Label _}
+ {#.Slot _})
(undefined))))
(def: (push_frame [module_reference definition_reference] frame source)
@@ -139,30 +139,30 @@
(def: (push! frame)
(-> Frame (Meta Any))
(function (_ compiler)
- (#.Right [(revised@ #.modules
+ {#.Right [(revised@ #.modules
(..push_frame (name_of ..frames) frame)
compiler)
- []])))
+ []]}))
(def: (pop_frame_definition reference source)
(-> Text (List [Text Global]) (List [Text Global]))
(!push source reference
(case head
- (#.Definition [exported? frames_type frames_value])
- (#.Definition [exported?
+ {#.Definition [exported? frames_type frames_value]}
+ {#.Definition [exported?
frames_type
(let [current_frames (:as (Stack Frame) frames_value)]
(case (..pop current_frames)
- (#.Some current_frames')
+ {#.Some current_frames'}
current_frames'
#.None
- current_frames))])
+ current_frames))]}
- (^or (#.Type _)
- (#.Alias _)
- (#.Label _)
- (#.Slot _))
+ (^or {#.Type _}
+ {#.Alias _}
+ {#.Label _}
+ {#.Slot _})
(undefined))))
(def: (pop_frame [module_reference definition_reference] source)
@@ -172,10 +172,10 @@
(syntax: (pop! [])
(function (_ compiler)
- (#.Right [(revised@ #.modules
+ {#.Right [(revised@ #.modules
(..pop_frame (name_of ..frames))
compiler)
- (list)])))
+ (list)]}))
(def: cast
(Parser [(Maybe Text) Code])
@@ -242,8 +242,8 @@
(type: (Selection a)
(Variant
- (#Specific Code a)
- (#Current a)))
+ {#Specific Code a}
+ {#Current a}))
(def: (selection parser)
(All (_ a) (-> (Parser a) (Parser (Selection a))))
@@ -252,26 +252,26 @@
(syntax: .public (:transmutation [selection (..selection <code>.any)])
(case selection
- (#Specific specific value)
+ {#Specific specific value}
(in (list (` (.|> (~ value)
(..:representation (~ specific))
(..:abstraction (~ specific))))))
- (#Current value)
+ {#Current value}
(in (list (` (.|> (~ value) ..:representation ..:abstraction))))))
(syntax: .public (^:representation [selection (<code>.form (..selection <code>.local_identifier))
body <code>.any
branches (<>.some <code>.any)])
(case selection
- (#Specific specific name)
+ {#Specific specific name}
(let [g!var (code.local_identifier name)]
(in (list& g!var
(` (.let [(~ g!var) (..:representation (~ specific) (~ g!var))]
(~ body)))
branches)))
- (#Current name)
+ {#Current name}
(let [g!var (code.local_identifier name)]
(in (list& g!var
(` (.let [(~ g!var) (..:representation (~ g!var))]
diff --git a/stdlib/source/library/lux/type/check.lux b/stdlib/source/library/lux/type/check.lux
index bf8210953..c7001e71f 100644
--- a/stdlib/source/library/lux/type/check.lux
+++ b/stdlib/source/library/lux/type/check.lux
@@ -76,11 +76,11 @@
(def: (each f fa)
(function (_ context)
(case (fa context)
- (#try.Success [context' output])
- (#try.Success [context' (f output)])
+ {#try.Success [context' output]}
+ {#try.Success [context' (f output)]}
- (#try.Failure error)
- (#try.Failure error)))))
+ {#try.Failure error}
+ {#try.Failure error}))))
(implementation: .public apply
(Apply Check)
@@ -90,16 +90,16 @@
(def: (on fa ff)
(function (_ context)
(case (ff context)
- (#try.Success [context' f])
+ {#try.Success [context' f]}
(case (fa context')
- (#try.Success [context'' a])
- (#try.Success [context'' (f a)])
+ {#try.Success [context'' a]}
+ {#try.Success [context'' (f a)]}
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
)))
)
@@ -110,21 +110,21 @@
(def: (in x)
(function (_ context)
- (#try.Success [context x])))
+ {#try.Success [context x]}))
(def: (conjoint ffa)
(function (_ context)
(case (ffa context)
- (#try.Success [context' fa])
+ {#try.Success [context' fa]}
(case (fa context')
- (#try.Success [context'' a])
- (#try.Success [context'' a])
+ {#try.Success [context'' a]}
+ {#try.Success [context'' a]}
- (#try.Failure error)
- (#try.Failure error))
+ {#try.Failure error}
+ {#try.Failure error})
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
)))
)
@@ -132,15 +132,15 @@
(def: (var::new id plist)
(-> Var Type_Vars Type_Vars)
- (#.Item [id #.None] plist))
+ {#.Item [id #.None] plist})
(def: (var::get id plist)
(-> Var Type_Vars (Maybe (Maybe Type)))
(case plist
- (#.Item [var_id var_type]
- plist')
+ {#.Item [var_id var_type]
+ plist'}
(if (!n\= id var_id)
- (#.Some var_type)
+ {#.Some var_type}
(var::get id plist'))
#.End
@@ -152,34 +152,34 @@
#.End
(list [id value])
- (#.Item [var_id var_type]
- plist')
+ {#.Item [var_id var_type]
+ plist'}
(if (!n\= id var_id)
- (#.Item [var_id value]
- plist')
- (#.Item [var_id var_type]
- (var::put id value plist')))))
+ {#.Item [var_id value]
+ plist'}
+ {#.Item [var_id var_type]
+ (var::put id value plist')})))
(def: .public (result context proc)
(All (_ a) (-> Type_Context (Check a) (Try a)))
(case (proc context)
- (#try.Success [context' output])
- (#try.Success output)
+ {#try.Success [context' output]}
+ {#try.Success output}
- (#try.Failure error)
- (#try.Failure error)))
+ {#try.Failure error}
+ {#try.Failure error}))
(def: .public (failure message)
(All (_ a) (-> Text (Check a)))
(function (_ context)
- (#try.Failure message)))
+ {#try.Failure message}))
(def: .public (assertion message test)
(-> Text Bit (Check Any))
(function (_ context)
(if test
- (#try.Success [context []])
- (#try.Failure message))))
+ {#try.Success [context []]}
+ {#try.Failure message})))
(def: .public (except exception message)
(All (_ e a) (-> (Exception e) e (Check a)))
@@ -189,26 +189,26 @@
(Check [Nat Type])
(function (_ context)
(let [id (value@ #.ex_counter context)]
- (#try.Success [(revised@ #.ex_counter ++ context)
- [id (#.Ex id)]]))))
+ {#try.Success [(revised@ #.ex_counter ++ context)
+ [id {#.Ex id}]]})))
(template [<name> <outputT> <fail> <succeed>]
[(def: .public (<name> id)
(-> Var (Check <outputT>))
(function (_ context)
(case (|> context (value@ #.var_bindings) (var::get id))
- (^or (#.Some (#.Some (#.Var _)))
- (#.Some #.None))
- (#try.Success [context <fail>])
+ (^or {#.Some {#.Some {#.Var _}}}
+ {#.Some #.None})
+ {#try.Success [context <fail>]}
- (#.Some (#.Some bound))
- (#try.Success [context <succeed>])
+ {#.Some {#.Some bound}}
+ {#try.Success [context <succeed>]}
#.None
(exception.except ..unknown_type_var id))))]
[bound? Bit false true]
- [peek (Maybe Type) #.None (#.Some bound)]
+ [peek (Maybe Type) #.None {#.Some bound}]
)
(def: .public (read id)
@@ -216,7 +216,7 @@
(do ..monad
[?type (peek id)]
(case ?type
- (#.Some type)
+ {#.Some type}
(in type)
#.None
@@ -226,10 +226,10 @@
(-> Var (Check Type))
(function (_ context)
(case (|> context (value@ #.var_bindings) (var::get id))
- (#.Some (#.Some bound))
- (#try.Success [context bound])
+ {#.Some {#.Some bound}}
+ {#try.Success [context bound]}
- (#.Some _)
+ {#.Some _}
(exception.except ..unbound_type_var id)
_
@@ -239,11 +239,11 @@
(-> Type Var (Check Any))
(function (_ context)
(case (|> context (value@ #.var_bindings) (var::get id))
- (#.Some #.None)
- (#try.Success [(revised@ #.var_bindings (var::put id (#.Some type)) context)
- []])
+ {#.Some #.None}
+ {#try.Success [(revised@ #.var_bindings (var::put id {#.Some type}) context)
+ []]}
- (#.Some (#.Some bound))
+ {#.Some {#.Some bound}}
(exception.except ..cannot_rebind_var [id type bound])
_
@@ -253,9 +253,9 @@
(-> Type Var (Check Any))
(function (_ context)
(case (|> context (value@ #.var_bindings) (var::get id))
- (#.Some _)
- (#try.Success [(revised@ #.var_bindings (var::put id (#.Some type)) context)
- []])
+ {#.Some _}
+ {#try.Success [(revised@ #.var_bindings (var::put id {#.Some type}) context)
+ []]}
_
(exception.except ..unknown_type_var id))))
@@ -264,32 +264,32 @@
(Check [Var Type])
(function (_ context)
(let [id (value@ #.var_counter context)]
- (#try.Success [(|> context
+ {#try.Success [(|> context
(revised@ #.var_counter ++)
(revised@ #.var_bindings (var::new id)))
- [id (#.Var id)]]))))
+ [id {#.Var id}]]})))
(def: (on argT funcT)
(-> Type Type (Check Type))
(case funcT
- (#.Var func_id)
+ {#.Var func_id}
(do ..monad
[?funcT' (peek func_id)]
(case ?funcT'
- (#.Some funcT')
+ {#.Some funcT'}
(on argT funcT')
_
(except ..invalid_type_application [funcT argT])))
- (#.Apply argT' funcT')
+ {#.Apply argT' funcT'}
(do ..monad
[funcT'' (on argT' funcT')]
(on argT funcT''))
_
(case (//.applied (list argT) funcT)
- (#.Some output)
+ {#.Some output}
(check\in output)
_
@@ -309,18 +309,18 @@
(loop [current start
output (set.has start empty_ring)]
(case (|> context (value@ #.var_bindings) (var::get current))
- (#.Some (#.Some type))
+ {#.Some {#.Some type}}
(case type
- (#.Var post)
+ {#.Var post}
(if (!n\= start post)
- (#try.Success [context output])
+ {#try.Success [context output]}
(recur post (set.has post output)))
_
- (#try.Success [context empty_ring]))
+ {#try.Success [context empty_ring]})
- (#.Some #.None)
- (#try.Success [context output])
+ {#.Some #.None}
+ {#try.Success [context output]}
#.None
(exception.except ..unknown_type_var current)))))
@@ -335,17 +335,17 @@
(All (_ a) (-> (Check a) (Check (Maybe a))))
(function (_ context)
(case (op context)
- (#try.Success [context' output])
- (#try.Success [context' (#.Some output)])
+ {#try.Success [context' output]}
+ {#try.Success [context' {#.Some output}]}
- (#try.Failure _)
- (#try.Success [context #.None]))))
+ {#try.Failure _}
+ {#try.Success [context #.None]})))
(def: (either left right)
(All (_ a) (-> (Check a) (Check a) (Check a)))
(function (_ context)
(case (left context)
- (#try.Failure _)
+ {#try.Failure _}
(right context)
output
@@ -374,21 +374,21 @@
then)
(do ..monad
[?bound (peek id)]
- (else (maybe.else (#.Var id) ?bound)))))
+ (else (maybe.else {#.Var id} ?bound)))))
... TODO: "link/2" can be optimized...
(def: (link/2 left right)
(-> Var Var (Check Any))
(do ..monad
- [_ (..bind (#.Var right) left)]
- (..bind (#.Var left) right)))
+ [_ (..bind {#.Var right} left)]
+ (..bind {#.Var left} right)))
... TODO: "link/3" can be optimized...
(def: (link/3 interpose to from)
(-> Var Var Var (Check Any))
(do ..monad
- [_ (re_bind (#.Var interpose) from)]
- (re_bind (#.Var to) interpose)))
+ [_ (re_bind {#.Var interpose} from)]
+ (re_bind {#.Var to} interpose)))
... TODO: "check_vars" can be optimized...
(def: (check_vars check' assumptions idE idA)
@@ -406,30 +406,30 @@
(in assumptions))
... Interpose new variable between 2 existing links
- [(#.Some etype) #.None]
+ [{#.Some etype} #.None]
(case etype
- (#.Var targetE)
+ {#.Var targetE}
(do !
[_ (link/3 idA targetE idE)]
(in assumptions))
_
- (check' assumptions etype (#.Var idA)))
+ (check' assumptions etype {#.Var idA}))
... Interpose new variable between 2 existing links
- [#.None (#.Some atype)]
+ [#.None {#.Some atype}]
(case atype
- (#.Var targetA)
+ {#.Var targetA}
(do !
[_ (link/3 idE targetA idA)]
(in assumptions))
_
- (check' assumptions (#.Var idE) atype))
+ (check' assumptions {#.Var idE} atype))
- [(#.Some etype) (#.Some atype)]
+ [{#.Some etype} {#.Some atype}]
(case [etype atype]
- [(#.Var targetE) (#.Var targetA)]
+ [{#.Var targetE} {#.Var targetA}]
(do !
[ringE (..ring idE)
ringA (..ring idA)]
@@ -451,8 +451,8 @@
[ring (..ring <id>)
_ (monad.each ! (re_bind <type>) (set.list ring))]
(in assumptions))])
- ([[(#.Var _) _] idE atype]
- [[_ (#.Var _)] idA etype])
+ ([[{#.Var _} _] idE atype]
+ [[_ {#.Var _}] idA etype])
_
(check' assumptions etype atype))))))
@@ -467,54 +467,54 @@
(let [[expected_input expected_function] expected
[actual_input actual_function] actual]
(case [expected_function actual_function]
- [(#.Ex exE) (#.Ex exA)]
+ [{#.Ex exE} {#.Ex exA}]
(if (!n\= exE exA)
(check' assumptions expected_input actual_input)
..silent_failure!)
- [(#.UnivQ _ _) (#.Ex _)]
+ [{#.UnivQ _ _} {#.Ex _}]
(do ..monad
[expected' (..on expected_input expected_function)]
- (check' assumptions expected' (#.Apply actual)))
+ (check' assumptions expected' {#.Apply actual}))
- [(#.Ex _) (#.UnivQ _ _)]
+ [{#.Ex _} {#.UnivQ _ _}]
(do ..monad
[actual' (..on actual_input actual_function)]
- (check' assumptions (#.Apply expected) actual'))
+ (check' assumptions {#.Apply expected} actual'))
- [(#.Apply [expected_input' expected_function']) (#.Ex _)]
+ [{#.Apply [expected_input' expected_function']} {#.Ex _}]
(do ..monad
[expected_function'' (..on expected_input' expected_function')]
- (check' assumptions (#.Apply [expected_input expected_function'']) (#.Apply actual)))
+ (check' assumptions {#.Apply [expected_input expected_function'']} {#.Apply actual}))
- [(#.Ex _) (#.Apply [actual_input' actual_function'])]
+ [{#.Ex _} {#.Apply [actual_input' actual_function']}]
(do ..monad
[actual_function'' (..on actual_input' actual_function')]
- (check' assumptions (#.Apply expected) (#.Apply [actual_input actual_function''])))
+ (check' assumptions {#.Apply expected} {#.Apply [actual_input actual_function'']}))
- (^or [(#.Ex _) _] [_ (#.Ex _)])
+ (^or [{#.Ex _} _] [_ {#.Ex _}])
(do ..monad
[assumptions (check' assumptions expected_function actual_function)]
(check' assumptions expected_input actual_input))
- [(#.Var id) _]
+ [{#.Var id} _]
(function (_ context)
(case ((do ..monad
[expected_function' (..read id)]
- (check' assumptions (#.Apply expected_input expected_function') (#.Apply actual)))
+ (check' assumptions {#.Apply expected_input expected_function'} {#.Apply actual}))
context)
- (#try.Success output)
- (#try.Success output)
+ {#try.Success output}
+ {#try.Success output}
- (#try.Failure _)
+ {#try.Failure _}
(case actual_function
- (#.UnivQ _ _)
+ {#.UnivQ _ _}
((do ..monad
[actual' (..on actual_input actual_function)]
- (check' assumptions (#.Apply expected) actual'))
+ (check' assumptions {#.Apply expected} actual'))
context)
- (#.Ex exA)
+ {#.Ex exA}
((do ..monad
[assumptions (check' assumptions expected_function actual_function)]
(check' assumptions expected_input actual_input))
@@ -528,14 +528,14 @@
(check' assumptions expected' actual'))
context))))
- [_ (#.Var id)]
+ [_ {#.Var id}]
(function (_ context)
(case ((do ..monad
[actual_function' (read id)]
- (check' assumptions (#.Apply expected) (#.Apply actual_input actual_function')))
+ (check' assumptions {#.Apply expected} {#.Apply actual_input actual_function'}))
context)
- (#try.Success output)
- (#try.Success output)
+ {#try.Success output}
+ {#try.Success output}
_
((do ..monad
@@ -563,45 +563,45 @@
(check\in assumptions)
(with ..type_check_failed [expected actual]
(case [expected actual]
- [(#.Var idE) (#.Var idA)]
+ [{#.Var idE} {#.Var idA}]
(check_vars check' assumptions idE idA)
- [(#.Var id) _]
+ [{#.Var id} _]
(if_can_bind id actual
(check\in assumptions)
(function (_ bound)
(check' assumptions bound actual)))
- [_ (#.Var id)]
+ [_ {#.Var id}]
(if_can_bind id expected
(check\in assumptions)
(function (_ bound)
(check' assumptions expected bound)))
(^template [<fE> <fA>]
- [[(#.Apply aE <fE>) (#.Apply aA <fA>)]
+ [[{#.Apply aE <fE>} {#.Apply aA <fA>}]
(check_apply check' assumptions [aE <fE>] [aA <fA>])])
- ([F1 (#.Ex ex)]
- [(#.Ex exE) fA]
- [fE (#.Var idA)]
- [(#.Var idE) fA])
+ ([F1 {#.Ex ex}]
+ [{#.Ex exE} fA]
+ [fE {#.Var idA}]
+ [{#.Var idE} fA])
- [(#.Apply A F) _]
+ [{#.Apply A F} _]
(let [new_assumption [expected actual]]
(if (assumed? new_assumption assumptions)
(check\in assumptions)
(do ..monad
[expected' (..on A F)]
- (check' (#.Item new_assumption assumptions) expected' actual))))
+ (check' {#.Item new_assumption assumptions} expected' actual))))
- [_ (#.Apply A F)]
+ [_ {#.Apply A F}]
(do ..monad
[actual' (..on A F)]
(check' assumptions expected actual'))
... TODO: Refactor-away as cold-code
(^template [<tag> <instancer>]
- [[(<tag> _) _]
+ [[{<tag> _} _]
(do ..monad
[[_ paramT] <instancer>
expected' (..on paramT expected)]
@@ -611,7 +611,7 @@
... TODO: Refactor-away as cold-code
(^template [<tag> <instancer>]
- [[_ (<tag> _)]
+ [[_ {<tag> _}]
(do ..monad
[[_ paramT] <instancer>
actual' (..on paramT actual)]
@@ -619,7 +619,7 @@
([#.UnivQ ..var]
[#.ExQ ..existential])
- [(#.Primitive e_name e_params) (#.Primitive a_name a_params)]
+ [{#.Primitive e_name e_params} {#.Primitive a_name a_params}]
(if (!text\= e_name a_name)
(loop [assumptions assumptions
e_params e_params
@@ -628,7 +628,7 @@
[#.End #.End]
(check\in assumptions)
- [(#.Item e_head e_tail) (#.Item a_head a_tail)]
+ [{#.Item e_head e_tail} {#.Item a_head a_tail}]
(do ..monad
[assumptions' (check' assumptions e_head a_head)]
(recur assumptions' e_tail a_tail))
@@ -638,27 +638,27 @@
..silent_failure!)
(^template [<composite>]
- [[(<composite> eL eR) (<composite> aL aR)]
+ [[{<composite> eL eR} {<composite> aL aR}]
(do ..monad
[assumptions (check' assumptions eL aL)]
(check' assumptions eR aR))])
([#.Sum]
[#.Product])
- [(#.Function eI eO) (#.Function aI aO)]
+ [{#.Function eI eO} {#.Function aI aO}]
(do ..monad
[assumptions (check' assumptions aI eI)]
(check' assumptions eO aO))
- [(#.Ex e!id) (#.Ex a!id)]
+ [{#.Ex e!id} {#.Ex a!id}]
(if (!n\= e!id a!id)
(check\in assumptions)
..silent_failure!)
- [(#.Named _ ?etype) _]
+ [{#.Named _ ?etype} _]
(check' assumptions ?etype actual)
- [_ (#.Named _ ?atype)]
+ [_ {#.Named _ ?atype}]
(check' assumptions expected ?atype)
_
@@ -672,50 +672,50 @@
(-> Type Type Bit)
(case (..result ..fresh_context
(..check expected actual))
- (#try.Failure _)
+ {#try.Failure _}
false
- (#try.Success _)
+ {#try.Success _}
true))
(def: .public context
(Check Type_Context)
(function (_ context)
- (#try.Success [context context])))
+ {#try.Success [context context]}))
(def: .public (clean inputT)
(-> Type (Check Type))
(case inputT
- (#.Primitive name paramsT+)
+ {#.Primitive name paramsT+}
(|> paramsT+
(monad.each ..monad clean)
- (check\each (|>> (#.Primitive name))))
+ (check\each (|>> {#.Primitive name})))
- (^or (#.Parameter _) (#.Ex _) (#.Named _))
+ (^or {#.Parameter _} {#.Ex _} {#.Named _})
(check\in inputT)
(^template [<tag>]
- [(<tag> leftT rightT)
+ [{<tag> leftT rightT}
(do ..monad
[leftT' (clean leftT)]
(|> (clean rightT)
- (check\each (|>> (<tag> leftT')))))])
+ (check\each (|>> {<tag> leftT'}))))])
([#.Sum] [#.Product] [#.Function] [#.Apply])
- (#.Var id)
+ {#.Var id}
(do ..monad
[?actualT (peek id)]
(case ?actualT
- (#.Some actualT)
+ {#.Some actualT}
(clean actualT)
_
(in inputT)))
(^template [<tag>]
- [(<tag> envT+ unquantifiedT)
+ [{<tag> envT+ unquantifiedT}
(do [! ..monad]
[envT+' (monad.each ! clean envT+)]
- (in (<tag> envT+' unquantifiedT)))])
+ (in {<tag> envT+' unquantifiedT}))])
([#.UnivQ] [#.ExQ])
))
diff --git a/stdlib/source/library/lux/type/dynamic.lux b/stdlib/source/library/lux/type/dynamic.lux
index 0709b67e2..d766c77a0 100644
--- a/stdlib/source/library/lux/type/dynamic.lux
+++ b/stdlib/source/library/lux/type/dynamic.lux
@@ -44,7 +44,7 @@
(: ((~! try.Try) (~ type))
(if (\ (~! type.equivalence) (~' =)
(.type (~ type)) (~ g!type))
- (#try.Success (:as (~ type) (~ g!value)))
+ {#try.Success (:as (~ type) (~ g!value))}
((~! exception.except) ..wrong_type [(.type (~ type)) (~ g!type)])))))))))
(def: .public (format value)
diff --git a/stdlib/source/library/lux/type/implicit.lux b/stdlib/source/library/lux/type/implicit.lux
index dc460e41d..03379a14e 100644
--- a/stdlib/source/library/lux/type/implicit.lux
+++ b/stdlib/source/library/lux/type/implicit.lux
@@ -30,15 +30,15 @@
(-> Nat Type_Context (Meta Type))
(case (list.example (|>> product.left (n.= id))
(value@ #.var_bindings env))
- (#.Some [_ (#.Some type)])
+ {#.Some [_ {#.Some type}]}
(case type
- (#.Var id')
+ {#.Var id'}
(type_var id' env)
_
(\ meta.monad in type))
- (#.Some [_ #.None])
+ {#.Some [_ #.None]}
(meta.failure (format "Unbound type-var " (%.nat id)))
#.None
@@ -51,7 +51,7 @@
[raw_type (meta.type var_name)
compiler meta.compiler_state]
(case raw_type
- (#.Var id)
+ {#.Var id}
(type_var id (value@ #.type_context compiler))
_
@@ -60,18 +60,18 @@
(def: (member_type idx sig_type)
(-> Nat Type (Check Type))
(case sig_type
- (#.Named _ sig_type')
+ {#.Named _ sig_type'}
(member_type idx sig_type')
- (#.Apply arg func)
+ {#.Apply arg func}
(case (type.applied (list arg) func)
#.None
(check.failure (format "Cannot apply type " (%.type func) " to type " (%.type arg)))
- (#.Some sig_type')
+ {#.Some sig_type'}
(member_type idx sig_type'))
- (#.Product left right)
+ {#.Product left right}
(if (n.= 0 idx)
(\ check.monad in left)
(member_type (-- idx) right))
@@ -100,7 +100,7 @@
#.End
(meta.failure (format "Unknown tag: " (%.name member)))
- (#.Item winner #.End)
+ {#.Item winner #.End}
(in winner)
_
@@ -139,7 +139,7 @@
(if (and (or (text\= target_module source_module)
exported?)
(compatible_type? sig_type def_type))
- (#.Item [[source_module name] def_type] aggregate)
+ {#.Item [[source_module name] def_type] aggregate}
aggregate))
aggregate
constants))
@@ -157,7 +157,7 @@
dictionary.entries
(list.all (function (_ [name type])
(if (compatible_type? sig_type type)
- (#.Some [["" name] type])
+ {#.Some [["" name] type]}
#.None)))))))
(def: (local_structs sig_type)
@@ -181,10 +181,10 @@
(def: (on_argument arg func)
(-> Type Type (Check Type))
(case func
- (#.Named _ func')
+ {#.Named _ func'}
(on_argument arg func')
- (#.UnivQ _)
+ {#.UnivQ _}
(do check.monad
[[id var] check.var]
(|> func
@@ -192,7 +192,7 @@
maybe.trusted
(on_argument arg)))
- (#.Function input output)
+ {#.Function input output}
(do check.monad
[_ (check.check input arg)]
(in output))
@@ -203,11 +203,11 @@
(def: (concrete_type type)
(-> Type (Check [(List Nat) Type]))
(case type
- (#.UnivQ _)
+ {#.UnivQ _}
(do check.monad
[[id var] check.var
[ids final_output] (concrete_type (maybe.trusted (type.applied (list var) type)))]
- (in [(#.Item id ids)
+ (in [{#.Item id ids}
final_output]))
_
@@ -241,10 +241,10 @@
context' check.context
=deps (monad.each ! (provision compiler context') deps)]
(in =deps)))
- (#.Left error)
+ {#.Left error}
(list)
- (#.Right =deps)
+ {#.Right =deps}
(list [alt_name =deps]))))
list\conjoint)
#.End
@@ -260,15 +260,15 @@
(do meta.monad [alts (..local_env sig_type)] (..candidate_provision (provision sig_type) context dep alts))
(do meta.monad [alts (..local_structs sig_type)] (..candidate_provision (provision sig_type) context dep alts))
(do meta.monad [alts (..imported_structs sig_type)] (..candidate_provision (provision sig_type) context dep alts))))
- (#.Left error)
+ {#.Left error}
(check.failure error)
- (#.Right candidates)
+ {#.Right candidates}
(case candidates
#.End
(check.failure (format "No candidates for provisioning: " (%.type dep)))
- (#.Item winner #.End)
+ {#.Item winner #.End}
(\ check.monad in winner)
_
@@ -292,10 +292,10 @@
context' check.context
=deps (monad.each ! (provision sig_type compiler context') deps)]
(in =deps)))
- (#.Left error)
+ {#.Left error}
(list)
- (#.Right =deps)
+ {#.Right =deps}
(list [alt_name =deps]))))
list\conjoint)
#.End
@@ -315,7 +315,7 @@
(def: (var? input)
(-> Code Bit)
(case input
- [_ (#.Identifier _)]
+ [_ {#.Identifier _}]
#1
_
@@ -338,7 +338,7 @@
args (<>.or (<>.and (<>.some <code>.identifier) <code>.end!)
(<>.and (<>.some <code>.any) <code>.end!))])
(case args
- (#.Left [args _])
+ {#.Left [args _]}
(do [! meta.monad]
[[member_idx sig_type] (..implicit_member member)
input_types (monad.each ! ..implicit_type args)
@@ -348,7 +348,7 @@
#.End
(meta.failure (format "No implementation could be found for member: " (%.name member)))
- (#.Item chosen #.End)
+ {#.Item chosen #.End}
(in (list (` (\ (~ (instance$ chosen))
(~ (code.local_identifier (product.right member)))
(~+ (list\each code.identifier args))))))
@@ -360,7 +360,7 @@
(text.interposed ", "))
" --- for type: " (%.type sig_type)))))
- (#.Right [args _])
+ {#.Right [args _]}
(do [! meta.monad]
[labels (|> (macro.identifier "") (list.repeated (list.size args)) (monad.all !))]
(in (list (` (let [(~+ (|> args (list.zipped/2 labels) (list\each ..pair_list) list\conjoint))]
diff --git a/stdlib/source/library/lux/type/poly.lux b/stdlib/source/library/lux/type/poly.lux
index 4f7a32f1c..64c5abe51 100644
--- a/stdlib/source/library/lux/type/poly.lux
+++ b/stdlib/source/library/lux/type/poly.lux
@@ -42,54 +42,54 @@
(function ((~ g!_) (~ g!name))
(~ body)))
(.:as .Type (~ g!type))))
- (#.Left (~ g!output))
+ {#.Left (~ g!output)}
((~! meta.failure) (~ g!output))
- (#.Right (~ g!output))
+ {#.Right (~ g!output)}
((~' in) (.list (~ g!output))))))))))))
(def: .public (code env type)
(-> Env Type Code)
(`` (case type
- (#.Primitive name params)
- (` (#.Primitive (~ (code.text name))
- (.list (~+ (list\each (code env) params)))))
+ {#.Primitive name params}
+ (` {#.Primitive (~ (code.text name))
+ (.list (~+ (list\each (code env) params)))})
(^template [<tag>]
- [(<tag> idx)
- (` (<tag> (~ (code.nat idx))))])
+ [{<tag> idx}
+ (` {<tag> (~ (code.nat idx))})])
([#.Var] [#.Ex])
- (#.Parameter idx)
+ {#.Parameter idx}
(let [idx (<type>.adjusted_idx env idx)]
(if (n.= 0 idx)
(|> (dictionary.value idx env) maybe.trusted product.left (code env))
(` (.$ (~ (code.nat (-- idx)))))))
- (#.Apply (#.Primitive "" #.End)
- (#.Parameter idx))
+ {#.Apply {#.Primitive "" #.End}
+ {#.Parameter idx}}
(case (<type>.adjusted_idx env idx)
0 (|> env (dictionary.value 0) maybe.trusted product.left (code env))
idx (undefined))
(^template [<tag>]
- [(<tag> left right)
- (` (<tag> (~ (code env left))
- (~ (code env right))))])
+ [{<tag> left right}
+ (` {<tag> (~ (code env left))
+ (~ (code env right))})])
([#.Function] [#.Apply])
(^template [<macro> <tag> <flattener>]
- [(<tag> left right)
+ [{<tag> left right}
(` (<macro> (~+ (list\each (code env) (<flattener> type)))))])
([.Union #.Sum type.flat_variant]
[.Tuple #.Product type.flat_tuple])
- (#.Named name sub_type)
+ {#.Named name sub_type}
(code.identifier name)
(^template [<tag>]
- [(<tag> scope body)
- (` (<tag> (.list (~+ (list\each (code env) scope)))
- (~ (code env body))))])
+ [{<tag> scope body}
+ (` {<tag> (.list (~+ (list\each (code env) scope)))
+ (~ (code env body))})])
([#.UnivQ] [#.ExQ])
)))
diff --git a/stdlib/source/library/lux/type/refinement.lux b/stdlib/source/library/lux/type/refinement.lux
index 3bbe82935..bfa951ede 100644
--- a/stdlib/source/library/lux/type/refinement.lux
+++ b/stdlib/source/library/lux/type/refinement.lux
@@ -25,8 +25,8 @@
(-> (Predicate t) (Refiner t %))))
(function (_ value)
(if (predicate value)
- (#.Some (:abstraction [#value value
- #predicate predicate]))
+ {#.Some (:abstraction [#value value
+ #predicate predicate])}
#.None)))
(template [<name> <output> <slot>]
@@ -46,8 +46,8 @@
(let [(^slots [#value #predicate]) (:representation refined)
value' (transform value)]
(if (predicate value')
- (#.Some (:abstraction [#value value'
- #predicate predicate]))
+ {#.Some (:abstraction [#value value'
+ #predicate predicate])}
#.None))))]
)
@@ -58,10 +58,10 @@
#.End
#.End
- (#.Item head tail)
+ {#.Item head tail}
(case (refiner head)
- (#.Some refined)
- (#.Item refined (only refiner tail))
+ {#.Some refined}
+ {#.Item refined (only refiner tail)}
#.None
(only refiner tail))))
@@ -73,16 +73,16 @@
#.End
[#.End #.End]
- (#.Item head tail)
+ {#.Item head tail}
(let [[yes no] (partition refiner tail)]
(case (refiner head)
- (#.Some refined)
- [(#.Item refined yes)
+ {#.Some refined}
+ [{#.Item refined yes}
no]
#.None
[yes
- (#.Item head no)]))))
+ {#.Item head no}]))))
(syntax: .public (type [refiner <code>.any])
(macro.with_identifiers [g!t g!%]
diff --git a/stdlib/source/library/lux/type/resource.lux b/stdlib/source/library/lux/type/resource.lux
index 244644d57..d5c209cd7 100644
--- a/stdlib/source/library/lux/type/resource.lux
+++ b/stdlib/source/library/lux/type/resource.lux
@@ -132,7 +132,7 @@
#.End
(in (list (` (~! no_op))))
- (#.Item head tail)
+ {#.Item head tail}
(do [! meta.monad]
[.let [max_idx (list\mix n.max head tail)]
g!inputs (<| (monad.all !) (list.repeated (++ max_idx)) (macro.identifier "input"))
diff --git a/stdlib/source/library/lux/world/console.lux b/stdlib/source/library/lux/world/console.lux
index e3d156adf..7c974630f 100644
--- a/stdlib/source/library/lux/world/console.lux
+++ b/stdlib/source/library/lux/world/console.lux
@@ -74,7 +74,7 @@
#.None
(in (exception.except ..cannot_open []))
- (#.Some jvm_console)
+ {#.Some jvm_console}
(let [jvm_input (java/lang/System::in)
jvm_output (java/lang/System::out)]
(<| in
@@ -122,13 +122,13 @@
(do [! io.monad]
[|state| (atom.read! state)]
(case (\ mock <mock> |state|)
- (#try.Success [|state| output])
+ {#try.Success [|state| output]}
(do !
[_ (atom.write! |state| state)]
- (in (#try.Success output)))
+ (in {#try.Success output}))
- (#try.Failure error)
- (in (#try.Failure error)))))]
+ {#try.Failure error}
+ (in {#try.Failure error}))))]
[read on_read]
[read_line on_read_line]
@@ -138,23 +138,23 @@
(do [! io.monad]
[|state| (atom.read! state)]
(case (\ mock on_write input |state|)
- (#try.Success |state|)
+ {#try.Success |state|}
(do !
[_ (atom.write! |state| state)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
- (#try.Failure error)
- (in (#try.Failure error)))))
+ {#try.Failure error}
+ (in {#try.Failure error}))))
(def: (close _)
(do [! io.monad]
[|state| (atom.read! state)]
(case (\ mock on_close |state|)
- (#try.Success |state|)
+ {#try.Success |state|}
(do !
[_ (atom.write! |state| state)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
- (#try.Failure error)
- (in (#try.Failure error)))))
+ {#try.Failure error}
+ (in {#try.Failure error}))))
))))
diff --git a/stdlib/source/library/lux/world/db/jdbc/input.lux b/stdlib/source/library/lux/world/db/jdbc/input.lux
index 1819241b3..aa8a168af 100644
--- a/stdlib/source/library/lux/world/db/jdbc/input.lux
+++ b/stdlib/source/library/lux/world/db/jdbc/input.lux
@@ -64,12 +64,12 @@
(def: .public (fail error)
(All (_ a) (-> Text (Input a)))
(function (_ value [idx context])
- (#try.Failure error)))
+ {#try.Failure error}))
(def: .public empty
(Input Any)
(function (_ value context)
- (#try.Success context)))
+ {#try.Success context}))
(template [<function> <type> <setter>]
[(def: .public <function>
diff --git a/stdlib/source/library/lux/world/db/jdbc/output.lux b/stdlib/source/library/lux/world/db/jdbc/output.lux
index 25b4b0668..3772ff0e1 100644
--- a/stdlib/source/library/lux/world/db/jdbc/output.lux
+++ b/stdlib/source/library/lux/world/db/jdbc/output.lux
@@ -56,11 +56,11 @@
(def: (each f fa)
(function (_ idx+rs)
(case (fa idx+rs)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [idx' value])
- (#try.Success [idx' (f value)])))))
+ {#try.Success [idx' value]}
+ {#try.Success [idx' (f value)]}))))
(implementation: .public apply
(Apply Output)
@@ -70,16 +70,16 @@
(def: (apply ff fa)
(function (_ [idx rs])
(case (ff [idx rs])
- (#try.Success [idx' f])
+ {#try.Success [idx' f]}
(case (fa [idx' rs])
- (#try.Success [idx'' a])
- (#try.Success [idx'' (f a)])
+ {#try.Success [idx'' a]}
+ {#try.Success [idx'' (f a)]}
- (#try.Failure msg)
- (#try.Failure msg))
+ {#try.Failure msg}
+ {#try.Failure msg})
- (#try.Failure msg)
- (#try.Failure msg)))))
+ {#try.Failure msg}
+ {#try.Failure msg}))))
(implementation: .public monad
(Monad Output)
@@ -88,21 +88,21 @@
(def: (in a)
(function (_ [idx rs])
- (#.Some [idx a])))
+ {#.Some [idx a]}))
(def: (conjoint mma)
(function (_ [idx rs])
(case (mma [idx rs])
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success [idx' ma])
+ {#try.Success [idx' ma]}
(ma [idx' rs])))))
(def: .public (fail error)
(All (_ a) (-> Text (Output a)))
(function (_ [idx result_set])
- (#try.Failure error)))
+ {#try.Failure error}))
(def: .public (and left right)
(All (_ a b)
@@ -117,11 +117,11 @@
(Output <type>)
(function (_ [idx result_set])
(case (<method_name> [(.int idx)] result_set)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success value)
- (#try.Success [(++ idx) value]))))]
+ {#try.Success value}
+ {#try.Success [(++ idx) value]})))]
[boolean java/sql/ResultSet::getBoolean Bit]
@@ -142,12 +142,12 @@
(Output Instant)
(function (_ [idx result_set])
(case (<method_name> [(.int idx)] result_set)
- (#try.Failure error)
- (#try.Failure error)
+ {#try.Failure error}
+ {#try.Failure error}
- (#try.Success value)
- (#try.Success [(++ idx)
- (instant.from_millis (java/util/Date::getTime value))]))))]
+ {#try.Success value}
+ {#try.Success [(++ idx)
+ (instant.from_millis (java/util/Date::getTime value))]})))]
[date java/sql/ResultSet::getDate]
[time java/sql/ResultSet::getTime]
@@ -157,24 +157,24 @@
(def: .public (rows output results)
(All (_ a) (-> (Output a) java/sql/ResultSet (IO (Try (List a)))))
(case (java/sql/ResultSet::next results)
- (#try.Success has_next?)
+ {#try.Success has_next?}
(if has_next?
(case (output [1 results])
- (#.Some [_ head])
+ {#.Some [_ head]}
(do io.monad
[?tail (rows output results)]
(case ?tail
- (#try.Success tail)
- (in (#try.Success (#.Item head tail)))
+ {#try.Success tail}
+ (in {#try.Success {#.Item head tail}})
- (#try.Failure error)
+ {#try.Failure error}
(do io.monad
[temp (java/sql/ResultSet::close results)]
(in (do try.monad
[_ temp]
(try.failure error))))))
- (#try.Failure error)
+ {#try.Failure error}
(do io.monad
[temp (java/sql/ResultSet::close results)]
(in (do try.monad
@@ -186,7 +186,7 @@
[_ temp]
(in (list))))))
- (#try.Failure error)
+ {#try.Failure error}
(do io.monad
[temp (java/sql/ResultSet::close results)]
(in (do try.monad
diff --git a/stdlib/source/library/lux/world/file.lux b/stdlib/source/library/lux/world/file.lux
index 66c125a34..82796463c 100644
--- a/stdlib/source/library/lux/world/file.lux
+++ b/stdlib/source/library/lux/world/file.lux
@@ -84,7 +84,7 @@
#.None
#.None
- (#.Some last_separator)
+ {#.Some last_separator}
(do maybe.monad
[[parent temp] (text.split_at last_separator path)
[_ child] (text.split_at (text.size /) temp)]
@@ -230,7 +230,7 @@
(do [! (try.with io.monad)]
[?children (java/io/File::listFiles (java/io/File::new path))]
(case ?children
- (#.Some children)
+ {#.Some children}
(|> children
(array.list #.None)
(monad.only ! (|>> <method>))
@@ -354,8 +354,8 @@
io.run!
write!
(if (ffi.null? error)
- (#try.Success [])
- (#try.Failure (Error::toString [] (:as Error error))))))
+ {#try.Success []}
+ {#try.Failure (Error::toString [] (:as Error error))})))
(def: (value_callback write!)
(All (_ a) (-> (async.Resolver (Try a)) ffi.Function))
@@ -363,8 +363,8 @@
io.run!
write!
(if (ffi.null? error)
- (#try.Success (:expected datum))
- (#try.Failure (Error::toString [] (:as Error error))))))
+ {#try.Success (:expected datum)}
+ {#try.Failure (Error::toString [] (:as Error error))})))
(ffi.import: JsPath
["[1]::[0]"
@@ -383,9 +383,9 @@
(def: (require _)
(-> [] (-> ffi.String Any))
(case [(normal_require []) (global_require []) (process_load [])]
- (^or [(#.Some require) _ _]
- [_ (#.Some require) _]
- [_ _ (#.Some require)])
+ (^or [{#.Some require} _ _]
+ [_ {#.Some require} _]
+ [_ _ {#.Some require}])
require
_
@@ -418,10 +418,10 @@
(Fs::stat [path (..value_callback write!)]
(..node_fs [])))]
(in (case ?stats
- (#try.Success stats)
+ {#try.Success stats}
(<method> [] stats)
- (#try.Failure _)
+ {#try.Failure _}
false))))]
[file? Stats::isFile]
@@ -437,10 +437,10 @@
(..any_callback write!)]
node_fs))]
(case outcome
- (#try.Success _)
+ {#try.Success _}
(in (exception.except ..cannot_make_directory [path]))
- (#try.Failure _)
+ {#try.Failure _}
(with_async write! (Try Any)
(Fs::mkdir [path (..any_callback write!)] node_fs)))))
@@ -487,10 +487,10 @@
(def: (can_execute? path)
(let [node_fs (..node_fs [])]
(\ async.monad each
- (|>> (case> (#try.Success _)
+ (|>> (case> {#try.Success _}
true
- (#try.Failure _)
+ {#try.Failure _}
false)
#try.Success)
(with_async write! (Try Any)
@@ -733,11 +733,11 @@
#.End
(in output)
- (#.Item head tail)
+ {#.Item head tail}
(do !
[verdict (<test> head)]
(recur tail (if verdict
- (#.Item head output)
+ {#.Item head output}
output)))))
_ (RubyDir::close [] self)]
(in output)))]
@@ -928,11 +928,11 @@
... #.End
... (in output)
- ... (#.Item head tail)
+ ... {#.Item head tail}
... (do !
... [verdict (<test> head)]
... (if verdict
- ... (recur tail (#.Item (<constructor> head) output))
+ ... (recur tail {#.Item (<constructor> head) output})
... (recur tail output)))))))]
... [files ..is_file ..file File]
@@ -956,7 +956,7 @@
... [verdict (<test> path)]
... (\ io.monad in
... (if verdict
- ... (#try.Success (<constructor> path))
+ ... {#try.Success (<constructor> path)}
... (exception.except <exception> [path])))))]
... [file ..is_file ..file ..cannot_find_file]
@@ -968,7 +968,7 @@
... [verdict (..touch [path (|> instant.now io.run! instant.relative duration.millis (i./ +1,000))])]
... (\ io.monad in
... (if verdict
- ... (#try.Success (..file path))
+ ... {#try.Success (..file path)}
... (exception.except ..cannot_make_file [path])))))
... (def: (make_directory path)
@@ -976,7 +976,7 @@
... [verdict (..mkdir path)]
... (\ io.monad in
... (if verdict
- ... (#try.Success (..directory path))
+ ... {#try.Success (..directory path)}
... (exception.except ..cannot_make_directory [path])))))
... (def: separator
@@ -1013,17 +1013,17 @@
(loop [directory mock
trail (text.all_split_by separator path)]
(case trail
- (#.Item head tail)
+ {#.Item head tail}
(case (dictionary.value head directory)
#.None
(exception.except ..cannot_find_file [path])
- (#.Some node)
+ {#.Some node}
(case [node tail]
- [(#.Left file) #.End]
- (#try.Success [head file])
+ [{#.Left file} #.End]
+ {#try.Success [head file]}
- [(#.Right sub_directory) (#.Item _)]
+ [{#.Right sub_directory} {#.Item _}]
(recur sub_directory tail)
_
@@ -1037,33 +1037,33 @@
(loop [directory mock
trail (text.all_split_by / path)]
(case trail
- (#.Item head tail)
+ {#.Item head tail}
(case (dictionary.value head directory)
#.None
(case tail
#.End
- (#try.Success (dictionary.has head
- (#.Left [#mock_last_modified now
+ {#try.Success (dictionary.has head
+ {#.Left [#mock_last_modified now
#mock_can_execute false
- #mock_content content])
- directory))
+ #mock_content content]}
+ directory)}
- (#.Item _)
+ {#.Item _}
(exception.except ..cannot_find_file [path]))
- (#.Some node)
+ {#.Some node}
(case [node tail]
- [(#.Left file) #.End]
- (#try.Success (dictionary.has head
- (#.Left (|> file
+ [{#.Left file} #.End]
+ {#try.Success (dictionary.has head
+ {#.Left (|> file
(with@ #mock_last_modified now)
- (with@ #mock_content content)))
- directory))
+ (with@ #mock_content content))}
+ directory)}
- [(#.Right sub_directory) (#.Item _)]
+ [{#.Right sub_directory} {#.Item _}]
(do try.monad
[sub_directory (recur sub_directory tail)]
- (in (dictionary.has head (#.Right sub_directory) directory)))
+ (in (dictionary.has head {#.Right sub_directory} directory)))
_
(exception.except ..cannot_find_file [path])))
@@ -1076,32 +1076,32 @@
(loop [directory mock
trail (text.all_split_by / path)]
(case trail
- (#.Item head tail)
+ {#.Item head tail}
(case (dictionary.value head directory)
#.None
(exception.except ..cannot_delete [path])
- (#.Some node)
+ {#.Some node}
(case tail
#.End
(case node
- (#.Left file)
- (#try.Success (dictionary.lacks head directory))
+ {#.Left file}
+ {#try.Success (dictionary.lacks head directory)}
- (#.Right sub_directory)
+ {#.Right sub_directory}
(if (dictionary.empty? sub_directory)
- (#try.Success (dictionary.lacks head directory))
+ {#try.Success (dictionary.lacks head directory)}
(exception.except ..cannot_delete [path])))
- (#.Item _)
+ {#.Item _}
(case node
- (#.Left file)
+ {#.Left file}
(exception.except ..cannot_delete [path])
- (#.Right sub_directory)
+ {#.Right sub_directory}
(do try.monad
[sub_directory' (recur sub_directory tail)]
- (in (dictionary.has head (#.Right sub_directory') directory))))))
+ (in (dictionary.has head {#.Right sub_directory'} directory))))))
#.End
(exception.except ..cannot_delete [path]))))
@@ -1111,35 +1111,35 @@
(do [! stm.monad]
[|var| (stm.read var)]
(case (transform |var|)
- (#try.Success |var|)
+ {#try.Success |var|}
(do !
[_ (stm.write |var| var)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
- (#try.Failure error)
- (in (#try.Failure error)))))
+ {#try.Failure error}
+ (in {#try.Failure error}))))
(def: (make_mock_directory! / path mock)
(-> Text Path Mock (Try Mock))
(loop [directory mock
trail (text.all_split_by / path)]
(case trail
- (#.Item head tail)
+ {#.Item head tail}
(case (dictionary.value head directory)
#.None
(case tail
#.End
- (#try.Success (dictionary.has head (#.Right ..empty_mock) directory))
+ {#try.Success (dictionary.has head {#.Right ..empty_mock} directory)}
- (#.Item _)
+ {#.Item _}
(exception.except ..cannot_make_directory [path]))
- (#.Some node)
+ {#.Some node}
(case [node tail]
- [(#.Right sub_directory) (#.Item _)]
+ [{#.Right sub_directory} {#.Item _}]
(do try.monad
[sub_directory (recur sub_directory tail)]
- (in (dictionary.has head (#.Right sub_directory) directory)))
+ (in (dictionary.has head {#.Right sub_directory} directory)))
_
(exception.except ..cannot_make_directory [path])))
@@ -1153,24 +1153,24 @@
trail (text.all_split_by / path)]
(case trail
#.End
- (#try.Success directory)
+ {#try.Success directory}
- (#.Item head tail)
+ {#.Item head tail}
(case (dictionary.value head directory)
#.None
(exception.except ..cannot_find_directory [path])
- (#.Some node)
+ {#.Some node}
(case node
- (#.Left _)
+ {#.Left _}
(exception.except ..cannot_find_directory [path])
- (#.Right sub_directory)
+ {#.Right sub_directory}
(case tail
#.End
- (#try.Success sub_directory)
+ {#try.Success sub_directory}
- (#.Item _)
+ {#.Item _}
(recur sub_directory tail)))))))
(def: .public (mock separator)
@@ -1198,13 +1198,13 @@
(do [! stm.monad]
[|store| (stm.read store)]
(case (..make_mock_directory! separator path |store|)
- (#try.Success |store|)
+ {#try.Success |store|}
(do !
[_ (stm.write |store| store)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
- (#try.Failure error)
- (in (#try.Failure error))))))
+ {#try.Failure error}
+ (in {#try.Failure error})))))
(~~ (template [<method> <tag>]
[(def: (<method> path)
@@ -1217,8 +1217,8 @@
dictionary.entries
(list.all (function (_ [node_name node])
(case node
- (<tag> _)
- (#.Some (format path separator node_name))
+ {<tag> _}
+ {#.Some (format path separator node_name)}
_
#.None))))))))))]
@@ -1304,13 +1304,13 @@
[[name file] (..retrieve_mock_file! separator origin |store|)
|store| (..delete_mock_node! separator origin |store|)]
(..update_mock_file! separator destination (value@ #mock_last_modified file) (value@ #mock_content file) |store|))
- (#try.Success |store|)
+ {#try.Success |store|}
(do !
[_ (stm.write |store| store)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
- (#try.Failure error)
- (in (#try.Failure error))))))
+ {#try.Failure error}
+ (in {#try.Failure error})))))
))))
(def: (check_or_make_directory monad fs path)
@@ -1318,7 +1318,7 @@
(do monad
[? (\ fs directory? path)]
(if ?
- (in (#try.Success []))
+ (in {#try.Success []})
(\ fs make_directory path))))
(def: .public (make_directories monad fs path)
@@ -1331,7 +1331,7 @@
#.End
(\ monad in (exception.except ..cannot_make_directory [path]))
- (#.Item head tail)
+ {#.Item head tail}
(case head
"" (\ monad in (exception.except ..cannot_make_directory [path]))
_ (loop [current (if rooted?
@@ -1341,17 +1341,17 @@
(do monad
[? (..check_or_make_directory monad fs current)]
(case ?
- (#try.Success _)
+ {#try.Success _}
(case next
#.End
- (in (#try.Success []))
+ (in {#try.Success []})
- (#.Item head tail)
+ {#.Item head tail}
(recur (format current (\ fs separator) head)
tail))
- (#try.Failure error)
- (in (#try.Failure error)))))))))
+ {#try.Failure error}
+ (in {#try.Failure error}))))))))
(def: .public (make_file monad fs content path)
(All (_ !) (-> (Monad !) (System !) Binary Path (! (Try Any))))
diff --git a/stdlib/source/library/lux/world/file/watch.lux b/stdlib/source/library/lux/world/file/watch.lux
index 3af235af1..46308d6e3 100644
--- a/stdlib/source/library/lux/world/file/watch.lux
+++ b/stdlib/source/library/lux/world/file/watch.lux
@@ -112,7 +112,7 @@
(do [! stm.monad]
[@tracker (stm.read tracker)]
(case (dictionary.value path @tracker)
- (#.Some [old_concern last_modified])
+ {#.Some [old_concern last_modified]}
(do !
[_ (stm.update (dictionary.has path [new_concern last_modified]) tracker)]
(in true))
@@ -196,20 +196,20 @@
(do !
[updated? (stm.commit! (..update_watch! new_concern path tracker))]
(if updated?
- (in (#try.Success []))
+ (in {#try.Success []})
(do (try.with !)
[file_tracker (..file_tracker fs path)]
(do !
[_ (stm.commit! (stm.update (dictionary.has path [new_concern file_tracker]) tracker))]
- (in (#try.Success []))))))
+ (in {#try.Success []})))))
(in (exception.except ..cannot_poll_a_non_existent_directory [path])))))
(def: (concern path)
(stm.commit!
(do stm.monad
[@tracker (stm.read tracker)]
(in (case (dictionary.value path @tracker)
- (#.Some [concern file_tracker])
- (#try.Success concern)
+ {#.Some [concern file_tracker]}
+ {#try.Success concern}
#.None
(exception.except ..not_being_watched [path]))))))
@@ -218,10 +218,10 @@
(do [! stm.monad]
[@tracker (stm.read tracker)]
(case (dictionary.value path @tracker)
- (#.Some [concern file_tracker])
+ {#.Some [concern file_tracker]}
(do !
[_ (stm.update (dictionary.lacks path) tracker)]
- (in (#try.Success concern)))
+ (in {#try.Success concern}))
#.None
(in (exception.except ..not_being_watched [path]))))))
@@ -237,7 +237,7 @@
(list\each product.left)
(dictionary.of_list text.hash))
tracker))]
- (in (#try.Success [])))
+ (in {#try.Success []}))
.let [[creations modifications deletions]
(list\mix (function (_ [_ [creations modifications deletions]]
[all_creations all_modifications all_deletions])
@@ -278,8 +278,8 @@
output #.End]
(if (n.< size idx)
(recur (++ idx)
- (#.Item (java/util/List::get (.int idx) list)
- output))
+ {#.Item (java/util/List::get (.int idx) list)
+ output})
output))))
(import: (java/nio/file/WatchEvent$Kind a))
@@ -375,7 +375,7 @@
(do (try.with io.monad)
[?key (java/nio/file/WatchService::poll watcher)]
(case ?key
- (#.Some key)
+ {#.Some key}
(do [! io.monad]
[valid? (java/nio/file/WatchKey::reset key)]
(if valid?
@@ -386,8 +386,8 @@
java/nio/file/Path::toString
(:as //.Path))]
concern (..default_key_concern key)]
- (recur (#.Item [concern path]
- output)))
+ (recur {#.Item [concern path]
+ output}))
(recur output)))
#.None
@@ -420,12 +420,12 @@
(do [! async.monad]
[@tracker (stm.commit! (stm.read tracker))]
(case (dictionary.value path @tracker)
- (#.Some [concern key])
+ {#.Some [concern key]}
(do !
[_ (async.future
(java/nio/file/WatchKey::cancel key))
_ (stm.commit! (stm.update (dictionary.lacks path) tracker))]
- (in (#try.Success concern)))
+ (in {#try.Success concern}))
#.None
(in (exception.except ..not_being_watched [path]))))))]]
@@ -441,13 +441,13 @@
path)]
(do async.monad
[_ (stm.commit! (stm.update (dictionary.has path [concern key]) tracker))]
- (in (#try.Success []))))))
+ (in {#try.Success []})))))
(def: (concern path)
(do async.monad
[@tracker (stm.commit! (stm.read tracker))]
(case (dictionary.value path @tracker)
- (#.Some [concern key])
- (in (#try.Success concern))
+ {#.Some [concern key]}
+ (in {#try.Success concern})
#.None
(in (exception.except ..not_being_watched [path])))))
diff --git a/stdlib/source/library/lux/world/net/http/client.lux b/stdlib/source/library/lux/world/net/http/client.lux
index c5af6d11f..472c49a52 100644
--- a/stdlib/source/library/lux/world/net/http/client.lux
+++ b/stdlib/source/library/lux/world/net/http/client.lux
@@ -172,7 +172,7 @@
(do [! (try.with io.monad)]
[?name (java/net/URLConnection::getHeaderFieldKey index connection)]
(case ?name
- (#.Some name)
+ {#.Some name}
(do !
[?value (java/net/URLConnection::getHeaderField index connection)]
(recur (++ index)
@@ -194,7 +194,7 @@
(java/net/URLConnection::setRequestProperty name value connection))
(dictionary.entries headers))
_ (case data
- (#.Some data)
+ {#.Some data}
(do !
[_ (java/net/URLConnection::setDoOutput true connection)
stream (java/net/URLConnection::getOutputStream connection)
@@ -224,14 +224,14 @@
(|> (\ client request method url headers data)
async.future
(\ async.monad each
- (|>> (case> (#try.Success [status message])
- (#try.Success [status (revised@ #//.body (: (-> (//.Body IO) (//.Body Async))
+ (|>> (case> {#try.Success [status message]}
+ {#try.Success [status (revised@ #//.body (: (-> (//.Body IO) (//.Body Async))
(function (_ body)
(|>> body async.future)))
- message)])
+ message)]}
- (#try.Failure error)
- (#try.Failure error)))))))
+ {#try.Failure error}
+ {#try.Failure error}))))))
(def: .public headers
(-> (List [Text Text]) //.Headers)
diff --git a/stdlib/source/library/lux/world/net/http/request.lux b/stdlib/source/library/lux/world/net/http/request.lux
index 9ab4b1d32..c6185bc09 100644
--- a/stdlib/source/library/lux/world/net/http/request.lux
+++ b/stdlib/source/library/lux/world/net/http/request.lux
@@ -61,10 +61,10 @@
[raw ?raw
content (\ json.codec decoded raw)]
(json.result content reader))
- (#try.Success input)
+ {#try.Success input}
(server input request)
- (#try.Failure error)
+ {#try.Failure error}
(async.resolved ..failure)))))
(def: .public (text server)
@@ -73,10 +73,10 @@
(do async.monad
[?raw (read_text_body (value@ #//.body message))]
(case ?raw
- (#try.Success content)
+ {#try.Success content}
(server content request)
- (#try.Failure error)
+ {#try.Failure error}
(async.resolved ..failure)))))
(def: .public (query property server)
@@ -91,10 +91,10 @@
input (context.result query property)]
(in [[identification protocol (with@ #//.uri uri resource) message]
input]))
- (#try.Success [request input])
+ {#try.Success [request input]}
(server input request)
- (#try.Failure error)
+ {#try.Failure error}
(async.resolved ..failure)))))
(def: .public (form property server)
@@ -106,10 +106,10 @@
[body ?body
form (//query.parameters body)]
(context.result form property))
- (#try.Success input)
+ {#try.Success input}
(server input request)
- (#try.Failure error)
+ {#try.Failure error}
(async.resolved ..failure)))))
(def: .public (cookies property server)
@@ -121,8 +121,8 @@
(maybe.else "")
//cookie.get)]
(context.result cookies property))
- (#try.Success input)
+ {#try.Success input}
(server input request)
- (#try.Failure error)
+ {#try.Failure error}
(async.resolved ..failure))))
diff --git a/stdlib/source/library/lux/world/program.lux b/stdlib/source/library/lux/world/program.lux
index feb95fff9..eb0fe35cf 100644
--- a/stdlib/source/library/lux/world/program.lux
+++ b/stdlib/source/library/lux/world/program.lux
@@ -62,10 +62,10 @@
(in (|> entries
(list.all (function (_ [name value])
(case value
- (#try.Success value)
- (#.Some [name value])
+ {#try.Success value}
+ {#.Some [name value]}
- (#try.Failure _)
+ {#try.Failure _}
#.None)))
(dictionary.of_list text.hash)))))
@@ -97,8 +97,8 @@
(function.constant (io.io (dictionary.keys environment))))
(def: (variable name)
(io.io (case (dictionary.value name environment)
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(exception.except ..unknown_environment_variable [name]))))
@@ -137,8 +137,8 @@
(def: (jvm\\consume iterator)
(All (_ a) (-> (java/util/Iterator a) (List a)))
(if (java/util/Iterator::hasNext iterator)
- (#.Item (java/util/Iterator::next iterator)
- (jvm\\consume iterator))
+ {#.Item (java/util/Iterator::next iterator)
+ (jvm\\consume iterator)}
#.End))
)]
(for [@.old (as_is <jvm>)
@@ -155,7 +155,7 @@
(def: (exit_node_js! code)
(-> Exit (IO Nothing))
(case (ffi.constant ..NodeJs_Process [process])
- (#.Some process)
+ {#.Some process}
(NodeJs_Process::exit (i.frac code) process)
#.None
@@ -173,18 +173,18 @@
(-> Exit (IO Nothing))
(case [(ffi.constant ..Browser_Window [window])
(ffi.constant ..Browser_Location [location])]
- [(#.Some window) (#.Some location)]
+ [{#.Some window} {#.Some location}]
(exec
(Browser_Window::close [] window)
(Browser_Location::reload [] location)
(..default_exit! code))
- [(#.Some window) #.None]
+ [{#.Some window} #.None]
(exec
(Browser_Window::close [] window)
(..default_exit! code))
- [#.None (#.Some location)]
+ [#.None {#.Some location}]
(exec
(Browser_Location::reload [] location)
(..default_exit! code))
@@ -213,9 +213,9 @@
(def: (require _)
(-> [] (-> ffi.String Any))
(case [(normal_require []) (global_require []) (process_load [])]
- (^or [(#.Some require) _ _]
- [_ (#.Some require) _]
- [_ _ (#.Some require)])
+ (^or [{#.Some require} _ _]
+ [_ {#.Some require} _]
+ [_ _ {#.Some require}])
require
_
@@ -247,9 +247,9 @@
(do [! io.monad]
[outcome (io/popen [command])]
(case outcome
- (#try.Success outcome)
+ {#try.Success outcome}
(case outcome
- (#.Some file)
+ {#.Some file}
(do !
[?output (LuaFile::read ["*l"] file)
_ (LuaFile::close [] file)]
@@ -258,7 +258,7 @@
#.None
(in default))
- (#try.Failure _)
+ {#try.Failure _}
(in default)))))
@.ruby (as_is (ffi.import: Env "as" RubyEnv
["[1]::[0]"
@@ -314,7 +314,7 @@
@.jvm <jvm>
@.js (io.io (if ffi.on_node_js?
(case (ffi.constant Object [process env])
- (#.Some process/env)
+ {#.Some process/env}
(|> (Object::entries [process/env])
(array.list #.None)
(list\each (|>> (array.read! 0) maybe.trusted)))
@@ -352,8 +352,8 @@
[(do io.monad
[value (<method> name)]
(in (case value
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(exception.except ..unknown_environment_variable [name]))))]]
@@ -365,8 +365,8 @@
[process/env (ffi.constant Object [process env])]
(array.read! (:as Nat name)
(:as (Array Text) process/env)))
- (#.Some value)
- (#try.Success value)
+ {#.Some value}
+ {#try.Success value}
#.None
(exception.except ..unknown_environment_variable [name]))
@@ -407,7 +407,7 @@
@.jvm <jvm>
@.js (if ffi.on_node_js?
(case (ffi.constant ..NodeJs_Process [process])
- (#.Some process)
+ {#.Some process}
(NodeJs_Process::cwd [] process)
#.None
diff --git a/stdlib/source/library/lux/world/shell.lux b/stdlib/source/library/lux/world/shell.lux
index 5c0fdfbc7..3fd76261b 100644
--- a/stdlib/source/library/lux/world/shell.lux
+++ b/stdlib/source/library/lux/world/shell.lux
@@ -249,7 +249,7 @@
(do !
[output (java/io/BufferedReader::readLine <stream>)]
(case output
- (#.Some output)
+ {#.Some output}
(in output)
#.None
@@ -331,13 +331,13 @@
(do [! io.monad]
[|state| (atom.read! state)]
(case (\ mock <mock> |state|)
- (#try.Success [|state| output])
+ {#try.Success [|state| output]}
(do !
[_ (atom.write! |state| state)]
- (in (#try.Success output)))
+ (in {#try.Success output}))
- (#try.Failure error)
- (in (#try.Failure error)))))]
+ {#try.Failure error}
+ (in {#try.Failure error}))))]
[read on_read]
[error on_error]
@@ -347,24 +347,24 @@
(do [! io.monad]
[|state| (atom.read! state)]
(case (\ mock on_write message |state|)
- (#try.Success |state|)
+ {#try.Success |state|}
(do !
[_ (atom.write! |state| state)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
- (#try.Failure error)
- (in (#try.Failure error)))))
+ {#try.Failure error}
+ (in {#try.Failure error}))))
(def: (destroy _)
(do [! io.monad]
[|state| (atom.read! state)]
(case (\ mock on_destroy |state|)
- (#try.Success |state|)
+ {#try.Success |state|}
(do !
[_ (atom.write! |state| state)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
- (#try.Failure error)
- (in (#try.Failure error)))))))
+ {#try.Failure error}
+ (in {#try.Failure error}))))))
(implementation: .public (mock mock init)
(All (_ s)
diff --git a/stdlib/source/poly/lux/data/format/json.lux b/stdlib/source/poly/lux/data/format/json.lux
index 5fed388e2..e556c2ac6 100644
--- a/stdlib/source/poly/lux/data/format/json.lux
+++ b/stdlib/source/poly/lux/data/format/json.lux
@@ -59,8 +59,8 @@
(def: (encoded input)
(let [high (|> input (i64.and high_mask) (i64.right_shifted 32))
low (i64.and low_mask input)]
- (#/.Array (row (|> high .int int.frac #/.Number)
- (|> low .int int.frac #/.Number)))))
+ {#/.Array (row (|> high .int int.frac #/.Number)
+ (|> low .int int.frac #/.Number))}))
(def: decoded
(</>.result (</>.array
(do <>.monad
@@ -83,7 +83,7 @@
(function (_ elem)
(case elem
#.None #/.Null
- (#.Some value) (writer value))))
+ {#.Some value} (writer value))))
(implementation: qty_codec
(All (_ unit)
diff --git a/stdlib/source/program/aedifex.lux b/stdlib/source/program/aedifex.lux
index 682c30099..758397321 100644
--- a/stdlib/source/program/aedifex.lux
+++ b/stdlib/source/program/aedifex.lux
@@ -90,7 +90,7 @@
_
(do async.monad
[_ (\ program exit exit_code)]
- (in (#try.Failure ""))))]
+ (in {#try.Failure ""})))]
(in output)))
(exception: (cannot_find_repository [repository Text
@@ -117,10 +117,10 @@
[outcome action]
(async.future
(case outcome
- (#try.Success _)
+ {#try.Success _}
..succeed!
- (#try.Failure error)
+ {#try.Failure error}
(..fail! error))))
(\ io.monad in [])))
@@ -128,10 +128,10 @@
(do [! io.monad]
[?console console.default]
(case (try\each console.async ?console)
- (#try.Failure error)
+ {#try.Failure error}
(..fail! error)
- (#try.Success console)
+ {#try.Success console}
(case operation
#/cli.Version
(..command
@@ -141,10 +141,10 @@
(do !
[?profile (/input.read io.monad file.default profiles)]
(case ?profile
- (#try.Failure error)
+ {#try.Failure error}
(..fail! error)
- (#try.Success profile)
+ {#try.Success profile}
(let [program (program.async program.default)]
(case operation
#/cli.Version
@@ -163,14 +163,14 @@
(let [fs (file.async file.default)]
(/command/install.do! console fs (/repository/local.repository program fs) profile)))
- (#/cli.Deploy repository identity)
+ {#/cli.Deploy repository identity}
(..command
(case (value@ #/.identity profile)
- (#.Some artifact)
+ {#.Some artifact}
(case (dictionary.value repository (value@ #/.deploy_repositories profile))
- (#.Some repository)
+ {#.Some repository}
(/command/deploy.do! console
- (/repository.async (/repository/remote.repository http.default (#.Some identity) repository))
+ (/repository.async (/repository/remote.repository http.default {#.Some identity} repository))
(file.async file.default)
artifact
profile)
@@ -190,21 +190,21 @@
/repository.async)
profile))
- (#/cli.Compilation compilation)
+ {#/cli.Compilation compilation}
(case compilation
#/cli.Build (..command
(..with_dependencies program console /command/build.do! profile))
#/cli.Test (..command
(..with_dependencies program console /command/test.do! profile)))
- (#/cli.Auto auto)
+ {#/cli.Auto auto}
(do !
[?watcher watch.default]
(case ?watcher
- (#try.Failure error)
+ {#try.Failure error}
(..fail! error)
- (#try.Success watcher)
+ {#try.Success watcher}
(..command
(case auto
#/cli.Build (..with_dependencies program console (/command/auto.do! /command/auto.delay watcher /command/build.do!) profile)
diff --git a/stdlib/source/program/aedifex/artifact/snapshot.lux b/stdlib/source/program/aedifex/artifact/snapshot.lux
index 0a0d5cd94..64ff5d7b7 100644
--- a/stdlib/source/program/aedifex/artifact/snapshot.lux
+++ b/stdlib/source/program/aedifex/artifact/snapshot.lux
@@ -18,7 +18,7 @@
(type: .public Snapshot
(Variant
#Local
- (#Remote Stamp)))
+ {#Remote Stamp}))
(implementation: any_equivalence
(Equivalence Any)
@@ -45,9 +45,9 @@
(def: local_copy_format
XML
- (#xml.Node <local_copy>
- xml.attributes
- (list (#xml.Text ..local_copy_value))))
+ {#xml.Node <local_copy>
+ xml.attributes
+ (list {#xml.Text ..local_copy_value})})
(def: local_copy_parser
(Parser Any)
@@ -57,12 +57,12 @@
(def: .public (format snapshot)
(-> Snapshot XML)
- (<| (#xml.Node ..<snapshot> xml.attributes)
+ (<| {#xml.Node ..<snapshot> xml.attributes}
(case snapshot
#Local
(list ..local_copy_format)
- (#Remote stamp)
+ {#Remote stamp}
(/stamp.format stamp))))
(def: .public parser
diff --git a/stdlib/source/program/aedifex/artifact/snapshot/build.lux b/stdlib/source/program/aedifex/artifact/snapshot/build.lux
index a7e9e2fc8..4960f5862 100644
--- a/stdlib/source/program/aedifex/artifact/snapshot/build.lux
+++ b/stdlib/source/program/aedifex/artifact/snapshot/build.lux
@@ -33,7 +33,7 @@
(|>> %.nat
#xml.Text
list
- (#xml.Node ..tag xml.attributes)))
+ {#xml.Node ..tag xml.attributes}))
(def: .public parser
(Parser Build)
diff --git a/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux b/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux
index 0a951c097..a840bd3c0 100644
--- a/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux
+++ b/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux
@@ -35,9 +35,9 @@
(def: time_format
(-> Time XML)
(|>> //time.format
- #xml.Text
+ {#xml.Text}
list
- (#xml.Node ..<timestamp> xml.attributes)))
+ {#xml.Node ..<timestamp> xml.attributes}))
(def: .public (format (^slots [#time #build]))
(-> Stamp (List XML))
diff --git a/stdlib/source/program/aedifex/artifact/snapshot/version.lux b/stdlib/source/program/aedifex/artifact/snapshot/version.lux
index 33238b990..2dac99df9 100644
--- a/stdlib/source/program/aedifex/artifact/snapshot/version.lux
+++ b/stdlib/source/program/aedifex/artifact/snapshot/version.lux
@@ -43,11 +43,11 @@
(def: (text_format tag value)
(-> xml.Tag Text XML)
- (|> value #xml.Text list (#xml.Node tag xml.attributes)))
+ (|> value #xml.Text list {#xml.Node tag xml.attributes}))
(def: .public (format (^slots [#extension #value #updated]))
(-> Version XML)
- (<| (#xml.Node ..<snapshot_version> xml.attributes)
+ (<| {#xml.Node ..<snapshot_version> xml.attributes}
(list (..text_format ..<extension> extension)
(..text_format ..<value> value)
(..text_format ..<updated> (///time.format updated)))))
diff --git a/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux b/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux
index dc3744f4f..5f1816b3e 100644
--- a/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux
+++ b/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux
@@ -35,7 +35,7 @@
#///.Local
version
- (#///.Remote stamp)
+ {#///.Remote stamp}
(let [(^slots [#///stamp.time #///stamp.build]) stamp]
(%.format (text.replaced ..snapshot
(///time.format time)
diff --git a/stdlib/source/program/aedifex/artifact/time/date.lux b/stdlib/source/program/aedifex/artifact/time/date.lux
index 3da3c1b86..167d0d2a2 100644
--- a/stdlib/source/program/aedifex/artifact/time/date.lux
+++ b/stdlib/source/program/aedifex/artifact/time/date.lux
@@ -51,7 +51,7 @@
(if (or (i.< ..min_year year)
(i.> ..max_year year))
(exception.except ..year_is_out_of_range [(date.year raw)])
- (#try.Success (:abstraction raw)))))
+ {#try.Success (:abstraction raw)})))
(def: .public value
(-> Date date.Date)
diff --git a/stdlib/source/program/aedifex/artifact/versioning.lux b/stdlib/source/program/aedifex/artifact/versioning.lux
index 644af3fa1..cf30987d2 100644
--- a/stdlib/source/program/aedifex/artifact/versioning.lux
+++ b/stdlib/source/program/aedifex/artifact/versioning.lux
@@ -59,16 +59,16 @@
(def: last_updated_format
(-> //time.Time XML)
- (|>> //time.format #xml.Text list (#xml.Node ..<last_updated> xml.attributes)))
+ (|>> //time.format #xml.Text list {#xml.Node ..<last_updated> xml.attributes}))
(def: .public (format (^slots [#snapshot #last_updated #versions]))
(-> Versioning XML)
- (<| (#xml.Node ..<versioning> xml.attributes)
+ (<| {#xml.Node ..<versioning> xml.attributes}
(list (//snapshot.format snapshot)
(..last_updated_format last_updated)
(|> versions
(list\each //snapshot/version.format)
- (#xml.Node ..<snapshot_versions> xml.attributes)))))
+ {#xml.Node ..<snapshot_versions> xml.attributes}))))
(def: (text tag)
(-> xml.Tag (Parser Text))
diff --git a/stdlib/source/program/aedifex/cli.lux b/stdlib/source/program/aedifex/cli.lux
index 04706756f..fc4cf5440 100644
--- a/stdlib/source/program/aedifex/cli.lux
+++ b/stdlib/source/program/aedifex/cli.lux
@@ -44,9 +44,9 @@
#POM
#Dependencies
#Install
- (#Deploy Text Identity)
- (#Compilation Compilation)
- (#Auto Compilation)))
+ {#Deploy Text Identity}
+ {#Compilation Compilation}
+ {#Auto Compilation}))
(def: .public equivalence
(Equivalence Command)
@@ -97,7 +97,7 @@
(do <>.monad
[head cli.any
[tail command] command]
- (in [(#.Item head tail) command])))
+ (in [{#.Item head tail} command])))
(\ <>.monad each (|>> [(list /.default)])
..command')
))))
diff --git a/stdlib/source/program/aedifex/command/auto.lux b/stdlib/source/program/aedifex/command/auto.lux
index dc065c399..0b82f4d81 100644
--- a/stdlib/source/program/aedifex/command/auto.lux
+++ b/stdlib/source/program/aedifex/command/auto.lux
@@ -41,7 +41,7 @@
(def: (pause delay)
(-> Nat (Async (Try Any)))
- (async.after delay (#try.Success [])))
+ (async.after delay {#try.Success []}))
(def: .public (do! delay watcher command)
(All (_ a)
@@ -65,7 +65,7 @@
[_ (..pause delay)
events (\ watcher poll [])]
(case events
- (#.Item _)
+ {#.Item _}
(do !
[_ <call>]
(recur []))
diff --git a/stdlib/source/program/aedifex/command/build.lux b/stdlib/source/program/aedifex/command/build.lux
index 7d4592179..63d2affb7 100644
--- a/stdlib/source/program/aedifex/command/build.lux
+++ b/stdlib/source/program/aedifex/command/build.lux
@@ -51,7 +51,7 @@
(list.one (function (_ [dependency package])
(if (and (text\= group (value@ [#///dependency.artifact #///artifact.group] dependency))
(text\= name (value@ [#///dependency.artifact #///artifact.name] dependency)))
- (#.Some dependency)
+ {#.Some dependency}
#.None)))))
(def: .public lux_group
@@ -75,11 +75,11 @@
(type: .public Compiler
(Variant
- (#JVM Dependency)
- (#JS Dependency)
- (#Python Dependency)
- (#Lua Dependency)
- (#Ruby Dependency)))
+ {#JVM Dependency}
+ {#JS Dependency}
+ {#Python Dependency}
+ {#Lua Dependency}
+ {#Ruby Dependency}))
(def: (remove_dependency dependency)
(-> Dependency (-> Resolution Resolution))
@@ -91,12 +91,12 @@
(-> Resolution Dependency (Try [Resolution Compiler]))
(let [[[compiler_group compiler_name compiler_version] compiler_type] compiler_dependency]
(case (..dependency_finder compiler_group compiler_name resolution)
- (#.Some dependency)
+ {#.Some dependency}
(case compiler_name
(^template [<tag> <name>]
[(^ (static <name>))
- (#try.Success [(..remove_dependency dependency resolution)
- (<tag> dependency)])])
+ {#try.Success [(..remove_dependency dependency resolution)
+ {<tag> dependency}]}])
([#JVM ..jvm_compiler_name]
[#JS ..js_compiler_name]
[#Python ..python_compiler_name]
@@ -139,16 +139,16 @@
(loop [left (text.all_split_by ..version_separator left)
right (text.all_split_by ..version_separator right)]
(case [left right]
- [(#.Item leftH leftT) (#.Item rightH rightT)]
+ [{#.Item leftH leftT} {#.Item rightH rightT}]
(if (text\= leftH rightH)
(recur leftT rightT)
(or (n.< (text.size leftH) (text.size rightH))
(text\< leftH rightH)))
- [(#.Item leftH leftT) #.End]
+ [{#.Item leftH leftT} #.End]
false
- [#.End (#.Item rightH rightT)]
+ [#.End {#.Item rightH rightT}]
true
[#.End #.End]
@@ -166,7 +166,7 @@
(value@ #///artifact.name artifact)]
version (value@ #///artifact.version artifact)]
(case (dictionary.value identity uniques)
- (#.Some [current_version current_path])
+ {#.Some [current_version current_path]}
(if (\ version_order < version current_version)
(dictionary.has identity [version dependency] uniques)
uniques)
@@ -203,18 +203,18 @@
_ (|> (\ process <capability> [])
(async.upon! (function (recur ?line)
(case ?line
- (#try.Failure error)
+ {#try.Failure error}
(if (exception.match? shell.no_more_output error)
- (write! (#try.Success []))
+ (write! {#try.Success []})
(async.upon! write! (console.write_line error console)))
- (#try.Success line)
+ {#try.Success line}
(async.upon! (function (_ outcome)
(case outcome
- (#try.Failure error)
- (write! (#try.Failure error))
+ {#try.Failure error}
+ (write! {#try.Failure error})
- (#try.Success _)
+ {#try.Success _}
(async.upon! recur
(\ process <capability> []))))
(console.write_line line console)))))
@@ -245,7 +245,7 @@
(def: (jvm_class_path host_dependencies)
(-> (List Path) Text)
(|> host_dependencies
- (#.Item ".")
+ {#.Item "."}
(text.interposed ..jvm_class_path_separator)))
(def: .public (with_jvm_class_path host_dependencies runtime)
@@ -267,7 +267,7 @@
#.None
(async\in (exception.except ..no_specified_program []))
- (#.Some program_module)
+ {#.Some program_module}
(do async.monad
[environment (program.environment async.monad program)
.let [home (\ program home)
@@ -276,14 +276,14 @@
[[resolution compiler] (async\in (..compiler resolution (value@ #///.compiler profile)))
.let [host_dependencies (..host_dependencies fs home resolution)
[[command compiler_params] output] (case compiler
- (#JVM dependency)
+ {#JVM dependency}
[(|> (value@ #///.java profile)
(with@ #///runtime.parameters (list "program._"))
- (with_jvm_class_path (#.Item (..path fs home dependency) host_dependencies)))
+ (with_jvm_class_path {#.Item (..path fs home dependency) host_dependencies}))
"program.jar"]
(^template [<tag> <runtime> <program>]
- [(<tag> dependency)
+ [{<tag> dependency}
[(|> dependency
(..path fs home)
(///runtime.for (value@ <runtime> profile)))
diff --git a/stdlib/source/program/aedifex/command/deploy.lux b/stdlib/source/program/aedifex/command/deploy.lux
index ee2cc3c71..4d18f1b18 100644
--- a/stdlib/source/program/aedifex/command/deploy.lux
+++ b/stdlib/source/program/aedifex/command/deploy.lux
@@ -71,7 +71,7 @@
(let [pom_data (|> pom
(\ xml.codec encoded)
(\ utf8.codec encoded))]
- [#///package.origin (#///repository/origin.Remote "")
+ [#///package.origin {#///repository/origin.Remote ""}
#///package.library [library
(///dependency/status.verified library)]
#///package.pom [pom
diff --git a/stdlib/source/program/aedifex/command/deps.lux b/stdlib/source/program/aedifex/command/deps.lux
index 0cce84d7c..f26a76211 100644
--- a/stdlib/source/program/aedifex/command/deps.lux
+++ b/stdlib/source/program/aedifex/command/deps.lux
@@ -42,7 +42,7 @@
(do async.monad
[.let [dependencies (|> (value@ #///.dependencies profile)
set.list
- (#.Item (value@ #///.compiler profile)))]
+ {#.Item (value@ #///.compiler profile)})]
[local_successes local_failures cache] (///dependency/resolution.all console
(list local)
new_repository
diff --git a/stdlib/source/program/aedifex/command/install.lux b/stdlib/source/program/aedifex/command/install.lux
index 660d82477..65575f63f 100644
--- a/stdlib/source/program/aedifex/command/install.lux
+++ b/stdlib/source/program/aedifex/command/install.lux
@@ -52,7 +52,7 @@
(def: .public (do! console fs repository profile)
(-> (Console Async) (file.System Async) (Repository Async) (Command Any))
(case (value@ #/.identity profile)
- (#.Some identity)
+ {#.Some identity}
(do ///action.monad
[package (|> profile
(value@ #/.sources)
@@ -66,7 +66,7 @@
(let [pom_data (|> pom
(\ xml.codec encoded)
(\ utf8.codec encoded))]
- [#///package.origin (#///origin.Local "")
+ [#///package.origin {#///origin.Local ""}
#///package.library (let [library (binary.result tar.writer package)]
[library (///dependency/status.verified library)])
#///package.pom [pom
diff --git a/stdlib/source/program/aedifex/command/test.lux b/stdlib/source/program/aedifex/command/test.lux
index 35c805645..3e5cad3c6 100644
--- a/stdlib/source/program/aedifex/command/test.lux
+++ b/stdlib/source/program/aedifex/command/test.lux
@@ -42,13 +42,13 @@
[_ (console.write_line ..start console)
.let [host_dependencies (//build.host_dependencies fs home resolution)
[test_command test_parameters] (case compiler
- (#//build.JVM dependency)
+ {#//build.JVM dependency}
(|> program
(///runtime.for (value@ #///.java profile))
(//build.with_jvm_class_path host_dependencies))
(^template [<tag> <runtime>]
- [(<tag> artifact)
+ [{<tag> artifact}
(///runtime.for (value@ <runtime> profile)
program)])
([#//build.JS #///.js]
diff --git a/stdlib/source/program/aedifex/dependency/deployment.lux b/stdlib/source/program/aedifex/dependency/deployment.lux
index fa6da0bc0..84170965c 100644
--- a/stdlib/source/program/aedifex/dependency/deployment.lux
+++ b/stdlib/source/program/aedifex/dependency/deployment.lux
@@ -56,15 +56,15 @@
#///dependency/status.Unverified
(in [])
- (#///dependency/status.Partial partial)
+ {#///dependency/status.Partial partial}
(case partial
- (#.Left sha-1)
+ {#.Left sha-1}
(deploy_hash ///hash.sha-1_codec ///artifact/extension.sha-1 sha-1)
- (#.Right md5)
+ {#.Right md5}
(deploy_hash ///hash.md5_codec ///artifact/extension.md5 md5))
- (#///dependency/status.Verified sha-1 md5)
+ {#///dependency/status.Verified sha-1 md5}
(do !
[_ (deploy_hash ///hash.sha-1_codec ///artifact/extension.sha-1 sha-1)]
(deploy_hash ///hash.md5_codec ///artifact/extension.md5 md5))))))
@@ -78,12 +78,12 @@
#///dependency/status.Unverified
(list)
- (#///dependency/status.Partial partial)
+ {#///dependency/status.Partial partial}
(list (case partial
- (#.Left _) <sha-1>
- (#.Right _) <md5>))
+ {#.Left _} <sha-1>
+ {#.Right _} <md5>))
- (#///dependency/status.Verified _)
+ {#///dependency/status.Verified _}
(list <sha-1> <md5>)))))
(def: (update_snapshot [artifact type] now snapshot)
@@ -99,8 +99,8 @@
#///artifact/snapshot.Local
#///artifact/snapshot.Local
- (#///artifact/snapshot.Remote [_ build])
- (#///artifact/snapshot.Remote [now (++ build)]))))
+ {#///artifact/snapshot.Remote [_ build]}
+ {#///artifact/snapshot.Remote [now (++ build)]})))
(with@ [#///metadata/snapshot.versioning #///artifact/versioning.last_updated] now))
versioning_snapshot (value@ [#///metadata/snapshot.versioning #///artifact/versioning.snapshot] snapshot)]]
(in (|> snapshot
diff --git a/stdlib/source/program/aedifex/dependency/resolution.lux b/stdlib/source/program/aedifex/dependency/resolution.lux
index ce54d9d9a..3c8241595 100644
--- a/stdlib/source/program/aedifex/dependency/resolution.lux
+++ b/stdlib/source/program/aedifex/dependency/resolution.lux
@@ -85,7 +85,7 @@
(do async.monad
[?actual (\ repository download (///repository/remote.uri version_template artifact extension))]
(case ?actual
- (#try.Success actual)
+ {#try.Success actual}
(in (do [! try.monad]
[output (\ ! each (for [@.old (|>> (:as java/lang/String)
java/lang/String::trim
@@ -99,10 +99,10 @@
(\ codec decoded))
_ (exception.assertion exception [artifact extension output]
(\ ///hash.equivalence = (hash library) actual))]
- (in (#.Some actual))))
+ (in {#.Some actual})))
- (#try.Failure error)
- (in (#try.Success #.None)))))
+ {#try.Failure error}
+ (in {#try.Success #.None}))))
(def: (hashed repository version_template artifact extension)
(-> (Repository Async) Version Artifact Extension (Async (Try [Binary Status])))
@@ -115,14 +115,14 @@
repository version_template artifact (format extension ///artifact/extension.md5)
///hash.md5 ///hash.md5_codec ..md5_does_not_match)]
(in [data (case [?sha-1 ?md5]
- [(#.Some sha-1) (#.Some md5)]
- (#//status.Verified sha-1 md5)
+ [{#.Some sha-1} {#.Some md5}]
+ {#//status.Verified sha-1 md5}
- [(#.Some sha-1) #.None]
- (#//status.Partial (#.Left sha-1))
+ [{#.Some sha-1} #.None]
+ {#//status.Partial {#.Left sha-1}}
- [#.None (#.Some md5)]
- (#//status.Partial (#.Right md5))
+ [#.None {#.Some md5}]
+ {#//status.Partial {#.Right md5}}
[#.None #.None]
#//status.Unverified)])))
@@ -144,7 +144,7 @@
[pom (\ utf8.codec decoded pom_data)
pom (\ xml.codec decoded pom)
profile (<xml>.result ///pom.parser (list pom))]
- (in [#///package.origin (#///repository/origin.Remote "")
+ (in [#///package.origin {#///repository/origin.Remote ""}
#///package.library library_&_status
#///package.pom [pom pom_data pom_status]]))))))
@@ -187,17 +187,17 @@
(exception.except ..cannot_resolve)
(\ async.monad in))
- (#.Item repository alternatives)
+ {#.Item repository alternatives}
(do [! async.monad]
[_ (..announce_fetching console repository (value@ #//.artifact dependency))
outcome (..one repository dependency)]
(case outcome
- (#try.Success package)
+ {#try.Success package}
(do !
[_ (..announce_success console repository (value@ #//.artifact dependency))]
(in outcome))
- (#try.Failure error)
+ {#try.Failure error}
(do !
[_ (..announce_failure console repository (value@ #//.artifact dependency))]
(any console alternatives dependency))))))
@@ -217,7 +217,7 @@
(\ async.monad in
[successes failures resolution])
- (#.Item head tail)
+ {#.Item head tail}
(case (value@ [#//.artifact #///artifact.version] head)
... Skip if there is no version
"" (recur repositories
@@ -227,13 +227,13 @@
resolution)
_ (do [! async.monad]
[?package (case (dictionary.value head resolution)
- (#.Some package)
- (in (#try.Success package))
+ {#.Some package}
+ (in {#try.Success package})
#.None
(..any console repositories head))]
(case ?package
- (#try.Success package)
+ {#try.Success package}
(do !
[.let [redundant? (: (Predicate Dependency)
(predicate.or (\ //.equivalence = head)
@@ -252,15 +252,15 @@
... sub_repositories (list\composite repositories package_repositories)
]]
(recur repositories
- (#.Item head successes)
+ {#.Item head successes}
failures
(set.list (set.union (set.of_list //.hash tail)
(set.of_list //.hash sub_dependencies)))
(dictionary.has head package resolution)))
- (#try.Failure error)
+ {#try.Failure error}
(recur repositories
successes
- (#.Item head failures)
+ {#.Item head failures}
tail
resolution)))))))
diff --git a/stdlib/source/program/aedifex/dependency/status.lux b/stdlib/source/program/aedifex/dependency/status.lux
index f5439114e..150d3120b 100644
--- a/stdlib/source/program/aedifex/dependency/status.lux
+++ b/stdlib/source/program/aedifex/dependency/status.lux
@@ -13,9 +13,9 @@
(type: .public Status
(Variant
#Unverified
- (#Partial (Either (Hash SHA-1)
- (Hash MD5)))
- (#Verified (Hash SHA-1) (Hash MD5))))
+ {#Partial (Either (Hash SHA-1)
+ (Hash MD5))}
+ {#Verified (Hash SHA-1) (Hash MD5)}))
(implementation: any_equivalence
(Equivalence Any)
@@ -37,6 +37,6 @@
(def: .public (verified payload)
(-> Binary Status)
- (#Verified
+ {#Verified
(///hash.sha-1 payload)
- (///hash.md5 payload)))
+ (///hash.md5 payload)})
diff --git a/stdlib/source/program/aedifex/format.lux b/stdlib/source/program/aedifex/format.lux
index 3f626f0e2..5f7669366 100644
--- a/stdlib/source/program/aedifex/format.lux
+++ b/stdlib/source/program/aedifex/format.lux
@@ -44,7 +44,7 @@
(`' [#name (~ (code.text name))
#url (~ (code.text url))])
- (#.Some value)
+ {#.Some value}
(`' [#name (~ (code.text name))
#url (~ (code.text url))
#organization (~ (..organization value))])))
@@ -75,7 +75,7 @@
#.None
aggregate
- (#.Some value)
+ {#.Some value}
(dictionary.has field (format value) aggregate)))
(def: (on_list field value format aggregate)
diff --git a/stdlib/source/program/aedifex/hash.lux b/stdlib/source/program/aedifex/hash.lux
index 74e54679f..b25dedbb3 100644
--- a/stdlib/source/program/aedifex/hash.lux
+++ b/stdlib/source/program/aedifex/hash.lux
@@ -99,7 +99,7 @@
[(def: .public (<name> data)
(-> Binary (Try (Hash <kind>)))
(if (n.= <size> (binary.size data))
- (#try.Success (:abstraction data))
+ {#try.Success (:abstraction data)}
(exception.except <exception> [data])))]
[as_sha-1 SHA-1 ..sha-1::size ..not_a_sha-1]
@@ -125,7 +125,7 @@
output (binary.empty hash_size)]
(let [index (n.* chunk i64.bytes_per_i64)]
(case (text.split_at ..hex_per_chunk input)
- (#.Some [head tail])
+ {#.Some [head tail]}
(do try.monad
[head (\ n.hex decoded head)
output (binary.write/64! index head output)]
diff --git a/stdlib/source/program/aedifex/input.lux b/stdlib/source/program/aedifex/input.lux
index 02e212744..aa76979a8 100644
--- a/stdlib/source/program/aedifex/input.lux
+++ b/stdlib/source/program/aedifex/input.lux
@@ -36,11 +36,11 @@
syntax.no_aliases
(text.size source_code))]
(case (parse [location.dummy 0 source_code])
- (#.Left [_ error])
- (#try.Failure error)
+ {#.Left [_ error]}
+ {#try.Failure error}
- (#.Right [_ lux_code])
- (#try.Success lux_code))))
+ {#.Right [_ lux_code]}
+ {#try.Success lux_code})))
(def: project_parser
(-> Binary (Try Project))
diff --git a/stdlib/source/program/aedifex/metadata/artifact.lux b/stdlib/source/program/aedifex/metadata/artifact.lux
index 571d9bff1..b56c66104 100644
--- a/stdlib/source/program/aedifex/metadata/artifact.lux
+++ b/stdlib/source/program/aedifex/metadata/artifact.lux
@@ -84,7 +84,7 @@
(template [<name> <type> <tag> <pre>]
[(def: <name>
(-> <type> XML)
- (|>> <pre> #xml.Text list (#xml.Node <tag> xml.attributes)))]
+ (|>> <pre> {#xml.Text} list {#xml.Node <tag> xml.attributes}))]
[group_format Group ..<group> (|>)]
[name_format Name ..<name> (|>)]
@@ -94,18 +94,18 @@
(def: versions_format
(-> (List Version) XML)
- (|>> (list\each ..version_format) (#xml.Node ..<versions> xml.attributes)))
+ (|>> (list\each ..version_format) {#xml.Node ..<versions> xml.attributes}))
(def: .public (format value)
(-> Metadata XML)
- (#xml.Node ..<metadata>
- xml.attributes
- (list (..group_format (value@ #group value))
- (..name_format (value@ #name value))
- (#xml.Node ..<versioning>
- xml.attributes
- (list (..versions_format (value@ #versions value))
- (..last_updated_format (value@ #last_updated value)))))))
+ {#xml.Node ..<metadata>
+ xml.attributes
+ (list (..group_format (value@ #group value))
+ (..name_format (value@ #name value))
+ {#xml.Node ..<versioning>
+ xml.attributes
+ (list (..versions_format (value@ #versions value))
+ (..last_updated_format (value@ #last_updated value)))})})
(def: (text tag)
(-> xml.Tag (Parser Text))
@@ -178,20 +178,20 @@
(do async.monad
[project (\ repository download (..uri artifact))]
(case project
- (#try.Success project)
+ {#try.Success project}
(in (|> project
(do> try.monad
[(\ utf8.codec decoded)]
[(\ xml.codec decoded)]
[list (<xml>.result ..parser)])))
- (#try.Failure error)
- (in (#try.Success
+ {#try.Failure error}
+ (in {#try.Success
(let [(^slots [#///artifact.group #///artifact.name]) artifact]
[#group group
#name name
#versions (list)
- #last_updated ..epoch]))))))
+ #last_updated ..epoch])}))))
(def: .public (write repository artifact metadata)
(-> (Repository Async) Artifact Metadata (Async (Try Any)))
diff --git a/stdlib/source/program/aedifex/metadata/snapshot.lux b/stdlib/source/program/aedifex/metadata/snapshot.lux
index 53f5faee0..58792b042 100644
--- a/stdlib/source/program/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/program/aedifex/metadata/snapshot.lux
@@ -62,7 +62,7 @@
(template [<name> <type> <tag> <pre>]
[(def: <name>
(-> <type> XML)
- (|>> <pre> #xml.Text list (#xml.Node <tag> xml.attributes)))]
+ (|>> <pre> #xml.Text list {#xml.Node <tag> xml.attributes}))]
[group_format Group ..<group> (|>)]
[name_format Name ..<name> (|>)]
@@ -72,12 +72,12 @@
(def: .public (format (^slots [#artifact #versioning]))
(-> Metadata XML)
(let [(^slots [#///artifact.group #///artifact.name #///artifact.version]) artifact]
- (#xml.Node ..<metadata>
- xml.attributes
- (list (..group_format group)
- (..name_format name)
- (..version_format version)
- (///artifact/versioning.format versioning)))))
+ {#xml.Node ..<metadata>
+ xml.attributes
+ (list (..group_format group)
+ (..name_format name)
+ (..version_format version)
+ (///artifact/versioning.format versioning))}))
(def: (text tag)
(-> xml.Tag (Parser Text))
@@ -128,17 +128,17 @@
(do async.monad
[project (\ repository download (..uri artifact))]
(case project
- (#try.Success project)
+ {#try.Success project}
(in (|> project
(do> try.monad
[(\ utf8.codec decoded)]
[(\ xml.codec decoded)]
[list (<xml>.result ..parser)])))
- (#try.Failure error)
- (in (#try.Success
+ {#try.Failure error}
+ (in {#try.Success
[#artifact artifact
- #versioning ///artifact/versioning.init])))))
+ #versioning ///artifact/versioning.init]}))))
(def: .public (write repository artifact metadata)
(-> (Repository Async) Artifact Metadata (Async (Try Any)))
diff --git a/stdlib/source/program/aedifex/package.lux b/stdlib/source/program/aedifex/package.lux
index bd149b0d9..62757c9b0 100644
--- a/stdlib/source/program/aedifex/package.lux
+++ b/stdlib/source/program/aedifex/package.lux
@@ -38,7 +38,7 @@
[(def: .public (<name> package)
(-> Package Bit)
(case (value@ #origin package)
- (<tag> _)
+ {<tag> _}
true
_
@@ -50,15 +50,15 @@
(def: .public (local pom library)
(-> XML Binary Package)
- [#origin (#//origin.Local "")
+ [#origin {#//origin.Local ""}
#library [library
- (#//status.Verified (//hash.sha-1 library)
- (//hash.md5 library))]
+ {#//status.Verified (//hash.sha-1 library)
+ (//hash.md5 library)}]
#pom (let [binary_pom (|> pom (\ xml.codec encoded) (\ utf8.codec encoded))]
[pom
binary_pom
- (#//status.Verified (//hash.sha-1 binary_pom)
- (//hash.md5 binary_pom))])])
+ {#//status.Verified (//hash.sha-1 binary_pom)
+ (//hash.md5 binary_pom)}])])
(def: .public dependencies
(-> Package (Try (Set Dependency)))
diff --git a/stdlib/source/program/aedifex/parser.lux b/stdlib/source/program/aedifex/parser.lux
index 02840c2ec..b3239d4e2 100644
--- a/stdlib/source/program/aedifex/parser.lux
+++ b/stdlib/source/program/aedifex/parser.lux
@@ -31,7 +31,7 @@
(def: (as_input input)
(-> (Maybe Code) (List Code))
(case input
- (#.Some input)
+ {#.Some input}
(list input)
#.None
diff --git a/stdlib/source/program/aedifex/pom.lux b/stdlib/source/program/aedifex/pom.lux
index 7cf6f961e..49e3793fe 100644
--- a/stdlib/source/program/aedifex/pom.lux
+++ b/stdlib/source/program/aedifex/pom.lux
@@ -47,14 +47,14 @@
(def: version
XML
- (#_.Node ["" "modelVersion"] _.attributes
- (list (#_.Text "4.0.0"))))
+ {#_.Node ["" "modelVersion"] _.attributes
+ (list {#_.Text "4.0.0"})})
(def: (property tag value)
(-> Text Text XML)
- (#_.Node ["" tag]
- _.attributes
- (list (#_.Text value))))
+ {#_.Node ["" tag]
+ _.attributes
+ (list {#_.Text value})})
(def: (artifact value)
(-> Artifact (List XML))
@@ -73,37 +73,37 @@
(|> (list (..property "name" name)
(..property ..url_tag url)
(..distribution distribution))
- (#_.Node ["" "license"] _.attributes)))
+ {#_.Node ["" "license"] _.attributes}))
(def: repository
(-> Address XML)
(|>> (..property ..url_tag)
list
- (#_.Node ["" ..repository_tag] _.attributes)))
+ {#_.Node ["" ..repository_tag] _.attributes}))
(def: (dependency value)
(-> Dependency XML)
- (#_.Node ["" ..dependency_tag]
- _.attributes
- (list\composite (..artifact (value@ #//dependency.artifact value))
- (list (..property "type" (value@ #//dependency.type value))))))
+ {#_.Node ["" ..dependency_tag]
+ _.attributes
+ (list\composite (..artifact (value@ #//dependency.artifact value))
+ (list (..property "type" (value@ #//dependency.type value))))})
(def: (group tag)
(-> Text (-> (List XML) XML))
- (|>> (#_.Node ["" tag] _.attributes)))
+ (|>> {#_.Node ["" tag] _.attributes}))
(comment
(def: scm
(-> /.SCM XML)
(|>> (..property ..url_tag)
list
- (#_.Node ["" "scm"] _.attributes)))
+ {#_.Node ["" "scm"] _.attributes}))
(def: (organization [name url])
(-> /.Organization XML)
(|> (list (..property "name" name)
(..property ..url_tag url))
- (#_.Node ["" "organization"] _.attributes)))
+ {#_.Node ["" "organization"] _.attributes}))
(def: (developer_organization [name url])
(-> /.Organization (List XML))
@@ -119,7 +119,7 @@
(template [<name> <type> <tag>]
[(def: <name>
(-> <type> XML)
- (|>> ..developer' (#_.Node ["" <tag>] _.attributes)))]
+ (|>> ..developer' {#_.Node ["" <tag>] _.attributes}))]
[developer /.Developer "developer"]
[contributor /.Contributor "contributor"]
@@ -141,15 +141,15 @@
(def: .public (write value)
(-> /.Profile (Try XML))
(case (value@ #/.identity value)
- (#.Some identity)
- (#try.Success
- (#_.Node ["" ..project_tag] _.attributes
- ($_ list\composite
- (list ..version)
- (..artifact identity)
- (|> value (value@ #/.repositories) set.list (list\each ..repository) (..group "repositories") list)
- (|> value (value@ #/.dependencies) set.list (list\each ..dependency) (..group ..dependencies_tag) list)
- )))
+ {#.Some identity}
+ {#try.Success
+ {#_.Node ["" ..project_tag] _.attributes
+ ($_ list\composite
+ (list ..version)
+ (..artifact identity)
+ (|> value (value@ #/.repositories) set.list (list\each ..repository) (..group "repositories") list)
+ (|> value (value@ #/.dependencies) set.list (list\each ..dependency) (..group ..dependencies_tag) list)
+ )}}
_
(exception.except /.no_identity [])))
diff --git a/stdlib/source/program/aedifex/project.lux b/stdlib/source/program/aedifex/project.lux
index 1d1d55998..acf3c3819 100644
--- a/stdlib/source/program/aedifex/project.lux
+++ b/stdlib/source/program/aedifex/project.lux
@@ -54,10 +54,10 @@
(def: (profile' lineage project name)
(-> (Set Name) Project Name (Try Profile))
(case (dictionary.value name project)
- (#.Some profile)
+ {#.Some profile}
(case (list.example (set.member? lineage)
(value@ #//.parents profile))
- (#.Some ouroboros)
+ {#.Some ouroboros}
(exception.except ..circular_dependency [ouroboros name])
#.None
diff --git a/stdlib/source/program/aedifex/repository.lux b/stdlib/source/program/aedifex/repository.lux
index 5cca8174b..b836cfa54 100644
--- a/stdlib/source/program/aedifex/repository.lux
+++ b/stdlib/source/program/aedifex/repository.lux
@@ -57,24 +57,24 @@
(do [! stm.monad]
[|state| (stm.read state)]
(case (\ mock on_download uri |state|)
- (#try.Success [|state| output])
+ {#try.Success [|state| output]}
(do !
[_ (stm.write |state| state)]
- (in (#try.Success output)))
+ (in {#try.Success output}))
- (#try.Failure error)
- (in (#try.Failure error))))))
+ {#try.Failure error}
+ (in {#try.Failure error})))))
(def: (upload uri content)
(stm.commit!
(do [! stm.monad]
[|state| (stm.read state)]
(case (\ mock on_upload uri content |state|)
- (#try.Success |state|)
+ {#try.Success |state|}
(do !
[_ (stm.write |state| state)]
- (in (#try.Success [])))
+ (in {#try.Success []}))
- (#try.Failure error)
- (in (#try.Failure error))))))
+ {#try.Failure error}
+ (in {#try.Failure error})))))
)))
diff --git a/stdlib/source/program/aedifex/repository/local.lux b/stdlib/source/program/aedifex/repository/local.lux
index 2c528a520..508fcba28 100644
--- a/stdlib/source/program/aedifex/repository/local.lux
+++ b/stdlib/source/program/aedifex/repository/local.lux
@@ -53,7 +53,7 @@
_ (if ?
(in [])
(case (file.parent fs absolute_path)
- (#.Some parent)
+ {#.Some parent}
(file.make_directories async.monad fs parent)
_
diff --git a/stdlib/source/program/aedifex/repository/origin.lux b/stdlib/source/program/aedifex/repository/origin.lux
index 72163f641..a5a613a1a 100644
--- a/stdlib/source/program/aedifex/repository/origin.lux
+++ b/stdlib/source/program/aedifex/repository/origin.lux
@@ -12,8 +12,8 @@
(type: .public Origin
(Variant
- (#Local Path)
- (#Remote URL)))
+ {#Local Path}
+ {#Remote URL}))
(def: .public equivalence
(Equivalence Origin)
diff --git a/stdlib/source/program/aedifex/repository/remote.lux b/stdlib/source/program/aedifex/repository/remote.lux
index 4f852c2b7..269ff15a9 100644
--- a/stdlib/source/program/aedifex/repository/remote.lux
+++ b/stdlib/source/program/aedifex/repository/remote.lux
@@ -73,7 +73,7 @@
_
(do !
- [_ ((value@ #@http.body message) (#.Some 0))]
+ [_ ((value@ #@http.body message) {#.Some 0})]
(\ io.monad in (exception.except ..download_failure [(format address uri) status]))))))
(def: (upload uri content)
@@ -84,12 +84,12 @@
#.None
..base_headers
- (#.Some [user password])
+ {#.Some [user password]}
(list& ["Authorization" (//identity.basic_auth user password)]
..base_headers)))
- (#.Some content)
+ {#.Some content}
http))
- _ ((value@ #@http.body message) (#.Some 0))]
+ _ ((value@ #@http.body message) {#.Some 0})]
(case status
(^ (static http/status.created))
(in [])
diff --git a/stdlib/source/program/compositor.lux b/stdlib/source/program/compositor.lux
index b36d73070..f18f45e54 100644
--- a/stdlib/source/program/compositor.lux
+++ b/stdlib/source/program/compositor.lux
@@ -63,13 +63,13 @@
(do async.monad
[?output action]
(case ?output
- (#try.Failure error)
+ {#try.Failure error}
(exec (debug.log! (format text.new_line
failure_description text.new_line
error text.new_line))
(io.run! (\ world/program.default exit +1)))
- (#try.Success output)
+ {#try.Success output}
(in output))))
(def: (timed process)
@@ -87,11 +87,11 @@
(def: (package! fs host_dependencies [packager package] static archive context)
(-> (file.System Async) (Dictionary file.Path Binary) [Packager file.Path] Static Archive Context (Async (Try Any)))
(case (packager host_dependencies archive context)
- (#try.Success content)
+ {#try.Success content}
(\ fs write content package)
- (#try.Failure error)
- (\ async.monad in (#try.Failure error))))
+ {#try.Failure error}
+ (\ async.monad in {#try.Failure error})))
(def: (load_host_dependencies fs host_dependencies)
(-> (file.System Async) (List file.Path) (Async (Try (Dictionary file.Path Binary))))
@@ -104,7 +104,7 @@
#.End
(in output)
- (#.Item head tail)
+ {#.Item head tail}
(do !
[content (\ fs read head)]
(recur tail
@@ -131,7 +131,7 @@
(do [! async.monad]
[platform (async.future platform)]
(case service
- (#/cli.Compilation compilation)
+ {#/cli.Compilation compilation}
(<| (or_crash! "Compilation failed:")
..timed
(do (try.with async.monad)
@@ -165,14 +165,14 @@
program_context)]
(in (debug.log! "Compilation complete!"))))
- (#/cli.Export export)
+ {#/cli.Export export}
(<| (or_crash! "Export failed:")
(do (try.with async.monad)
[_ (/export.export (value@ #platform.&file_system platform)
export)]
(in (debug.log! "Export complete!"))))
- (#/cli.Interpretation interpretation)
+ {#/cli.Interpretation interpretation}
... TODO: Fix the interpreter...
(undefined)
... (<| (or_crash! "Interpretation failed:")
diff --git a/stdlib/source/program/compositor/cli.lux b/stdlib/source/program/compositor/cli.lux
index 487c3976f..e678f2c6e 100644
--- a/stdlib/source/program/compositor/cli.lux
+++ b/stdlib/source/program/compositor/cli.lux
@@ -33,9 +33,9 @@
(type: .public Service
(Variant
- (#Compilation Compilation)
- (#Interpretation Compilation)
- (#Export Export)))
+ {#Compilation Compilation}
+ {#Interpretation Compilation}
+ {#Export Export}))
(template [<name> <long> <type>]
[(def: <name>
@@ -74,7 +74,7 @@
(def: .public target
(-> Service Target)
- (|>> (case> (^or (#Compilation [sources host_dependencies libraries target module])
- (#Interpretation [sources host_dependencies libraries target module])
- (#Export [sources target]))
+ (|>> (case> (^or {#Compilation [sources host_dependencies libraries target module]}
+ {#Interpretation [sources host_dependencies libraries target module]}
+ {#Export [sources target]})
target)))
diff --git a/stdlib/source/program/compositor/export.lux b/stdlib/source/program/compositor/export.lux
index 2fe3171e0..3588e1dde 100644
--- a/stdlib/source/program/compositor/export.lux
+++ b/stdlib/source/program/compositor/export.lux
@@ -51,14 +51,14 @@
(text.replaced (\ fs separator) .module_separator)
tar.path)
source_code (tar.content source_code)]
- (in (#tar.Normal [path
+ (in {#tar.Normal [path
(instant.of_millis +0)
($_ tar.and
tar.read_by_owner tar.write_by_owner
tar.read_by_group tar.write_by_group
tar.read_by_other)
..no_ownership
- source_code])))))
+ source_code]}))))
(\ try.monad each row.of_list)
(\ async.monad in))))
diff --git a/stdlib/source/program/compositor/import.lux b/stdlib/source/program/compositor/import.lux
index 6b092e546..278e992fb 100644
--- a/stdlib/source/program/compositor/import.lux
+++ b/stdlib/source/program/compositor/import.lux
@@ -54,10 +54,10 @@
(\ ! each (|>> row.list
(monad.mix ! (function (_ entry import)
(case entry
- (#tar.Normal [path instant mode ownership content])
+ {#tar.Normal [path instant mode ownership content]}
(let [path (tar.from_path path)]
(case (dictionary.has' path (tar.data content) import)
- (#try.Failure error)
+ {#try.Failure error}
(exception.except ..duplicate [library path])
import'
diff --git a/stdlib/source/specification/aedifex/repository.lux b/stdlib/source/specification/aedifex/repository.lux
index bf430a368..293b7f1e0 100644
--- a/stdlib/source/specification/aedifex/repository.lux
+++ b/stdlib/source/specification/aedifex/repository.lux
@@ -39,7 +39,7 @@
(_.cover' [/.Repository]
(let [successfull_flow!
(case [good_upload! good_download!]
- [(#try.Success _) (#try.Success actual)]
+ [{#try.Success _} {#try.Success actual}]
(\ binary.equivalence = expected actual)
_
@@ -47,7 +47,7 @@
failed_flow!
(case [bad_upload! bad_download!]
- [(#try.Failure _) (#try.Failure _)]
+ [{#try.Failure _} {#try.Failure _}]
true
_
diff --git a/stdlib/source/specification/compositor.lux b/stdlib/source/specification/compositor.lux
index a2569f334..2668d36ca 100644
--- a/stdlib/source/specification/compositor.lux
+++ b/stdlib/source/specification/compositor.lux
@@ -58,10 +58,10 @@
expander
program))]]
(case ?state,runner,definer
- (#try.Success [[directive_bundle directive_state] runner definer])
+ {#try.Success [[directive_bundle directive_state] runner definer]}
(..test runner definer
(value@ [#directive.analysis #directive.state] directive_state)
expander)
- (#try.Failure error)
+ {#try.Failure error}
(_.failure error))))
diff --git a/stdlib/source/specification/compositor/analysis/type.lux b/stdlib/source/specification/compositor/analysis/type.lux
index be7677848..f0856eb1f 100644
--- a/stdlib/source/specification/compositor/analysis/type.lux
+++ b/stdlib/source/specification/compositor/analysis/type.lux
@@ -26,10 +26,10 @@
(analysis/type.with_type output_type
(analysis.phase expander (` ((~ (code.text extension)) (~+ params))))))
(phase.result state)
- (case> (#try.Success _)
+ (case> {#try.Success _}
true
- (#try.Failure _)
+ {#try.Failure _}
false)))
(def: check
@@ -42,12 +42,12 @@
<type>
(<code> value)]))]
- [r.bit (0 #0 "#Bit" (0 #0)) code.bit]
- [r.nat (0 #0 "#I64" (0 #1 (0 #0 "#Nat" (0 #0)) (0 #0))) code.nat]
- [r.int (0 #0 "#I64" (0 #1 (0 #0 "#Int" (0 #0)) (0 #0))) code.int]
- [r.rev (0 #0 "#I64" (0 #1 (0 #0 "#Rev" (0 #0)) (0 #0))) code.rev]
- [r.safe_frac (0 #0 "#Frac" (0 #0)) code.frac]
- [(r.ascii/upper_alpha 5) (0 #0 "#Text" (0 #0)) code.text]
+ [r.bit {0 #0 "#Bit" {0 #0}} code.bit]
+ [r.nat {0 #0 "#I64" {0 #1 {0 #0 "#Nat" {0 #0}} {0 #0}}} code.nat]
+ [r.int {0 #0 "#I64" {0 #1 {0 #0 "#Int" {0 #0}} {0 #0}}} code.int]
+ [r.rev {0 #0 "#I64" {0 #1 {0 #0 "#Rev" {0 #0}} {0 #0}}} code.rev]
+ [r.safe_frac {0 #0 "#Frac" {0 #0}} code.frac]
+ [(r.ascii/upper_alpha 5) {0 #0 "#Text" {0 #0}} code.text]
)))))
(def: .public (spec expander state)
diff --git a/stdlib/source/specification/compositor/generation/case.lux b/stdlib/source/specification/compositor/generation/case.lux
index d699aa74b..eb27aea29 100644
--- a/stdlib/source/specification/compositor/generation/case.lux
+++ b/stdlib/source/specification/compositor/generation/case.lux
@@ -40,10 +40,10 @@
(def: .public (verify expected)
(-> Frac (Try Any) Bit)
- (|>> (case> (#try.Success actual)
+ (|>> (case> {#try.Success actual}
(f.= expected (:as Frac actual))
- (#try.Failure _)
+ {#try.Failure _}
false)))
(def: case
@@ -187,11 +187,11 @@
(def: special_path
Path
- (let [_end_ (synthesis.path/side (#.Left 0))
- _item_ (synthesis.path/side (#.Right 0))
- _head_ (synthesis.path/member (#.Left 0))
- _tail_ (synthesis.path/member (#.Right 0))
- _tuple_ (synthesis.path/side (#.Left 9))]
+ (let [_end_ (synthesis.path/side {#.Left 0})
+ _item_ (synthesis.path/side {#.Right 0})
+ _head_ (synthesis.path/member {#.Left 0})
+ _tail_ (synthesis.path/member {#.Right 0})
+ _tuple_ (synthesis.path/side {#.Left 9})]
($_ synthesis.path/alt
($_ synthesis.path/seq
_item_
@@ -213,18 +213,18 @@
(def: special_pattern
analysis.Pattern
- (let [... [_ (#Tuple (#Item arg args'))]
+ (let [... [_ {#Tuple {#Item arg args'}}]
head (<| analysis.pattern/tuple (list (analysis.pattern/bind 2))
analysis.pattern/variant [9 #0]
analysis.pattern/variant [0 #1]
analysis.pattern/tuple (list (analysis.pattern/bind 3)
(analysis.pattern/bind 4)))
- ... (#Item body #End)
+ ... {#Item body #End}
tail (<| analysis.pattern/variant [0 #1]
analysis.pattern/tuple (list (analysis.pattern/bind 5))
analysis.pattern/variant [0 #0]
(analysis.pattern/unit))]
- ... (#Item <head> <tail>)
+ ... {#Item <head> <tail>}
(<| analysis.pattern/variant [0 #1]
(analysis.pattern/tuple (list head tail)))))
@@ -253,28 +253,28 @@
(_.test "CODE"
(|> special_input
(run "special_input")
- (case> (#try.Success output)
+ (case> {#try.Success output}
true
- (#try.Failure _)
+ {#try.Failure _}
false)))
(_.test "PATTERN_MATCHING 0"
(|> (synthesis.branch/case [special_input
special_path])
(run "special_path")
- (case> (#try.Success output)
+ (case> {#try.Success output}
true
- (#try.Failure _)
+ {#try.Failure _}
false)))
(_.test "PATTERN_MATCHING 1"
(|> (synthesis.branch/case [special_input
special_pattern_path])
(run "special_pattern_path")
- (case> (#try.Success output)
+ (case> {#try.Success output}
true
- (#try.Failure _)
+ {#try.Failure _}
false)))
))
diff --git a/stdlib/source/specification/compositor/generation/common.lux b/stdlib/source/specification/compositor/generation/common.lux
index 2db239415..9c03349f4 100644
--- a/stdlib/source/specification/compositor/generation/common.lux
+++ b/stdlib/source/specification/compositor/generation/common.lux
@@ -39,13 +39,13 @@
subject r.i64]
(with_expansions [<binary> (template [<extension> <reference> <param_expr>]
[(_.test <extension>
- (|> (#synthesis.Extension <extension> (list (synthesis.i64 param)
- (synthesis.i64 subject)))
+ (|> {#synthesis.Extension <extension> (list (synthesis.i64 param)
+ (synthesis.i64 subject))}
(run (..safe <extension>))
- (case> (#try.Success valueT)
+ (case> {#try.Success valueT}
(n.= (<reference> param subject) (:as Nat valueT))
- (#try.Failure _)
+ {#try.Failure _}
false)
(let [param <param_expr>])))]
@@ -58,16 +58,16 @@
($_ _.and
<binary>
(_.test "lux i64 arithmetic-right-shift"
- (|> (#synthesis.Extension "lux i64 arithmetic-right-shift"
- (list (synthesis.i64 subject)
- (synthesis.i64 param)))
+ (|> {#synthesis.Extension "lux i64 arithmetic-right-shift"
+ (list (synthesis.i64 subject)
+ (synthesis.i64 param))}
(run (..safe "lux i64 arithmetic-right-shift"))
- (case> (#try.Success valueT)
+ (case> {#try.Success valueT}
("lux i64 ="
(i64.arithmetic_right_shifted param subject)
(:as I64 valueT))
- (#try.Failure _)
+ {#try.Failure _}
false)
(let [param (n.% 64 param)])))
))))
@@ -80,12 +80,12 @@
(`` ($_ _.and
(~~ (template [<extension> <type> <prepare> <comp> <subject_expr>]
[(_.test <extension>
- (|> (#synthesis.Extension <extension> (list (synthesis.i64 subject)))
+ (|> {#synthesis.Extension <extension> (list (synthesis.i64 subject))}
(run (..safe <extension>))
- (case> (#try.Success valueT)
+ (case> {#try.Success valueT}
(<comp> (<prepare> subject) (:as <type> valueT))
- (#try.Failure _)
+ {#try.Failure _}
false)
(let [subject <subject_expr>])))]
@@ -97,13 +97,13 @@
))
(~~ (template [<extension> <reference> <outputT> <comp>]
[(_.test <extension>
- (|> (#synthesis.Extension <extension> (list (synthesis.i64 param)
- (synthesis.i64 subject)))
+ (|> {#synthesis.Extension <extension> (list (synthesis.i64 param)
+ (synthesis.i64 subject))}
(run (..safe <extension>))
- (case> (#try.Success valueT)
+ (case> {#try.Success valueT}
(<comp> (<reference> param subject) (:as <outputT> valueT))
- (#try.Failure _)
+ {#try.Failure _}
false)))]
["lux i64 +" i.+ Int i.=]
@@ -128,8 +128,8 @@
(`` ($_ _.and
(~~ (template [<extension> <reference> <comp>]
[(_.test <extension>
- (|> (#synthesis.Extension <extension> (list (synthesis.f64 param)
- (synthesis.f64 subject)))
+ (|> {#synthesis.Extension <extension> (list (synthesis.f64 param)
+ (synthesis.f64 subject))}
(run (..safe <extension>))
(//case.verify (<reference> param subject))))]
@@ -141,10 +141,10 @@
))
(~~ (template [<extension> <text>]
[(_.test <extension>
- (|> (#synthesis.Extension <extension> (list (synthesis.f64 param)
- (synthesis.f64 subject)))
+ (|> {#synthesis.Extension <extension> (list (synthesis.f64 param)
+ (synthesis.f64 subject))}
(run (..safe <extension>))
- (case> (#try.Success valueV)
+ (case> {#try.Success valueV}
(bit\= (<text> param subject)
(:as Bit valueV))
@@ -156,7 +156,7 @@
))
(~~ (template [<extension> <reference>]
[(_.test <extension>
- (|> (#synthesis.Extension <extension> (list))
+ (|> {#synthesis.Extension <extension> (list)}
(run (..safe <extension>))
(//case.verify <reference>)))]
@@ -167,8 +167,8 @@
(_.test "'lux f64 i64 && 'lux i64 f64'"
(|> (run (..safe "lux f64 i64")
(|> subject synthesis.f64
- (list) (#synthesis.Extension "lux f64 i64")
- (list) (#synthesis.Extension "lux i64 f64")))
+ (list) {#synthesis.Extension "lux f64 i64"}
+ (list) {#synthesis.Extension "lux i64 f64"}))
(//case.verify subject)))
))))
@@ -184,84 +184,84 @@
.let [sample_lowerS (synthesis.text sample_lower)
sample_upperS (synthesis.text sample_upper)
sample_alphaS (synthesis.text sample_alpha)
- concatenatedS (#synthesis.Extension "lux text concat" (list sample_lowerS sample_upperS))
+ 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.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))
+ (and (|> {#synthesis.Extension "lux text =" (list sample_lowerS sample_lowerS)}
(run (..safe "lux text ="))
- (case> (#try.Success valueV)
+ (case> {#try.Success valueV}
(:as Bit valueV)
_
false))
- (|> (#synthesis.Extension "lux text =" (list sample_upperS sample_lowerS))
+ (|> {#synthesis.Extension "lux text =" (list sample_upperS sample_lowerS)}
(run (..safe "lux text ="))
- (case> (#try.Success valueV)
+ (case> {#try.Success valueV}
(not (:as Bit valueV))
_
false))))
(_.test "Can compare texts for order."
- (|> (#synthesis.Extension "lux text <" (list sample_lowerS sample_upperS))
+ (|> {#synthesis.Extension "lux text <" (list sample_lowerS sample_upperS)}
(run (..safe "lux text <"))
- (case> (#try.Success valueV)
+ (case> {#try.Success valueV}
(:as Bit valueV)
- (#try.Failure _)
+ {#try.Failure _}
false)))
(_.test "Can get length of text."
- (|> (#synthesis.Extension "lux text size" (list sample_lowerS))
+ (|> {#synthesis.Extension "lux text size" (list sample_lowerS)}
(run (..safe "lux text size"))
- (case> (#try.Success valueV)
+ (case> {#try.Success valueV}
(n.= sample_size (:as Nat valueV))
_
false)))
(_.test "Can concatenate text."
- (|> (#synthesis.Extension "lux text size" (list concatenatedS))
+ (|> {#synthesis.Extension "lux text size" (list concatenatedS)}
(run (..safe "lux text size"))
- (case> (#try.Success valueV)
+ (case> {#try.Success valueV}
(n.= (n.* 2 sample_size) (:as Nat valueV))
_
false)))
(_.test "Can find index of sub-text."
- (and (|> (#synthesis.Extension "lux text index"
- (list concatenatedS sample_lowerS
- (synthesis.i64 +0)))
+ (and (|> {#synthesis.Extension "lux text index"
+ (list concatenatedS sample_lowerS
+ (synthesis.i64 +0))}
(run (..safe "lux text index"))
- (case> (^multi (#try.Success valueV)
+ (case> (^multi {#try.Success valueV}
[(:as (Maybe Nat) valueV)
- (#.Some valueV)])
+ {#.Some valueV}])
(n.= 0 valueV)
_
false))
- (|> (#synthesis.Extension "lux text index"
- (list concatenatedS sample_upperS
- (synthesis.i64 +0)))
+ (|> {#synthesis.Extension "lux text index"
+ (list concatenatedS sample_upperS
+ (synthesis.i64 +0))}
(run (..safe "lux text index"))
- (case> (^multi (#try.Success valueV)
+ (case> (^multi {#try.Success valueV}
[(:as (Maybe Nat) valueV)
- (#.Some valueV)])
+ {#.Some valueV}])
(n.= sample_size valueV)
_
false))))
(let [test_clip (: (-> (I64 Any) (I64 Any) Text Bit)
(function (_ offset length expected)
- (|> (#synthesis.Extension "lux text clip"
- (list concatenatedS
- (synthesis.i64 offset)
- (synthesis.i64 length)))
+ (|> {#synthesis.Extension "lux text clip"
+ (list concatenatedS
+ (synthesis.i64 offset)
+ (synthesis.i64 length))}
(run (..safe "lux text clip"))
- (case> (^multi (#try.Success valueV)
+ (case> (^multi {#try.Success valueV}
[(:as (Maybe Text) valueV)
- (#.Some valueV)])
+ {#.Some valueV}])
(text\= expected valueV)
_
@@ -270,13 +270,13 @@
(and (test_clip 0 sample_size sample_lower)
(test_clip sample_size sample_size sample_upper))))
(_.test "Can extract individual characters from text."
- (|> (#synthesis.Extension "lux text char"
- (list sample_lowerS
- (synthesis.i64 char_idx)))
+ (|> {#synthesis.Extension "lux text char"
+ (list sample_lowerS
+ (synthesis.i64 char_idx))}
(run (..safe "lux text char"))
- (case> (^multi (#try.Success valueV)
+ (case> (^multi {#try.Success valueV}
[(:as (Maybe Int) valueV)
- (#.Some valueV)])
+ {#.Some valueV}])
(text.contains? ("lux i64 char" valueV)
sample_lower)
@@ -290,51 +290,51 @@
[message (r.ascii/alpha 5)]
($_ _.and
(_.test "Can log messages."
- (|> (#synthesis.Extension "lux io log"
- (list (synthesis.text (format "LOG: " message))))
+ (|> {#synthesis.Extension "lux io log"
+ (list (synthesis.text (format "LOG: " message)))}
(run (..safe "lux io log"))
- (case> (#try.Success valueV)
+ (case> {#try.Success valueV}
true
- (#try.Failure _)
+ {#try.Failure _}
false)))
(_.test "Can throw runtime errors."
- (and (|> (#synthesis.Extension "lux try"
- (list (synthesis.function/abstraction
- [#synthesis.environment (list)
- #synthesis.arity 1
- #synthesis.body (#synthesis.Extension "lux io error"
- (list (synthesis.text message)))])))
+ (and (|> {#synthesis.Extension "lux try"
+ (list (synthesis.function/abstraction
+ [#synthesis.environment (list)
+ #synthesis.arity 1
+ #synthesis.body {#synthesis.Extension "lux io error"
+ (list (synthesis.text message))}]))}
(run (..safe "lux try"))
- (case> (^multi (#try.Success valueV)
+ (case> (^multi {#try.Success valueV}
[(:as (Try Text) valueV)
- (#try.Failure error)])
+ {#try.Failure error}])
(text.contains? message error)
_
false))
- (|> (#synthesis.Extension "lux try"
- (list (synthesis.function/abstraction
- [#synthesis.environment (list)
- #synthesis.arity 1
- #synthesis.body (synthesis.text message)])))
+ (|> {#synthesis.Extension "lux try"
+ (list (synthesis.function/abstraction
+ [#synthesis.environment (list)
+ #synthesis.arity 1
+ #synthesis.body (synthesis.text message)]))}
(run (..safe "lux try"))
- (case> (^multi (#try.Success valueV)
+ (case> (^multi {#try.Success valueV}
[(:as (Try Text) valueV)
- (#try.Success valueV)])
+ {#try.Success valueV}])
(text\= message valueV)
_
false))))
(_.test "Can obtain current time in milli-seconds."
- (|> (synthesis.tuple (list (#synthesis.Extension "lux io current-time" (list))
- (#synthesis.Extension "lux io current-time" (list))))
+ (|> (synthesis.tuple (list {#synthesis.Extension "lux io current-time" (list)}
+ {#synthesis.Extension "lux io current-time" (list)}))
(run (..safe "lux io current-time"))
- (case> (#try.Success valueV)
+ (case> {#try.Success valueV}
(let [[pre post] (:as [Nat Nat] valueV)]
(n.>= pre post))
- (#try.Failure _)
+ {#try.Failure _}
false)))
)))
diff --git a/stdlib/source/specification/compositor/generation/primitive.lux b/stdlib/source/specification/compositor/generation/primitive.lux
index ba20601a3..670b30d30 100644
--- a/stdlib/source/specification/compositor/generation/primitive.lux
+++ b/stdlib/source/specification/compositor/generation/primitive.lux
@@ -34,10 +34,10 @@
[expected <gen>]
(_.test (%.name (name_of <synthesis>))
(|> (run <evaluation_name> (<synthesis> expected))
- (case> (#try.Success actual)
+ (case> {#try.Success actual}
(<test> expected (:expected actual))
- (#try.Failure _)
+ {#try.Failure _}
false))))]
["bit" synthesis.bit r.bit bit\=]
diff --git a/stdlib/source/specification/compositor/generation/reference.lux b/stdlib/source/specification/compositor/generation/reference.lux
index ce3c7332a..d98e660e0 100644
--- a/stdlib/source/specification/compositor/generation/reference.lux
+++ b/stdlib/source/specification/compositor/generation/reference.lux
@@ -31,10 +31,10 @@
expected r.safe_frac]
(_.test "Definitions."
(|> (define name (synthesis.f64 expected))
- (case> (#try.Success actual)
+ (case> {#try.Success actual}
(f.= expected (:as Frac actual))
- (#try.Failure _)
+ {#try.Failure _}
false)))))
(def: (variable run)
@@ -47,10 +47,10 @@
register
(synthesis.variable/local register)])
(run "variable")
- (case> (#try.Success actual)
+ (case> {#try.Success actual}
(f.= expected (:as Frac actual))
- (#try.Failure _)
+ {#try.Failure _}
false)))))
(def: .public (spec runner definer)
diff --git a/stdlib/source/specification/compositor/generation/structure.lux b/stdlib/source/specification/compositor/generation/structure.lux
index a70e61531..c98013875 100644
--- a/stdlib/source/specification/compositor/generation/structure.lux
+++ b/stdlib/source/specification/compositor/generation/structure.lux
@@ -42,7 +42,7 @@
#analysis.right? last?_in
#analysis.value (synthesis.i64 value_in)])
(run "variant")
- (case> (#try.Success valueT)
+ (case> {#try.Success valueT}
(let [valueT (:as (Array Any) valueT)]
(and (n.= 3 (array.size valueT))
(let [tag_out (:as java/lang/Integer (maybe.trusted (array.read! 0 valueT)))
@@ -50,7 +50,7 @@
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')
+ {#.Some last?_out'}
(and last?_in (text\= "" (:as Text last?_out')))
#.None
@@ -60,7 +60,7 @@
same_flag?
same_value?))))
- (#try.Failure _)
+ {#try.Failure _}
false)))))
(def: (tuple run)
@@ -71,14 +71,14 @@
(_.test (%.name (name_of synthesis.tuple))
(|> (synthesis.tuple (list\each (|>> synthesis.i64) tuple_in))
(run "tuple")
- (case> (#try.Success tuple_out)
+ (case> {#try.Success tuple_out}
(let [tuple_out (:as (Array Any) tuple_out)]
(and (n.= size (array.size tuple_out))
(list.every? (function (_ [left right])
(i.= left (:as Int right)))
(list.zipped/2 tuple_in (array.list tuple_out)))))
- (#try.Failure _)
+ {#try.Failure _}
false)))))
(def: .public (spec runner)
diff --git a/stdlib/source/specification/lux/abstract/codec.lux b/stdlib/source/specification/lux/abstract/codec.lux
index 5cbdb2aa1..f30d9c94c 100644
--- a/stdlib/source/specification/lux/abstract/codec.lux
+++ b/stdlib/source/specification/lux/abstract/codec.lux
@@ -20,8 +20,8 @@
(_.for [/.Codec]
(_.test "Isomorphism."
(case (|> expected @//encoded @//decoded)
- (#try.Success actual)
+ {#try.Success actual}
(@//= expected actual)
- (#try.Failure _)
+ {#try.Failure _}
false)))))
diff --git a/stdlib/source/specification/lux/world/console.lux b/stdlib/source/specification/lux/world/console.lux
index 15305d236..e2f73db67 100644
--- a/stdlib/source/specification/lux/world/console.lux
+++ b/stdlib/source/specification/lux/world/console.lux
@@ -31,7 +31,7 @@
.let [can_write!
(case ?write
- (#try.Success _)
+ {#try.Success _}
true
_
@@ -39,7 +39,7 @@
can_read!
(case [?read ?read_line]
- [(#try.Success _) (#try.Success _)]
+ [{#try.Success _} {#try.Success _}]
true
_
@@ -47,7 +47,7 @@
can_close!
(case [?close/good ?close/bad]
- [(#try.Success _) (#try.Failure _)]
+ [{#try.Success _} {#try.Failure _}]
true
_
diff --git a/stdlib/source/specification/lux/world/file.lux b/stdlib/source/specification/lux/world/file.lux
index f7c056624..3c6679dd7 100644
--- a/stdlib/source/specification/lux/world/file.lux
+++ b/stdlib/source/specification/lux/world/file.lux
@@ -64,8 +64,8 @@
directory_post! (\ fs directory? parent)]
(in (and (not directory_pre!)
(case made?
- (#try.Success _) true
- (#try.Failure _) false)
+ {#try.Success _} true
+ {#try.Failure _} false)
directory_post!))))
(def: (file?&write fs content path)
@@ -76,8 +76,8 @@
file_post! (\ fs file? path)]
(in (and (not file_pre!)
(case made?
- (#try.Success _) true
- (#try.Failure _) false)
+ {#try.Success _} true
+ {#try.Failure _} false)
file_post!))))
(def: (file_size&read&append fs expected_file_size content appendix path)
@@ -233,23 +233,23 @@
(not pre_dir/1)
(not pre_dir/2)
(case made?
- (#try.Success _) true
- (#try.Failure _) false)
+ {#try.Success _} true
+ {#try.Failure _} false)
post_dir/0
post_dir/1
post_dir/2))
(_.cover' [/.cannot_make_directory]
(and (case cannot_make_directory!/0
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_make_directory error))
(case cannot_make_directory!/1
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_make_directory error))))
)))
@@ -265,14 +265,14 @@
($_ _.and'
(_.cover' [/.make_file]
(case make_file!/0
- (#try.Success _) true
- (#try.Failure error) false))
+ {#try.Success _} true
+ {#try.Failure error} false))
(_.cover' [/.cannot_make_file]
(case make_file!/1
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_make_file error)))
)))
@@ -312,11 +312,11 @@
(not pre_dir/1)
(case made_file?
- (#try.Success _) true
- (#try.Failure _) false)
+ {#try.Success _} true
+ {#try.Failure _} false)
(case made_dir?
- (#try.Success _) true
- (#try.Failure _) false)
+ {#try.Success _} true
+ {#try.Failure _} false)
post_file/0
post_file/1
diff --git a/stdlib/source/specification/lux/world/shell.lux b/stdlib/source/specification/lux/world/shell.lux
index 2d844ce9a..5fa846019 100644
--- a/stdlib/source/specification/lux/world/shell.lux
+++ b/stdlib/source/specification/lux/world/shell.lux
@@ -53,16 +53,16 @@
[?destroy (\ process destroy [])
?await (\ process await [])]
(in (and (case ?destroy
- (#try.Success _)
+ {#try.Success _}
true
- (#try.Failure error)
+ {#try.Failure error}
false)
(case ?await
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
true)))))
(with_expansions [<shell_coverage> (as_is [/.Command /.Argument])]
@@ -76,7 +76,7 @@
[?echo (\ shell execute (..echo! message))
?sleep (\ shell execute (..sleep! seconds))]
(case [?echo ?sleep]
- [(#try.Success echo) (#try.Success sleep)]
+ [{#try.Success echo} {#try.Success sleep}]
(do !
[can_read! (..can_read! message echo)
can_destroy! (..can_destroy! sleep)]
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux
index bccd76fac..8daf8635c 100644
--- a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux
+++ b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux
@@ -54,7 +54,7 @@
(/.format (with@ #/.snapshot #///.Local sample)))
remote_format (/.format [#/.version (format version /.snapshot)
- #/.snapshot (#///.Remote stamp)])
+ #/.snapshot {#///.Remote stamp}])
remote!
(and (text.starts_with? (format version (///time.format (value@ #///stamp.time stamp)))
remote_format)
diff --git a/stdlib/source/test/aedifex/artifact/time/date.lux b/stdlib/source/test/aedifex/artifact/time/date.lux
index e76cf4259..77c312380 100644
--- a/stdlib/source/test/aedifex/artifact/time/date.lux
+++ b/stdlib/source/test/aedifex/artifact/time/date.lux
@@ -59,10 +59,10 @@
(try.else false)))
(_.cover [/.year_is_out_of_range]
(case (/.date candidate)
- (#try.Success date)
+ {#try.Success date}
(same? candidate (/.value date))
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.year_is_out_of_range error)))
(_.cover [/.epoch]
(date\= date.epoch (/.value /.epoch)))
diff --git a/stdlib/source/test/aedifex/cache.lux b/stdlib/source/test/aedifex/cache.lux
index fc5efcf8f..338feb5fa 100644
--- a/stdlib/source/test/aedifex/cache.lux
+++ b/stdlib/source/test/aedifex/cache.lux
@@ -75,7 +75,7 @@
content ..content]
(in [[#//dependency.artifact identity
#//dependency.type type]
- (with@ #//package.origin (#//repository/origin.Remote "") (//package.local pom content))])))
+ (with@ #//package.origin {#//repository/origin.Remote ""} (//package.local pom content))])))
(def: resolution
(Random Resolution)
@@ -89,13 +89,13 @@
[pom (random.one (function (_ [identity profile pom])
(|> profile
(with@ #//.dependencies (set.empty //dependency.hash))
- (with@ #//.identity (#.Some (value@ #//dependency.artifact dependency)))
+ (with@ #//.identity {#.Some (value@ #//dependency.artifact dependency)})
//pom.write
try.maybe))
..profile)
content ..content]
(in [dependency
- (with@ #//package.origin (#//repository/origin.Remote "") (//package.local pom content))])))))]
+ (with@ #//package.origin {#//repository/origin.Remote ""} (//package.local pom content))])))))]
(in (dictionary.of_list //dependency.hash (list& [main_dependency main_package] dependencies)))))
(def: singular
@@ -116,7 +116,7 @@
[_ wrote!
actual_package read!]
(in (\ //package.equivalence =
- (with@ #//package.origin (#//repository/origin.Local "") expected_package)
+ (with@ #//package.origin {#//repository/origin.Local ""} expected_package)
actual_package)))))))))
(def: plural
@@ -138,7 +138,7 @@
actual read!]
(in (\ //dependency/resolution.equivalence =
(\ dictionary.functor each
- (with@ #//package.origin (#//repository/origin.Local ""))
+ (with@ #//package.origin {#//repository/origin.Local ""})
expected)
actual)))))))))
diff --git a/stdlib/source/test/aedifex/cli.lux b/stdlib/source/test/aedifex/cli.lux
index 9cc55fd2c..e41f3e44c 100644
--- a/stdlib/source/test/aedifex/cli.lux
+++ b/stdlib/source/test/aedifex/cli.lux
@@ -64,9 +64,9 @@
#/.POM (list "pom")
#/.Dependencies (list "deps")
#/.Install (list "install")
- (#/.Deploy repository [user password]) (list "deploy" repository user password)
- (#/.Compilation compilation) (..compilation_format compilation)
- (#/.Auto compilation) (list& "auto" (..compilation_format compilation))))
+ {#/.Deploy repository [user password]} (list "deploy" repository user password)
+ {#/.Compilation compilation} (..compilation_format compilation)
+ {#/.Auto compilation} (list& "auto" (..compilation_format compilation))))
(def: without_profile
Test
@@ -76,11 +76,11 @@
(|> expected
..format
(cli.result /.command)
- (case> (#try.Success [names actual])
+ (case> {#try.Success [names actual]}
(and (\ (list.equivalence text.equivalence) = (list //.default) names)
(\ /.equivalence = expected actual))
- (#try.Failure error)
+ {#try.Failure error}
false)))))
(def: with_profile
@@ -93,11 +93,11 @@
..format
(list& "with" expected_profile)
(cli.result /.command)
- (case> (#try.Success [actual_profile actual_command])
+ (case> {#try.Success [actual_profile actual_command]}
(and (\ (list.equivalence text.equivalence) = (list expected_profile //.default) actual_profile)
(\ /.equivalence = expected_command actual_command))
- (#try.Failure error)
+ {#try.Failure error}
false)))))
(def: .public test
diff --git a/stdlib/source/test/aedifex/command/auto.lux b/stdlib/source/test/aedifex/command/auto.lux
index 4511d8a03..57aca92d2 100644
--- a/stdlib/source/test/aedifex/command/auto.lux
+++ b/stdlib/source/test/aedifex/command/auto.lux
@@ -55,7 +55,7 @@
(do [! async.monad]
[[_ actual_runs] (async.future (atom.update! ++ @runs))]
(if (n.= expected_runs actual_runs)
- (in (#try.Failure end_signal))
+ (in {#try.Failure end_signal})
(do (try.with !)
[_ (\ fs write (\ utf8.codec encoded (%.nat actual_runs)) dummy_file)
_ (\ fs modify
@@ -79,7 +79,7 @@
with_target (: (-> Profile Profile)
(with@ #///.target target))
with_program (: (-> Profile Profile)
- (with@ #///.program (#.Some program)))
+ (with@ #///.program {#.Some program}))
profile (|> empty_profile
with_program
@@ -110,17 +110,17 @@
fs
(shell.async ($build.good_shell []))
resolution)
- (\ ! each (|>> (case> (#try.Failure error)
+ (\ ! each (|>> (case> {#try.Failure error}
(same? end_signal error)
- (#try.Success _)
+ {#try.Success _}
false))))
correct_number_of_runs! (|> @runs
atom.read!
async.future
(\ ! each (n.= expected_runs)))]
- (in (#try.Success (and correct_number_of_runs!
- no_dangling_process!)))))]
+ (in {#try.Success (and correct_number_of_runs!
+ no_dangling_process!)})))]
(_.cover' [/.do!]
(try.else false verdict))))
))))
diff --git a/stdlib/source/test/aedifex/command/build.lux b/stdlib/source/test/aedifex/command/build.lux
index c856b11f5..1376d440a 100644
--- a/stdlib/source/test/aedifex/command/build.lux
+++ b/stdlib/source/test/aedifex/command/build.lux
@@ -41,7 +41,7 @@
(-> Any (Shell IO))
(shell.mock
(function (_ [actual_environment actual_working_directory actual_command actual_arguments])
- (#try.Success
+ {#try.Success
(: (shell.Mock [])
(implementation
(def: (on_read state)
@@ -49,17 +49,17 @@
(def: (on_error state)
(exception.except shell.no_more_output []))
(def: (on_write input state)
- (#try.Failure "on_write"))
+ {#try.Failure "on_write"})
(def: (on_destroy state)
- (#try.Failure "on_destroy"))
+ {#try.Failure "on_destroy"})
(def: (on_await state)
- (#try.Success [state shell.normal]))))))))
+ {#try.Success [state shell.normal]})))})))
(def: .public bad_shell
(-> Any (Shell IO))
(shell.mock
(function (_ [actual_environment actual_working_directory actual_command actual_arguments])
- (#try.Success
+ {#try.Success
(: (shell.Mock [])
(implementation
(def: (on_read state)
@@ -67,43 +67,43 @@
(def: (on_error state)
(exception.except shell.no_more_output []))
(def: (on_write input state)
- (#try.Failure "on_write"))
+ {#try.Failure "on_write"})
(def: (on_destroy state)
- (#try.Failure "on_destroy"))
+ {#try.Failure "on_destroy"})
(def: (on_await state)
- (#try.Success [state shell.error]))))))))
+ {#try.Success [state shell.error]})))})))
(def: .public (reader_shell error?)
(-> Bit (-> (List Text) (Shell IO)))
(shell.mock
(function (_ [actual_environment actual_working_directory actual_command actual_arguments])
- (#try.Success
+ {#try.Success
(: (shell.Mock (List Text))
(implementation
(def: (on_read state)
(if error?
(exception.except shell.no_more_output [])
(case state
- (#.Item head tail)
- (#try.Success [tail head])
+ {#.Item head tail}
+ {#try.Success [tail head]}
#.End
(exception.except shell.no_more_output []))))
(def: (on_error state)
(if error?
(case state
- (#.Item head tail)
- (#try.Success [tail head])
+ {#.Item head tail}
+ {#try.Success [tail head]}
#.End
(exception.except shell.no_more_output []))
(exception.except shell.no_more_output [])))
(def: (on_write input state)
- (#try.Failure "on_write"))
+ {#try.Failure "on_write"})
(def: (on_destroy state)
- (#try.Failure "on_destroy"))
+ {#try.Failure "on_destroy"})
(def: (on_await state)
- (#try.Success [state shell.error]))))))))
+ {#try.Success [state shell.error]})))})))
(def: compiler
(Random Dependency)
@@ -153,7 +153,7 @@
with_target (: (-> Profile Profile)
(with@ #///.target target))
with_program (: (-> Profile Profile)
- (with@ #///.program (#.Some program)))
+ (with@ #///.program {#.Some program}))
profile (|> empty_profile
with_program
@@ -164,19 +164,19 @@
(with_target empty_profile))]
(_.cover' [/.no_specified_program]
(case outcome
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.no_specified_program error)))))
(in (do async.monad
[outcome (/.do! (@version.echo "") (program.async (program.mock environment.empty home working_directory)) fs shell ///dependency/resolution.empty profile)]
(_.cover' [/.Compiler /.no_available_compiler]
(case outcome
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.no_available_compiler error)))))
(do !
[.let [console (@version.echo "")]
@@ -232,10 +232,10 @@
actual/1 (\ console read_line [])
actual/2 (\ console read_line [])
end! (|> (\ console read_line [])
- (\ ! each (|>> (case> (#try.Failure error)
+ (\ ! each (|>> (case> {#try.Failure error}
true
- (#try.Success _)
+ {#try.Success _}
false)
#try.Success)))]
(in (and (text\= expected/0 actual/0)
diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux
index 3d563f540..8cf0ea05c 100644
--- a/stdlib/source/test/aedifex/command/deps.lux
+++ b/stdlib/source/test/aedifex/command/deps.lux
@@ -73,22 +73,22 @@
#///dependency.type ///artifact/type.lux_library]
dependee_pom (|> (\ ///.monoid identity)
- (with@ #///.identity (#.Some dependee_artifact))
+ (with@ #///.identity {#.Some dependee_artifact})
///pom.write
try.trusted)
depender_pom (|> (\ ///.monoid identity)
- (with@ #///.identity (#.Some depender_artifact))
+ (with@ #///.identity {#.Some depender_artifact})
(with@ #///.dependencies (set.of_list ///dependency.hash (list dependee)))
///pom.write
try.trusted)
dependee_package (|> dependee_package
- (with@ #///package.origin (#///repository/origin.Remote ""))
+ (with@ #///package.origin {#///repository/origin.Remote ""})
(with@ #///package.pom [dependee_pom
(|> dependee_pom (\ xml.codec encoded) (\ utf8.codec encoded))
#///dependency/status.Unverified]))
depender_package (|> depender_package
- (with@ #///package.origin (#///repository/origin.Remote ""))
+ (with@ #///package.origin {#///repository/origin.Remote ""})
(with@ #///package.pom [depender_pom
(|> depender_pom (\ xml.codec encoded) (\ utf8.codec encoded))
#///dependency/status.Unverified]))
diff --git a/stdlib/source/test/aedifex/command/install.lux b/stdlib/source/test/aedifex/command/install.lux
index 8ef29ec92..ac1a87be1 100644
--- a/stdlib/source/test/aedifex/command/install.lux
+++ b/stdlib/source/test/aedifex/command/install.lux
@@ -65,7 +65,7 @@
(<| (_.covering /._)
(do [! random.monad]
[identity $artifact.random
- sample (\ ! each (with@ #///.identity (#.Some identity))
+ sample (\ ! each (with@ #///.identity {#.Some identity})
$profile.random)
home (random.ascii/alpha 5)
working_directory (random.ascii/alpha 5)
diff --git a/stdlib/source/test/aedifex/command/pom.lux b/stdlib/source/test/aedifex/command/pom.lux
index 80676974b..ac080c966 100644
--- a/stdlib/source/test/aedifex/command/pom.lux
+++ b/stdlib/source/test/aedifex/command/pom.lux
@@ -40,7 +40,7 @@
[.let [console (@version.echo "")]
outcome (/.do! console fs sample)]
(case outcome
- (#try.Success _)
+ {#try.Success _}
(do !
[verdict (do ///action.monad
[expected (|> (///pom.write sample)
@@ -60,10 +60,10 @@
(_.cover' [/.do! /.success]
(try.else false verdict)))
- (#try.Failure error)
+ {#try.Failure error}
(_.cover' [/.do!]
(case (value@ #///.identity sample)
- (#.Some _)
+ {#.Some _}
false
#.None
diff --git a/stdlib/source/test/aedifex/command/test.lux b/stdlib/source/test/aedifex/command/test.lux
index bbcb582b1..19ae5cd70 100644
--- a/stdlib/source/test/aedifex/command/test.lux
+++ b/stdlib/source/test/aedifex/command/test.lux
@@ -52,7 +52,7 @@
with_target (: (-> Profile Profile)
(with@ #///.target target))
with_test (: (-> Profile Profile)
- (with@ #///.test (#.Some test)))
+ (with@ #///.test {#.Some test}))
profile (|> empty_profile
with_test
@@ -83,7 +83,7 @@
[verdict (do ///action.monad
[.let [bad_shell (shell.mock
(function (_ [actual_environment actual_working_directory actual_command actual_arguments])
- (#try.Success
+ {#try.Success
(: (shell.Mock [])
(implementation
(def: (on_read state)
@@ -91,13 +91,13 @@
(def: (on_error state)
(exception.except shell.no_more_output []))
(def: (on_write input state)
- (#try.Failure "on_write"))
+ {#try.Failure "on_write"})
(def: (on_destroy state)
- (#try.Failure "on_destroy"))
+ {#try.Failure "on_destroy"})
(def: (on_await state)
- (#try.Success [state (if (list.any? (text\= "build") actual_arguments)
+ {#try.Success [state (if (list.any? (text\= "build") actual_arguments)
shell.normal
- shell.error)]))))))
+ shell.error)]})))})
[])]
_ (/.do! console (program.async (program.mock environment.empty home working_directory))
fs (shell.async bad_shell) resolution
diff --git a/stdlib/source/test/aedifex/command/version.lux b/stdlib/source/test/aedifex/command/version.lux
index 1b2b0aa53..6cd59b3a5 100644
--- a/stdlib/source/test/aedifex/command/version.lux
+++ b/stdlib/source/test/aedifex/command/version.lux
@@ -50,11 +50,11 @@
(exception.except ..console_is_closed! [])))
(def: (on_write input [open? state])
(if open?
- (#try.Success [open? (format state input)])
+ {#try.Success [open? (format state input)]}
(exception.except ..console_is_closed! [])))
(def: (on_close [open? buffer])
(if open?
- (#try.Success [false buffer])
+ {#try.Success [false buffer]}
(exception.except ..console_is_closed! []))))
(def: .public echo
diff --git a/stdlib/source/test/aedifex/dependency/deployment.lux b/stdlib/source/test/aedifex/dependency/deployment.lux
index 5b7869eab..7e137443b 100644
--- a/stdlib/source/test/aedifex/dependency/deployment.lux
+++ b/stdlib/source/test/aedifex/dependency/deployment.lux
@@ -68,12 +68,12 @@
(do io.monad
[_ (: (IO Any)
(case [method input]
- [#@http.Put (#.Some input)]
+ [#@http.Put {#.Some input}]
(atom.update! (dictionary.has url input) cache)
_
(in [])))]
- (in (#try.Success ..good_upload))))))
+ (in {#try.Success ..good_upload})))))
(def: (verify_one expected_deployments address package cache expected_artifact actual_artifact)
(-> Nat URL Package (Dictionary URL Binary) Artifact Artifact Bit)
diff --git a/stdlib/source/test/aedifex/dependency/resolution.lux b/stdlib/source/test/aedifex/dependency/resolution.lux
index 2fe39286d..69867d5f8 100644
--- a/stdlib/source/test/aedifex/dependency/resolution.lux
+++ b/stdlib/source/test/aedifex/dependency/resolution.lux
@@ -92,9 +92,9 @@
(def: the_description
"[0]")
(def: (on_download uri state)
- (#try.Failure "NOPE"))
+ {#try.Failure "NOPE"})
(def: (on_upload uri binary state)
- (#try.Failure "NOPE"))))
+ {#try.Failure "NOPE"})))
(def: .public (single artifact package)
(-> Artifact Package (Mock Any))
@@ -115,28 +115,28 @@
(\ xml.codec encoded)
(\ utf8.codec encoded)))]
(cond (text.ends_with? ///artifact/extension.lux_library uri)
- (#try.Success [state library])
+ {#try.Success [state library]}
(text.ends_with? ..lux_sha-1 uri)
- (#try.Success [state (..sha-1 library)])
+ {#try.Success [state (..sha-1 library)]}
(text.ends_with? ..lux_md5 uri)
- (#try.Success [state (..md5 library)])
+ {#try.Success [state (..md5 library)]}
(text.ends_with? ///artifact/extension.pom uri)
- (#try.Success [state pom])
+ {#try.Success [state pom]}
(text.ends_with? ..pom_sha-1 uri)
- (#try.Success [state (..sha-1 pom)])
+ {#try.Success [state (..sha-1 pom)]}
(text.ends_with? ..pom_md5 uri)
- (#try.Success [state (..md5 pom)])
+ {#try.Success [state (..md5 pom)]}
... else
- (#try.Failure "NOPE")))
- (#try.Failure "NOPE")))
+ {#try.Failure "NOPE"}))
+ {#try.Failure "NOPE"}))
(def: (on_upload uri binary state)
- (#try.Failure "NOPE")))))
+ {#try.Failure "NOPE"}))))
(def: (bad_sha-1 expected_artifact expected_package dummy_package)
(-> Artifact Package Package (Mock Any))
@@ -146,50 +146,50 @@
(def: (on_download uri state)
(if (text.contains? (///artifact.uri (value@ #///artifact.version expected_artifact) expected_artifact) uri)
(cond (text.ends_with? ///artifact/extension.lux_library uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.library)
- product.left)])
+ product.left)]}
(text.ends_with? ..lux_sha-1 uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.library)
product.left
- ..sha-1)])
+ ..sha-1)]}
(text.ends_with? ..lux_md5 uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.library)
product.left
- ..md5)])
+ ..md5)]}
(text.ends_with? ///artifact/extension.pom uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.pom)
product.left
(\ xml.codec encoded)
- (\ utf8.codec encoded))])
+ (\ utf8.codec encoded))]}
(text.ends_with? ..pom_sha-1 uri)
- (#try.Success [state (|> dummy_package
+ {#try.Success [state (|> dummy_package
(value@ #///package.pom)
product.left
(\ xml.codec encoded)
(\ utf8.codec encoded)
- ..sha-1)])
+ ..sha-1)]}
(text.ends_with? ..pom_md5 uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.pom)
product.left
(\ xml.codec encoded)
(\ utf8.codec encoded)
- ..md5)])
+ ..md5)]}
... else
- (#try.Failure "NOPE"))
- (#try.Failure "NOPE")))
+ {#try.Failure "NOPE"})
+ {#try.Failure "NOPE"}))
(def: (on_upload uri binary state)
- (#try.Failure "NOPE"))))
+ {#try.Failure "NOPE"})))
(def: (bad_md5 expected_artifact expected_package dummy_package)
(-> Artifact Package Package (Mock Any))
@@ -199,50 +199,50 @@
(def: (on_download uri state)
(if (text.contains? (///artifact.uri (value@ #///artifact.version expected_artifact) expected_artifact) uri)
(cond (text.ends_with? ///artifact/extension.lux_library uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.library)
- product.left)])
+ product.left)]}
(text.ends_with? ..lux_sha-1 uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.library)
product.left
- ..sha-1)])
+ ..sha-1)]}
(text.ends_with? ..lux_md5 uri)
- (#try.Success [state (|> dummy_package
+ {#try.Success [state (|> dummy_package
(value@ #///package.library)
product.left
- ..md5)])
+ ..md5)]}
(text.ends_with? ///artifact/extension.pom uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.pom)
product.left
(\ xml.codec encoded)
- (\ utf8.codec encoded))])
+ (\ utf8.codec encoded))]}
(text.ends_with? ..pom_sha-1 uri)
- (#try.Success [state (|> expected_package
+ {#try.Success [state (|> expected_package
(value@ #///package.pom)
product.left
(\ xml.codec encoded)
(\ utf8.codec encoded)
- ..sha-1)])
+ ..sha-1)]}
(text.ends_with? ..pom_md5 uri)
- (#try.Success [state (|> dummy_package
+ {#try.Success [state (|> dummy_package
(value@ #///package.pom)
product.left
(\ xml.codec encoded)
(\ utf8.codec encoded)
- ..md5)])
+ ..md5)]}
... else
- (#try.Failure "NOPE"))
- (#try.Failure "NOPE")))
+ {#try.Failure "NOPE"})
+ {#try.Failure "NOPE"}))
(def: (on_upload uri binary state)
- (#try.Failure "NOPE"))))
+ {#try.Failure "NOPE"})))
(def: one
Test
@@ -264,12 +264,12 @@
#///dependency.type ///artifact/type.lux_library])]
(_.cover' [/.one]
(case actual_package
- (#try.Success actual_package)
+ {#try.Success actual_package}
(\ ///package.equivalence =
- (with@ #///package.origin (#///repository/origin.Remote "") expected_package)
+ (with@ #///package.origin {#///repository/origin.Remote ""} expected_package)
actual_package)
- (#try.Failure _)
+ {#try.Failure _}
false))))
(~~ (template [<exception> <bad>]
[(in (do async.monad
@@ -278,10 +278,10 @@
#///dependency.type ///artifact/type.lux_library])]
(_.cover' [<exception>]
(case actual_package
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? <exception> error)
- (#try.Success _)
+ {#try.Success _}
false))))]
[/.sha-1_does_not_match bad_sha-1]
@@ -313,12 +313,12 @@
#///dependency.type ///artifact/type.lux_library])]
(_.cover' [/.any]
(case actual_package
- (#try.Success actual_package)
+ {#try.Success actual_package}
(\ ///package.equivalence =
- (with@ #///package.origin (#///repository/origin.Remote "") expected_package)
+ (with@ #///package.origin {#///repository/origin.Remote ""} expected_package)
actual_package)
- (#try.Failure _)
+ {#try.Failure _}
false))))
(in (do async.monad
[.let [console ($///version.echo "")]
@@ -329,10 +329,10 @@
#///dependency.type ///artifact/type.lux_library])]
(_.cover' [/.cannot_resolve]
(case actual_package
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_resolve error)
- (#try.Success _)
+ {#try.Success _}
false))))
)))
@@ -366,16 +366,16 @@
#///dependency.type ///artifact/type.lux_library]
dependee_pom (|> (\ ///.monoid identity)
- (with@ #///.identity (#.Some dependee_artifact))
+ (with@ #///.identity {#.Some dependee_artifact})
///pom.write
try.trusted)
depender_pom (|> (\ ///.monoid identity)
- (with@ #///.identity (#.Some depender_artifact))
+ (with@ #///.identity {#.Some depender_artifact})
(with@ #///.dependencies (set.of_list ///dependency.hash (list dependee)))
///pom.write
try.trusted)
ignored_pom (|> (\ ///.monoid identity)
- (with@ #///.identity (#.Some ignored_artifact))
+ (with@ #///.identity {#.Some ignored_artifact})
///pom.write
try.trusted)
diff --git a/stdlib/source/test/aedifex/dependency/status.lux b/stdlib/source/test/aedifex/dependency/status.lux
index 981f18b0e..79e59460f 100644
--- a/stdlib/source/test/aedifex/dependency/status.lux
+++ b/stdlib/source/test/aedifex/dependency/status.lux
@@ -40,7 +40,7 @@
[payload (binaryT.random 1)]
(_.cover [/.verified]
(case (/.verified payload)
- (#/.Verified sha1 md5)
+ {#/.Verified sha1 md5}
true
_
diff --git a/stdlib/source/test/aedifex/hash.lux b/stdlib/source/test/aedifex/hash.lux
index a3220b756..049023718 100644
--- a/stdlib/source/test/aedifex/hash.lux
+++ b/stdlib/source/test/aedifex/hash.lux
@@ -50,18 +50,18 @@
[expected (..random <hash>)]
(_.cover [<hash> <constructor> <exception>]
(and (case (<constructor> (/.data expected))
- (#try.Success actual)
+ {#try.Success actual}
(\ /.equivalence = expected actual)
- (#try.Failure error)
+ {#try.Failure error}
false)
(case (<constructor> (\ binary.monoid composite
(/.data expected)
(/.data expected)))
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? <exception> error)))))]
[/.sha-1 /.as_sha-1 /.not_a_sha-1]
@@ -83,10 +83,10 @@
(case (\ <codec> decoded
(format (\ <codec> encoded expected)
"AABBCC"))
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_a_hash error))))]
[/.sha-1_codec /.sha-1]
diff --git a/stdlib/source/test/aedifex/metadata/artifact.lux b/stdlib/source/test/aedifex/metadata/artifact.lux
index 0f0188ea3..a1d3133c5 100644
--- a/stdlib/source/test/aedifex/metadata/artifact.lux
+++ b/stdlib/source/test/aedifex/metadata/artifact.lux
@@ -105,12 +105,12 @@
actual (/.read repository artifact)]
(_.cover' [/.write /.read]
(and (case wrote?
- (#try.Success _) true
- (#try.Failure _) false)
+ {#try.Success _} true
+ {#try.Failure _} false)
(case actual
- (#try.Success actual)
+ {#try.Success actual}
(\ /.equivalence = expected actual)
- (#try.Failure _)
+ {#try.Failure _}
false))))))
))))
diff --git a/stdlib/source/test/aedifex/metadata/snapshot.lux b/stdlib/source/test/aedifex/metadata/snapshot.lux
index 39d16bd27..52f7a1562 100644
--- a/stdlib/source/test/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/test/aedifex/metadata/snapshot.lux
@@ -117,12 +117,12 @@
actual (/.read repository artifact)]
(_.cover' [/.write /.read]
(and (case wrote?
- (#try.Success _) true
- (#try.Failure _) false)
+ {#try.Success _} true
+ {#try.Failure _} false)
(case actual
- (#try.Success actual)
+ {#try.Success actual}
(\ /.equivalence = expected actual)
- (#try.Failure _)
+ {#try.Failure _}
false))))))
))))
diff --git a/stdlib/source/test/aedifex/package.lux b/stdlib/source/test/aedifex/package.lux
index 61153b8ad..69d31ddcc 100644
--- a/stdlib/source/test/aedifex/package.lux
+++ b/stdlib/source/test/aedifex/package.lux
@@ -64,9 +64,9 @@
($equivalence.spec /.equivalence (\ ! each product.right ..random)))
(_.cover [/.local?]
- (/.local? (with@ #/.origin (#//origin.Local "~/yolo") package)))
+ (/.local? (with@ #/.origin {#//origin.Local "~/yolo"} package)))
(_.cover [/.remote?]
- (/.remote? (with@ #/.origin (#//origin.Remote "https://example.com") package)))
+ (/.remote? (with@ #/.origin {#//origin.Remote "https://example.com"} package)))
(_.cover [/.local]
(let [expected_pom (|> package (value@ #/.pom) product.left)
expected_library (|> package (value@ #/.library) product.left)
@@ -76,13 +76,13 @@
[actual_pom binary_pom pom_status] (value@ #/.pom local)
[actual_library library_status] (value@ #/.library local)]
(and (case (value@ #/.origin local)
- (#//origin.Local "") true
+ {#//origin.Local ""} true
_ false)
(let [expected_sha1 (//hash.sha-1 expected_library)
expected_md5 (//hash.md5 expected_library)]
(and (same? expected_library actual_library)
(case library_status
- (#//status.Verified actual_sha1 expected_md5)
+ {#//status.Verified actual_sha1 expected_md5}
(and (//hash\= expected_sha1 actual_sha1)
(//hash\= expected_md5 expected_md5))
@@ -97,7 +97,7 @@
(in (\ xml.equivalence = actual_pom decoded_pom)))
(try.else false))
(case pom_status
- (#//status.Verified actual_sha1 expected_md5)
+ {#//status.Verified actual_sha1 expected_md5}
(and (//hash\= expected_sha1 actual_sha1)
(//hash\= expected_md5 expected_md5))
@@ -106,17 +106,17 @@
(_.cover [/.dependencies]
(let [expected (value@ #//.dependencies profile)]
(case (/.dependencies package)
- (#try.Success actual)
+ {#try.Success actual}
(\ set.equivalence = expected actual)
- (#try.Failure error)
+ {#try.Failure error}
false)))
(_.cover [/.repositories]
(let [expected (value@ #//.repositories profile)]
(case (/.repositories package)
- (#try.Success actual)
+ {#try.Success actual}
(\ set.equivalence = expected actual)
- (#try.Failure error)
+ {#try.Failure error}
false)))
))))
diff --git a/stdlib/source/test/aedifex/parser.lux b/stdlib/source/test/aedifex/parser.lux
index 1152a1dba..3dc073f0d 100644
--- a/stdlib/source/test/aedifex/parser.lux
+++ b/stdlib/source/test/aedifex/parser.lux
@@ -84,7 +84,7 @@
//format.project
list
(<code>.result /.project)
- (case> (#try.Success actual)
+ (case> {#try.Success actual}
(|> expected
..with_empty_profile
dictionary.entries
@@ -95,5 +95,5 @@
(dictionary.of_list text.hash)
(\ //project.equivalence = actual))
- (#try.Failure error)
+ {#try.Failure error}
false))))))
diff --git a/stdlib/source/test/aedifex/pom.lux b/stdlib/source/test/aedifex/pom.lux
index 92f13bd4f..4913df25d 100644
--- a/stdlib/source/test/aedifex/pom.lux
+++ b/stdlib/source/test/aedifex/pom.lux
@@ -35,20 +35,20 @@
(_.cover [/.write /.parser]
(case [(/.write expected)
(value@ #//.identity expected)]
- [(#try.Success pom)
- (#.Some _)]
+ [{#try.Success pom}
+ {#.Some _}]
(case (<xml>.result /.parser (list pom))
- (#try.Success actual)
+ {#try.Success actual}
(\ //.equivalence =
(|> (\ //.monoid identity)
(with@ #//.dependencies (value@ #//.dependencies expected))
(with@ #//.repositories (value@ #//.repositories expected)))
actual)
- (#try.Failure error)
+ {#try.Failure error}
false)
- [(#try.Failure error)
+ [{#try.Failure error}
#.None]
(exception.match? //.no_identity error)
diff --git a/stdlib/source/test/aedifex/project.lux b/stdlib/source/test/aedifex/project.lux
index 94e61bd7c..767f8cdb3 100644
--- a/stdlib/source/test/aedifex/project.lux
+++ b/stdlib/source/test/aedifex/project.lux
@@ -84,17 +84,17 @@
(try.else false))))
(_.cover [/.unknown_profile]
(case (/.profile project fake_name)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.unknown_profile error)))
(_.cover [/.circular_dependency]
(case (/.profile circular sub_name)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.circular_dependency error)))
))
))))
diff --git a/stdlib/source/test/aedifex/repository.lux b/stdlib/source/test/aedifex/repository.lux
index 0cbea2733..e65503ee9 100644
--- a/stdlib/source/test/aedifex/repository.lux
+++ b/stdlib/source/test/aedifex/repository.lux
@@ -72,17 +72,17 @@
"@")
(def: (on_download uri state)
(case (dictionary.value uri state)
- (#.Some content)
+ {#.Some content}
(case (binary.size content)
0 (exception.except ..not_found [uri])
- _ (#try.Success [state content]))
+ _ {#try.Success [state content]})
#.None
(exception.except ..not_found [uri])))
(def: (on_upload uri content state)
(if (dictionary.key? state uri)
(exception.except ..cannot_upload [uri])
- (#try.Success (dictionary.has uri content state)))))
+ {#try.Success (dictionary.has uri content state)})))
(def: .public test
Test
diff --git a/stdlib/source/test/aedifex/repository/local.lux b/stdlib/source/test/aedifex/repository/local.lux
index 03c64b69a..b6d647bb9 100644
--- a/stdlib/source/test/aedifex/repository/local.lux
+++ b/stdlib/source/test/aedifex/repository/local.lux
@@ -44,8 +44,8 @@
actual (\ repo download uri)]
(_.cover' [/.repository]
(and (case before_upload
- (#try.Success _) false
- (#try.Failure _) true)
+ {#try.Success _} false
+ {#try.Failure _} true)
(|> actual
(try\each (binary\= expected))
(try.else false))))))
diff --git a/stdlib/source/test/aedifex/repository/remote.lux b/stdlib/source/test/aedifex/repository/remote.lux
index 9e405ddc5..443ab884e 100644
--- a/stdlib/source/test/aedifex/repository/remote.lux
+++ b/stdlib/source/test/aedifex/repository/remote.lux
@@ -35,7 +35,7 @@
(-> URL (@http.Body IO))
(let [url (\ utf8.codec encoded url)]
(function (_ _)
- (io.io (#try.Success [(binary.size url) url])))))
+ (io.io {#try.Success [(binary.size url) url]}))))
(def: (good_http user password)
(-> //identity.User //identity.Password (http.Client IO))
@@ -56,7 +56,7 @@
[#@http.headers (http.headers (list))
#@http.body (..url_body url)]]
- [#@http.Put (#.Some input)]
+ [#@http.Put {#.Some input}]
(if (|> headers
(dictionary.value "Authorization")
(maybe\each (text\= (//identity.basic_auth user password)))
@@ -95,8 +95,8 @@
($_ _.and
(_.cover [/.repository /.user_agent /.Address]
(let [repo (/.repository (..good_http user password)
- (#.Some [#//identity.user user
- #//identity.password password])
+ {#.Some [#//identity.user user
+ #//identity.password password]}
address)]
(and (|> (\ repo download uri)
io.run!
@@ -113,19 +113,19 @@
#.None
address)]
(case (io.run! (\ repo upload uri content))
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.upload_failure error)
- (#try.Success _)
+ {#try.Success _}
false)))
(_.cover [/.download_failure]
(let [repo (/.repository ..bad_http
#.None
address)]
(case (io.run! (\ repo download uri))
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.download_failure error)
- (#try.Success _)
+ {#try.Success _}
false)))
))))
diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux
index fefe5270e..6a6ef3fac 100644
--- a/stdlib/source/test/lux.lux
+++ b/stdlib/source/test/lux.lux
@@ -176,24 +176,24 @@
($_ _.and
(_.cover [/.try]
(case (/.try expected)
- (#.Left _)
+ {#.Left _}
false
- (#.Right actual)
+ {#.Right actual}
(n.= expected actual)))
(_.cover [/.undefined]
(case (/.try (/.undefined))
- (#.Left _)
+ {#.Left _}
true
- (#.Right _)
+ {#.Right _}
false))
(_.cover [/.panic!]
(case (/.try (/.panic! expected_error))
- (#.Left actual_error)
+ {#.Left actual_error}
(text.contains? expected_error actual_error)
- (#.Right _)
+ {#.Right _}
false))
)))
@@ -437,13 +437,13 @@
(/.macro: (found_crosshair? tokens lux)
(let [[_ _ source_code] (value@ #.source lux)]
- (#.Right [lux (list (code.bit (text.contains? ..crosshair source_code)))])))
+ {#.Right [lux (list (code.bit (text.contains? ..crosshair source_code)))]}))
(def: for_macro
Test
(let [macro (: /.Macro'
(function (_ tokens lux)
- (#.Right [lux (list)])))]
+ {#.Right [lux (list)]}))]
(do random.monad
[expected random.nat]
(with_expansions [<found_crosshair?> (for [@.old (~~ (as_is))]
@@ -468,8 +468,8 @@
(/.type: for_type/variant
(Variant
#Case/0
- (#Case/1 Nat)
- (#Case/2 Int Text)))
+ {#Case/1 Nat}
+ {#Case/2 Int Text}))
(/.type: for_type/record
(Record
@@ -518,7 +518,7 @@
(same? /.Nat (/.:of expected)))
(_.cover [/.primitive]
(case (/.primitive "foo" [expected/0 expected/1])
- (^ (#.Primitive "foo" (list actual/0 actual/1)))
+ (^ {#.Primitive "foo" (list actual/0 actual/1)})
(and (same? expected/0 actual/0)
(same? expected/1 actual/1))
@@ -526,28 +526,28 @@
false))
(_.cover [/.type]
(and (case (/.type [expected/0 expected/1])
- (#.Product actual/0 actual/1)
+ {#.Product actual/0 actual/1}
(and (same? expected/0 actual/0)
(same? expected/1 actual/1))
_
false)
(case (/.type (/.Or expected/0 expected/1))
- (#.Sum actual/0 actual/1)
+ {#.Sum actual/0 actual/1}
(and (same? expected/0 actual/0)
(same? expected/1 actual/1))
_
false)
(case (/.type (-> expected/0 expected/1))
- (#.Function actual/0 actual/1)
+ {#.Function actual/0 actual/1}
(and (same? expected/0 actual/0)
(same? expected/1 actual/1))
_
false)
(case (/.type (expected/0 expected/1))
- (#.Apply actual/1 actual/0)
+ {#.Apply actual/1 actual/0}
(and (same? expected/0 actual/0)
(same? expected/1 actual/1))
@@ -562,7 +562,7 @@
(_.cover [/.Variant]
(exec
(: for_type/variant
- (#Case/1 expected_left))
+ {#Case/1 expected_left})
true))
(_.cover [/.Record]
(exec
@@ -836,11 +836,11 @@
(_.cover [/.Either]
(and (exec
(: (/.Either Nat Text)
- (#.Left left))
+ {#.Left left})
true)
(exec
(: (/.Either Nat Text)
- (#.Right right))
+ {#.Right right})
true)))
(_.cover [/.Any]
(and (exec
@@ -890,12 +890,12 @@
(_.cover [/.Rec]
(let [list (: (/.Rec NList
(Maybe [Nat NList]))
- (#.Some [item/0
- (#.Some [item/1
- (#.Some [item/2
- #.None])])]))]
+ {#.Some [item/0
+ {#.Some [item/1
+ {#.Some [item/2
+ #.None]}]}]})]
(case list
- (#.Some [actual/0 (#.Some [actual/1 (#.Some [actual/2 #.None])])])
+ {#.Some [actual/0 {#.Some [actual/1 {#.Some [actual/2 #.None]}]}]}
(and (same? item/0 actual/0)
(same? item/1 actual/1)
(same? item/2 actual/2))
@@ -950,11 +950,11 @@
(/.case [#left expected_nat #right expected_int]
[#left 0 #right +0] true
_ false)
- (/.case (: (Either Nat Int) (#.Left expected_nat))
- (#.Left 0) true
+ (/.case (: (Either Nat Int) {#.Left expected_nat})
+ {#.Left 0} true
_ false)
- (/.case (: (Either Nat Int) (#.Right expected_int))
- (#.Right +0) true
+ (/.case (: (Either Nat Int) {#.Right expected_int})
+ {#.Right +0} true
_ false)
))
(_.cover [/.^or]
@@ -1083,8 +1083,8 @@
(case (value@ #.mode info)
#.Build true
_ false)]
- (#.Right [lux (list (code.bit (and conforming_target!
- compiling!)))]))))
+ {#.Right [lux (list (code.bit (and conforming_target!
+ compiling!)))]})))
(syntax: (for_meta|Module_State [])
(do meta.monad
@@ -1146,8 +1146,8 @@
local? (: (-> Ref Bit)
(function (_ ref)
(case ref
- (#.Local _) true
- (#.Captured _) false)))
+ {#.Local _} true
+ {#.Captured _} false)))
captured? (: (-> Ref Bit)
(|>> local? not))
binding? (: (-> (-> Ref Bit) Text Bit)
diff --git a/stdlib/source/test/lux/abstract/apply.lux b/stdlib/source/test/lux/abstract/apply.lux
index d5a1cd060..d7c6495c3 100644
--- a/stdlib/source/test/lux/abstract/apply.lux
+++ b/stdlib/source/test/lux/abstract/apply.lux
@@ -26,9 +26,9 @@
(_.cover [/.composite]
(let [expected (n.+ left right)]
(case (\ (/.composite maybe.monad maybe.apply list.apply) on
- (#.Some (list right))
- (#.Some (list (n.+ left))))
- (^ (#.Some (list actual)))
+ {#.Some (list right)}
+ {#.Some (list (n.+ left))})
+ (^ {#.Some (list actual)})
(n.= expected actual)
_
diff --git a/stdlib/source/test/lux/abstract/codec.lux b/stdlib/source/test/lux/abstract/codec.lux
index fdaff8185..aadf0d0e2 100644
--- a/stdlib/source/test/lux/abstract/codec.lux
+++ b/stdlib/source/test/lux/abstract/codec.lux
@@ -40,8 +40,8 @@
(<| (_.covering /._)
(_.cover [/.composite]
(case (|> expected (\ ..codec encoded) (\ ..codec decoded))
- (#try.Success actual)
+ {#try.Success actual}
(bit\= expected actual)
- (#try.Failure error)
+ {#try.Failure error}
false)))))
diff --git a/stdlib/source/test/lux/abstract/enum.lux b/stdlib/source/test/lux/abstract/enum.lux
index 83505a5be..5e2807e53 100644
--- a/stdlib/source/test/lux/abstract/enum.lux
+++ b/stdlib/source/test/lux/abstract/enum.lux
@@ -38,7 +38,7 @@
(/.range n.enum start end)
(list.reversed (/.range n.enum end start)))
every_element_is_a_successor? (case range
- (#.Item head tail)
+ {#.Item head tail}
(|> (list\mix (function (_ next [verdict prev])
[(and verdict
(n.= next (\ n.enum succ prev)))
diff --git a/stdlib/source/test/lux/abstract/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux
index 206150921..799a657cb 100644
--- a/stdlib/source/test/lux/abstract/equivalence.lux
+++ b/stdlib/source/test/lux/abstract/equivalence.lux
@@ -48,7 +48,7 @@
[#.End #.End]
true
- [(#.Item leftH lefT) (#.Item rightH rightT)]
+ [{#.Item leftH lefT} {#.Item rightH rightT}]
(and (n.= leftH rightH)
(\ equivalence = lefT rightT))
diff --git a/stdlib/source/test/lux/abstract/functor.lux b/stdlib/source/test/lux/abstract/functor.lux
index dff57b393..97540f00e 100644
--- a/stdlib/source/test/lux/abstract/functor.lux
+++ b/stdlib/source/test/lux/abstract/functor.lux
@@ -27,16 +27,16 @@
(_.cover [/.Or /.sum]
(and (case (\ (/.sum maybe.functor list.functor) each
(n.+ shift)
- (#.Left (#.Some left)))
- (#.Left (#.Some actual))
+ {#.Left {#.Some left}})
+ {#.Left {#.Some actual}}
(n.= (n.+ shift left) actual)
_
false)
(case (\ (/.sum maybe.functor list.functor) each
(n.+ shift)
- (#.Right (list right)))
- (^ (#.Right (list actual)))
+ {#.Right (list right)})
+ (^ {#.Right (list actual)})
(n.= (n.+ shift right) actual)
_
@@ -44,8 +44,8 @@
(_.cover [/.And /.product]
(case (\ (/.product maybe.functor list.functor) each
(n.+ shift)
- [(#.Some left) (list right)])
- (^ [(#.Some actualL) (list actualR)])
+ [{#.Some left} (list right)])
+ (^ [{#.Some actualL} (list actualR)])
(and (n.= (n.+ shift left) actualL)
(n.= (n.+ shift right) actualR))
@@ -54,8 +54,8 @@
(_.cover [/.Then /.composite]
(case (\ (/.composite maybe.functor list.functor) each
(n.+ shift)
- (#.Some (list left)))
- (^ (#.Some (list actual)))
+ {#.Some (list left)})
+ (^ {#.Some (list actual)})
(n.= (n.+ shift left) actual)
_
diff --git a/stdlib/source/test/lux/abstract/monad/free.lux b/stdlib/source/test/lux/abstract/monad/free.lux
index 39f91dc05..8fc9c96a8 100644
--- a/stdlib/source/test/lux/abstract/monad/free.lux
+++ b/stdlib/source/test/lux/abstract/monad/free.lux
@@ -20,15 +20,15 @@
(def: injection
(Injection (/.Free List))
- (|>> #/.Pure))
+ (|>> {#/.Pure}))
(def: (interpret free)
(All (_ a) (-> (/.Free List a) (List a)))
(case free
- (#/.Pure value)
+ {#/.Pure value}
(list value)
- (#/.Effect effect)
+ {#/.Effect effect}
(|> effect
(list\each interpret)
list.together)))
diff --git a/stdlib/source/test/lux/abstract/predicate.lux b/stdlib/source/test/lux/abstract/predicate.lux
index 8799e27a9..3cc54444b 100644
--- a/stdlib/source/test/lux/abstract/predicate.lux
+++ b/stdlib/source/test/lux/abstract/predicate.lux
@@ -83,7 +83,7 @@
#.End
false
- (#.Item head tail)
+ {#.Item head tail}
(or (even? head)
(recur tail)))))))]
(bit\= (list.any? even? samples)
diff --git a/stdlib/source/test/lux/control/concatenative.lux b/stdlib/source/test/lux/control/concatenative.lux
index 4cc158fd5..d1bb1d315 100644
--- a/stdlib/source/test/lux/control/concatenative.lux
+++ b/stdlib/source/test/lux/control/concatenative.lux
@@ -69,7 +69,7 @@
(~~ (template [<function> <tag>]
[(_.cover [<function>]
((sum.equivalence n.= n.=)
- (<tag> sample)
+ {<tag> sample}
(||> (/.push sample)
<function>)))]
diff --git a/stdlib/source/test/lux/control/concurrency/actor.lux b/stdlib/source/test/lux/control/concurrency/actor.lux
index 27b13bba4..c36e1b074 100644
--- a/stdlib/source/test/lux/control/concurrency/actor.lux
+++ b/stdlib/source/test/lux/control/concurrency/actor.lux
@@ -36,14 +36,14 @@
(message: (count! [increment Nat] state self)
Nat
(let [state' (n.+ increment state)]
- (async\in (#try.Success [state' state']))))]
+ (async\in {#try.Success [state' state']})))]
)
(def: (mailed? outcome)
(-> (Try Any) Bit)
(case outcome
- (#try.Success _) true
- (#try.Failure _) false))
+ {#try.Success _} true
+ {#try.Failure _} false))
(def: .public test
Test
@@ -92,12 +92,12 @@
(do [! async.monad]
[outcome (message state self)]
(case outcome
- (#try.Failure cause)
+ {#try.Failure cause}
(do !
[_ (async.future (write cause))]
(in outcome))
- (#try.Success _)
+ {#try.Success _}
(in outcome))))])
[])]
(/.poison! actor)))
@@ -105,7 +105,7 @@
result (async.future (async.value read))]
(_.cover' [/.poisoned]
(case result
- (#.Some error)
+ {#.Some error}
(exception.match? /.poisoned error)
#.None
@@ -127,10 +127,10 @@
(/.mail! ++! counter)))]
(_.cover' [/.dead]
(case result
- (#try.Success outcome)
+ {#try.Success outcome}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.dead error)))))
(let [die! (: (/.Mail Nat)
@@ -142,10 +142,10 @@
sent? (/.mail! die! actor)
alive? (/.alive? actor)
obituary (/.obituary' actor)]
- (in (#try.Success [actor sent? alive? obituary]))))]
+ (in {#try.Success [actor sent? alive? obituary]})))]
(_.cover' [/.Obituary /.obituary']
(case result
- (^ (#try.Success [actor sent? alive? (#.Some [error state (list single_pending_message)])]))
+ (^ {#try.Success [actor sent? alive? {#.Some [error state (list single_pending_message)]}]})
(and (..mailed? sent?)
(not alive?)
(exception.match? ..got_wrecked error)
@@ -166,10 +166,10 @@
(n.= 3 output_3))))]
(_.cover' [/.Message /.actor: /.message: /.tell!]
(case result
- (#try.Success outcome)
+ {#try.Success outcome}
outcome
- (#try.Failure error)
+ {#try.Failure error}
false))))
(in (do async.monad
@@ -187,7 +187,7 @@
(..mailed? sent/--?)
(..mailed? poisoned?)
(case obituary
- (^ (#.Some [error final_state (list poison_pill)]))
+ (^ {#.Some [error final_state (list poison_pill)]})
(and (exception.match? /.poisoned error)
(n.= (++ (++ initial_state))
final_state))
@@ -214,10 +214,10 @@
(if (n.< num_observations events_seen)
(do !
[_ (atom.update! (row.suffix event) sink)]
- (in (#try.Success (++ events_seen))))
+ (in {#try.Success (++ events_seen)}))
(do !
[_ stop]
- (in (#try.Failure "YOLO")))))))
+ (in {#try.Failure "YOLO"}))))))
(frp.sequential 0 events)
agent)]
(in agent)))
diff --git a/stdlib/source/test/lux/control/concurrency/async.lux b/stdlib/source/test/lux/control/concurrency/async.lux
index 2194854b5..f117f57f5 100644
--- a/stdlib/source/test/lux/control/concurrency/async.lux
+++ b/stdlib/source/test/lux/control/concurrency/async.lux
@@ -38,8 +38,8 @@
[?left (/.value left)
?right (/.value right)]
(in (case [?left ?right]
- [(#.Some left)
- (#.Some right)]
+ [{#.Some left}
+ {#.Some right}]
(== left right)
_
@@ -120,7 +120,7 @@
(in rightE))]
(_.cover' [/.or]
(case [?left ?right]
- [(#.Left leftA) (#.Right rightA)]
+ [{#.Left leftA} {#.Right rightA}]
(n.= (n.+ leftE rightE)
(n.+ leftA rightA))
@@ -141,7 +141,7 @@
?never (/.future (/.value async))]
(_.cover' [/.value]
(case [?actual ?never]
- [(#.Some actual) #.None]
+ [{#.Some actual} #.None]
(n.= expected actual)
_
@@ -159,7 +159,7 @@
?actual (/.within waiting_time (in expected))]
(_.cover' [/.within]
(case [?none ?actual]
- [#.None (#.Some actual)]
+ [#.None {#.Some actual}]
(n.= expected actual)
_
diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux
index d4615020b..c46d0da92 100644
--- a/stdlib/source/test/lux/control/concurrency/frp.lux
+++ b/stdlib/source/test/lux/control/concurrency/frp.lux
@@ -39,8 +39,8 @@
[?left (async.value left)
?right (async.value right)]
(in (case [?left ?right]
- [(#.Some (#.Some [left _]))
- (#.Some (#.Some [right _]))]
+ [{#.Some {#.Some [left _]}}
+ {#.Some {#.Some [right _]}}]
(== left right)
_
@@ -58,8 +58,8 @@
#.None
(in #.End)
- (#.Some [head tail])
- (\ ! each (|>> (#.Item head))
+ {#.Some [head tail]}
+ (\ ! each (|>> {#.Item head})
(take_amount (-- amount_of_polls) [channel sink]))))))
(def: .public test
@@ -90,18 +90,18 @@
_ (\ sink feed sample)
_ (\ sink close)]
(in channel)))
- (#try.Success channel)
+ {#try.Success channel}
(io.run!
(do io.monad
[?actual (async.value channel)]
(in (case ?actual
- (#.Some (#.Some [actual _]))
+ {#.Some {#.Some [actual _]}}
(n.= sample actual)
_
false))))
- (#try.Failure error)
+ {#try.Failure error}
false))
(_.cover [/.channel_is_already_closed]
(case (io.run!
@@ -109,10 +109,10 @@
[.let [[channel sink] (/.channel [])]
_ (\ sink close)]
(\ sink feed sample)))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.channel_is_already_closed error)))
(in (do async.monad
[output (|> sample
@@ -148,7 +148,7 @@
_ (atom.update! (row.suffix value) sink)]
(if (n.< (list.size inputs)
(++ (row.size current)))
- (in (#.Some []))
+ (in {#.Some []})
(do !
[_ (!signal [])]
(in #.None)))))
@@ -212,8 +212,8 @@
(/.iterations (function (_ [iterations current])
(async.resolved
(if (n.< max_iterations iterations)
- (#.Some [[(++ iterations) (n.+ shift current)]
- current])
+ {#.Some [[(++ iterations) (n.+ shift current)]
+ current]}
#.None))))
/.list)]
(_.cover' [/.iterations]
diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux
index 6f87f0889..44b2241f3 100644
--- a/stdlib/source/test/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux
@@ -45,7 +45,7 @@
[result (async.within ..delay (/.wait! semaphore))]
(_.cover' [/.semaphore]
(case result
- (#.Some _)
+ {#.Some _}
true
#.None
@@ -58,7 +58,7 @@
result (async.within ..delay (/.wait! semaphore))]
(_.cover' [/.wait!]
(case result
- (#.Some _)
+ {#.Some _}
false
#.None
@@ -74,7 +74,7 @@
result/1 (async.within ..delay block)]
(_.cover' [/.signal!]
(case [result/0 result/1 open_positions]
- [#.None (#.Some _) (#try.Success +0)]
+ [#.None {#.Some _} {#try.Success +0}]
true
_
@@ -86,7 +86,7 @@
[outcome (/.signal! semaphore)]
(_.cover' [/.semaphore_is_maxed_out]
(case outcome
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.semaphore_is_maxed_out error)
_
@@ -148,7 +148,7 @@
[0 #.None]
true
- [_ (#.Some limit)]
+ [_ {#.Some limit}]
(and (n.> 0 raw)
(n.= raw (refinement.value limit)))
diff --git a/stdlib/source/test/lux/control/continuation.lux b/stdlib/source/test/lux/control/continuation.lux
index ecb4ee77d..9fcea56e8 100644
--- a/stdlib/source/test/lux/control/continuation.lux
+++ b/stdlib/source/test/lux/control/continuation.lux
@@ -75,12 +75,12 @@
#.End
(_\in #.End)
- (#.Item x xs')
+ {#.Item x xs'}
(do [! /.monad]
[output (/.shift (function (_ k)
(do !
[tail (k xs')]
- (in (#.Item x tail)))))]
+ (in {#.Item x tail}))))]
(visit output)))))]
(list\= elems
(/.result (/.reset (visit elems))))))
diff --git a/stdlib/source/test/lux/control/exception.lux b/stdlib/source/test/lux/control/exception.lux
index faeac513e..1a0d26c86 100644
--- a/stdlib/source/test/lux/control/exception.lux
+++ b/stdlib/source/test/lux/control/exception.lux
@@ -39,24 +39,24 @@
($_ _.and
(_.cover [/.except]
(case (/.except ..an_exception [])
- (#try.Success _) false
- (#try.Failure _) true))
+ {#try.Success _} false
+ {#try.Failure _} true))
(_.cover [/.error]
(case (/.except ..an_exception [])
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure message)
+ {#try.Failure message}
(text\= message (/.error ..an_exception []))))
(_.cover [/.match?]
(/.match? ..an_exception
(/.error ..an_exception [])))
(_.cover [/.assertion]
(case (/.assertion ..an_exception [] assertion_succeeded?)
- (#try.Success _)
+ {#try.Success _}
assertion_succeeded?
- (#try.Failure message)
+ {#try.Failure message}
(and (not assertion_succeeded?)
(text\= message (/.error ..an_exception [])))))
(_.cover [/.when]
@@ -88,27 +88,27 @@
(text.contains? field1 enumeration)
(text.contains? value1 enumeration))))
(_.cover [/.with]
- (and (case (/.with ..an_exception [] (#try.Success expected))
- (#try.Success actual) (n.= expected actual)
- (#try.Failure _) false)
- (case (/.with ..an_exception [] (#try.Failure ""))
- (#try.Success _) false
- (#try.Failure message) (text\= message (/.error ..an_exception [])))
+ (and (case (/.with ..an_exception [] {#try.Success expected})
+ {#try.Success actual} (n.= expected actual)
+ {#try.Failure _} false)
+ (case (/.with ..an_exception [] {#try.Failure ""})
+ {#try.Success _} false
+ {#try.Failure message} (text\= message (/.error ..an_exception [])))
(case (/.with ..an_exception []
(: (Try Nat)
(/.except ..another_exception [])))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure message)
+ {#try.Failure message}
(and (text.contains? (/.error ..an_exception []) message)
(text.contains? (/.error ..another_exception []) message)))))
(_.cover [/.exception:]
(case (/.except ..custom_exception [expected])
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure message)
+ {#try.Failure message}
(and (text.contains? ..label message)
(text.contains? (%.nat expected) message))))
))))
diff --git a/stdlib/source/test/lux/control/function/contract.lux b/stdlib/source/test/lux/control/function/contract.lux
index 2ea5d8e3e..3e50834a7 100644
--- a/stdlib/source/test/lux/control/function/contract.lux
+++ b/stdlib/source/test/lux/control/function/contract.lux
@@ -25,20 +25,20 @@
(_.cover [/.pre /.pre_condition_failed]
(case (try (/.pre (n.even? expected)
true))
- (#try.Success output)
+ {#try.Success output}
output
- (#try.Failure error)
+ {#try.Failure error}
(and (text.contains? (value@ #exception.label /.pre_condition_failed)
error)
(not (n.even? expected)))))
(_.cover [/.post /.post_condition_failed]
(case (try (/.post n.odd?
expected))
- (#try.Success actual)
+ {#try.Success actual}
(same? expected actual)
- (#try.Failure error)
+ {#try.Failure error}
(and (text.contains? (value@ #exception.label /.post_condition_failed)
error)
(not (n.odd? expected)))))
diff --git a/stdlib/source/test/lux/control/maybe.lux b/stdlib/source/test/lux/control/maybe.lux
index 1c3e270a5..2cdce3830 100644
--- a/stdlib/source/test/lux/control/maybe.lux
+++ b/stdlib/source/test/lux/control/maybe.lux
@@ -55,7 +55,7 @@
[a (lifted (io\in left))
b (in right)]
(in (n.+ a b))))
- (case> (#.Some actual)
+ (case> {#.Some actual}
(n.= expected actual)
_
@@ -68,21 +68,21 @@
#.None))
(same? value (/.else default
- (#.Some value))))))
+ {#.Some value})))))
(do random.monad
[value random.nat]
(_.cover [/.trusted]
- (same? value (/.trusted (#.Some value)))))
+ (same? value (/.trusted {#.Some value}))))
(do random.monad
[value random.nat]
(_.cover [/.list]
(\ (list.equivalence n.equivalence) =
(list value)
- (/.list (#.Some value)))))
+ (/.list {#.Some value}))))
(do random.monad
[expected random.nat
.let [(^open "/\[0]") (/.equivalence n.equivalence)]]
(_.cover [/.when]
- (and (/\= (#.Some expected) (/.when true (#.Some expected)))
- (/\= #.None (/.when false (#.Some expected))))))
+ (and (/\= {#.Some expected} (/.when true {#.Some expected}))
+ (/\= #.None (/.when false {#.Some expected})))))
)))
diff --git a/stdlib/source/test/lux/control/parser.lux b/stdlib/source/test/lux/control/parser.lux
index fa3e828dc..119bfebb6 100644
--- a/stdlib/source/test/lux/control/parser.lux
+++ b/stdlib/source/test/lux/control/parser.lux
@@ -43,7 +43,7 @@
(def: (should_fail expected input)
(All (_ a) (-> Text (Try a) Bit))
(case input
- (#try.Failure actual)
+ {#try.Failure actual}
(text\= expected actual)
_
@@ -52,7 +52,7 @@
(def: (enforced? parser input)
(All (_ s) (-> (Parser s Any) s Bit))
(case (/.result parser input)
- (#try.Success [_ []])
+ {#try.Success [_ []]}
#1
_
@@ -61,7 +61,7 @@
(def: (found? parser input)
(All (_ s) (-> (Parser s Bit) s Bit))
(case (/.result parser input)
- (#try.Success [_ #1])
+ {#try.Success [_ #1]}
#1
_
@@ -70,7 +70,7 @@
(def: (fails? input)
(All (_ a) (-> (Try a) Bit))
(case input
- (#try.Failure _)
+ {#try.Failure _}
#1
_
@@ -80,7 +80,7 @@
then <code>.any
input <code>.any])
(in (list (` (case (~ input)
- (^ (#try.Success [(~' _) (~ pattern)]))
+ (^ {#try.Success [(~' _) (~ pattern)]})
(~ then)
(~' _)
@@ -99,7 +99,7 @@
(_.cover [/.maybe]
(and (|> (list (code.nat expected0))
(/.result (/.maybe <code>.nat))
- (match (#.Some actual)
+ (match {#.Some actual}
(n.= expected0 actual)))
(|> (list (code.int (.int expected0)))
(/.result (/.maybe <code>.nat))
@@ -149,10 +149,10 @@
odd (/.only n.odd? <code>.nat)]
(and (|> (list (code.nat even0))
(/.result (/.or even odd))
- (match (#.Left actual) (n.= even0 actual)))
+ (match {#.Left actual} (n.= even0 actual)))
(|> (list (code.nat odd0))
(/.result (/.or even odd))
- (match (#.Right actual) (n.= odd0 actual)))
+ (match {#.Right actual} (n.= odd0 actual)))
(|> (list (code.bit not0))
(/.result (/.or even odd))
fails?))))
@@ -339,7 +339,7 @@
(Comparison (All (_ a i) (Parser i a)))
(function (_ == left right)
(case [(/.result left []) (/.result right [])]
- [(#try.Success [_ left]) (#try.Success [_ right])]
+ [{#try.Success [_ left]} {#try.Success [_ right]}]
(== left right)
_
@@ -370,10 +370,10 @@
(should_fail failure)))
(_.cover [/.lifted]
(and (|> (list)
- (/.result (/.lifted (#try.Success expected)))
+ (/.result (/.lifted {#try.Success expected}))
(match actual (n.= expected actual)))
(|> (list)
- (/.result (/.lifted (#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/analysis.lux b/stdlib/source/test/lux/control/parser/analysis.lux
index c1babf741..392e66382 100644
--- a/stdlib/source/test/lux/control/parser/analysis.lux
+++ b/stdlib/source/test/lux/control/parser/analysis.lux
@@ -57,10 +57,10 @@
(_.cover [/.result /.any]
(|> (list expected)
(/.result /.any)
- (case> (#try.Success actual)
+ (case> {#try.Success actual}
(\ analysis.equivalence = expected actual)
- (#try.Failure _)
+ {#try.Failure _}
false))))
(~~ (template [<query> <check> <random> <analysis> <=>]
[(do [! random.monad]
@@ -68,17 +68,17 @@
(_.cover [<query>]
(|> (list (<analysis> expected))
(/.result <query>)
- (case> (#try.Success actual)
+ (case> {#try.Success actual}
(<=> expected actual)
- (#try.Failure _)
+ {#try.Failure _}
false))))
(do [! random.monad]
[expected <random>]
(_.cover [<check>]
(|> (list (<analysis> expected))
(/.result (<check> expected))
- (!expect (#try.Success _)))))]
+ (!expect {#try.Success _}))))]
[/.bit /.bit! random.bit analysis.bit bit\=]
[/.nat /.nat! random.nat analysis.nat n.=]
@@ -95,54 +95,54 @@
(_.cover [/.tuple]
(|> (list (analysis.tuple (list (analysis.bit expected))))
(/.result (/.tuple /.bit))
- (case> (#try.Success actual)
+ (case> {#try.Success actual}
(bit\= expected actual)
- (#try.Failure _)
+ {#try.Failure _}
false))))
(do [! random.monad]
[dummy random.bit]
(_.cover [/.end?]
(and (|> (/.result /.end? (list))
- (!expect (#try.Success #1)))
+ (!expect {#try.Success #1}))
(|> (/.result (do <>.monad
[verdict /.end?
_ /.bit]
(in verdict))
(list (analysis.bit dummy)))
- (!expect (#try.Success #0))))))
+ (!expect {#try.Success #0})))))
(do [! random.monad]
[dummy random.bit]
(_.cover [/.end!]
(and (|> (/.result /.end! (list))
- (!expect (#try.Success _)))
+ (!expect {#try.Success _}))
(|> (/.result /.end! (list (analysis.bit dummy)))
- (!expect (#try.Failure _))))))
+ (!expect {#try.Failure _})))))
(do [! random.monad]
[expected random.bit]
(_.cover [/.cannot_parse]
(and (|> (list (analysis.bit expected))
(/.result /.nat)
- (case> (#try.Success _)
+ (case> {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_parse error)))
(|> (list)
(/.result /.bit)
- (case> (#try.Success _)
+ (case> {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_parse error))))))
(do [! random.monad]
[expected random.bit]
(_.cover [/.unconsumed_input]
(|> (list (analysis.bit expected) (analysis.bit expected))
(/.result /.bit)
- (case> (#try.Success _)
+ (case> {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.unconsumed_input error)))))
)))))
diff --git a/stdlib/source/test/lux/control/parser/binary.lux b/stdlib/source/test/lux/control/parser/binary.lux
index 7e8ddd47c..40e2fa301 100644
--- a/stdlib/source/test/lux/control/parser/binary.lux
+++ b/stdlib/source/test/lux/control/parser/binary.lux
@@ -56,10 +56,10 @@
(|> value
(\ utf8.codec encoded)
(\ utf8.codec decoded)
- (case> (#try.Success converted)
+ (case> {#try.Success converted}
(text\= value converted)
- (#try.Failure error)
+ {#try.Failure error}
false)))
(def: random_text
@@ -131,7 +131,7 @@
(_.cover [<size> <parser> <format>]
(|> (format.result <format> expected)
(/.result <parser>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= (.nat expected)
(.nat actual)))))))]
@@ -150,7 +150,7 @@
(_.cover [<parser> <format>]
(|> (format.result <format> expected)
(/.result <parser>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ binary.equivalence = expected actual))))))]
[/.binary/8 format.binary/8]
@@ -168,7 +168,7 @@
(_.cover [<parser> <format>]
(|> (format.result <format> expected)
(/.result <parser>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ text.equivalence = expected actual))))))]
[/.utf8/8 format.utf8/8]
@@ -188,7 +188,7 @@
(|> expected
(format.result (<format> format.nat))
(/.result (<parser> /.nat))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ (row.equivalence n.equivalence) = expected actual))))))]
[/.row/8 format.row/8]
@@ -207,7 +207,7 @@
(|> expected
(format.result <format>)
(/.result <parser>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ <equivalence> = expected actual))))))]
[/.bit format.bit random.bit bit.equivalence]
@@ -220,7 +220,7 @@
(|> expected
(format.result format.frac)
(/.result /.frac)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(or (\ frac.equivalence = expected actual)
(and (frac.not_a_number? expected)
(frac.not_a_number? actual))))))))
@@ -232,7 +232,7 @@
(|> expected
(format.result format.bits/8)
(/.result /.bit)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.not_a_bit error))))))
)))
@@ -246,7 +246,7 @@
(|> expected
(format.result <format>)
(/.result <parser>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ <equivalence> = expected actual))))))]
[/.location format.location random_location location_equivalence]
@@ -260,7 +260,7 @@
(|> expected
(format.result <format>)
(/.result <parser>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ <equivalence> = expected actual))))))]
[/.maybe (/.maybe /.nat) format.maybe (format.maybe format.nat) (random.maybe random.nat) (maybe.equivalence n.equivalence)]
@@ -273,7 +273,7 @@
(|> expected
(format.result (format.list format.nat))
(/.result (/.set n.hash /.nat))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.set_elements_are_not_unique error))))))
(do [! random.monad]
[expected (random.or random.bit random.nat)]
@@ -282,7 +282,7 @@
(format.result (format.or format.bit format.nat))
(/.result (: (/.Parser (Either Bit Nat))
(/.or /.bit /.nat)))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ (sum.equivalence bit.equivalence n.equivalence) =
expected
actual))))))
@@ -296,7 +296,7 @@
(format.result (format.and format.bits/8 format.bit))
(/.result (: (/.Parser (Either Bit Nat))
(/.or /.bit /.nat)))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.invalid_tag error))))))
(do [! random.monad]
[expected (random.list ..segment_size random.nat)]
@@ -310,7 +310,7 @@
(/.or /.any
(<>.and /.nat
recur))))))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ (list.equivalence n.equivalence) =
expected
actual))))))
@@ -325,13 +325,13 @@
format.no_op format.instance]
(|> (format.instance format.no_op)
(/.result /.any)
- (!expect (#try.Success _))))
+ (!expect {#try.Success _})))
(do [! random.monad]
[data (\ ! each (\ utf8.codec encoded) (random.ascii ..segment_size))]
(_.cover [/.binary_was_not_fully_read]
(|> data
(/.result /.any)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.binary_was_not_fully_read error))))))
(do [! random.monad]
[expected (\ ! each (\ utf8.codec encoded) (random.ascii ..segment_size))]
@@ -339,7 +339,7 @@
(|> expected
(format.result (format.segment ..segment_size))
(/.result (/.segment ..segment_size))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ binary.equivalence = expected actual))))))
(do [! random.monad]
[data (\ ! each (\ utf8.codec encoded) (random.ascii ..segment_size))]
@@ -351,7 +351,7 @@
post /.end?]
(in (and (not pre)
post))))
- (!expect (#try.Success #1)))))
+ (!expect {#try.Success #1}))))
(do [! random.monad]
[to_read (\ ! each (n.% (++ ..segment_size)) random.nat)
data (\ ! each (\ utf8.codec encoded) (random.ascii ..segment_size))]
@@ -366,7 +366,7 @@
(in (and (n.= 0 start)
(n.= to_read offset)
(n.= ..segment_size nothing_left)))))
- (!expect (#try.Success #1)))))
+ (!expect {#try.Success #1}))))
(do [! random.monad]
[to_read (\ ! each (n.% (++ ..segment_size)) random.nat)
data (\ ! each (\ utf8.codec encoded) (random.ascii ..segment_size))]
@@ -380,7 +380,7 @@
(in (and (n.= ..segment_size
(n.+ to_read remaining))
(n.= 0 nothing_left)))))
- (!expect (#try.Success #1)))))
+ (!expect {#try.Success #1}))))
..size
..binary
..utf8
diff --git a/stdlib/source/test/lux/control/parser/cli.lux b/stdlib/source/test/lux/control/parser/cli.lux
index 69f8cfe3e..fe10e5ccd 100644
--- a/stdlib/source/test/lux/control/parser/cli.lux
+++ b/stdlib/source/test/lux/control/parser/cli.lux
@@ -42,42 +42,42 @@
($_ _.and
(_.cover [/.result /.any]
(|> (/.result /.any (list expected))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(text\= expected actual)))))
(_.cover [/.parse]
(|> (/.result (/.parse n\decoded) (list expected))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(text\= expected
(n\encoded actual))))))
(_.cover [/.this]
(and (|> (/.result (/.this expected) (list expected))
- (!expect (#try.Success _)))
+ (!expect {#try.Success _}))
(|> (/.result (/.this expected) (list dummy))
- (!expect (#try.Failure _)))))
+ (!expect {#try.Failure _}))))
(_.cover [/.somewhere]
(|> (/.result (|> (/.somewhere (/.this expected))
(<>.before (<>.some /.any)))
(list.together (list pre_ignore (list expected) post_ignore)))
- (!expect (#try.Success _))))
+ (!expect {#try.Success _})))
(_.cover [/.end]
(and (|> (/.result /.end (list))
- (!expect (#try.Success _)))
+ (!expect {#try.Success _}))
(|> (/.result (<>.not /.end) (list expected))
- (!expect (#try.Failure _)))))
+ (!expect {#try.Failure _}))))
(_.cover [/.named]
(|> (/.result (/.named dummy /.any) (list dummy expected))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(text\= expected actual)))))
(_.cover [/.parameter]
(and (|> (/.result (/.parameter [short long] /.any)
(list short expected))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(text\= expected actual))))
(|> (/.result (/.parameter [short long] /.any)
(list long expected))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(text\= expected actual))))
(|> (/.result (/.parameter [short long] /.any)
(list dummy expected))
- (!expect (#try.Failure _)))))
+ (!expect {#try.Failure _}))))
))))
diff --git a/stdlib/source/test/lux/control/parser/code.lux b/stdlib/source/test/lux/control/parser/code.lux
index 8ee19b7e4..400aea243 100644
--- a/stdlib/source/test/lux/control/parser/code.lux
+++ b/stdlib/source/test/lux/control/parser/code.lux
@@ -48,9 +48,9 @@
[expected (\ ! each code.bit random.bit)]
(_.cover [/.result]
(and (|> (/.result /.any (list expected))
- (!expect (#try.Success _)))
+ (!expect {#try.Success _}))
(|> (/.result /.any (list))
- (!expect (#try.Failure _))))))
+ (!expect {#try.Failure _})))))
(~~ (template [<query> <check> <random> <code> <equivalence>]
[(do [! random.monad]
[expected <random>
@@ -58,13 +58,13 @@
($_ _.and
(_.cover [<query>]
(|> (/.result <query> (list (<code> expected)))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ <equivalence> = expected actual)))))
(_.cover [<check>]
(and (|> (/.result (<check> expected) (list (<code> expected)))
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (<check> expected) (list (<code> dummy)))
- (!expect (#try.Failure _)))))
+ (!expect {#try.Failure _}))))
))]
[/.any /.this! (\ ! each code.bit random.bit) function.identity code.equivalence]
@@ -87,7 +87,7 @@
(|> (/.result (<query> (<>.and /.nat /.int))
(list (<code> (list (code.nat expected_left)
(code.int expected_right)))))
- (!expect (^multi (#try.Success [actual_left actual_right])
+ (!expect (^multi {#try.Success [actual_left actual_right]}
(and (\ nat.equivalence = expected_left actual_left)
(\ int.equivalence = expected_right actual_right)))))))]
@@ -102,7 +102,7 @@
(|> (/.result (<>.and (/.local (list (code.nat expected_local)) /.nat)
/.int)
(list (code.int expected_global)))
- (!expect (^multi (#try.Success [actual_local actual_global])
+ (!expect (^multi {#try.Success [actual_local actual_global]}
(and (\ nat.equivalence = expected_local actual_local)
(\ int.equivalence = expected_global actual_global)))))))
(do [! random.monad]
@@ -115,15 +115,15 @@
(in (and (not pre)
post)))
(list dummy))
- (!expect (^multi (#try.Success verdict)
+ (!expect (^multi {#try.Success verdict}
verdict)))))
(do [! random.monad]
[dummy (\ ! each code.bit random.bit)]
(_.cover [/.end!]
(and (|> (/.result /.end! (list))
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result /.end! (list dummy))
- (!expect (#try.Failure _))))))
+ (!expect {#try.Failure _})))))
(do [! random.monad]
[expected (\ ! each code.bit random.bit)]
(_.cover [/.next]
@@ -133,13 +133,13 @@
(in (and (same? expected pre)
(same? pre post))))
(list expected))
- (!expect (#try.Success _)))))
+ (!expect {#try.Success _}))))
(do [! random.monad]
[expected (\ ! each code.bit random.bit)]
(_.cover [/.not]
(and (|> (/.result (/.not /.nat) (list expected))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(same? expected actual))))
(|> (/.result (/.not /.bit) (list expected))
- (!expect (#try.Failure _))))))
+ (!expect {#try.Failure _})))))
))))
diff --git a/stdlib/source/test/lux/control/parser/environment.lux b/stdlib/source/test/lux/control/parser/environment.lux
index 42c09df66..dbef40a52 100644
--- a/stdlib/source/test/lux/control/parser/environment.lux
+++ b/stdlib/source/test/lux/control/parser/environment.lux
@@ -45,9 +45,9 @@
[property (random.ascii/alpha 1)]
(_.cover [/.unknown_property]
(case (/.result (/.property property) /.empty)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.unknown_property error))))
)))
diff --git a/stdlib/source/test/lux/control/parser/json.lux b/stdlib/source/test/lux/control/parser/json.lux
index 1e440036e..ad35703ab 100644
--- a/stdlib/source/test/lux/control/parser/json.lux
+++ b/stdlib/source/test/lux/control/parser/json.lux
@@ -49,30 +49,30 @@
[expected (\ ! each (|>> #json.String) (random.unicode 1))]
(_.cover [/.result /.any]
(|> (/.result /.any expected)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ json.equivalence = expected actual))))))
(_.cover [/.null]
(|> (/.result /.null #json.Null)
- (!expect (#try.Success _))))
+ (!expect {#try.Success _})))
(~~ (template [<query> <test> <check> <random> <json> <equivalence>]
[(do [! random.monad]
[expected <random>
dummy (|> <random> (random.only (|>> (\ <equivalence> = expected) not)))]
($_ _.and
(_.cover [<query>]
- (|> (/.result <query> (<json> expected))
- (!expect (^multi (#try.Success actual)
+ (|> (/.result <query> {<json> expected})
+ (!expect (^multi {#try.Success actual}
(\ <equivalence> = expected actual)))))
(_.cover [<test>]
- (and (|> (/.result (<test> expected) (<json> expected))
- (!expect (#try.Success #1)))
- (|> (/.result (<test> expected) (<json> dummy))
- (!expect (#try.Success #0)))))
+ (and (|> (/.result (<test> expected) {<json> expected})
+ (!expect {#try.Success #1}))
+ (|> (/.result (<test> expected) {<json> dummy})
+ (!expect {#try.Success #0}))))
(_.cover [<check>]
- (and (|> (/.result (<check> expected) (<json> expected))
- (!expect (#try.Success _)))
- (|> (/.result (<check> expected) (<json> dummy))
- (!expect (#try.Failure _)))))))]
+ (and (|> (/.result (<check> expected) {<json> expected})
+ (!expect {#try.Success _}))
+ (|> (/.result (<check> expected) {<json> dummy})
+ (!expect {#try.Failure _}))))))]
[/.boolean /.boolean? /.boolean! random.bit #json.Boolean bit.equivalence]
[/.number /.number? /.number! ..safe_frac #json.Number frac.equivalence]
@@ -82,25 +82,25 @@
[expected (random.unicode 1)
dummy random.bit]
(_.cover [/.unexpected_value]
- (|> (/.result /.string (#json.Boolean dummy))
- (!expect (^multi (#try.Failure error)
+ (|> (/.result /.string {#json.Boolean dummy})
+ (!expect (^multi {#try.Failure error}
(exception.match? /.unexpected_value error))))))
(do [! random.monad]
[expected (random.unicode 1)
dummy (|> (random.unicode 1) (random.only (|>> (\ text.equivalence = expected) not)))]
(_.cover [/.value_mismatch]
- (|> (/.result (/.string! expected) (#json.String dummy))
- (!expect (^multi (#try.Failure error)
+ (|> (/.result (/.string! expected) {#json.String dummy})
+ (!expect (^multi {#try.Failure error}
(exception.match? /.value_mismatch error))))))
(do [! random.monad]
[expected (random.unicode 1)]
(_.cover [/.nullable]
(and (|> (/.result (/.nullable /.string) #json.Null)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ (maybe.equivalence text.equivalence) = #.None actual))))
- (|> (/.result (/.nullable /.string) (#json.String expected))
- (!expect (^multi (#try.Success actual)
- (\ (maybe.equivalence text.equivalence) = (#.Some expected) actual)))))))
+ (|> (/.result (/.nullable /.string) {#json.String expected})
+ (!expect (^multi {#try.Success actual}
+ (\ (maybe.equivalence text.equivalence) = {#.Some expected} actual)))))))
(do [! random.monad]
[size (\ ! each (n.% 10) random.nat)
expected (|> (random.unicode 1)
@@ -108,18 +108,18 @@
(\ ! each row.of_list))]
(_.cover [/.array]
(|> (/.result (/.array (<>.some /.string))
- (#json.Array (row\each (|>> #json.String) expected)))
- (!expect (^multi (#try.Success actual)
+ {#json.Array (row\each (|>> #json.String) expected)})
+ (!expect (^multi {#try.Success actual}
(\ (row.equivalence text.equivalence) = expected (row.of_list actual)))))))
(do [! random.monad]
[expected (\ ! each (|>> #json.String) (random.unicode 1))]
(_.cover [/.unconsumed_input]
- (|> (/.result (/.array /.any) (#json.Array (row expected expected)))
- (!expect (^multi (#try.Failure error)
+ (|> (/.result (/.array /.any) {#json.Array (row expected expected)})
+ (!expect (^multi {#try.Failure error}
(exception.match? /.unconsumed_input error))))))
(_.cover [/.empty_input]
- (|> (/.result (/.array /.any) (#json.Array (row)))
- (!expect (^multi (#try.Failure error)
+ (|> (/.result (/.array /.any) {#json.Array (row)})
+ (!expect (^multi {#try.Failure error}
(exception.match? /.empty_input error)))))
(do [! random.monad]
[expected_boolean random.bit
@@ -137,12 +137,12 @@
(/.field boolean_field /.boolean)
(/.field number_field /.number)
(/.field string_field /.string)))
- (#json.Object
+ {#json.Object
(dictionary.of_list text.hash
- (list [boolean_field (#json.Boolean expected_boolean)]
- [number_field (#json.Number expected_number)]
- [string_field (#json.String expected_string)]))))
- (!expect (^multi (#try.Success [actual_boolean actual_number actual_string])
+ (list [boolean_field {#json.Boolean expected_boolean}]
+ [number_field {#json.Number expected_number}]
+ [string_field {#json.String expected_string}]))})
+ (!expect (^multi {#try.Success [actual_boolean actual_number actual_string]}
(and (\ bit.equivalence = expected_boolean actual_boolean)
(\ frac.equivalence = expected_number actual_number)
(\ text.equivalence = expected_string actual_string)))))))
@@ -153,11 +153,11 @@
.let [expected (dictionary.of_list text.hash (list.zipped/2 keys values))]]
(_.cover [/.dictionary]
(|> (/.result (/.dictionary /.string)
- (#json.Object
+ {#json.Object
(|> values
(list\each (|>> #json.String))
(list.zipped/2 keys)
- (dictionary.of_list text.hash))))
- (!expect (^multi (#try.Success actual)
+ (dictionary.of_list text.hash))})
+ (!expect (^multi {#try.Success actual}
(\ (dictionary.equivalence text.equivalence) = expected actual))))))
))))
diff --git a/stdlib/source/test/lux/control/parser/synthesis.lux b/stdlib/source/test/lux/control/parser/synthesis.lux
index 9068cad62..67906c0a1 100644
--- a/stdlib/source/test/lux/control/parser/synthesis.lux
+++ b/stdlib/source/test/lux/control/parser/synthesis.lux
@@ -68,13 +68,13 @@
($_ _.and
(_.cover [<query>]
(|> (/.result <query> (list (<synthesis> expected)))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ <equivalence> = expected actual)))))
(_.cover [<check>]
(and (|> (/.result (<check> expected) (list (<synthesis> expected)))
- (!expect (#try.Success _)))
+ (!expect {#try.Success _}))
(|> (/.result (<check> expected) (list (<synthesis> dummy)))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.cannot_parse error))))))
))]
@@ -102,14 +102,14 @@
(synthesis.i64 expected_i64)
(synthesis.f64 expected_f64)
(synthesis.text expected_text)))))
- (!expect (^multi (#try.Success [actual_bit actual_i64 actual_f64 actual_text])
+ (!expect (^multi {#try.Success [actual_bit actual_i64 actual_f64 actual_text]}
(and (\ bit.equivalence = expected_bit actual_bit)
(\ i64.equivalence = expected_i64 actual_i64)
(\ frac.equivalence = expected_f64 actual_f64)
(\ text.equivalence = expected_text actual_text)))))
(|> (/.result (/.tuple ($_ <>.and /.bit /.i64 /.f64 /.text))
(list (synthesis.text expected_text)))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.cannot_parse error)))))))
(do [! random.monad]
[arity random.nat
@@ -118,14 +118,14 @@
(_.cover [/.function]
(and (|> (/.result (/.function arity /.text)
(list (synthesis.function/abstraction [expected_environment arity (synthesis.text expected_body)])))
- (!expect (^multi (#try.Success [actual_environment actual_body])
+ (!expect (^multi {#try.Success [actual_environment actual_body]}
(and (\ (list.equivalence synthesis.equivalence) =
expected_environment
actual_environment)
(\ text.equivalence = expected_body actual_body)))))
(|> (/.result (/.function arity /.text)
(list (synthesis.text expected_body)))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.cannot_parse error)))))))
(do [! random.monad]
[arity random.nat
@@ -134,7 +134,7 @@
(_.cover [/.wrong_arity]
(|> (/.result (/.function (++ arity) /.text)
(list (synthesis.function/abstraction [expected_environment arity (synthesis.text expected_body)])))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.wrong_arity error))))))
(do [! random.monad]
[arity (\ ! each (|>> (n.% 10) ++) random.nat)
@@ -146,7 +146,7 @@
(list (synthesis.loop/scope [expected_offset
(list\each (|>> synthesis.bit) expected_inits)
(synthesis.text expected_body)])))
- (!expect (^multi (#try.Success [actual_offset actual_inits actual_body])
+ (!expect (^multi {#try.Success [actual_offset actual_inits actual_body]}
(and (\ n.equivalence = expected_offset actual_offset)
(\ (list.equivalence bit.equivalence) =
expected_inits
@@ -154,7 +154,7 @@
(\ text.equivalence = expected_body actual_body)))))
(|> (/.result (/.loop (<>.many /.bit) /.text)
(list (synthesis.text expected_body)))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.cannot_parse error)))))))
))
@@ -167,33 +167,33 @@
[expected (\ ! each (|>> synthesis.i64) random.nat)]
(_.cover [/.result /.any]
(|> (/.result /.any (list expected))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ synthesis.equivalence = expected actual))))))
(_.cover [/.empty_input]
(|> (/.result /.any (list))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.empty_input error)))))
(do [! random.monad]
[expected (\ ! each (|>> synthesis.i64) random.nat)]
(_.cover [/.unconsumed_input]
(|> (/.result /.any (list expected expected))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.unconsumed_input error))))))
(do [! random.monad]
[dummy (\ ! each (|>> synthesis.i64) random.nat)]
(_.cover [/.end! /.expected_empty_input]
(and (|> (/.result /.end! (list))
- (!expect (#try.Success _)))
+ (!expect {#try.Success _}))
(|> (/.result /.end! (list dummy))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.expected_empty_input error)))))))
(do [! random.monad]
[dummy (\ ! each (|>> synthesis.i64) random.nat)]
(_.cover [/.end?]
(and (|> (/.result /.end? (list))
- (!expect (#try.Success #1)))
+ (!expect {#try.Success #1}))
(|> (/.result (<>.before /.any /.end?) (list dummy))
- (!expect (#try.Success #0))))))
+ (!expect {#try.Success #0})))))
(_.for [/.cannot_parse]
($_ _.and
..simple
diff --git a/stdlib/source/test/lux/control/parser/text.lux b/stdlib/source/test/lux/control/parser/text.lux
index 05a28b1ff..8377f6b4b 100644
--- a/stdlib/source/test/lux/control/parser/text.lux
+++ b/stdlib/source/test/lux/control/parser/text.lux
@@ -42,7 +42,7 @@
(def: (should_fail' sample parser exception)
(All (_ a e) (-> Text (/.Parser a) (Exception e) Bit))
(case (/.result parser sample)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? exception error)
_
@@ -51,7 +51,7 @@
(def: (should_fail sample parser)
(All (_ a) (-> Text (/.Parser a) Bit))
(case (/.result parser sample)
- (#try.Failure _)
+ {#try.Failure _}
true
_
@@ -301,10 +301,10 @@
(_.cover [/.result /.end!]
(and (|> (/.result /.end!
"")
- (!expect (#try.Success _)))
+ (!expect {#try.Success _}))
(|> (/.result /.end!
sample)
- (!expect (#try.Failure _))))))
+ (!expect {#try.Failure _})))))
(do [! random.monad]
[.let [size 10]
expected (random.unicode size)
@@ -313,15 +313,15 @@
(_.cover [/.this /.cannot_match]
(and (|> (/.result (/.this expected)
expected)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (/.this expected)
dummy)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.cannot_match error)))))))
(_.cover [/.Slice /.slice /.cannot_slice]
(|> ""
(/.result (/.slice /.any!))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.cannot_slice error)))))
(do [! random.monad]
[expected (random.unicode 1)]
@@ -337,14 +337,14 @@
(and (..should_pass expected (<>.before /.any /.next))
(|> ""
(/.result (<>.before /.any /.next))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.cannot_parse error)))))))
(do [! random.monad]
[dummy (random.unicode 1)]
(_.cover [/.unconsumed_input]
(|> (format dummy dummy)
(/.result /.any)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.unconsumed_input error))))))
(do [! random.monad]
[sample (random.unicode 1)]
@@ -355,7 +355,7 @@
_ /.any
post /.offset]
(in [pre post])))
- (!expect (#try.Success [0 1])))))
+ (!expect {#try.Success [0 1]}))))
(do [! random.monad]
[left (random.unicode 1)
right (random.unicode 1)
@@ -369,7 +369,7 @@
_ /.any]
(in (and (text\= input pre)
(text\= right post)))))
- (!expect (#try.Success #1)))))
+ (!expect {#try.Success #1}))))
(do [! random.monad]
[left (random.unicode 1)
right (random.unicode 1)
@@ -378,7 +378,7 @@
(_.cover [/.enclosed]
(|> (format left expected right)
(/.result (/.enclosed [left right] (/.this expected)))
- (!expect (#try.Success _)))))
+ (!expect {#try.Success _}))))
(do [! random.monad]
[input (random.unicode 1)
output (random.unicode 1)]
@@ -387,13 +387,13 @@
(/.result (do <>.monad
[_ (/.local input (/.this input))]
(/.this output)))
- (!expect (#try.Success _)))))
+ (!expect {#try.Success _}))))
(do [! random.monad]
[expected (\ ! each (|>> (n.% 8) (\ n.octal encoded)) random.nat)]
(_.cover [/.then]
(|> (list (code.text expected))
(<c>.result (/.then /.octal <c>.text))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(text\= expected actual))))))
(do [! random.monad]
[invalid (random.ascii/upper 1)
@@ -405,13 +405,13 @@
(and (..should_pass (text.of_char expected) (/.not /.upper))
(|> invalid
(/.result (/.not /.upper))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.expected_to_fail error))))
(..should_pass! (text.of_char expected) (/.not! upper!))
(|> invalid
(/.result (/.not! upper!))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.expected_to_fail error)))))))
(do [! random.monad]
[upper (random.ascii/upper 1)
diff --git a/stdlib/source/test/lux/control/parser/tree.lux b/stdlib/source/test/lux/control/parser/tree.lux
index 30fc3f5d1..d99273be5 100644
--- a/stdlib/source/test/lux/control/parser/tree.lux
+++ b/stdlib/source/test/lux/control/parser/tree.lux
@@ -34,7 +34,7 @@
(_.cover <coverage>
(|> (/.result <parser>
<sample>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= expected actual))))))])
(template: (!cover/2 <coverage> <parser> <sample0> <sample1>)
@@ -43,10 +43,10 @@
expected (|> random.nat (random.only (|>> (n.= dummy) not)))]
(_.cover <coverage>
(and (|> (/.result <parser> <sample0>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= expected actual))))
(|> (/.result <parser> <sample1>)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= expected actual)))))))])
(def: .public test
@@ -62,7 +62,7 @@
(_.cover [/.result']
(|> (/.result' /.value
(zipper.zipper (tree.leaf expected)))
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= expected actual))))))
(!cover [/.down]
(do //.monad
@@ -163,7 +163,7 @@
(`` (and (~~ (template [<parser>]
[(|> (/.result <parser>
(tree.leaf dummy))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.cannot_move_further error))))]
[/.down] [/.up]
diff --git a/stdlib/source/test/lux/control/parser/type.lux b/stdlib/source/test/lux/control/parser/type.lux
index 8b843dcdb..3d27819bd 100644
--- a/stdlib/source/test/lux/control/parser/type.lux
+++ b/stdlib/source/test/lux/control/parser/type.lux
@@ -32,7 +32,7 @@
(Random Type)
(|> (random.ascii/alpha_num 1)
(\ random.monad each (function (_ name)
- (#.Primitive name (list))))))
+ {#.Primitive name (list)}))))
(def: matches
Test
@@ -44,29 +44,29 @@
($_ _.and
(_.cover [/.exactly]
(and (|> (/.result (/.exactly expected) expected)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (/.exactly expected) dummy)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.types_do_not_match error))))))
(_.cover [/.sub]
(and (|> (/.result (/.sub expected) expected)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (/.sub Any) expected)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (/.sub expected) Nothing)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (/.sub expected) dummy)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.types_do_not_match error))))))
(_.cover [/.super]
(and (|> (/.result (/.super expected) expected)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (/.super expected) Any)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (/.super Nothing) expected)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.result (/.super expected) dummy)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.types_do_not_match error))))))
)))
@@ -81,13 +81,13 @@
[(_.cover [<parser> <exception>]
(and (|> (/.result (<parser> ($_ //.and /.any /.any /.any))
(<good_constructor> (list expected_left expected_middle expected_right)))
- (!expect (^multi (#try.Success [actual_left actual_middle actual_right])
+ (!expect (^multi {#try.Success [actual_left actual_middle actual_right]}
(and (type\= expected_left actual_left)
(type\= expected_middle actual_middle)
(type\= expected_right actual_right)))))
(|> (/.result (<parser> ($_ //.and /.any /.any /.any))
(<bad_constructor> (list expected_left expected_middle expected_right)))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? <exception> error))))))]
[/.variant /.not_variant type.variant type.tuple]
@@ -97,24 +97,24 @@
(_.cover [/.function /.not_function]
(and (|> (/.result (/.function ($_ //.and /.any /.any) /.any)
(type.function (list expected_left expected_middle) expected_right))
- (!expect (^multi (#try.Success [[actual_left actual_middle] actual_right])
+ (!expect (^multi {#try.Success [[actual_left actual_middle] actual_right]}
(and (type\= expected_left actual_left)
(type\= expected_middle actual_middle)
(type\= expected_right actual_right)))))
(|> (/.result (/.function ($_ //.and /.any /.any) /.any)
(type.variant (list expected_left expected_middle expected_right)))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.not_function error))))))
(_.cover [/.applied /.not_application]
(and (|> (/.result (/.applied ($_ //.and /.any /.any /.any))
(type.application (list expected_middle expected_right) expected_left))
- (!expect (^multi (#try.Success [actual_left actual_middle actual_right])
+ (!expect (^multi {#try.Success [actual_left actual_middle actual_right]}
(and (type\= expected_left actual_left)
(type\= expected_middle actual_middle)
(type\= expected_right actual_right)))))
(|> (/.result (/.applied ($_ //.and /.any /.any /.any))
(type.variant (list expected_left expected_middle expected_right)))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.not_application error))))))
))))
@@ -128,38 +128,38 @@
($_ _.and
(_.cover [/.not_parameter]
(|> (/.result /.parameter not_parameter)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.not_parameter error)))))
(_.cover [/.unknown_parameter]
- (|> (/.result /.parameter (#.Parameter parameter))
- (!expect (^multi (#try.Failure error)
+ (|> (/.result /.parameter {#.Parameter parameter})
+ (!expect (^multi {#try.Failure error}
(exception.match? /.unknown_parameter error)))))
(_.cover [/.with_extension]
(|> (/.result (<| (/.with_extension quantification)
(/.with_extension argument)
/.any)
not_parameter)
- (!expect (^multi (#try.Success [quantification\\binding argument\\binding actual])
+ (!expect (^multi {#try.Success [quantification\\binding argument\\binding actual]}
(same? not_parameter actual)))))
(_.cover [/.parameter]
(|> (/.result (<| (/.with_extension quantification)
(/.with_extension argument)
/.parameter)
- (#.Parameter 0))
- (!expect (#try.Success [quantification\\binding argument\\binding _]))))
+ {#.Parameter 0})
+ (!expect {#try.Success [quantification\\binding argument\\binding _]})))
(_.cover [/.wrong_parameter]
(|> (/.result (<| (/.with_extension quantification)
(/.with_extension argument)
(/.parameter! 1))
- (#.Parameter 0))
- (!expect (^multi (#try.Failure error)
+ {#.Parameter 0})
+ (!expect (^multi {#try.Failure error}
(exception.match? /.wrong_parameter error)))))
(_.cover [/.parameter!]
(|> (/.result (<| (/.with_extension quantification)
(/.with_extension argument)
(/.parameter! 0))
- (#.Parameter 0))
- (!expect (#try.Success [quantification\\binding argument\\binding _]))))
+ {#.Parameter 0})
+ (!expect {#try.Success [quantification\\binding argument\\binding _]})))
)))
(def: polymorphic
@@ -171,16 +171,16 @@
(_.cover [/.not_polymorphic]
(and (|> (/.result (/.polymorphic /.any)
not_polymorphic)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.not_polymorphic error))))
(|> (/.result (/.polymorphic /.any)
(type.univ_q 0 not_polymorphic))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.not_polymorphic error))))))
(_.cover [/.polymorphic]
(|> (/.result (/.polymorphic /.any)
(type.univ_q expected_inputs not_polymorphic))
- (!expect (^multi (#try.Success [g!poly actual_inputs bodyT])
+ (!expect (^multi {#try.Success [g!poly actual_inputs bodyT]}
(and (n.= expected_inputs (list.size actual_inputs))
(same? not_polymorphic bodyT))))))
)))
@@ -194,7 +194,7 @@
[expected ..primitive]
(_.cover [/.result /.any]
(|> (/.result /.any expected)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(type\= expected actual))))))
(do [! random.monad]
[expected ..primitive]
@@ -204,10 +204,10 @@
_ /.any]
(in actual))
expected)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(type\= expected actual))))
(|> (/.result /.next expected)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.unconsumed_input error)))))))
(do [! random.monad]
[expected ..primitive]
@@ -217,7 +217,7 @@
[_ /.any]
<parser>)
expected)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.empty_input error))))]
[/.any]
@@ -231,7 +231,7 @@
_ /.any]
(in env))
expected)
- (!expect (^multi (#try.Success environment)
+ (!expect (^multi {#try.Success environment}
(same? /.fresh environment))))))
(do [! random.monad]
[expected ..primitive
@@ -243,14 +243,14 @@
(/.local (list expected)
/.any))
dummy)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(type\= expected actual))))))
(do [! random.monad]
[expected random.nat]
(_.cover [/.existential /.not_existential]
(|> (/.result /.existential
- (#.Ex expected))
- (!expect (^multi (#try.Success actual)
+ {#.Ex expected})
+ (!expect (^multi {#try.Success actual}
(n.= expected actual))))))
(do [! random.monad]
[expected_name (random.and (random.ascii/alpha_num 1)
@@ -258,8 +258,8 @@
expected_type ..primitive]
(_.cover [/.named /.not_named]
(|> (/.result /.named
- (#.Named expected_name expected_type))
- (!expect (^multi (#try.Success [actual_name actual_type])
+ {#.Named expected_name expected_type})
+ (!expect (^multi {#try.Success [actual_name actual_type]}
(and (name\= expected_name actual_name)
(type\= expected_type actual_type)))))))
..aggregate
diff --git a/stdlib/source/test/lux/control/parser/xml.lux b/stdlib/source/test/lux/control/parser/xml.lux
index b61b993a2..15c1fdd88 100644
--- a/stdlib/source/test/lux/control/parser/xml.lux
+++ b/stdlib/source/test/lux/control/parser/xml.lux
@@ -41,7 +41,7 @@
(_.cover [<exception>]
(`` (and (~~ (template [<parser> <input>]
[(|> (/.result <parser> (list <input>))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? <exception> error))))]
<<cases>>)))))))])
@@ -62,12 +62,12 @@
(do [! random.monad]
[expected (random.ascii/alpha 1)]
(_.cover [/.result /.text]
- (|> (/.result /.text (list (#xml.Text expected)))
- (!expect (^multi (#try.Success actual)
+ (|> (/.result /.text (list {#xml.Text expected}))
+ (!expect (^multi {#try.Success actual}
(text\= expected actual))))))
(!failure /.unconsumed_inputs
[[(//\in expected)
- (#xml.Text expected)]])
+ {#xml.Text expected}]])
(do [! random.monad]
[expected (\ ! each (|>> #xml.Text) (random.ascii/alpha 1))]
(_.cover [/.any]
@@ -81,17 +81,17 @@
[actual /.tag
_ /.any]
(in (name\= expected actual)))
- (list (#xml.Node expected (dictionary.empty name.hash) (list))))
- (!expect (#try.Success #1)))))
+ (list {#xml.Node expected (dictionary.empty name.hash) (list)}))
+ (!expect {#try.Success #1}))))
(do [! random.monad]
[expected ..random_tag]
(_.cover [/.node]
(|> (/.result (/.node expected (//\in []))
- (list (#xml.Node expected (dictionary.empty name.hash) (list))))
- (!expect (#try.Success [])))))
+ (list {#xml.Node expected (dictionary.empty name.hash) (list)}))
+ (!expect {#try.Success []}))))
(!failure /.wrong_tag
[[(/.node ["" expected] (//\in []))
- (#xml.Node [expected ""] (dictionary.empty name.hash) (list))]])
+ {#xml.Node [expected ""] (dictionary.empty name.hash) (list)}]])
(do [! random.monad]
[expected_tag ..random_tag
expected_attribute ..random_attribute
@@ -100,54 +100,54 @@
(|> (/.result (<| (/.node expected_tag)
(//.after (/.attribute expected_attribute))
(//\in []))
- (list (#xml.Node expected_tag
- (|> (dictionary.empty name.hash)
- (dictionary.has expected_attribute expected_value))
- (list))))
- (!expect (#try.Success [])))))
+ (list {#xml.Node expected_tag
+ (|> (dictionary.empty name.hash)
+ (dictionary.has expected_attribute expected_value))
+ (list)}))
+ (!expect {#try.Success []}))))
(!failure /.unknown_attribute
[[(/.attribute ["" expected])
- (#xml.Node [expected expected]
- (|> (dictionary.empty name.hash)
- (dictionary.has [expected ""] expected))
- (list))]])
+ {#xml.Node [expected expected]
+ (|> (dictionary.empty name.hash)
+ (dictionary.has [expected ""] expected))
+ (list)}]])
(!failure /.empty_input
[[(do //.monad
[_ /.any]
/.any)
- (#xml.Text expected)]
+ {#xml.Text expected}]
[(do //.monad
[_ /.any]
/.text)
- (#xml.Text expected)]
+ {#xml.Text expected}]
[(do //.monad
[_ /.any]
(/.node [expected expected]
(//\in [])))
- (#xml.Node [expected expected]
- (dictionary.empty name.hash)
- (list))]
+ {#xml.Node [expected expected]
+ (dictionary.empty name.hash)
+ (list)}]
[(do //.monad
[_ /.any]
(/.node [expected expected]
(/.attribute [expected expected])))
- (#xml.Node [expected expected]
- (|> (dictionary.empty name.hash)
- (dictionary.has [expected expected] expected))
- (list))]])
+ {#xml.Node [expected expected]
+ (|> (dictionary.empty name.hash)
+ (dictionary.has [expected expected] expected))
+ (list)}]])
(!failure /.unexpected_input
[[/.text
- (#xml.Node [expected expected] (dictionary.empty name.hash) (list))]
+ {#xml.Node [expected expected] (dictionary.empty name.hash) (list)}]
[(/.node [expected expected]
(//\in []))
- (#xml.Text expected)]
+ {#xml.Text expected}]
[(/.node [expected expected]
(/.attribute [expected expected]))
- (#xml.Text expected)]])
+ {#xml.Text expected}]])
(do [! random.monad]
[.let [node (: (-> xml.Tag (List xml.XML) xml.XML)
(function (_ tag children)
- (#xml.Node tag (dictionary.empty name.hash) children)))]
+ {#xml.Node tag (dictionary.empty name.hash) children}))]
parent ..random_tag
right ..random_tag
wrong (random.only (|>> (name\= right) not)
@@ -167,12 +167,12 @@
(list.together (list (list.repeated repetitions (node wrong (list)))
(list (node right (list)))
(list.repeated repetitions (node wrong (list))))))))
- (!expect (#try.Success []))))
+ (!expect {#try.Success []})))
(_.cover [/.nowhere]
(|> (/.result parser
(list (node parent
(list.repeated repetitions (node wrong (list))))))
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(exception.match? /.nowhere error)))))
))
)))
diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux
index 6b4f5b55c..da88cb31e 100644
--- a/stdlib/source/test/lux/control/region.lux
+++ b/stdlib/source/test/lux/control/region.lux
@@ -33,19 +33,19 @@
(def: (success? result)
(All (_ a) (-> (Try a) Bit))
(case result
- (#try.Success _)
+ {#try.Success _}
true
- (#try.Failure _)
+ {#try.Failure _}
false))
(def: (throws? exception result)
(All (_ e a) (-> (Exception e) (Try a) Bit))
(case result
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? exception error)))
(def: (injection value)
@@ -53,7 +53,7 @@
(function (_ [region scope])
(function (_ !)
[scope
- (#try.Success value)])))
+ {#try.Success value}])))
(def: comparison
(Comparison (All (_ a) (All (_ ! r) (Region r (Thread !) a))))
@@ -70,7 +70,7 @@
(Try a)
(thread.result (:expected (/.run! thread.monad right))))]
- [(#try.Success left) (#try.Success right)]
+ [{#try.Success left} {#try.Success right}]
(== left right)
_
@@ -104,7 +104,7 @@
count_clean_up (function (_ value)
(do !
[_ (thread.update! ++ clean_up_counter)]
- (in (#try.Success []))))]
+ (in {#try.Success []})))]
outcome (/.run! !
(do [! (/.monad !)]
[_ (monad.each ! (/.acquire! //@ count_clean_up)
@@ -122,7 +122,7 @@
count_clean_up (function (_ value)
(do !
[_ (thread.update! ++ clean_up_counter)]
- (in (#try.Success []))))]
+ (in {#try.Success []})))]
outcome (/.run! !
(do [! (/.monad !)]
[_ (monad.each ! (/.acquire! //@ count_clean_up)
@@ -141,7 +141,7 @@
count_clean_up (function (_ value)
(do !
[_ (thread.update! ++ clean_up_counter)]
- (in (#try.Success []))))]
+ (in {#try.Success []})))]
outcome (/.run! !
(do [! (/.monad !)]
[_ (monad.each ! (/.acquire! //@ count_clean_up)
diff --git a/stdlib/source/test/lux/control/remember.lux b/stdlib/source/test/lux/control/remember.lux
index 680238ff9..3b210813d 100644
--- a/stdlib/source/test/lux/control/remember.lux
+++ b/stdlib/source/test/lux/control/remember.lux
@@ -39,17 +39,17 @@
(~ (code.text message))
(~+ (case focus
#.None (list)
- (#.Some focus) (list focus))))))
+ {#.Some focus} (list focus))))))
(def: (attempt computation)
(All (_ a) (-> (Meta a) (Meta (Try a))))
(function (_ compiler)
(case (computation compiler)
- (#try.Success [compiler output])
- (#try.Success [compiler (#try.Success output)])
+ {#try.Success [compiler output]}
+ {#try.Success [compiler {#try.Success output}]}
- (#try.Failure error)
- (#try.Success [compiler (#try.Failure error)]))))
+ {#try.Failure error}
+ {#try.Success [compiler {#try.Failure error}]})))
(def: (test_failure deadline message focus failure)
(-> Date Text (Maybe Code) Text Bit)
@@ -59,7 +59,7 @@
#.None
true
- (#.Some focus)
+ {#.Some focus}
(text.contains? (%.code focus) failure))))
(syntax: (test_macro [macro <code>.identifier
@@ -74,31 +74,31 @@
expected (product.right (random.result prng ..focus))]
(do meta.monad
[should_fail0 (..attempt (macro.expansion (..memory macro yesterday message #.None)))
- should_fail1 (..attempt (macro.expansion (..memory macro yesterday message (#.Some expected))))
+ should_fail1 (..attempt (macro.expansion (..memory macro yesterday message {#.Some expected})))
should_succeed0 (..attempt (macro.expansion (..memory macro tomorrow message #.None)))
- should_succeed1 (..attempt (macro.expansion (..memory macro tomorrow message (#.Some expected))))]
+ should_succeed1 (..attempt (macro.expansion (..memory macro tomorrow message {#.Some expected})))]
(in (list (code.bit (and (case should_fail0
- (#try.Failure error)
+ {#try.Failure error}
(and (test_failure yesterday message #.None error)
(text.contains? extra error))
_
false)
(case should_fail1
- (#try.Failure error)
- (and (test_failure yesterday message (#.Some expected) error)
+ {#try.Failure error}
+ (and (test_failure yesterday message {#.Some expected} error)
(text.contains? extra error))
_
false)
(case should_succeed0
- (^ (#try.Success (list)))
+ (^ {#try.Success (list)})
true
_
false)
(case should_succeed1
- (^ (#try.Success (list actual)))
+ (^ {#try.Success (list actual)})
(same? expected actual)
_
@@ -116,8 +116,8 @@
(_.cover [/.must_remember]
(and (test_failure deadline message #.None
(exception.error /.must_remember [deadline deadline message #.None]))
- (test_failure deadline message (#.Some focus)
- (exception.error /.must_remember [deadline deadline message (#.Some focus)]))))
+ (test_failure deadline message {#.Some focus}
+ (exception.error /.must_remember [deadline deadline message {#.Some focus}]))))
(_.cover [/.remember]
(..test_macro /.remember ""))
(_.cover [/.to_do]
diff --git a/stdlib/source/test/lux/control/try.lux b/stdlib/source/test/lux/control/try.lux
index 80b68423f..3e38574b2 100644
--- a/stdlib/source/test/lux/control/try.lux
+++ b/stdlib/source/test/lux/control/try.lux
@@ -57,28 +57,28 @@
(_.cover [/.trusted]
(n.= expected
- (/.trusted (#/.Success expected))))
+ (/.trusted {#/.Success expected})))
(_.cover [/.of_maybe]
- (case [(/.of_maybe (#.Some expected))
+ (case [(/.of_maybe {#.Some expected})
(/.of_maybe #.None)]
- [(#/.Success actual) (#/.Failure _)]
+ [{#/.Success actual} {#/.Failure _}]
(n.= expected actual)
_
false))
(_.cover [/.maybe]
- (case [(/.maybe (#/.Success expected))
- (/.maybe (: (/.Try Nat) (#/.Failure error)))]
- [(#.Some actual) #.None]
+ (case [(/.maybe {#/.Success expected})
+ (/.maybe (: (/.Try Nat) {#/.Failure error}))]
+ [{#.Some actual} #.None]
(n.= expected actual)
_
false))
(_.cover [/.else]
(and (n.= expected
- (/.else alternative (#/.Success expected)))
+ (/.else alternative {#/.Success expected}))
(n.= alternative
- (/.else alternative (: (Try Nat) (#/.Failure error))))))
+ (/.else alternative (: (Try Nat) {#/.Failure error})))))
(_.cover [/.with /.lifted]
(let [lifted (/.lifted io.monad)]
(|> (do (/.with io.monad)
@@ -86,7 +86,7 @@
b (in alternative)]
(in (n.+ a b)))
io.run!
- (case> (#/.Success result)
+ (case> {#/.Success result}
(n.= (n.+ expected alternative)
result)
diff --git a/stdlib/source/test/lux/data/binary.lux b/stdlib/source/test/lux/data/binary.lux
index 1fb97272c..d301efd1c 100644
--- a/stdlib/source/test/lux/data/binary.lux
+++ b/stdlib/source/test/lux/data/binary.lux
@@ -25,10 +25,10 @@
(def: (succeed result)
(-> (Try Bit) Bit)
(case result
- (#try.Failure _)
+ {#try.Failure _}
false
- (#try.Success output)
+ {#try.Success output}
output))
(def: .public (random size)
@@ -45,10 +45,10 @@
(def: (throws? exception try)
(All (_ e a) (-> (Exception e) (Try a) Bit))
(case try
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? exception error)
- (#try.Success _)
+ {#try.Success _}
false))
(def: (binary_io power read write value)
@@ -72,7 +72,7 @@
(def: as_list
(-> /.Binary (List Nat))
(/.aggregate (function (_ head tail)
- (#.Item head tail))
+ {#.Item head tail})
(list)))
(def: .public test
@@ -123,7 +123,7 @@
(and (n.= length (/.size random_slice))
(case [(monad.each try.monad (|>> (n.+ offset) (reader sample)) idxs)
(monad.each try.monad (reader random_slice) idxs)]
- [(#try.Success binary_vals) (#try.Success slice_vals)]
+ [{#try.Success binary_vals} {#try.Success slice_vals}]
(\ (list.equivalence n.equivalence) = binary_vals slice_vals)
_
@@ -141,16 +141,16 @@
#.End
false
- (#.Item head tail)
+ {#.Item head tail}
(n.= (list.mix n.+ 0 tail)
(/.aggregate n.+ 0 (/.after 1 sample))))))
(_.cover [/.copy]
(and (case (/.copy size 0 sample 0 (/.empty size))
- (#try.Success output)
+ {#try.Success output}
(and (not (same? sample output))
(\ /.equivalence = sample output))
- (#try.Failure _)
+ {#try.Failure _}
false)
(succeed
(do try.monad
diff --git a/stdlib/source/test/lux/data/collection/array.lux b/stdlib/source/test/lux/data/collection/array.lux
index 46783bc56..243d77203 100644
--- a/stdlib/source/test/lux/data/collection/array.lux
+++ b/stdlib/source/test/lux/data/collection/array.lux
@@ -65,9 +65,9 @@
(/.example+ (function (_ idx member)
(n.even? member))
the_array)]
- [(#.Some expected) (#.Some [idx actual])]
+ [{#.Some expected} {#.Some [idx actual]}]
(case (/.read! idx the_array)
- (#.Some again)
+ {#.Some again}
(and (n.= expected actual)
(n.= actual again))
@@ -109,7 +109,7 @@
(/.empty size)))))
(_.cover [/.type_name]
(case /.Array
- (^ (#.Named _ (#.UnivQ _ (#.Primitive nominal_type (list (#.Parameter 1))))))
+ (^ {#.Named _ {#.UnivQ _ {#.Primitive nominal_type (list {#.Parameter 1})}}})
(same? /.type_name nominal_type)
_
@@ -120,7 +120,7 @@
(/.write! 0 expected))]
(case [(/.read! 0 the_array)
(/.read! 1 the_array)]
- [(#.Some actual) #.None]
+ [{#.Some actual} #.None]
(n.= expected actual)
_
@@ -131,7 +131,7 @@
(/.write! 0 expected))]
(case [(/.read! 0 the_array)
(/.read! 0 (/.delete! 0 the_array))]
- [(#.Some actual) #.None]
+ [{#.Some actual} #.None]
(n.= expected actual)
_
@@ -149,7 +149,7 @@
(/.write! 0 base)
(/.update! 0 (n.+ shift)))]
(case (/.read! 0 the_array)
- (#.Some actual)
+ {#.Some actual}
(n.= expected actual)
_
@@ -162,7 +162,7 @@
(/.upsert! 1 base (n.+ shift)))]
(case [(/.read! 0 the_array)
(/.read! 1 the_array)]
- [(#.Some actual/0) (#.Some actual/1)]
+ [{#.Some actual/0} {#.Some actual/1}]
(and (n.= expected actual/0)
(n.= expected actual/1))
@@ -199,7 +199,7 @@
(list.every? (function (_ value)
(or (n.even? value)
(same? default value)))
- (/.list (#.Some default) the_array))))))
+ (/.list {#.Some default} the_array))))))
(do !
[amount (\ ! each (n.% (++ size)) random.nat)]
(_.cover [/.copy!]
diff --git a/stdlib/source/test/lux/data/collection/dictionary.lux b/stdlib/source/test/lux/data/collection/dictionary.lux
index 788f6c3eb..2f8a58bfc 100644
--- a/stdlib/source/test/lux/data/collection/dictionary.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary.lux
@@ -147,39 +147,39 @@
(_.cover [/.value]
(and (list.every? (function (_ key) (case (/.value key dict)
- (#.Some _) true
+ {#.Some _} true
_ false))
(/.keys dict))
(case (/.value non_key dict)
- (#.Some _) false
+ {#.Some _} false
_ true)))
(_.cover [/.has]
(and (n.= (++ (/.size dict))
(/.size (/.has non_key test_val dict)))
(case (/.value non_key (/.has non_key test_val dict))
- (#.Some v) (n.= test_val v)
+ {#.Some v} (n.= test_val v)
_ true)))
(_.cover [/.has' /.key_already_exists]
(let [can_put_new_keys!
(case (/.has' non_key test_val dict)
- (#try.Success dict)
+ {#try.Success dict}
(case (/.value non_key dict)
- (#.Some v) (n.= test_val v)
+ {#.Some v} (n.= test_val v)
_ true)
- (#try.Failure _)
+ {#try.Failure _}
false)
cannot_put_old_keys!
(or (n.= 0 size)
(let [first_key (|> dict /.keys list.head maybe.trusted)]
(case (/.has' first_key test_val dict)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.key_already_exists error))))]
(and can_put_new_keys!
cannot_put_old_keys!)))
@@ -192,7 +192,7 @@
#.None
true
- (#.Some known_key)
+ {#.Some known_key}
(n.= (-- (/.size dict))
(/.size (/.lacks known_key dict))))))
@@ -200,7 +200,7 @@
(let [base (/.has non_key test_val dict)
updt (/.revised non_key ++ base)]
(case [(/.value non_key base) (/.value non_key updt)]
- [(#.Some x) (#.Some y)]
+ [{#.Some x} {#.Some y}]
(n.= (++ x) y)
_
@@ -209,7 +209,7 @@
(_.cover [/.revised']
(let [can_upsert_new_key!
(case (/.value non_key (/.revised' non_key test_val ++ dict))
- (#.Some inserted)
+ {#.Some inserted}
(n.= (++ test_val) inserted)
#.None
@@ -220,9 +220,9 @@
#.None
true
- (#.Some [known_key known_value])
+ {#.Some [known_key known_value]}
(case (/.value known_key (/.revised' known_key test_val ++ dict))
- (#.Some updated)
+ {#.Some updated}
(n.= (++ known_value) updated)
#.None
diff --git a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
index 65bb6226d..94dd0e61d 100644
--- a/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
+++ b/stdlib/source/test/lux/data/collection/dictionary/ordered.lux
@@ -78,7 +78,7 @@
[#.None #.None]
#1
- [(#.Some reference) (#.Some sample)]
+ [{#.Some reference} {#.Some sample}]
(n.= reference sample)
_
@@ -88,7 +88,7 @@
[#.None #.None]
#1
- [(#.Some reference) (#.Some sample)]
+ [{#.Some reference} {#.Some sample}]
(n.= reference sample)
_
@@ -117,7 +117,7 @@
(let [sample+ (/.has extra_key extra_value sample)]
(case [(/.value extra_key sample)
(/.value extra_key sample+)]
- [#.None (#.Some actual)]
+ [#.None {#.Some actual}]
(n.= extra_value actual)
_
diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux
index e4776e1ab..b2411ce74 100644
--- a/stdlib/source/test/lux/data/collection/list.lux
+++ b/stdlib/source/test/lux/data/collection/list.lux
@@ -168,7 +168,7 @@
(_.cover [/.item]
(/.every? (function (_ [index expected])
(case (/.item index sample)
- (#.Some actual)
+ {#.Some actual}
(n.= expected actual)
#.None
@@ -238,7 +238,7 @@
[($_ _.and
(_.cover [<head>]
(case [(<pre> sample) (<head> sample)]
- [(#.Item expected _) (#.Some actual)]
+ [{#.Item expected _} {#.Some actual}]
(n.= expected actual)
[#.End #.None]
@@ -248,7 +248,7 @@
false))
(_.cover [<tail>]
(case [(<pre> sample) (<tail> sample)]
- [(#.Item _ expected) (#.Some actual)]
+ [{#.Item _ expected} {#.Some actual}]
(/\= (<pre> expected) actual)
[#.End #.None]
@@ -355,7 +355,7 @@
choose (: (-> Nat (Maybe Text))
(function (_ value)
(if (n.even? value)
- (#.Some (\ n.decimal encoded value))
+ {#.Some (\ n.decimal encoded value)}
#.None)))]
(do [! random.monad]
[sample ..random]
@@ -366,7 +366,7 @@
(/\each (\ n.decimal encoded))
/.head)
(/.one choose sample)]
- [(#.Some expected) (#.Some actual)]
+ [{#.Some expected} {#.Some actual}]
(text\= expected actual)
[#.None #.None]
@@ -382,7 +382,7 @@
(/.all choose sample)))
(_.cover [/.example]
(case (/.example n.even? sample)
- (#.Some found)
+ {#.Some found}
(n.even? found)
#.None
@@ -419,7 +419,7 @@
(/\= (/.indices size)
(/.iterations (function (_ index)
(if (n.< size index)
- (#.Some (++ index))
+ {#.Some (++ index)}
#.None))
0)))))
(_.cover [/.mixes]
diff --git a/stdlib/source/test/lux/data/collection/queue.lux b/stdlib/source/test/lux/data/collection/queue.lux
index 117617468..795806329 100644
--- a/stdlib/source/test/lux/data/collection/queue.lux
+++ b/stdlib/source/test/lux/data/collection/queue.lux
@@ -60,7 +60,7 @@
all_empty_queues_look_the_same!)))
(_.cover [/.front]
(case [members (/.front sample)]
- [(#.Item head tail) (#.Some first)]
+ [{#.Item head tail} {#.Some first}]
(n.= head first)
[#.End #.None]
@@ -95,7 +95,7 @@
has_expected_order!)))
(_.cover [/.next]
(case members
- (#.Item target expected)
+ {#.Item target expected}
(let [popped (/.next sample)
size_decreases!
diff --git a/stdlib/source/test/lux/data/collection/queue/priority.lux b/stdlib/source/test/lux/data/collection/queue/priority.lux
index 0ce7111f6..6ec5cb958 100644
--- a/stdlib/source/test/lux/data/collection/queue/priority.lux
+++ b/stdlib/source/test/lux/data/collection/queue/priority.lux
@@ -49,14 +49,14 @@
(/.empty? /.empty))
(_.cover [/.front]
(case (/.front sample)
- (#.Some first)
+ {#.Some first}
(n.> 0 (/.size sample))
#.None
(/.empty? sample)))
(_.cover [/.member?]
(case (/.front sample)
- (#.Some first)
+ {#.Some first}
(/.member? n.equivalence sample first)
#.None
diff --git a/stdlib/source/test/lux/data/collection/row.lux b/stdlib/source/test/lux/data/collection/row.lux
index fa4f7271f..684619006 100644
--- a/stdlib/source/test/lux/data/collection/row.lux
+++ b/stdlib/source/test/lux/data/collection/row.lux
@@ -93,10 +93,10 @@
($_ _.and
(_.cover [/.item]
(case (/.item good_index sample)
- (#try.Success member)
+ {#try.Success member}
(/.member? n.equivalence sample member)
- (#try.Failure error)
+ {#try.Failure error}
false))
(_.cover [/.has]
(<| (try.else false)
@@ -118,10 +118,10 @@
(let [fails! (: (All (_ a) (-> (Try a) Bit))
(function (_ situation)
(case situation
- (#try.Success member)
+ {#try.Success member}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.index_out_of_bounds error))))]
(and (fails! (/.item bad_index sample))
(fails! (/.has bad_index non_member sample))
diff --git a/stdlib/source/test/lux/data/collection/set/ordered.lux b/stdlib/source/test/lux/data/collection/set/ordered.lux
index b89bad1bb..89ad780c7 100644
--- a/stdlib/source/test/lux/data/collection/set/ordered.lux
+++ b/stdlib/source/test/lux/data/collection/set/ordered.lux
@@ -74,7 +74,7 @@
(~~ (template [<coverage> <comparison>]
[(_.cover [<coverage>]
(case (<coverage> setL)
- (#.Some value)
+ {#.Some value}
(|> setL /.list (list.every? (<comparison> value)))
#.None
diff --git a/stdlib/source/test/lux/data/collection/stack.lux b/stdlib/source/test/lux/data/collection/stack.lux
index eb05c1e67..928dc475a 100644
--- a/stdlib/source/test/lux/data/collection/stack.lux
+++ b/stdlib/source/test/lux/data/collection/stack.lux
@@ -48,20 +48,20 @@
#.None
(/.empty? sample)
- (#.Some _)
+ {#.Some _}
(not (/.empty? sample))))
(_.cover [/.next]
(case (/.next sample)
#.None
(/.empty? sample)
- (#.Some [top remaining])
+ {#.Some [top remaining]}
(\ (/.equivalence n.equivalence) =
sample
(/.top top remaining))))
(_.cover [/.top]
(case (/.next (/.top expected_top sample))
- (#.Some [actual_top actual_sample])
+ {#.Some [actual_top actual_sample]}
(and (same? expected_top actual_top)
(same? sample actual_sample))
diff --git a/stdlib/source/test/lux/data/collection/tree/finger.lux b/stdlib/source/test/lux/data/collection/tree/finger.lux
index a929dbaa5..c067ba36c 100644
--- a/stdlib/source/test/lux/data/collection/tree/finger.lux
+++ b/stdlib/source/test/lux/data/collection/tree/finger.lux
@@ -51,21 +51,21 @@
(\ ..builder leaf tag_right expected_right))))))
(_.cover [/.root]
(and (case (/.root (\ ..builder leaf tag_left expected_left))
- (#.Left actual)
+ {#.Left actual}
(n.= expected_left actual)
- (#.Right _)
+ {#.Right _}
false)
(case (/.root (\ ..builder branch
(\ ..builder leaf tag_left expected_left)
(\ ..builder leaf tag_right expected_right)))
- (#.Left _)
+ {#.Left _}
false
- (#.Right [left right])
+ {#.Right [left right]}
(case [(/.root left)
(/.root right)]
- [(#.Left actual_left) (#.Left actual_right)]
+ [{#.Left actual_left} {#.Left actual_right}]
(and (n.= expected_left actual_left)
(n.= expected_right actual_right))
diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux
index 82faaba7f..1e5015f46 100644
--- a/stdlib/source/test/lux/data/format/json.lux
+++ b/stdlib/source/test/lux/data/format/json.lux
@@ -96,12 +96,12 @@
($_ _.and
(_.cover [/.object /.fields]
(case (/.fields object)
- (#try.Success actual)
+ {#try.Success actual}
(\ (list.equivalence text.equivalence) =
(list\each product.left expected)
actual)
- (#try.Failure error)
+ {#try.Failure error}
false))
(_.cover [/.field]
(list.every? (function (_ [key expected])
@@ -118,19 +118,19 @@
(_.cover [/.has]
(<| (try.else false)
(do try.monad
- [object (/.has key (#/.Number expected) (/.object (list)))
+ [object (/.has key {#/.Number expected} (/.object (list)))
.let [can_find_known_key!
(|> object
(/.field key)
- (try\each (\= (#/.Number expected)))
+ (try\each (\= {#/.Number expected}))
(try.else false))
cannot_find_unknown_key!
(case (/.field unknown object)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
true)]]
(in (and can_find_known_key!
cannot_find_unknown_key!))))))
@@ -139,7 +139,7 @@
[key (random.ascii/alpha 1)
value <random>]
(_.cover [<type> <field>]
- (|> (/.object (list [key (<tag> value)]))
+ (|> (/.object (list [key {<tag> value}]))
(<field> key)
(try\each (\ <equivalence> = value))
(try.else false))))]
@@ -154,9 +154,9 @@
<number> (number)
<string> (string)
<array_row> (row.row #/.Null
- (#/.Boolean <boolean>)
- (#/.Number <number>)
- (#/.String <string>))
+ {#/.Boolean <boolean>}
+ {#/.Number <number>}
+ {#/.String <string>})
<key0> (string)
<key1> (string)
<key2> (string)
@@ -167,13 +167,13 @@
(_.cover [/.json]
(and (\= #/.Null (/.json #null))
(~~ (template [<tag> <value>]
- [(\= (<tag> <value>) (/.json <value>))]
+ [(\= {<tag> <value>} (/.json <value>))]
[#/.Boolean <boolean>]
[#/.Number <number>]
[#/.String <string>]
))
- (\= (#/.Array <array_row>) (/.json [#null <boolean> <number> <string>]))
+ (\= {#/.Array <array_row>} (/.json [#null <boolean> <number> <string>]))
(let [object (/.json {<key0> #null
<key1> <boolean>
<key2> <number>
@@ -190,10 +190,10 @@
value5 (/.field <key5> object)
value6 (/.field <key6> value5)]
(in (and (\= #/.Null value0)
- (\= (#/.Boolean <boolean>) value1)
- (\= (#/.Number <number>) value2)
- (\= (#/.String <string>) value3)
- (\= (#/.Array <array_row>) value4)
- (\= (#/.Number <number>) value6))))))
+ (\= {#/.Boolean <boolean>} value1)
+ (\= {#/.Number <number>} value2)
+ (\= {#/.String <string>} value3)
+ (\= {#/.Array <array_row>} value4)
+ (\= {#/.Number <number>} value6))))))
)))
))))
diff --git a/stdlib/source/test/lux/data/format/tar.lux b/stdlib/source/test/lux/data/format/tar.lux
index d595955b1..835ce822e 100644
--- a/stdlib/source/test/lux/data/format/tar.lux
+++ b/stdlib/source/test/lux/data/format/tar.lux
@@ -47,27 +47,27 @@
(`` ($_ _.and
(_.cover [/.path /.from_path]
(case (/.path expected)
- (#try.Success actual)
+ {#try.Success actual}
(text\= expected
(/.from_path actual))
- (#try.Failure error)
+ {#try.Failure error}
false))
(_.cover [/.no_path]
(text\= "" (/.from_path /.no_path)))
(_.cover [/.path_size /.path_is_too_long]
(case (/.path invalid)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.path_is_too_long error)))
(_.cover [/.not_ascii]
(case (/.path not_ascii)
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_ascii error)))
)))))
@@ -82,25 +82,25 @@
(`` ($_ _.and
(_.cover [/.name /.from_name]
(case (/.name expected)
- (#try.Success actual)
+ {#try.Success actual}
(text\= expected
(/.from_name actual))
- (#try.Failure error)
+ {#try.Failure error}
false))
(_.cover [/.name_size /.name_is_too_long]
(case (/.name invalid)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.name_is_too_long error)))
(_.cover [/.not_ascii]
(case (/.name not_ascii)
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_ascii error)))
)))))
@@ -113,18 +113,18 @@
(`` ($_ _.and
(_.cover [/.small /.from_small]
(case (/.small expected)
- (#try.Success actual)
+ {#try.Success actual}
(n.= expected
(/.from_small actual))
- (#try.Failure error)
+ {#try.Failure error}
false))
(_.cover [/.small_limit /.not_a_small_number]
(case (/.small invalid)
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_a_small_number error)))
)))))
@@ -137,18 +137,18 @@
(`` ($_ _.and
(_.cover [/.big /.from_big]
(case (/.big expected)
- (#try.Success actual)
+ {#try.Success actual}
(n.= expected
(/.from_big actual))
- (#try.Failure error)
+ {#try.Failure error}
false))
(_.cover [/.big_limit /.not_a_big_number]
(case (/.big invalid)
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_a_big_number error)))
)))))
@@ -171,11 +171,11 @@
[(_.cover [<type>]
(|> (do try.monad
[expected_path (/.path expected_path)
- tar (|> (row.row (<tag> expected_path))
+ tar (|> (row.row {<tag> expected_path})
(format.result /.writer)
(<b>.result /.parser))]
(in (case (row.list tar)
- (^ (list (<tag> actual_path)))
+ (^ (list {<tag> actual_path}))
(text\= (/.from_path expected_path)
(/.from_path actual_path))
@@ -193,18 +193,18 @@
(|> (do try.monad
[expected_path (/.path expected_path)
expected_content (/.content content)
- tar (|> (row.row (<tag> [expected_path
+ tar (|> (row.row {<tag> [expected_path
expected_moment
/.none
[#/.user [#/.name /.anonymous
#/.id /.no_id]
#/.group [#/.name /.anonymous
#/.id /.no_id]]
- expected_content]))
+ expected_content]})
(format.result /.writer)
(<b>.result /.parser))]
(in (case (row.list tar)
- (^ (list (<tag> [actual_path actual_moment actual_mode actual_ownership actual_content])))
+ (^ (list {<tag> [actual_path actual_moment actual_mode actual_ownership actual_content]}))
(let [seconds (: (-> Instant Int)
(|>> instant.relative (duration.ticks duration.second)))]
(and (text\= (/.from_path expected_path)
@@ -251,18 +251,18 @@
(|> (do try.monad
[path (/.path path)
content (/.content (binary.empty 0))
- tar (|> (row.row (#/.Normal [path
+ tar (|> (row.row {#/.Normal [path
(instant.of_millis +0)
expected_mode
[#/.user [#/.name /.anonymous
#/.id /.no_id]
#/.group [#/.name /.anonymous
#/.id /.no_id]]
- content]))
+ content]})
(format.result /.writer)
(<b>.result /.parser))]
(in (case (row.list tar)
- (^ (list (#/.Normal [_ _ actual_mode _ _])))
+ (^ (list {#/.Normal [_ _ actual_mode _ _]}))
(n.= (/.mode expected_mode)
(/.mode actual_mode))
@@ -274,18 +274,18 @@
(|> (do try.monad
[path (/.path path)
content (/.content (binary.empty 0))
- tar (|> (row.row (#/.Normal [path
+ tar (|> (row.row {#/.Normal [path
(instant.of_millis +0)
<expected_mode>
[#/.user [#/.name /.anonymous
#/.id /.no_id]
#/.group [#/.name /.anonymous
#/.id /.no_id]]
- content]))
+ content]})
(format.result /.writer)
(<b>.result /.parser))]
(in (case (row.list tar)
- (^ (list (#/.Normal [_ _ actual_mode _ _])))
+ (^ (list {#/.Normal [_ _ actual_mode _ _]}))
(n.= (/.mode <expected_mode>)
(/.mode actual_mode))
@@ -324,35 +324,35 @@
($_ _.and
(_.cover [/.name_size /.name_is_too_long]
(case (/.name invalid)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.name_is_too_long error)))
(_.cover [/.not_ascii]
(case (/.name not_ascii)
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_ascii error)))
(_.cover [/.Name /.name /.from_name]
(|> (do try.monad
[path (/.path path)
content (/.content (binary.empty 0))
expected (/.name expected)
- tar (|> (row.row (#/.Normal [path
+ tar (|> (row.row {#/.Normal [path
(instant.of_millis +0)
/.none
[#/.user [#/.name expected
#/.id /.no_id]
#/.group [#/.name /.anonymous
#/.id /.no_id]]
- content]))
+ content]})
(format.result /.writer)
(<b>.result /.parser))]
(in (case (row.list tar)
- (^ (list (#/.Normal [_ _ _ actual_ownership _])))
+ (^ (list {#/.Normal [_ _ _ actual_ownership _]}))
(and (text\= (/.from_name expected)
(/.from_name (value@ [#/.user #/.name] actual_ownership)))
(text\= (/.from_name /.anonymous)
@@ -365,18 +365,18 @@
(|> (do try.monad
[path (/.path path)
content (/.content (binary.empty 0))
- tar (|> (row.row (#/.Normal [path
+ tar (|> (row.row {#/.Normal [path
(instant.of_millis +0)
/.none
[#/.user [#/.name /.anonymous
#/.id /.no_id]
#/.group [#/.name /.anonymous
#/.id /.no_id]]
- content]))
+ content]})
(format.result /.writer)
(<b>.result /.parser))]
(in (case (row.list tar)
- (^ (list (#/.Normal [_ _ _ actual_ownership _])))
+ (^ (list {#/.Normal [_ _ _ actual_ownership _]}))
(and (text\= (/.from_name /.anonymous)
(/.from_name (value@ [#/.user #/.name] actual_ownership)))
(n.= (/.from_small /.no_id)
@@ -407,10 +407,10 @@
(_.cover [/.invalid_end_of_archive]
(let [dump (format.result /.writer row.empty)]
(case (<b>.result /.parser (binary\composite dump dump))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.invalid_end_of_archive error))))
..path
diff --git a/stdlib/source/test/lux/data/sum.lux b/stdlib/source/test/lux/data/sum.lux
index c0fae2333..bc1d9c70c 100644
--- a/stdlib/source/test/lux/data/sum.lux
+++ b/stdlib/source/test/lux/data/sum.lux
@@ -37,19 +37,19 @@
(_.cover [/.hash]
(let [hash (/.hash i.hash n.hash)]
(and (n.= (\ i.hash hash left)
- (\ hash hash (#.Left left)))
+ (\ hash hash {#.Left left}))
(n.= (\ n.hash hash right)
- (\ hash hash (#.Right right)))))))
+ (\ hash hash {#.Right right}))))))
(_.cover [/.left]
(|> (/.left expected)
(: (Or Nat Nat))
- (case> (0 #0 actual) (n.= expected actual)
+ (case> {0 #0 actual} (n.= expected actual)
_ false)))
(_.cover [/.right]
(|> (/.right expected)
(: (Or Nat Nat))
- (case> (0 #1 actual) (n.= expected actual)
+ (case> {0 #1 actual} (n.= expected actual)
_ false)))
(_.cover [/.either]
(and (|> (/.left expected)
@@ -64,11 +64,11 @@
(and (|> (/.left expected)
(: (Or Nat Nat))
(/.then (n.+ shift) (n.- shift))
- (case> (0 #0 actual) (n.= (n.+ shift expected) actual) _ false))
+ (case> {0 #0 actual} (n.= (n.+ shift expected) actual) _ false))
(|> (/.right expected)
(: (Or Nat Nat))
(/.then (n.+ shift) (n.- shift))
- (case> (0 #1 actual) (n.= (n.- shift expected) actual) _ false))))
+ (case> {0 #1 actual} (n.= (n.- shift expected) actual) _ false))))
(do !
[size (\ ! each (n.% 5) random.nat)
expected (random.list size random.nat)]
diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux
index ea5bfce13..305268a0b 100644
--- a/stdlib/source/test/lux/data/text.lux
+++ b/stdlib/source/test/lux/data/text.lux
@@ -152,9 +152,9 @@
expected (\ ! each (n.% size) random.nat)]
(_.cover [/.char]
(case (/.char expected sample)
- (#.Some char)
+ {#.Some char}
(case (/.index (/.of_char char) sample)
- (#.Some actual)
+ {#.Some actual}
(n.= expected actual)
_
@@ -210,7 +210,7 @@
(/.replaced/1 pre post (\ /.monoid composite pre static))))
(_.cover [/.split_by]
(case (/.split_by static ($_ (\ /.monoid composite) pre static post))
- (#.Some [left right])
+ {#.Some [left right]}
(and (\ /.equivalence = pre left)
(\ /.equivalence = post right))
@@ -290,7 +290,7 @@
($_ _.and
(_.cover [/.split_at]
(|> (/.split_at sizeL sample)
- (case> (#.Right [_l _r])
+ (case> {#.Right [_l _r]}
(and (/\= sampleL _l)
(/\= sampleR _r)
(/\= sample (/.together (list _l _r))))
@@ -302,7 +302,7 @@
(/.clip sizeL (n.- sizeL (/.size sample)) sample)
(/.clip_since sizeL sample)
(/.clip_since 0 sample)]
- (case> [(#.Right _l) (#.Right _r) (#.Right _r') (#.Right _f)]
+ (case> [{#.Right _l} {#.Right _r} {#.Right _r'} {#.Right _f}]
(and (/\= sampleL _l)
(/\= sampleR _r)
(/\= _r _r')
diff --git a/stdlib/source/test/lux/data/text/escape.lux b/stdlib/source/test/lux/data/text/escape.lux
index 43242b1cf..6a658d960 100644
--- a/stdlib/source/test/lux/data/text/escape.lux
+++ b/stdlib/source/test/lux/data/text/escape.lux
@@ -105,11 +105,11 @@
(/.escapable? right))
(let [escaped (/.escaped expected)]
(case (/.un_escaped escaped)
- (#try.Success un_escaped)
+ {#try.Success un_escaped}
(and (not (text\= escaped expected))
(text\= un_escaped expected))
- (#try.Failure error)
+ {#try.Failure error}
false))
(text\= expected (/.escaped expected))))))
(do [! random.monad]
@@ -117,10 +117,10 @@
(\ ! each text.of_char))]
(_.cover [/.dangling_escape]
(case (/.un_escaped (format (/.escaped dummy) "\"))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.dangling_escape error))))
(do [! random.monad]
[dummy (|> (random.char unicode.character)
@@ -128,10 +128,10 @@
(\ ! each text.of_char))]
(_.cover [/.invalid_escape]
(case (/.un_escaped (format "\" dummy))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.invalid_escape error))))
(do [! random.monad]
[too_short (|> (random.char unicode.character)
@@ -139,15 +139,15 @@
code (|> (random.unicode 4)
(random.only (function (_ code)
(case (\ n.hex decoded code)
- (#try.Failure error) true
- (#try.Success _) false))))]
+ {#try.Failure error} true
+ {#try.Success _} false))))]
(_.cover [/.invalid_unicode_escape]
(template.let [(!invalid <code>)
[(case (/.un_escaped (format "\u" <code>))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.invalid_unicode_escape error))]]
(and (!invalid (\ n.hex encoded too_short))
(!invalid code)))))
diff --git a/stdlib/source/test/lux/data/text/format.lux b/stdlib/source/test/lux/data/text/format.lux
index 141705e33..ddd4d0afb 100644
--- a/stdlib/source/test/lux/data/text/format.lux
+++ b/stdlib/source/test/lux/data/text/format.lux
@@ -170,7 +170,7 @@
#.None
true
- (#.Some value)
+ {#.Some value}
(text.contains? (/.nat value)
(/.maybe /.nat sample)))))
(do [! random.monad]
diff --git a/stdlib/source/test/lux/data/text/regex.lux b/stdlib/source/test/lux/data/text/regex.lux
index b77909f5a..554a47eff 100644
--- a/stdlib/source/test/lux/data/text/regex.lux
+++ b/stdlib/source/test/lux/data/text/regex.lux
@@ -26,7 +26,7 @@
(-> (Parser Text) Text Bit)
(|> input
(<text>.result regex)
- (case> (#try.Success parsed)
+ (case> {#try.Success parsed}
(text\= parsed input)
_
@@ -36,7 +36,7 @@
(-> Text (Parser Text) Text Bit)
(|> input
(<text>.result regex)
- (case> (#try.Success parsed)
+ (case> {#try.Success parsed}
(text\= test parsed)
_
@@ -46,7 +46,7 @@
(All (_ a) (-> (Parser a) Text Bit))
(|> input
(<text>.result regex)
- (case> (#try.Failure _)
+ (case> {#try.Failure _}
true
_
@@ -58,7 +58,7 @@
(macro.with_identifiers [g!message g!_]
(in (list (` (|> (~ input)
(<text>.result (~ regex))
- (case> (^ (#try.Success (~ pattern)))
+ (case> (^ {#try.Success (~ pattern)})
true
(~ g!_)
@@ -259,27 +259,27 @@
Test
($_ _.and
(_.test "Can specify alternative patterns."
- (and (should_check ["a" (0 #0 [])] (/.regex "a|b") "a")
- (should_check ["b" (0 #1 [])] (/.regex "a|b") "b")
+ (and (should_check ["a" {0 #0 []}] (/.regex "a|b") "a")
+ (should_check ["b" {0 #1 []}] (/.regex "a|b") "b")
(should_fail (/.regex "a|b") "c")))
(_.test "Can have groups within alternations."
- (and (should_check ["abc" (0 #0 ["b" "c"])] (/.regex "a(.)(.)|b(.)(.)") "abc")
- (should_check ["bcd" (0 #1 ["c" "d"])] (/.regex "a(.)(.)|b(.)(.)") "bcd")
+ (and (should_check ["abc" {0 #0 ["b" "c"]}] (/.regex "a(.)(.)|b(.)(.)") "abc")
+ (should_check ["bcd" {0 #1 ["c" "d"]}] (/.regex "a(.)(.)|b(.)(.)") "bcd")
(should_fail (/.regex "a(.)(.)|b(.)(.)") "cde")
- (should_check ["123-456-7890" (0 #0 ["123" "456-7890" "456" "7890"])]
+ (should_check ["123-456-7890" {0 #0 ["123" "456-7890" "456" "7890"]}]
(/.regex "(\d{3})-((\d{3})-(\d{4}))|b(.)d")
"123-456-7890")))
))
(syntax: (expands? [form <code>.any])
(function (_ lux)
- (#try.Success [lux (list (code.bit (case (macro.single_expansion form lux)
- (#try.Success _)
+ {#try.Success [lux (list (code.bit (case (macro.single_expansion form lux)
+ {#try.Success _}
true
- (#try.Failure error)
- false)))])))
+ {#try.Failure error}
+ false)))]}))
(def: .public test
Test
diff --git a/stdlib/source/test/lux/debug.lux b/stdlib/source/test/lux/debug.lux
index fbd5a9b12..80f78b281 100644
--- a/stdlib/source/test/lux/debug.lux
+++ b/stdlib/source/test/lux/debug.lux
@@ -78,14 +78,14 @@
sample_frac random.frac]
(in (`` (and (case (/.representation (type [Bit Int Frac])
[sample_bit sample_int sample_frac])
- (#try.Success actual)
+ {#try.Success actual}
(text\= (format "[" (%.bit sample_bit)
" " (%.int sample_int)
" " (%.frac sample_frac)
"]")
actual)
- (#try.Failure error)
+ {#try.Failure error}
false)
... TODO: Uncomment after switching from the old (tag+last?) to the new (lefts+right?) representation for variants
... (~~ (template [<lefts> <right?> <value> <format>]
@@ -179,16 +179,16 @@
(try\each (text\= (%.maybe %.nat <sample>)))
(try.else false))]
- [(#.Some sample_nat)]
+ [{#.Some sample_nat}]
[#.None]
))
)))
(_.cover [/.cannot_represent_value]
(case (/.representation (-> Nat Nat) (|>>))
- (#try.Success representation)
+ {#try.Success representation}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_represent_value error)))
)))
@@ -219,11 +219,11 @@
(syntax: (macro_error [macro <code>.any])
(function (_ compiler)
(case ((macro.expansion macro) compiler)
- (#try.Failure error)
- (#try.Success [compiler (list (code.text error))])
+ {#try.Failure error}
+ {#try.Success [compiler (list (code.text error))]}
- (#try.Success _)
- (#try.Failure "OOPS!"))))
+ {#try.Success _}
+ {#try.Failure "OOPS!"})))
(type: My_Text
Text)
diff --git a/stdlib/source/test/lux/documentation.lux b/stdlib/source/test/lux/documentation.lux
index 0fd8ffff1..d4979d44e 100644
--- a/stdlib/source/test/lux/documentation.lux
+++ b/stdlib/source/test/lux/documentation.lux
@@ -22,12 +22,12 @@
(syntax: (macro_error [macro <code>.any])
(function (_ compiler)
- (#try.Success [compiler (list (code.bit (case ((macro.expansion macro) compiler)
- (#try.Failure error)
+ {#try.Success [compiler (list (code.bit (case ((macro.expansion macro) compiler)
+ {#try.Failure error}
true
- (#try.Success _)
- false)))])))
+ {#try.Success _}
+ false)))]}))
(syntax: (description [])
(\ meta.monad each
diff --git a/stdlib/source/test/lux/extension.lux b/stdlib/source/test/lux/extension.lux
index 52994d6a1..6076ca6ee 100644
--- a/stdlib/source/test/lux/extension.lux
+++ b/stdlib/source/test/lux/extension.lux
@@ -64,7 +64,7 @@
(let [! phase.monad]
(|> parameters
(monad.each ! (phase archive))
- (\ ! each (|>> (#analysis.Extension self))))))
+ (\ ! each (|>> {#analysis.Extension self})))))
(synthesis: (..my_synthesis self phase archive [pass_through <analysis>.any])
(phase archive pass_through))
@@ -74,13 +74,13 @@
(let [! phase.monad]
(|> parameters
(monad.each ! (phase archive))
- (\ ! each (|>> (#analysis.Extension self))))))
+ (\ ! each (|>> {#analysis.Extension self})))))
(synthesis: (..my_generation self phase archive [parameters (<>.some <analysis>.any)])
(let [! phase.monad]
(|> parameters
(monad.each ! (phase archive))
- (\ ! each (|>> (#synthesis.Extension self))))))
+ (\ ! each (|>> {#synthesis.Extension self})))))
(generation: (..my_generation self phase archive [pass_through <synthesis>.any])
(for [@.jvm
@@ -89,15 +89,15 @@
(phase archive pass_through)))
(analysis: (..dummy_generation self phase archive [])
- (\ phase.monad in (#analysis.Extension self (list))))
+ (\ phase.monad in {#analysis.Extension self (list)}))
(synthesis: (..dummy_generation self phase archive [])
- (\ phase.monad in (#synthesis.Extension self (list))))
+ (\ phase.monad in {#synthesis.Extension self (list)}))
(generation: (..dummy_generation self phase archive [])
(\ phase.monad in
(for [@.jvm
- (row.row (#jvm.Constant (#jvm.LDC (#jvm.String self))))
+ (row.row {#jvm.Constant {#jvm.LDC {#jvm.String self}}})
@.js (js.string self)
@.python (python.unicode self)
diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux
index 431e72641..0e5933bbb 100644
--- a/stdlib/source/test/lux/ffi.jvm.lux
+++ b/stdlib/source/test/lux/ffi.jvm.lux
@@ -62,11 +62,11 @@
(function (_ lux)
(|> (macro.single_expansion expression)
(meta.result lux)
- (case> (#try.Success expansion)
- (#try.Failure "OOPS!")
+ (case> {#try.Success expansion}
+ {#try.Failure "OOPS!"}
- (#try.Failure error)
- (#try.Success [lux (list (code.text error))])))))
+ {#try.Failure error}
+ {#try.Success [lux (list (code.text error))]}))))
(def: for_conversions
Test
@@ -150,10 +150,10 @@
(random.ascii 1))]
($_ _.and
(_.cover [/.check]
- (and (case (/.check java/lang/String sample) (#.Some _) true #.None false)
- (case (/.check java/lang/Long sample) (#.Some _) false #.None true)
- (case (/.check java/lang/Object sample) (#.Some _) true #.None false)
- (case (/.check java/lang/Object (/.null)) (#.Some _) false #.None true)))
+ (and (case (/.check java/lang/String sample) {#.Some _} true #.None false)
+ (case (/.check java/lang/Long sample) {#.Some _} false #.None true)
+ (case (/.check java/lang/Object sample) {#.Some _} true #.None false)
+ (case (/.check java/lang/Object (/.null)) {#.Some _} false #.None true)))
(_.cover [/.synchronized]
(/.synchronized sample #1))
(_.cover [/.class_for]
@@ -165,10 +165,10 @@
(and (|> (/.??? (/.null))
(: (Maybe java/lang/Object))
(case> #.None #1
- (#.Some _) #0))
+ {#.Some _} #0))
(|> (/.??? sample)
(: (Maybe java/lang/Object))
- (case> (#.Some _) #1
+ (case> {#.Some _} #1
#.None #0))))
(_.cover [/.!!!]
(and (|> (/.??? (/.null))
@@ -287,17 +287,17 @@
expected))))
example/1!
(and (case (test/TestInterface1::actual1 false object/1)
- (#try.Success actual)
+ {#try.Success actual}
(same? (: Any expected)
(: Any actual))
- (#try.Failure error)
+ {#try.Failure error}
false)
(case (test/TestInterface1::actual1 true object/1)
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
true))
object/2 (/.object [] [test/TestInterface2]
@@ -508,17 +508,17 @@
object/1 (test/TestClass1::new (.int expected))
example/1!
(and (case (test/TestInterface1::actual1 false object/1)
- (#try.Success actual)
+ {#try.Success actual}
(n.= expected
(:as Nat actual))
- (#try.Failure error)
+ {#try.Failure error}
false)
(case (test/TestInterface1::actual1 true object/1)
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
true))
object/2 (test/TestClass2::new)
@@ -586,10 +586,10 @@
(function (_ lux)
(|> (macro.single_expansion expression)
(meta.result lux)
- (case> (#try.Success expansion)
+ (case> {#try.Success expansion}
true
- (#try.Failure error)
+ {#try.Failure error}
false)
code.bit
list
diff --git a/stdlib/source/test/lux/ffi.lua.lux b/stdlib/source/test/lux/ffi.lua.lux
index 96e4b7ec8..1e20f80ca 100644
--- a/stdlib/source/test/lux/ffi.lua.lux
+++ b/stdlib/source/test/lux/ffi.lua.lux
@@ -54,6 +54,6 @@
true))
(_.cover [/.import:]
(case (io.run! (..os/getenv string))
- (#.Some _) true
+ {#.Some _} true
#.None true))
)))))
diff --git a/stdlib/source/test/lux/ffi.old.lux b/stdlib/source/test/lux/ffi.old.lux
index df05fdf29..7f53f7da4 100644
--- a/stdlib/source/test/lux/ffi.old.lux
+++ b/stdlib/source/test/lux/ffi.old.lux
@@ -182,7 +182,7 @@
(case> #.None #1
_ #0))
(|> (: (Maybe java/lang/Object) (/.??? sample))
- (case> (#.Some _) #1
+ (case> {#.Some _} #1
_ #0))))
(_.cover [/.!!!]
(and (/.null? (/.!!! (/.??? (/.null))))
@@ -197,10 +197,10 @@
increase random.int]
($_ _.and
(_.cover [/.check]
- (and (case (/.check java/lang/String sample) (#.Some _) true #.None false)
- (case (/.check java/lang/Long sample) (#.Some _) false #.None true)
- (case (/.check java/lang/Object sample) (#.Some _) true #.None false)
- (case (/.check java/lang/Object (/.null)) (#.Some _) false #.None true)))
+ (and (case (/.check java/lang/String sample) {#.Some _} true #.None false)
+ (case (/.check java/lang/Long sample) {#.Some _} false #.None true)
+ (case (/.check java/lang/Object sample) {#.Some _} true #.None false)
+ (case (/.check java/lang/Object (/.null)) {#.Some _} false #.None true)))
(_.cover [/.synchronized]
(/.synchronized sample #1))
(_.cover [/.class_for /.import:]
diff --git a/stdlib/source/test/lux/locale.lux b/stdlib/source/test/lux/locale.lux
index ed9bb4970..f8856abca 100644
--- a/stdlib/source/test/lux/locale.lux
+++ b/stdlib/source/test/lux/locale.lux
@@ -43,7 +43,7 @@
[language ..random_language
territory ..random_territory
encoding ..random_encoding]
- (in (/.locale language (#.Some territory) (#.Some encoding)))))
+ (in (/.locale language {#.Some territory} {#.Some encoding}))))
(def: .public test
Test
@@ -60,15 +60,15 @@
($_ _.and
(|> ..random_language
(\ ! each (function (_ language)
- (/.locale language (#.Some fixed_territory) (#.Some fixed_encoding))))
+ (/.locale language {#.Some fixed_territory} {#.Some fixed_encoding})))
($hash.spec /.hash))
(|> ..random_territory
(\ ! each (function (_ territory)
- (/.locale fixed_language (#.Some territory) (#.Some fixed_encoding))))
+ (/.locale fixed_language {#.Some territory} {#.Some fixed_encoding})))
($hash.spec /.hash))
(|> ..random_encoding
(\ ! each (function (_ encoding)
- (/.locale fixed_language (#.Some fixed_territory) (#.Some encoding))))
+ (/.locale fixed_language {#.Some fixed_territory} {#.Some encoding})))
($hash.spec /.hash))
)))
@@ -77,9 +77,9 @@
territory ..random_territory
encoding ..random_encoding
.let [l_locale (/.locale language #.None #.None)
- lt_locale (/.locale language (#.Some territory) #.None)
- le_locale (/.locale language #.None (#.Some encoding))
- lte_locale (/.locale language (#.Some territory) (#.Some encoding))]
+ lt_locale (/.locale language {#.Some territory} #.None)
+ le_locale (/.locale language #.None {#.Some encoding})
+ lte_locale (/.locale language {#.Some territory} {#.Some encoding})]
.let [language_check (and (text\= (language.code language)
(/.code l_locale))
(list.every? (|>> /.code (text.starts_with? (language.code language)))
diff --git a/stdlib/source/test/lux/macro.lux b/stdlib/source/test/lux/macro.lux
index 694a10f7d..2266d973a 100644
--- a/stdlib/source/test/lux/macro.lux
+++ b/stdlib/source/test/lux/macro.lux
@@ -39,7 +39,7 @@
(template: (!global <definition>)
[(: [Text .Global]
- [(template.text [<definition>]) (#.Definition [true .Macro <definition>])])])
+ [(template.text [<definition>]) {#.Definition [true .Macro <definition>]}])])
(syntax: (pow/2 [number <code>.any])
(in (list (` (nat.* (~ number) (~ number))))))
@@ -70,7 +70,7 @@
#.mode #.Build]
#.source [location.dummy 0 ""]
#.location location.dummy
- #.current_module (#.Some current_module)
+ #.current_module {#.Some current_module}
#.modules (list [macro_module
[#.module_hash 0
#.module_aliases (list)
@@ -140,7 +140,7 @@
(bit\= (not (nat.= 1 repetitions))
(|> (/.one_expansion (` (..repeated (~ (code.nat repetitions)) (~ pow/1))))
(meta.result lux)
- (!expect (#try.Failure _)))))
+ (!expect {#try.Failure _}))))
))))
(def: .public test
@@ -154,13 +154,13 @@
(|> (/.identifier identifier_prefix)
(\ meta.monad each %.code)
(meta.result lux)
- (!expect (^multi (#try.Success actual_identifier)
+ (!expect (^multi {#try.Success actual_identifier}
(and (text.contains? identifier_prefix actual_identifier)
(text.contains? (%.nat seed) actual_identifier))))))
(_.cover [/.wrong_syntax_error]
(|> (/.single_expansion (` (/.log_single_expansion!)))
(meta.result lux)
- (!expect (^multi (#try.Failure error)
+ (!expect (^multi {#try.Failure error}
(text.contains? (/.wrong_syntax_error (name_of /.log_single_expansion!))
error)))))
(_.cover [/.with_identifiers]
@@ -168,7 +168,7 @@
(|> (/.with_identifiers [<expected>]
(\ meta.monad in <expected>))
(meta.result lux)
- (!expect (^multi (#try.Success [_ (#.Identifier ["" actual])])
+ (!expect (^multi {#try.Success [_ {#.Identifier ["" actual]}]}
(text.contains? (template.text [<expected>])
actual))))))
))
diff --git a/stdlib/source/test/lux/macro/code.lux b/stdlib/source/test/lux/macro/code.lux
index 1e694ada1..f14970009 100644
--- a/stdlib/source/test/lux/macro/code.lux
+++ b/stdlib/source/test/lux/macro/code.lux
@@ -67,11 +67,11 @@
start (: Source
[location.dummy 0 source_code])]
(case (parse start)
- (#.Left [end error])
- (#try.Failure error)
+ {#.Left [end error]}
+ {#try.Failure error}
- (#.Right [end lux_code])
- (#try.Success lux_code))))
+ {#.Right [end lux_code]}
+ {#try.Success lux_code})))
(def: (replacement_simulation [original substitute])
(-> [Code Code] (Random [Code Code]))
@@ -110,15 +110,15 @@
[expected <random>]
(_.cover [<coverage>]
(and (case (..read (/.format (<coverage> expected)))
- (#try.Success actual)
+ {#try.Success actual}
(\ /.equivalence =
actual
(<coverage> expected))
- (#try.Failure error)
+ {#try.Failure error}
false)
(\ /.equivalence =
- [location.dummy (<tag> expected)]
+ [location.dummy {<tag> expected}]
(<coverage> expected)))))]
[/.bit random.bit #.Bit]
@@ -137,15 +137,15 @@
[expected <random>]
(_.cover [<coverage>]
(and (case (..read (/.format (<coverage> expected)))
- (#try.Success actual)
+ {#try.Success actual}
(\ /.equivalence =
actual
(<coverage> expected))
- (#try.Failure error)
+ {#try.Failure error}
false)
(\ /.equivalence =
- [location.dummy (<tag> ["" expected])]
+ [location.dummy {<tag> ["" expected]}]
(<coverage> expected)))
))]
diff --git a/stdlib/source/test/lux/macro/local.lux b/stdlib/source/test/lux/macro/local.lux
index 1016ccdef..b36094399 100644
--- a/stdlib/source/test/lux/macro/local.lux
+++ b/stdlib/source/test/lux/macro/local.lux
@@ -30,17 +30,17 @@
(syntax: (macro_error [macro <code>.any])
(function (_ compiler)
(case ((macro.expansion macro) compiler)
- (#try.Failure error)
- (#try.Success [compiler (list (code.text error))])
+ {#try.Failure error}
+ {#try.Success [compiler (list (code.text error))]}
- (#try.Success _)
- (#try.Failure "OOPS!"))))
+ {#try.Success _}
+ {#try.Failure "OOPS!"})))
(def: (constant output)
(-> Code Macro)
("lux macro"
(function (_ inputs lux)
- (#try.Success [lux (list output)]))))
+ {#try.Success [lux (list output)]})))
(syntax: (with [name (<code>.tuple (<>.and <code>.text <code>.text))
constant <code>.any
@@ -54,8 +54,8 @@
(let [remove_macro! (: (-> .Module .Module)
(revised@ #.definitions (plist.lacks short)))]
(function (_ lux)
- (#try.Success [(revised@ #.modules (plist.revised module remove_macro!) lux)
- []])))
+ {#try.Success [(revised@ #.modules (plist.revised module remove_macro!) lux)
+ []]}))
(in []))]
(let [pre_expansion (` (let [(~ g!output) (~ body)]
(exec (~ pop!)
diff --git a/stdlib/source/test/lux/macro/syntax/check.lux b/stdlib/source/test/lux/macro/syntax/check.lux
index 8ea3f25e5..de1e3fe56 100644
--- a/stdlib/source/test/lux/macro/syntax/check.lux
+++ b/stdlib/source/test/lux/macro/syntax/check.lux
@@ -40,9 +40,9 @@
(case (<code>.result /.parser
(list (/.format [#/.type type
#/.value value])))
- (#try.Failure _)
+ {#try.Failure _}
false
- (#try.Success check)
+ {#try.Success check}
(and (code\= type (value@ #/.type check))
(code\= value (value@ #/.value check)))))))))
diff --git a/stdlib/source/test/lux/macro/syntax/declaration.lux b/stdlib/source/test/lux/macro/syntax/declaration.lux
index e87028628..f14762ad6 100644
--- a/stdlib/source/test/lux/macro/syntax/declaration.lux
+++ b/stdlib/source/test/lux/macro/syntax/declaration.lux
@@ -40,8 +40,8 @@
(_.cover [/.format /.parser]
(case (<code>.result /.parser
(list (/.format expected)))
- (#try.Failure _)
+ {#try.Failure _}
false
- (#try.Success actual)
+ {#try.Success actual}
(\ /.equivalence = expected actual)))))))
diff --git a/stdlib/source/test/lux/macro/syntax/definition.lux b/stdlib/source/test/lux/macro/syntax/definition.lux
index cb5867a2a..b76f75cdb 100644
--- a/stdlib/source/test/lux/macro/syntax/definition.lux
+++ b/stdlib/source/test/lux/macro/syntax/definition.lux
@@ -69,28 +69,28 @@
(_.cover [/.format /.parser]
(case (<code>.result (/.parser compiler)
(list (/.format expected)))
- (#try.Failure error)
+ {#try.Failure error}
false
- (#try.Success actual)
+ {#try.Success actual}
(\ /.equivalence = expected actual)))
(_.cover [/.typed]
- (let [expected (with@ #/.value (#.Left [type untyped_value]) expected)]
+ (let [expected (with@ #/.value {#.Left [type untyped_value]} expected)]
(case (<code>.result (/.typed compiler)
(list (/.format expected)))
- (#try.Failure error)
+ {#try.Failure error}
false
- (#try.Success actual)
+ {#try.Success actual}
(\ /.equivalence = expected actual))))
(_.cover [/.lacks_type]
- (let [expected (with@ #/.value (#.Right untyped_value) expected)]
+ (let [expected (with@ #/.value {#.Right untyped_value} expected)]
(case (<code>.result (/.typed compiler)
(list (/.format expected)))
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.lacks_type error)
- (#try.Success actual)
+ {#try.Success actual}
false)))
)))
))
diff --git a/stdlib/source/test/lux/macro/syntax/export.lux b/stdlib/source/test/lux/macro/syntax/export.lux
index 17396ad9c..ac95210a2 100644
--- a/stdlib/source/test/lux/macro/syntax/export.lux
+++ b/stdlib/source/test/lux/macro/syntax/export.lux
@@ -33,7 +33,7 @@
[[expected_export_policy expected_un_exported] ..export]
(_.cover [/.parser /.default_policy]
(|> (case expected_export_policy
- (#.Some expected_export_policy)
+ {#.Some expected_export_policy}
(list expected_export_policy (code.nat expected_un_exported))
#.None
diff --git a/stdlib/source/test/lux/macro/syntax/input.lux b/stdlib/source/test/lux/macro/syntax/input.lux
index bed8f2768..b822f1b94 100644
--- a/stdlib/source/test/lux/macro/syntax/input.lux
+++ b/stdlib/source/test/lux/macro/syntax/input.lux
@@ -41,8 +41,8 @@
[expected ..random]
(_.cover [/.format /.parser]
(case (<code>.result /.parser (list (/.format (list expected))))
- (#try.Failure _)
+ {#try.Failure _}
false
- (#try.Success actual)
+ {#try.Success actual}
(\ (list.equivalence /.equivalence) = (list expected) actual)))))))
diff --git a/stdlib/source/test/lux/macro/template.lux b/stdlib/source/test/lux/macro/template.lux
index 8a79d62a5..74263e302 100644
--- a/stdlib/source/test/lux/macro/template.lux
+++ b/stdlib/source/test/lux/macro/template.lux
@@ -31,11 +31,11 @@
(syntax: (macro_error [macro <code>.any])
(function (_ compiler)
(case ((macro.expansion macro) compiler)
- (#try.Failure error)
- (#try.Success [compiler (list (code.text error))])
+ {#try.Failure error}
+ {#try.Success [compiler (list (code.text error))]}
- (#try.Success _)
- (#try.Failure "OOPS!"))))
+ {#try.Success _}
+ {#try.Failure "OOPS!"})))
(def: .public test
Test
diff --git a/stdlib/source/test/lux/math/logic/fuzzy.lux b/stdlib/source/test/lux/math/logic/fuzzy.lux
index d7e6d1000..d4887967e 100644
--- a/stdlib/source/test/lux/math/logic/fuzzy.lux
+++ b/stdlib/source/test/lux/math/logic/fuzzy.lux
@@ -93,7 +93,7 @@
(random.one (function (_ thresholds)
(case thresholds
(^ (list threshold_0 threshold_1 threshold_2 threshold_3))
- (#.Some [threshold_0 threshold_1 threshold_2 threshold_3])
+ {#.Some [threshold_0 threshold_1 threshold_2 threshold_3]}
_
#.None))))
@@ -177,7 +177,7 @@
(random.one (function (_ thresholds)
(case thresholds
(^ (list threshold_0 threshold_1 threshold_2 threshold_3))
- (#.Some [threshold_0 threshold_1 threshold_2 threshold_3])
+ {#.Some [threshold_0 threshold_1 threshold_2 threshold_3]}
_
#.None))))]
diff --git a/stdlib/source/test/lux/math/modular.lux b/stdlib/source/test/lux/math/modular.lux
index 0cb8a6456..bee6e09a5 100644
--- a/stdlib/source/test/lux/math/modular.lux
+++ b/stdlib/source/test/lux/math/modular.lux
@@ -66,10 +66,10 @@
(case (|> param
(\ (/.codec param\\%) encoded)
(\ (/.codec subject\\%) decoded))
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.incorrect_modulus error)
- (#try.Success _)
+ {#try.Success _}
false))
(_.cover [/.modulus]
(and (type\= (:of (/.modulus subject))
@@ -96,7 +96,7 @@
co_prime? (i.co_prime? (//.divisor (/.modulus subject))
(/.value subject))]
(case (/.inverse subject)
- (#.Some subject^-1)
+ {#.Some subject^-1}
(and co_prime?
(|> subject
(/.* subject^-1)
@@ -116,9 +116,9 @@
(/.= subject))))))
(_.cover [/.moduli_are_not_equal]
(case (/.adapter subject\\% param\\%)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.moduli_are_not_equal error)
- (#try.Success _)
+ {#try.Success _}
false))
)))))
diff --git a/stdlib/source/test/lux/math/modulus.lux b/stdlib/source/test/lux/math/modulus.lux
index 74a61ff8c..d13cb6817 100644
--- a/stdlib/source/test/lux/math/modulus.lux
+++ b/stdlib/source/test/lux/math/modulus.lux
@@ -42,17 +42,17 @@
($_ _.and
(_.cover [/.modulus /.divisor]
(case (/.modulus divisor)
- (#try.Success modulus)
+ {#try.Success modulus}
(i.= divisor (/.divisor modulus))
- (#try.Failure error)
+ {#try.Failure error}
(i.= +0 divisor)))
(_.cover [/.zero_cannot_be_a_modulus]
(case (/.modulus +0)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.zero_cannot_be_a_modulus error)
- (#try.Success modulus)
+ {#try.Success modulus}
false))
(_.cover [/.literal]
(with_expansions [<divisor> (|divisor|)]
diff --git a/stdlib/source/test/lux/math/number.lux b/stdlib/source/test/lux/math/number.lux
index 861a8bfdb..6614235b4 100644
--- a/stdlib/source/test/lux/math/number.lux
+++ b/stdlib/source/test/lux/math/number.lux
@@ -35,10 +35,10 @@
(_.cover [/.bin]
(`` (and (~~ (template [<=> <codec> <number>]
[(case (\ <codec> decoded (..clean_commas <number>))
- (#try.Success actual)
+ {#try.Success actual}
(<=> (/.bin <number>) actual)
- (#try.Failure error)
+ {#try.Failure error}
false)]
[n.= n.binary "11001001"]
@@ -56,10 +56,10 @@
(_.cover [/.oct]
(`` (and (~~ (template [<=> <codec> <number>]
[(case (\ <codec> decoded (..clean_commas <number>))
- (#try.Success actual)
+ {#try.Success actual}
(<=> (/.oct <number>) actual)
- (#try.Failure error)
+ {#try.Failure error}
false)]
[n.= n.octal "615243"]
@@ -77,10 +77,10 @@
(_.cover [/.hex]
(`` (and (~~ (template [<=> <codec> <number>]
[(case (\ <codec> decoded (..clean_commas <number>))
- (#try.Success actual)
+ {#try.Success actual}
(<=> (/.hex <number>) actual)
- (#try.Failure error)
+ {#try.Failure error}
false)]
[n.= n.hex "deadBEEF"]
diff --git a/stdlib/source/test/lux/math/number/i64.lux b/stdlib/source/test/lux/math/number/i64.lux
index fd8d55789..a9bde8474 100644
--- a/stdlib/source/test/lux/math/number/i64.lux
+++ b/stdlib/source/test/lux/math/number/i64.lux
@@ -128,7 +128,7 @@
(_.cover [/.sub]
(n.= 0 size))
- (#.Some sub)
+ {#.Some sub}
(do [! random.monad]
[.let [limit (|> (-- (\ sub width))
/.mask
diff --git a/stdlib/source/test/lux/math/number/ratio.lux b/stdlib/source/test/lux/math/number/ratio.lux
index 332345387..2bced4d50 100644
--- a/stdlib/source/test/lux/math/number/ratio.lux
+++ b/stdlib/source/test/lux/math/number/ratio.lux
@@ -79,7 +79,7 @@
with_denominator!
(case (/.nat (/.ratio numerator denominator))
- (#.Some factor)
+ {#.Some factor}
(and (n.= 0 (n.% denominator numerator))
(n.= numerator (n.* factor denominator)))
@@ -111,7 +111,7 @@
(and (/.= right
(|> div (/.* left) (/.+ rem)))
(case (/.nat div)
- (#.Some _) true
+ {#.Some _} true
#.None false)))))
(do random.monad
[left ..random
diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux
index fa5e55c24..86af8bc90 100644
--- a/stdlib/source/test/lux/meta.lux
+++ b/stdlib/source/test/lux/meta.lux
@@ -54,13 +54,13 @@
#.mode #.Build]
#.source [location.dummy 0 source_code]
#.location location.dummy
- #.current_module (#.Some expected_current_module)
+ #.current_module {#.Some expected_current_module}
#.modules (list)
#.scopes (list)
#.type_context [#.ex_counter 0
#.var_counter 0
#.var_bindings (list)]
- #.expected (#.Some (#.Primitive primitive_type (list)))
+ #.expected {#.Some {#.Primitive primitive_type (list)}}
#.seed expected_seed
#.scope_type_vars (list)
#.extensions []
@@ -70,18 +70,18 @@
(_.cover [/.result]
(|> (\ /.monad in expected)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= expected actual)))))
(_.cover [/.result']
(|> (\ /.monad in expected)
(/.result' expected_lux)
- (!expect (^multi (#try.Success [actual_lux actual])
+ (!expect (^multi {#try.Success [actual_lux actual]}
(and (same? expected_lux actual_lux)
(n.= expected actual))))))
(_.cover [/.compiler_state]
(|> /.compiler_state
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_lux)
+ (!expect (^multi {#try.Success actual_lux}
(same? expected_lux actual_lux)))))
)))
@@ -102,13 +102,13 @@
#.mode #.Build]
#.source [location.dummy 0 source_code]
#.location location.dummy
- #.current_module (#.Some expected_current_module)
+ #.current_module {#.Some expected_current_module}
#.modules (list)
#.scopes (list)
#.type_context [#.ex_counter 0
#.var_counter 0
#.var_bindings (list)]
- #.expected (#.Some (#.Primitive primitive_type (list)))
+ #.expected {#.Some {#.Primitive primitive_type (list)}}
#.seed expected_seed
#.scope_type_vars (list)
#.extensions []
@@ -119,43 +119,43 @@
(|> (/.failure expected_error)
(: (Meta Any))
(/.result expected_lux)
- (!expect (^multi (#try.Failure actual_error)
+ (!expect (^multi {#try.Failure actual_error}
(text\= (location.with location.dummy expected_error)
actual_error)))))
(_.cover [/.assertion]
(and (|> (/.assertion expected_error true)
(: (Meta Any))
(/.result expected_lux)
- (!expect (#try.Success [])))
+ (!expect {#try.Success []}))
(|> (/.assertion expected_error false)
(/.result expected_lux)
- (!expect (^multi (#try.Failure actual_error)
+ (!expect (^multi {#try.Failure actual_error}
(text\= expected_error actual_error))))))
(_.cover [/.either]
(and (|> (/.either (\ /.monad in expected)
(: (Meta Nat)
(/.failure expected_error)))
(/.result expected_lux)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= expected actual))))
(|> (/.either (: (Meta Nat)
(/.failure expected_error))
(\ /.monad in expected))
(/.result expected_lux)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= expected actual))))
(|> (/.either (: (Meta Nat)
(/.failure expected_error))
(: (Meta Nat)
(/.failure expected_error)))
(/.result expected_lux)
- (!expect (^multi (#try.Failure actual_error)
+ (!expect (^multi {#try.Failure actual_error}
(text\= (location.with location.dummy expected_error)
actual_error))))
(|> (/.either (\ /.monad in expected)
(\ /.monad in dummy))
(/.result expected_lux)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(n.= expected actual))))
))
)))
@@ -197,13 +197,13 @@
#.mode #.Build]
#.source [location.dummy 0 source_code]
#.location location.dummy
- #.current_module (#.Some expected_current_module)
+ #.current_module {#.Some expected_current_module}
#.modules expected_modules
#.scopes (list)
#.type_context [#.ex_counter 0
#.var_counter 0
#.var_bindings (list)]
- #.expected (#.Some (#.Primitive primitive_type (list)))
+ #.expected {#.Some {#.Primitive primitive_type (list)}}
#.seed expected_seed
#.scope_type_vars (list)
#.extensions []
@@ -214,29 +214,29 @@
(_.cover [/.current_module_name]
(|> /.current_module_name
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_current_module)
+ (!expect (^multi {#try.Success actual_current_module}
(text\= expected_current_module actual_current_module)))))
(_.cover [/.current_module]
(|> /.current_module
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_module)
+ (!expect (^multi {#try.Success actual_module}
(same? expected_module actual_module)))))
(_.cover [/.module]
(|> (/.module expected_current_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_module)
+ (!expect (^multi {#try.Success actual_module}
(same? expected_module actual_module)))))
(_.cover [/.module_exists?]
(and (|> (/.module_exists? expected_current_module)
(/.result expected_lux)
- (!expect (#try.Success #1)))
+ (!expect {#try.Success #1}))
(|> (/.module_exists? dummy_module)
(/.result expected_lux)
- (!expect (#try.Success #0)))))
+ (!expect {#try.Success #0}))))
(_.cover [/.modules]
(|> /.modules
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_modules)
+ (!expect (^multi {#try.Success actual_modules}
(same? expected_modules actual_modules)))))
(_.cover [/.imported_modules]
(and (|> (/.imported_modules expected_current_module)
@@ -260,12 +260,12 @@
(_.cover [/.normal]
(and (|> (/.normal ["" expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success [actual_module actual_short])
+ (!expect (^multi {#try.Success [actual_module actual_short]}
(and (text\= expected_current_module actual_module)
(same? expected_short actual_short)))))
(|> (/.normal [dummy_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success [actual_module actual_short])
+ (!expect (^multi {#try.Success [actual_module actual_short]}
(and (text\= dummy_module actual_module)
(same? expected_short actual_short)))))))
))))
@@ -284,7 +284,7 @@
source_code (random.ascii/upper 1)
expected_current_module (random.ascii/upper 1)
expected_type (\ ! each (function (_ name)
- (#.Primitive name (list)))
+ {#.Primitive name (list)})
(random.ascii/upper 1))
expected_seed random.nat
expected random.nat
@@ -298,11 +298,11 @@
#.mode #.Build]
#.source [location.dummy 0 source_code]
#.location expected_location
- #.current_module (#.Some expected_current_module)
+ #.current_module {#.Some expected_current_module}
#.modules (list)
#.scopes (list)
#.type_context type_context
- #.expected (#.Some expected_type)
+ #.expected {#.Some expected_type}
#.seed expected_seed
#.scope_type_vars (list)
#.extensions []
@@ -315,18 +315,18 @@
post /.seed]
(in [pre post]))
(/.result expected_lux)
- (!expect (^multi (#try.Success [actual_pre actual_post])
+ (!expect (^multi {#try.Success [actual_pre actual_post]}
(and (n.= expected_seed actual_pre)
(n.= (++ expected_seed) actual_post))))))
(_.cover [/.location]
(|> /.location
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_location)
+ (!expect (^multi {#try.Success actual_location}
(same? expected_location actual_location)))))
(_.cover [/.expected_type]
(|> /.expected_type
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_type)
+ (!expect (^multi {#try.Success actual_type}
(same? expected_type actual_type)))))
(_.cover [.Type_Context /.type_context]
(|> /.type_context
@@ -343,7 +343,7 @@
(random.ascii/upper 1))
expected_short (random.ascii/upper 1)
expected_type (\ ! each (function (_ name)
- (#.Primitive name (list)))
+ {#.Primitive name (list)})
(random.ascii/upper 1))
expected_value (random.either (in .def:)
(in .macro:))
@@ -355,12 +355,12 @@
(function (_ exported? def_type)
(let [current_globals (: (List [Text .Global])
(list [expected_short
- (#.Alias [expected_macro_module expected_short])]))
+ {#.Alias [expected_macro_module expected_short]}]))
macro_globals (: (List [Text .Global])
(case def_type
- (#.Some def_type)
+ {#.Some def_type}
(list [expected_short
- (#.Definition [exported? def_type expected_value])])
+ {#.Definition [exported? def_type expected_value]}])
#.None
(list)))]
@@ -371,7 +371,7 @@
#.mode #.Build]
#.source [location.dummy 0 ""]
#.location location.dummy
- #.current_module (#.Some expected_current_module)
+ #.current_module {#.Some expected_current_module}
#.modules (list [expected_current_module
[#.module_hash 0
#.module_aliases (list)
@@ -397,54 +397,54 @@
($_ _.and
(_.cover [.Global .Alias /.globals]
(let [[current_globals macro_globals expected_lux]
- (expected_lux true (#.Some .Macro))
+ (expected_lux true {#.Some .Macro})
current_globals!
(|> (/.globals expected_current_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_globals)
+ (!expect (^multi {#try.Success actual_globals}
(same? current_globals actual_globals))))
macro_globals!
(|> (/.globals expected_macro_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_globals)
+ (!expect (^multi {#try.Success actual_globals}
(same? macro_globals actual_globals))))]
(and current_globals!
macro_globals!)))
(_.cover [.Definition /.definitions]
(let [[current_globals macro_globals expected_lux]
- (expected_lux true (#.Some .Macro))]
+ (expected_lux true {#.Some .Macro})]
(and (|> (/.definitions expected_current_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_definitions)
+ (!expect (^multi {#try.Success actual_definitions}
(n.= 0 (list.size actual_definitions)))))
(|> (/.definitions expected_macro_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_definitions)
+ (!expect (^multi {#try.Success actual_definitions}
(n.= 1 (list.size actual_definitions)))))
)))
(_.cover [/.exports]
(and (let [[current_globals macro_globals expected_lux]
- (expected_lux true (#.Some .Macro))]
+ (expected_lux true {#.Some .Macro})]
(and (|> (/.exports expected_current_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_definitions)
+ (!expect (^multi {#try.Success actual_definitions}
(n.= 0 (list.size actual_definitions)))))
(|> (/.exports expected_macro_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_definitions)
+ (!expect (^multi {#try.Success actual_definitions}
(n.= 1 (list.size actual_definitions)))))
))
(let [[current_globals macro_globals expected_lux]
- (expected_lux false (#.Some .Macro))]
+ (expected_lux false {#.Some .Macro})]
(and (|> (/.exports expected_current_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_definitions)
+ (!expect (^multi {#try.Success actual_definitions}
(n.= 0 (list.size actual_definitions)))))
(|> (/.exports expected_macro_module)
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_definitions)
+ (!expect (^multi {#try.Success actual_definitions}
(n.= 0 (list.size actual_definitions)))))
))))
)))
@@ -458,7 +458,7 @@
(random.ascii/upper 1))
expected_short (random.ascii/upper 1)
expected_type (\ ! each (function (_ name)
- (#.Primitive name (list)))
+ {#.Primitive name (list)})
(random.ascii/upper 1))
expected_value (random.either (in .def:)
(in .macro:))
@@ -470,12 +470,12 @@
(function (_ exported? def_type)
(let [current_globals (: (List [Text .Global])
(list [expected_short
- (#.Alias [expected_macro_module expected_short])]))
+ {#.Alias [expected_macro_module expected_short]}]))
macro_globals (: (List [Text .Global])
(case def_type
- (#.Some def_type)
+ {#.Some def_type}
(list [expected_short
- (#.Definition [exported? def_type expected_value])])
+ {#.Definition [exported? def_type expected_value]}])
#.None
(list)))]
@@ -486,7 +486,7 @@
#.mode #.Build]
#.source [location.dummy 0 ""]
#.location location.dummy
- #.current_module (#.Some expected_current_module)
+ #.current_module {#.Some expected_current_module}
#.modules (list [expected_current_module
[#.module_hash 0
#.module_aliases (list)
@@ -512,44 +512,44 @@
($_ _.and
(_.cover [/.export]
(and (let [[current_globals macro_globals expected_lux]
- (expected_lux true (#.Some expected_type))]
+ (expected_lux true {#.Some expected_type})]
(|> (/.export [expected_macro_module expected_short])
(/.result expected_lux)
- (!expect (#try.Success _))))
+ (!expect {#try.Success _})))
(let [[current_globals macro_globals expected_lux]
- (expected_lux false (#.Some expected_type))]
+ (expected_lux false {#.Some expected_type})]
(|> (/.export [expected_macro_module expected_short])
(/.result expected_lux)
- (!expect (#try.Failure _))))))
+ (!expect {#try.Failure _})))))
(_.cover [/.macro]
(let [same_module!
(let [[current_globals macro_globals expected_lux]
- (expected_lux true (#.Some .Macro))]
+ (expected_lux true {#.Some .Macro})]
(|> (/.macro [expected_macro_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success (#.Some actual_value))
+ (!expect (^multi {#try.Success {#.Some actual_value}}
(same? expected_value actual_value)))))
not_macro!
(let [[current_globals macro_globals expected_lux]
- (expected_lux true (#.Some expected_type))]
+ (expected_lux true {#.Some expected_type})]
(|> (/.macro [expected_macro_module expected_short])
(/.result expected_lux)
- (!expect (#try.Success #.None))))
+ (!expect {#try.Success #.None})))
not_found!
(let [[current_globals macro_globals expected_lux]
(expected_lux true #.None)]
(|> (/.macro [expected_macro_module expected_short])
(/.result expected_lux)
- (!expect (#try.Success #.None))))
+ (!expect {#try.Success #.None})))
aliasing!
(let [[current_globals macro_globals expected_lux]
- (expected_lux true (#.Some .Macro))]
+ (expected_lux true {#.Some .Macro})]
(|> (/.macro [expected_current_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success (#.Some actual_value))
+ (!expect (^multi {#try.Success {#.Some actual_value}}
(same? expected_value actual_value)))))]
(and same_module!
not_macro!
@@ -557,7 +557,7 @@
aliasing!)))
(_.cover [/.de_aliased]
(let [[current_globals macro_globals expected_lux]
- (expected_lux true (#.Some .Macro))]
+ (expected_lux true {#.Some .Macro})]
(and (|> (/.de_aliased [expected_macro_module expected_short])
(/.result expected_lux)
(try\each (name\= [expected_macro_module expected_short]))
@@ -568,12 +568,12 @@
(try.else false)))))
(_.cover [/.definition]
(let [[current_globals macro_globals expected_lux]
- (expected_lux expected_exported? (#.Some expected_type))
+ (expected_lux expected_exported? {#.Some expected_type})
definition!
(|> (/.definition [expected_macro_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success (#.Definition [actual_exported? actual_type actual_value]))
+ (!expect (^multi {#try.Success {#.Definition [actual_exported? actual_type actual_value]}}
(and (bit\= expected_exported? actual_exported?)
(same? expected_type actual_type)
(same? (:as Any expected_value) actual_value)))))
@@ -581,42 +581,42 @@
alias!
(|> (/.definition [expected_current_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success (#.Alias [actual_module actual_short]))
+ (!expect (^multi {#try.Success {#.Alias [actual_module actual_short]}}
(and (same? expected_macro_module actual_module)
(same? expected_short actual_short)))))]
(and definition!
alias!)))
(_.cover [/.definition_type]
(let [[current_globals macro_globals expected_lux]
- (expected_lux expected_exported? (#.Some expected_type))
+ (expected_lux expected_exported? {#.Some expected_type})
definition!
(|> (/.definition_type [expected_macro_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_type)
+ (!expect (^multi {#try.Success actual_type}
(same? expected_type actual_type))))
alias!
(|> (/.definition_type [expected_current_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_type)
+ (!expect (^multi {#try.Success actual_type}
(same? expected_type actual_type))))]
(and definition!
alias!)))
(_.cover [/.type_definition]
(let [[current_globals macro_globals expected_lux]
- (expected_lux expected_exported? (#.Some .Type))
+ (expected_lux expected_exported? {#.Some .Type})
definition!
(|> (/.type_definition [expected_macro_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_value)
+ (!expect (^multi {#try.Success actual_value}
(same? (:as .Type expected_value) actual_value))))
alias!
(|> (/.type_definition [expected_current_module expected_short])
(/.result expected_lux)
- (!expect (^multi (#try.Success actual_value)
+ (!expect (^multi {#try.Success actual_value}
(same? (:as .Type expected_value) actual_value))))]
(and definition!
alias!)))
@@ -644,11 +644,11 @@
(\ ! each set.list)
(random.and (in head)))))]
tags_0 random_labels
- tags_1 (let [set/0 (set.of_list text.hash (#.Item tags_0))]
+ tags_1 (let [set/0 (set.of_list text.hash {#.Item tags_0})]
(random.only (|>> #.Item (list.any? (set.member? set/0))not)
random_labels))
- .let [type_0 (#.Primitive name_0 (list))
- type_1 (#.Primitive name_1 (list))
+ .let [type_0 {#.Primitive name_0 (list)}
+ type_1 {#.Primitive name_1 (list)}
expected_lux
(: Lux
@@ -657,7 +657,7 @@
#.mode #.Build]
#.source [location.dummy 0 ""]
#.location location.dummy
- #.current_module (#.Some current_module)
+ #.current_module {#.Some current_module}
#.modules (list [current_module
[#.module_hash 0
#.module_aliases (list)
@@ -667,17 +667,17 @@
[tag_module
[#.module_hash 0
#.module_aliases (list)
- #.definitions (list& [name_0 (#.Type [false type_0 (#.Left tags_0)])]
- [name_1 (#.Type [true type_1 (#.Right tags_1)])]
+ #.definitions (list& [name_0 {#.Type [false type_0 {#.Left tags_0}]}]
+ [name_1 {#.Type [true type_1 {#.Right tags_1}]}]
($_ list\composite
- (|> (#.Item tags_0)
+ (|> {#.Item tags_0}
list.enumeration
(list\each (function (_ [index short])
- [(format "#" short) (#.Label [false type_0 (#.Item tags_0) index])])))
- (|> (#.Item tags_1)
+ [(format "#" short) {#.Label [false type_0 {#.Item tags_0} index]}])))
+ (|> {#.Item tags_1}
list.enumeration
(list\each (function (_ [index short])
- [(format "#" short) (#.Slot [true type_1 (#.Item tags_1) index])])))))
+ [(format "#" short) {#.Slot [true type_1 {#.Item tags_1} index]}])))))
#.imports (list)
#.module_state #.Active]])
#.scopes (list)
@@ -698,29 +698,29 @@
type.equivalence))]
(|> (/.tag_lists tag_module)
(/.result expected_lux)
- (try\each (\ equivalence = (list [(list\each (|>> [tag_module]) (#.Item tags_1))
+ (try\each (\ equivalence = (list [(list\each (|>> [tag_module]) {#.Item tags_1})
type_1])))
(try.else false))))
(_.cover [/.tags_of]
(|> (/.tags_of [tag_module name_1])
(/.result expected_lux)
- (try\each (\ (maybe.equivalence (list.equivalence name.equivalence)) = (#.Some (list\each (|>> [tag_module]) (#.Item tags_1)))))
+ (try\each (\ (maybe.equivalence (list.equivalence name.equivalence)) = {#.Some (list\each (|>> [tag_module]) {#.Item tags_1})}))
(try.else false)))
(_.cover [/.slot]
- (|> (#.Item tags_1)
+ (|> {#.Item tags_1}
list.enumeration
(list.every? (function (_ [expected_index tag])
(|> [tag_module tag]
/.slot
(/.result expected_lux)
- (!expect (^multi (#try.Success [actual_index actual_tags actual_type])
+ (!expect (^multi {#try.Success [actual_index actual_tags actual_type]}
(let [correct_index!
(n.= expected_index
actual_index)
correct_tags!
(\ (list.equivalence name.equivalence) =
- (list\each (|>> [tag_module]) (#.Item tags_1))
+ (list\each (|>> [tag_module]) {#.Item tags_1})
actual_tags)
correct_type!
@@ -742,19 +742,19 @@
(random.one (function (_ values)
(case values
(^ (list name_0 name_1 name_2 name_3 name_4))
- (#.Some [name_0 name_1 name_2 name_3 name_4])
+ {#.Some [name_0 name_1 name_2 name_3 name_4]}
_
#.None))))
- .let [type_0 (#.Primitive name_0 (list))
- type_1 (#.Primitive name_1 (list))
- type_2 (#.Primitive name_2 (list))
- type_3 (#.Primitive name_3 (list))
- type_4 (#.Primitive name_4 (list))
+ .let [type_0 {#.Primitive name_0 (list)}
+ type_1 {#.Primitive name_1 (list)}
+ type_2 {#.Primitive name_2 (list)}
+ type_3 {#.Primitive name_3 (list)}
+ type_4 {#.Primitive name_4 (list)}
globals (: (List [Text .Global])
(list [name_4
- (#.Definition [false type_4 []])]))
+ {#.Definition [false type_4 []]}]))
scopes (list [#.name (list)
#.inner 0
@@ -782,7 +782,7 @@
#.mode #.Build]
#.source [location.dummy 0 ""]
#.location location.dummy
- #.current_module (#.Some current_module)
+ #.current_module {#.Some current_module}
#.modules (list [current_module
[#.module_hash 0
#.module_aliases (list)
@@ -866,7 +866,7 @@
(function (_ == left right)
(case [(/.result init left)
(/.result init right)]
- [(#try.Success left) (#try.Success right)]
+ [{#try.Success left} {#try.Success right}]
(== left right)
_
@@ -883,7 +883,7 @@
source_code (random.ascii/upper 1)
expected_current_module (random.ascii/upper 1)
expected_type (\ ! each (function (_ name)
- (#.Primitive name (list)))
+ {#.Primitive name (list)})
(random.ascii/upper 1))
expected_seed random.nat
expected random.nat
@@ -894,13 +894,13 @@
#.mode #.Build]
#.source [expected_location 0 source_code]
#.location expected_location
- #.current_module (#.Some expected_current_module)
+ #.current_module {#.Some expected_current_module}
#.modules (list)
#.scopes (list)
#.type_context [#.ex_counter 0
#.var_counter 0
#.var_bindings (list)]
- #.expected (#.Some expected_type)
+ #.expected {#.Some expected_type}
#.seed expected_seed
#.scope_type_vars (list)
#.extensions []
@@ -923,7 +923,7 @@
(: (Try Nat))
/.lifted
(/.result expected_lux)
- (!expect (^multi (#try.Failure actual)
+ (!expect (^multi {#try.Failure actual}
(text\= (location.with expected_location expected_error)
actual))))
(|> expected_value
@@ -931,7 +931,7 @@
(: (Try Nat))
/.lifted
(/.result expected_lux)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(same? expected_value actual)))))))
..compiler_related
diff --git a/stdlib/source/test/lux/program.lux b/stdlib/source/test/lux/program.lux
index 6dc3667c2..18bc932e8 100644
--- a/stdlib/source/test/lux/program.lux
+++ b/stdlib/source/test/lux/program.lux
@@ -66,8 +66,8 @@
(case (try ((: (-> (List Text) (io.IO Any))
(..actual_program <program>))
inputs))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure _)
+ {#try.Failure _}
true))))))))
diff --git a/stdlib/source/test/lux/static.lux b/stdlib/source/test/lux/static.lux
index 048d0511b..d603b4d85 100644
--- a/stdlib/source/test/lux/static.lux
+++ b/stdlib/source/test/lux/static.lux
@@ -31,7 +31,7 @@
<right> (<random>)
<l+r> (<static> (<+> <left> <right>))]
(case (' <l+r>)
- [_ (<tag> l+r)]
+ [_ {<tag> l+r}]
(<=> l+r (<+> <left> <right>))
_
@@ -46,7 +46,7 @@
<right> (/.random_frac)
<l+r> (/.frac (f.+ <left> <right>))]
(case (' <l+r>)
- [_ (#.Frac l+r)]
+ [_ {#.Frac l+r}]
(or (f.= l+r (f.+ <left> <right>))
(and (f.not_a_number? l+r)
(f.not_a_number? (f.+ <left> <right>))
@@ -60,7 +60,7 @@
<right> (/.random code.text (random.ascii/alpha_num 1))
<l+r> (/.text (format <left> <right>))]
(case (' <l+r>)
- [_ (#.Text l+r)]
+ [_ {#.Text l+r}]
(text\= l+r (format <left> <right>))
_
@@ -70,7 +70,7 @@
<right> (/.random code.text (random.ascii/alpha_num 1))
<l+r> (/.literal code.text (format <left> <right>))]
(case (' <l+r>)
- [_ (#.Text l+r)]
+ [_ {#.Text l+r}]
(text\= l+r (format <left> <right>))
_
diff --git a/stdlib/source/test/lux/target/jvm.lux b/stdlib/source/test/lux/target/jvm.lux
index 9fa008544..0d17df0ff 100644
--- a/stdlib/source/test/lux/target/jvm.lux
+++ b/stdlib/source/test/lux/target/jvm.lux
@@ -117,9 +117,9 @@
method_name
(/type.method [(list) (list) ..$Object (list)])
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ bytecode]
- /.areturn))))
+ /.areturn)}))
(row.row))
.let [bytecode (format.result /class.writer class)
loader (/loader.memory (/loader.new_library []))]
@@ -127,10 +127,10 @@
class (io.run! (/loader.load class_name loader))
method (try (get_method method_name class))]
(java/lang/reflect/Method::invoke (ffi.null) (ffi.array java/lang/Object 0) method))
- (#try.Success actual)
+ {#try.Success actual}
(test actual)
- (#try.Failure error)
+ {#try.Failure error}
false))))
(type: (Primitive a)
@@ -861,7 +861,7 @@
constructor
constructor::type
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ /.aload_0
_ (/.invokespecial ..$Object constructor (/type.method [(list) (list) /type.void (list)]))
_ (..$Long::literal part0)
@@ -869,14 +869,14 @@
_ /.aload_0
_ /.lload_1
_ (/.putfield $Self object_field /type.long)]
- /.return)))
+ /.return)})
(/method.method ($_ /modifier\composite
/method.public
/method.static)
static_method
(/type.method [(list) (list) ..$Long (list)])
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ (/.new $Self)
_ /.dup
_ (..$Long::literal part1)
@@ -885,7 +885,7 @@
_ (/.getstatic $Self class_field /type.long)
_ /.ladd
_ ..$Long::wrap]
- /.areturn))))
+ /.areturn)}))
(row.row))
try.trusted
(format.result /class.writer))
@@ -897,10 +897,10 @@
method (try (get_method static_method class))
output (java/lang/reflect/Method::invoke (ffi.null) (ffi.array java/lang/Object 0) method)]
(in (:as Int output)))
- (#try.Success actual)
+ {#try.Success actual}
(i.= (:as Int expected) (:as Int actual))
- (#try.Failure error)
+ {#try.Failure error}
false))))
(def: array
@@ -1031,7 +1031,7 @@
(..bytecode (|>> (:as Nat) (n.= sizesH)))
(do [! /.monad]
[_ (monad.each ! (|>> (:as java/lang/Long) ffi.long_to_int ..$Integer::literal)
- (#.Item sizesH sizesT))
+ {#.Item sizesH sizesT})
_ (/.multianewarray type (|> dimensions /unsigned.u1 try.trusted))
_ ?length]
$Long::wrap))))
@@ -1337,23 +1337,23 @@
primitive_method_name
primitive_method_type
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ ((value@ #literal primitive) expected)]
- return)))
+ return)})
(/method.method ..method_modifier
object_method_name
(/type.method [(list) (list) (value@ #boxed primitive) (list)])
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ (/.invokestatic $Self primitive_method_name primitive_method_type)
_ (case substitute
#.None
(in [])
- (#.Some substitute)
+ {#.Some substitute}
(substitute expected))
_ (value@ #wrap primitive)]
- /.areturn))))
+ /.areturn)}))
(row.row))
.let [bytecode (format.result /class.writer class)
loader (/loader.memory (/loader.new_library []))]
@@ -1361,10 +1361,10 @@
class (io.run! (/loader.load class_name loader))
method (try (get_method object_method_name class))]
(java/lang/reflect/Method::invoke (ffi.null) (ffi.array java/lang/Object 0) method))
- (#try.Success actual)
+ {#try.Success actual}
(test expected actual)
- (#try.Failure error)
+ {#try.Failure error}
false)
))))]
($_ _.and
@@ -1380,7 +1380,7 @@
#random ..$String::random
#literal (function.constant /.nop)])
/.return
- (#.Some ..$String::literal)
+ {#.Some ..$String::literal}
(function (_ expected actual) (text\= (:as Text expected) (:as Text actual)))))
)))
@@ -1623,9 +1623,9 @@
name
method::type
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ (..$Long::literal value)]
- /.lreturn)))))
+ /.lreturn)})))
interface_bytecode (|> (/class.class /version.v6_0 ($_ /modifier\composite /class.public /class.abstract /class.interface)
(/name.internal interface_class)
@@ -1646,10 +1646,10 @@
"<init>"
constructor::type
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ /.aload_0
_ (/.invokespecial ..$Object "<init>" constructor::type)]
- /.return)))
+ /.return)})
(method inherited_method part0)
(method overriden_method fake_part2)
(/method.method ($_ /modifier\composite /method.public /method.abstract)
@@ -1671,10 +1671,10 @@
"<init>"
constructor::type
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ /.aload_0
_ (/.invokespecial $Abstract "<init>" constructor::type)]
- /.return)))
+ /.return)})
(method virtual_method part1)
(method overriden_method part2)
(method abstract_method part3)
@@ -1685,7 +1685,7 @@
static_method
(/type.method [(list) (list) ..$Long (list)])
(list)
- (#.Some (do /.monad
+ {#.Some (do /.monad
[_ (/.new $Concrete)
_ /.dup
_ (/.invokespecial $Concrete "<init>" constructor::type)
@@ -1700,7 +1700,7 @@
_ (invoke $Abstract abstract_method)
_ /.ladd
_ ..$Long::wrap]
- /.areturn))))
+ /.areturn)}))
(row.row))
try.trusted
(format.result /class.writer))
@@ -1714,10 +1714,10 @@
method (try (get_method static_method class))
output (java/lang/reflect/Method::invoke (ffi.null) (ffi.array java/lang/Object 0) method)]
(in (:as Int output)))
- (#try.Success actual)
+ {#try.Success actual}
(i.= (:as Int expected) (:as Int actual))
- (#try.Failure error)
+ {#try.Failure error}
false))))
(def: .public test
diff --git a/stdlib/source/test/lux/time.lux b/stdlib/source/test/lux/time.lux
index 178818c3e..32bb9d67c 100644
--- a/stdlib/source/test/lux/time.lux
+++ b/stdlib/source/test/lux/time.lux
@@ -76,8 +76,8 @@
(text.prefix <prefix>)
(text.suffix <suffix>)
(\ /.codec decoded)
- (case> (#try.Success _) true
- (#try.Failure error) false))
+ (case> {#try.Success _} true
+ {#try.Failure error} false))
invalid!
(|> <invalid>
@@ -85,10 +85,10 @@
(text.prefix <prefix>)
(text.suffix <suffix>)
(\ /.codec decoded)
- (case> (#try.Success _)
+ (case> {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? <exception> error)))]
(and valid!
invalid!)))]
@@ -102,8 +102,8 @@
%.nat
(format "00:00:00.")
(\ /.codec decoded)
- (case> (#try.Success _) true
- (#try.Failure error) false)))
+ (case> {#try.Success _} true
+ {#try.Failure error} false)))
))))
(def: .public test
@@ -127,10 +127,10 @@
(try.else false)))
(_.cover [/.time_exceeds_a_day]
(case (/.of_millis out_of_bounds)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.time_exceeds_a_day error)))
(_.cover [/.midnight]
(|> /.midnight
diff --git a/stdlib/source/test/lux/time/date.lux b/stdlib/source/test/lux/time/date.lux
index 5862b2ea5..24d18c5b9 100644
--- a/stdlib/source/test/lux/time/date.lux
+++ b/stdlib/source/test/lux/time/date.lux
@@ -53,10 +53,10 @@
(case (/.date (/.year expected)
(/.month expected)
(n.+ 31 (/.day_of_month expected)))
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.invalid_day error)
- (#try.Success _)
+ {#try.Success _}
false)))
(do random.monad
[expected random.date]
@@ -88,9 +88,9 @@
"-" (%.nat day))]]
(_.cover [/.invalid_month]
(case (<text>.result /.parser input)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.invalid_month error)
- (#try.Success _)
+ {#try.Success _}
false)))
)))
diff --git a/stdlib/source/test/lux/time/day.lux b/stdlib/source/test/lux/time/day.lux
index f1bcc932d..04d267d79 100644
--- a/stdlib/source/test/lux/time/day.lux
+++ b/stdlib/source/test/lux/time/day.lux
@@ -60,10 +60,10 @@
[not_a_day (random.ascii/upper 1)]
(_.cover [/.not_a_day_of_the_week]
(case (\ /.codec decoded not_a_day)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_a_day_of_the_week error)
- (#try.Success _)
+ {#try.Success _}
false)))
(_.cover [/.number /.by_number]
(|> expected
@@ -73,10 +73,10 @@
(try.else false)))
(_.cover [/.invalid_day]
(case (/.by_number invalid)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.invalid_day error)
- (#try.Success _)
+ {#try.Success _}
false))
(_.cover [/.week]
(let [all (list.size /.week)
diff --git a/stdlib/source/test/lux/time/instant.lux b/stdlib/source/test/lux/time/instant.lux
index f25348f9a..57050174e 100644
--- a/stdlib/source/test/lux/time/instant.lux
+++ b/stdlib/source/test/lux/time/instant.lux
@@ -98,9 +98,9 @@
(apply duration.inverse day\pred 7)))))
(_.cover [/.now]
(case (try (io.run! /.now))
- (#try.Success _)
+ {#try.Success _}
true
- (#try.Failure _)
+ {#try.Failure _}
false))
)))
diff --git a/stdlib/source/test/lux/time/month.lux b/stdlib/source/test/lux/time/month.lux
index 7e4ad8433..4db1303b3 100644
--- a/stdlib/source/test/lux/time/month.lux
+++ b/stdlib/source/test/lux/time/month.lux
@@ -64,10 +64,10 @@
(try.else false)))
(_.cover [/.invalid_month]
(case (/.by_number invalid)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.invalid_month error)
- (#try.Success _)
+ {#try.Success _}
false))
(_.cover [/.year]
(let [all (list.size /.year)
@@ -92,9 +92,9 @@
[not_a_month (random.ascii/upper 1)]
(_.cover [/.not_a_month_of_the_year]
(case (\ /.codec decoded not_a_month)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_a_month_of_the_year error)
- (#try.Success _)
+ {#try.Success _}
false)))
)))))
diff --git a/stdlib/source/test/lux/time/year.lux b/stdlib/source/test/lux/time/year.lux
index 121d74822..1d949bf44 100644
--- a/stdlib/source/test/lux/time/year.lux
+++ b/stdlib/source/test/lux/time/year.lux
@@ -49,25 +49,25 @@
(_.cover [/.year]
(bit\= (i.= +0 expected)
(case (/.year expected)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure _)
+ {#try.Failure _}
true)))
(_.cover [/.value]
(case (/.year expected)
- (#try.Success year)
+ {#try.Success year}
(i.= expected (/.value year))
- (#try.Failure _)
+ {#try.Failure _}
(i.= +0 expected)))
))
(_.cover [/.there_is_no_year_0]
(case (/.year +0)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.there_is_no_year_0 error)))
(_.cover [/.days]
(n.= (.nat (//duration.ticks //duration.day //duration.normal_year))
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 4f87450ba..c152bb5c2 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
@@ -44,28 +44,28 @@
#.End
#.End
- (#.Item head+ #.End)
+ {#.Item head+ #.End}
(list\each (|>> list) head+)
- (#.Item head+ tail++)
+ {#.Item head+ tail++}
(do list.monad
[tail+ (exhaustive_weaving tail++)
head head+]
- (in (#.Item head tail+)))))
+ (in {#.Item head tail+}))))
(def: .public (exhaustive_branches allow_literals? variantTC inputC)
(-> Bit (List [Code Code]) Code (Random (List Code)))
(case inputC
- [_ (#.Bit _)]
+ [_ {#.Bit _}]
(r\in (list (' #0) (' #1)))
(^template [<tag> <gen> <wrapper>]
- [[_ (<tag> _)]
+ [[_ {<tag> _}]
(if allow_literals?
(do [! r.monad]
[?sample (r.maybe <gen>)]
(case ?sample
- (#.Some sample)
+ {#.Some sample}
(do !
[else (exhaustive_branches allow_literals? variantTC inputC)]
(in (list& (<wrapper> sample) else)))
@@ -79,20 +79,20 @@
[#.Frac r.frac code.frac]
[#.Text (r.unicode 5) code.text])
- (^ [_ (#.Tuple (list))])
+ (^ [_ {#.Tuple (list)}])
(r\in (list (' [])))
- [_ (#.Tuple members)]
+ [_ {#.Tuple members}]
(do [! r.monad]
[member_wise_patterns (monad.each ! (exhaustive_branches allow_literals? variantTC) members)]
(in (|> member_wise_patterns
exhaustive_weaving
(list\each code.tuple))))
- (^ [_ (#.Record (list))])
+ (^ [_ {#.Record (list)}])
(r\in (list (' {})))
- [_ (#.Record kvs)]
+ [_ {#.Record kvs}]
(do [! r.monad]
[.let [ks (list\each product.left kvs)
vs (list\each product.right kvs)]
@@ -101,7 +101,7 @@
exhaustive_weaving
(list\each (|>> (list.zipped/2 ks) code.record)))))
- (^ [_ (#.Form (list [_ (#.Tag _)] _))])
+ (^ [_ {#.Form (list [_ {#.Tag _}] _)}])
(do [! r.monad]
[bundles (monad.each !
(function (_ [_tag _code])
@@ -163,11 +163,11 @@
////analysis.with_scope
(do phase.monad
[_ (//module.declare_tags variant_tags false
- (#.Named [module_name variant_name]
- (type.variant primitivesT)))
+ {#.Named [module_name variant_name]
+ (type.variant primitivesT)})
_ (//module.declare_tags record_tags false
- (#.Named [module_name record_name]
- (type.tuple primitivesT)))])
+ {#.Named [module_name record_name]
+ (type.tuple primitivesT)})])
(//module.with_module 0 module_name)))]
exhaustive_patterns (exhaustive_branches true variantTC inputC)
.let [exhaustive_branchesC (list\each (branch outputC)
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 afd5276d4..73ef650e6 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
@@ -43,11 +43,11 @@
(|> analysis
(//type.with_type expectedT)
(phase.result _primitive.state)
- (case> (#try.Success applyA)
+ (case> {#try.Success applyA}
(let [[funcA argsA] (////analysis.application applyA)]
(n.= num_args (list.size argsA)))
- (#try.Failure _)
+ {#try.Failure _}
false)))
(def: abstraction
@@ -90,7 +90,7 @@
[outputT outputC] _primitive.primitive
.let [funcT (type.function inputsT outputT)
partialT (type.function (list.after partial_args inputsT) outputT)
- varT (#.Parameter 1)
+ varT {#.Parameter 1}
polyT (<| (type.univ_q 1)
(type.function (list.together (list (list.first var_idx inputsT)
(list varT)
@@ -101,9 +101,9 @@
partial_polyT1 (<| (type.function partial_poly_inputsT)
poly_inputT)
partial_polyT2 (<| (type.univ_q 1)
- (type.function (#.Item varT partial_poly_inputsT))
+ (type.function {#.Item varT partial_poly_inputsT})
varT)
- dummy_function (#////analysis.Function (list) (#////analysis.Reference (////reference.local 1)))]]
+ dummy_function {#////analysis.Function (list) {#////analysis.Reference (////reference.local 1)}}]]
(<| (_.context (%.name (name_of /.apply)))
($_ _.and
(_.test "Can analyse monomorphic type application."
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
index d3ef99670..1ca30c317 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
@@ -34,12 +34,12 @@
(def: .public (expander macro inputs state)
Expander
- (#try.Failure "NOPE"))
+ {#try.Failure "NOPE"})
(def: .public (eval archive count type expression)
Eval
(function (_ state)
- (#try.Failure "NO!")))
+ {#try.Failure "NO!"}))
(def: .public phase
////analysis.Phase
@@ -76,20 +76,20 @@
(|> analysis
//type.with_inference
(phase.result ..state)
- (case> (#try.Success [inferred_type output])
+ (case> {#try.Success [inferred_type output]}
(if (same? expected_type inferred_type)
- (#try.Success output)
+ {#try.Success output}
(exception.except wrong_inference [expected_type inferred_type]))
- (#try.Failure error)
- (#try.Failure error))))
+ {#try.Failure error}
+ {#try.Failure error})))
(def: .public test
(<| (_.context (name.module (name_of /._)))
(`` ($_ _.and
(_.test (%.name (name_of #////analysis.Unit))
(|> (infer Any (..phase archive.empty (' [])))
- (case> (^ (#try.Success (#////analysis.Primitive (#////analysis.Unit output))))
+ (case> (^ {#try.Success {#////analysis.Primitive {#////analysis.Unit output}}})
(same? [] output)
_
@@ -99,7 +99,7 @@
[sample <random>]
(_.test (%.name (name_of <tag>))
(|> (infer <type> (..phase archive.empty (<constructor> sample)))
- (case> (#try.Success (#////analysis.Primitive (<tag> output)))
+ (case> {#try.Success {#////analysis.Primitive {<tag> output}}}
(same? sample output)
_
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux
index 1db1336ea..981b2604f 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux
@@ -38,10 +38,10 @@
(template [<name> <on_success> <on_failure>]
[(def: <name>
Check
- (|>> (case> (#try.Success _)
+ (|>> (case> {#try.Success _}
<on_success>
- (#try.Failure _)
+ {#try.Failure _}
<on_failure>)))]
[success? true false]
@@ -52,7 +52,7 @@
(-> Text [Bit Text] [Bit Text] Check Bit)
(|> (do [! phase.monad]
[_ (//module.with_module 0 def_module
- (//module.define var_name (#.Right [export? Any []])))]
+ (//module.define var_name {#.Right [export? Any []]}))]
(//module.with_module 0 dependent_module
(do !
[_ (if import?
@@ -79,7 +79,7 @@
(//type.with_inference
(_primitive.phase archive.empty (code.local_identifier var_name)))))
(phase.result _primitive.state)
- (case> (^ (#try.Success [inferredT (#////analysis.Reference (////reference.local var))]))
+ (case> (^ {#try.Success [inferredT {#////analysis.Reference (////reference.local var)}]})
(and (type\= expectedT inferredT)
(n.= 0 var))
@@ -88,12 +88,12 @@
(_.test "Can analyse definition (in the same module)."
(let [def_name [def_module var_name]]
(|> (do phase.monad
- [_ (//module.define var_name (#.Right [false expectedT []]))]
+ [_ (//module.define var_name {#.Right [false expectedT []]})]
(//type.with_inference
(_primitive.phase archive.empty (code.identifier def_name))))
(//module.with_module 0 def_module)
(phase.result _primitive.state)
- (case> (^ (#try.Success [_ inferredT (#////analysis.Reference (////reference.constant constant_name))]))
+ (case> (^ {#try.Success [_ inferredT {#////analysis.Reference (////reference.constant constant_name)}]})
(and (type\= expectedT inferredT)
(name\= def_name constant_name))
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 4ad22a9fe..9d276e070 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
@@ -43,7 +43,7 @@
[(def: .public <name>
(All (_ a) (-> (Operation a) Bit))
(|>> (phase.result _primitive.state)
- (case> (#try.Success _)
+ (case> {#try.Success _}
<on_success>
_
@@ -71,7 +71,7 @@
(|> analysis
(//type.with_type type)
(phase.result _primitive.state)
- (case> (^ (#try.Success (////analysis.variant variant)))
+ (case> (^ {#try.Success (////analysis.variant variant)})
(check_sum' tag size variant)
_
@@ -89,7 +89,7 @@
(with_tags module tags variantT)
(//type.with_type expectedT)
(phase.result _primitive.state)
- (case> (^ (#try.Success [_ (////analysis.variant variant)]))
+ (case> (^ {#try.Success [_ (////analysis.variant variant)]})
(check_sum' tag (list.size tags) variant)
_
@@ -111,7 +111,7 @@
(with_tags module tags recordT)
(//type.with_type expectedT)
(phase.result _primitive.state)
- (case> (#try.Success [_ productA])
+ (case> {#try.Success [_ productA]}
(correct_size? size productA)
_
@@ -128,7 +128,7 @@
[valueT valueC] (maybe.trusted (list.item choice primitives))
+size (++ size)
+primitives (list.together (list (list.first choice primitives)
- (list [(#.Parameter 1) +valueC])
+ (list [{#.Parameter 1} +valueC])
(list.after choice primitives)))
[+valueT +valueC] (maybe.trusted (list.item +choice +primitives))
+variantT (type.variant (list\each product.left +primitives))]]
@@ -145,7 +145,7 @@
(//type.with_type varT
(/.sum _primitive.phase choice archive.empty valueC)))
(phase.result _primitive.state)
- (case> (^ (#try.Success (////analysis.variant variant)))
+ (case> (^ {#try.Success (////analysis.variant variant)})
(check_sum' choice size variant)
_
@@ -178,7 +178,7 @@
.let [tupleT (type.tuple (list\each product.left primitives))
[singletonT singletonC] (|> primitives (list.item choice) maybe.trusted)
+primitives (list.together (list (list.first choice primitives)
- (list [(#.Parameter 1) +valueC])
+ (list [{#.Parameter 1} +valueC])
(list.after choice primitives)))
+tupleT (type.tuple (list\each product.left +primitives))]]
(<| (_.context (%.name (name_of /.product)))
@@ -187,7 +187,7 @@
(|> (//type.with_type tupleT
(/.product archive.empty _primitive.phase (list\each product.right primitives)))
(phase.result _primitive.state)
- (case> (#try.Success tupleA)
+ (case> {#try.Success tupleA}
(correct_size? size tupleA)
_
@@ -196,7 +196,7 @@
(|> (//type.with_inference
(/.product archive.empty _primitive.phase (list\each product.right primitives)))
(phase.result _primitive.state)
- (case> (#try.Success [_type tupleA])
+ (case> {#try.Success [_type tupleA]}
(and (check.subsumes? tupleT _type)
(correct_size? size tupleA))
@@ -214,7 +214,7 @@
(//type.with_type varT
(/.product archive.empty _primitive.phase (list\each product.right primitives))))
(phase.result _primitive.state)
- (case> (#try.Success tupleA)
+ (case> {#try.Success tupleA}
(correct_size? size tupleA)
_
@@ -238,8 +238,8 @@
primitives (r.list size _primitive.primitive)
module_name (r.unicode 5)
type_name (r.unicode 5)
- .let [with_name (|>> (#.Named [module_name type_name]))
- varT (#.Parameter 1)
+ .let [with_name (|>> {#.Named [module_name type_name]})
+ varT {#.Parameter 1}
primitivesT (list\each product.left primitives)
[choiceT choiceC] (maybe.trusted (list.item choice primitives))
[other_choiceT other_choiceC] (maybe.trusted (list.item other_choice primitives))
@@ -283,17 +283,17 @@
module_name (r.unicode 5)
type_name (r.unicode 5)
choice (|> r.nat (\ ! each (n.% size)))
- .let [varT (#.Parameter 1)
+ .let [varT {#.Parameter 1}
tagsC (list\each (|>> [module_name] code.tag) tags)
primitivesT (list\each product.left primitives)
primitivesC (list\each product.right primitives)
- monoT (#.Named [module_name type_name] (type.tuple primitivesT))
+ monoT {#.Named [module_name type_name] (type.tuple primitivesT)}
recordC (list.zipped/2 tagsC primitivesC)
polyT (|> (type.tuple (list.together (list (list.first choice primitivesT)
(list varT)
(list.after (++ choice) primitivesT))))
(type.univ_q 1)
- (#.Named [module_name type_name]))]]
+ {#.Named [module_name type_name]})]]
(<| (_.context (%.name (name_of /.record)))
(_.test "Can infer."
(|> (/.record archive.empty _primitive.phase recordC)
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux
index 2528ff9c1..aaf4f1ae6 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux
@@ -39,10 +39,10 @@
(////type.with_type output_type
(_primitive.phase archive.empty (` ((~ (code.text procedure)) (~+ params))))))
(phase.result _primitive.state)
- (case> (#try.Success _)
+ (case> {#try.Success _}
<success>
- (#try.Failure _)
+ {#try.Failure _}
<failure>)))]
[check_success+ true false]
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux
index af22d952d..881c2f678 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux
@@ -46,8 +46,8 @@
temp (|> random.nat (\ ! each (n.% 100)))
.let [maskA (analysis.control/case
[maskedA
- [[(#analysis.Bind temp)
- (#analysis.Reference (////reference.local temp))]
+ [[{#analysis.Bind temp}
+ {#analysis.Reference (////reference.local temp)}]
(list)]])]]
(_.cover [/.synthesize_masking]
(|> maskA
@@ -64,14 +64,14 @@
outputA //primitive.primitive
.let [letA (analysis.control/case
[inputA
- [[(#analysis.Bind registerA)
+ [[{#analysis.Bind registerA}
outputA]
(list)]])]]
(_.cover [/.synthesize_let]
(|> letA
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (case> (^ (#try.Success (synthesis.branch/let [inputS registerS outputS])))
+ (case> (^ {#try.Success (synthesis.branch/let [inputS registerS outputS])})
(and (n.= registerA registerS)
(//primitive.corresponds? inputA inputS)
(//primitive.corresponds? outputA outputS))
@@ -87,10 +87,10 @@
thenA //primitive.primitive
elseA //primitive.primitive
.let [thenB (: Branch
- [(#analysis.Simple (#analysis.Bit true))
+ [{#analysis.Simple {#analysis.Bit true}}
thenA])
elseB (: Branch
- [(#analysis.Simple (#analysis.Bit false))
+ [{#analysis.Simple {#analysis.Bit false}}
elseA])
ifA (if then|else
(analysis.control/case [inputA [thenB (list elseB)]])
@@ -99,7 +99,7 @@
(|> ifA
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (case> (^ (#try.Success (synthesis.branch/if [inputS thenS elseS])))
+ (case> (^ {#try.Success (synthesis.branch/if [inputS thenS elseS])})
(and (//primitive.corresponds? inputA inputS)
(//primitive.corresponds? thenA thenS)
(//primitive.corresponds? elseA elseS))
@@ -113,8 +113,8 @@
[lefts (|> random.nat (\ ! each (n.% 10)))
right? random.bit]
(in (if right?
- (#.Right lefts)
- (#.Left lefts)))))
+ {#.Right lefts}
+ {#.Left lefts}))))
(def: random_path
(Random (analysis.Tuple synthesis.Member))
@@ -129,16 +129,16 @@
[@member random.nat]
(in [(list\mix (function (_ member inner)
(case member
- (#.Left lefts)
+ {#.Left lefts}
(analysis.pattern/tuple
(list\composite (list.repeated lefts (analysis.pattern/unit))
(list inner (analysis.pattern/unit))))
- (#.Right lefts)
+ {#.Right lefts}
(analysis.pattern/tuple
(list\composite (list.repeated (++ lefts) (analysis.pattern/unit))
(list inner)))))
- (#analysis.Bind @member)
+ {#analysis.Bind @member}
(list.reversed path))
@member])))
@@ -152,13 +152,13 @@
pathA ..random_path
[pattern @member] (get_pattern pathA)
.let [getA (analysis.control/case [recordA [[pattern
- (#analysis.Reference (////reference.local @member))]
+ {#analysis.Reference (////reference.local @member)}]
(list)]])]]
(_.cover [/.synthesize_get]
(|> getA
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (case> (^ (#try.Success (synthesis.branch/get [pathS recordS])))
+ (case> (^ {#try.Success (synthesis.branch/get [pathS recordS])})
(and (\ (list.equivalence (sum.equivalence n.= n.=)) = pathA pathS)
(//primitive.corresponds? recordA recordS))
@@ -171,10 +171,10 @@
[test random.bit
then random.nat
else random.nat]
- (in [(#synthesis.Alt (#synthesis.Seq (synthesis.path/bit test)
- (#synthesis.Then (synthesis.i64 (.i64 then))))
- (#synthesis.Seq (synthesis.path/bit (not test))
- (#synthesis.Then (synthesis.i64 (.i64 else)))))
+ (in [{#synthesis.Alt {#synthesis.Seq (synthesis.path/bit test)
+ {#synthesis.Then (synthesis.i64 (.i64 then))}}
+ {#synthesis.Seq (synthesis.path/bit (not test))
+ {#synthesis.Then (synthesis.i64 (.i64 else))}}}
[[#analysis.when (analysis.pattern/bit test)
#analysis.then (analysis.nat then)]
(list [#analysis.when (analysis.pattern/bit (not test))
@@ -198,11 +198,11 @@
[[test/0 test/1 test/2 test/3 test/4] (random_five <hash> <random>)
[body/0 body/1 body/2 body/3 body/4] (random_five <hash> <random>)]
(in [($_ #synthesis.Alt
- (#synthesis.Seq (<path> test/0) (#synthesis.Then (<synthesis> body/0)))
- (#synthesis.Seq (<path> test/1) (#synthesis.Then (<synthesis> body/1)))
- (#synthesis.Seq (<path> test/2) (#synthesis.Then (<synthesis> body/2)))
- (#synthesis.Seq (<path> test/3) (#synthesis.Then (<synthesis> body/3)))
- (#synthesis.Seq (<path> test/4) (#synthesis.Then (<synthesis> body/4))))
+ {#synthesis.Seq (<path> test/0) {#synthesis.Then (<synthesis> body/0)}}
+ {#synthesis.Seq (<path> test/1) {#synthesis.Then (<synthesis> body/1)}}
+ {#synthesis.Seq (<path> test/2) {#synthesis.Then (<synthesis> body/2)}}
+ {#synthesis.Seq (<path> test/3) {#synthesis.Then (<synthesis> body/3)}}
+ {#synthesis.Seq (<path> test/4) {#synthesis.Then (<synthesis> body/4)}})
[[#analysis.when (<pattern> test/0) #analysis.then (<analysis> body/0)]
(list [#analysis.when (<pattern> test/1) #analysis.then (<analysis> body/1)]
[#analysis.when (<pattern> test/2) #analysis.then (<analysis> body/2)]
@@ -237,10 +237,10 @@
(function (_ lefts right? value body)
($_ #synthesis.Seq
(synthesis.path/side (if right?
- (#.Right lefts)
- (#.Left lefts)))
+ {#.Right lefts}
+ {#.Left lefts}))
(synthesis.path/text value)
- (#synthesis.Then (synthesis.f64 body)))))
+ {#synthesis.Then (synthesis.f64 body)})))
branch (: (-> Nat Bit Text Frac Branch)
(function (_ lefts right? value body)
[#analysis.when (analysis.pattern/variant [#analysis.lefts lefts
@@ -276,17 +276,17 @@
(if right?
($_ #synthesis.Seq
(synthesis.path/member (if right?
- (#.Right lefts)
- (#.Left lefts)))
+ {#.Right lefts}
+ {#.Left lefts}))
(synthesis.path/text value)
- (#synthesis.Then (synthesis.f64 body)))
+ {#synthesis.Then (synthesis.f64 body)})
($_ #synthesis.Seq
(synthesis.path/member (if right?
- (#.Right lefts)
- (#.Left lefts)))
+ {#.Right lefts}
+ {#.Left lefts}))
(synthesis.path/text value)
#synthesis.Pop
- (#synthesis.Then (synthesis.f64 body))))))
+ {#synthesis.Then (synthesis.f64 body)}))))
branch (: (-> Nat Bit Text Frac Branch)
(function (_ lefts right? value body)
[#analysis.when (if right?
@@ -298,10 +298,10 @@
(analysis.pattern/unit)))))
#analysis.then (analysis.frac body)]))]]
(in [(list\mix (function (_ left right)
- (#synthesis.Alt left right))
+ {#synthesis.Alt left right})
(path (++ mid_size) true value/last body/last)
(|> (list.zipped/2 value/mid body/mid)
- (#.Item [value/first body/first])
+ {#.Item [value/first body/first]}
list.enumeration
(list\each (function (_ [lefts' [value body]])
(path lefts' false value body)))
@@ -333,7 +333,7 @@
(_.cover [/.synthesize_case]
(|> (/.synthesize_case //.phase archive.empty expected_input match)
(phase.result [///bundle.empty synthesis.init])
- (case> (^ (#try.Success (synthesis.branch/case [actual_input actual_path])))
+ (case> (^ {#try.Success (synthesis.branch/case [actual_input actual_path])})
(and (\ synthesis.equivalence = expected_input actual_input)
(\ synthesis.path_equivalence = expected_path actual_path))
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux
index 8c8b6c4a5..5396c5b9c 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux
@@ -52,12 +52,12 @@
(-> Arity Analysis Analysis)
(list\mix (function (_ arity_1 body)
(case arity_1
- 0 (#analysis.Function (list) body)
- _ (#analysis.Function ($_ list\composite
+ 0 {#analysis.Function (list) body}
+ _ {#analysis.Function ($_ list\composite
(list\each (|>> #variable.Foreign)
(list.indices arity_1))
- (list (#variable.Local 1)))
- body)))
+ (list {#variable.Local 1}))
+ body}))
body
(list.reversed (list.indices arity))))
@@ -151,8 +151,8 @@
(in [(not (n.= 0 register))
(synthesis.variable/local register)
(if (n.= arity register)
- (#analysis.Reference (reference.local 1))
- (#analysis.Reference (reference.foreign register)))])))
+ {#analysis.Reference (reference.local 1)}
+ {#analysis.Reference (reference.foreign register)})])))
(def: (random_constant output?)
Scenario
@@ -161,7 +161,7 @@
short (random.unicode 1)]
(in [true
(synthesis.constant [module short])
- (#analysis.Reference (reference.constant [module short]))])))
+ {#analysis.Reference (reference.constant [module short])}])))
(def: (random_reference arity output?)
(-> Arity Scenario)
@@ -180,8 +180,8 @@
lefts (|> random.nat (\ ! each (n.% 10)))
right? random.bit
.let [side|member (if right?
- (#.Right lefts)
- (#.Left lefts))]]
+ {#.Right lefts}
+ {#.Left lefts})]]
(in [(and loop?_input
loop?_output)
(synthesis.branch/case [expected_input
@@ -211,30 +211,30 @@
(synthesis.path/bind (++ arity))
synthesis.path/pop
(synthesis.path/then expected_output))))])
- (#analysis.Case actual_input
- [[#analysis.when (analysis.pattern/unit)
- #analysis.then actual_output]
- (list [#analysis.when (analysis.pattern/bit bit_test)
- #analysis.then actual_output]
- [#analysis.when (analysis.pattern/nat (.nat i64_test))
- #analysis.then actual_output]
- [#analysis.when (analysis.pattern/frac f64_test)
- #analysis.then actual_output]
- [#analysis.when (analysis.pattern/text text_test)
- #analysis.then actual_output]
- [#analysis.when (#analysis.Bind 2)
- #analysis.then actual_output]
- [#analysis.when (analysis.pattern/variant
- [#analysis.lefts lefts
- #analysis.right? right?
- #analysis.value (#analysis.Bind 2)])
- #analysis.then actual_output]
- [#analysis.when (analysis.pattern/tuple
- (list\composite (list.repeated lefts (analysis.pattern/unit))
- (if right?
- (list (analysis.pattern/unit) (#analysis.Bind 2))
- (list (#analysis.Bind 2) (analysis.pattern/unit)))))
- #analysis.then actual_output])])])))
+ {#analysis.Case actual_input
+ [[#analysis.when (analysis.pattern/unit)
+ #analysis.then actual_output]
+ (list [#analysis.when (analysis.pattern/bit bit_test)
+ #analysis.then actual_output]
+ [#analysis.when (analysis.pattern/nat (.nat i64_test))
+ #analysis.then actual_output]
+ [#analysis.when (analysis.pattern/frac f64_test)
+ #analysis.then actual_output]
+ [#analysis.when (analysis.pattern/text text_test)
+ #analysis.then actual_output]
+ [#analysis.when {#analysis.Bind 2}
+ #analysis.then actual_output]
+ [#analysis.when (analysis.pattern/variant
+ [#analysis.lefts lefts
+ #analysis.right? right?
+ #analysis.value {#analysis.Bind 2}])
+ #analysis.then actual_output]
+ [#analysis.when (analysis.pattern/tuple
+ (list\composite (list.repeated lefts (analysis.pattern/unit))
+ (if right?
+ (list (analysis.pattern/unit) {#analysis.Bind 2})
+ (list {#analysis.Bind 2} (analysis.pattern/unit)))))
+ #analysis.then actual_output])]}])))
(def: (random_let arity random_value output?)
(-> Arity Scenario Scenario)
@@ -246,10 +246,10 @@
(synthesis.branch/let [expected_input
(++ arity)
expected_output])
- (#analysis.Case actual_input
- [[#analysis.when (#analysis.Bind 2)
- #analysis.then actual_output]
- (list)])])))
+ {#analysis.Case actual_input
+ [[#analysis.when {#analysis.Bind 2}
+ #analysis.then actual_output]
+ (list)]}])))
(def: (random_if random_value output?)
(-> Scenario Scenario)
@@ -265,16 +265,16 @@
expected_then
expected_else])
(if flip?
- (#analysis.Case actual_test
- [[#analysis.when (analysis.pattern/bit false)
- #analysis.then actual_else]
- (list [#analysis.when (analysis.pattern/bit true)
- #analysis.then actual_then])])
- (#analysis.Case actual_test
- [[#analysis.when (analysis.pattern/bit true)
- #analysis.then actual_then]
- (list [#analysis.when (analysis.pattern/bit false)
- #analysis.then actual_else])]))])))
+ {#analysis.Case actual_test
+ [[#analysis.when (analysis.pattern/bit false)
+ #analysis.then actual_else]
+ (list [#analysis.when (analysis.pattern/bit true)
+ #analysis.then actual_then])]}
+ {#analysis.Case actual_test
+ [[#analysis.when (analysis.pattern/bit true)
+ #analysis.then actual_then]
+ (list [#analysis.when (analysis.pattern/bit false)
+ #analysis.then actual_else])]})])))
(def: (random_get random_value output?)
(-> Scenario Scenario)
@@ -284,17 +284,17 @@
[loop?_record expected_record actual_record] (random_value false)]
(in [loop?_record
(synthesis.branch/get [(list (if right?
- (#.Right lefts)
- (#.Left lefts)))
+ {#.Right lefts}
+ {#.Left lefts}))
expected_record])
- (#analysis.Case actual_record
- [[#analysis.when (analysis.pattern/tuple
- (list\composite (list.repeated lefts (analysis.pattern/unit))
- (if right?
- (list (analysis.pattern/unit) (#analysis.Bind 2))
- (list (#analysis.Bind 2) (analysis.pattern/unit)))))
- #analysis.then (#analysis.Reference (reference.local 2))]
- (list)])])))
+ {#analysis.Case actual_record
+ [[#analysis.when (analysis.pattern/tuple
+ (list\composite (list.repeated lefts (analysis.pattern/unit))
+ (if right?
+ (list (analysis.pattern/unit) {#analysis.Bind 2})
+ (list {#analysis.Bind 2} (analysis.pattern/unit)))))
+ #analysis.then {#analysis.Reference (reference.local 2)}]
+ (list)]}])))
(def: (random_branch arity random_value output?)
(-> Arity Scenario Scenario)
@@ -309,9 +309,9 @@
[resets (random.list arity (random_value false))]
(in [true
(synthesis.loop/recur (list\each (|>> product.right product.left) resets))
- (analysis.apply [(#analysis.Reference (case arity
+ (analysis.apply [{#analysis.Reference (case arity
1 (reference.local 0)
- _ (reference.foreign 0)))
+ _ (reference.foreign 0))}
(list\each (|>> product.right product.right) resets)])])))
(def: (random_scope arity output?)
@@ -347,7 +347,7 @@
.let [environment ($_ list\composite
(list\each (|>> #variable.Foreign)
(list.indices arity))
- (list (#variable.Local 1)))]]
+ (list {#variable.Local 1}))]]
(in [true
(synthesis.function/abstraction
[#synthesis.environment environment
@@ -356,8 +356,8 @@
[#synthesis.start 1
#synthesis.inits (list)
#synthesis.iteration expected_output])])
- (#analysis.Function environment
- actual_output)])))
+ {#analysis.Function environment
+ actual_output}])))
(def: (random_apply random_value output?)
(-> Scenario Scenario)
@@ -401,8 +401,8 @@
(in [(and loop?_first
loop?_second
loop?_third)
- (#synthesis.Extension name (list expected_first expected_second expected_third))
- (#analysis.Extension name (list actual_first actual_second actual_third))])))
+ {#synthesis.Extension name (list expected_first expected_second expected_third)}
+ {#analysis.Extension name (list actual_first actual_second actual_third)}])))
(def: (random_body arity)
(-> Arity Scenario)
@@ -432,7 +432,7 @@
(|> input
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ synthesis.equivalence = expected actual)))))))
(def: application
@@ -445,14 +445,14 @@
(and (|> (analysis.apply [funcA argsA])
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (!expect (^multi (^ (#try.Success (synthesis.function/apply [funcS argsS])))
+ (!expect (^multi (^ {#try.Success (synthesis.function/apply [funcS argsS])})
(and (//primitive.corresponds? funcA funcS)
(list.every? (product.uncurried //primitive.corresponds?)
(list.zipped/2 argsA argsS))))))
(|> (analysis.apply [funcA (list)])
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (!expect (^multi (#try.Success funcS)
+ (!expect (^multi {#try.Success funcS}
(//primitive.corresponds? funcA funcS))))))))
(def: .public test
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
index 63a6f2546..c27d08c14 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
@@ -57,8 +57,8 @@
(let [local (do [! random.monad]
[register (\ ! each (|>> (n.% arity) ++) random.nat)]
(in [next
- [(#variable.Local (/.register_optimization offset register))
- (#variable.Local register)]]))]
+ [{#variable.Local (/.register_optimization offset register)}
+ {#variable.Local register}]]))]
(case offset
0 local
_ ($_ random.either
@@ -66,8 +66,8 @@
(do [! random.monad]
[foreign (\ ! each (n.% offset) random.nat)]
(in [next
- [(#variable.Local foreign)
- (#variable.Foreign foreign)]]))))))
+ [{#variable.Local foreign}
+ {#variable.Foreign foreign}]]))))))
(def: (reference offset arity next)
(Scenario Synthesis)
@@ -248,8 +248,8 @@
[next [secondE secondA]] (..reference offset arity next)
[next [thirdE thirdA]] (..reference offset arity next)]
(in [next
- [(#//.Extension name (list firstE secondE thirdE))
- (#//.Extension name (list firstA secondA thirdA))]])))
+ [{#//.Extension name (list firstE secondE thirdE)}
+ {#//.Extension name (list firstA secondA thirdA)}]])))
(def: (scenario offset arity next)
(Scenario Synthesis)
@@ -279,8 +279,8 @@
(list\each (|>> #variable.Local)))
#//.arity arity
#//.body iteration])
- (^ (#.Some (//.loop/scope [actual_offset actual_inits
- actual])))
+ (^ {#.Some (//.loop/scope [actual_offset actual_inits
+ actual])})
(and (n.= expected_offset
actual_offset)
(\ (list.equivalence //.equivalence) =
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux
index 4b37cbb5a..79e26221b 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux
@@ -39,14 +39,14 @@
r.rev
r.frac
(r.unicode 5)))]
- (in (#////analysis.Primitive primitive))))
+ (in {#////analysis.Primitive primitive})))
(def: .public (corresponds? analysis synthesis)
(-> Analysis Synthesis Bit)
(`` (case [analysis synthesis]
(~~ (template [<analysis> <post_analysis> <synthesis> <post_synthesis>]
- [[(#////analysis.Primitive (<analysis> expected))
- (#////synthesis.Primitive (<synthesis> actual))]
+ [[{#////analysis.Primitive (<analysis> expected)}
+ {#////synthesis.Primitive (<synthesis> actual)}]
(same? (|> expected <post_analysis>)
(|> actual <post_synthesis>))]
@@ -78,10 +78,10 @@
[(do r.monad
[expected <generator>]
(_.test (%.name (name_of <synthesis>))
- (|> (#////analysis.Primitive (<analysis> expected))
+ (|> {#////analysis.Primitive (<analysis> expected)}
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
- (case> (#try.Success (#////synthesis.Primitive (<synthesis> actual)))
+ (case> {#try.Success {#////synthesis.Primitive (<synthesis> actual)}}
(same? expected actual)
_
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux
index 60a4bdeec..c9334a880 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux
@@ -47,7 +47,7 @@
(|> (////analysis.variant [lefts right? memberA])
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
- (case> (^ (#try.Success (////synthesis.variant [leftsS right?S valueS])))
+ (case> (^ {#try.Success (////synthesis.variant [leftsS right?S valueS])})
(let [tagS (if right?S (++ leftsS) leftsS)]
(and (n.= tagA tagS)
(|> tagS (n.= (-- size)) (bit\= right?S))
@@ -65,7 +65,7 @@
(|> (////analysis.tuple membersA)
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
- (case> (^ (#try.Success (////synthesis.tuple membersS)))
+ (case> (^ {#try.Success (////synthesis.tuple membersS)})
(and (n.= size (list.size membersS))
(list.every? (product.uncurried //primitive.corresponds?)
(list.zipped/2 membersA membersS)))
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
index 7ba708602..b7713c5bd 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
@@ -74,14 +74,14 @@
(dictionary.size (value@ #necessary context)))]
[expected_output actual_output] (scenario (revised@ #redundants ++ context))]
(in [(synthesis.branch/case [expected_input
- (#synthesis.Seq #synthesis.Pop
- (#synthesis.Then expected_output))])
+ {#synthesis.Seq #synthesis.Pop
+ {#synthesis.Then expected_output}}])
(if let?
(synthesis.branch/let [actual_input fake_register actual_output])
(synthesis.branch/case [actual_input
- (#synthesis.Seq (#synthesis.Bind fake_register)
- (#synthesis.Seq #synthesis.Pop
- (#synthesis.Then actual_output)))]))]))
+ {#synthesis.Seq {#synthesis.Bind fake_register}
+ {#synthesis.Seq #synthesis.Pop
+ {#synthesis.Then actual_output}}}]))]))
(scenario context))))
(def: (variant_scenario scenario context)
@@ -137,8 +137,8 @@
[lefts random.nat
right? random.bit]
(in (if right?
- (#.Right lefts)
- (#.Left lefts)))))
+ {#.Right lefts}
+ {#.Left lefts}))))
(def: (get_scenario scenario context)
(-> (Scenario Synthesis) (Scenario Synthesis))
@@ -160,31 +160,31 @@
(do [! random.monad]
[_ (in [])
[expected_then actual_then] (scenario context)]
- (in [(#synthesis.Seq #synthesis.Pop
- (#synthesis.Then expected_then))
- (#synthesis.Seq #synthesis.Pop
- (#synthesis.Then actual_then))]))
+ (in [{#synthesis.Seq #synthesis.Pop
+ {#synthesis.Then expected_then}}
+ {#synthesis.Seq #synthesis.Pop
+ {#synthesis.Then actual_then}}]))
(do [! random.monad]
[_ (in [])
.let [real_register (dictionary.size (value@ #necessary context))
fake_register (n.+ (value@ #redundants context)
(dictionary.size (value@ #necessary context)))]
[expected_then actual_then] (scenario (revised@ #necessary (dictionary.has real_register fake_register) context))]
- (in [(#synthesis.Seq (#synthesis.Bind real_register)
- (#synthesis.Seq #synthesis.Pop
- (#synthesis.Then expected_then)))
- (#synthesis.Seq (#synthesis.Bind fake_register)
- (#synthesis.Seq #synthesis.Pop
- (#synthesis.Then actual_then)))])))
+ (in [{#synthesis.Seq {#synthesis.Bind real_register}
+ {#synthesis.Seq #synthesis.Pop
+ {#synthesis.Then expected_then}}}
+ {#synthesis.Seq {#synthesis.Bind fake_register}
+ {#synthesis.Seq #synthesis.Pop
+ {#synthesis.Then actual_then}}}])))
($_ random.either
(~~ (template [<tag> <random>]
[(do [! random.monad]
[test <random>
[expected_then actual_then] (scenario context)]
- (in [(#synthesis.Seq (#synthesis.Test (<tag> test))
- (#synthesis.Then expected_then))
- (#synthesis.Seq (#synthesis.Test (<tag> test))
- (#synthesis.Then actual_then))]))]
+ (in [{#synthesis.Seq {#synthesis.Test {<tag> test}}
+ {#synthesis.Then expected_then}}
+ {#synthesis.Seq {#synthesis.Test {<tag> test}}
+ {#synthesis.Then actual_then}}]))]
[#synthesis.Bit random.bit]
[#synthesis.I64 (\ ! each .i64 random.nat)]
@@ -195,23 +195,23 @@
(do [! random.monad]
[side ..random_side
[expected_next actual_next] (path_scenario scenario context)]
- (in [(#synthesis.Seq (#synthesis.Access (#synthesis.Side side))
- expected_next)
- (#synthesis.Seq (#synthesis.Access (#synthesis.Side side))
- actual_next)]))
+ (in [{#synthesis.Seq {#synthesis.Access {#synthesis.Side side}}
+ expected_next}
+ {#synthesis.Seq {#synthesis.Access {#synthesis.Side side}}
+ actual_next}]))
(do [! random.monad]
[member ..random_member
[expected_next actual_next] (path_scenario scenario context)]
- (in [(#synthesis.Seq (#synthesis.Access (#synthesis.Member member))
- expected_next)
- (#synthesis.Seq (#synthesis.Access (#synthesis.Member member))
- actual_next)])))
+ (in [{#synthesis.Seq {#synthesis.Access {#synthesis.Member member}}
+ expected_next}
+ {#synthesis.Seq {#synthesis.Access {#synthesis.Member member}}
+ actual_next}])))
(do [! random.monad]
[_ (in [])
[expected_left actual_left] (path_scenario scenario context)
[expected_right actual_right] (path_scenario scenario context)]
- (in [(#synthesis.Alt expected_left expected_right)
- (#synthesis.Alt actual_left actual_right)]))
+ (in [{#synthesis.Alt expected_left expected_right}
+ {#synthesis.Alt actual_left actual_right}]))
)))
(def: (case_scenario scenario context)
@@ -330,6 +330,6 @@
[[expected input] (..scenario ..default)]
(_.cover [/.optimization]
(|> (/.optimization input)
- (!expect (^multi (#try.Success actual)
+ (!expect (^multi {#try.Success actual}
(\ synthesis.equivalence = expected actual))))))
)))
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux b/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux
index 32dcae9de..e9daa8e53 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux
@@ -80,10 +80,10 @@
(case (let [source_code (%.code sample)]
(/.parse "" (dictionary.empty text.hash) (text.size source_code)
[location.dummy 0 source_code]))
- (#.Left error)
+ {#.Left error}
false
- (#.Right [_ parsed])
+ {#.Right [_ parsed]}
(\ code.equivalence = parsed sample)))
(do !
[other code^]
@@ -92,16 +92,16 @@
source_code//size (text.size source_code)]
(case (/.parse "" (dictionary.empty text.hash) source_code//size
[location.dummy 0 source_code])
- (#.Left error)
+ {#.Left error}
false
- (#.Right [remaining =sample])
+ {#.Right [remaining =sample]}
(case (/.parse "" (dictionary.empty text.hash) source_code//size
remaining)
- (#.Left error)
+ {#.Left error}
false
- (#.Right [_ =other])
+ {#.Right [_ =other]}
(and (\ code.equivalence = sample =sample)
(\ code.equivalence = other =other)))))))
)))
@@ -130,10 +130,10 @@
source_code//size (text.size source_code)]
(/.parse "" (dictionary.empty text.hash) source_code//size
[location.dummy 0 source_code]))
- (#.Left error)
+ {#.Left error}
false
- (#.Right [_ parsed])
+ {#.Right [_ parsed]}
(\ code.equivalence = parsed sample)))
)))
diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/type.lux
index 94f7b92fd..65bcf2d81 100644
--- a/stdlib/source/test/lux/type.lux
+++ b/stdlib/source/test/lux/type.lux
@@ -80,13 +80,13 @@
($equivalence.spec /.equivalence (..random 0)))
(do [! random.monad]
- [anonymousT (random.only (|>> (case> (#.Named _ _) false
+ [anonymousT (random.only (|>> (case> {#.Named _ _} false
_ true))
(..random 0))
name/0 ..name
name/1 ..name
- .let [namedT (#.Named name/0 anonymousT)
- aliasedT (#.Named name/1 namedT)]]
+ .let [namedT {#.Named name/0 anonymousT}
+ aliasedT {#.Named name/1 namedT}]]
($_ _.and
(_.cover [/.de_aliased]
(\ /.equivalence = namedT (/.de_aliased aliasedT)))
@@ -97,7 +97,7 @@
members (|> (..random 0)
(random.only (function (_ type)
(case type
- (^or (#.Sum _) (#.Product _))
+ (^or {#.Sum _} {#.Product _})
#0
_
@@ -123,7 +123,7 @@
(do maybe.monad
[partial (/.applied (list Bit) Ann)
full (/.applied (list Int) partial)]
- (in (\ /.equivalence = full (#.Product Bit Int)))))
+ (in (\ /.equivalence = full {#.Product Bit Int}))))
(|> (/.applied (list Bit) Text)
(case> #.None #1 _ #0))))
(do [! random.monad]
@@ -132,7 +132,7 @@
extra (|> (..random 0)
(random.only (function (_ type)
(case type
- (^or (#.Function _) (#.Apply _))
+ (^or {#.Function _} {#.Apply _})
#0
_
@@ -153,7 +153,7 @@
body_type (|> (..random 0)
(random.only (function (_ type)
(case type
- (^or (#.UnivQ _) (#.ExQ _))
+ (^or {#.UnivQ _} {#.ExQ _})
#0
_
@@ -179,7 +179,7 @@
element_type (|> (..random 0)
(random.only (function (_ type)
(case type
- (^ (#.Primitive name (list element_type)))
+ (^ {#.Primitive name (list element_type)})
(not (text\= array.type_name name))
_
diff --git a/stdlib/source/test/lux/type/abstract.lux b/stdlib/source/test/lux/type/abstract.lux
index 9004d7fbe..826569dae 100644
--- a/stdlib/source/test/lux/type/abstract.lux
+++ b/stdlib/source/test/lux/type/abstract.lux
@@ -37,12 +37,12 @@
(syntax: (with_no_active_frames [macro <code>.any])
(function (_ compiler)
(let [verdict (case ((macro.expansion macro) compiler)
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.no_active_frames error)
- (#try.Success _)
+ {#try.Success _}
false)]
- (#try.Success [compiler (list (code.bit verdict))]))))
+ {#try.Success [compiler (list (code.bit verdict))]})))
(with_expansions [no_current! (..with_no_active_frames (..current))
no_specific! (..with_no_active_frames (..specific))]
diff --git a/stdlib/source/test/lux/type/check.lux b/stdlib/source/test/lux/type/check.lux
index d3825ef80..1f5c396e6 100644
--- a/stdlib/source/test/lux/type/check.lux
+++ b/stdlib/source/test/lux/type/check.lux
@@ -71,18 +71,19 @@
(def: (valid_type? type)
(-> Type Bit)
(case type
- (#.Primitive name params)
+ {#.Primitive name params}
(list.every? valid_type? params)
- (#.Ex id)
+ {#.Ex id}
#1
(^template [<tag>]
- [(<tag> left right)
- (and (valid_type? left) (valid_type? right))])
+ [{<tag> left right}
+ (and (valid_type? left)
+ (valid_type? right))])
([#.Sum] [#.Product] [#.Function])
- (#.Named name type')
+ {#.Named name type'}
(valid_type? type')
_
@@ -96,7 +97,7 @@
(Comparison (All (_ a) (/.Check a)))
(function (_ == left right)
(case [(/.result /.fresh_context left) (/.result /.fresh_context right)]
- [(#try.Success left) (#try.Success right)]
+ [{#try.Success left} {#try.Success right}]
(== left right)
_
@@ -124,25 +125,25 @@
(case (/.result /.fresh_context
(: (/.Check Any)
(/.failure expected)))
- (#try.Success _) false
- (#try.Failure actual) (same? expected actual))))
+ {#try.Success _} false
+ {#try.Failure actual} (same? expected actual))))
(do random.monad
[expected (random.ascii/upper 10)]
(_.cover [/.assertion]
(and (case (/.result /.fresh_context
(: (/.Check Any)
(/.assertion expected true)))
- (#try.Success _) true
- (#try.Failure actual) false)
+ {#try.Success _} true
+ {#try.Failure actual} false)
(case (/.result /.fresh_context (/.assertion expected false))
- (#try.Success _) false
- (#try.Failure actual) (same? expected actual)))))
+ {#try.Success _} false
+ {#try.Failure actual} (same? expected actual)))))
(_.cover [/.except]
(case (/.result /.fresh_context
(: (/.Check Any)
(/.except ..yolo [])))
- (#try.Success _) false
- (#try.Failure error) (exception.match? ..yolo error)))
+ {#try.Success _} false
+ {#try.Failure error} (exception.match? ..yolo error)))
))
(def: var
@@ -153,27 +154,27 @@
(case (/.result /.fresh_context
(do /.monad
[[var_id var_type] /.var]
- (in (type\= var_type (#.Var var_id)))))
- (#try.Success verdict) verdict
- (#try.Failure error) false))
+ (in (type\= var_type {#.Var var_id}))))
+ {#try.Success verdict} verdict
+ {#try.Failure error} false))
(do random.monad
[nominal (random.ascii/upper 10)]
(_.cover [/.bind]
(case (/.result /.fresh_context
(do /.monad
[[var_id var_type] /.var
- _ (/.bind (#.Primitive nominal (list))
+ _ (/.bind {#.Primitive nominal (list)}
var_id)]
(in true)))
- (#try.Success _) true
- (#try.Failure error) false)))
+ {#try.Success _} true
+ {#try.Failure error} false)))
(do random.monad
[nominal (random.ascii/upper 10)]
(_.cover [/.bound?]
(and (|> (do /.monad
[[var_id var_type] /.var
pre (/.bound? var_id)
- _ (/.bind (#.Primitive nominal (list))
+ _ (/.bind {#.Primitive nominal (list)}
var_id)
post (/.bound? var_id)]
(in (and (not pre)
@@ -196,36 +197,36 @@
(case (/.result /.fresh_context
(do /.monad
[[var_id var_type] /.var
- _ (/.bind (#.Primitive nominal (list))
+ _ (/.bind {#.Primitive nominal (list)}
var_id)]
- (/.bind (#.Primitive nominal (list))
+ (/.bind {#.Primitive nominal (list)}
var_id)))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_rebind_var error))))
(do random.monad
[nominal (random.ascii/upper 10)
var_id random.nat]
(_.cover [/.unknown_type_var]
(case (/.result /.fresh_context
- (/.bind (#.Primitive nominal (list))
+ (/.bind {#.Primitive nominal (list)}
var_id))
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.unknown_type_var error))))
(do random.monad
[nominal (random.ascii/upper 10)
- .let [expected (#.Primitive nominal (list))]]
+ .let [expected {#.Primitive nominal (list)}]]
(_.cover [/.peek]
(and (|> (do /.monad
[[var_id var_type] /.var]
(/.peek var_id))
(/.result /.fresh_context)
- (case> (#try.Success #.None) true
+ (case> {#try.Success #.None} true
_ false))
(|> (do /.monad
[[var_id var/0] /.var
@@ -233,41 +234,41 @@
_ (/.check var/0 var/1)]
(/.peek var_id))
(/.result /.fresh_context)
- (case> (#try.Success #.None) true
+ (case> {#try.Success #.None} true
_ false))
(|> (do /.monad
[[var_id var_type] /.var
_ (/.bind expected var_id)]
(/.peek var_id))
(/.result /.fresh_context)
- (case> (#try.Success (#.Some actual))
+ (case> {#try.Success {#.Some actual}}
(same? expected actual)
_
false)))))
(do random.monad
[nominal (random.ascii/upper 10)
- .let [expected (#.Primitive nominal (list))]]
+ .let [expected {#.Primitive nominal (list)}]]
(_.cover [/.read]
(case (/.result /.fresh_context
(do /.monad
[[var_id var_type] /.var
_ (/.bind expected var_id)]
(/.read var_id)))
- (#try.Success actual)
+ {#try.Success actual}
(same? expected actual)
_
false)))
(do random.monad
[nominal (random.ascii/upper 10)
- .let [expected (#.Primitive nominal (list))]]
+ .let [expected {#.Primitive nominal (list)}]]
(_.cover [/.unbound_type_var]
(case (/.result /.fresh_context
(do /.monad
[[var_id var_type] /.var]
(/.read var_id)))
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.unbound_type_var error)
_
@@ -283,43 +284,43 @@
(list.empty? (value@ #.var_bindings /.fresh_context))))
(_.cover [/.context]
(and (case (/.result /.fresh_context /.context)
- (#try.Success actual)
+ {#try.Success actual}
(same? /.fresh_context actual)
- (#try.Failure error)
+ {#try.Failure error}
false)
(case (/.result /.fresh_context
(do /.monad
[_ /.var]
/.context))
- (#try.Success actual)
+ {#try.Success actual}
(and (n.= 1 (value@ #.var_counter actual))
(n.= 0 (value@ #.ex_counter actual))
(n.= 1 (list.size (value@ #.var_bindings actual))))
- (#try.Failure error)
+ {#try.Failure error}
false)))
(_.cover [/.existential]
(case (/.result /.fresh_context
(do /.monad
[_ /.existential]
/.context))
- (#try.Success actual)
+ {#try.Success actual}
(and (n.= 0 (value@ #.var_counter actual))
(n.= 1 (value@ #.ex_counter actual))
(n.= 0 (list.size (value@ #.var_bindings actual))))
- (#try.Failure error)
+ {#try.Failure error}
false))
))
(def: succeeds?
(All (_ a) (-> (/.Check a) Bit))
(|>> (/.result /.fresh_context)
- (case> (#try.Success _)
+ (case> {#try.Success _}
true
- (#try.Failure error)
+ {#try.Failure error}
false)))
(def: fails?
@@ -331,7 +332,7 @@
(Random Type)
(do random.monad
[name (random.ascii/upper 10)]
- (in (#.Primitive name (list)))))
+ (in {#.Primitive name (list)})))
(def: (non_twins = random)
(All (_ a) (-> (-> a a Bit) (Random a) (Random [a a])))
@@ -349,22 +350,22 @@
(def: (handles_nominal_types! name/0 name/1 parameter/0 parameter/1)
(-> Text Text Type Type Bit)
(let [names_matter!
- (and (..succeeds? (/.check (#.Primitive name/0 (list))
- (#.Primitive name/0 (list))))
- (..fails? (/.check (#.Primitive name/0 (list))
- (#.Primitive name/1 (list)))))
+ (and (..succeeds? (/.check {#.Primitive name/0 (list)}
+ {#.Primitive name/0 (list)}))
+ (..fails? (/.check {#.Primitive name/0 (list)}
+ {#.Primitive name/1 (list)})))
parameters_matter!
- (and (..succeeds? (/.check (#.Primitive name/0 (list parameter/0))
- (#.Primitive name/0 (list parameter/0))))
- (..fails? (/.check (#.Primitive name/0 (list parameter/0))
- (#.Primitive name/0 (list parameter/1)))))
+ (and (..succeeds? (/.check {#.Primitive name/0 (list parameter/0)}
+ {#.Primitive name/0 (list parameter/0)}))
+ (..fails? (/.check {#.Primitive name/0 (list parameter/0)}
+ {#.Primitive name/0 (list parameter/1)})))
covariant_parameters!
- (and (..succeeds? (/.check (#.Primitive name/0 (list Super))
- (#.Primitive name/0 (list Sub))))
- (..fails? (/.check (#.Primitive name/0 (list Sub))
- (#.Primitive name/0 (list Super)))))]
+ (and (..succeeds? (/.check {#.Primitive name/0 (list Super)}
+ {#.Primitive name/0 (list Sub)}))
+ (..fails? (/.check {#.Primitive name/0 (list Sub)}
+ {#.Primitive name/0 (list Super)})))]
(and names_matter!
parameters_matter!
covariant_parameters!)))
@@ -372,15 +373,15 @@
(template [<assertion> <combinator>]
[(def: (<assertion> name/0 name/1)
(-> Text Text Bit)
- (let [pair/0 (<combinator> (#.Primitive name/0 (list)) (#.Primitive name/0 (list)))
- pair/1 (<combinator> (#.Primitive name/1 (list)) (#.Primitive name/1 (list)))
+ (let [pair/0 {<combinator> {#.Primitive name/0 (list)} {#.Primitive name/0 (list)}}
+ pair/1 {<combinator> {#.Primitive name/1 (list)} {#.Primitive name/1 (list)}}
invariant!
(and (..succeeds? (/.check pair/0 pair/0))
(..fails? (/.check pair/0 pair/1)))
- super_pair (<combinator> Super Super)
- sub_pair (<combinator> Sub Sub)
+ super_pair {<combinator> Super Super}
+ sub_pair {<combinator> Sub Sub}
covariant!
(and (..succeeds? (/.check super_pair sub_pair))
@@ -395,22 +396,22 @@
(def: (handles_function_variance! nominal)
(-> Type Bit)
(let [functions_have_contravariant_inputs!
- (..succeeds? (/.check (#.Function Sub nominal) (#.Function Super nominal)))
+ (..succeeds? (/.check {#.Function Sub nominal} {#.Function Super nominal}))
functions_have_covariant_outputs!
- (..succeeds? (/.check (#.Function nominal Super) (#.Function nominal Sub)))]
+ (..succeeds? (/.check {#.Function nominal Super} {#.Function nominal Sub}))]
(and functions_have_contravariant_inputs!
functions_have_covariant_outputs!)))
(def: (verdict check)
(All (_ _) (-> (/.Check _) (/.Check Bit)))
(function (_ context)
- (#try.Success [context (case (check context)
- (#try.Success _)
+ {#try.Success [context (case (check context)
+ {#try.Success _}
true
- (#try.Failure _)
- false)])))
+ {#try.Failure _}
+ false)]}))
(def: (build_ring tail_size)
(-> Nat (/.Check [Type (List Type) Type]))
@@ -577,9 +578,9 @@
(def: (names_do_not_affect_types! left_name right_name nominal)
(-> Name Name Type Bit)
- (and (..succeeds? (/.check (#.Named left_name Any) nominal))
- (..succeeds? (/.check Any (#.Named right_name nominal)))
- (..succeeds? (/.check (#.Named left_name Any) (#.Named right_name nominal)))))
+ (and (..succeeds? (/.check {#.Named left_name Any} nominal))
+ (..succeeds? (/.check Any {#.Named right_name nominal}))
+ (..succeeds? (/.check {#.Named left_name Any} {#.Named right_name nominal}))))
... TODO: Test all the crazy corner cases from /.check_apply
(def: (handles_application! nominal/0 nominal/1)
@@ -637,20 +638,20 @@
(function (_ dirty_type)
(`` ($_ random.either
(random\each (function (_ id)
- (function.constant (#.Ex id)))
+ (function.constant {#.Ex id}))
random.nat)
(do random.monad
[module (random.ascii/upper 10)
short (random.ascii/upper 10)
anonymousT dirty_type]
(in (function (_ holeT)
- (#.Named [module short] (anonymousT holeT)))))
+ {#.Named [module short] (anonymousT holeT)})))
(~~ (template [<tag>]
[(do random.monad
[leftT dirty_type
rightT dirty_type]
(in (function (_ holeT)
- (<tag> (leftT holeT) (rightT holeT)))))]
+ {<tag> (leftT holeT) (rightT holeT)})))]
[#.Sum]
[#.Product]
@@ -661,15 +662,15 @@
[name (random.ascii/upper 10)
parameterT dirty_type]
(in (function (_ holeT)
- (#.Primitive name (list (parameterT holeT))))))
+ {#.Primitive name (list (parameterT holeT))})))
(~~ (template [<tag>]
[(do [! random.monad]
[funcT dirty_type
argT dirty_type
body random.nat]
(in (function (_ holeT)
- (<tag> (list (funcT holeT) (argT holeT))
- (#.Parameter body)))))]
+ {<tag> (list (funcT holeT) (argT holeT))
+ {#.Parameter body}})))]
[#.UnivQ]
[#.ExQ]
@@ -704,7 +705,7 @@
(do random.monad
[primitive (random.ascii/upper 3)
parameters (random.list parameters (primitive_type (-- parameters)))]
- (in (#.Primitive primitive parameters))))
+ (in {#.Primitive primitive parameters})))
(def: clean_type
(Random Type)
@@ -726,16 +727,16 @@
(do random.monad
[primitive (random.ascii/upper 10)
example ..clean_type]
- (in (and (/.subsumes? (#.Primitive primitive (list))
- (#.Primitive primitive (list)))
- (/.subsumes? (#.Primitive primitive (list .Any))
- (#.Primitive primitive (list example)))
- (not (/.subsumes? (#.Primitive primitive (list example))
- (#.Primitive primitive (list .Any))))
- (/.subsumes? (#.Primitive primitive (list example))
- (#.Primitive primitive (list .Nothing)))
- (not (/.subsumes? (#.Primitive primitive (list .Nothing))
- (#.Primitive primitive (list example))))
+ (in (and (/.subsumes? {#.Primitive primitive (list)}
+ {#.Primitive primitive (list)})
+ (/.subsumes? {#.Primitive primitive (list .Any)}
+ {#.Primitive primitive (list example)})
+ (not (/.subsumes? {#.Primitive primitive (list example)}
+ {#.Primitive primitive (list .Any)}))
+ (/.subsumes? {#.Primitive primitive (list example)}
+ {#.Primitive primitive (list .Nothing)})
+ (not (/.subsumes? {#.Primitive primitive (list .Nothing)}
+ {#.Primitive primitive (list example)}))
))))
(def: for_subsumption|sum
@@ -743,14 +744,14 @@
(do random.monad
[left ..clean_type
right ..clean_type]
- (in (and (/.subsumes? (#.Sum .Any .Any)
- (#.Sum left right))
- (not (/.subsumes? (#.Sum left right)
- (#.Sum .Any .Any)))
- (/.subsumes? (#.Sum left right)
- (#.Sum .Nothing .Nothing))
- (not (/.subsumes? (#.Sum .Nothing .Nothing)
- (#.Sum left right)))
+ (in (and (/.subsumes? {#.Sum .Any .Any}
+ {#.Sum left right})
+ (not (/.subsumes? {#.Sum left right}
+ {#.Sum .Any .Any}))
+ (/.subsumes? {#.Sum left right}
+ {#.Sum .Nothing .Nothing})
+ (not (/.subsumes? {#.Sum .Nothing .Nothing}
+ {#.Sum left right}))
))))
(def: for_subsumption|product
@@ -758,14 +759,14 @@
(do random.monad
[left ..clean_type
right ..clean_type]
- (in (and (/.subsumes? (#.Product .Any .Any)
- (#.Product left right))
- (not (/.subsumes? (#.Product left right)
- (#.Product .Any .Any)))
- (/.subsumes? (#.Product left right)
- (#.Product .Nothing .Nothing))
- (not (/.subsumes? (#.Product .Nothing .Nothing)
- (#.Product left right)))
+ (in (and (/.subsumes? {#.Product .Any .Any}
+ {#.Product left right})
+ (not (/.subsumes? {#.Product left right}
+ {#.Product .Any .Any}))
+ (/.subsumes? {#.Product left right}
+ {#.Product .Nothing .Nothing})
+ (not (/.subsumes? {#.Product .Nothing .Nothing}
+ {#.Product left right}))
))))
(def: for_subsumption|function
@@ -773,12 +774,12 @@
(do random.monad
[left ..clean_type
right ..clean_type]
- (in (and (/.subsumes? (#.Function .Nothing .Any)
- (#.Function left right))
- (not (/.subsumes? (#.Function left right)
- (#.Function .Nothing .Any)))
- (not (/.subsumes? (#.Function .Any .Nothing)
- (#.Function left right)))
+ (in (and (/.subsumes? {#.Function .Nothing .Any}
+ {#.Function left right})
+ (not (/.subsumes? {#.Function left right}
+ {#.Function .Nothing .Any}))
+ (not (/.subsumes? {#.Function .Any .Nothing}
+ {#.Function left right}))
))))
(template [<tag> <name>]
@@ -787,8 +788,8 @@
(do random.monad
[id random.nat
example ..clean_type]
- (in (not (or (/.subsumes? (<tag> id) example)
- (/.subsumes? example (<tag> id)))))))]
+ (in (not (or (/.subsumes? {<tag> id} example)
+ (/.subsumes? example {<tag> id}))))))]
[#.Var for_subsumption|variable]
[#.Ex for_subsumption|existential]
@@ -809,10 +810,10 @@
[module (random.ascii/upper 10)
short (random.ascii/upper 10)
example ..clean_type]
- (in (and (/.subsumes? (#.Named [module short] example)
+ (in (and (/.subsumes? {#.Named [module short] example}
example)
(/.subsumes? example
- (#.Named [module short] example))
+ {#.Named [module short] example})
))))
(def: for_subsumption
@@ -850,8 +851,8 @@
(_.cover [/.result]
(case (/.result /.fresh_context
(\ /.monad in expected))
- (#try.Success actual) (same? expected actual)
- (#try.Failure error) false)))
+ {#try.Success actual} (same? expected actual)
+ {#try.Failure error} false)))
..error_handling
..var
..context
diff --git a/stdlib/source/test/lux/type/dynamic.lux b/stdlib/source/test/lux/type/dynamic.lux
index b9787f8bf..695caa566 100644
--- a/stdlib/source/test/lux/type/dynamic.lux
+++ b/stdlib/source/test/lux/type/dynamic.lux
@@ -26,23 +26,23 @@
($_ _.and
(_.cover [/.:dynamic /.:static]
(case (/.:static Nat (/.:dynamic expected))
- (#try.Success actual)
+ {#try.Success actual}
(n.= expected actual)
- (#try.Failure _)
+ {#try.Failure _}
false))
(_.cover [/.wrong_type]
(case (/.:static Text (/.:dynamic expected))
- (#try.Success actual)
+ {#try.Success actual}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.wrong_type error)))
(_.cover [/.format]
(case (/.format (/.:dynamic expected))
- (#try.Success actual)
+ {#try.Success actual}
(text\= (%.nat expected) actual)
- (#try.Failure _)
+ {#try.Failure _}
false))
))))
diff --git a/stdlib/source/test/lux/type/poly/equivalence.lux b/stdlib/source/test/lux/type/poly/equivalence.lux
index 63854e535..738578386 100644
--- a/stdlib/source/test/lux/type/poly/equivalence.lux
+++ b/stdlib/source/test/lux/type/poly/equivalence.lux
@@ -25,15 +25,15 @@
(type: Variant
(.Variant
- (#Case0 Bit)
- (#Case1 Int)
- (#Case2 Frac)))
+ {#Case0 Bit}
+ {#Case1 Int}
+ {#Case2 Frac}))
(type: Recursive
(Rec Recursive
(.Variant
- (#Number Frac)
- (#Addition Frac Recursive))))
+ {#Number Frac}
+ {#Addition Frac Recursive})))
(type: Record
(.Record
diff --git a/stdlib/source/test/lux/type/poly/json.lux b/stdlib/source/test/lux/type/poly/json.lux
index 0f78aa976..0332e7d00 100644
--- a/stdlib/source/test/lux/type/poly/json.lux
+++ b/stdlib/source/test/lux/type/poly/json.lux
@@ -50,15 +50,15 @@
(type: Variant
(.Variant
- (#Bit Bit)
- (#Text Text)
- (#Frac Frac)))
+ {#Bit Bit}
+ {#Text Text}
+ {#Frac Frac}))
(type: Recursive
(Rec Recursive
(.Variant
- (#Number Frac)
- (#Addition Frac Recursive))))
+ {#Number Frac}
+ {#Addition Frac Recursive})))
(type: Record
(.Record
diff --git a/stdlib/source/test/lux/type/refinement.lux b/stdlib/source/test/lux/type/refinement.lux
index 1b2c17e36..bebde21e2 100644
--- a/stdlib/source/test/lux/type/refinement.lux
+++ b/stdlib/source/test/lux/type/refinement.lux
@@ -39,7 +39,7 @@
($_ _.and
(_.cover [/.refiner]
(case (/.refiner predicate raw)
- (#.Some refined)
+ {#.Some refined}
(predicate raw)
#.None
diff --git a/stdlib/source/test/lux/type/resource.lux b/stdlib/source/test/lux/type/resource.lux
index e8c4b0fba..f78fb8473 100644
--- a/stdlib/source/test/lux/type/resource.lux
+++ b/stdlib/source/test/lux/type/resource.lux
@@ -160,13 +160,13 @@
(monad.do meta.monad
[[_ _ exception] (meta.export exception)]
(function (_ compiler)
- (#.Right [compiler
+ {#.Right [compiler
(list (code.bit (case ((macro.single_expansion to_expand) compiler)
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
- true)))]))))
+ {#try.Failure error}
+ true)))]})))
(def: .public test
Test
diff --git a/stdlib/source/test/lux/world/console.lux b/stdlib/source/test/lux/world/console.lux
index 3f54d54a7..eaf882016 100644
--- a/stdlib/source/test/lux/world/console.lux
+++ b/stdlib/source/test/lux/world/console.lux
@@ -41,12 +41,12 @@
(def: (on_write message [dead? content])
(if dead?
(exception.except ..dead [])
- (#try.Success [dead? (format content message)])))
+ {#try.Success [dead? (format content message)]}))
(def: (on_close [dead? content])
(if dead?
(exception.except ..dead [])
- (#try.Success [true content])))))
+ {#try.Success [true content]}))))
(def: .public test
Test
diff --git a/stdlib/source/test/lux/world/file/watch.lux b/stdlib/source/test/lux/world/file/watch.lux
index aee4f4922..5ad722723 100644
--- a/stdlib/source/test/lux/world/file/watch.lux
+++ b/stdlib/source/test/lux/world/file/watch.lux
@@ -76,16 +76,16 @@
?stop (\ watcher stop directory)]
(_.cover' [/.not_being_watched]
(and (case ?concern
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_being_watched error)
- (#try.Success _)
+ {#try.Success _}
false)
(case ?stop
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.not_being_watched error)
- (#try.Success _)
+ {#try.Success _}
false)))))
)))
@@ -118,7 +118,7 @@
(def: (after_modification! fs watcher data expected_path)
(-> (//.System Async) (/.Watcher Async) Binary //.Path (Async (Try Bit)))
(do (try.with async.monad)
- [_ (async.after 1 (#try.Success "Delay to make sure the over_write time-stamp always changes."))
+ [_ (async.after 1 {#try.Success "Delay to make sure the over_write time-stamp always changes."})
_ (\ fs write data expected_path)
poll/2 (\ watcher poll [])
poll/2' (\ watcher poll [])]
@@ -191,9 +191,9 @@
[started? ( \ watcher start /.all directory)]
(_.cover' [/.cannot_poll_a_non_existent_directory]
(case started?
- (#try.Success _)
+ {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.cannot_poll_a_non_existent_directory error))))))
)))
diff --git a/stdlib/source/test/lux/world/net/http/client.lux b/stdlib/source/test/lux/world/net/http/client.lux
index 1f80ba26b..9a789fd70 100644
--- a/stdlib/source/test/lux/world/net/http/client.lux
+++ b/stdlib/source/test/lux/world/net/http/client.lux
@@ -59,11 +59,11 @@
data (|> value
(\ nat.decimal encoded)
(\ utf8.codec encoded))]
- (#try.Success [//status.ok
+ {#try.Success [//status.ok
[#//.headers headers
#//.body (function (_ ?wanted_bytes)
- (io.io (#try.Success [(binary.size data)
- data])))]]))))))]]
+ (io.io {#try.Success [(binary.size data)
+ data]}))]]})))))]]
(`` ($_ _.and
(~~ (template [<definition> <expected>]
[(_.cover [<definition>]
diff --git a/stdlib/source/test/lux/world/program.lux b/stdlib/source/test/lux/world/program.lux
index eafafecaa..c498a939b 100644
--- a/stdlib/source/test/lux/world/program.lux
+++ b/stdlib/source/test/lux/world/program.lux
@@ -70,9 +70,9 @@
(|> unknown
(\ program variable)
io.run!
- (case> (#try.Success _)
+ (case> {#try.Success _}
false
- (#try.Failure error)
+ {#try.Failure error}
(exception.match? /.unknown_environment_variable error)))))
))))
diff --git a/stdlib/source/test/lux/world/shell.lux b/stdlib/source/test/lux/world/shell.lux
index 8d98b5f1f..daa0a5e11 100644
--- a/stdlib/source/test/lux/world/shell.lux
+++ b/stdlib/source/test/lux/world/shell.lux
@@ -44,22 +44,22 @@
(def: (on_error dead?)
(if dead?
(exception.except ..dead [])
- (#try.Success [dead? ""])))
+ {#try.Success [dead? ""]}))
(def: (on_write message dead?)
(if dead?
(exception.except ..dead [])
- (#try.Success dead?)))
+ {#try.Success dead?}))
(def: (on_destroy dead?)
(if dead?
(exception.except ..dead [])
- (#try.Success true)))
+ {#try.Success true}))
(def: (on_await dead?)
(if dead?
(exception.except ..dead [])
- (#try.Success [true /.normal])))))
+ {#try.Success [true /.normal]}))))
(def: (io_shell command oops input destruction exit)
(-> /.Command Text Text Text /.Exit (/.Shell IO))
@@ -70,15 +70,15 @@
(: (/.Process IO))
(implementation
(def: (read _)
- (io.io (#try.Success command)))
+ (io.io {#try.Success command}))
(def: (error _)
- (io.io (#try.Success oops)))
+ (io.io {#try.Success oops}))
(def: (write message)
- (io.io (#try.Failure message)))
+ (io.io {#try.Failure message}))
(def: (destroy _)
- (io.io (#try.Failure destruction)))
+ (io.io {#try.Failure destruction}))
(def: (await _)
- (io.io (#try.Success exit))))))))
+ (io.io {#try.Success exit})))))))
(def: .public test
Test
@@ -103,20 +103,20 @@
error (\ process error [])
wrote! (do !
[write (\ process write input)]
- (in (#try.Success (case write
- (#try.Success _)
+ (in {#try.Success (case write
+ {#try.Success _}
false
- (#try.Failure write)
- (text\= input write)))))
+ {#try.Failure write}
+ (text\= input write))}))
destroyed! (do !
[destroy (\ process destroy [])]
- (in (#try.Success (case destroy
- (#try.Success _)
+ (in {#try.Success (case destroy
+ {#try.Success _}
false
- (#try.Failure destroy)
- (text\= destruction destroy)))))
+ {#try.Failure destroy}
+ (text\= destruction destroy))}))
await (\ process await [])]
(in (and (text\= command read)
(text\= oops error)