aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/test.yml72
-rw-r--r--lux-cl/source/program.lux8
-rw-r--r--lux-jvm/source/luxc/lang/directive/jvm.lux16
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/case.lux70
-rw-r--r--lux-jvm/source/luxc/lang/translation/jvm/function.lux6
-rw-r--r--lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux549
-rw-r--r--lux-jvm/test/test/luxc/lang/synthesis/loop.lux162
-rw-r--r--lux-jvm/test/test/luxc/lang/synthesis/procedure.lux34
-rw-r--r--lux-jvm/test/test/luxc/lang/translation/js.lux160
-rw-r--r--lux-jvm/test/test/luxc/lang/translation/jvm.lux641
-rw-r--r--lux-php/source/program.lux6
-rw-r--r--lux-python/source/program.lux4
-rw-r--r--lux-r/source/program.lux4
-rw-r--r--lux-ruby/source/program.lux1
-rw-r--r--lux-scheme/source/program.lux4
-rw-r--r--stdlib/source/documentation/lux/control/pipe.lux123
-rw-r--r--stdlib/source/library/lux/control/concurrency/actor.lux11
-rw-r--r--stdlib/source/library/lux/control/concurrency/async.lux11
-rw-r--r--stdlib/source/library/lux/control/concurrency/semaphore.lux8
-rw-r--r--stdlib/source/library/lux/control/pipe.lux146
-rw-r--r--stdlib/source/library/lux/data/collection/bits.lux36
-rw-r--r--stdlib/source/library/lux/data/format/binary.lux58
-rw-r--r--stdlib/source/library/lux/data/format/json.lux87
-rw-r--r--stdlib/source/library/lux/data/format/tar.lux11
-rw-r--r--stdlib/source/library/lux/debug.lux10
-rw-r--r--stdlib/source/library/lux/target/common_lisp.lux59
-rw-r--r--stdlib/source/library/lux/target/js.lux40
-rw-r--r--stdlib/source/library/lux/target/jvm/constant/pool.lux15
-rw-r--r--stdlib/source/library/lux/target/jvm/type/signature.lux51
-rw-r--r--stdlib/source/library/lux/target/lua.lux29
-rw-r--r--stdlib/source/library/lux/target/php.lux29
-rw-r--r--stdlib/source/library/lux/target/python.lux29
-rw-r--r--stdlib/source/library/lux/target/r.lux71
-rw-r--r--stdlib/source/library/lux/target/ruby.lux29
-rw-r--r--stdlib/source/library/lux/target/scheme.lux50
-rw-r--r--stdlib/source/library/lux/test.lux13
-rw-r--r--stdlib/source/library/lux/time.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux23
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/analysis/module.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/analysis/jvm.lux22
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux13
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/primitive.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis.lux19
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/case.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/synthesis/function.lux11
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux1
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/synthesis/simple.lux17
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/cache/module.lux11
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/cli.lux11
-rw-r--r--stdlib/source/library/lux/tool/compiler/reference.lux13
-rw-r--r--stdlib/source/library/lux/tool/compiler/reference/variable.lux63
-rw-r--r--stdlib/source/library/lux/world/file.lux11
-rw-r--r--stdlib/source/library/lux/world/net/http/client.lux127
-rw-r--r--stdlib/source/library/lux/world/net/http/header.lux36
-rw-r--r--stdlib/source/program/aedifex.lux1
-rw-r--r--stdlib/source/program/aedifex/command/deploy.lux1
-rw-r--r--stdlib/source/program/aedifex/input.lux68
-rw-r--r--stdlib/source/program/aedifex/metadata/artifact.lux10
-rw-r--r--stdlib/source/program/aedifex/metadata/snapshot.lux19
-rw-r--r--stdlib/source/program/aedifex/pom.lux7
-rw-r--r--stdlib/source/specification/compositor/analysis/type.lux49
-rw-r--r--stdlib/source/specification/compositor/generation/case.lux98
-rw-r--r--stdlib/source/specification/compositor/generation/common.lux258
-rw-r--r--stdlib/source/specification/compositor/generation/function.lux1
-rw-r--r--stdlib/source/specification/compositor/generation/primitive.lux49
-rw-r--r--stdlib/source/specification/compositor/generation/reference.lux56
-rw-r--r--stdlib/source/specification/compositor/generation/structure.lux106
-rw-r--r--stdlib/source/specification/lux/world/file.lux1
-rw-r--r--stdlib/source/test/aedifex/cli.lux70
-rw-r--r--stdlib/source/test/aedifex/command/auto.lux11
-rw-r--r--stdlib/source/test/aedifex/command/build.lux13
-rw-r--r--stdlib/source/test/aedifex/parser.lux29
-rw-r--r--stdlib/source/test/aedifex/profile.lux1
-rw-r--r--stdlib/source/test/lux/abstract/interval.lux38
-rw-r--r--stdlib/source/test/lux/control/concurrency/async.lux1
-rw-r--r--stdlib/source/test/lux/control/maybe.lux59
-rw-r--r--stdlib/source/test/lux/control/parser/analysis.lux120
-rw-r--r--stdlib/source/test/lux/control/parser/binary.lux95
-rw-r--r--stdlib/source/test/lux/control/parser/json.lux65
-rw-r--r--stdlib/source/test/lux/control/parser/synthesis.lux1
-rw-r--r--stdlib/source/test/lux/control/parser/type.lux1
-rw-r--r--stdlib/source/test/lux/control/pipe.lux115
-rw-r--r--stdlib/source/test/lux/control/state.lux58
-rw-r--r--stdlib/source/test/lux/control/try.lux53
-rw-r--r--stdlib/source/test/lux/data/collection/list.lux13
-rw-r--r--stdlib/source/test/lux/data/collection/tree/zipper.lux204
-rw-r--r--stdlib/source/test/lux/data/format/xml.lux1
-rw-r--r--stdlib/source/test/lux/data/sum.lux16
-rw-r--r--stdlib/source/test/lux/data/text.lux90
-rw-r--r--stdlib/source/test/lux/data/text/regex.lux80
-rw-r--r--stdlib/source/test/lux/ffi.jvm.lux45
-rw-r--r--stdlib/source/test/lux/ffi.old.lux12
-rw-r--r--stdlib/source/test/lux/meta/symbol.lux2
-rw-r--r--stdlib/source/test/lux/target/js.lux13
-rw-r--r--stdlib/source/test/lux/target/lua.lux7
-rw-r--r--stdlib/source/test/lux/target/python.lux1
-rw-r--r--stdlib/source/test/lux/target/ruby.lux7
-rw-r--r--stdlib/source/test/lux/time.lux87
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/analysis.lux86
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux21
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/analysis/macro.lux22
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/analysis/module.lux82
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux7
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux32
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux1
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux50
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux1
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux72
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux42
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux47
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux75
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux59
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux65
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux98
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux1
-rw-r--r--stdlib/source/test/lux/tool/compiler/meta/archive.lux1
-rw-r--r--stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux53
-rw-r--r--stdlib/source/test/lux/tool/compiler/meta/cli.lux47
-rw-r--r--stdlib/source/test/lux/tool/compiler/meta/export.lux64
-rw-r--r--stdlib/source/test/lux/tool/compiler/meta/import.lux1
-rw-r--r--stdlib/source/test/lux/tool/compiler/phase.lux82
-rw-r--r--stdlib/source/test/lux/type.lux76
-rw-r--r--stdlib/source/test/lux/type/check.lux36
-rw-r--r--stdlib/source/test/lux/type/poly/json.lux1
-rw-r--r--stdlib/source/test/lux/world/net/http/client.lux12
-rw-r--r--stdlib/source/test/lux/world/program.lux66
127 files changed, 2449 insertions, 3843 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 916ecdb79..51b51ece0 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,40 +1,40 @@
name: test_everything
on: [push]
jobs:
- test_stdlib:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- # Setup Aedifex
- - run: wget https://github.com/LuxLang/lux/releases/download/0.6.5/aedifex.jar
- - run: mv ./shell/lux.sh ./lux.sh
- # Test on the JVM
- # https://github.com/actions/setup-java
- - uses: actions/setup-java@v2
- with:
- distribution: 'temurin'
- java-version: '17'
- - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with jvm with bibliotheca test && cd ..
- # Test on Node
- - uses: actions/setup-node@v2
- with:
- node-version: '14'
- - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with js with bibliotheca test && cd ..
- # Test on Lua
- # https://github.com/marketplace/actions/setup-lua-luajit
- - uses: xpol/setup-lua@v1
- - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with lua with bibliotheca test && cd ..
- # Test on Python
- # https://github.com/actions/setup-python
- - uses: actions/setup-python@v2
- with:
- python-version: '3.9'
- architecture: 'x64'
- - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with python with bibliotheca test && cd ..
- # Test on Ruby
- # https://github.com/actions/setup-ruby
- - uses: actions/setup-ruby@v1
- with:
- ruby-version: '2.6'
- - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with ruby with bibliotheca test && cd ..
+ test_stdlib:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ # Setup Aedifex
+ - run: wget https://github.com/LuxLang/lux/releases/download/0.6.5/aedifex.jar
+ - run: mv ./shell/lux.sh ./lux.sh
+ # Test on the JVM
+ # https://github.com/actions/setup-java
+ - uses: actions/setup-java@v2
+ with:
+ distribution: 'temurin'
+ java-version: '17'
+ - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with jvm with bibliotheca test && cd ..
+ # Test on Node
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+ - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with js with bibliotheca test && cd ..
+ # Test on Lua
+ # https://github.com/marketplace/actions/setup-lua-luajit
+ - uses: xpol/setup-lua@v1
+ - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with lua with bibliotheca test && cd ..
+ # Test on Python
+ # https://github.com/actions/setup-python
+ - uses: actions/setup-python@v2
+ with:
+ python-version: '3.9'
+ architecture: 'x64'
+ - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with python with bibliotheca test && cd ..
+ # Test on Ruby
+ # https://github.com/actions/setup-ruby
+ - uses: actions/setup-ruby@v1
+ with:
+ ruby-version: '2.6'
+ - run: cd ./stdlib/ && ../lux.sh clean && ../lux.sh with ruby with bibliotheca test && cd ..
diff --git a/lux-cl/source/program.lux b/lux-cl/source/program.lux
index 91571edaf..2e3b31d3e 100644
--- a/lux-cl/source/program.lux
+++ b/lux-cl/source/program.lux
@@ -6,7 +6,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" exec> case> new>}]
+ ["[0]" pipe]
["[0]" maybe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
@@ -164,8 +164,8 @@
(def: host_bit
(-> Bit org/armedbear/lisp/LispObject)
- (|>> (case> #0 (org/armedbear/lisp/Nil::NIL)
- #1 (org/armedbear/lisp/Symbol::T))))
+ (|>> (pipe.case #0 (org/armedbear/lisp/Nil::NIL)
+ #1 (org/armedbear/lisp/Symbol::T))))
(def: (host_value value)
(-> Any org/armedbear/lisp/LispObject)
@@ -267,7 +267,7 @@
[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 [(pipe.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)
diff --git a/lux-jvm/source/luxc/lang/directive/jvm.lux b/lux-jvm/source/luxc/lang/directive/jvm.lux
index 19e98ae20..323c337d5 100644
--- a/lux-jvm/source/luxc/lang/directive/jvm.lux
+++ b/lux-jvm/source/luxc/lang/directive/jvm.lux
@@ -5,7 +5,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try {"+" Try}]
["<>" parser
["<[0]>" code {"+" Parser}]
@@ -857,16 +857,16 @@
(def: visibility
(-> ffi.Privacy jvm.Visibility)
- (|>> (case> {ffi.#PublicP} {jvm.#Public}
- {ffi.#PrivateP} {jvm.#Private}
- {ffi.#ProtectedP} {jvm.#Protected}
- {ffi.#DefaultP} {jvm.#Default})))
+ (|>> (pipe.case {ffi.#PublicP} {jvm.#Public}
+ {ffi.#PrivateP} {jvm.#Private}
+ {ffi.#ProtectedP} {jvm.#Protected}
+ {ffi.#DefaultP} {jvm.#Default})))
(def: field_config
(-> ffi.State jvm.Field_Config)
- (|>> (case> {ffi.#VolatileS} jvm.volatileF
- {ffi.#FinalS} jvm.finalF
- {ffi.#DefaultS} jvm.noneF)))
+ (|>> (pipe.case {ffi.#VolatileS} jvm.volatileF
+ {ffi.#FinalS} jvm.finalF
+ {ffi.#DefaultS} jvm.noneF)))
(def: (field_header [name privacy state annotations type])
(-> Field jvm.Def)
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/case.lux b/lux-jvm/source/luxc/lang/translation/jvm/case.lux
index 94a3deb05..9a5172966 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/case.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/case.lux
@@ -1,39 +1,39 @@
(.using
- [library
- [lux {"-" Type Label Primitive if exec let case}
- [abstract
- ["[0]" monad {"+" do}]]
- [control
- ["[0]" function]
- ["ex" exception {"+" exception:}]]
- [data
- [collection
- ["[0]" list ("[1]@[0]" mix)]]]
- [math
- [number
- ["n" nat]]]
- [target
- [jvm
- ["[0]" type {"+" Type}
- ["[0]" category {"+" Void Value Return Primitive Object Class Array Var Parameter Method}]
- ["[0]" descriptor {"+" Descriptor}]
- ["[0]" signature {"+" Signature}]]]]
- [tool
- [compiler
- ["[0]" phase ("operation@[0]" monad)]
- [meta
- [archive {"+" Archive}]]
- [language
- [lux
- ["[0]" synthesis {"+" Path Synthesis}]]]]]]]
- [luxc
- [lang
- [host
- ["$" jvm {"+" Label Inst Operation Phase Generator}
- ["_" inst]]]]]
- ["[0]" //
- ["[0]" runtime]
- ["[0]" structure]])
+ [library
+ [lux {"-" Type Label Primitive if exec let case}
+ [abstract
+ ["[0]" monad {"+" do}]]
+ [control
+ ["[0]" function]
+ ["ex" exception {"+" exception:}]]
+ [data
+ [collection
+ ["[0]" list ("[1]@[0]" mix)]]]
+ [math
+ [number
+ ["n" nat]]]
+ [target
+ [jvm
+ ["[0]" type {"+" Type}
+ ["[0]" category {"+" Void Value Return Primitive Object Class Array Var Parameter Method}]
+ ["[0]" descriptor {"+" Descriptor}]
+ ["[0]" signature {"+" Signature}]]]]
+ [tool
+ [compiler
+ ["[0]" phase ("operation@[0]" monad)]
+ [meta
+ [archive {"+" Archive}]]
+ [language
+ [lux
+ ["[0]" synthesis {"+" Path Synthesis}]]]]]]]
+ [luxc
+ [lang
+ [host
+ ["$" jvm {"+" Label Inst Operation Phase Generator}
+ ["_" inst]]]]]
+ ["[0]" //
+ ["[0]" runtime]
+ ["[0]" structure]])
(def: (pop_altI stack_depth)
(-> Nat Inst)
diff --git a/lux-jvm/source/luxc/lang/translation/jvm/function.lux b/lux-jvm/source/luxc/lang/translation/jvm/function.lux
index 6c0e29730..92ca0e16c 100644
--- a/lux-jvm/source/luxc/lang/translation/jvm/function.lux
+++ b/lux-jvm/source/luxc/lang/translation/jvm/function.lux
@@ -5,7 +5,7 @@
["[0]" monad {"+" do}]
["[0]" enum]]
[control
- [pipe {"+" when> new>}]
+ ["[0]" pipe]
["[0]" function]]
[data
["[0]" product]
@@ -217,8 +217,8 @@
(cond (i.= over_extent (.int stage))
(|>> (_.label @label)
(_.ALOAD 0)
- (when> [(new> (n.> 0 stage) [])]
- [(_.INVOKEVIRTUAL class "reset" (reset_method class))])
+ (pipe.when [(pipe.new (n.> 0 stage) [])]
+ [(_.INVOKEVIRTUAL class "reset" (reset_method class))])
load_partialsI
(inputsI 1 apply_arity)
(_.INVOKEVIRTUAL class "impl" (implementation_method function_arity))
diff --git a/lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux b/lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux
deleted file mode 100644
index c42eddb60..000000000
--- a/lux-jvm/test/test/luxc/lang/analysis/host.jvm.lux
+++ /dev/null
@@ -1,549 +0,0 @@
-(.using
- [lux "*"
- [control
- pipe
- [monad {"+" do}]
- ["[0]" maybe]]
- [data
- ["e" error]
- ["[0]" product]
- [text ("text/" Equivalence<Text>)
- format]
- [collection
- ["[0]" array]
- [list ("list/" Mix<List>)]
- ["dict" dictionary]]]
- [math
- ["r" random "r/" Monad<Random>]]
- ["[0]" type]
- [macro {"+" Monad<Meta>}
- ["[0]" code]]
- [compiler
- ["[0]" default
- ["[0]L" init]
- [phase
- [analysis
- ["[0]A" type]]
- [extension
- [analysis
- ["[0]AE" host]]]]]]
- test]
- [///
- ["_[0]" primitive]])
-
-(template [<name> <success> <failure>]
- [(def: (<name> procedure params output-type)
- (-> Text (List Code) Type Bit)
- (|> (do Monad<Meta>
- [... runtime-bytecode @runtime.translate
- ]
- (default.with-scope
- (typeA.with-type output-type
- (_primitive.analyse (` ((~ (code.text procedure)) (~+ params)))))))
- (analysis.with-current-module "")
- (macro.result (initL.compiler []))
- (case> {e.#Success _}
- <success>
-
- {e.#Error error}
- <failure>)))]
-
- [success #1 #0]
- [failure #0 #1]
- )
-
-(template [<name> <success> <failure>]
- [(def: (<name> syntax output-type)
- (-> Code Type Bit)
- (|> (do Monad<Meta>
- [... runtime-bytecode @runtime.translate
- ]
- (default.with-scope
- (typeA.with-type output-type
- (_primitive.analyse syntax))))
- (analysis.with-current-module "")
- (macro.result (initL.compiler []))
- (case> {e.#Success _}
- <success>
-
- {e.#Error error}
- <failure>)))]
-
- [success' #1 #0]
- [failure' #0 #1]
- )
-
-(context: "Conversions [double + float]."
- (with-expansions [<conversions> (template [<procedure> <from> <to>]
- [(test (format <procedure> " SUCCESS")
- (success <procedure> (list (' ("lux coerce" (+0 <from> (+0)) []))) <to>))
- (test (format <procedure> " FAILURE")
- (failure <procedure> (list (' [])) <to>))]
-
- ["jvm convert double-to-float" "java.lang.Double" hostAE.Float]
- ["jvm convert double-to-int" "java.lang.Double" hostAE.Integer]
- ["jvm convert double-to-long" "java.lang.Double" hostAE.Long]
- ["jvm convert float-to-double" "java.lang.Float" hostAE.Double]
- ["jvm convert float-to-int" "java.lang.Float" hostAE.Integer]
- ["jvm convert float-to-long" "java.lang.Float" hostAE.Long]
- )]
- ($_ seq
- <conversions>
- )))
-
-(context: "Conversions [int]."
- (with-expansions [<conversions> (template [<procedure> <from> <to>]
- [(test (format <procedure> " SUCCESS")
- (success <procedure> (list (' ("lux coerce" (+0 <from> (+0)) []))) <to>))
- (test (format <procedure> " FAILURE")
- (failure <procedure> (list (' [])) <to>))]
-
- ["jvm convert int-to-byte" "java.lang.Integer" hostAE.Byte]
- ["jvm convert int-to-char" "java.lang.Integer" hostAE.Character]
- ["jvm convert int-to-double" "java.lang.Integer" hostAE.Double]
- ["jvm convert int-to-float" "java.lang.Integer" hostAE.Float]
- ["jvm convert int-to-long" "java.lang.Integer" hostAE.Long]
- ["jvm convert int-to-short" "java.lang.Integer" hostAE.Short]
- )]
- ($_ seq
- <conversions>
- )))
-
-(context: "Conversions [long]."
- (with-expansions [<conversions> (template [<procedure> <from> <to>]
- [(test (format <procedure> " SUCCESS")
- (success <procedure> (list (' ("lux coerce" (+0 <from> (+0)) []))) <to>))
- (test (format <procedure> " FAILURE")
- (failure <procedure> (list (' [])) <to>))]
-
- ["jvm convert long-to-double" "java.lang.Long" hostAE.Double]
- ["jvm convert long-to-float" "java.lang.Long" hostAE.Float]
- ["jvm convert long-to-int" "java.lang.Long" hostAE.Integer]
- ["jvm convert long-to-short" "java.lang.Long" hostAE.Short]
- ["jvm convert long-to-byte" "java.lang.Long" hostAE.Byte]
- )]
- ($_ seq
- <conversions>
- )))
-
-(context: "Conversions [char + byte + short]."
- (with-expansions [<conversions> (template [<procedure> <from> <to>]
- [(test (format <procedure> " SUCCESS")
- (success <procedure> (list (' ("lux coerce" (+0 <from> (+0)) []))) <to>))
- (test (format <procedure> " FAILURE")
- (failure <procedure> (list (' [])) <to>))]
-
- ["jvm convert char-to-byte" "java.lang.Character" hostAE.Byte]
- ["jvm convert char-to-short" "java.lang.Character" hostAE.Short]
- ["jvm convert char-to-int" "java.lang.Character" hostAE.Integer]
- ["jvm convert char-to-long" "java.lang.Character" hostAE.Long]
- ["jvm convert byte-to-long" "java.lang.Byte" hostAE.Long]
- ["jvm convert short-to-long" "java.lang.Short" hostAE.Long]
- )]
- ($_ seq
- <conversions>
- )))
-
-(template [<domain> <boxed> <type>]
- [(context: (format "Arithmetic " "[" <domain> "].")
- (with-expansions [<instructions> (template [<procedure> <subject> <param> <output>]
- [(test <procedure>
- (success <procedure>
- (list (' ("lux coerce" (+0 <subject> (+0)) []))
- (' ("lux coerce" (+0 <param> (+0)) [])))
- <output>))]
-
- [(format "jvm " <domain> " +") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " -") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " *") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " /") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " %") <boxed> <boxed> <type>]
- )]
- ($_ seq
- <instructions>
- )))
-
- (context: (format "Order " "[" <domain> "].")
- (with-expansions [<instructions> (template [<procedure> <subject> <param> <output>]
- [(test <procedure>
- (success <procedure>
- (list (' ("lux coerce" (+0 <subject> (+0)) []))
- (' ("lux coerce" (+0 <param> (+0)) [])))
- <output>))]
-
- [(format "jvm " <domain> " =") <boxed> <boxed> hostAE.Boolean]
- [(format "jvm " <domain> " <") <boxed> <boxed> hostAE.Boolean]
- )]
- ($_ seq
- <instructions>
- )))
-
- (context: (format "Bitwise " "[" <domain> "].")
- (with-expansions [<instructions> (template [<procedure> <subject> <param> <output>]
- [(test <procedure>
- (success <procedure>
- (list (' ("lux coerce" (+0 <subject> (+0)) []))
- (' ("lux coerce" (+0 <param> (+0)) [])))
- <output>))]
-
- [(format "jvm " <domain> " and") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " or") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " xor") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " shl") <boxed> "java.lang.Integer" <type>]
- [(format "jvm " <domain> " shr") <boxed> "java.lang.Integer" <type>]
- [(format "jvm " <domain> " ushr") <boxed> "java.lang.Integer" <type>]
- )]
- ($_ seq
- <instructions>
- )))]
-
-
- ["int" "java.lang.Integer" hostAE.Integer]
- ["long" "java.lang.Long" hostAE.Long]
- )
-
-(template [<domain> <boxed> <type>]
- [(context: (format "Arithmetic " "[" <domain> "].")
- (with-expansions [<instructions> (template [<procedure> <subject> <param> <output>]
- [(test <procedure>
- (success <procedure>
- (list (' ("lux coerce" (+0 <subject> (+0)) []))
- (' ("lux coerce" (+0 <param> (+0)) [])))
- <output>))]
-
- [(format "jvm " <domain> " +") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " -") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " *") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " /") <boxed> <boxed> <type>]
- [(format "jvm " <domain> " %") <boxed> <boxed> <type>]
- )]
- ($_ seq
- <instructions>
- )))
-
- (context: (format "Order " "[" <domain> "].")
- (with-expansions [<instructions> (template [<procedure> <subject> <param> <output>]
- [(test <procedure>
- (success <procedure>
- (list (' ("lux coerce" (+0 <subject> (+0)) []))
- (' ("lux coerce" (+0 <param> (+0)) [])))
- <output>))]
-
- [(format "jvm " <domain> " =") <boxed> <boxed> hostAE.Boolean]
- [(format "jvm " <domain> " <") <boxed> <boxed> hostAE.Boolean]
- )]
- ($_ seq
- <instructions>
- )))]
-
-
- ["float" "java.lang.Float" hostAE.Float]
- ["double" "java.lang.Double" hostAE.Double]
- )
-
-(template [<domain> <boxed> <type>]
- [(context: (format "Order " "[" <domain> "].")
- (with-expansions [<instructions> (template [<procedure> <subject> <param> <output>]
- [(test <procedure>
- (success <procedure>
- (list (' ("lux coerce" (+0 <subject> (+0)) []))
- (' ("lux coerce" (+0 <param> (+0)) [])))
- <output>))]
-
- [(format "jvm " <domain> " =") <boxed> <boxed> hostAE.Boolean]
- [(format "jvm " <domain> " <") <boxed> <boxed> hostAE.Boolean]
- )]
- ($_ seq
- <instructions>
- )))]
-
-
- ["char" "java.lang.Character" hostAE.Character]
- )
-
-(def: array-type
- (r.Random [Text Text])
- (let [entries (dict.entries hostAE.boxes)
- num-entries (list.size entries)]
- (do r.Monad<Random>
- [choice (|> r.nat (:: @ each (n/% (++ num-entries))))
- #let [[unboxed boxed] (: [Text Text]
- (|> entries
- (list.nth choice)
- (maybe.default ["java.lang.Object" "java.lang.Object"])))]]
- (wrap [unboxed boxed]))))
-
-(context: "Array."
- (<| (times +100)
- (do @
- [#let [cap (|>> (n/% +10) (n/max +1))]
- [unboxed boxed] array-type
- 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)}
- arrayC (`' ("lux check" (+0 "#Array" (+1 (+0 (~ (code.text unboxed)) (+0)) (+0)))
- ("jvm array new" (~ (code.nat size)))))
- boxedT {.#Primitive boxed (list)}
- boxedTC (` (+0 (~ (code.text boxed)) (+0)))
- multi-arrayT (list/mix (function (_ _ innerT)
- (|> innerT (list) {.#Primitive "#Array"}))
- boxedT
- (list.n/range +1 level))]]
- ($_ seq
- (test "jvm array new"
- (success "jvm array new"
- (list (code.nat size))
- arrayT))
- (test "jvm array new (no nesting)"
- (failure "jvm array new"
- (list (code.nat size))
- unboxedT))
- (test "jvm array new (nested/multi-level)"
- (success "jvm array new"
- (list (code.nat size))
- multi-arrayT))
- (test "jvm array length"
- (success "jvm array length"
- (list arrayC)
- Nat))
- (test "jvm array read"
- (success' (` ("jvm object cast"
- ("jvm array read" (~ arrayC) (~ (code.nat idx)))))
- boxedT))
- (test "jvm array write"
- (success "jvm array write"
- (list arrayC (code.nat idx) (`' ("lux coerce" (~ boxedTC) [])))
- arrayT))
- ))))
-
-(def: throwables
- (List Text)
- (list "java.lang.Throwable"
- "java.lang.Error"
- "java.io.IOError"
- "java.lang.VirtualMachineError"
- "java.lang.Exception"
- "java.io.IOException"
- "java.lang.RuntimeException"))
-
-(context: "Object."
- (<| (times +100)
- (do @
- [[unboxed boxed] array-type
- [!unboxed !boxed] (|> array-type
- (r.filter (function (_ [!unboxed !boxed])
- (not (text/= boxed !boxed)))))
- #let [boxedT {.#Primitive boxed (list)}
- boxedC (`' ("lux check" (+0 (~ (code.text boxed)) (+0))
- ("jvm object null")))
- !boxedC (`' ("lux check" (+0 (~ (code.text !boxed)) (+0))
- ("jvm object null")))
- unboxedC (`' ("lux check" (+0 (~ (code.text unboxed)) (+0))
- ("jvm object null")))]
- throwable (|> r.nat
- (:: @ each (n/% (++ (list.size throwables))))
- (:: @ each (function (_ idx)
- (|> throwables
- (list.nth idx)
- (maybe.default "java.lang.Object")))))
- #let [throwableC (`' ("lux check" (+0 (~ (code.text throwable)) (+0))
- ("jvm object null")))]]
- ($_ seq
- (test "jvm object null"
- (success "jvm object null"
- (list)
- {.#Primitive boxed (list)}))
- (test "jvm object null (no primitives)"
- (or (text/= "java.lang.Object" boxed)
- (failure "jvm object null"
- (list)
- {.#Primitive unboxed (list)})))
- (test "jvm object null?"
- (success "jvm object null?"
- (list boxedC)
- Bit))
- (test "jvm object synchronized"
- (success "jvm object synchronized"
- (list boxedC boxedC)
- boxedT))
- (test "jvm object synchronized (no primitives)"
- (or (text/= "java.lang.Object" boxed)
- (failure "jvm object synchronized"
- (list unboxedC boxedC)
- boxedT)))
- (test "jvm object throw"
- (or (text/= "java.lang.Object" throwable)
- (success "jvm object throw"
- (list throwableC)
- Nothing)))
- (test "jvm object class"
- (success "jvm object class"
- (list (code.text boxed))
- {.#Primitive "java.lang.Class" (list boxedT)}))
- (test "jvm object instance?"
- (success "jvm object instance?"
- (list (code.text boxed)
- boxedC)
- Bit))
- (test "jvm object instance? (lineage)"
- (success "jvm object instance?"
- (list (' "java.lang.Object")
- boxedC)
- Bit))
- (test "jvm object instance? (no lineage)"
- (or (text/= "java.lang.Object" boxed)
- (failure "jvm object instance?"
- (list (code.text boxed)
- !boxedC)
- Bit)))
- ))))
-
-(context: "Member [Static Field]."
- ($_ seq
- (test "jvm member static get"
- (success "jvm member static get"
- (list (code.text "java.lang.System")
- (code.text "out"))
- {.#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)}))
- (test "jvm member static put"
- (success "jvm member static put"
- (list (code.text "java.awt.datatransfer.DataFlavor")
- (code.text "allHtmlFlavor")
- (`' ("lux check" (+0 "java.awt.datatransfer.DataFlavor" (+0))
- ("jvm object null"))))
- Any))
- (test "jvm member static put (final)"
- (failure "jvm member static put"
- (list (code.text "java.lang.System")
- (code.text "out")
- (`' ("lux check" (+0 "java.io.PrintStream" (+0))
- ("jvm object null"))))
- Any))
- (test "jvm member static put (inheritance in)"
- (success "jvm member static put"
- (list (code.text "java.awt.datatransfer.DataFlavor")
- (code.text "allHtmlFlavor")
- (`' ("jvm object cast"
- ("lux check" (+0 "javax.activation.ActivationDataFlavor" (+0))
- ("jvm object null")))))
- Any))
- ))
-
-(context: "Member [Virtual Field]."
- ($_ seq
- (test "jvm member virtual get"
- (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.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)}))
- (test "jvm member virtual put"
- (success "jvm member virtual put"
- (list (code.text "org.omg.CORBA.ValueMember")
- (code.text "id")
- (`' ("lux check" (+0 "java.lang.String" (+0))
- ("jvm object null")))
- (`' ("lux check" (+0 "org.omg.CORBA.ValueMember" (+0))
- ("jvm object null"))))
- (Primitive "org.omg.CORBA.ValueMember")))
- (test "jvm member virtual put (final)"
- (failure "jvm member virtual put"
- (list (code.text "javax.swing.text.html.parser.DTD")
- (code.text "applet")
- (`' ("lux check" (+0 "javax.swing.text.html.parser.Element" (+0))
- ("jvm object null")))
- (`' ("lux check" (+0 "javax.swing.text.html.parser.DTD" (+0))
- ("jvm object null"))))
- (Primitive "javax.swing.text.html.parser.DTD")))
- (test "jvm member virtual put (inheritance in)"
- (success "jvm member virtual put"
- (list (code.text "java.awt.GridBagConstraints")
- (code.text "insets")
- (`' ("jvm object cast"
- ("lux check" (+0 "javax.swing.plaf.InsetsUIResource" (+0))
- ("jvm object null"))))
- (`' ("lux check" (+0 "java.awt.GridBagConstraints" (+0))
- ("jvm object null"))))
- (Primitive "java.awt.GridBagConstraints")))
- ))
-
-(context: "Boxing/Unboxing."
- ($_ seq
- (test "jvm member static get"
- (success "jvm member static get"
- (list (code.text "java.util.GregorianCalendar")
- (code.text "AD"))
- {.#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)}))
- (test "jvm member virtual put"
- (success "jvm member virtual put"
- (list (code.text "javax.accessibility.AccessibleAttributeSequence")
- (code.text "startIndex")
- (`' ("jvm object cast"
- ("lux check" (+0 "java.lang.Integer" (+0))
- ("jvm object null"))))
- (`' ("lux check" (+0 "javax.accessibility.AccessibleAttributeSequence" (+0))
- ("jvm object null"))))
- (Primitive "javax.accessibility.AccessibleAttributeSequence")))
- ))
-
-(context: "Member [Method]."
- (let [longC (' ("lux coerce" (+0 "java.lang.Long" (+0))
- +123))
- intC (`' ("jvm convert long-to-int" (~ longC)))
- stringC (' ("lux coerce" (+0 "java.lang.String" (+0))
- "YOLO"))
- objectC (`' ("lux check" (+0 "java.util.ArrayList" (+1 (+0 "java.lang.Long" (+0)) (+0)))
- ("jvm member invoke constructor" "java.util.ArrayList"
- ["int" ("jvm object cast" (~ intC))])))]
- ($_ seq
- (test "jvm member invoke static"
- (success' (` ("jvm member invoke static"
- "java.lang.Long" "decode"
- ["java.lang.String" (~ stringC)]))
- {.#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)}))
- (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)}))
- (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)}))
- (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)})))
- )))
diff --git a/lux-jvm/test/test/luxc/lang/synthesis/loop.lux b/lux-jvm/test/test/luxc/lang/synthesis/loop.lux
deleted file mode 100644
index 51e4f3ace..000000000
--- a/lux-jvm/test/test/luxc/lang/synthesis/loop.lux
+++ /dev/null
@@ -1,162 +0,0 @@
-(.using
- lux
- (lux [io]
- (control [monad {"+" do}])
- (data [bit "bit/" Eq<Bit>]
- [number]
- (coll [list "list/" Functor<List>]
- (set ["set" unordered]))
- text/format)
- (macro [code])
- ["r" math/random "r/" Monad<Random>]
- test)
- (luxc (lang ["la" analysis]
- ["ls" synthesis]
- (synthesis ["[0]S" expression]
- ["[0]S" loop])
- ["[0]L" extension]))
- (// common))
-
-(def: (does-recursion? arity exprS)
- (-> ls.Arity ls.Synthesis Bit)
- (loop [exprS exprS]
- (case exprS
- (^ [_ {.#Form (list [_ {.#Text "lux case"}] inputS pathS)}])
- (loop [pathS pathS]
- (case pathS
- (^ [_ {.#Form (list [_ {.#Text "lux case alt"}] leftS rightS)}])
- (or (again leftS)
- (again rightS))
-
- (^ [_ {.#Form (list [_ {.#Text "lux case seq"}] leftS rightS)}])
- (again rightS)
-
- (^ [_ {.#Form (list [_ {.#Text "lux case exec"}] bodyS)}])
- (does-recursion? arity bodyS)
-
- _
- #0))
-
- (^ [_ {.#Form (list& [_ {.#Text "lux again"}] argsS)}])
- (n/= arity (list.size argsS))
-
- (^ [_ {.#Form (list [_ {.#Text "lux let"}] register inputS bodyS)}])
- (again bodyS)
-
- (^ [_ {.#Form (list [_ {.#Text "lux if"}] inputS thenS elseS)}])
- (or (again thenS)
- (again elseS))
-
- _
- #0
- )))
-
-(def: (gen-body arity output)
- (-> Nat la.Analysis (r.Random la.Analysis))
- (r.either (r.either (r/wrap output)
- (do r.Monad<Random>
- [inputA (|> r.nat (:: @ each code.nat))
- num-cases (|> r.nat (:: @ each (|>> (n/% +10) (n/max +1))))
- tests (|> (r.set number.Hash<Nat> num-cases r.nat)
- (:: @ each (|>> set.to-list (list/each code.nat))))
- #let [bad-bodies (list.repeat num-cases (' []))]
- good-body (gen-body arity output)
- where-to-set (|> r.nat (:: @ each (n/% num-cases)))
- #let [bodies (list.together (list (list.first where-to-set bad-bodies)
- (list good-body)
- (list.after (n/++ where-to-set) bad-bodies)))]]
- (wrap (` ("lux case" (~ inputA)
- (~ (code.record (list.zip2 tests bodies))))))))
- (r.either (do r.Monad<Random>
- [valueS r.bit
- output' (gen-body (n/++ arity) output)]
- (wrap (` ("lux case" (~ (code.bit valueS))
- {("lux case bind" (~ (code.nat arity))) (~ output')}))))
- (do r.Monad<Random>
- [valueS r.bit
- then|else r.bit
- output' (gen-body arity output)
- #let [thenA (if then|else output' (' []))
- elseA (if (not then|else) output' (' []))]]
- (wrap (` ("lux case" (~ (code.bit valueS))
- {(~ (code.bit then|else)) (~ thenA)
- (~ (code.bit (not then|else))) (~ elseA)})))))
- ))
-
-(def: (make-function arity body)
- (-> ls.Arity la.Analysis la.Analysis)
- (case arity
- +0 body
- _ (` ("lux function" [] (~ (make-function (n/-- arity) body))))))
-
-(def: gen-recursion
- (r.Random [Bit Nat la.Analysis])
- (do r.Monad<Random>
- [arity (|> r.nat (:: @ each (|>> (n/% +10) (n/max +1))))
- again? r.bit
- outputS (if again?
- (wrap (la.apply (list.repeat arity (' [])) (la.var 0)))
- (do @
- [plus-or-minus? r.bit
- how-much (|> r.nat (:: @ each (|>> (n/% arity) (n/max +1))))
- #let [shift (if plus-or-minus? n/+ n/-)]]
- (wrap (la.apply (list.repeat (shift how-much arity) (' [])) (la.var 0)))))
- bodyS (gen-body arity outputS)]
- (wrap [again? arity (make-function arity bodyS)])))
-
-(def: gen-loop
- (r.Random [Bit Nat la.Analysis])
- (do r.Monad<Random>
- [arity (|> r.nat (:: @ each (|>> (n/% +10) (n/max +1))))
- again? r.bit
- self-ref? r.bit
- #let [selfA (la.var 0)
- argA (if self-ref? selfA (' []))]
- outputS (if again?
- (wrap (la.apply (list.repeat arity argA) selfA))
- (do @
- [plus-or-minus? r.bit
- how-much (|> r.nat (:: @ each (|>> (n/% arity) (n/max +1))))
- #let [shift (if plus-or-minus? n/+ n/-)]]
- (wrap (la.apply (list.repeat (shift how-much arity) (' [])) selfA))))
- bodyS (gen-body arity outputS)]
- (wrap [(and again? (not self-ref?))
- arity
- (make-function arity bodyS)])))
-
-(context: "Recursion."
- (<| (times +100)
- (do @
- [[prediction arity analysis] gen-recursion]
- ($_ seq
- (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)}])
- (|> _body
- (does-recursion? arity)
- (bit/= prediction)
- (and (n/= arity _arity)))
-
- _
- #0))))))
-
-(context: "Loop."
- (<| (times +100)
- (do @
- [[prediction arity analysis] gen-recursion]
- ($_ seq
- (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)}])
- (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)}])
- (loopS.contains-self-reference? _bodyS)
-
- _
- #0))))))
diff --git a/lux-jvm/test/test/luxc/lang/synthesis/procedure.lux b/lux-jvm/test/test/luxc/lang/synthesis/procedure.lux
deleted file mode 100644
index 73d8ee873..000000000
--- a/lux-jvm/test/test/luxc/lang/synthesis/procedure.lux
+++ /dev/null
@@ -1,34 +0,0 @@
-(.using
- lux
- (lux [io]
- (control [monad {"+" do}]
- pipe)
- (data [text "text/" Eq<Text>]
- [product]
- (coll [list]))
- ["r" math/random "r/" Monad<Random>]
- test)
- (luxc (lang ["la" analysis]
- ["ls" synthesis]
- (synthesis ["[0]S" expression])
- ["[0]L" extension]))
- (// common))
-
-(context: "Procedures"
- (<| (times +100)
- (do @
- [num-args (|> r.nat (:: @ each (n/% +10)))
- nameA (r.text +5)
- argsA (r.list num-args gen-primitive)]
- ($_ seq
- (test "Can synthesize procedure calls."
- (|> (expressionS.synthesize extensionL.no-syntheses
- (la.procedure nameA argsA))
- (case> (^ [_ {.#Form (list& [_ {.#Text procedure}] argsS)}])
- (and (text/= nameA procedure)
- (list.every? (product.uncurried corresponds?)
- (list.zip2 argsA argsS)))
-
- _
- #0)))
- ))))
diff --git a/lux-jvm/test/test/luxc/lang/translation/js.lux b/lux-jvm/test/test/luxc/lang/translation/js.lux
deleted file mode 100644
index 3487c24f8..000000000
--- a/lux-jvm/test/test/luxc/lang/translation/js.lux
+++ /dev/null
@@ -1,160 +0,0 @@
-(.using
- lux
- (lux [io {"+" IO}]
- (control [monad {"+" do}]
- pipe)
- (data ["e" error]
- text/format
- [number]
- (coll [list "list/" Functor<List>]
- [set]))
- [math]
- ["r" math/random]
- (macro [code])
- test)
- (luxc (lang [synthesis {"+" Synthesis}]))
- (test/luxc common))
-
-(def: upper-alpha-ascii
- (r.Random Nat)
- (|> r.nat (:: r.Functor<Random> each (|>> (n/% +91) (n/max +65)))))
-
-(def: (test-primitive-identity synthesis)
- (-> Synthesis Bit)
- (|> (run-js (` ("lux is" (~ synthesis) (~ synthesis))))
- (case> {e.#Success valueV}
- (:coerce Bit valueV)
-
- _
- #0)))
-
-(type: Check (-> (e.Error Any) Bit))
-
-(template [<name> <type> <pre> <=>]
- [(def: (<name> angle)
- (-> <type> Check)
- (|>> (case> {e.#Success valueV}
- (<=> (<pre> angle) (:coerce <type> valueV))
-
- {e.#Error error}
- #0)))]
-
- [sin-check Frac math.sin f/=]
- [length-check Nat id n/=]
- )
-
-(context: "[JS] Primitives."
- ($_ seq
- (test "Null is equal to itself."
- (test-primitive-identity (` ("js null"))))
- (test "Undefined is equal to itself."
- (test-primitive-identity (` ("js undefined"))))
- (test "Object comparison is by reference, not by value."
- (not (test-primitive-identity (` ("js object")))))
- (test "Values are equal to themselves."
- (test-primitive-identity (` ("js global" "Math"))))
- (<| (times +100)
- (do @
- [value r.int
- #let [frac-value (int-to-frac value)]]
- (test "Can call primitive functions."
- (|> (run-js (` ("js call" ("js global" "Math.sin") (~ (code.text (%f frac-value))))))
- (sin-check frac-value)))))
- ))
-
-(context: "[JS] Objects."
- (<| (times +100)
- (do @
- [field (:: @ each code.text (r.text' upper-alpha-ascii +5))
- value r.int
- #let [empty-object (` ("js object"))
- object (` ("js object set" (~ field) (~ (code.int value)) (~ empty-object)))
- frac-value (int-to-frac value)]]
- ($_ seq
- (test "Cannot get non-existing fields from objects."
- (|> (run-js (` ("js object get" (~ field) (~ empty-object))))
- (case> (^multi {e.#Success valueV}
- [(:coerce (Maybe Int) valueV) {.#None}])
- #1
-
- _
- #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}])
- (i/= value (:coerce Int valueV))
-
- _
- #0)))
- (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}
- [(:coerce (Maybe Int) valueV) {.#None}])
- #1
-
- _
- #0)))
- (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}
- (f/= frac-value (:coerce Frac valueV))
-
- {e.#Error error}
- #0))))
- (test "Can call methods on objects."
- (|> (run-js (` ("js object call" ("js global" "Math") "sin" (~ (code.text (%f frac-value))))))
- (sin-check frac-value)))
- ))))
-
-(context: "[JS] Arrays."
- (<| (times +100)
- (do @
- [length (|> r.nat (:: @ each (|>> (n/% +10) (n/max +1))))
- idx (|> r.nat (:: @ each (n/% length)))
- overwrite r.nat
- elems (|> (r.set number.Hash<Nat> length r.nat)
- (:: @ each set.to-list))
- #let [arrayS (` ("js array literal" (~+ (list/each code.nat elems))))]]
- ($_ seq
- (test "Can get the length of an array."
- (|> (run-js (` ("js array length" (~ arrayS))))
- (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}
- [[(list.nth idx elems) (:coerce (Maybe Nat) elemV)]
- [{.#Some reference} {.#Some sample}]])
- (n/= reference sample)
-
- _
- #0)))
- (test "Can write an element into an array."
- (let [idxS (code.nat idx)
- overwriteS (code.nat overwrite)]
- (|> (run-js (` ("js array read" (~ idxS)
- ("js array write" (~ idxS) (~ overwriteS) (~ arrayS)))))
- (case> (^multi {e.#Success elemV}
- [(:coerce (Maybe Nat) elemV)
- {.#Some sample}])
- (n/= overwrite sample)
-
- _
- #0))))
- (test "Can delete an element from an array."
- (let [idxS (code.nat idx)
- deleteS (` ("js array delete" (~ idxS) (~ arrayS)))]
- (and (|> (run-js (` ("js array length" (~ deleteS))))
- (length-check length))
- (|> (run-js (` ("js array read" (~ idxS) (~ deleteS))))
- (case> (^multi {e.#Success elemV}
- [(:coerce (Maybe Nat) elemV)
- {.#None}])
- #1
-
- _
- #0))
- )))
- ))))
diff --git a/lux-jvm/test/test/luxc/lang/translation/jvm.lux b/lux-jvm/test/test/luxc/lang/translation/jvm.lux
deleted file mode 100644
index 57074884c..000000000
--- a/lux-jvm/test/test/luxc/lang/translation/jvm.lux
+++ /dev/null
@@ -1,641 +0,0 @@
-(.using
- lux
- (lux [io]
- (control pipe
- [monad {"+" do}]
- [maybe])
- (data ["e" error]
- [bit]
- [bit "bit/" Eq<Bit>]
- [number "int/" Number<Int> Codec<Text,Int>]
- [text "text/" Eq<Text>]
- text/format
- (coll [list]))
- ["r" math/random "r/" Monad<Random>]
- [macro]
- (macro [code])
- [host]
- test)
- (luxc [lang]
- (lang ["[0]L" host]
- ["ls" synthesis]
- (translation (jvm ["[0]T" expression]
- ["[0]T" eval]
- ["[0]T" runtime]))))
- (test/luxc common))
-
-(context: "Conversions [Part 1]"
- (<| (times +100)
- (do @
- [int-sample (|> r.int (:: @ each (i/% 128)))
- #let [frac-sample (int-to-frac int-sample)]]
- (with-expansions [<2step> (template [<step1> <step2> <tag> <sample> <cast> <test>]
- [(test (format <step1> " / " <step2>)
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (|> (~ (<tag> <sample>)) <step1> <step2> (`)))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success valueT}
- (<test> <sample> (:coerce <cast> valueT))
-
- {e.#Error error}
- #0)))]
-
- ["jvm convert double-to-float" "jvm convert float-to-double" code.frac frac-sample Frac f/=]
- ["jvm convert double-to-int" "jvm convert int-to-double" code.frac frac-sample Frac f/=]
- ["jvm convert double-to-long" "jvm convert long-to-double" code.frac frac-sample Frac f/=]
-
- ["jvm convert long-to-float" "jvm convert float-to-long" code.int int-sample Int i/=]
- ["jvm convert long-to-int" "jvm convert int-to-long" code.int int-sample Int i/=]
- ["jvm convert long-to-short" "jvm convert short-to-long" code.int int-sample Int i/=]
- ["jvm convert long-to-byte" "jvm convert byte-to-long" code.int int-sample Int i/=]
- )]
- ($_ seq
- <2step>
- )))))
-
-(context: "Conversions [Part 2]"
- (<| (times +100)
- (do @
- [int-sample (|> r.int (:: @ each (|>> (i/% 128) int/abs)))
- #let [frac-sample (int-to-frac int-sample)]]
- (`` ($_ seq
- (~~ (template [<step1> <step2> <step3> <tag> <sample> <cast> <test>]
- [(test (format <step1> " / " <step2> " / " <step3>)
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (|> (~ (<tag> <sample>)) <step1> <step2> <step3> (`)))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success valueT}
- (<test> <sample> (:coerce <cast> valueT))
-
- {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/=]
- ["jvm convert long-to-int" "jvm convert int-to-byte" "jvm convert byte-to-long" code.int int-sample Int i/=]
- ["jvm convert long-to-int" "jvm convert int-to-short" "jvm convert short-to-long" code.int int-sample Int i/=]
- ["jvm convert long-to-float" "jvm convert float-to-int" "jvm convert int-to-long" code.int int-sample Int i/=]
- ["jvm convert long-to-int" "jvm convert int-to-float" "jvm convert float-to-long" code.int int-sample Int i/=]
- ))
- )))))
-
-(context: "Conversions [Part 3]"
- (<| (times +100)
- (do @
- [int-sample (|> r.int (:: @ each (|>> (i/% 128) int/abs)))
- #let [frac-sample (int-to-frac int-sample)]]
- (`` ($_ seq
- (~~ (template [<step1> <step2> <step3> <step4> <tag> <sample> <cast> <test>]
- [(test (format <step1> " / " <step2> " / " <step3>)
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (|> (~ (<tag> <sample>)) <step1> <step2> <step3> <step4> (`)))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success valueT}
- (<test> <sample> (:coerce <cast> valueT))
-
- {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/=]
- ["jvm convert long-to-int" "jvm convert int-to-char" "jvm convert char-to-short" "jvm convert short-to-long" code.int int-sample Int i/=]
- ["jvm convert long-to-int" "jvm convert int-to-char" "jvm convert char-to-int" "jvm convert int-to-long" code.int int-sample Int i/=]
- ))
- )))))
-
-(def: gen-nat
- (r.Random Nat)
- (|> r.nat
- (r/each (n/% +128))
- (r.filter (|>> (n/= +0) not))))
-
-(def: gen-int
- (r.Random Int)
- (|> gen-nat (r/each nat-to-int)))
-
-(def: gen-frac
- (r.Random Frac)
- (|> gen-int (r/each int-to-frac)))
-
-(template [<domain> <generator> <tag> <type> <test> <augmentation> <+> <-> <*> </> <%> <pre> <post>]
- [(context: (format "Arithmetic [" <domain> "]")
- (<| (times +100)
- (do @
- [param <generator>
- #let [subject (<augmentation> param)]]
- (with-expansions [<tests> (template [<procedure> <reference>]
- [(test <procedure>
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (<post> ((code.text <procedure>)
- (<pre> (<tag> subject))
- (<pre> (<tag> param)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success valueT}
- (<test> (<reference> param subject)
- (:coerce <type> valueT))
-
- {e.#Error error}
- #0)))]
-
- [(format "jvm " <domain> " +") <+>]
- [(format "jvm " <domain> " -") <->]
- [(format "jvm " <domain> " *") <*>]
- [(format "jvm " <domain> " /") </>]
- [(format "jvm " <domain> " %") <%>]
- )]
- ($_ seq
- <tests>
- )))))]
-
- ["int" gen-int code.int Int i/= (i/* 10) i/+ i/- i/* i// i/% "jvm convert long-to-int" "jvm convert int-to-long"]
- ["long" gen-int code.int Int i/= (i/* 10) i/+ i/- i/* i// i/% id id]
- ["float" gen-frac code.frac Frac f/= (f/* 10.0) f/+ f/- f/* f// f/% "jvm convert double-to-float" "jvm convert float-to-double"]
- ["double" gen-frac code.frac Frac f/= (f/* 10.0) f/+ f/- f/* f// f/% id id]
- )
-
-(template [<domain> <post> <convert>]
- [(context: (format "Bit-wise [" <domain> "] { Combiners ]")
- (<| (times +100)
- (do @
- [param gen-nat
- subject gen-nat]
- (`` ($_ seq
- (~~ (template [<procedure> <reference>]
- [(test <procedure>
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (<post> ((code.text <procedure>)
- (<convert> (code.nat subject))
- (<convert> (code.nat param)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success valueT}
- (n/= (<reference> param subject)
- (:coerce Nat valueT))
-
- {e.#Error error}
- #0)))]
-
- [(format "jvm " <domain> " and") bit.and]
- [(format "jvm " <domain> " or") bit.or]
- [(format "jvm " <domain> " xor") bit.xor]
- ))
- )))))]
-
- ["int" "jvm convert int-to-long" "jvm convert long-to-int"]
- ["long" id id]
- )
-
-(template [<domain> <post> <convert>]
- [(context: (format "Bit-wise [" <domain> "] { Shifters }")
- (<| (times +100)
- (do @
- [param gen-nat
- subject gen-nat
- #let [shift (n/% +10 param)]]
- (`` ($_ seq
- (~~ (template [<procedure> <reference> <type> <test> <pre-subject> <pre>]
- [(test <procedure>
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (<post> ((code.text <procedure>)
- (<convert> (<pre> subject))
- ("jvm convert long-to-int" (code.nat shift)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success valueT}
- (<test> (<reference> shift (<pre-subject> subject))
- (:coerce <type> valueT))
-
- {e.#Error error}
- #0)))]
-
- [(format "jvm " <domain> " shl") bit.left-shift Nat n/= id code.nat]
- [(format "jvm " <domain> " shr") bit.arithmetic-right-shift Int i/= nat-to-int (|>> nat-to-int code.int)]
- [(format "jvm " <domain> " ushr") bit.logical-right-shift Nat n/= id code.nat]
- ))
- )))))]
-
- ["int" "jvm convert int-to-long" "jvm convert long-to-int"]
- ["long" id id]
- )
-
-(template [<domain> <generator> <tag> <=> <<> <pre>]
- [(context: (format "Order [" <domain> "]")
- (<| (times +100)
- (do @
- [param <generator>
- subject <generator>]
- (with-expansions [<tests> (template [<procedure> <reference>]
- [(test <procedure>
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate ((code.text <procedure>)
- (<pre> (<tag> subject))
- (<pre> (<tag> param))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success valueT}
- (bit/= (<reference> param subject)
- (:coerce Bit valueT))
-
- {e.#Error error}
- #0)))]
-
- [(format "jvm " <domain> " =") <=>]
- [(format "jvm " <domain> " <") <<>]
- )]
- ($_ seq
- <tests>
- )))))]
-
- ["int" gen-int code.int i/= i/< "jvm convert long-to-int"]
- ["long" gen-int code.int i/= i/< id]
- ["float" gen-frac code.frac f/= f/< "jvm convert double-to-float"]
- ["double" gen-frac code.frac f/= f/< id]
- ["char" gen-int code.int i/= i/< "jvm convert long-to-char"]
- )
-
-(def: (jvm//array//new dimension class size)
- (-> Nat Text Nat ls.Synthesis)
- (` ("jvm array new" (~ (code.nat dimension)) (~ (code.text class)) (~ (code.nat size)))))
-
-(def: (jvm//array//write class idx inputS arrayS)
- (-> Text Nat ls.Synthesis ls.Synthesis ls.Synthesis)
- (` ("jvm array write" (~ (code.text class)) (~ (code.nat idx)) (~ inputS) (~ arrayS))))
-
-(def: (jvm//array//read class idx arrayS)
- (-> Text Nat ls.Synthesis ls.Synthesis)
- (` ("jvm array read" (~ (code.text class)) (~ (code.nat idx)) (~ arrayS))))
-
-(context: "Array [Part 1]"
- (<| (times +100)
- (do @
- [size (|> r.nat (:: @ each (|>> (n/% +10) (n/max +1))))
- idx (|> r.nat (:: @ each (n/% size)))
- valueZ r.bit
- valueB gen-int
- valueS gen-int
- valueI gen-int
- valueL r.int
- valueF gen-frac
- valueD r.frac
- valueC gen-int]
- (with-expansions [<array> (template [<class> <type> <value> <test> <input> <post>]
- [(test <class>
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (|> (jvm//array//new +0 <class> size)
- (jvm//array//write <class> idx <input>)
- (jvm//array//read <class> idx)
- <post>))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputZ}
- (<test> <value> (:coerce <type> outputZ))
-
- {e.#Error error}
- #0)))]
-
- ["boolean" Bit valueZ bit/= (code.bit valueZ)
- id]
- ["byte" Int valueB i/= (|> (code.int valueB) (~) "jvm convert long-to-byte" (`))
- "jvm convert byte-to-long"]
- ["short" Int valueS i/= (|> (code.int valueS) (~) "jvm convert long-to-short" (`))
- "jvm convert short-to-long"]
- ["int" Int valueI i/= (|> (code.int valueI) (~) "jvm convert long-to-int" (`))
- "jvm convert int-to-long"]
- ["long" Int valueL i/= (code.int valueL)
- id]
- ["float" Frac valueF f/= (|> (code.frac valueF) (~) "jvm convert double-to-float" (`))
- "jvm convert float-to-double"]
- ["double" Frac valueD f/= (code.frac valueD)
- id]
- )]
- ($_ seq
- <array>
- )))))
-
-(context: "Array [Part 2]"
- (<| (times +100)
- (do @
- [size (|> r.nat (:: @ each (|>> (n/% +10) (n/max +1))))
- idx (|> r.nat (:: @ each (n/% size)))
- valueZ r.bit
- valueB gen-int
- valueS gen-int
- valueI gen-int
- valueL r.int
- valueF gen-frac
- valueD r.frac
- valueC gen-int]
- (with-expansions [<array> (template [<class> <type> <value> <test> <input> <post>]
- [(test <class>
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (|> (jvm//array//new +0 <class> size)
- (jvm//array//write <class> idx <input>)
- (jvm//array//read <class> idx)
- <post>))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (<test> <value> (:coerce <type> outputT))
-
- {e.#Error error}
- #0)))]
-
- ["char" Int valueC i/=
- (|> (code.int valueC) (~) "jvm convert long-to-int" "jvm convert int-to-char" (`))
- "jvm convert char-to-long"]
- ["java.lang.Long" Int valueL i/=
- (code.int valueL)
- id]
- )]
- ($_ seq
- <array>
- (test "java.lang.Double (level 1)"
- (|> (do macro.Monad<Meta>
- [#let [inner (|> ("jvm array new" +0 "java.lang.Double" (~ (code.nat size)))
- ("jvm array write" "java.lang.Double" (~ (code.nat idx)) (~ (code.frac valueD)))
- (`))]
- sampleI (expressionT.translate (|> ("jvm array new" +1 "java.lang.Double" (~ (code.nat size)))
- ("jvm array write" "#Array" (~ (code.nat idx)) (~ inner))
- ("jvm array read" "#Array" (~ (code.nat idx)))
- ("jvm array read" "java.lang.Double" (~ (code.nat idx)))
- (`)))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (f/= valueD (:coerce Frac outputT))
-
- {e.#Error error}
- #0)))
- (test "jvm array length"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm array length" ("jvm array new" +0 "java.lang.Object" (~ (code.nat size))))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (n/= size (:coerce Nat outputT))
-
- {e.#Error error}
- #0)))
- )))))
-
-(host.import: java/lang/Class
- (getName [] String))
-
-(def: classes
- (List Text)
- (list "java.lang.Object" "java.lang.Class"
- "java.lang.String" "java.lang.Number"))
-
-(def: instances
- (List [Text (r.Random ls.Synthesis)])
- (let [gen-boolean (|> r.bit (:: r.Functor<Random> each code.bit))
- gen-integer (|> r.int (:: r.Functor<Random> each code.int))
- gen-double (|> r.frac (:: r.Functor<Random> each code.frac))
- gen-string (|> (r.text +5) (:: r.Functor<Random> each code.text))]
- (list ["java.lang.Boolean" gen-boolean]
- ["java.lang.Long" gen-integer]
- ["java.lang.Double" gen-double]
- ["java.lang.String" gen-string]
- ["java.lang.Object" (r.either (r.either gen-boolean
- gen-integer)
- (r.either gen-double
- gen-string))])))
-
-(context: "Object."
- (<| (times +100)
- (do @
- [#let [num-classes (list.size classes)]
- #let [num-instances (list.size instances)]
- class-idx (|> r.nat (:: @ each (n/% num-classes)))
- instance-idx (|> r.nat (:: @ each (n/% num-instances)))
- exception-message (r.text +5)
- #let [class (maybe.trusted (list.nth class-idx classes))
- [instance-class instance-gen] (maybe.trusted (list.nth instance-idx instances))
- exception-message$ (` ["java.lang.String" (~ (code.text exception-message))])]
- sample r.int
- monitor r.int
- instance instance-gen]
- ($_ seq
- (test "jvm object null"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm object null?" ("jvm object null"))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (:coerce Bit outputT)
-
- {e.#Error error}
- #0)))
- (test "jvm object null?"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm object null?" (~ (code.int sample)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (not (:coerce Bit outputT))
-
- {e.#Error error}
- #0)))
- (test "jvm object synchronized"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm object synchronized" (~ (code.int monitor)) (~ (code.int sample)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (i/= sample (:coerce Int outputT))
-
- {e.#Error error}
- #0)))
- (test "jvm object throw"
- (|> (do macro.Monad<Meta>
- [_ runtimeT.translate
- sampleI (expressionT.translate (` ("lux try" ("lux function" +1 []
- ("jvm object throw" ("jvm member invoke constructor"
- "java.lang.Throwable"
- (~ exception-message$)))))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (case (:coerce (e.Error Any) outputT)
- {e.#Error error}
- (text.contains? exception-message error)
-
- {e.#Success outputT}
- #0)
-
- {e.#Error error}
- #0)))
- (test "jvm object class"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm object class" (~ (code.text class)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (|> outputT (:coerce Class) (Class::getName []) (text/= class))
-
- {e.#Error error}
- #0)))
- (test "jvm object instance?"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm object instance?" (~ (code.text instance-class)) (~ instance))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (:coerce Bit outputT)
-
- {e.#Error error}
- #0)))
- ))))
-
-(host.import: java/util/GregorianCalendar
- ("static" AD int))
-
-(context: "Member [Field]"
- (<| (times +100)
- (do @
- [sample-short (|> r.int (:: @ each (|>> int/abs (i/% 100))))
- sample-string (r.text +5)
- other-sample-string (r.text +5)
- #let [shortS (` ["short" ("jvm object cast" "java.lang.Short" "short"
- ("jvm convert long-to-short" (~ (code.int sample-short))))])
- stringS (` ["java.lang.String" (~ (code.text sample-string))])
- type-codeS (` ["org.omg.CORBA.TypeCode" ("jvm object null")])
- idl-typeS (` ["org.omg.CORBA.IDLType" ("jvm object null")])
- value-memberS (` ("jvm member invoke constructor"
- "org.omg.CORBA.ValueMember"
- (~ stringS) (~ stringS) (~ stringS) (~ stringS)
- (~ type-codeS) (~ idl-typeS) (~ shortS)))]]
- ($_ seq
- (test "jvm member static get"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm convert int-to-long" ("jvm member static get" "java.util.GregorianCalendar" "AD" "int"))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (i/= GregorianCalendar::AD (:coerce Int outputT))
-
- {e.#Error error}
- #0)))
- (test "jvm member static put"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm member static put" "java.awt.datatransfer.DataFlavor" "allHtmlFlavor" "java.awt.datatransfer.DataFlavor"
- ("jvm member static get" "java.awt.datatransfer.DataFlavor" "allHtmlFlavor" "java.awt.datatransfer.DataFlavor"))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (same? hostL.unit (:coerce Text outputT))
-
- {e.#Error error}
- #0)))
- (test "jvm member virtual get"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm member virtual get" "org.omg.CORBA.ValueMember" "name" "java.lang.String" (~ value-memberS))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (text/= sample-string (:coerce Text outputT))
-
- {e.#Error error}
- #0)))
- (test "jvm member virtual put"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm member virtual get" "org.omg.CORBA.ValueMember" "name" "java.lang.String"
- ("jvm member virtual put" "org.omg.CORBA.ValueMember" "name" "java.lang.String"
- (~ (code.text other-sample-string)) (~ value-memberS)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (text/= other-sample-string (:coerce Text outputT))
-
- {e.#Error error}
- #0)))
- ))))
-
-(host.import: java/lang/Object)
-
-(host.import: (java/util/ArrayList a))
-
-(context: "Member [Method]"
- (<| (times +100)
- (do @
- [sample (|> r.int (:: @ each (|>> int/abs (i/% 100))))
- #let [object-longS (` ["java.lang.Object" (~ (code.int sample))])
- intS (` ["int" ("jvm object cast" "java.lang.Integer" "int"
- ("jvm convert long-to-int" (~ (code.int sample))))])
- coded-intS (` ["java.lang.String" (~ (code.text (int/encode sample)))])
- array-listS (` ("jvm member invoke constructor" "java.util.ArrayList" (~ intS)))]]
- ($_ seq
- (test "jvm member invoke static"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm member invoke static" "java.lang.Long"
- "decode" "java.lang.Long"
- (~ coded-intS))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (i/= sample (:coerce Int outputT))
-
- {e.#Error error}
- #0)))
- (test "jvm member invoke virtual"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm object cast" "boolean" "java.lang.Boolean"
- ("jvm member invoke virtual" "java.lang.Object" "equals" "boolean"
- (~ (code.int sample)) (~ object-longS)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (:coerce Bit outputT)
-
- {e.#Error error}
- #0)))
- (test "jvm member invoke interface"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate (` ("jvm object cast" "boolean" "java.lang.Boolean"
- ("jvm member invoke interface" "java.util.Collection" "add" "boolean"
- (~ array-listS) (~ object-longS)))))]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (:coerce Bit outputT)
-
- {e.#Error error}
- #0)))
- (test "jvm member invoke constructor"
- (|> (do macro.Monad<Meta>
- [sampleI (expressionT.translate array-listS)]
- (evalT.eval sampleI))
- (lang.with-current-module "")
- (macro.result (io.run! init-jvm))
- (case> {e.#Success outputT}
- (host.instance? ArrayList (:coerce Object outputT))
-
- {e.#Error error}
- #0)))
- ))))
diff --git a/lux-php/source/program.lux b/lux-php/source/program.lux
index 6436b2177..50154039b 100644
--- a/lux-php/source/program.lux
+++ b/lux-php/source/program.lux
@@ -6,7 +6,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" exec> case>}]
+ ["[0]" pipe]
["[0]" maybe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
@@ -407,7 +407,7 @@
{.#Some value}
(if (|> value
(php/runtime/memory/ArrayMemory::get ..tuple_size_field)
- (case> {.#Some _} false {.#None} true))
+ (pipe.case {.#Some _} false {.#None} true))
(read_variant read value)
(read_tuple read value))
@@ -442,7 +442,7 @@
(|> ..interpreter
java/lang/Object::getClass
(java/lang/Class::getDeclaredField "environment")
- (exec> [(java/lang/reflect/AccessibleObject::setAccessible true)])
+ (pipe.exec [(java/lang/reflect/AccessibleObject::setAccessible true)])
(java/lang/reflect/Field::get ..interpreter)
(:as php/runtime/env/Environment)))
diff --git a/lux-python/source/program.lux b/lux-python/source/program.lux
index d2b3c65af..2d6c858aa 100644
--- a/lux-python/source/program.lux
+++ b/lux-python/source/program.lux
@@ -8,7 +8,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" new>}]
+ ["[0]" pipe]
["[0]" maybe]
["[0]" try {"+" Try} ("[1]#[0]" monad)]
["[0]" exception {"+" exception:}]
@@ -215,7 +215,7 @@
_)]
[LuxValue [LuxValue::value]]
- [org/python/core/PyNone [(new> [] [])]]
+ [org/python/core/PyNone [(pipe.new [] [])]]
[org/python/core/PyBoolean [org/python/core/PyObject::__nonzero__]]
... [org/python/core/PyInteger [(ffi.:as org/python/core/PyObject) org/python/core/PyObject::asInt]]
[org/python/core/PyInteger [(ffi.:as org/python/core/PyObject)
diff --git a/lux-r/source/program.lux b/lux-r/source/program.lux
index 2ba9794ad..9706cc307 100644
--- a/lux-r/source/program.lux
+++ b/lux-r/source/program.lux
@@ -6,7 +6,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" exec> case> new>}]
+ ["[0]" pipe]
["[0]" maybe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
@@ -183,7 +183,7 @@
... (def: host_bit
... (-> Bit org/armedbear/lisp/LispObject)
-... (|>> (case> #0 (org/armedbear/lisp/Nil::NIL)
+... (|>> (pipe.case #0 (org/armedbear/lisp/Nil::NIL)
... #1 (org/armedbear/lisp/Symbol::T))))
(syntax: (%%code [term <code>.any])
diff --git a/lux-ruby/source/program.lux b/lux-ruby/source/program.lux
index 1d47453aa..026032a4b 100644
--- a/lux-ruby/source/program.lux
+++ b/lux-ruby/source/program.lux
@@ -8,7 +8,6 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" new>}]
["[0]" maybe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
diff --git a/lux-scheme/source/program.lux b/lux-scheme/source/program.lux
index 05714c13a..99dda6b55 100644
--- a/lux-scheme/source/program.lux
+++ b/lux-scheme/source/program.lux
@@ -6,7 +6,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" exec> case> new>}]
+ ["[0]" pipe]
["[0]" maybe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
@@ -320,7 +320,7 @@
[java/lang/Integer java/lang/Integer::longValue]
- [gnu/lists/EmptyList (new> [] [])]
+ [gnu/lists/EmptyList (pipe.new [] [])]
[gnu/math/IntNum gnu/math/IntNum::longValue]
[gnu/math/DFloNum gnu/math/DFloNum::doubleValue]
[gnu/lists/FString gnu/lists/FString::toString]
diff --git a/stdlib/source/documentation/lux/control/pipe.lux b/stdlib/source/documentation/lux/control/pipe.lux
index 330370e9f..4326a6d49 100644
--- a/stdlib/source/documentation/lux/control/pipe.lux
+++ b/stdlib/source/documentation/lux/control/pipe.lux
@@ -1,117 +1,118 @@
(.using
- [library
- [lux {"-" if loop}
- ["$" documentation {"+" documentation:}]
- [data
- [text {"+" \n}
- ["%" format {"+" format}]]]
- [macro
- ["[0]" template]]]]
- [\\library
- ["[0]" /]])
+ [library
+ [lux {"-" let cond if loop exec case}
+ ["$" documentation {"+" documentation:}]
+ [data
+ [text {"+" \n}
+ ["%" format {"+" format}]]]
+ [macro
+ ["[0]" template]]]]
+ [\\library
+ ["[0]" /]])
-(documentation: /.new>
+(documentation: /.new
"Ignores the piped argument, and begins a new pipe."
[(n.= 1
(|> 20
(n.* 3)
(n.+ 4)
- (new> 0 [++])))])
+ (new 0 [++])))])
-(documentation: /.let>
+(documentation: /.let
"Gives a name to the piped-argument, within the given expression."
[(n.= 10
(|> 5
- (let> x (n.+ x x))))])
+ (let x (n.+ x x))))])
-(documentation: /.cond>
+(documentation: /.cond
(format "Branching for pipes."
\n "Both the tests and the bodies are piped-code, and must be given inside a tuple.")
[(|> +5
- (cond> [i.even?] [(i.* +2)]
- [i.odd?] [(i.* +3)]
- [(new> -1 [])]))])
+ (cond [i.even?] [(i.* +2)]
+ [i.odd?] [(i.* +3)]
+ [(new -1 [])]))])
-(documentation: /.if>
+(documentation: /.if
"If-branching."
[(same? (if (n.even? sample)
"even"
"odd")
(|> sample
- (if> [n.even?]
- [(new> "even" [])]
- [(new> "odd" [])])))])
+ (if [n.even?]
+ [(new "even" [])]
+ [(new "odd" [])])))])
-(documentation: /.when>
+(documentation: /.when
"Only execute the body when the test passes."
[(same? (if (n.even? sample)
(n.* 2 sample)
sample)
(|> sample
- (when> [n.even?]
- [(n.* 2)])))])
+ (when [n.even?]
+ [(n.* 2)])))])
-(documentation: /.loop>
+(documentation: /.loop
(format "Loops for pipes."
\n "Both the testing and calculating steps are pipes and must be given inside tuples.")
[(|> +1
- (loop> [(i.< +10)]
- [++]))])
+ (loop [(i.< +10)]
+ [++]))])
-(documentation: /.do>
+(documentation: /.do
(format "Monadic pipes."
\n "Each steps in the monadic computation is a pipe and must be given inside a tuple.")
[(|> +5
- (do> identity.monad
- [(i.* +3)]
- [(i.+ +4)]
- [++]))])
+ (do identity.monad
+ [(i.* +3)]
+ [(i.+ +4)]
+ [++]))])
-(documentation: /.exec>
+(documentation: /.exec
(format "Non-updating pipes."
\n "Will generate piped computations, but their results will not be used in the larger scope.")
[(|> +5
- (exec> [.nat %n log!])
+ (exec [.nat %n log!])
(i.* +10))])
-(documentation: /.tuple>
+(documentation: /.tuple
(format "Parallel branching for pipes."
\n "Allows to run multiple pipelines for a value and gives you a tuple of the outputs.")
[(|> +5
- (tuple> [(i.* +10)]
- [-- (i./ +2)]
- [i#encoded]))
+ (tuple [(i.* +10)]
+ [-- (i./ +2)]
+ [i#encoded]))
"=>"
[+50 +2 "+5"]])
-(documentation: /.case>
+(documentation: /.case
(format "Pattern-matching for pipes."
\n "The bodies of each branch are NOT pipes; just regular values.")
[(|> +5
- (case> +0 "zero"
- +1 "one"
- +2 "two"
- +3 "three"
- +4 "four"
- +5 "five"
- +6 "six"
- +7 "seven"
- +8 "eight"
- +9 "nine"
- _ "???"))])
+ (case
+ +0 "zero"
+ +1 "one"
+ +2 "two"
+ +3 "three"
+ +4 "four"
+ +5 "five"
+ +6 "six"
+ +7 "seven"
+ +8 "eight"
+ +9 "nine"
+ _ "???"))])
(.def: .public documentation
(.List $.Module)
($.module /._
"Composable extensions to the piping macros (|> and <|) that enhance them with various abilities."
- [..new>
- ..let>
- ..cond>
- ..if>
- ..when>
- ..loop>
- ..do>
- ..exec>
- ..tuple>
- ..case>]
+ [..new
+ ..let
+ ..cond
+ ..if
+ ..when
+ ..loop
+ ..do
+ ..exec
+ ..tuple
+ ..case]
[]))
diff --git a/stdlib/source/library/lux/control/concurrency/actor.lux b/stdlib/source/library/lux/control/concurrency/actor.lux
index d534c198c..cfa4fb11f 100644
--- a/stdlib/source/library/lux/control/concurrency/actor.lux
+++ b/stdlib/source/library/lux/control/concurrency/actor.lux
@@ -5,7 +5,7 @@
[abstract
monad]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" function]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
@@ -112,11 +112,12 @@
(|> obituary
async.value
(# io.functor each
- (|>> (case> {.#None}
- bit.yes
+ (|>> (pipe.case
+ {.#None}
+ bit.yes
- _
- bit.no))))))
+ _
+ bit.no))))))
(def: .public (obituary' actor)
(All (_ s) (-> (Actor s) (IO (Maybe (Obituary s)))))
diff --git a/stdlib/source/library/lux/control/concurrency/async.lux b/stdlib/source/library/lux/control/concurrency/async.lux
index b131ddd1e..489513399 100644
--- a/stdlib/source/library/lux/control/concurrency/async.lux
+++ b/stdlib/source/library/lux/control/concurrency/async.lux
@@ -6,7 +6,7 @@
[apply {"+" Apply}]
["[0]" monad {"+" Monad do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" function]
["[0]" io {"+" IO io}]]
[data
@@ -82,11 +82,12 @@
(All (_ a) (-> (Async a) (IO Bit)))
(|>> ..value
(# io.functor each
- (|>> (case> {.#None}
- #0
+ (|>> (pipe.case
+ {.#None}
+ #0
- {.#Some _}
- #1)))))
+ {.#Some _}
+ #1)))))
(implementation: .public functor
(Functor Async)
diff --git a/stdlib/source/library/lux/control/concurrency/semaphore.lux b/stdlib/source/library/lux/control/concurrency/semaphore.lux
index 58e664966..d30da93b7 100644
--- a/stdlib/source/library/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/library/lux/control/concurrency/semaphore.lux
@@ -4,7 +4,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" if>}]
+ ["[0]" pipe]
["[0]" io {"+" IO}]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]]
@@ -54,9 +54,9 @@
(with_expansions [<had_open_position?> (as_is (the #open_positions) (i.> -1))]
(do io.monad
[[_ state'] (atom.update! (|>> (revised #open_positions --)
- (if> [<had_open_position?>]
- []
- [(revised #waiting_list (queue.end sink))]))
+ (pipe.if [<had_open_position?>]
+ []
+ [(revised #waiting_list (queue.end sink))]))
semaphore)]
(with_expansions [<go_ahead> (sink [])
<get_in_line> (in false)]
diff --git a/stdlib/source/library/lux/control/pipe.lux b/stdlib/source/library/lux/control/pipe.lux
index ef50f8f86..5251267d6 100644
--- a/stdlib/source/library/lux/control/pipe.lux
+++ b/stdlib/source/library/lux/control/pipe.lux
@@ -1,37 +1,37 @@
(.using
- [library
- [lux "*"
- [abstract
- [monad {"+" do}]]
- [control
- ["[0]" try]
- ["<>" parser
- ["<[0]>" code {"+" Parser}]]]
- [data
- ["[0]" identity]
- [collection
- ["[0]" list ("[1]#[0]" monad)]]]
- [macro {"+" with_symbols}
- [syntax {"+" syntax:}]
- ["[0]" code]]
- [math
- [number
- ["n" nat]
- ["i" int]]]]])
+ [library
+ [lux {"-" let cond if loop exec case}
+ [abstract
+ ["[0]" monad]]
+ [control
+ ["[0]" try]
+ ["<>" parser
+ ["<[0]>" code {"+" Parser}]]]
+ [data
+ ["[0]" identity]
+ [collection
+ ["[0]" list ("[1]#[0]" monad)]]]
+ [macro {"+" with_symbols}
+ [syntax {"+" syntax:}]
+ ["[0]" code]]
+ [math
+ [number
+ ["n" nat]
+ ["i" int]]]]])
(def: body^
(Parser (List Code))
(<code>.tuple (<>.some <code>.any)))
-(syntax: .public (new> [start <code>.any
- body body^
- prev <code>.any])
+(syntax: .public (new [start <code>.any
+ body body^
+ prev <code>.any])
(in (list (` (|> (~ start) (~+ body))))))
-(syntax: .public (let> [binding <code>.any
- body <code>.any
- prev <code>.any])
- (in (list (` (let [(~ binding) (~ prev)]
+(syntax: .public (let [binding <code>.any
+ body <code>.any
+ prev <code>.any])
+ (in (list (` (.let [(~ binding) (~ prev)]
(~ body))))))
(def: _reversed_
@@ -39,53 +39,53 @@
(function (_ tokens)
{try.#Success [(list.reversed tokens) []]}))
-(syntax: .public (cond> [_ _reversed_
- prev <code>.any
- else body^
- _ _reversed_
- branches (<>.some (<>.and body^ body^))])
+(syntax: .public (cond [_ _reversed_
+ prev <code>.any
+ else body^
+ _ _reversed_
+ branches (<>.some (<>.and body^ body^))])
(with_symbols [g!temp]
- (in (list (` (let [(~ g!temp) (~ prev)]
- (cond (~+ (do list.monad
- [[test then] branches]
- (list (` (|> (~ g!temp) (~+ test)))
- (` (|> (~ g!temp) (~+ then))))))
- (|> (~ g!temp) (~+ else)))))))))
+ (in (list (` (.let [(~ g!temp) (~ prev)]
+ (.cond (~+ (monad.do list.monad
+ [[test then] branches]
+ (list (` (|> (~ g!temp) (~+ test)))
+ (` (|> (~ g!temp) (~+ then))))))
+ (|> (~ g!temp) (~+ else)))))))))
-(syntax: .public (if> [test body^
- then body^
- else body^
- prev <code>.any])
- (in (list (` (cond> [(~+ test)] [(~+ then)]
- [(~+ else)]
- (~ prev))))))
+(syntax: .public (if [test body^
+ then body^
+ else body^
+ prev <code>.any])
+ (in (list (` (..cond [(~+ test)] [(~+ then)]
+ [(~+ else)]
+ (~ prev))))))
-(syntax: .public (when> [test body^
- then body^
- prev <code>.any])
- (in (list (` (cond> [(~+ test)] [(~+ then)]
- []
- (~ prev))))))
+(syntax: .public (when [test body^
+ then body^
+ prev <code>.any])
+ (in (list (` (..cond [(~+ test)] [(~+ then)]
+ []
+ (~ prev))))))
-(syntax: .public (loop> [test body^
- then body^
- prev <code>.any])
+(syntax: .public (loop [test body^
+ then body^
+ prev <code>.any])
(with_symbols [g!temp]
- (in (list (` (loop [(~ g!temp) (~ prev)]
- (if (|> (~ g!temp) (~+ test))
+ (in (list (` (.loop [(~ g!temp) (~ prev)]
+ (.if (|> (~ g!temp) (~+ test))
((~' again) (|> (~ g!temp) (~+ then)))
(~ g!temp))))))))
-(syntax: .public (do> [monad <code>.any
- steps (<>.some body^)
- prev <code>.any])
+(syntax: .public (do [monad <code>.any
+ steps (<>.some body^)
+ prev <code>.any])
(with_symbols [g!temp]
- (case (list.reversed steps)
+ (.case (list.reversed steps)
(^ (list& last_step prev_steps))
- (let [step_bindings (do list.monad
- [step (list.reversed prev_steps)]
- (list g!temp (` (|> (~ g!temp) (~+ step)))))]
- (in (list (` ((~! do) (~ monad)
+ (.let [step_bindings (monad.do list.monad
+ [step (list.reversed prev_steps)]
+ (list g!temp (` (|> (~ g!temp) (~+ step)))))]
+ (in (list (` ((~! monad.do) (~ monad)
[.let [(~ g!temp) (~ prev)]
(~+ step_bindings)]
(|> (~ g!temp) (~+ last_step)))))))
@@ -93,23 +93,23 @@
_
(in (list prev)))))
-(syntax: .public (exec> [body body^
- prev <code>.any])
+(syntax: .public (exec [body body^
+ prev <code>.any])
(with_symbols [g!temp]
- (in (list (` (let [(~ g!temp) (~ prev)]
- (exec (|> (~ g!temp) (~+ body))
+ (in (list (` (.let [(~ g!temp) (~ prev)]
+ (.exec (|> (~ g!temp) (~+ body))
(~ g!temp))))))))
-(syntax: .public (tuple> [paths (<>.many body^)
- prev <code>.any])
+(syntax: .public (tuple [paths (<>.many body^)
+ prev <code>.any])
(with_symbols [g!temp]
- (in (list (` (let [(~ g!temp) (~ prev)]
+ (in (list (` (.let [(~ g!temp) (~ prev)]
[(~+ (list#each (function (_ body) (` (|> (~ g!temp) (~+ body))))
paths))]))))))
-(syntax: .public (case> [branches (<>.many (<>.and <code>.any <code>.any))
- prev <code>.any])
- (in (list (` (case (~ prev)
+(syntax: .public (case [branches (<>.many (<>.and <code>.any <code>.any))
+ prev <code>.any])
+ (in (list (` (.case (~ prev)
(~+ (|> branches
(list#each (function (_ [pattern body]) (list pattern body)))
list#conjoint)))))))
diff --git a/stdlib/source/library/lux/data/collection/bits.lux b/stdlib/source/library/lux/data/collection/bits.lux
index c39e7873f..45527975a 100644
--- a/stdlib/source/library/lux/data/collection/bits.lux
+++ b/stdlib/source/library/lux/data/collection/bits.lux
@@ -1,18 +1,18 @@
(.using
- [library
- [lux {"-" not and or}
- [abstract
- [equivalence {"+" Equivalence}]]
- [control
- pipe
- ["[0]" maybe]]
- [data
- [collection
- ["[0]" array {"+" Array} ("[1]#[0]" mix)]]]
- [math
- [number
- ["n" nat]
- ["[0]" i64]]]]])
+ [library
+ [lux {"-" not and or}
+ [abstract
+ [equivalence {"+" Equivalence}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" maybe]]
+ [data
+ [collection
+ ["[0]" array {"+" Array} ("[1]#[0]" mix)]]]
+ [math
+ [number
+ ["n" nat]
+ ["[0]" i64]]]]])
(type: .public Chunk
I64)
@@ -70,11 +70,11 @@
(let [idx|output (-- size|output)]
(if (n.> 0 size|output)
(case (|> (..chunk idx|output input)
- (cond> [(new> (n.= chunk_index idx|output) [])]
- [(<op> bit_index)]
+ (pipe.cond [(pipe.new (n.= chunk_index idx|output) [])]
+ [(<op> bit_index)]
- ... else
- [])
+ ... else
+ [])
.nat)
0
... TODO: Remove 'no_op' once new-luxc is the official compiler.
diff --git a/stdlib/source/library/lux/data/format/binary.lux b/stdlib/source/library/lux/data/format/binary.lux
index 4ddbf3e26..4d0eb7b57 100644
--- a/stdlib/source/library/lux/data/format/binary.lux
+++ b/stdlib/source/library/lux/data/format/binary.lux
@@ -1,32 +1,32 @@
(.using
- [library
- [lux {"-" and or nat int rev list type symbol}
- [abstract
- [monoid {"+" Monoid}]
- [monad {"+" Monad do}]
- [equivalence {"+" Equivalence}]]
- [control
- [pipe {"+" case>}]
- ["[0]" function]
- ["[0]" try {"+" Try}]
- ["<>" parser ("[1]#[0]" monad)
- ["/" binary {"+" Offset Size Parser}]]]
- [data
- ["[0]" product]
- ["[0]" binary {"+" Binary}]
- [text
- ["%" format {"+" format}]
- [encoding
- ["[0]" utf8]]]
- [collection
- ["[0]" list]
- ["[0]" sequence {"+" Sequence} ("[1]#[0]" functor)]
- ["[0]" set {"+" Set}]]]
- [math
- [number
- ["[0]" i64]
- ["n" nat]
- ["[0]" frac]]]]])
+ [library
+ [lux {"-" and or nat int rev list type symbol}
+ [abstract
+ [monoid {"+" Monoid}]
+ [monad {"+" Monad do}]
+ [equivalence {"+" Equivalence}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" function]
+ ["[0]" try {"+" Try}]
+ ["<>" parser ("[1]#[0]" monad)
+ ["/" binary {"+" Offset Size Parser}]]]
+ [data
+ ["[0]" product]
+ ["[0]" binary {"+" Binary}]
+ [text
+ ["%" format {"+" format}]
+ [encoding
+ ["[0]" utf8]]]
+ [collection
+ ["[0]" list]
+ ["[0]" sequence {"+" Sequence} ("[1]#[0]" functor)]
+ ["[0]" set {"+" Set}]]]
+ [math
+ [number
+ ["[0]" i64]
+ ["n" nat]
+ ["[0]" frac]]]]])
(def: mask
(-> Size (I64 Any))
@@ -114,7 +114,7 @@
(def: .public bit
(Writer Bit)
- (|>> (case> #0 0 #1 1) ..bits/8))
+ (|>> (pipe.case #0 0 #1 1) ..bits/8))
(template [<name> <type>]
[(def: .public <name> (Writer <type>) ..bits/64)]
diff --git a/stdlib/source/library/lux/data/format/json.lux b/stdlib/source/library/lux/data/format/json.lux
index 315665921..aee3310cd 100644
--- a/stdlib/source/library/lux/data/format/json.lux
+++ b/stdlib/source/library/lux/data/format/json.lux
@@ -1,34 +1,34 @@
(.using
- [library
- [lux {"-" has}
- ["[0]" meta {"+" monad}]
- [abstract
- [equivalence {"+" Equivalence}]
- [codec {"+" Codec}]
- [predicate {"+" Predicate}]
- ["[0]" monad {"+" do}]]
- [control
- pipe
- ["[0]" maybe]
- ["[0]" try {"+" Try}]
- ["<>" parser ("[1]#[0]" monad)
- ["<[0]>" text {"+" Parser}]
- ["<[0]>" code]]]
- [data
- ["[0]" bit]
- ["[0]" product]
- ["[0]" text ("[1]#[0]" equivalence monoid)]
- [collection
- ["[0]" list ("[1]#[0]" mix functor)]
- ["[0]" sequence {"+" Sequence sequence} ("[1]#[0]" monad)]
- ["[0]" dictionary {"+" Dictionary}]]]
- [macro
- [syntax {"+" syntax:}]
- ["[0]" code]]
- [math
- [number
- ["n" nat]
- ["f" frac ("[1]#[0]" decimal)]]]]])
+ [library
+ [lux {"-" has}
+ ["[0]" meta {"+" monad}]
+ [abstract
+ [equivalence {"+" Equivalence}]
+ [codec {"+" Codec}]
+ [predicate {"+" Predicate}]
+ ["[0]" monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" maybe]
+ ["[0]" try {"+" Try}]
+ ["<>" parser ("[1]#[0]" monad)
+ ["<[0]>" text {"+" Parser}]
+ ["<[0]>" code]]]
+ [data
+ ["[0]" bit]
+ ["[0]" product]
+ ["[0]" text ("[1]#[0]" equivalence monoid)]
+ [collection
+ ["[0]" list ("[1]#[0]" mix functor)]
+ ["[0]" sequence {"+" Sequence sequence} ("[1]#[0]" monad)]
+ ["[0]" dictionary {"+" Dictionary}]]]
+ [macro
+ [syntax {"+" syntax:}]
+ ["[0]" code]]
+ [math
+ [number
+ ["n" nat]
+ ["f" frac ("[1]#[0]" decimal)]]]]])
(template [<name> <type>]
[(type: .public <name>
@@ -60,8 +60,8 @@
(def: .public null?
(Predicate JSON)
- (|>> (case> {#Null} true
- _ false)))
+ (|>> (pipe.case {#Null} true
+ _ false)))
(def: .public object
(-> (List [String JSON]) JSON)
@@ -226,20 +226,21 @@
(def: boolean_format
(-> Boolean Text)
- (|>> (case>
- #0 "false"
- #1 "true")))
+ (|>> (pipe.case
+ #0 "false"
+ #1 "true")))
(def: number_format
(-> Number Text)
- (|>> (case> +0.0 ... OR -0.0
- "0.0"
-
- value
- (let [raw (# f.decimal encoded value)]
- (if (f.< +0.0 value)
- raw
- (|> raw (text.split_at 1) maybe.trusted product.right))))))
+ (|>> (pipe.case
+ +0.0 ... OR -0.0
+ "0.0"
+
+ value
+ (let [raw (# f.decimal encoded value)]
+ (if (f.< +0.0 value)
+ raw
+ (|> raw (text.split_at 1) maybe.trusted product.right))))))
(def: escape "\")
(def: escaped_dq (text#composite ..escape text.double_quote))
diff --git a/stdlib/source/library/lux/data/format/tar.lux b/stdlib/source/library/lux/data/format/tar.lux
index 8e51999b3..3b7e5d329 100644
--- a/stdlib/source/library/lux/data/format/tar.lux
+++ b/stdlib/source/library/lux/data/format/tar.lux
@@ -4,7 +4,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
["<>" parser
@@ -721,10 +721,11 @@
(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))))
+ (|>> (pipe.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/debug.lux b/stdlib/source/library/lux/debug.lux
index a6d04ca55..3fbb14abf 100644
--- a/stdlib/source/library/lux/debug.lux
+++ b/stdlib/source/library/lux/debug.lux
@@ -8,7 +8,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" new>}]
+ ["[0]" pipe]
["[0]" function]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
@@ -255,7 +255,7 @@
(`` (|> value (~~ (template.spliced <then>))))])
(["boolean" [(:as .Bit) %.bit]]
["string" [(:as .Text) %.text]]
- ["nil" [(new> "nil" [])]])
+ ["nil" [(pipe.new "nil" [])]])
"number"
(case (math::type value)
@@ -300,7 +300,7 @@
[+1 Int %.int]
[+1.0 Frac %.frac]
["" Text %.text]
- [("ruby object nil") Any (new> "nil" [])]
+ [("ruby object nil") Any (pipe.new "nil" [])]
))
(same? (class_of {.#None}) value_class)
@@ -330,7 +330,7 @@
["integer" [(:as .Int) %.int]]
["double" [(:as .Frac) %.frac]]
["string" [(:as .Text) %.text]]
- ["NULL" [(new> "null" [])]]
+ ["NULL" [(pipe.new "null" [])]]
["array" [(tuple_inspection inspection)]])
"object"
@@ -357,7 +357,7 @@
[..integer? [(:as .Int) %.int]]
[..real? [(:as .Frac) %.frac]]
[..string? [(:as .Text) %.text]]
- ["scheme object nil?" [(new> "()" [])]]
+ ["scheme object nil?" [(pipe.new "()" [])]]
[..vector? [(tuple_inspection inspection)]]))
(..pair? value)
diff --git a/stdlib/source/library/lux/target/common_lisp.lux b/stdlib/source/library/lux/target/common_lisp.lux
index b6ae88601..6c98c57e0 100644
--- a/stdlib/source/library/lux/target/common_lisp.lux
+++ b/stdlib/source/library/lux/target/common_lisp.lux
@@ -1,20 +1,20 @@
(.using
- [library
- [lux {"-" Code int if cond or and comment let symbol}
- [control
- [pipe {"+" case> cond> new>}]]
- [data
- ["[0]" text
- ["%" format {"+" format}]]
- [collection
- ["[0]" list ("[1]#[0]" monad monoid)]]]
- [macro
- ["[0]" template]]
- [math
- [number
- ["f" frac]]]
- [type
- abstract]]])
+ [library
+ [lux {"-" Code int if cond or and comment let symbol}
+ [control
+ ["[0]" pipe]]
+ [data
+ ["[0]" text
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" list ("[1]#[0]" monad monoid)]]]
+ [macro
+ ["[0]" template]]
+ [math
+ [number
+ ["f" frac]]]
+ [type
+ abstract]]])
(def: as_form
(-> Text Text)
@@ -76,8 +76,9 @@
(def: .public bool
(-> Bit Literal)
- (|>> (case> #0 ..nil
- #1 (..symbol "t"))))
+ (|>> (pipe.case
+ #0 ..nil
+ #1 (..symbol "t"))))
(def: .public int
(-> Int Literal)
@@ -85,17 +86,17 @@
(def: .public float
(-> Frac Literal)
- (|>> (cond> [(f.= f.positive_infinity)]
- [(new> "(/ 1.0 0.0)" [])]
-
- [(f.= f.negative_infinity)]
- [(new> "(/ -1.0 0.0)" [])]
-
- [f.not_a_number?]
- [(new> "(/ 0.0 0.0)" [])]
-
- ... else
- [%.frac])
+ (|>> (pipe.cond [(f.= f.positive_infinity)]
+ [(pipe.new "(/ 1.0 0.0)" [])]
+
+ [(f.= f.negative_infinity)]
+ [(pipe.new "(/ -1.0 0.0)" [])]
+
+ [f.not_a_number?]
+ [(pipe.new "(/ 0.0 0.0)" [])]
+
+ ... else
+ [%.frac])
:abstraction))
(def: .public (double value)
diff --git a/stdlib/source/library/lux/target/js.lux b/stdlib/source/library/lux/target/js.lux
index b3f54a375..e227d6806 100644
--- a/stdlib/source/library/lux/target/js.lux
+++ b/stdlib/source/library/lux/target/js.lux
@@ -1,21 +1,21 @@
(.using
- [library
- [lux {"-" Location Code Label or and function if undefined for comment not int try ++ -- the}
- [control
- [pipe {"+" case>}]]
- [data
- ["[0]" text
- ["%" format {"+" format}]]
- [collection
- ["[0]" list ("[1]#[0]" functor mix)]]]
- [macro
- ["[0]" template]]
- [math
- [number
- ["i" int]
- ["f" frac]]]
- [type
- abstract]]])
+ [library
+ [lux {"-" Location Code Label or and function if undefined for comment not int try ++ -- the}
+ [control
+ ["[0]" pipe]]
+ [data
+ ["[0]" text
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" list ("[1]#[0]" functor mix)]]]
+ [macro
+ ["[0]" template]]
+ [math
+ [number
+ ["i" int]
+ ["f" frac]]]
+ [type
+ abstract]]])
(def: expression
(text.enclosed ["(" ")"]))
@@ -72,9 +72,9 @@
(def: .public boolean
(-> Bit Literal)
- (|>> (case>
- #0 "false"
- #1 "true")
+ (|>> (pipe.case
+ #0 "false"
+ #1 "true")
:abstraction))
(def: .public (number value)
diff --git a/stdlib/source/library/lux/target/jvm/constant/pool.lux b/stdlib/source/library/lux/target/jvm/constant/pool.lux
index 09dbf910f..666531963 100644
--- a/stdlib/source/library/lux/target/jvm/constant/pool.lux
+++ b/stdlib/source/library/lux/target/jvm/constant/pool.lux
@@ -7,7 +7,7 @@
[functor {"+" Functor}]
[monad {"+" Monad do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" state {"+" +State}]
["[0]" try {"+" Try}]]
[data
@@ -49,12 +49,13 @@
(def: (each $ it)
(|>> it
- (case> {try.#Success [state output]}
- {try.#Success [state ($ output)]}
-
- ... {try.#Failure error}
- failure
- (:expected failure)))))
+ (pipe.case
+ {try.#Success [state output]}
+ {try.#Success [state ($ output)]}
+
+ ... {try.#Failure error}
+ failure
+ (:expected failure)))))
(implementation: .public monad
(Monad Resource)
diff --git a/stdlib/source/library/lux/target/jvm/type/signature.lux b/stdlib/source/library/lux/target/jvm/type/signature.lux
index aa733a4e9..e2b00d292 100644
--- a/stdlib/source/library/lux/target/jvm/type/signature.lux
+++ b/stdlib/source/library/lux/target/jvm/type/signature.lux
@@ -1,24 +1,24 @@
(.using
- [library
- [lux {"-" Primitive int char}
- [abstract
- [equivalence {"+" Equivalence}]
- [hash {"+" Hash}]]
- [control
- [pipe {"+" case>}]]
- [data
- ["[0]" text ("[1]#[0]" hash)
- ["%" format {"+" format}]]
- [collection
- ["[0]" list ("[1]#[0]" functor)]]]
- [type
- abstract]]]
- ["[0]" // "_"
- [category {"+" Void Value Return Method Primitive Object Class Array Var Parameter Declaration Inheritance}]
- ["[1][0]" descriptor]
- ["/[1]" // "_"
- [encoding
- ["[1][0]" name {"+" External}]]]])
+ [library
+ [lux {"-" Primitive int char}
+ [abstract
+ [equivalence {"+" Equivalence}]
+ [hash {"+" Hash}]]
+ [control
+ ["[0]" pipe]]
+ [data
+ ["[0]" text ("[1]#[0]" hash)
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" list ("[1]#[0]" functor)]]]
+ [type
+ abstract]]]
+ ["[0]" // "_"
+ [category {"+" Void Value Return Method Primitive Object Class Array Var Parameter Declaration Inheritance}]
+ ["[1][0]" descriptor]
+ ["/[1]" // "_"
+ [encoding
+ ["[1][0]" name {"+" External}]]]])
(abstract: .public (Signature category)
Text
@@ -129,11 +129,12 @@
(def: var_declaration/*
(-> (List (Signature Var)) Text)
- (|>> (case> {.#End}
- ""
-
- it
- (..var_declaration/+ it))))
+ (|>> (pipe.case
+ {.#End}
+ ""
+
+ it
+ (..var_declaration/+ it))))
(def: .public (inheritance variables super interfaces)
(-> (List (Signature Var)) (Signature Class) (List (Signature Class)) (Signature Inheritance))
diff --git a/stdlib/source/library/lux/target/lua.lux b/stdlib/source/library/lux/target/lua.lux
index ed2e1087f..97f9abab1 100644
--- a/stdlib/source/library/lux/target/lua.lux
+++ b/stdlib/source/library/lux/target/lua.lux
@@ -7,7 +7,7 @@
[hash {"+" Hash}]
["[0]" enum]]
[control
- [pipe {"+" case> cond> new>}]
+ ["[0]" pipe]
[parser
["<[0]>" code]]]
[data
@@ -91,8 +91,9 @@
(def: .public boolean
(-> Bit Literal)
- (|>> (case> #0 "false"
- #1 "true")
+ (|>> (pipe.case
+ #0 "false"
+ #1 "true")
:abstraction))
(def: .public int
@@ -107,17 +108,17 @@
(def: .public float
(-> Frac Literal)
- (|>> (cond> [(f.= f.positive_infinity)]
- [(new> "(1.0/0.0)" [])]
-
- [(f.= f.negative_infinity)]
- [(new> "(-1.0/0.0)" [])]
-
- [(f.= f.not_a_number)]
- [(new> "(0.0/0.0)" [])]
-
- ... else
- [%.frac (text.replaced "+" "")])
+ (|>> (pipe.cond [(f.= f.positive_infinity)]
+ [(pipe.new "(1.0/0.0)" [])]
+
+ [(f.= f.negative_infinity)]
+ [(pipe.new "(-1.0/0.0)" [])]
+
+ [(f.= f.not_a_number)]
+ [(pipe.new "(0.0/0.0)" [])]
+
+ ... else
+ [%.frac (text.replaced "+" "")])
:abstraction))
(def: safe
diff --git a/stdlib/source/library/lux/target/php.lux b/stdlib/source/library/lux/target/php.lux
index b23ac1b98..6f5b171c9 100644
--- a/stdlib/source/library/lux/target/php.lux
+++ b/stdlib/source/library/lux/target/php.lux
@@ -7,7 +7,7 @@
[hash {"+" Hash}]
["[0]" enum]]
[control
- [pipe {"+" case> cond> new>}]
+ ["[0]" pipe]
[parser
["<[0]>" code]]]
[data
@@ -134,8 +134,9 @@
(def: .public bool
(-> Bit Literal)
- (|>> (case> #0 "false"
- #1 "true")
+ (|>> (pipe.case
+ #0 "false"
+ #1 "true")
:abstraction))
(def: .public int
@@ -148,17 +149,17 @@
(def: .public float
(-> Frac Literal)
- (|>> (cond> [(f.= f.positive_infinity)]
- [(new> "+INF" [])]
-
- [(f.= f.negative_infinity)]
- [(new> "-INF" [])]
-
- [(f.= f.not_a_number)]
- [(new> "NAN" [])]
-
- ... else
- [%.frac])
+ (|>> (pipe.cond [(f.= f.positive_infinity)]
+ [(pipe.new "+INF" [])]
+
+ [(f.= f.negative_infinity)]
+ [(pipe.new "-INF" [])]
+
+ [(f.= f.not_a_number)]
+ [(pipe.new "NAN" [])]
+
+ ... else
+ [%.frac])
:abstraction))
(def: safe
diff --git a/stdlib/source/library/lux/target/python.lux b/stdlib/source/library/lux/target/python.lux
index 0f25e6eb2..1b5ecd2ee 100644
--- a/stdlib/source/library/lux/target/python.lux
+++ b/stdlib/source/library/lux/target/python.lux
@@ -8,7 +8,7 @@
[hash {"+" Hash}]
["[0]" enum]]
[control
- [pipe {"+" new> case> cond>}]
+ ["[0]" pipe]
[parser
["<[0]>" code]]]
[data
@@ -132,8 +132,9 @@
(def: .public bool
(-> Bit Literal)
- (|>> (case> #0 "False"
- #1 "True")
+ (|>> (pipe.case
+ #0 "False"
+ #1 "True")
:abstraction))
(def: .public int
@@ -146,17 +147,17 @@
(def: .public float
(-> Frac Literal)
- (`` (|>> (cond> (~~ (template [<test> <python>]
- [[<test>]
- [(new> (format "float(" text.double_quote <python> text.double_quote ")") [])]]
-
- [(f.= f.positive_infinity) "inf"]
- [(f.= f.negative_infinity) "-inf"]
- [f.not_a_number? "nan"]
- ))
-
- ... else
- [%.frac])
+ (`` (|>> (pipe.cond (~~ (template [<test> <python>]
+ [[<test>]
+ [(pipe.new (format "float(" text.double_quote <python> text.double_quote ")") [])]]
+
+ [(f.= f.positive_infinity) "inf"]
+ [(f.= f.negative_infinity) "-inf"]
+ [f.not_a_number? "nan"]
+ ))
+
+ ... else
+ [%.frac])
:abstraction)))
(def: safe
diff --git a/stdlib/source/library/lux/target/r.lux b/stdlib/source/library/lux/target/r.lux
index f4c3588ce..ad23a3e20 100644
--- a/stdlib/source/library/lux/target/r.lux
+++ b/stdlib/source/library/lux/target/r.lux
@@ -1,26 +1,26 @@
(.using
- [library
- [lux {"-" Code or and list if function cond not int}
- [control
- [pipe {"+" case> cond> new>}]
- ["[0]" function]
- ["[0]" maybe ("[1]#[0]" functor)]
- [parser
- ["<[0]>" code]]]
- [data
- ["[0]" text
- ["%" format {"+" format}]]
- [collection
- ["[0]" list ("[1]#[0]" functor mix)]]]
- [macro
- [syntax {"+" syntax:}]
- ["[0]" template]
- ["[0]" code]]
- [math
- [number
- ["f" frac]]]
- [type
- abstract]]])
+ [library
+ [lux {"-" Code or and list if function cond not int}
+ [control
+ ["[0]" pipe]
+ ["[0]" function]
+ ["[0]" maybe ("[1]#[0]" functor)]
+ [parser
+ ["<[0]>" code]]]
+ [data
+ ["[0]" text
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" list ("[1]#[0]" functor mix)]]]
+ [macro
+ [syntax {"+" syntax:}]
+ ["[0]" template]
+ ["[0]" code]]
+ [math
+ [number
+ ["f" frac]]]
+ [type
+ abstract]]])
(abstract: .public (Code kind)
Text
@@ -113,8 +113,9 @@
(def: .public bool
(-> Bit Expression)
- (|>> (case> #0 "FALSE"
- #1 "TRUE")
+ (|>> (pipe.case
+ #0 "FALSE"
+ #1 "TRUE")
:abstraction))
(def: .public int
@@ -123,17 +124,17 @@
(def: .public float
(-> Frac Expression)
- (|>> (cond> [(f.= f.positive_infinity)]
- [(new> "1.0/0.0" [])]
-
- [(f.= f.negative_infinity)]
- [(new> "-1.0/0.0" [])]
-
- [(f.= f.not_a_number)]
- [(new> "0.0/0.0" [])]
-
- ... else
- [%.frac])
+ (|>> (pipe.cond [(f.= f.positive_infinity)]
+ [(pipe.new "1.0/0.0" [])]
+
+ [(f.= f.negative_infinity)]
+ [(pipe.new "-1.0/0.0" [])]
+
+ [(f.= f.not_a_number)]
+ [(pipe.new "0.0/0.0" [])]
+
+ ... else
+ [%.frac])
..self_contained))
(def: safe
diff --git a/stdlib/source/library/lux/target/ruby.lux b/stdlib/source/library/lux/target/ruby.lux
index b965a3296..a5949aab0 100644
--- a/stdlib/source/library/lux/target/ruby.lux
+++ b/stdlib/source/library/lux/target/ruby.lux
@@ -7,7 +7,7 @@
[hash {"+" Hash}]
["[0]" enum]]
[control
- [pipe {"+" case> cond> new>}]
+ ["[0]" pipe]
[parser
["<[0]>" code]]]
[data
@@ -153,8 +153,9 @@
(def: .public bool
(-> Bit Literal)
- (|>> (case> #0 "false"
- #1 "true")
+ (|>> (pipe.case
+ #0 "false"
+ #1 "true")
:abstraction))
(def: safe
@@ -186,17 +187,17 @@
(def: .public float
(-> Frac Literal)
- (|>> (cond> [(f.= f.positive_infinity)]
- [(new> "(+1.0/0.0)" [])]
-
- [(f.= f.negative_infinity)]
- [(new> "(-1.0/0.0)" [])]
-
- [(f.= f.not_a_number)]
- [(new> "(+0.0/-0.0)" [])]
-
- ... else
- [%.frac])
+ (|>> (pipe.cond [(f.= f.positive_infinity)]
+ [(pipe.new "(+1.0/0.0)" [])]
+
+ [(f.= f.negative_infinity)]
+ [(pipe.new "(-1.0/0.0)" [])]
+
+ [(f.= f.not_a_number)]
+ [(pipe.new "(+0.0/-0.0)" [])]
+
+ ... else
+ [%.frac])
:abstraction))
(def: .public (array_range from to array)
diff --git a/stdlib/source/library/lux/target/scheme.lux b/stdlib/source/library/lux/target/scheme.lux
index 5a90ecbe4..2ea9a66e8 100644
--- a/stdlib/source/library/lux/target/scheme.lux
+++ b/stdlib/source/library/lux/target/scheme.lux
@@ -6,7 +6,7 @@
[equivalence {"+" Equivalence}]
[hash {"+" Hash}]]
[control
- [pipe {"+" new> cond> case>}]]
+ ["[0]" pipe]]
[data
["[0]" text
["%" format {"+" format}]]
@@ -107,8 +107,9 @@
(def: .public bool
(-> Bit Computation)
- (|>> (case> #0 "#f"
- #1 "#t")
+ (|>> (pipe.case
+ #0 "#f"
+ #1 "#t")
:abstraction))
(def: .public int
@@ -117,17 +118,17 @@
(def: .public float
(-> Frac Computation)
- (|>> (cond> [(f.= f.positive_infinity)]
- [(new> "+inf.0" [])]
-
- [(f.= f.negative_infinity)]
- [(new> "-inf.0" [])]
-
- [f.not_a_number?]
- [(new> "+nan.0" [])]
-
- ... else
- [%.frac])
+ (|>> (pipe.cond [(f.= f.positive_infinity)]
+ [(pipe.new "+inf.0" [])]
+
+ [(f.= f.negative_infinity)]
+ [(pipe.new "-inf.0" [])]
+
+ [f.not_a_number?]
+ [(pipe.new "+nan.0" [])]
+
+ ... else
+ [%.frac])
:abstraction))
(def: .public positive_infinity Computation (..float f.positive_infinity))
@@ -161,16 +162,17 @@
(def: form
(-> (List (Code Any)) Code)
(.let [nested_new_line (format \n+ text.tab)]
- (|>> (case> {.#End}
- (:abstraction "()")
-
- {.#Item head tail}
- (|> tail
- (list#each (|>> :representation ..nested))
- {.#Item (:representation head)}
- (text.interposed nested_new_line)
- (text.enclosed ["(" ")"])
- :abstraction)))))
+ (|>> (pipe.case
+ {.#End}
+ (:abstraction "()")
+
+ {.#Item head tail}
+ (|> tail
+ (list#each (|>> :representation ..nested))
+ {.#Item (:representation head)}
+ (text.interposed nested_new_line)
+ (text.enclosed ["(" ")"])
+ :abstraction)))))
(def: .public (apply/* args func)
(-> (List Expression) Expression Computation)
diff --git a/stdlib/source/library/lux/test.lux b/stdlib/source/library/lux/test.lux
index 2ace74aa6..3cb983c36 100644
--- a/stdlib/source/library/lux/test.lux
+++ b/stdlib/source/library/lux/test.lux
@@ -6,7 +6,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe]
["[0]" try]
["[0]" exception {"+" exception:}]
@@ -403,11 +403,12 @@
product.right
(function (_ _))
"lux try"
- (case> {try.#Success output}
- output
-
- {try.#Failure error}
- (..assertion (exception.error ..error_during_execution [error]) false))))
+ (pipe.case
+ {try.#Success output}
+ output
+
+ {try.#Failure error}
+ (..assertion (exception.error ..error_during_execution [error]) false))))
state (: (Atom (Dictionary Nat [Tally Text]))
(atom.atom (dictionary.empty n.order)))
[read! write!] (: [Assertion
diff --git a/stdlib/source/library/lux/time.lux b/stdlib/source/library/lux/time.lux
index debab4ab4..2b7c172f5 100644
--- a/stdlib/source/library/lux/time.lux
+++ b/stdlib/source/library/lux/time.lux
@@ -8,7 +8,7 @@
[codec {"+" Codec}]
[monad {"+" Monad do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
["<>" parser
@@ -117,8 +117,9 @@
(def: pred
(|>> :representation
- (case> 0 ..limit
- millis millis)
+ (pipe.case
+ 0 ..limit
+ millis millis)
--
:abstraction))))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux
index fa9e2e0fb..4b18f2874 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/inference.lux
@@ -5,7 +5,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe]
["[0]" try]
["[0]" exception {"+" exception:}]]
@@ -265,16 +265,17 @@
(|> it
type.flat_variant
(list.after lefts)
- (case> {.#Item [head tail]}
- (let [case (if right?
- (type.variant tail)
- head)]
- (-> (if (n.= 0 depth)
- case
- (..with_recursion (|> depth -- (n.* 2)) complex case))
- (type.application (parameters depth) complex)))
+ (pipe.case
+ {.#Item [head tail]}
+ (let [case (if right?
+ (type.variant tail)
+ head)]
+ (-> (if (n.= 0 depth)
+ case
+ (..with_recursion (|> depth -- (n.* 2)) complex case))
+ (type.application (parameters depth) complex)))
- {.#End}
- (-> .Nothing complex))
+ {.#End}
+ (-> .Nothing complex))
phase#in)]
)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/module.lux b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/module.lux
index 39fcf63e7..484d1e886 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/analysis/module.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/analysis/module.lux
@@ -4,7 +4,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- pipe
+ ["[0]" pipe]
["[0]" try]
["[0]" exception {"+" exception:}]]
[data
@@ -111,8 +111,9 @@
(|> state
(the .#modules)
(plist.value module)
- (case> {.#Some _} #1 {.#None} #0)
- [state] {try.#Success}))))
+ (pipe.case {.#Some _} #1 {.#None} #0)
+ [state]
+ {try.#Success}))))
(def: .public (define name definition)
(-> Text Global (Operation Any))
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 18e485a46..5b833c0b7 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
@@ -7,7 +7,7 @@
["[0]" monad {"+" do}]
["[0]" predicate]]
[control
- pipe
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try} ("[1]#[0]" monad)]
["[0]" exception {"+" exception:}]
@@ -1342,11 +1342,12 @@
(template [<name> <tag>]
[(def: <name>
(-> Evaluation (Maybe Method_Signature))
- (|>> (case> {<tag> output}
- {.#Some output}
+ (|>> (pipe.case
+ {<tag> output}
+ {.#Some output}
- _
- {.#None})))]
+ _
+ {.#None})))]
[pass! #Pass]
[hint! #Hint]
@@ -2404,7 +2405,7 @@
[constant (`` (|> value (~~ (template.spliced <constant>))))
attribute (attribute.constant constant)]
(field.field ..constant::modifier name #1 <type> (sequence.sequence attribute)))])
- ([.#Bit jvm.boolean [(case> #0 +0 #1 +1) .i64 i32.i32 constant.integer pool.integer]]
+ ([.#Bit jvm.boolean [(pipe.case #0 +0 #1 +1) .i64 i32.i32 constant.integer pool.integer]]
[.#Int jvm.byte [.i64 i32.i32 constant.integer pool.integer]]
[.#Int jvm.short [.i64 i32.i32 constant.integer pool.integer]]
[.#Int jvm.int [.i64 i32.i32 constant.integer pool.integer]]
@@ -2426,10 +2427,11 @@
(def: method_privacy
(-> ffi.Privacy (Modifier method.Method))
- (|>> (case> {ffi.#PublicP} method.public
- {ffi.#PrivateP} method.private
- {ffi.#ProtectedP} method.protected
- {ffi.#DefaultP} modifier.empty)))
+ (|>> (pipe.case
+ {ffi.#PublicP} method.public
+ {ffi.#PrivateP} method.private
+ {ffi.#ProtectedP} method.protected
+ {ffi.#DefaultP} modifier.empty)))
(def: constructor_name
"<init>")
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 8c314121a..0dc4e8ed4 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
@@ -5,7 +5,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try {"+" Try} ("[1]#[0]" functor)]
["[0]" exception]
["<>" parser ("[1]#[0]" monad)
@@ -102,10 +102,11 @@
(def: method_privacy
(-> ffi.Privacy (Modifier method.Method))
- (|>> (case> {ffi.#PublicP} method.public
- {ffi.#PrivateP} method.private
- {ffi.#ProtectedP} method.protected
- {ffi.#DefaultP} modifier.empty)))
+ (|>> (pipe.case
+ {ffi.#PublicP} method.public
+ {ffi.#PrivateP} method.private
+ {ffi.#ProtectedP} method.protected
+ {ffi.#DefaultP} modifier.empty)))
(def: visibility'
(<text>.Parser (Modifier field.Field))
@@ -235,7 +236,7 @@
[constant (`` (|> value (~~ (template.spliced <constant>))))
attribute (attribute.constant constant)]
(field.field ..constant::modifier name #1 <type> (sequence.sequence attribute)))])
- ([.#Bit type.boolean [(case> #0 +0 #1 +1) .i64 i32.i32 constant.integer pool.integer]]
+ ([.#Bit type.boolean [(pipe.case #0 +0 #1 +1) .i64 i32.i32 constant.integer pool.integer]]
[.#Int type.byte [.i64 i32.i32 constant.integer pool.integer]]
[.#Int type.short [.i64 i32.i32 constant.integer pool.integer]]
[.#Int type.int [.i64 i32.i32 constant.integer pool.integer]]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/primitive.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/primitive.lux
index 19fafd7d5..e5cc82537 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/primitive.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/php/primitive.lux
@@ -1,8 +1,6 @@
(.using
[library
[lux {"-" i64}
- [control
- [pipe {"+" cond> new>}]]
[math
[number
["[0]" frac]]]
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 ae74e45f3..274c4d0ad 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
@@ -4,7 +4,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try]]
[data
[collection
@@ -89,14 +89,15 @@
(function (_ state)
(|> (//extension.apply archive optimization [name args])
(phase.result' state)
- (case> {try.#Success output}
- {try.#Success output}
-
- {try.#Failure _}
- (|> args
- (monad.each phase.monad optimization')
- (phase#each (|>> [name] {/.#Extension}))
- (phase.result' state))))))
+ (pipe.case
+ {try.#Success output}
+ {try.#Success output}
+
+ {try.#Failure _}
+ (|> args
+ (monad.each phase.monad optimization')
+ (phase#each (|>> [name] {/.#Extension}))
+ (phase.result' state))))))
)))
(def: .public (phase archive analysis)
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 1bf6357f7..a9fa9c013 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
@@ -5,7 +5,7 @@
[equivalence {"+" Equivalence}]
["[0]" monad {"+" do}]]
[control
- [pipe {"+" when> new> case>}]]
+ ["[0]" pipe]]
[data
["[0]" product]
["[0]" bit ("[1]#[0]" equivalence)]
@@ -72,7 +72,7 @@
(<| (///#each (|>> {/.#Seq {/.#Access {/access.#Side [/side.#lefts lefts
/side.#right? right?]}}}))
(path' value_pattern end?)
- (when> [(new> (not end?) [])] [(///#each ..clean_up)])
+ (pipe.when [(pipe.new (not end?) [])] [(///#each ..clean_up)])
thenC)
{///pattern.#Complex {///complex.#Tuple tuple}}
@@ -90,7 +90,7 @@
tuple::lefts)
/member.#right? right?]}}}))
(path' tuple::member end?')
- (when> [(new> (not end?') [])] [(///#each ..clean_up)])
+ (pipe.when [(pipe.new (not end?') [])] [(///#each ..clean_up)])
nextC))))
thenC
(list.reversed (list.enumeration tuple))))
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 c08117adc..e9ec84dca 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
@@ -5,7 +5,7 @@
["[0]" monad {"+" do}]
["[0]" enum]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" exception {"+" exception:}]]
[data
@@ -222,11 +222,12 @@
{/.#Abstraction [_env _arity _body]}
(do [! phase.monad]
[_env' (monad.each !
- (|>> (case> {/.#Reference {////reference.#Variable {////reference/variable.#Foreign register}}}
- (..find_foreign environment register)
+ (|>> (pipe.case
+ {/.#Reference {////reference.#Variable {////reference/variable.#Foreign register}}}
+ (..find_foreign environment register)
- captured
- (grow environment captured)))
+ captured
+ (grow environment captured)))
_env)]
(in (/.function/abstraction [_env' _arity _body])))
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 1d8b9e6d3..b4e9e5b28 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/synthesis.lux
@@ -6,7 +6,6 @@
[equivalence {"+" Equivalence}]
[hash {"+" Hash}]]
[control
- [pipe {"+" case>}]
["[0]" maybe]
["[0]" exception {"+" exception:}]]
[data
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/synthesis/simple.lux b/stdlib/source/library/lux/tool/compiler/language/lux/synthesis/simple.lux
index bd9463555..7d98c463a 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/synthesis/simple.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/synthesis/simple.lux
@@ -5,7 +5,7 @@
[equivalence {"+" Equivalence}]
[hash {"+" Hash}]]
[control
- [pipe {"+" case>}]]
+ ["[0]" pipe]]
[data
["[0]" bit ("[1]#[0]" equivalence)]
["[0]" text ("[1]#[0]" equivalence)
@@ -61,10 +61,11 @@
(def: &equivalence ..equivalence)
(def: hash
- (|>> (case> (^template [<factor> <tag> <hash>]
- [{<tag> value'}
- (n.* <factor> (# <hash> hash value'))])
- ([2 #Bit bit.hash]
- [3 #F64 f.hash]
- [5 #Text text.hash]
- [7 #I64 i64.hash])))))
+ (|>> (pipe.case
+ (^template [<factor> <tag> <hash>]
+ [{<tag> value'}
+ (n.* <factor> (# <hash> hash value'))])
+ ([2 #Bit bit.hash]
+ [3 #F64 f.hash]
+ [5 #Text text.hash]
+ [7 #I64 i64.hash])))))
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux
index be3619845..a1a201a79 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux
@@ -4,7 +4,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case> let>}]
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" exception {"+" exception:}]
["<>" parser
@@ -79,8 +79,9 @@
sequence.list
(list.all (|>> product.left
(the //.#category)
- (case> {<tag> it} {.#Some it}
- _ {.#None})))))]
+ (pipe.case
+ {<tag> it} {.#Some it}
+ _ {.#None})))))]
[//category.#Definition definition definitions //category.Definition
product.left {.#Some it}]
diff --git a/stdlib/source/library/lux/tool/compiler/meta/cache/module.lux b/stdlib/source/library/lux/tool/compiler/meta/cache/module.lux
index e397214b4..b584dd240 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/cache/module.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/cache/module.lux
@@ -5,7 +5,7 @@
[abstract
["[0]" monad {"+" Monad do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]]
[data
@@ -61,11 +61,12 @@
success
(|> path
(# fs make_directory)
- (# ! each (|>> (case> {try.#Failure error}
- <failure>
+ (# ! each (|>> (pipe.case
+ {try.#Failure error}
+ <failure>
- success
- success))))))))))
+ success
+ success))))))))))
(def: file
file.Path
diff --git a/stdlib/source/library/lux/tool/compiler/meta/cli.lux b/stdlib/source/library/lux/tool/compiler/meta/cli.lux
index a9f5d67a5..ba6bb8706 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/cli.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/cli.lux
@@ -5,7 +5,7 @@
[monad {"+" do}]
[equivalence {"+" Equivalence}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["<>" parser
["<[0]>" cli {"+" Parser}]
["<[0]>" text]]]
@@ -106,7 +106,8 @@
(def: .public target
(-> Service Target)
- (|>> (case> (^or {#Compilation [host_dependencies libraries compilers sources target module]}
- {#Interpretation [host_dependencies libraries compilers sources target module]}
- {#Export [sources target]})
- target)))
+ (|>> (pipe.case
+ (^or {#Compilation [host_dependencies libraries compilers sources target module]}
+ {#Interpretation [host_dependencies libraries compilers sources target module]}
+ {#Export [sources target]})
+ target)))
diff --git a/stdlib/source/library/lux/tool/compiler/reference.lux b/stdlib/source/library/lux/tool/compiler/reference.lux
index 56f9b9589..7dff736ed 100644
--- a/stdlib/source/library/lux/tool/compiler/reference.lux
+++ b/stdlib/source/library/lux/tool/compiler/reference.lux
@@ -5,7 +5,7 @@
[equivalence {"+" Equivalence}]
[hash {"+" Hash}]]
[control
- [pipe {"+" case>}]]
+ ["[0]" pipe]]
[data
[text
["%" format {"+" Format}]]]
@@ -80,8 +80,9 @@
(def: .public format
(Format Reference)
- (|>> (case> {#Variable variable}
- (/variable.format variable)
-
- {#Constant constant}
- (%.symbol constant))))
+ (|>> (pipe.case
+ {#Variable variable}
+ (/variable.format variable)
+
+ {#Constant constant}
+ (%.symbol constant))))
diff --git a/stdlib/source/library/lux/tool/compiler/reference/variable.lux b/stdlib/source/library/lux/tool/compiler/reference/variable.lux
index 0efc63114..0614c5b30 100644
--- a/stdlib/source/library/lux/tool/compiler/reference/variable.lux
+++ b/stdlib/source/library/lux/tool/compiler/reference/variable.lux
@@ -1,18 +1,18 @@
(.using
- [library
- [lux "*"
- [abstract
- [equivalence {"+" Equivalence}]
- [hash {"+" Hash}]]
- [control
- [pipe {"+" case>}]]
- [data
- [text
- ["%" format {"+" Format}]]]
- [math
- [number
- ["n" nat]
- ["i" int]]]]])
+ [library
+ [lux "*"
+ [abstract
+ [equivalence {"+" Equivalence}]
+ [hash {"+" Hash}]]
+ [control
+ ["[0]" pipe]]
+ [data
+ [text
+ ["%" format {"+" Format}]]]
+ [math
+ [number
+ ["n" nat]
+ ["i" int]]]]])
(type: .public Register
Nat)
@@ -42,29 +42,32 @@
..equivalence)
(def: hash
- (|>> (case> (^template [<factor> <tag>]
- [{<tag> register}
- (|> register
- (# n.hash hash)
- (n.* <factor>))])
- ([2 #Local]
- [3 #Foreign])))))
+ (|>> (pipe.case
+ (^template [<factor> <tag>]
+ [{<tag> register}
+ (|> register
+ (# n.hash hash)
+ (n.* <factor>))])
+ ([2 #Local]
+ [3 #Foreign])))))
(template: .public (self)
[{..#Local 0}])
(def: .public self?
(-> Variable Bit)
- (|>> (case> (^ (..self))
- true
+ (|>> (pipe.case
+ (^ (..self))
+ true
- _
- false)))
+ _
+ false)))
(def: .public format
(Format Variable)
- (|>> (case> {#Local local}
- (%.format "+" (%.nat local))
-
- {#Foreign foreign}
- (%.format "-" (%.nat foreign)))))
+ (|>> (pipe.case
+ {#Local local}
+ (%.format "+" (%.nat local))
+
+ {#Foreign foreign}
+ (%.format "-" (%.nat foreign)))))
diff --git a/stdlib/source/library/lux/world/file.lux b/stdlib/source/library/lux/world/file.lux
index e3f87b053..ff9f2aeee 100644
--- a/stdlib/source/library/lux/world/file.lux
+++ b/stdlib/source/library/lux/world/file.lux
@@ -5,7 +5,7 @@
[abstract
["[0]" monad {"+" Monad do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try} ("[1]#[0]" functor)]
["[0]" exception {"+" exception:}]
@@ -460,11 +460,12 @@
(def: (can_execute? path)
(# async.monad each
- (|>> (case> {try.#Success _}
- true
+ (|>> (pipe.case
+ {try.#Success _}
+ true
- {try.#Failure _}
- false)
+ {try.#Failure _}
+ false)
{try.#Success})
(with_async write! (Try Any)
(Fs::access path
diff --git a/stdlib/source/library/lux/world/net/http/client.lux b/stdlib/source/library/lux/world/net/http/client.lux
index 973ad7ca2..6ad98c38c 100644
--- a/stdlib/source/library/lux/world/net/http/client.lux
+++ b/stdlib/source/library/lux/world/net/http/client.lux
@@ -6,7 +6,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" io {"+" IO}]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try}]
@@ -110,64 +110,66 @@
(def: jvm_method
(-> //.Method Text)
- (|>> (case> {//.#Post} "POST"
- {//.#Get} "GET"
- {//.#Put} "PUT"
- {//.#Patch} "PATCH"
- {//.#Delete} "DELETE"
- {//.#Head} "HEAD"
- {//.#Connect} "CONNECT"
- {//.#Options} "OPTIONS"
- {//.#Trace} "TRACE")))
+ (|>> (pipe.case
+ {//.#Post} "POST"
+ {//.#Get} "GET"
+ {//.#Put} "PUT"
+ {//.#Patch} "PATCH"
+ {//.#Delete} "DELETE"
+ {//.#Head} "HEAD"
+ {//.#Connect} "CONNECT"
+ {//.#Options} "OPTIONS"
+ {//.#Trace} "TRACE")))
(def: (default_body input)
(-> java/io/BufferedInputStream (//.Body IO))
(|>> (maybe#each (|>> [true]))
(maybe.else [false ..default_buffer_size])
- (case> [_ 0]
- (do (try.with io.monad)
- [_ (java/lang/AutoCloseable::close input)]
- (in ..empty_body))
-
- [partial? buffer_size]
- (let [buffer (binary.empty buffer_size)]
- (if partial?
- (loop [so_far +0]
- (do [! (try.with io.monad)]
- [.let [remaining (i.- so_far (.int buffer_size))]
- bytes_read (# ! each (|>> ffi.of_int)
- (java/io/BufferedInputStream::read buffer (ffi.as_int so_far) (ffi.as_int remaining) input))]
- (case bytes_read
- -1 (do !
- [_ (java/lang/AutoCloseable::close input)]
- (in [(.nat so_far) buffer]))
- +0 (again so_far)
- _ (if (i.= remaining bytes_read)
- (in [buffer_size buffer])
- (again (i.+ bytes_read so_far))))))
- (loop [so_far +0
- output (# binary.monoid identity)]
- (do [! (try.with io.monad)]
- [.let [remaining (i.- so_far (.int buffer_size))]
- bytes_read (# ! each (|>> ffi.of_int)
- (java/io/BufferedInputStream::read buffer (ffi.as_int so_far) (ffi.as_int remaining) input))]
- (case bytes_read
- -1 (do !
- [_ (java/lang/AutoCloseable::close input)]
- (case so_far
- +0 (in (..body_of output))
- _ (|> buffer
- (binary.slice 0 (.nat so_far))
- (# try.functor each
- (|>> (# binary.monoid composite output)
- ..body_of))
- (# io.monad in))))
- +0 (again so_far output)
- _ (if (i.= remaining bytes_read)
- (again +0
- (# binary.monoid composite output buffer))
- (again (i.+ bytes_read so_far)
- output))))))))))
+ (pipe.case
+ [_ 0]
+ (do (try.with io.monad)
+ [_ (java/lang/AutoCloseable::close input)]
+ (in ..empty_body))
+
+ [partial? buffer_size]
+ (let [buffer (binary.empty buffer_size)]
+ (if partial?
+ (loop [so_far +0]
+ (do [! (try.with io.monad)]
+ [.let [remaining (i.- so_far (.int buffer_size))]
+ bytes_read (# ! each (|>> ffi.of_int)
+ (java/io/BufferedInputStream::read buffer (ffi.as_int so_far) (ffi.as_int remaining) input))]
+ (case bytes_read
+ -1 (do !
+ [_ (java/lang/AutoCloseable::close input)]
+ (in [(.nat so_far) buffer]))
+ +0 (again so_far)
+ _ (if (i.= remaining bytes_read)
+ (in [buffer_size buffer])
+ (again (i.+ bytes_read so_far))))))
+ (loop [so_far +0
+ output (# binary.monoid identity)]
+ (do [! (try.with io.monad)]
+ [.let [remaining (i.- so_far (.int buffer_size))]
+ bytes_read (# ! each (|>> ffi.of_int)
+ (java/io/BufferedInputStream::read buffer (ffi.as_int so_far) (ffi.as_int remaining) input))]
+ (case bytes_read
+ -1 (do !
+ [_ (java/lang/AutoCloseable::close input)]
+ (case so_far
+ +0 (in (..body_of output))
+ _ (|> buffer
+ (binary.slice 0 (.nat so_far))
+ (# try.functor each
+ (|>> (# binary.monoid composite output)
+ ..body_of))
+ (# io.monad in))))
+ +0 (again so_far output)
+ _ (if (i.= remaining bytes_read)
+ (again +0
+ (# binary.monoid composite output buffer))
+ (again (i.+ bytes_read so_far)
+ output))))))))))
(def: (default_headers connection)
(-> java/net/HttpURLConnection (IO (Try //.Headers)))
@@ -228,14 +230,15 @@
(|> (# 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))
- (function (_ body)
- (|>> body async.future)))
- message)]}
-
- {try.#Failure error}
- {try.#Failure error}))))))
+ (|>> (pipe.case
+ {try.#Success [status message]}
+ {try.#Success [status (revised //.#body (: (-> (//.Body IO) (//.Body Async))
+ (function (_ body)
+ (|>> body async.future)))
+ message)]}
+
+ {try.#Failure error}
+ {try.#Failure error}))))))
(def: .public headers
(-> (List [Text Text]) //.Headers)
diff --git a/stdlib/source/library/lux/world/net/http/header.lux b/stdlib/source/library/lux/world/net/http/header.lux
index 8388a0d5d..61bd78dbc 100644
--- a/stdlib/source/library/lux/world/net/http/header.lux
+++ b/stdlib/source/library/lux/world/net/http/header.lux
@@ -1,26 +1,26 @@
(.using
- [library
- [lux "*"
- [control
- [pipe {"+" case>}]]
- [data
- [text
- ["%" format {"+" format}]]
- [collection
- ["[0]" dictionary {"+" Dictionary}]]]]]
- [// {"+" Header}
- ["[0]" mime {"+" MIME}]
- [// {"+" URL}]])
+ [library
+ [lux "*"
+ [control
+ ["[0]" pipe]]
+ [data
+ [text
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" dictionary {"+" Dictionary}]]]]]
+ [// {"+" Header}
+ ["[0]" mime {"+" MIME}]
+ [// {"+" URL}]])
(def: .public (has name value)
(-> Text Text Header)
(dictionary.revised' name ""
- (|>> (case>
- ""
- value
-
- previous
- (format previous "," value)))))
+ (|>> (pipe.case
+ ""
+ value
+
+ previous
+ (format previous "," value)))))
(def: .public content_length
(-> Nat Header)
diff --git a/stdlib/source/program/aedifex.lux b/stdlib/source/program/aedifex.lux
index af302a16b..4145bb9c5 100644
--- a/stdlib/source/program/aedifex.lux
+++ b/stdlib/source/program/aedifex.lux
@@ -6,7 +6,6 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" do>}]
["[0]" io {"+" IO}]
["[0]" try {"+" Try} ("[1]#[0]" functor)]
["[0]" exception {"+" exception:}]
diff --git a/stdlib/source/program/aedifex/command/deploy.lux b/stdlib/source/program/aedifex/command/deploy.lux
index 180f39a95..eeecd1f8d 100644
--- a/stdlib/source/program/aedifex/command/deploy.lux
+++ b/stdlib/source/program/aedifex/command/deploy.lux
@@ -4,7 +4,6 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" do>}]
["[0]" try {"+" Try}]
[concurrency
["[0]" async {"+" Async} ("[1]#[0]" monad)]]
diff --git a/stdlib/source/program/aedifex/input.lux b/stdlib/source/program/aedifex/input.lux
index c824e7497..e36db11f0 100644
--- a/stdlib/source/program/aedifex/input.lux
+++ b/stdlib/source/program/aedifex/input.lux
@@ -1,34 +1,34 @@
(.using
- [library
- [lux "*"
- [abstract
- ["[0]" monad {"+" Monad do}]
- ["[0]" mix]]
- [control
- [pipe {"+" do>}]
- ["[0]" try {"+" Try}]
- [parser
- ["<[0]>" code]]]
- [data
- [binary {"+" Binary}]
- ["[0]" text
- [encoding
- ["[0]" utf8]]]
- [collection
- ["[0]" list]]]
- [meta
- ["[0]" location]]
- [tool
- [compiler
- [language
- [lux
- ["[0]" syntax]]]]]
- [world
- ["[0]" file]]]]
- ["[0]" // "_"
- ["[1][0]" profile {"+" Name Profile}]
- ["[1][0]" project {"+" Project}]
- ["[1][0]" parser]])
+ [library
+ [lux "*"
+ [abstract
+ ["[0]" monad {"+" Monad do}]
+ ["[0]" mix]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try {"+" Try}]
+ [parser
+ ["<[0]>" code]]]
+ [data
+ [binary {"+" Binary}]
+ ["[0]" text
+ [encoding
+ ["[0]" utf8]]]
+ [collection
+ ["[0]" list]]]
+ [meta
+ ["[0]" location]]
+ [tool
+ [compiler
+ [language
+ [lux
+ ["[0]" syntax]]]]]
+ [world
+ ["[0]" file]]]]
+ ["[0]" // "_"
+ ["[1][0]" profile {"+" Name Profile}]
+ ["[1][0]" project {"+" Project}]
+ ["[1][0]" parser]])
(def: (lux_parser source_code)
(-> Text (Try Code))
@@ -44,10 +44,10 @@
(def: project_parser
(-> Binary (Try Project))
- (|>> (do> try.monad
- [(# utf8.codec decoded)]
- [..lux_parser]
- [(list) (<code>.result //parser.project)])))
+ (|>> (pipe.do try.monad
+ [(# utf8.codec decoded)]
+ [..lux_parser]
+ [(list) (<code>.result //parser.project)])))
(def: .public (read monad fs profiles)
(All (_ !) (-> (Monad !) (file.System !) (List Name) (! (Try Profile))))
diff --git a/stdlib/source/program/aedifex/metadata/artifact.lux b/stdlib/source/program/aedifex/metadata/artifact.lux
index 90ce39aa7..7a2957ae0 100644
--- a/stdlib/source/program/aedifex/metadata/artifact.lux
+++ b/stdlib/source/program/aedifex/metadata/artifact.lux
@@ -5,7 +5,7 @@
[monad {"+" do}]
[equivalence {"+" Equivalence}]]
[control
- [pipe {"+" do>}]
+ ["[0]" pipe]
["[0]" try {"+" Try}]
["<>" parser
["<[0]>" xml {"+" Parser}]
@@ -182,10 +182,10 @@
(case project
{try.#Success binary_metadata}
(in (|> binary_metadata
- (do> try.monad
- [(# utf8.codec decoded)]
- [(# xml.codec decoded)]
- [list (<xml>.result ..parser)])))
+ (pipe.do try.monad
+ [(# utf8.codec decoded)]
+ [(# xml.codec decoded)]
+ [list (<xml>.result ..parser)])))
{try.#Failure error}
(in {try.#Success
diff --git a/stdlib/source/program/aedifex/metadata/snapshot.lux b/stdlib/source/program/aedifex/metadata/snapshot.lux
index 7aa41ff78..83ba59279 100644
--- a/stdlib/source/program/aedifex/metadata/snapshot.lux
+++ b/stdlib/source/program/aedifex/metadata/snapshot.lux
@@ -5,7 +5,7 @@
[monad {"+" do}]
[equivalence {"+" Equivalence}]]
[control
- [pipe {"+" do> case>}]
+ ["[0]" pipe]
["[0]" try {"+" Try}]
["[0]" exception {"+" exception:}]
["<>" parser
@@ -99,11 +99,12 @@
(revised ///artifact/versioning.#versions
(: (-> (List ///artifact/snapshot/version.Version)
(List ///artifact/snapshot/version.Version))
- (|>> (case> (^ (list))
- (list <default_version>)
+ (|>> (pipe.case
+ (^ (list))
+ (list <default_version>)
- versions
- versions)))))
+ versions
+ versions)))))
(<>.else [///artifact/versioning.#snapshot {///artifact/snapshot.#Local}
///artifact/versioning.#last_updated ///artifact/time.epoch
///artifact/versioning.#versions (list <default_version>)])))]
@@ -130,10 +131,10 @@
(case project
{try.#Success project}
(in (|> project
- (do> try.monad
- [(# utf8.codec decoded)]
- [(# xml.codec decoded)]
- [list (<xml>.result ..parser)])))
+ (pipe.do try.monad
+ [(# utf8.codec decoded)]
+ [(# xml.codec decoded)]
+ [list (<xml>.result ..parser)])))
{try.#Failure error}
(in {try.#Success
diff --git a/stdlib/source/program/aedifex/pom.lux b/stdlib/source/program/aedifex/pom.lux
index ccb7f11ac..323afbb80 100644
--- a/stdlib/source/program/aedifex/pom.lux
+++ b/stdlib/source/program/aedifex/pom.lux
@@ -4,7 +4,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try}]
["[0]" exception]
@@ -65,8 +65,9 @@
(def: distribution
(-> /.Distribution XML)
- (|>> (case> {/.#Repo} "repo"
- {/.#Manual} "manual")
+ (|>> (pipe.case
+ {/.#Repo} "repo"
+ {/.#Manual} "manual")
(..property "distribution")))
(def: (license [name url distribution])
diff --git a/stdlib/source/specification/compositor/analysis/type.lux b/stdlib/source/specification/compositor/analysis/type.lux
index c529d124c..c51f0cced 100644
--- a/stdlib/source/specification/compositor/analysis/type.lux
+++ b/stdlib/source/specification/compositor/analysis/type.lux
@@ -1,24 +1,24 @@
(.using
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" io]
- ["[0]" try]]
- [math
- ["r" random {"+" Random}]]
- [macro
- ["[0]" code]]
- [tool
- [compiler
- [analysis {"+" State+}]
- ["[0]" phase
- [macro {"+" Expander}]
- ["[0]" analysis
- ["[1]/[0]" scope]
- ["[1]/[0]" type]]]]]])
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" io]
+ ["[0]" try]]
+ [math
+ ["r" random {"+" Random}]]
+ [macro
+ ["[0]" code]]
+ [tool
+ [compiler
+ [analysis {"+" State+}]
+ ["[0]" phase
+ [macro {"+" Expander}]
+ ["[0]" analysis
+ ["[1]/[0]" scope]
+ ["[1]/[0]" type]]]]]])
(def: (check_success+ expander state extension params output_type)
(-> Expander State+ Text (List Code) Type Bit)
@@ -26,11 +26,12 @@
(analysis/type.with_type output_type
(analysis.phase expander (` ((~ (code.text extension)) (~+ params))))))
(phase.result state)
- (case> {try.#Success _}
- true
+ (pipe.case
+ {try.#Success _}
+ true
- {try.#Failure _}
- false)))
+ {try.#Failure _}
+ false)))
(def: check
(Random [Code Type Code])
diff --git a/stdlib/source/specification/compositor/generation/case.lux b/stdlib/source/specification/compositor/generation/case.lux
index 7d6c81a7b..46fd92eb2 100644
--- a/stdlib/source/specification/compositor/generation/case.lux
+++ b/stdlib/source/specification/compositor/generation/case.lux
@@ -1,32 +1,32 @@
(.using
- [lux {"-" case}
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" try {"+" Try}]]
- [data
- ["[0]" text ("[1]#[0]" equivalence)
- ["%" format {"+" format}]]
- [number
- ["n" nat]
- ["f" frac]]
- [collection
- ["[0]" list ("[1]#[0]" mix)]]]
- [math
- ["r" random {"+" Random}]]
- [tool
- [compiler
- ["[0]" reference]
- ["[0]" analysis]
- ["[0]" synthesis {"+" Path Synthesis}]
- ["[0]" phase
- ["[1]/[0]" synthesis
- ["[0]" case]]
- ["[0]" extension/synthesis]]]]]
- [///
- [common {"+" Runner}]])
+ [lux {"-" case}
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try {"+" Try}]]
+ [data
+ ["[0]" text ("[1]#[0]" equivalence)
+ ["%" format {"+" format}]]
+ [number
+ ["n" nat]
+ ["f" frac]]
+ [collection
+ ["[0]" list ("[1]#[0]" mix)]]]
+ [math
+ ["r" random {"+" Random}]]
+ [tool
+ [compiler
+ ["[0]" reference]
+ ["[0]" analysis]
+ ["[0]" synthesis {"+" Path Synthesis}]
+ ["[0]" phase
+ ["[1]/[0]" synthesis
+ ["[0]" case]]
+ ["[0]" extension/synthesis]]]]]
+ [///
+ [common {"+" Runner}]])
(def: limit Nat 10)
@@ -40,11 +40,12 @@
(def: .public (verify expected)
(-> Frac (Try Any) Bit)
- (|>> (case> {try.#Success actual}
- (f.= expected (:as Frac actual))
+ (|>> (pipe.case
+ {try.#Success actual}
+ (f.= expected (:as Frac actual))
- {try.#Failure _}
- false)))
+ {try.#Failure _}
+ false)))
(def: case
(Random [Synthesis Path])
@@ -249,29 +250,32 @@
(_.test "CODE"
(|> special_input
(run "special_input")
- (case> {try.#Success output}
- true
-
- {try.#Failure _}
- false)))
+ (pipe.case
+ {try.#Success output}
+ true
+
+ {try.#Failure _}
+ false)))
(_.test "PATTERN_MATCHING 0"
(|> (synthesis.branch/case [special_input
special_path])
(run "special_path")
- (case> {try.#Success output}
- true
-
- {try.#Failure _}
- false)))
+ (pipe.case
+ {try.#Success output}
+ true
+
+ {try.#Failure _}
+ false)))
(_.test "PATTERN_MATCHING 1"
(|> (synthesis.branch/case [special_input
special_pattern_path])
(run "special_pattern_path")
- (case> {try.#Success output}
- true
-
- {try.#Failure _}
- false)))
+ (pipe.case
+ {try.#Success output}
+ true
+
+ {try.#Failure _}
+ false)))
))
(def: .public (spec run)
diff --git a/stdlib/source/specification/compositor/generation/common.lux b/stdlib/source/specification/compositor/generation/common.lux
index 88f13e2ae..19041bbb7 100644
--- a/stdlib/source/specification/compositor/generation/common.lux
+++ b/stdlib/source/specification/compositor/generation/common.lux
@@ -1,32 +1,32 @@
(.using
- [lux {"-" i64}
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" try {"+" Try}]]
- [data
- ["[0]" bit ("[1]#[0]" equivalence)]
- [number
- ["[0]" i64]
- ["n" nat]
- ["i" int]
- ["f" frac]]
- ["[0]" text ("[1]#[0]" equivalence)
- ["%" format {"+" format}]]
- [collection
- ["[0]" list]]]
- [math
- ["r" random {"+" Random}]]
- [tool
- [compiler
- ["[0]" reference]
- ["[0]" synthesis]]]]
- ["[0]" // "_"
- ["[1][0]" case]
- [//
- [common {"+" Runner}]]])
+ [lux {"-" i64}
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try {"+" Try}]]
+ [data
+ ["[0]" bit ("[1]#[0]" equivalence)]
+ [number
+ ["[0]" i64]
+ ["n" nat]
+ ["i" int]
+ ["f" frac]]
+ ["[0]" text ("[1]#[0]" equivalence)
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" list]]]
+ [math
+ ["r" random {"+" Random}]]
+ [tool
+ [compiler
+ ["[0]" reference]
+ ["[0]" synthesis]]]]
+ ["[0]" // "_"
+ ["[1][0]" case]
+ [//
+ [common {"+" Runner}]]])
(def: safe
(-> Text Text)
@@ -42,11 +42,12 @@
(|> {synthesis.#Extension <extension> (list (synthesis.i64 param)
(synthesis.i64 subject))}
(run (..safe <extension>))
- (case> {try.#Success valueT}
- (n.= (<reference> param subject) (:as Nat valueT))
+ (pipe.case
+ {try.#Success valueT}
+ (n.= (<reference> param subject) (:as Nat valueT))
- {try.#Failure _}
- false)
+ {try.#Failure _}
+ false)
(let [param <param_expr>])))]
["lux i64 and" i64.and param]
@@ -62,13 +63,14 @@
(list (synthesis.i64 subject)
(synthesis.i64 param))}
(run (..safe "lux i64 arithmetic-right-shift"))
- (case> {try.#Success valueT}
- ("lux i64 ="
- (i64.arithmetic_right_shifted param subject)
- (:as I64 valueT))
-
- {try.#Failure _}
- false)
+ (pipe.case
+ {try.#Success valueT}
+ ("lux i64 ="
+ (i64.arithmetic_right_shifted param subject)
+ (:as I64 valueT))
+
+ {try.#Failure _}
+ false)
(let [param (n.% 64 param)])))
))))
@@ -82,11 +84,12 @@
[(_.test <extension>
(|> {synthesis.#Extension <extension> (list (synthesis.i64 subject))}
(run (..safe <extension>))
- (case> {try.#Success valueT}
- (<comp> (<prepare> subject) (:as <type> valueT))
+ (pipe.case
+ {try.#Success valueT}
+ (<comp> (<prepare> subject) (:as <type> valueT))
- {try.#Failure _}
- false)
+ {try.#Failure _}
+ false)
(let [subject <subject_expr>])))]
["lux i64 f64" Frac i.frac f.= subject]
@@ -100,11 +103,12 @@
(|> {synthesis.#Extension <extension> (list (synthesis.i64 param)
(synthesis.i64 subject))}
(run (..safe <extension>))
- (case> {try.#Success valueT}
- (<comp> (<reference> param subject) (:as <outputT> valueT))
+ (pipe.case
+ {try.#Success valueT}
+ (<comp> (<reference> param subject) (:as <outputT> valueT))
- {try.#Failure _}
- false)))]
+ {try.#Failure _}
+ false)))]
["lux i64 +" i.+ Int i.=]
["lux i64 -" i.- Int i.=]
@@ -144,12 +148,13 @@
(|> {synthesis.#Extension <extension> (list (synthesis.f64 param)
(synthesis.f64 subject))}
(run (..safe <extension>))
- (case> {try.#Success valueV}
- (bit#= (<text> param subject)
- (:as Bit valueV))
+ (pipe.case
+ {try.#Success valueV}
+ (bit#= (<text> param subject)
+ (:as Bit valueV))
- _
- false)))]
+ _
+ false)))]
["lux f64 =" f.=]
["lux f64 <" f.<]
@@ -193,65 +198,72 @@
(_.test "Can compare texts for equality."
(and (|> {synthesis.#Extension "lux text =" (list sample_lowerS sample_lowerS)}
(run (..safe "lux text ="))
- (case> {try.#Success valueV}
- (:as Bit valueV)
+ (pipe.case
+ {try.#Success valueV}
+ (:as Bit valueV)
- _
- false))
+ _
+ false))
(|> {synthesis.#Extension "lux text =" (list sample_upperS sample_lowerS)}
(run (..safe "lux text ="))
- (case> {try.#Success valueV}
- (not (:as Bit valueV))
+ (pipe.case
+ {try.#Success valueV}
+ (not (:as Bit valueV))
- _
- false))))
+ _
+ false))))
(_.test "Can compare texts for order."
(|> {synthesis.#Extension "lux text <" (list sample_lowerS sample_upperS)}
(run (..safe "lux text <"))
- (case> {try.#Success valueV}
- (:as Bit valueV)
+ (pipe.case
+ {try.#Success valueV}
+ (:as Bit valueV)
- {try.#Failure _}
- false)))
+ {try.#Failure _}
+ false)))
(_.test "Can get length of text."
(|> {synthesis.#Extension "lux text size" (list sample_lowerS)}
(run (..safe "lux text size"))
- (case> {try.#Success valueV}
- (n.= sample_size (:as Nat valueV))
+ (pipe.case
+ {try.#Success valueV}
+ (n.= sample_size (:as Nat valueV))
- _
- false)))
+ _
+ false)))
(_.test "Can concatenate text."
(|> {synthesis.#Extension "lux text size" (list concatenatedS)}
(run (..safe "lux text size"))
- (case> {try.#Success valueV}
- (n.= (n.* 2 sample_size) (:as Nat valueV))
+ (pipe.case
+ {try.#Success valueV}
+ (n.= (n.* 2 sample_size) (:as Nat valueV))
- _
- false)))
+ _
+ false)))
(_.test "Can find index of sub-text."
(and (|> {synthesis.#Extension "lux text index"
(list concatenatedS sample_lowerS
(synthesis.i64 +0))}
(run (..safe "lux text index"))
- (case> (^multi {try.#Success valueV}
- [(:as (Maybe Nat) valueV)
- {.#Some valueV}])
- (n.= 0 valueV)
+ (pipe.case
+ (^multi {try.#Success valueV}
+ [(:as (Maybe Nat) valueV)
+ {.#Some valueV}])
+ (n.= 0 valueV)
- _
- false))
+ _
+ false))
(|> {synthesis.#Extension "lux text index"
(list concatenatedS sample_upperS
(synthesis.i64 +0))}
(run (..safe "lux text index"))
- (case> (^multi {try.#Success valueV}
- [(:as (Maybe Nat) valueV)
- {.#Some valueV}])
- (n.= sample_size valueV)
+ (pipe.case
+ (^multi {try.#Success valueV}
+ [(:as (Maybe Nat) valueV)
+ {.#Some valueV}])
+ (n.= sample_size valueV)
- _
- false))))
+ _
+ false))))
(let [test_clip (: (-> (I64 Any) (I64 Any) Text Bit)
(function (_ offset length expected)
(|> {synthesis.#Extension "lux text clip"
@@ -259,13 +271,14 @@
(synthesis.i64 offset)
(synthesis.i64 length))}
(run (..safe "lux text clip"))
- (case> (^multi {try.#Success valueV}
- [(:as (Maybe Text) valueV)
- {.#Some valueV}])
- (text#= expected valueV)
-
- _
- false))))]
+ (pipe.case
+ (^multi {try.#Success valueV}
+ [(:as (Maybe Text) valueV)
+ {.#Some valueV}])
+ (text#= expected valueV)
+
+ _
+ false))))]
(_.test "Can clip text to extract sub-text."
(and (test_clip 0 sample_size sample_lower)
(test_clip sample_size sample_size sample_upper))))
@@ -274,14 +287,15 @@
(list sample_lowerS
(synthesis.i64 char_idx))}
(run (..safe "lux text char"))
- (case> (^multi {try.#Success valueV}
- [(:as (Maybe Int) valueV)
- {.#Some valueV}])
- (text.contains? ("lux i64 char" valueV)
- sample_lower)
-
- _
- false)))
+ (pipe.case
+ (^multi {try.#Success valueV}
+ [(:as (Maybe Int) valueV)
+ {.#Some valueV}])
+ (text.contains? ("lux i64 char" valueV)
+ sample_lower)
+
+ _
+ false)))
)))
(def: (io run)
@@ -293,11 +307,12 @@
(|> {synthesis.#Extension "lux io log"
(list (synthesis.text (format "LOG: " message)))}
(run (..safe "lux io log"))
- (case> {try.#Success valueV}
- true
+ (pipe.case
+ {try.#Success valueV}
+ true
- {try.#Failure _}
- false)))
+ {try.#Failure _}
+ false)))
(_.test "Can throw runtime errors."
(and (|> {synthesis.#Extension "lux try"
(list (synthesis.function/abstraction
@@ -306,36 +321,39 @@
synthesis.#body {synthesis.#Extension "lux io error"
(list (synthesis.text message))}]))}
(run (..safe "lux try"))
- (case> (^multi {try.#Success valueV}
- [(:as (Try Text) valueV)
- {try.#Failure error}])
- (text.contains? message error)
+ (pipe.case
+ (^multi {try.#Success valueV}
+ [(:as (Try Text) valueV)
+ {try.#Failure error}])
+ (text.contains? message error)
- _
- false))
+ _
+ false))
(|> {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}
- [(:as (Try Text) valueV)
- {try.#Success valueV}])
- (text#= message valueV)
+ (pipe.case
+ (^multi {try.#Success valueV}
+ [(:as (Try Text) valueV)
+ {try.#Success valueV}])
+ (text#= message valueV)
- _
- false))))
+ _
+ 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)}))
(run (..safe "lux io current-time"))
- (case> {try.#Success valueV}
- (let [[pre post] (:as [Nat Nat] valueV)]
- (n.>= pre post))
+ (pipe.case
+ {try.#Success valueV}
+ (let [[pre post] (:as [Nat Nat] valueV)]
+ (n.>= pre post))
- {try.#Failure _}
- false)))
+ {try.#Failure _}
+ false)))
)))
(def: .public (spec runner)
diff --git a/stdlib/source/specification/compositor/generation/function.lux b/stdlib/source/specification/compositor/generation/function.lux
index c03971eef..e6bdf79c0 100644
--- a/stdlib/source/specification/compositor/generation/function.lux
+++ b/stdlib/source/specification/compositor/generation/function.lux
@@ -5,7 +5,6 @@
[monad {"+" do}]
["[0]" enum]]
[control
- [pipe {"+" case>}]
["[0]" maybe]]
[data
[number
diff --git a/stdlib/source/specification/compositor/generation/primitive.lux b/stdlib/source/specification/compositor/generation/primitive.lux
index c7d486553..a193aa16f 100644
--- a/stdlib/source/specification/compositor/generation/primitive.lux
+++ b/stdlib/source/specification/compositor/generation/primitive.lux
@@ -1,24 +1,24 @@
(.using
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" try]]
- [data
- ["[0]" bit ("[1]#[0]" equivalence)]
- [number
- ["f" frac]]
- ["[0]" text ("[1]#[0]" equivalence)
- ["%" format {"+" format}]]]
- [math
- ["r" random]]
- [tool
- [compiler
- ["[0]" synthesis]]]]
- [///
- [common {"+" Runner}]])
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try]]
+ [data
+ ["[0]" bit ("[1]#[0]" equivalence)]
+ [number
+ ["f" frac]]
+ ["[0]" text ("[1]#[0]" equivalence)
+ ["%" format {"+" format}]]]
+ [math
+ ["r" random]]
+ [tool
+ [compiler
+ ["[0]" synthesis]]]]
+ [///
+ [common {"+" Runner}]])
(def: (f/=' reference subject)
(-> Frac Frac Bit)
@@ -34,11 +34,12 @@
[expected <gen>]
(_.test (%.symbol (symbol <synthesis>))
(|> (run <evaluation_name> (<synthesis> expected))
- (case> {try.#Success actual}
- (<test> expected (:expected actual))
+ (pipe.case
+ {try.#Success actual}
+ (<test> expected (:expected actual))
- {try.#Failure _}
- false))))]
+ {try.#Failure _}
+ false))))]
["bit" synthesis.bit r.bit bit#=]
["i64" synthesis.i64 r.i64 "lux i64 ="]
diff --git a/stdlib/source/specification/compositor/generation/reference.lux b/stdlib/source/specification/compositor/generation/reference.lux
index b3f270445..87c7b605b 100644
--- a/stdlib/source/specification/compositor/generation/reference.lux
+++ b/stdlib/source/specification/compositor/generation/reference.lux
@@ -1,23 +1,23 @@
(.using
- [lux {"-" symbol}
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" try]]
- [data
- [number
- ["n" nat]
- ["f" frac]]]
- [tool
- [compiler
- ["[0]" reference]
- ["[0]" synthesis]]]
- [math
- ["r" random {"+" Random}]]]
- [///
- [common {"+" Runner Definer}]])
+ [lux {"-" symbol}
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try]]
+ [data
+ [number
+ ["n" nat]
+ ["f" frac]]]
+ [tool
+ [compiler
+ ["[0]" reference]
+ ["[0]" synthesis]]]
+ [math
+ ["r" random {"+" Random}]]]
+ [///
+ [common {"+" Runner Definer}]])
(def: symbol
(Random Symbol)
@@ -31,11 +31,12 @@
expected r.safe_frac]
(_.test "Definitions."
(|> (define name (synthesis.f64 expected))
- (case> {try.#Success actual}
- (f.= expected (:as Frac actual))
+ (pipe.case
+ {try.#Success actual}
+ (f.= expected (:as Frac actual))
- {try.#Failure _}
- false)))))
+ {try.#Failure _}
+ false)))))
(def: (variable run)
(-> Runner Test)
@@ -47,11 +48,12 @@
register
(synthesis.variable/local register)])
(run "variable")
- (case> {try.#Success actual}
- (f.= expected (:as Frac actual))
+ (pipe.case
+ {try.#Success actual}
+ (f.= expected (:as Frac actual))
- {try.#Failure _}
- false)))))
+ {try.#Failure _}
+ false)))))
(def: .public (spec runner definer)
(-> Runner Definer Test)
diff --git a/stdlib/source/specification/compositor/generation/structure.lux b/stdlib/source/specification/compositor/generation/structure.lux
index bf852085d..5fe2a809f 100644
--- a/stdlib/source/specification/compositor/generation/structure.lux
+++ b/stdlib/source/specification/compositor/generation/structure.lux
@@ -1,30 +1,30 @@
(.using
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" maybe]
- ["[0]" try]]
- [data
- [number
- ["n" nat]
- ["i" int]]
- ["[0]" text ("[1]#[0]" equivalence)
- ["%" format {"+" format}]]
- [collection
- ["[0]" array {"+" Array}]
- ["[0]" list ("[1]#[0]" functor)]]]
- [math
- ["r" random]]
- ["[0]" ffi {"+" import:}]
- [tool
- [compiler
- ["[0]" analysis]
- ["[0]" synthesis]]]]
- [///
- [common {"+" Runner}]])
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" maybe]
+ ["[0]" try]]
+ [data
+ [number
+ ["n" nat]
+ ["i" int]]
+ ["[0]" text ("[1]#[0]" equivalence)
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" array {"+" Array}]
+ ["[0]" list ("[1]#[0]" functor)]]]
+ [math
+ ["r" random]]
+ ["[0]" ffi {"+" import:}]
+ [tool
+ [compiler
+ ["[0]" analysis]
+ ["[0]" synthesis]]]]
+ [///
+ [common {"+" Runner}]])
(import: java/lang/Integer)
@@ -42,26 +42,27 @@
analysis.#right? last?_in
analysis.#value (synthesis.i64 value_in)])
(run "variant")
- (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)))
- last?_out (array.read! 1 valueT)
- value_out (:as Any (maybe.trusted (array.read! 2 valueT)))
- same_tag? (|> tag_out ffi.int_to_long (:as Nat) (n.= tag_in))
- same_flag? (case last?_out
- {.#Some last?_out'}
- (and last?_in (text#= "" (:as Text last?_out')))
+ (pipe.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)))
+ last?_out (array.read! 1 valueT)
+ value_out (:as Any (maybe.trusted (array.read! 2 valueT)))
+ same_tag? (|> tag_out ffi.int_to_long (:as Nat) (n.= tag_in))
+ same_flag? (case last?_out
+ {.#Some last?_out'}
+ (and last?_in (text#= "" (:as Text last?_out')))
- {.#None}
- (not last?_in))
- same_value? (|> value_out (:as Int) (i.= value_in))]
- (and same_tag?
- same_flag?
- same_value?))))
+ {.#None}
+ (not last?_in))
+ same_value? (|> value_out (:as Int) (i.= value_in))]
+ (and same_tag?
+ same_flag?
+ same_value?))))
- {try.#Failure _}
- false)))))
+ {try.#Failure _}
+ false)))))
(def: (tuple run)
(-> Runner Test)
@@ -71,15 +72,16 @@
(_.test (%.symbol (symbol synthesis.tuple))
(|> (synthesis.tuple (list#each (|>> synthesis.i64) tuple_in))
(run "tuple")
- (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)))))
+ (pipe.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 _}
- false)))))
+ {try.#Failure _}
+ false)))))
(def: .public (spec runner)
(-> Runner Test)
diff --git a/stdlib/source/specification/lux/world/file.lux b/stdlib/source/specification/lux/world/file.lux
index c6a4f3faf..0e4a240d2 100644
--- a/stdlib/source/specification/lux/world/file.lux
+++ b/stdlib/source/specification/lux/world/file.lux
@@ -6,7 +6,6 @@
[monad {"+" do}]
["[0]" predicate]]
[control
- [pipe {"+" case>}]
[io {"+" IO}]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try ("[1]#[0]" functor)]
diff --git a/stdlib/source/test/aedifex/cli.lux b/stdlib/source/test/aedifex/cli.lux
index 85e8e7bc5..0dd70ae6d 100644
--- a/stdlib/source/test/aedifex/cli.lux
+++ b/stdlib/source/test/aedifex/cli.lux
@@ -1,26 +1,26 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]
- [\\specification
- ["$[0]" equivalence]]]
- [control
- [pipe {"+" case>}]
- ["[0]" try]
- [parser
- ["[0]" cli]]]
- [data
- ["[0]" text]
- [collection
- ["[0]" list]]]
- [math
- ["[0]" random {"+" Random} ("[1]#[0]" monad)]]]]
- [\\program
- ["[0]" /
- ["/[1]" // "_"
- ["[1]" profile]]]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]
+ [\\specification
+ ["$[0]" equivalence]]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try]
+ [parser
+ ["[0]" cli]]]
+ [data
+ ["[0]" text]
+ [collection
+ ["[0]" list]]]
+ [math
+ ["[0]" random {"+" Random} ("[1]#[0]" monad)]]]]
+ [\\program
+ ["[0]" /
+ ["/[1]" // "_"
+ ["[1]" profile]]]])
(def: compilation
(Random /.Compilation)
@@ -76,12 +76,13 @@
(|> expected
..format
(cli.result /.command)
- (case> {try.#Success [names actual]}
- (and (# (list.equivalence text.equivalence) = (list //.default) names)
- (# /.equivalence = expected actual))
-
- {try.#Failure error}
- false)))))
+ (pipe.case
+ {try.#Success [names actual]}
+ (and (# (list.equivalence text.equivalence) = (list //.default) names)
+ (# /.equivalence = expected actual))
+
+ {try.#Failure error}
+ false)))))
(def: with_profile
Test
@@ -93,12 +94,13 @@
..format
(list& "with" expected_profile)
(cli.result /.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}
- false)))))
+ (pipe.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}
+ false)))))
(def: .public test
Test
diff --git a/stdlib/source/test/aedifex/command/auto.lux b/stdlib/source/test/aedifex/command/auto.lux
index a9e9c56fb..bfdbb789e 100644
--- a/stdlib/source/test/aedifex/command/auto.lux
+++ b/stdlib/source/test/aedifex/command/auto.lux
@@ -5,7 +5,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try]
[parser
["[0]" environment]]
@@ -110,11 +110,12 @@
fs
(shell.async ($build.good_shell []))
resolution)
- (# ! each (|>> (case> {try.#Failure error}
- (same? end_signal error)
+ (# ! each (|>> (pipe.case
+ {try.#Failure error}
+ (same? end_signal error)
- {try.#Success _}
- false))))
+ {try.#Success _}
+ false))))
correct_number_of_runs! (|> @runs
atom.read!
async.future
diff --git a/stdlib/source/test/aedifex/command/build.lux b/stdlib/source/test/aedifex/command/build.lux
index 0b8eac768..f8d2d46ec 100644
--- a/stdlib/source/test/aedifex/command/build.lux
+++ b/stdlib/source/test/aedifex/command/build.lux
@@ -5,8 +5,8 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
[io {"+" IO}]
+ ["[0]" pipe]
["[0]" try]
["[0]" exception]
[concurrency
@@ -232,11 +232,12 @@
actual/1 (# console read_line [])
actual/2 (# console read_line [])
end! (|> (# console read_line [])
- (# ! each (|>> (case> {try.#Failure error}
- true
-
- {try.#Success _}
- false)
+ (# ! each (|>> (pipe.case
+ {try.#Failure error}
+ true
+
+ {try.#Success _}
+ false)
{try.#Success})))]
(in (and (text#= expected/0 actual/0)
(text#= expected/1 actual/1)
diff --git a/stdlib/source/test/aedifex/parser.lux b/stdlib/source/test/aedifex/parser.lux
index 1d3168d93..f529c2d0a 100644
--- a/stdlib/source/test/aedifex/parser.lux
+++ b/stdlib/source/test/aedifex/parser.lux
@@ -6,7 +6,7 @@
[monad {"+" do}]
[hash {"+" Hash}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try]
[parser
["<[0]>" code]]]
@@ -84,16 +84,17 @@
//format.project
list
(<code>.result /.project)
- (case> {try.#Success actual}
- (|> expected
- ..with_empty_profile
- dictionary.entries
- (list#each (function (_ [name profile])
- [name (|> profile
- ..with_default_sources
- ..with_default_repository)]))
- (dictionary.of_list text.hash)
- (# //project.equivalence = actual))
-
- {try.#Failure error}
- false))))))
+ (pipe.case
+ {try.#Success actual}
+ (|> expected
+ ..with_empty_profile
+ dictionary.entries
+ (list#each (function (_ [name profile])
+ [name (|> profile
+ ..with_default_sources
+ ..with_default_repository)]))
+ (dictionary.of_list text.hash)
+ (# //project.equivalence = actual))
+
+ {try.#Failure error}
+ false))))))
diff --git a/stdlib/source/test/aedifex/profile.lux b/stdlib/source/test/aedifex/profile.lux
index 1cfc7eb40..c7f63d254 100644
--- a/stdlib/source/test/aedifex/profile.lux
+++ b/stdlib/source/test/aedifex/profile.lux
@@ -9,7 +9,6 @@
["$[0]" equivalence]
["$[0]" monoid]]]
[control
- [pipe {"+" case>}]
["[0]" try]
[parser
["[0]" cli]]]
diff --git a/stdlib/source/test/lux/abstract/interval.lux b/stdlib/source/test/lux/abstract/interval.lux
index e4cf534e0..a9dfc2572 100644
--- a/stdlib/source/test/lux/abstract/interval.lux
+++ b/stdlib/source/test/lux/abstract/interval.lux
@@ -8,7 +8,7 @@
[\\specification
["$[0]" equivalence]]]
[control
- [pipe {"+" case>}]]
+ ["[0]" pipe]]
[data
[collection
["[0]" set]
@@ -141,11 +141,12 @@
[[l m r] (|> (random.set n.hash 3 random.nat)
(# ! each (|>> set.list
(list.sorted n.<)
- (case> (^ (list b t1 t2))
- [b t1 t2]
+ (pipe.case
+ (^ (list b t1 t2))
+ [b t1 t2]
- _
- (undefined)))))
+ _
+ (undefined)))))
.let [left (/.singleton n.enum l)
right (/.singleton n.enum r)]]
($_ _.and
@@ -163,11 +164,12 @@
[[b t1 t2] (|> (random.set n.hash 3 random.nat)
(# ! each (|>> set.list
(list.sorted n.<)
- (case> (^ (list b t1 t2))
- [b t1 t2]
+ (pipe.case
+ (^ (list b t1 t2))
+ [b t1 t2]
- _
- (undefined)))))
+ _
+ (undefined)))))
.let [int_left (/.between n.enum t1 t2)
int_right (/.between n.enum b t1)]]
($_ _.and
@@ -190,11 +192,12 @@
[x0 x1 x2 x3] (|> (random.set n.hash 4 random.nat)
(# ! each (|>> set.list
(list.sorted n.<)
- (case> (^ (list x0 x1 x2 x3))
- [x0 x1 x2 x3]
+ (pipe.case
+ (^ (list x0 x1 x2 x3))
+ [x0 x1 x2 x3]
- _
- (undefined)))))]
+ _
+ (undefined)))))]
($_ _.and
(_.test "Every interval is nested into itself."
(/.nested? some_interval some_interval))
@@ -223,11 +226,12 @@
[x0 x1 x2 x3] (|> (random.set n.hash 4 random.nat)
(# ! each (|>> set.list
(list.sorted n.<)
- (case> (^ (list x0 x1 x2 x3))
- [x0 x1 x2 x3]
+ (pipe.case
+ (^ (list x0 x1 x2 x3))
+ [x0 x1 x2 x3]
- _
- (undefined)))))]
+ _
+ (undefined)))))]
($_ _.and
(_.test "No interval overlaps with itself."
(not (/.overlaps? some_interval some_interval)))
diff --git a/stdlib/source/test/lux/control/concurrency/async.lux b/stdlib/source/test/lux/control/concurrency/async.lux
index 7f844f558..faff80b79 100644
--- a/stdlib/source/test/lux/control/concurrency/async.lux
+++ b/stdlib/source/test/lux/control/concurrency/async.lux
@@ -10,7 +10,6 @@
["$[0]" apply]
["$[0]" monad]]]
[control
- [pipe {"+" case>}]
["[0]" io]]
[time
["[0]" instant]
diff --git a/stdlib/source/test/lux/control/maybe.lux b/stdlib/source/test/lux/control/maybe.lux
index fe8528548..6fefaecfe 100644
--- a/stdlib/source/test/lux/control/maybe.lux
+++ b/stdlib/source/test/lux/control/maybe.lux
@@ -1,29 +1,29 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]
- [\\specification
- ["$[0]" equivalence]
- ["$[0]" hash]
- ["$[0]" monoid]
- ["$[0]" functor]
- ["$[0]" apply]
- ["$[0]" monad]]]
- [control
- ["[0]" io ("[1]#[0]" monad)]
- pipe]
- [data
- ["[0]" text]
- [collection
- ["[0]" list]]]
- [math
- ["[0]" random {"+" Random}]
- [number
- ["n" nat]]]]]
- [\\library
- ["[0]" / ("[1]#[0]" monoid monad)]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]
+ [\\specification
+ ["$[0]" equivalence]
+ ["$[0]" hash]
+ ["$[0]" monoid]
+ ["$[0]" functor]
+ ["$[0]" apply]
+ ["$[0]" monad]]]
+ [control
+ ["[0]" io ("[1]#[0]" monad)]
+ ["[0]" pipe]]
+ [data
+ ["[0]" text]
+ [collection
+ ["[0]" list]]]
+ [math
+ ["[0]" random {"+" Random}]
+ [number
+ ["n" nat]]]]]
+ [\\library
+ ["[0]" / ("[1]#[0]" monoid monad)]])
(def: .public test
Test
@@ -55,11 +55,12 @@
[a (lifted (io#in left))
b (in right)]
(in (n.+ a b))))
- (case> {.#Some actual}
- (n.= expected actual)
+ (pipe.case
+ {.#Some actual}
+ (n.= expected actual)
- _
- false)))))
+ _
+ false)))))
(do random.monad
[default random.nat
value random.nat]
diff --git a/stdlib/source/test/lux/control/parser/analysis.lux b/stdlib/source/test/lux/control/parser/analysis.lux
index a3f401643..074115336 100644
--- a/stdlib/source/test/lux/control/parser/analysis.lux
+++ b/stdlib/source/test/lux/control/parser/analysis.lux
@@ -1,37 +1,37 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" try]
- ["[0]" exception]
- ["<>" parser]]
- [data
- ["[0]" bit ("[1]#[0]" equivalence)]
- ["[0]" text ("[1]#[0]" equivalence)]
- [collection
- ["[0]" list]]]
- [math
- ["[0]" random {"+" Random}]
- [number
- ["n" nat]
- ["i" int]
- ["f" frac]
- ["r" rev]]]
- [meta
- ["[0]" symbol ("[1]#[0]" equivalence)]]
- [tool
- [compiler
- [reference {"+" Constant}
- [variable {"+"}]]
- [language
- [lux
- ["[0]" analysis]]]]]]]
- [\\library
- ["[0]" /]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try]
+ ["[0]" exception]
+ ["<>" parser]]
+ [data
+ ["[0]" bit ("[1]#[0]" equivalence)]
+ ["[0]" text ("[1]#[0]" equivalence)]
+ [collection
+ ["[0]" list]]]
+ [math
+ ["[0]" random {"+" Random}]
+ [number
+ ["n" nat]
+ ["i" int]
+ ["f" frac]
+ ["r" rev]]]
+ [meta
+ ["[0]" symbol ("[1]#[0]" equivalence)]]
+ [tool
+ [compiler
+ [reference {"+" Constant}
+ [variable {"+"}]]
+ [language
+ [lux
+ ["[0]" analysis]]]]]]]
+ [\\library
+ ["[0]" /]])
(template: (!expect <expectation> <computation>)
[(case <computation>
@@ -58,22 +58,24 @@
(_.cover [/.result /.any]
(|> (list expected)
(/.result /.any)
- (case> {try.#Success actual}
- (# analysis.equivalence = expected actual)
+ (pipe.case
+ {try.#Success actual}
+ (# analysis.equivalence = expected actual)
- {try.#Failure _}
- false))))
+ {try.#Failure _}
+ false))))
(~~ (template [<query> <check> <random> <analysis> <=>]
[(do [! random.monad]
[expected <random>]
(_.cover [<query>]
(|> (list (<analysis> expected))
(/.result <query>)
- (case> {try.#Success actual}
- (<=> expected actual)
+ (pipe.case
+ {try.#Success actual}
+ (<=> expected actual)
- {try.#Failure _}
- false))))
+ {try.#Failure _}
+ false))))
(do [! random.monad]
[expected <random>]
(_.cover [<check>]
@@ -96,11 +98,12 @@
(_.cover [/.tuple]
(|> (list (analysis.tuple (list (analysis.bit expected))))
(/.result (/.tuple /.bit))
- (case> {try.#Success actual}
- (bit#= expected actual)
+ (pipe.case
+ {try.#Success actual}
+ (bit#= expected actual)
- {try.#Failure _}
- false))))
+ {try.#Failure _}
+ false))))
(do [! random.monad]
[dummy random.bit]
(_.cover [/.end?]
@@ -124,26 +127,29 @@
(_.cover [/.cannot_parse]
(and (|> (list (analysis.bit expected))
(/.result /.nat)
- (case> {try.#Success _}
- false
+ (pipe.case
+ {try.#Success _}
+ false
- {try.#Failure error}
- (exception.match? /.cannot_parse error)))
+ {try.#Failure error}
+ (exception.match? /.cannot_parse error)))
(|> (list)
(/.result /.bit)
- (case> {try.#Success _}
- false
+ (pipe.case
+ {try.#Success _}
+ false
- {try.#Failure error}
- (exception.match? /.cannot_parse 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 _}
- false
+ (pipe.case
+ {try.#Success _}
+ false
- {try.#Failure error}
- (exception.match? /.unconsumed_input 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 482f3603a..11cca9980 100644
--- a/stdlib/source/test/lux/control/parser/binary.lux
+++ b/stdlib/source/test/lux/control/parser/binary.lux
@@ -1,46 +1,46 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- ["[0]" type]
- [abstract
- [equivalence {"+" Equivalence}]
- [predicate {"+" Predicate}]
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" maybe]
- ["[0]" try]
- ["[0]" exception]
- ["<>" parser]]
- [data
- ["[0]" binary]
- ["[0]" sum]
- ["[0]" bit]
- ["[0]" text ("[1]#[0]" equivalence)
- ["%" format {"+" format}]
- [encoding
- ["[0]" utf8]]]
- ["[0]" format "_"
- ["[1]" binary]]
- [collection
- ["[0]" list]
- ["[0]" sequence]
- ["[0]" set]]]
- [macro
- ["[0]" code]]
- [math
- ["[0]" random {"+" Random}]
- [number
- ["n" nat]
- ["[0]" i64]
- ["[0]" int]
- ["[0]" rev]
- ["[0]" frac]]]
- [meta
- ["[0]" symbol]]]]
- [\\library
- ["[0]" /]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ ["[0]" type]
+ [abstract
+ [equivalence {"+" Equivalence}]
+ [predicate {"+" Predicate}]
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" maybe]
+ ["[0]" try]
+ ["[0]" exception]
+ ["<>" parser]]
+ [data
+ ["[0]" binary]
+ ["[0]" sum]
+ ["[0]" bit]
+ ["[0]" text ("[1]#[0]" equivalence)
+ ["%" format {"+" format}]
+ [encoding
+ ["[0]" utf8]]]
+ ["[0]" format "_"
+ ["[1]" binary]]
+ [collection
+ ["[0]" list]
+ ["[0]" sequence]
+ ["[0]" set]]]
+ [macro
+ ["[0]" code]]
+ [math
+ ["[0]" random {"+" Random}]
+ [number
+ ["n" nat]
+ ["[0]" i64]
+ ["[0]" int]
+ ["[0]" rev]
+ ["[0]" frac]]]
+ [meta
+ ["[0]" symbol]]]]
+ [\\library
+ ["[0]" /]])
(template: (!expect <expectation> <computation>)
[(case <computation>
@@ -57,11 +57,12 @@
(|> value
(# utf8.codec encoded)
(# utf8.codec decoded)
- (case> {try.#Success converted}
- (text#= value converted)
-
- {try.#Failure error}
- false)))
+ (pipe.case
+ {try.#Success converted}
+ (text#= value converted)
+
+ {try.#Failure error}
+ false)))
(def: random_text
(Random Text)
diff --git a/stdlib/source/test/lux/control/parser/json.lux b/stdlib/source/test/lux/control/parser/json.lux
index 23ee86ccc..0ac380274 100644
--- a/stdlib/source/test/lux/control/parser/json.lux
+++ b/stdlib/source/test/lux/control/parser/json.lux
@@ -1,32 +1,32 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" maybe]
- ["[0]" try]
- ["[0]" exception]
- ["<>" parser]]
- [data
- ["[0]" bit]
- ["[0]" text]
- [collection
- ["[0]" list ("[1]#[0]" functor)]
- ["[0]" set]
- ["[0]" dictionary]
- ["[0]" sequence {"+" sequence} ("[1]#[0]" functor)]]
- [format
- ["[0]" json]]]
- [math
- ["[0]" random {"+" Random}]
- [number
- ["n" nat]
- ["[0]" frac]]]]]
- [\\library
- ["[0]" /]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" maybe]
+ ["[0]" try]
+ ["[0]" exception]
+ ["<>" parser]]
+ [data
+ ["[0]" bit]
+ ["[0]" text]
+ [collection
+ ["[0]" list ("[1]#[0]" functor)]
+ ["[0]" set]
+ ["[0]" dictionary]
+ ["[0]" sequence {"+" sequence} ("[1]#[0]" functor)]]
+ [format
+ ["[0]" json]]]
+ [math
+ ["[0]" random {"+" Random}]
+ [number
+ ["n" nat]
+ ["[0]" frac]]]]]
+ [\\library
+ ["[0]" /]])
(template: (!expect <pattern> <value>)
[(case <value>
@@ -127,11 +127,12 @@
expected_string (random.unicode 1)
[boolean_field number_field string_field] (|> (random.set text.hash 3 (random.unicode 3))
(# ! each (|>> set.list
- (case> (^ (list boolean_field number_field string_field))
- [boolean_field number_field string_field]
+ (pipe.case
+ (^ (list boolean_field number_field string_field))
+ [boolean_field number_field string_field]
- _
- (undefined)))))]
+ _
+ (undefined)))))]
(_.cover [/.object /.field]
(|> (/.result (/.object ($_ <>.and
(/.field boolean_field /.boolean)
diff --git a/stdlib/source/test/lux/control/parser/synthesis.lux b/stdlib/source/test/lux/control/parser/synthesis.lux
index 0a2f2fbeb..62a78cd0e 100644
--- a/stdlib/source/test/lux/control/parser/synthesis.lux
+++ b/stdlib/source/test/lux/control/parser/synthesis.lux
@@ -5,7 +5,6 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
["<>" parser]
["[0]" try]
["[0]" exception]]
diff --git a/stdlib/source/test/lux/control/parser/type.lux b/stdlib/source/test/lux/control/parser/type.lux
index 6476f9e30..5258921b2 100644
--- a/stdlib/source/test/lux/control/parser/type.lux
+++ b/stdlib/source/test/lux/control/parser/type.lux
@@ -6,7 +6,6 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
["[0]" try]
["[0]" exception]]
[data
diff --git a/stdlib/source/test/lux/control/pipe.lux b/stdlib/source/test/lux/control/pipe.lux
index 0e8acc13f..32153db22 100644
--- a/stdlib/source/test/lux/control/pipe.lux
+++ b/stdlib/source/test/lux/control/pipe.lux
@@ -1,20 +1,20 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- ["[0]" debug]
- [abstract
- [monad {"+" do}]]
- [data
- ["[0]" identity]
- ["[0]" text ("[1]#[0]" equivalence)
- ["%" format {"+" format}]]]
- [math
- ["[0]" random]
- [number
- ["n" nat]]]]]
- [\\library
- ["[0]" /]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ ["[0]" debug]
+ [abstract
+ [monad {"+" do}]]
+ [data
+ ["[0]" identity]
+ ["[0]" text ("[1]#[0]" equivalence)
+ ["%" format {"+" format}]]]
+ [math
+ ["[0]" random]
+ [number
+ ["n" nat]]]]]
+ [\\library
+ ["[0]" /]])
(def: .public test
Test
@@ -24,65 +24,65 @@
($_ _.and
(do !
[another random.nat]
- (_.cover [/.new>]
+ (_.cover [/.new]
(n.= (++ another)
(|> sample
(n.* 3)
(n.+ 4)
- (/.new> another [++])))))
- (_.cover [/.let>]
+ (/.new another [++])))))
+ (_.cover [/.let]
(n.= (n.+ sample sample)
(|> sample
- (/.let> x [(n.+ x x)]))))
- (_.cover [/.cond>]
+ (/.let x [(n.+ x x)]))))
+ (_.cover [/.cond]
(text#= (cond (n.= 0 sample) "zero"
(n.even? sample) "even"
"odd")
(|> sample
- (/.cond> [(n.= 0)] [(/.new> "zero" [])]
- [n.even?] [(/.new> "even" [])]
- [(/.new> "odd" [])]))))
- (_.cover [/.if>]
+ (/.cond [(n.= 0)] [(/.new "zero" [])]
+ [n.even?] [(/.new "even" [])]
+ [(/.new "odd" [])]))))
+ (_.cover [/.if]
(text#= (if (n.even? sample)
"even"
"odd")
(|> sample
- (/.if> [n.even?]
- [(/.new> "even" [])]
- [(/.new> "odd" [])]))))
- (_.cover [/.when>]
+ (/.if [n.even?]
+ [(/.new "even" [])]
+ [(/.new "odd" [])]))))
+ (_.cover [/.when]
(n.= (if (n.even? sample)
(n.* 2 sample)
sample)
(|> sample
- (/.when> [n.even?]
- [(n.* 2)]))))
- (_.cover [/.loop>]
+ (/.when [n.even?]
+ [(n.* 2)]))))
+ (_.cover [/.loop]
(n.= (n.* 10 sample)
(|> sample
- (/.loop> [(n.= (n.* 10 sample)) not]
- [(n.+ sample)]))))
- (_.cover [/.do>]
+ (/.loop [(n.= (n.* 10 sample)) not]
+ [(n.+ sample)]))))
+ (_.cover [/.do]
(n.= (++ (n.+ 4 (n.* 3 sample)))
(|> sample
- (/.do> identity.monad
- [(n.* 3)]
- [(n.+ 4)]
- [++]))))
- (_.cover [/.exec>]
+ (/.do identity.monad
+ [(n.* 3)]
+ [(n.+ 4)]
+ [++]))))
+ (_.cover [/.exec]
(n.= (n.* 10 sample)
(|> sample
- (/.exec> [%.nat (format "sample = ") debug.log!])
+ (/.exec [%.nat (format "sample = ") debug.log!])
(n.* 10))))
- (_.cover [/.tuple>]
+ (_.cover [/.tuple]
(let [[left middle right] (|> sample
- (/.tuple> [++]
- [--]
- [%.nat]))]
+ (/.tuple [++]
+ [--]
+ [%.nat]))]
(and (n.= (++ sample) left)
(n.= (-- sample) middle)
(text#= (%.nat sample) right))))
- (_.cover [/.case>]
+ (_.cover [/.case]
(text#= (case (n.% 10 sample)
0 "zero"
1 "one"
@@ -97,15 +97,16 @@
_ "???")
(|> sample
(n.% 10)
- (/.case> 0 "zero"
- 1 "one"
- 2 "two"
- 3 "three"
- 4 "four"
- 5 "five"
- 6 "six"
- 7 "seven"
- 8 "eight"
- 9 "nine"
- _ "???"))))
+ (/.case
+ 0 "zero"
+ 1 "one"
+ 2 "two"
+ 3 "three"
+ 4 "four"
+ 5 "five"
+ 6 "six"
+ 7 "seven"
+ 8 "eight"
+ 9 "nine"
+ _ "???"))))
))))
diff --git a/stdlib/source/test/lux/control/state.lux b/stdlib/source/test/lux/control/state.lux
index 40498c0d8..39e10983a 100644
--- a/stdlib/source/test/lux/control/state.lux
+++ b/stdlib/source/test/lux/control/state.lux
@@ -1,24 +1,24 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]
- [\\specification
- ["$[0]" functor {"+" Injection Comparison}]
- ["$[0]" apply]
- ["$[0]" monad]]]
- [control
- [pipe {"+" let>}]
- ["[0]" io]]
- [data
- ["[0]" product]]
- [math
- ["[0]" random]
- [number
- ["n" nat]]]]]
- [\\library
- ["[0]" / {"+" State}]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]
+ [\\specification
+ ["$[0]" functor {"+" Injection Comparison}]
+ ["$[0]" apply]
+ ["$[0]" monad]]]
+ [control
+ ["[0]" pipe]
+ ["[0]" io]]
+ [data
+ ["[0]" product]]
+ [math
+ ["[0]" random]
+ [number
+ ["n" nat]]]]]
+ [\\library
+ ["[0]" / {"+" State}]])
(def: (with_conditions [state output] computation)
(-> [Nat Nat] (State Nat Nat) Bit)
@@ -89,15 +89,15 @@
(_.cover [/.while /.result]
(|> (/.while condition (/.update ++))
(/.result 0)
- (let> [state' output']
- (n.= limit state'))))
+ (pipe.let [state' output']
+ (n.= limit state'))))
(_.cover [/.do_while]
(|> (/.do_while condition (/.update ++))
(/.result 0)
- (let> [state' output']
- (or (n.= limit state')
- (and (n.= 0 limit)
- (n.= 1 state'))))))
+ (pipe.let [state' output']
+ (or (n.= limit state')
+ (and (n.= 0 limit)
+ (n.= 1 state'))))))
)))
(def: monad_transformer
@@ -115,9 +115,9 @@
(in (n.+ a b))))
(/.result' state)
io.run!
- (let> [state' output']
- (and (n.= state state')
- (n.= (n.+ left right) output')))))
+ (pipe.let [state' output']
+ (and (n.= state state')
+ (n.= (n.+ left right) output')))))
)))
(def: .public test
diff --git a/stdlib/source/test/lux/control/try.lux b/stdlib/source/test/lux/control/try.lux
index b07aa194d..b3efe3dd2 100644
--- a/stdlib/source/test/lux/control/try.lux
+++ b/stdlib/source/test/lux/control/try.lux
@@ -1,25 +1,25 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]
- [\\specification
- ["$[0]" functor {"+" Injection Comparison}]
- ["$[0]" apply]
- ["$[0]" monad]
- ["$[0]" equivalence]]]
- [control
- pipe
- ["[0]" io]]
- [data
- ["[0]" text ("[1]#[0]" equivalence)]]
- [math
- ["[0]" random {"+" Random}]
- [number
- ["n" nat]]]]]
- [\\library
- ["[0]" / {"+" Try}]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]
+ [\\specification
+ ["$[0]" functor {"+" Injection Comparison}]
+ ["$[0]" apply]
+ ["$[0]" monad]
+ ["$[0]" equivalence]]]
+ [control
+ ["[0]" pipe]
+ ["[0]" io]]
+ [data
+ ["[0]" text ("[1]#[0]" equivalence)]]
+ [math
+ ["[0]" random {"+" Random}]
+ [number
+ ["n" nat]]]]]
+ [\\library
+ ["[0]" / {"+" Try}]])
(def: injection
(Injection Try)
@@ -86,10 +86,11 @@
b (in alternative)]
(in (n.+ a b)))
io.run!
- (case> {/.#Success result}
- (n.= (n.+ expected alternative)
- result)
+ (pipe.case
+ {/.#Success result}
+ (n.= (n.+ expected alternative)
+ result)
- _
- false))))
+ _
+ false))))
)))
diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux
index 458b447e4..e4d2bb2aa 100644
--- a/stdlib/source/test/lux/data/collection/list.lux
+++ b/stdlib/source/test/lux/data/collection/list.lux
@@ -14,7 +14,7 @@
["$[0]" apply]
["$[0]" monad]]]
[control
- pipe
+ ["[0]" pipe]
["[0]" io]
["[0]" maybe]
["[0]" function]]
@@ -76,11 +76,12 @@
[a (lifted (io#in parameter))
b (in subject)]
(in (n.+ a b))))
- (case> (^ (list actual))
- (n.= expected actual)
-
- _
- false)))))
+ (pipe.case
+ (^ (list actual))
+ (n.= expected actual)
+
+ _
+ false)))))
))
(def: whole
diff --git a/stdlib/source/test/lux/data/collection/tree/zipper.lux b/stdlib/source/test/lux/data/collection/tree/zipper.lux
index 55d01f81e..111597da6 100644
--- a/stdlib/source/test/lux/data/collection/tree/zipper.lux
+++ b/stdlib/source/test/lux/data/collection/tree/zipper.lux
@@ -1,29 +1,29 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]
- [\\specification
- ["$[0]" equivalence]
- ["$[0]" functor]
- ["$[0]" comonad]]]
- [control
- pipe
- ["[0]" maybe ("[1]#[0]" functor)]]
- [data
- ["[0]" product]
- ["[0]" text]
- [collection
- ["[0]" list]]]
- [math
- ["[0]" random]
- [number
- ["n" nat]]]]]
- ["[0]" //]
- [\\library
- ["[0]" / {"+" Zipper}
- ["tree" //]]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]
+ [\\specification
+ ["$[0]" equivalence]
+ ["$[0]" functor]
+ ["$[0]" comonad]]]
+ [control
+ ["[0]" pipe]
+ ["[0]" maybe ("[1]#[0]" functor)]]
+ [data
+ ["[0]" product]
+ ["[0]" text]
+ [collection
+ ["[0]" list]]]
+ [math
+ ["[0]" random]
+ [number
+ ["n" nat]]]]]
+ ["[0]" //]
+ [\\library
+ ["[0]" / {"+" Zipper}
+ ["tree" //]]])
(def: move
Test
@@ -34,25 +34,25 @@
(_.cover [/.down]
(|> (tree.branch dummy (list (tree.leaf expected)))
/.zipper
- (do> maybe.monad
- [/.down]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.up]
(|> (tree.branch expected (list (tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.down]
- [/.up]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.up]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.right]
(|> (tree.branch dummy (list (tree.leaf dummy) (tree.leaf expected)))
/.zipper
- (do> maybe.monad
- [/.down]
- [/.right]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.right]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.rightmost]
(|> (tree.branch dummy
@@ -61,19 +61,19 @@
(tree.leaf dummy)
(tree.leaf expected)))
/.zipper
- (do> maybe.monad
- [/.down]
- [/.rightmost]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.rightmost]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.left]
(|> (tree.branch dummy (list (tree.leaf expected) (tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.down]
- [/.right]
- [/.left]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.right]
+ [/.left]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.leftmost]
(|> (tree.branch dummy
@@ -82,29 +82,29 @@
(tree.leaf dummy)
(tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.down]
- [/.rightmost]
- [/.leftmost]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.rightmost]
+ [/.leftmost]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.next]
(and (|> (tree.branch dummy
(list (tree.leaf expected)
(tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.next]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.next]
+ [/.value (n.= expected) in])
(maybe.else false))
(|> (tree.branch dummy
(list (tree.leaf dummy)
(tree.leaf expected)))
/.zipper
- (do> maybe.monad
- [/.next]
- [/.next]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.next]
+ [/.next]
+ [/.value (n.= expected) in])
(maybe.else false))))
(_.cover [/.end]
(|> (tree.branch dummy
@@ -113,9 +113,9 @@
(tree.leaf dummy)
(tree.leaf expected)))
/.zipper
- (do> maybe.monad
- [/.end]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.end]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.start]
(|> (tree.branch expected
@@ -124,30 +124,30 @@
(tree.leaf dummy)
(tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.end]
- [/.start]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.end]
+ [/.start]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.previous]
(and (|> (tree.branch expected
(list (tree.leaf dummy)
(tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.next]
- [/.previous]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.next]
+ [/.previous]
+ [/.value (n.= expected) in])
(maybe.else false))
(|> (tree.branch dummy
(list (tree.leaf expected)
(tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.next]
- [/.next]
- [/.previous]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.next]
+ [/.next]
+ [/.previous]
+ [/.value (n.= expected) in])
(maybe.else false))))
)))
@@ -205,15 +205,15 @@
(/.interpose expected))]
(and (n.= dummy (/.value cursor))
(|> cursor
- (do> maybe.monad
- [/.down]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.value (n.= expected) in])
(maybe.else false))
(|> cursor
- (do> maybe.monad
- [/.down]
- [/.down]
- [/.value (n.= dummy) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.down]
+ [/.value (n.= dummy) in])
(maybe.else false)))))
(_.cover [/.adopt]
(let [cursor (|> (tree.branch dummy (list (tree.leaf dummy)))
@@ -221,41 +221,41 @@
(/.adopt expected))]
(and (n.= dummy (/.value cursor))
(|> cursor
- (do> maybe.monad
- [/.down]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.value (n.= expected) in])
(maybe.else false))
(|> cursor
- (do> maybe.monad
- [/.down]
- [/.right]
- [/.value (n.= dummy) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [/.right]
+ [/.value (n.= dummy) in])
(maybe.else false)))))
(_.cover [/.insert_left]
(|> (tree.branch dummy (list (tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.down]
- [(/.insert_left expected)]
- [/.left]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [(/.insert_left expected)]
+ [/.left]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.insert_right]
(|> (tree.branch dummy (list (tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.down]
- [(/.insert_right expected)]
- [/.right]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [(/.insert_right expected)]
+ [/.right]
+ [/.value (n.= expected) in])
(maybe.else false)))
(_.cover [/.remove]
(|> (tree.branch dummy (list (tree.leaf dummy)))
/.zipper
- (do> maybe.monad
- [/.down]
- [(/.insert_left expected)]
- [/.remove]
- [/.value (n.= expected) in])
+ (pipe.do maybe.monad
+ [/.down]
+ [(/.insert_left expected)]
+ [/.remove]
+ [/.value (n.= expected) in])
(maybe.else false)))
))))
diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux
index 0ee929ca7..439fe1f5c 100644
--- a/stdlib/source/test/lux/data/format/xml.lux
+++ b/stdlib/source/test/lux/data/format/xml.lux
@@ -8,7 +8,6 @@
["$[0]" equivalence]
["$[0]" codec]]]
[control
- pipe
["[0]" maybe]
["[0]" try]
["p" parser
diff --git a/stdlib/source/test/lux/data/sum.lux b/stdlib/source/test/lux/data/sum.lux
index 2aa3c5058..6dc6eeb9e 100644
--- a/stdlib/source/test/lux/data/sum.lux
+++ b/stdlib/source/test/lux/data/sum.lux
@@ -8,7 +8,7 @@
["$[0]" equivalence]
["$[0]" hash]]]
[control
- pipe]
+ ["[0]" pipe]]
[data
["[0]" text]
[collection
@@ -39,13 +39,15 @@
(_.cover [/.left]
(|> (/.left expected)
(: (Or Nat Nat))
- (case> {0 #0 actual} (n.= expected actual)
- _ false)))
+ (pipe.case
+ {0 #0 actual} (n.= expected actual)
+ _ false)))
(_.cover [/.right]
(|> (/.right expected)
(: (Or Nat Nat))
- (case> {0 #1 actual} (n.= expected actual)
- _ false)))
+ (pipe.case
+ {0 #1 actual} (n.= expected actual)
+ _ false)))
(_.cover [/.either]
(and (|> (/.left expected)
(: (Or Nat Nat))
@@ -59,11 +61,11 @@
(and (|> (/.left expected)
(: (Or Nat Nat))
(/.then (n.+ shift) (n.- shift))
- (case> {0 #0 actual} (n.= (n.+ shift expected) actual) _ false))
+ (pipe.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))))
+ (pipe.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 faa8e0f86..ed6cc5d9d 100644
--- a/stdlib/source/test/lux/data/text.lux
+++ b/stdlib/source/test/lux/data/text.lux
@@ -1,35 +1,35 @@
(.using
- [library
- [lux {"-" char}
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]
- [\\specification
- ["$[0]" equivalence]
- ["$[0]" hash]
- ["$[0]" order]
- ["$[0]" monoid]]]
- [control
- pipe
- ["[0]" maybe]]
- [data
- [collection
- ["[0]" list]
- ["[0]" set]]]
- [math
- ["[0]" random]
- [number
- ["n" nat]]]]]
- ["[0]" / "_"
- ["[1][0]" buffer]
- ["[1][0]" encoding]
- ["[1][0]" format]
- ["[1][0]" regex]
- ["[1][0]" escape]
- ["[1][0]" unicode "_"
- ["[1]" set]]]
- [\\library
- ["[0]" /]])
+ [library
+ [lux {"-" char}
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]
+ [\\specification
+ ["$[0]" equivalence]
+ ["$[0]" hash]
+ ["$[0]" order]
+ ["$[0]" monoid]]]
+ [control
+ ["[0]" pipe]
+ ["[0]" maybe]]
+ [data
+ [collection
+ ["[0]" list]
+ ["[0]" set]]]
+ [math
+ ["[0]" random]
+ [number
+ ["n" nat]]]]]
+ ["[0]" / "_"
+ ["[1][0]" buffer]
+ ["[1][0]" encoding]
+ ["[1][0]" format]
+ ["[1][0]" regex]
+ ["[1][0]" escape]
+ ["[1][0]" unicode "_"
+ ["[1]" set]]]
+ [\\library
+ ["[0]" /]])
(def: bounded_size
(random.Random Nat)
@@ -289,26 +289,28 @@
($_ _.and
(_.cover [/.split_at]
(|> (/.split_at sizeL sample)
- (case> {.#Right [_l _r]}
- (and (/#= sampleL _l)
- (/#= sampleR _r)
- (/#= sample (/.together (list _l _r))))
+ (pipe.case
+ {.#Right [_l _r]}
+ (and (/#= sampleL _l)
+ (/#= sampleR _r)
+ (/#= sample (/.together (list _l _r))))
- _
- #0)))
+ _
+ #0)))
(_.cover [/.clip /.clip_since]
(|> [(/.clip 0 sizeL sample)
(/.clip sizeL (n.- sizeL (/.size sample)) sample)
(/.clip_since sizeL sample)
(/.clip_since 0 sample)]
- (case> [{.#Right _l} {.#Right _r} {.#Right _r'} {.#Right _f}]
- (and (/#= sampleL _l)
- (/#= sampleR _r)
- (/#= _r _r')
- (/#= sample _f))
+ (pipe.case
+ [{.#Right _l} {.#Right _r} {.#Right _r'} {.#Right _f}]
+ (and (/#= sampleL _l)
+ (/#= sampleR _r)
+ (/#= _r _r')
+ (/#= sample _f))
- _
- #0)))
+ _
+ #0)))
))
(do [! random.monad]
[sizeP bounded_size
diff --git a/stdlib/source/test/lux/data/text/regex.lux b/stdlib/source/test/lux/data/text/regex.lux
index d5596ae56..0ab71cbaa 100644
--- a/stdlib/source/test/lux/data/text/regex.lux
+++ b/stdlib/source/test/lux/data/text/regex.lux
@@ -1,56 +1,59 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- pipe
- ["[0]" try]
- [parser
- ["<[0]>" text {"+" Parser}]
- ["<[0]>" code]]]
- [data
- ["[0]" text ("[1]#[0]" equivalence)
- ["%" format {"+" format}]]]
- ["[0]" macro
- [syntax {"+" syntax:}]
- ["[0]" code]]
- [math
- [number {"+" hex}]
- ["[0]" random]]]]
- [\\library
- ["[0]" /]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try]
+ [parser
+ ["<[0]>" text {"+" Parser}]
+ ["<[0]>" code]]]
+ [data
+ ["[0]" text ("[1]#[0]" equivalence)
+ ["%" format {"+" format}]]]
+ ["[0]" macro
+ [syntax {"+" syntax:}]
+ ["[0]" code]]
+ [math
+ [number {"+" hex}]
+ ["[0]" random]]]]
+ [\\library
+ ["[0]" /]])
(def: (should_pass regex input)
(-> (Parser Text) Text Bit)
(|> input
(<text>.result regex)
- (case> {try.#Success parsed}
- (text#= parsed input)
+ (pipe.case
+ {try.#Success parsed}
+ (text#= parsed input)
- _
- #0)))
+ _
+ #0)))
(def: (text_should_pass test regex input)
(-> Text (Parser Text) Text Bit)
(|> input
(<text>.result regex)
- (case> {try.#Success parsed}
- (text#= test parsed)
+ (pipe.case
+ {try.#Success parsed}
+ (text#= test parsed)
- _
- false)))
+ _
+ false)))
(def: (should_fail regex input)
(All (_ a) (-> (Parser a) Text Bit))
(|> input
(<text>.result regex)
- (case> {try.#Failure _}
- true
+ (pipe.case
+ {try.#Failure _}
+ true
- _
- false)))
+ _
+ false)))
(syntax: (should_check [pattern <code>.any
regex <code>.any
@@ -58,11 +61,12 @@
(macro.with_symbols [g!message g!_]
(in (list (` (|> (~ input)
(<text>.result (~ regex))
- (case> (^ {try.#Success (~ pattern)})
- true
+ (pipe.case
+ (^ {try.#Success (~ pattern)})
+ true
- (~ g!_)
- false)))))))
+ (~ g!_)
+ false)))))))
(def: basics
Test
diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux
index 74107be7d..0cc809a70 100644
--- a/stdlib/source/test/lux/ffi.jvm.lux
+++ b/stdlib/source/test/lux/ffi.jvm.lux
@@ -9,7 +9,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception]
[parser
@@ -75,11 +75,12 @@
(function (_ lux)
(|> (macro.single_expansion expression)
(meta.result lux)
- (case> {try.#Success expansion}
- {try.#Failure "OOPS!"}
-
- {try.#Failure error}
- {try.#Success [lux (list (code.text error))]}))))
+ (pipe.case
+ {try.#Success expansion}
+ {try.#Failure "OOPS!"}
+
+ {try.#Failure error}
+ {try.#Success [lux (list (code.text error))]}))))
(def: for_conversions
Test
@@ -179,12 +180,14 @@
(_.cover [/.???]
(and (|> (/.??? (/.null))
(: (Maybe java/lang/Object))
- (case> {.#None} #1
- {.#Some _} #0))
+ (pipe.case
+ {.#None} #1
+ {.#Some _} #0))
(|> (/.??? sample)
(: (Maybe java/lang/Object))
- (case> {.#Some _} #1
- {.#None} #0))))
+ (pipe.case
+ {.#Some _} #1
+ {.#None} #0))))
(_.cover [/.!!!]
(and (|> (/.??? (/.null))
/.!!!
@@ -615,11 +618,12 @@
(function (_ lux)
(|> (macro.single_expansion expression)
(meta.result lux)
- (case> {try.#Success expansion}
- true
-
- {try.#Failure error}
- false)
+ (pipe.case
+ {try.#Success expansion}
+ true
+
+ {try.#Failure error}
+ false)
code.bit
list
[lux]
@@ -654,11 +658,12 @@
(try.else false))
(|> (list (code.local_symbol var/2))
(<code>.result type_variable)
- (case> {try.#Failure error}
- (exception.match? /.unknown_type_variable error)
-
- _
- false)))))
+ (pipe.case
+ {try.#Failure error}
+ (exception.match? /.unknown_type_variable error)
+
+ _
+ false)))))
)))
(def: .public test
diff --git a/stdlib/source/test/lux/ffi.old.lux b/stdlib/source/test/lux/ffi.old.lux
index 1a9db190f..39a86642e 100644
--- a/stdlib/source/test/lux/ffi.old.lux
+++ b/stdlib/source/test/lux/ffi.old.lux
@@ -6,7 +6,7 @@
[equivalence {"+" Equivalence}]
[monad {"+" do}]]
[control
- [pipe {"+" case>}]]
+ ["[0]" pipe]]
[data
["[0]" text ("[1]#[0]" equivalence)
["%" format {"+" format}]]]
@@ -182,11 +182,13 @@
(not (/.null? sample))))
(_.cover [/.???]
(and (|> (: (Maybe java/lang/Object) (/.??? (/.null)))
- (case> {.#None} #1
- _ #0))
+ (pipe.case
+ {.#None} #1
+ _ #0))
(|> (: (Maybe java/lang/Object) (/.??? sample))
- (case> {.#Some _} #1
- _ #0))))
+ (pipe.case
+ {.#Some _} #1
+ _ #0))))
(_.cover [/.!!!]
(and (/.null? (/.!!! (/.??? (/.null))))
(not (/.null? (/.!!! (/.??? sample))))))
diff --git a/stdlib/source/test/lux/meta/symbol.lux b/stdlib/source/test/lux/meta/symbol.lux
index 2ce0ba52b..261015a31 100644
--- a/stdlib/source/test/lux/meta/symbol.lux
+++ b/stdlib/source/test/lux/meta/symbol.lux
@@ -9,8 +9,6 @@
["$[0]" hash]
["$[0]" order]
["$[0]" codec]]]
- [control
- pipe]
[data
["[0]" text]]
[math
diff --git a/stdlib/source/test/lux/target/js.lux b/stdlib/source/test/lux/target/js.lux
index 16366a141..8f1da42bb 100644
--- a/stdlib/source/test/lux/target/js.lux
+++ b/stdlib/source/test/lux/target/js.lux
@@ -7,7 +7,7 @@
[monad {"+" do}]
["[0]" predicate]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" function]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try} ("[1]#[0]" functor)]]
@@ -817,11 +817,12 @@
(/.return $arg/0)))
(list))
..eval
- (case> {try.#Success it}
- false
-
- {try.#Failure error}
- true))))
+ (pipe.case
+ {try.#Success it}
+ false
+
+ {try.#Failure error}
+ true))))
..test|exception
..test|function
..test|branching
diff --git a/stdlib/source/test/lux/target/lua.lux b/stdlib/source/test/lux/target/lua.lux
index 0bee11310..84cf47b3f 100644
--- a/stdlib/source/test/lux/target/lua.lux
+++ b/stdlib/source/test/lux/target/lua.lux
@@ -10,7 +10,7 @@
["$[0]" equivalence]
["$[0]" hash]]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" function]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try} ("[1]#[0]" functor)]]
@@ -56,8 +56,9 @@
(|> /.nil
/.code
..load
- (case> {.#None} true
- {.#Some _} false)))
+ (pipe.case
+ {.#None} true
+ {.#Some _} false)))
(_.cover [/.boolean]
(expression (|>> (:as Bit) (bit#= boolean))
(/.boolean boolean)))
diff --git a/stdlib/source/test/lux/target/python.lux b/stdlib/source/test/lux/target/python.lux
index afcc8a43e..2a9bdb68e 100644
--- a/stdlib/source/test/lux/target/python.lux
+++ b/stdlib/source/test/lux/target/python.lux
@@ -11,7 +11,6 @@
["$[0]" equivalence]
["$[0]" hash]]]
[control
- [pipe {"+" case>}]
["[0]" function]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try} ("[1]#[0]" functor)]]
diff --git a/stdlib/source/test/lux/target/ruby.lux b/stdlib/source/test/lux/target/ruby.lux
index ee6b63d1c..58cf47c7b 100644
--- a/stdlib/source/test/lux/target/ruby.lux
+++ b/stdlib/source/test/lux/target/ruby.lux
@@ -10,7 +10,7 @@
[\\specification
["$[0]" equivalence]]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try} ("[1]#[0]" functor)]]
[data
@@ -52,8 +52,9 @@
(-> /.Expression Bit)
(|>> /.code
..eval
- (try#each (|>> (case> {.#None} true
- {.#Some _} false)))
+ (try#each (|>> (pipe.case
+ {.#None} true
+ {.#Some _} false)))
(try.else false)))
(def: test|literal
diff --git a/stdlib/source/test/lux/time.lux b/stdlib/source/test/lux/time.lux
index 72af6c159..074e2ebf4 100644
--- a/stdlib/source/test/lux/time.lux
+++ b/stdlib/source/test/lux/time.lux
@@ -1,37 +1,37 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]
- [\\specification
- ["$[0]" equivalence]
- ["$[0]" order]
- ["$[0]" enum]
- ["$[0]" codec]]]
- [control
- [pipe {"+" case>}]
- ["[0]" try ("[1]#[0]" functor)]
- ["[0]" exception]
- [parser
- ["<[0]>" text]]]
- [data
- ["[0]" text
- ["%" format {"+" format}]]]
- [math
- ["[0]" random]
- [number
- ["n" nat]]]]]
- ["[0]" / "_"
- ["[1][0]" date]
- ["[1][0]" day]
- ["[1][0]" duration]
- ["[1][0]" instant]
- ["[1][0]" month]
- ["[1][0]" year]]
- [\\library
- ["[0]" /
- ["[0]" duration]]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]
+ [\\specification
+ ["$[0]" equivalence]
+ ["$[0]" order]
+ ["$[0]" enum]
+ ["$[0]" codec]]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try ("[1]#[0]" functor)]
+ ["[0]" exception]
+ [parser
+ ["<[0]>" text]]]
+ [data
+ ["[0]" text
+ ["%" format {"+" format}]]]
+ [math
+ ["[0]" random]
+ [number
+ ["n" nat]]]]]
+ ["[0]" / "_"
+ ["[1][0]" date]
+ ["[1][0]" day]
+ ["[1][0]" duration]
+ ["[1][0]" instant]
+ ["[1][0]" month]
+ ["[1][0]" year]]
+ [\\library
+ ["[0]" /
+ ["[0]" duration]]])
(def: for_implementation
Test
@@ -76,8 +76,9 @@
(text.prefix <prefix>)
(text.suffix <suffix>)
(# /.codec decoded)
- (case> {try.#Success _} true
- {try.#Failure error} false))
+ (pipe.case
+ {try.#Success _} true
+ {try.#Failure error} false))
invalid!
(|> <invalid>
@@ -85,11 +86,12 @@
(text.prefix <prefix>)
(text.suffix <suffix>)
(# /.codec decoded)
- (case> {try.#Success _}
- false
-
- {try.#Failure error}
- (exception.match? <exception> error)))]
+ (pipe.case
+ {try.#Success _}
+ false
+
+ {try.#Failure error}
+ (exception.match? <exception> error)))]
(and valid!
invalid!)))]
@@ -102,8 +104,9 @@
%.nat
(format "00:00:00.")
(# /.codec decoded)
- (case> {try.#Success _} true
- {try.#Failure error} false)))
+ (pipe.case
+ {try.#Success _} true
+ {try.#Failure error} false)))
))))
(def: .public test
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis.lux
index 7ca3c4b12..eb623b548 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis.lux
@@ -8,7 +8,7 @@
[\\specification
["$[0]" equivalence]]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" function]
["[0]" maybe]
["[0]" try]
@@ -272,52 +272,57 @@
(|> (/.failure expected_error)
(phase.result [extension.#bundle extension.empty
extension.#state state/0])
- (case> {try.#Failure actual_error}
- (and (text.contains? expected_error actual_error)
- (text.contains? (location.format location/0) actual_error))
+ (pipe.case
+ {try.#Failure actual_error}
+ (and (text.contains? expected_error actual_error)
+ (text.contains? (location.format location/0) actual_error))
- _
- false)))
+ _
+ false)))
(_.cover [/.except]
(|> (/.except <exception> [])
(phase.result [extension.#bundle extension.empty
extension.#state state/0])
- (case> {try.#Failure actual_error}
- (and (text.contains? (exception.error <exception> []) actual_error)
- (text.contains? (location.format location/0) actual_error))
+ (pipe.case
+ {try.#Failure actual_error}
+ (and (text.contains? (exception.error <exception> []) actual_error)
+ (text.contains? (location.format location/0) actual_error))
- _
- false)))
+ _
+ false)))
(_.cover [/.with_exception]
(|> (/.failure expected_error)
(/.with_exception <exception> [])
(phase.result [extension.#bundle extension.empty
extension.#state state/0])
- (case> {try.#Failure actual_error}
- (and (text.contains? expected_error actual_error)
- (text.contains? (exception.error <exception> []) actual_error)
- (text.contains? (location.format location/0) actual_error))
-
- _
- false)))
+ (pipe.case
+ {try.#Failure actual_error}
+ (and (text.contains? expected_error actual_error)
+ (text.contains? (exception.error <exception> []) actual_error)
+ (text.contains? (location.format location/0) actual_error))
+
+ _
+ false)))
(_.cover [/.assertion]
(and (|> (/.assertion <exception> [] false)
(phase.result [extension.#bundle extension.empty
extension.#state state/0])
- (case> {try.#Failure actual_error}
- (and (text.contains? (exception.error <exception> []) actual_error)
- (text.contains? (location.format location/0) actual_error))
+ (pipe.case
+ {try.#Failure actual_error}
+ (and (text.contains? (exception.error <exception> []) actual_error)
+ (text.contains? (location.format location/0) actual_error))
- _
- false))
+ _
+ false))
(|> (/.assertion <exception> [] true)
(phase.result [extension.#bundle extension.empty
extension.#state state/0])
- (case> {try.#Success _}
- true
+ (pipe.case
+ {try.#Success _}
+ true
- _
- false))))
+ _
+ false))))
))))
(def: test|state
@@ -370,11 +375,12 @@
(extension.read (|>> (the .#current_module) (maybe.else ""))))
(phase.result [extension.#bundle extension.empty
extension.#state state])
- (case> {try.#Success actual}
- (same? expected_module actual)
+ (pipe.case
+ {try.#Success actual}
+ (same? expected_module actual)
- _
- false)))
+ _
+ false)))
(_.cover [/.with_current_module]
(let [current_module (extension.read (|>> (the .#current_module) (maybe.else "")))]
(|> (do phase.monad
@@ -396,11 +402,12 @@
(extension.read (the .#location)))
(phase.result [extension.#bundle extension.empty
extension.#state state])
- (case> {try.#Success actual}
- (same? expected actual)
+ (pipe.case
+ {try.#Success actual}
+ (same? expected actual)
- _
- false))))
+ _
+ false))))
(_.cover [/.with_location]
(let [expected (/.location expected_file)
dummy (/.location expected_code)
@@ -424,11 +431,12 @@
(extension.read (the .#source)))
(phase.result [extension.#bundle extension.empty
extension.#state state])
- (case> {try.#Success actual}
- (same? expected actual)
+ (pipe.case
+ {try.#Success actual}
+ (same? expected actual)
- _
- false))))
+ _
+ false))))
(_.cover [/.with_source_code]
(let [expected (/.source expected_file expected_code)
dummy (/.source expected_code expected_file)
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux
index d8ae7a32e..e7e26bd54 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux
@@ -8,7 +8,7 @@
[\\specification
["$[0]" equivalence]]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try {"+" Try} ("[1]#[0]" functor)]
["[0]" exception {"+" Exception}]]
[data
@@ -116,14 +116,15 @@
(in [(|> coverages
(list.only (|>> /.exhaustive? not))
list.reversed
- (case> {.#End}
- {/.#Exhaustive}
-
- {.#Item last prevs}
- (list#mix (function (_ left right)
- {/.#Seq left right})
- last
- prevs)))
+ (pipe.case
+ {.#End}
+ {/.#Exhaustive}
+
+ {.#Item last prevs}
+ (list#mix (function (_ left right)
+ {/.#Seq left right})
+ last
+ prevs)))
{//pattern.#Complex {//complex.#Tuple patterns}}]))
(do random.monad
@@ -239,7 +240,7 @@
[expected/2 pattern/2] (random.only ($_ predicate.and
(|>> product.left (/#= expected/0) not)
(|>> product.left (/#= expected/1) not)
- (|>> product.left (case> {/.#Variant _} false _ true)))
+ (|>> product.left (pipe.case {/.#Variant _} false _ true)))
..random_value_pattern)
bit random.bit
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/macro.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/macro.lux
index e3dd8a53f..af025cb4d 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/macro.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/macro.lux
@@ -7,7 +7,7 @@
[\\specification
["$[0]" equivalence]]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception]]
@@ -87,12 +87,13 @@
(_.cover [/.expansion_failed]
(|> (/.expansion ..expander name singular (list))
(meta.result lux)
- (case> {try.#Failure it}
- (and (text.contains? expected_error it)
- (text.contains? (the exception.#label /.expansion_failed) it))
+ (pipe.case
+ {try.#Failure it}
+ (and (text.contains? expected_error it)
+ (text.contains? (the exception.#label /.expansion_failed) it))
- _
- false)))
+ _
+ false)))
(_.cover [/.single_expansion]
(|> (/.single_expansion ..expander name singular poly)
(meta.result lux)
@@ -101,9 +102,10 @@
(_.cover [/.must_have_single_expansion]
(|> (/.single_expansion ..expander name multiple (list mono))
(meta.result lux)
- (case> {try.#Failure it}
- (text.contains? (the exception.#label /.must_have_single_expansion) it)
+ (pipe.case
+ {try.#Failure it}
+ (text.contains? (the exception.#label /.must_have_single_expansion) it)
- _
- false)))
+ _
+ false)))
)))
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/module.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/module.lux
index 904bd4dd7..52ab6e6ff 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/module.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/module.lux
@@ -5,7 +5,7 @@
[abstract
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception]]
[data
@@ -121,12 +121,13 @@
(in it))
(/phase.result state)
(try#each (|>> (the .#module_aliases)
- (case> (^ (list [actual_alias actual_import]))
- (and (same? expected_alias actual_alias)
- (same? expected_import actual_import))
+ (pipe.case
+ (^ (list [actual_alias actual_import]))
+ (and (same? expected_alias actual_alias)
+ (same? expected_import actual_import))
- _
- false)))
+ _
+ false)))
(try.else false)))
)))
@@ -164,11 +165,12 @@
[_ (<pre> name)]
(<post> name)))
(/phase.result state)
- (case> {try.#Success _}
- false
-
- {try.#Failure error}
- (text.contains? (the exception.#label /.can_only_change_state_of_active_module) error)))]
+ (pipe.case
+ {try.#Success _}
+ false
+
+ {try.#Failure error}
+ (text.contains? (the exception.#label /.can_only_change_state_of_active_module) error)))]
[/.set_compiled /.set_active]
[/.set_compiled /.set_compiled]
@@ -181,11 +183,12 @@
(and (~~ (template [<set>]
[(|> (<set> name)
(/phase.result state)
- (case> {try.#Success _}
- false
-
- {try.#Failure error}
- (text.contains? (the exception.#label /.unknown_module) error)))]
+ (pipe.case
+ {try.#Success _}
+ false
+
+ {try.#Failure error}
+ (text.contains? (the exception.#label /.unknown_module) error)))]
[/.set_active]
[/.set_compiled]
@@ -221,8 +224,9 @@
[(|> (/.with hash module_name
(/.define def_name <global>))
(/phase.result state)
- (case> {try.#Success _} true
- {try.#Failure _} false))]
+ (pipe.case
+ {try.#Success _} true
+ {try.#Failure _} false))]
[definition]
[{.#Type [public? def_type {.#Left [labels|head labels|tail]}]}]
@@ -234,8 +238,9 @@
[_ (/.define def_name definition)]
(/.define alias_name alias)))
(/phase.result state)
- (case> {try.#Success _} true
- {try.#Failure _} false)))))
+ (pipe.case
+ {try.#Success _} true
+ {try.#Failure _} false)))))
(_.cover [/.cannot_define_more_than_once]
(`` (and (~~ (template [<global>]
[(|> (/.with hash module_name
@@ -243,8 +248,9 @@
[_ (/.define def_name <global>)]
(/.define def_name <global>)))
(/phase.result state)
- (case> {try.#Success _} false
- {try.#Failure _} true))]
+ (pipe.case
+ {try.#Success _} false
+ {try.#Failure _} true))]
[{.#Definition [public? def_type []]}]
[{.#Type [public? def_type {.#Left [labels|head labels|tail]}]}]
@@ -257,8 +263,9 @@
_ (/.define alias_name alias)]
(/.define alias_name alias)))
(/phase.result state)
- (case> {try.#Success _} false
- {try.#Failure _} true)))))
+ (pipe.case
+ {try.#Success _} false
+ {try.#Failure _} true)))))
)))
(def: test|label
@@ -291,8 +298,9 @@
(monad.each ! (|>> [module_name] <query> /extension.lifted)
(list& labels|head labels|tail))))
(/phase.result state)
- (case> {try.#Success _} <on_success>
- {try.#Failure _} (not <on_success>)))]
+ (pipe.case
+ {try.#Success _} <on_success>
+ {try.#Failure _} (not <on_success>)))]
[.#Left false meta.tag true]
[.#Left false meta.slot false]
@@ -306,11 +314,12 @@
_ (/.define def_name {.#Type [public? it {<side> [labels|head labels|tail]}]})]
(/.declare_labels <record?> (list& labels|head labels|tail) public? it)))
(/phase.result state)
- (case> {try.#Success _}
- false
-
- {try.#Failure error}
- (text.contains? (the exception.#label /.cannot_declare_labels_for_anonymous_type) error)))]
+ (pipe.case
+ {try.#Success _}
+ false
+
+ {try.#Failure error}
+ (text.contains? (the exception.#label /.cannot_declare_labels_for_anonymous_type) error)))]
[.#Left false]
[.#Right true])))))
@@ -322,11 +331,12 @@
_ (/.define def_name {.#Type [public? it {<side> [labels|head labels|tail]}]})]
(/.declare_labels <record?> (list& labels|head labels|tail) public? it)))
(/phase.result state)
- (case> {try.#Success _}
- false
-
- {try.#Failure error}
- (text.contains? (the exception.#label /.cannot_declare_labels_for_foreign_type) error)))]
+ (pipe.case
+ {try.#Success _}
+ false
+
+ {try.#Failure error}
+ (text.contains? (the exception.#label /.cannot_declare_labels_for_foreign_type) error)))]
[.#Left false]
[.#Right true])))))
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux
index db4902b2b..faf28f47e 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/scope.lux
@@ -5,7 +5,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception]]
@@ -64,8 +64,9 @@
/.with
(//phase.result state)
(try#each (|>> product.right
- (case> {.#None} true
- {.#Some _} false)))
+ (pipe.case
+ {.#None} true
+ {.#Some _} false)))
(try.else false)))
(_.cover [/.with_local]
(|> (/.with_local [name/0 type/0]
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux
index a5f1b5797..2a13b674c 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/type.lux
@@ -5,7 +5,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]]
[data
["[0]" product]]
@@ -58,22 +58,25 @@
(/module.with 0 module)
(/phase#each product.right)
(/phase.result state)
- (case> {try.#Success _} true
- {try.#Failure _} false))
+ (pipe.case
+ {try.#Success _} true
+ {try.#Failure _} false))
(|> (/.inference dummy)
(/.expecting expected)
(/module.with 0 module)
(/phase#each product.right)
(/phase.result state)
- (case> {try.#Success _} false
- {try.#Failure _} true))
+ (pipe.case
+ {try.#Success _} false
+ {try.#Failure _} true))
(|> (/.inference expected)
(/.expecting dummy)
(/module.with 0 module)
(/phase#each product.right)
(/phase.result state)
- (case> {try.#Success _} false
- {try.#Failure _} true))))
+ (pipe.case
+ {try.#Success _} false
+ {try.#Failure _} true))))
(_.cover [/.inferring]
(|> (/.inference expected)
/.inferring
@@ -92,8 +95,9 @@
(/module.with 0 module)
(/phase#each product.right)
(/phase.result state)
- (case> {try.#Success _} true
- {try.#Failure _} false)))
+ (pipe.case
+ {try.#Success _} true
+ {try.#Failure _} false)))
(_.cover [/.existential /.existential?]
(|> (do /phase.monad
[:it: /.existential]
@@ -112,8 +116,9 @@
(/module.with 0 module)
(/phase#each product.right)
(/phase.result state)
- (case> {try.#Success _} true
- {try.#Failure _} false))
+ (pipe.case
+ {try.#Success _} true
+ {try.#Failure _} false))
(|> (do /phase.monad
[varT (/.check (do check.monad
[[id type] check.var]
@@ -124,6 +129,7 @@
(/module.with 0 module)
(/phase#each product.right)
(/phase.result state)
- (case> {try.#Success _} false
- {try.#Failure _} true))))
+ (pipe.case
+ {try.#Success _} false
+ {try.#Failure _} true))))
))))
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 b08ab36de..5fa0d281b 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
@@ -5,7 +5,6 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
["[0]" try {"+" Try} ("[1]#[0]" functor)]
["[0]" exception]]
[data
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux
index 203c7a46f..f27af5d36 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux
@@ -5,7 +5,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try {"+" Try} ("[1]#[0]" functor)]
["[0]" exception {"+" Exception}]]
@@ -479,22 +479,24 @@
(//module.with 0 module)
(//phase#each product.right)
(//phase.result state)
- (case> {try.#Success {.#Some actual}}
- (let [(^open "list#[0]") (list.equivalence (product.equivalence symbol.equivalence code.equivalence))]
- (list#= expected (list.reversed actual)))
-
- _
- false))))]
+ (pipe.case
+ {try.#Success {.#Some actual}}
+ (let [(^open "list#[0]") (list.equivalence (product.equivalence symbol.equivalence code.equivalence))]
+ (list#= expected (list.reversed actual)))
+
+ _
+ false))))]
(and (normal? (list) (list))
(normal? expected_record global_record)
(normal? expected_record local_record)
(|> (/.normal false tuple)
(//phase.result state)
- (case> {try.#Success {.#None}}
- true
-
- _
- false)))))
+ (pipe.case
+ {try.#Success {.#None}}
+ true
+
+ _
+ false)))))
(_.cover [/.order]
(let [local_record (list.zipped/2 (list#each (|>> [""]) slots/0) tuple)
global_record (list.zipped/2 (list#each (|>> [module]) slots/0) tuple)
@@ -507,22 +509,24 @@
(//module.with 0 module)
(//phase#each (|>> product.right product.right))
(//phase.result state)
- (case> {try.#Success {.#Some [actual_arity actual_tuple actual_type]}}
- (and (n.= arity actual_arity)
- (# code.equivalence = (code.tuple tuple) (code.tuple actual_tuple))
- (type#= :record: actual_type))
-
- _
- false))))
+ (pipe.case
+ {try.#Success {.#Some [actual_arity actual_tuple actual_type]}}
+ (and (n.= arity actual_arity)
+ (# code.equivalence = (code.tuple tuple) (code.tuple actual_tuple))
+ (type#= :record: actual_type))
+
+ _
+ false))))
unit? (: (-> Bit Bit)
(function (_ pattern_matching?)
(|> (/.order false (list))
(//phase.result state)
- (case> (^ {try.#Success {.#Some [0 (list) actual_type]}})
- (same? .Any actual_type)
+ (pipe.case
+ (^ {try.#Success {.#Some [0 (list) actual_type]}})
+ (same? .Any actual_type)
- _
- false))))]
+ _
+ false))))]
(and (ordered? false global_record)
(ordered? false (list.reversed global_record))
(ordered? false local_record)
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 dfc9ba28d..fd60e1de8 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
@@ -5,7 +5,6 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
["[0]" function]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception]]
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 3c215c00b..45fef5649 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
@@ -5,7 +5,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception]]
[data
@@ -53,11 +53,12 @@
(//phase#each product.right)
(//phase.result state)
(try#each (|>> product.right
- (case> (^ [actual_type (//analysis.local 0)])
- (type#= expected_type actual_type)
+ (pipe.case
+ (^ [actual_type (//analysis.local 0)])
+ (type#= expected_type actual_type)
- _
- false)))
+ _
+ false)))
(try.else false))
can_find_foreign_variable!
@@ -71,11 +72,12 @@
(//phase.result state)
(try#each (|>> product.right
product.right
- (case> (^ [actual_type (//analysis.foreign 0)])
- (type#= expected_type actual_type)
+ (pipe.case
+ (^ [actual_type (//analysis.foreign 0)])
+ (type#= expected_type actual_type)
- _
- false)))
+ _
+ false)))
(try.else false))
can_find_local_definition!
@@ -86,13 +88,14 @@
(//module.with 0 expected_module)
(//phase.result state)
(try#each (|>> product.right
- (case> (^ [actual_type (//analysis.constant [actual_module actual_name])])
- (and (type#= expected_type actual_type)
- (same? expected_module actual_module)
- (same? expected_name actual_name))
+ (pipe.case
+ (^ [actual_type (//analysis.constant [actual_module actual_name])])
+ (and (type#= expected_type actual_type)
+ (same? expected_module actual_module)
+ (same? expected_name actual_name))
- _
- false)))
+ _
+ false)))
(try.else false))
can_find_foreign_definition!
@@ -105,13 +108,14 @@
(//module.with 0 expected_module)
(//phase.result state)
(try#each (|>> product.right
- (case> (^ [actual_type (//analysis.constant [actual_module actual_name])])
- (and (type#= expected_type actual_type)
- (same? import actual_module)
- (same? expected_name actual_name))
+ (pipe.case
+ (^ [actual_type (//analysis.constant [actual_module actual_name])])
+ (and (type#= expected_type actual_type)
+ (same? import actual_module)
+ (same? expected_name actual_name))
- _
- false)))
+ _
+ false)))
(try.else false))
can_find_alias!
@@ -125,13 +129,14 @@
(//module.with 0 expected_module)
(//phase.result state)
(try#each (|>> product.right
- (case> (^ [actual_type (//analysis.constant [actual_module actual_name])])
- (and (type#= expected_type actual_type)
- (same? import actual_module)
- (same? expected_name actual_name))
+ (pipe.case
+ (^ [actual_type (//analysis.constant [actual_module actual_name])])
+ (and (type#= expected_type actual_type)
+ (same? import actual_module)
+ (same? expected_name actual_name))
- _
- false)))
+ _
+ false)))
(try.else false))
can_find_type!
@@ -145,13 +150,14 @@
(//module.with 0 expected_module)
(//phase.result state)
(try#each (|>> product.right
- (case> (^ [actual_type (//analysis.constant [actual_module actual_name])])
- (and (type#= .Type actual_type)
- (same? expected_module actual_module)
- (same? expected_name actual_name))
+ (pipe.case
+ (^ [actual_type (//analysis.constant [actual_module actual_name])])
+ (and (type#= .Type actual_type)
+ (same? expected_module actual_module)
+ (same? expected_name actual_name))
- _
- false)))
+ _
+ false)))
(try.else false))]
(and can_find_local_variable!
can_find_foreign_variable!
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux
index 86f813b1d..454cebdc6 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/simple.lux
@@ -6,7 +6,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try]]
[data
["[0]" product]]
@@ -34,43 +34,47 @@
(/phase#each product.right)
(/phase.result [/extension.#bundle /extension.empty
/extension.#state state])
- (case> (^ {try.#Success analysis})
- (? analysis)
+ (pipe.case
+ (^ {try.#Success analysis})
+ (? analysis)
- _
- false))
+ _
+ false))
(|> it
(/type.expecting .Nothing)
(/module.with 0 module)
(/phase#each product.right)
(/phase.result [/extension.#bundle /extension.empty
/extension.#state state])
- (case> (^ {try.#Failure error})
- true
+ (pipe.case
+ (^ {try.#Failure error})
+ true
- _
- false))
+ _
+ false))
(|> it
/type.inferring
(/module.with 0 module)
(/phase#each product.right)
(/phase.result [/extension.#bundle /extension.empty
/extension.#state state])
- (case> (^ {try.#Success [inferred analysis]})
- (and (type#= type inferred)
- (? analysis))
+ (pipe.case
+ (^ {try.#Success [inferred analysis]})
+ (and (type#= type inferred)
+ (? analysis))
- _
- false))))
+ _
+ false))))
(template: (analysis? <type> <tag>)
[(: (-> <type> Analysis Bit)
(function (_ expected)
- (|>> (case> (^ (<tag> actual))
- (same? expected actual)
+ (|>> (pipe.case
+ (^ (<tag> actual))
+ (same? expected actual)
- _
- false))))])
+ _
+ false))))])
(def: .public test
(<| (_.covering /._)
@@ -83,7 +87,7 @@
(`` ($_ _.and
(_.cover [/.unit]
(..analysis state module .Any /.unit
- (|>> (case> (^ (/analysis.unit)) true _ false))))
+ (|>> (pipe.case (^ (/analysis.unit)) true _ false))))
(~~ (template [<analysis> <type> <random> <tag>]
[(do !
[sample <random>]
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux
index ab2af87eb..1f24840eb 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux
@@ -8,7 +8,7 @@
["$[0]" equivalence]
["$[0]" hash]]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try]
["[0]" exception]]
[data
@@ -122,22 +122,24 @@
(/.install extender extension handler/1))
(phase.result [/.#bundle /.empty
/.#state state])
- (case> {try.#Failure error}
- (exception.match? /.cannot_overwrite error)
+ (pipe.case
+ {try.#Failure error}
+ (exception.match? /.cannot_overwrite error)
- _
- false)))
+ _
+ false)))
(_.cover [/.unknown]
(|> (/.apply archive.empty (function (_ archive input)
(# phase.monad in (++ input)))
[extension (list left right)])
(phase.result [/.#bundle /.empty
/.#state state])
- (case> {try.#Failure error}
- (exception.match? /.unknown error)
+ (pipe.case
+ {try.#Failure error}
+ (exception.match? /.unknown error)
- _
- false)))
+ _
+ false)))
)))
(def: test|bundle
@@ -197,11 +199,12 @@
(/.apply archive.empty phase [extension (list)]))
(phase.result [/.#bundle /.empty
/.#state state])
- (case> {try.#Failure error}
- (exception.match? /.incorrect_arity error)
+ (pipe.case
+ {try.#Failure error}
+ (exception.match? /.incorrect_arity error)
- _
- false))))
+ _
+ false))))
(_.cover [/.invalid_syntax]
(let [handler (: (/.Handler Int Nat Nat)
(function (_ @self phase archive inputs)
@@ -211,11 +214,12 @@
(/.apply archive.empty phase [extension (list left right)]))
(phase.result [/.#bundle /.empty
/.#state state])
- (case> {try.#Failure error}
- (exception.match? /.invalid_syntax error)
+ (pipe.case
+ {try.#Failure error}
+ (exception.match? /.invalid_syntax error)
- _
- false))))
+ _
+ false))))
(_.for [/.Name]
..test|name)
))
@@ -252,11 +256,12 @@
(/.lifted (phase.lifted {try.#Failure expected_error})))
(phase.result [/.#bundle /.empty
/.#state state])
- (case> {try.#Failure actual_error}
- (same? expected_error actual_error)
+ (pipe.case
+ {try.#Failure actual_error}
+ (same? expected_error actual_error)
- _
- false))))
+ _
+ false))))
(_.cover [/.up]
(|> (do phase.monad
[]
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 90cf891ac..24a9fb366 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
@@ -1,37 +1,37 @@
(.using
- [lux {"-" i64 int primitive}
- [abstract
- ["[0]" monad {"+" do}]]
- [data
- ["%" text/format {"+" format}]]
- ["r" math/random {"+" Random}]
- ["_" test {"+" Test}]
- [control
- pipe
- [io {"+" IO}]
- ["[0]" try]
- [concurrency
- ["[0]" atom]]]
- [data
- ["[0]" product]]
- ["[0]" type ("[1]#[0]" equivalence)]
- [macro
- ["[0]" code]]
- [meta
- ["[0]" symbol]]]
- [////
- [analysis
- ["_[0]" primitive]]]
- [\\
- ["[0]" /
- ["///[1]" //// "_"
- [analysis
- ["[1][0]" scope]
- ["[1][0]" type]]
- [////
- ["[0]" phase]
- [meta
- ["[0]" archive]]]]]])
+ [lux {"-" i64 int primitive}
+ [abstract
+ ["[0]" monad {"+" do}]]
+ [data
+ ["%" text/format {"+" format}]]
+ ["r" math/random {"+" Random}]
+ ["_" test {"+" Test}]
+ [control
+ ["[0]" pipe]
+ [io {"+" IO}]
+ ["[0]" try]
+ [concurrency
+ ["[0]" atom]]]
+ [data
+ ["[0]" product]]
+ ["[0]" type ("[1]#[0]" equivalence)]
+ [macro
+ ["[0]" code]]
+ [meta
+ ["[0]" symbol]]]
+ [////
+ [analysis
+ ["_[0]" primitive]]]
+ [\\
+ ["[0]" /
+ ["///[1]" //// "_"
+ [analysis
+ ["[1][0]" scope]
+ ["[1][0]" type]]
+ [////
+ ["[0]" phase]
+ [meta
+ ["[0]" archive]]]]]])
(template [<name> <success> <failure>]
[(def: (<name> procedure params output_type)
@@ -40,11 +40,12 @@
(////type.with_type output_type
(_primitive.phase archive.empty (` ((~ (code.text procedure)) (~+ params))))))
(phase.result _primitive.state)
- (case> {try.#Success _}
- <success>
+ (pipe.case
+ {try.#Success _}
+ <success>
- {try.#Failure _}
- <failure>)))]
+ {try.#Failure _}
+ <failure>)))]
[check_success+ true false]
[check_failure+ false true]
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 beb9c4a34..c5d7ccd02 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
@@ -5,7 +5,7 @@
[hash {"+" Hash}]
["[0]" monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]]
[data
["[0]" sum]
@@ -71,13 +71,14 @@
(|> letA
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (case> (^ {try.#Success (synthesis.branch/let [inputS registerS outputS])})
- (and (n.= registerA registerS)
- (//primitive.corresponds? inputA inputS)
- (//primitive.corresponds? outputA outputS))
+ (pipe.case
+ (^ {try.#Success (synthesis.branch/let [inputS registerS outputS])})
+ (and (n.= registerA registerS)
+ (//primitive.corresponds? inputA inputS)
+ (//primitive.corresponds? outputA outputS))
- _
- false)))))
+ _
+ false)))))
(def: if_test
Test
@@ -99,13 +100,14 @@
(|> ifA
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (case> (^ {try.#Success (synthesis.branch/if [inputS thenS elseS])})
- (and (//primitive.corresponds? inputA inputS)
- (//primitive.corresponds? thenA thenS)
- (//primitive.corresponds? elseA elseS))
+ (pipe.case
+ (^ {try.#Success (synthesis.branch/if [inputS thenS elseS])})
+ (and (//primitive.corresponds? inputA inputS)
+ (//primitive.corresponds? thenA thenS)
+ (//primitive.corresponds? elseA elseS))
- _
- false)))))
+ _
+ false)))))
(def: random_member
(Random synthesis.Member)
@@ -158,12 +160,13 @@
(|> getA
(//.phase archive.empty)
(phase.result [///bundle.empty synthesis.init])
- (case> (^ {try.#Success (synthesis.branch/get [pathS recordS])})
- (and (# (list.equivalence (sum.equivalence n.= n.=)) = pathA pathS)
- (//primitive.corresponds? recordA recordS))
+ (pipe.case
+ (^ {try.#Success (synthesis.branch/get [pathS recordS])})
+ (and (# (list.equivalence (sum.equivalence n.= n.=)) = pathA pathS)
+ (//primitive.corresponds? recordA recordS))
- _
- false)))))
+ _
+ false)))))
(def: random_bit
(Random [Path Match])
@@ -185,11 +188,12 @@
(|> random_element
(random.set hash 5)
(# random.monad each (|>> set.list
- (case> (^ (list s0 s1 s2 s3 s4))
- [s0 s1 s2 s3 s4]
+ (pipe.case
+ (^ (list s0 s1 s2 s3 s4))
+ [s0 s1 s2 s3 s4]
- _
- (undefined))))))
+ _
+ (undefined))))))
(template [<name> <hash> <random> <path> <synthesis> <pattern> <analysis>]
[(def: <name>
@@ -333,12 +337,13 @@
(_.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])})
- (and (# synthesis.equivalence = expected_input actual_input)
- (# synthesis.path_equivalence = expected_path actual_path))
+ (pipe.case
+ (^ {try.#Success (synthesis.branch/case [actual_input actual_path])})
+ (and (# synthesis.equivalence = expected_input actual_input)
+ (# synthesis.path_equivalence = expected_path actual_path))
- _
- false)))))
+ _
+ false)))))
(def: .public test
Test
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 6fa2b9257..159207280 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
@@ -1,32 +1,32 @@
(.using
- [lux {"-" primitive}
- [abstract ["[0]" monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" try]]
- [data
- ["%" text/format {"+" format}]
- [number
- ["n" nat]]
- [collection
- ["[0]" list]]]
- ["r" math/random {"+" Random} ("[1]#[0]" monad)]
- ["_" test {"+" Test}]
- [meta
- ["[0]" symbol]]]
- [\\
- ["[0]" / "_"
- ["/[1]" //
- ["/[1]" // "_"
- [extension
- ["[1][0]" bundle]]
- ["/[1]" //
- ["[1][0]" analysis {"+" Analysis}]
- ["[1][0]" synthesis {"+" Synthesis}]
- [///
- ["[0]" phase]
- [meta
- ["[0]" archive]]]]]]]])
+ [lux {"-" primitive}
+ [abstract ["[0]" monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" try]]
+ [data
+ ["%" text/format {"+" format}]
+ [number
+ ["n" nat]]
+ [collection
+ ["[0]" list]]]
+ ["r" math/random {"+" Random} ("[1]#[0]" monad)]
+ ["_" test {"+" Test}]
+ [meta
+ ["[0]" symbol]]]
+ [\\
+ ["[0]" / "_"
+ ["/[1]" //
+ ["/[1]" // "_"
+ [extension
+ ["[1][0]" bundle]]
+ ["/[1]" //
+ ["[1][0]" analysis {"+" Analysis}]
+ ["[1][0]" synthesis {"+" Synthesis}]
+ [///
+ ["[0]" phase]
+ [meta
+ ["[0]" archive]]]]]]]])
(def: .public primitive
(Random Analysis)
@@ -82,11 +82,12 @@
(|> {////analysis.#Primitive {<analysis> expected}}
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
- (case> {try.#Success {////synthesis.#Primitive {<synthesis> actual}}}
- (same? expected actual)
+ (pipe.case
+ {try.#Success {////synthesis.#Primitive {<synthesis> actual}}}
+ (same? expected actual)
- _
- false))))]
+ _
+ false))))]
[////analysis.#Unit ////synthesis.#Text (r#in ////synthesis.unit)]
[////analysis.#Bit ////synthesis.#Bit r.bit]
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 ce3327adb..2f66190b4 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
@@ -1,38 +1,38 @@
(.using
- [lux "*"
- [abstract
- ["[0]" monad {"+" do}]]
- [data
- ["%" text/format {"+" format}]]
- ["r" math/random {"+" Random}]
- ["_" test {"+" Test}]
- [control
- pipe
- ["[0]" try]]
- [data
- ["[0]" bit ("[1]#[0]" equivalence)]
- ["[0]" product]
- [number
- ["n" nat]]
- [collection
- ["[0]" list]]]
- [meta
- ["[0]" symbol]]]
- ["[0]" // "_"
- ["[1][0]" primitive]]
- [\\
- ["[0]" / "_"
- ["/[1]" //
- ["/[1]" // "_"
- [extension
- ["[1][0]" bundle]]
- ["/[1]" //
- ["[1][0]" analysis {"+" Analysis}]
- ["[1][0]" synthesis {"+" Synthesis}]
- [///
- ["[0]" phase]
- [meta
- ["[0]" archive]]]]]]]])
+ [lux "*"
+ [abstract
+ ["[0]" monad {"+" do}]]
+ [data
+ ["%" text/format {"+" format}]]
+ ["r" math/random {"+" Random}]
+ ["_" test {"+" Test}]
+ [control
+ ["[0]" pipe]
+ ["[0]" try]]
+ [data
+ ["[0]" bit ("[1]#[0]" equivalence)]
+ ["[0]" product]
+ [number
+ ["n" nat]]
+ [collection
+ ["[0]" list]]]
+ [meta
+ ["[0]" symbol]]]
+ ["[0]" // "_"
+ ["[1][0]" primitive]]
+ [\\
+ ["[0]" / "_"
+ ["/[1]" //
+ ["/[1]" // "_"
+ [extension
+ ["[1][0]" bundle]]
+ ["/[1]" //
+ ["[1][0]" analysis {"+" Analysis}]
+ ["[1][0]" synthesis {"+" Synthesis}]
+ [///
+ ["[0]" phase]
+ [meta
+ ["[0]" archive]]]]]]]])
(def: variant
Test
@@ -48,14 +48,15 @@
(|> (////analysis.variant [lefts right? memberA])
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
- (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))
- (//primitive.corresponds? memberA valueS)))
-
- _
- false)))))
+ (pipe.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))
+ (//primitive.corresponds? memberA valueS)))
+
+ _
+ false)))))
(def: tuple
Test
@@ -66,13 +67,14 @@
(|> (////analysis.tuple membersA)
(//.phase archive.empty)
(phase.result [///bundle.empty ////synthesis.init])
- (case> (^ {try.#Success (////synthesis.tuple membersS)})
- (and (n.= size (list.size membersS))
- (list.every? (product.uncurried //primitive.corresponds?)
- (list.zipped/2 membersA membersS)))
+ (pipe.case
+ (^ {try.#Success (////synthesis.tuple membersS)})
+ (and (n.= size (list.size membersS))
+ (list.every? (product.uncurried //primitive.corresponds?)
+ (list.zipped/2 membersA membersS)))
- _
- false)))))
+ _
+ false)))))
(def: .public test
Test
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 55a187083..42a9d531a 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
@@ -6,7 +6,6 @@
[math
["[0]" random {"+" Random}]]
[control
- [pipe {"+" case>}]
["[0]" try]]
[data
["[0]" product]
diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive.lux b/stdlib/source/test/lux/tool/compiler/meta/archive.lux
index 7cbd76e8a..f89666969 100644
--- a/stdlib/source/test/lux/tool/compiler/meta/archive.lux
+++ b/stdlib/source/test/lux/tool/compiler/meta/archive.lux
@@ -5,7 +5,6 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
["[0]" try]
["[0]" exception]]
[data
diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux b/stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux
index a99e8eccf..1ed849972 100644
--- a/stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux
+++ b/stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux
@@ -5,7 +5,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception]
[parser
@@ -52,42 +52,47 @@
(and (|> expected
(/.document key/0)
(/.marked? key/0)
- (case> {try.#Success it} true
- {try.#Failure error} false))
+ (pipe.case
+ {try.#Success it} true
+ {try.#Failure error} false))
(|> expected
(/.document key/0)
(/.marked? key/1)
- (case> {try.#Success it} false
- {try.#Failure error} true))))
+ (pipe.case
+ {try.#Success it} false
+ {try.#Failure error} true))))
(_.cover [/.invalid_signature]
(and (|> expected
(/.document key/0)
(/.content key/1)
- (case> {try.#Success it}
- false
-
- {try.#Failure error}
- (exception.match? /.invalid_signature error)))
+ (pipe.case
+ {try.#Success it}
+ false
+
+ {try.#Failure error}
+ (exception.match? /.invalid_signature error)))
(|> expected
(/.document key/0)
(/.marked? key/1)
- (case> {try.#Success it}
- false
-
- {try.#Failure error}
- (exception.match? /.invalid_signature error)))))
+ (pipe.case
+ {try.#Success it}
+ false
+
+ {try.#Failure error}
+ (exception.match? /.invalid_signature error)))))
(_.cover [/.writer /.parser]
(|> expected
(/.document key/0)
(binaryF.result (/.writer binaryF.nat))
(<binary>.result (/.parser key/0 <binary>.nat))
- (case> {try.#Success it}
- (and (/signature#= signature/0 (/.signature it))
- (|> it
- (/.content key/0)
- (try#each (nat.= expected))
- (try.else false)))
-
- {try.#Failure error}
- false)))
+ (pipe.case
+ {try.#Success it}
+ (and (/signature#= signature/0 (/.signature it))
+ (|> it
+ (/.content key/0)
+ (try#each (nat.= expected))
+ (try.else false)))
+
+ {try.#Failure error}
+ false)))
))))
diff --git a/stdlib/source/test/lux/tool/compiler/meta/cli.lux b/stdlib/source/test/lux/tool/compiler/meta/cli.lux
index 48aa9c079..725d1f495 100644
--- a/stdlib/source/test/lux/tool/compiler/meta/cli.lux
+++ b/stdlib/source/test/lux/tool/compiler/meta/cli.lux
@@ -5,7 +5,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]
["<>" parser
["<[0]>" cli]]]
@@ -61,13 +61,14 @@
[(_.cover [<type>]
(|> (list& "build" compilation')
(<cli>.result /.service)
- (try#each (|>> (case> {/.#Compilation it}
- (|> it
- (the <slot>)
- <?>)
-
- _
- false)))
+ (try#each (|>> (pipe.case
+ {/.#Compilation it}
+ (|> it
+ (the <slot>)
+ <?>)
+
+ _
+ false)))
(try.else false)))]
[/.Host_Dependency /.#host_dependencies (list#= host_dependencies)]
@@ -83,13 +84,14 @@
(`` (and (~~ (template [<slot> <?>]
[(|> (list& "repl" compilation')
(<cli>.result /.service)
- (try#each (|>> (case> {/.#Interpretation it}
- (|> it
- (the <slot>)
- <?>)
-
- _
- false)))
+ (try#each (|>> (pipe.case
+ {/.#Interpretation it}
+ (|> it
+ (the <slot>)
+ <?>)
+
+ _
+ false)))
(try.else false))]
[/.#host_dependencies (list#= host_dependencies)]
@@ -104,13 +106,14 @@
(`` (and (~~ (template [<side> <?>]
[(|> (list& "export" export)
(<cli>.result /.service)
- (try#each (|>> (case> {/.#Export it}
- (|> it
- <side>
- <?>)
-
- _
- false)))
+ (try#each (|>> (pipe.case
+ {/.#Export it}
+ (|> it
+ <side>
+ <?>)
+
+ _
+ false)))
(try.else false))]
[product.left (list#= sources)]
diff --git a/stdlib/source/test/lux/tool/compiler/meta/export.lux b/stdlib/source/test/lux/tool/compiler/meta/export.lux
index 2864dabfd..762449a9e 100644
--- a/stdlib/source/test/lux/tool/compiler/meta/export.lux
+++ b/stdlib/source/test/lux/tool/compiler/meta/export.lux
@@ -5,7 +5,7 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]
[concurrency
["[0]" async]]
@@ -79,41 +79,43 @@
(|> it
(try#each (|>> product.left
sequence.list
- (case> (^ (list {tar.#Normal [actual_path/0 when/0 mode/0 ownership/0 actual_content/0]}
- {tar.#Normal [actual_path/1 when/1 mode/1 ownership/1 actual_content/1]}))
- (with_expansions [<test> (and (and (text#= file/0' (tar.from_path actual_path/0))
- (same? /.mode mode/0)
- (same? /.ownership ownership/0)
- (binary#= content/0 (tar.data actual_content/0)))
- (and (text#= file/1' (tar.from_path actual_path/1))
- (same? /.mode mode/1)
- (same? /.ownership ownership/1)
- (binary#= content/1 (tar.data actual_content/1))))]
- (or <test>
- (let [[[actual_path/0 actual_content/0] [actual_path/1 actual_content/1]]
- [[actual_path/1 actual_content/1] [actual_path/0 actual_content/0]]]
- <test>)))
-
- _
- false)))
+ (pipe.case
+ (^ (list {tar.#Normal [actual_path/0 when/0 mode/0 ownership/0 actual_content/0]}
+ {tar.#Normal [actual_path/1 when/1 mode/1 ownership/1 actual_content/1]}))
+ (with_expansions [<test> (and (and (text#= file/0' (tar.from_path actual_path/0))
+ (same? /.mode mode/0)
+ (same? /.ownership ownership/0)
+ (binary#= content/0 (tar.data actual_content/0)))
+ (and (text#= file/1' (tar.from_path actual_path/1))
+ (same? /.mode mode/1)
+ (same? /.ownership ownership/1)
+ (binary#= content/1 (tar.data actual_content/1))))]
+ (or <test>
+ (let [[[actual_path/0 actual_content/0] [actual_path/1 actual_content/1]]
+ [[actual_path/1 actual_content/1] [actual_path/0 actual_content/0]]]
+ <test>)))
+
+ _
+ false)))
(try.else false)))
(_.cover' [/.export /.file]
(|> it
(try#each (|>> product.right
sequence.list
- (case> (^ (list {tar.#Normal [actual_path/0 _ _ _ actual_content/0]}
- {tar.#Normal [actual_path/1 _ _ _ actual_content/1]}))
- (with_expansions [<test> (and (and (text#= file/0' (tar.from_path actual_path/0))
- (binary#= content/0 (tar.data actual_content/0)))
- (and (text#= file/1' (tar.from_path actual_path/1))
- (binary#= content/1 (tar.data actual_content/1))))]
- (or <test>
- (let [[[actual_path/0 actual_content/0] [actual_path/1 actual_content/1]]
- [[actual_path/1 actual_content/1] [actual_path/0 actual_content/0]]]
- <test>)))
-
- _
- false)))
+ (pipe.case
+ (^ (list {tar.#Normal [actual_path/0 _ _ _ actual_content/0]}
+ {tar.#Normal [actual_path/1 _ _ _ actual_content/1]}))
+ (with_expansions [<test> (and (and (text#= file/0' (tar.from_path actual_path/0))
+ (binary#= content/0 (tar.data actual_content/0)))
+ (and (text#= file/1' (tar.from_path actual_path/1))
+ (binary#= content/1 (tar.data actual_content/1))))]
+ (or <test>
+ (let [[[actual_path/0 actual_content/0] [actual_path/1 actual_content/1]]
+ [[actual_path/1 actual_content/1] [actual_path/0 actual_content/0]]]
+ <test>)))
+
+ _
+ false)))
(try.else false)))
)))
))))
diff --git a/stdlib/source/test/lux/tool/compiler/meta/import.lux b/stdlib/source/test/lux/tool/compiler/meta/import.lux
index 7a24f9a82..e601614f6 100644
--- a/stdlib/source/test/lux/tool/compiler/meta/import.lux
+++ b/stdlib/source/test/lux/tool/compiler/meta/import.lux
@@ -5,7 +5,6 @@
[abstract
[monad {"+" do}]]
[control
- [pipe {"+" case>}]
["[0]" maybe ("[1]#[0]" functor)]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception]
diff --git a/stdlib/source/test/lux/tool/compiler/phase.lux b/stdlib/source/test/lux/tool/compiler/phase.lux
index f0137730a..19ec57c3c 100644
--- a/stdlib/source/test/lux/tool/compiler/phase.lux
+++ b/stdlib/source/test/lux/tool/compiler/phase.lux
@@ -8,7 +8,7 @@
["$[0]" functor {"+" Injection Comparison}]
["$[0]" monad]]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" try ("[1]#[0]" functor)]
["[0]" exception {"+" exception:}]]
[data
@@ -54,19 +54,19 @@
(_.cover [/.failure]
(|> (/.failure expected_error)
(/.result state)
- (case> {try.#Failure actual_error}
- (same? expected_error actual_error)
+ (pipe.case {try.#Failure actual_error}
+ (same? expected_error actual_error)
- _
- false)))
+ _
+ false)))
(_.cover [/.lifted]
(and (|> (/.lifted {try.#Failure expected_error})
(/.result state)
- (case> {try.#Failure actual_error}
- (same? expected_error actual_error)
+ (pipe.case {try.#Failure actual_error}
+ (same? expected_error actual_error)
- _
- false))
+ _
+ false))
(|> (/.lifted {try.#Success expected})
(# /.functor each (same? expected))
(/.result state)
@@ -74,26 +74,26 @@
(_.cover [/.except]
(|> (/.except ..oops [])
(/.result state)
- (case> {try.#Failure error}
- (exception.match? ..oops error)
+ (pipe.case {try.#Failure error}
+ (exception.match? ..oops error)
- _
- false)))
+ _
+ false)))
(_.cover [/.assertion]
(and (|> (/.assertion ..oops [] false)
(/.result state)
- (case> {try.#Failure error}
- (exception.match? ..oops error)
+ (pipe.case {try.#Failure error}
+ (exception.match? ..oops error)
- _
- false))
+ _
+ false))
(|> (/.assertion ..oops [] true)
(/.result state)
- (case> {try.#Success _}
- true
+ (pipe.case {try.#Success _}
+ true
- _
- false))))
+ _
+ false))))
)))
(def: test|state
@@ -125,12 +125,12 @@
(# n.hex encoded)
(text#= state/hex)))))
(/.result' state)
- (case> {try.#Success [state' verdict]}
- (and verdict
- (n.= state state'))
+ (pipe.case {try.#Success [state' verdict]}
+ (and verdict
+ (n.= state state'))
- _
- false)))
+ _
+ false)))
)))
(def: test|operation
@@ -147,20 +147,20 @@
(_.cover [/.result]
(|> (# /.monad in expected)
(/.result state)
- (case> {try.#Success actual}
- (same? expected actual)
+ (pipe.case {try.#Success actual}
+ (same? expected actual)
- _
- false)))
+ _
+ false)))
(_.cover [/.result']
(|> (# /.monad in expected)
(/.result' state)
- (case> {try.#Success [state' actual]}
- (and (same? state state')
- (same? expected actual))
+ (pipe.case {try.#Success [state' actual]}
+ (and (same? state state')
+ (same? expected actual))
- _
- false)))
+ _
+ false)))
..test|state
..test|error
)))
@@ -186,13 +186,13 @@
(# /.monad in (%.frac input)))))]
(|> (phase archive.empty expected)
(/.result' [state/0 state/1])
- (case> {try.#Success [[state/0' state/1'] actual]}
- (and (text#= (%.frac (i.frac expected)) actual)
- (same? state/0 state/0')
- (same? state/1 state/1'))
+ (pipe.case {try.#Success [[state/0' state/1'] actual]}
+ (and (text#= (%.frac (i.frac expected)) actual)
+ (same? state/0 state/0')
+ (same? state/1 state/1'))
- _
- false))))
+ _
+ false))))
)))
(def: .public test
diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/type.lux
index 0d20b2ddc..a9799f045 100644
--- a/stdlib/source/test/lux/type.lux
+++ b/stdlib/source/test/lux/type.lux
@@ -1,39 +1,39 @@
(.using
- [library
- [lux {"-" symbol}
- ["_" test {"+" Test}]
- [abstract
- ["[0]" monad {"+" do}]
- [\\specification
- ["$[0]" equivalence]]]
- [control
- [pipe {"+" case>}]
- ["[0]" maybe]]
- [data
- ["[0]" bit ("[1]#[0]" equivalence)]
- ["[0]" text ("[1]#[0]" equivalence)]
- [collection
- ["[0]" list]
- ["[0]" array]]]
- [macro
- ["[0]" code ("[1]#[0]" equivalence)]]
- [math
- ["[0]" random {"+" Random} ("[1]#[0]" monad)]
- [number
- ["n" nat]]]]]
- [\\library
- ["[0]" / ("[1]#[0]" equivalence)]]
- ["[0]" / "_"
- ["[1][0]" abstract]
- ["[1][0]" check]
- ["[1][0]" dynamic]
- ["[1][0]" implicit]
- ["[1][0]" poly]
- ["[1][0]" quotient]
- ["[1][0]" refinement]
- ["[1][0]" resource]
- ["[1][0]" unit]
- ["[1][0]" variance]])
+ [library
+ [lux {"-" symbol}
+ ["_" test {"+" Test}]
+ [abstract
+ ["[0]" monad {"+" do}]
+ [\\specification
+ ["$[0]" equivalence]]]
+ [control
+ ["[0]" pipe]
+ ["[0]" maybe]]
+ [data
+ ["[0]" bit ("[1]#[0]" equivalence)]
+ ["[0]" text ("[1]#[0]" equivalence)]
+ [collection
+ ["[0]" list]
+ ["[0]" array]]]
+ [macro
+ ["[0]" code ("[1]#[0]" equivalence)]]
+ [math
+ ["[0]" random {"+" Random} ("[1]#[0]" monad)]
+ [number
+ ["n" nat]]]]]
+ [\\library
+ ["[0]" / ("[1]#[0]" equivalence)]]
+ ["[0]" / "_"
+ ["[1][0]" abstract]
+ ["[1][0]" check]
+ ["[1][0]" dynamic]
+ ["[1][0]" implicit]
+ ["[1][0]" poly]
+ ["[1][0]" quotient]
+ ["[1][0]" refinement]
+ ["[1][0]" resource]
+ ["[1][0]" unit]
+ ["[1][0]" variance]])
(def: short
(Random Text)
@@ -80,8 +80,8 @@
($equivalence.spec /.equivalence (..random 0)))
(do [! random.monad]
- [anonymousT (random.only (|>> (case> {.#Named _ _} false
- _ true))
+ [anonymousT (random.only (|>> (pipe.case {.#Named _ _} false
+ _ true))
(..random 0))
symbol/0 ..symbol
symbol/1 ..symbol
@@ -125,7 +125,7 @@
full (/.applied (list Int) partial)]
(in (# /.equivalence = full {.#Product Bit Int}))))
(|> (/.applied (list Bit) Text)
- (case> {.#None} #1 _ #0))))
+ (pipe.case {.#None} #1 _ #0))))
(do [! random.monad]
[size (|> random.nat (# ! each (n.% 3)))
members (monad.all ! (list.repeated size (..random 0)))
diff --git a/stdlib/source/test/lux/type/check.lux b/stdlib/source/test/lux/type/check.lux
index a99a19f5d..04ab804ec 100644
--- a/stdlib/source/test/lux/type/check.lux
+++ b/stdlib/source/test/lux/type/check.lux
@@ -10,7 +10,7 @@
["$[0]" apply]
["$[0]" monad]]]
[control
- [pipe {"+" case>}]
+ ["[0]" pipe]
["[0]" function]
["[0]" try]
["[0]" exception {"+" exception:}]]
@@ -164,13 +164,13 @@
(and (|> (/.check <left> <right>)
(: (/.Check Any))
(/.result /.fresh_context)
- (case> {try.#Failure error} (? error)
- {try.#Success _} false))
+ (pipe.case {try.#Failure error} (? error)
+ {try.#Success _} false))
(|> (/.check <right> <left>)
(: (/.Check Any))
(/.result /.fresh_context)
- (case> {try.#Failure error} (? error)
- {try.#Success _} false)))))]
+ (pipe.case {try.#Failure error} (? error)
+ {try.#Success _} false)))))]
($_ _.and
(_.cover [/.type_check_failed]
(let [scenario (scenario (exception.match? /.type_check_failed))]
@@ -273,26 +273,26 @@
[[var_id var_type] /.var]
(/.peek var_id))
(/.result /.fresh_context)
- (case> {try.#Success {.#None}} true
- _ false))
+ (pipe.case {try.#Success {.#None}} true
+ _ false))
(|> (do /.monad
[[var_id var/0] /.var
[_ var/1] /.var
_ (/.check var/0 var/1)]
(/.peek var_id))
(/.result /.fresh_context)
- (case> {try.#Success {.#None}} true
- _ false))
+ (pipe.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}}
- (same? expected actual)
-
- _
- false)))))
+ (pipe.case {try.#Success {.#Some actual}}
+ (same? expected actual)
+
+ _
+ false)))))
(do random.monad
[nominal (random.ascii/upper 10)
.let [expected {.#Primitive nominal (list)}]]
@@ -364,11 +364,11 @@
(def: succeeds?
(All (_ a) (-> (/.Check a) Bit))
(|>> (/.result /.fresh_context)
- (case> {try.#Success _}
- true
+ (pipe.case {try.#Success _}
+ true
- {try.#Failure error}
- false)))
+ {try.#Failure error}
+ false)))
(def: fails?
(All (_ a) (-> (/.Check a) Bit))
diff --git a/stdlib/source/test/lux/type/poly/json.lux b/stdlib/source/test/lux/type/poly/json.lux
index 668b8ea21..16300a25d 100644
--- a/stdlib/source/test/lux/type/poly/json.lux
+++ b/stdlib/source/test/lux/type/poly/json.lux
@@ -13,7 +13,6 @@
["$[0]" equivalence]
["$[0]" codec]]]
[control
- pipe
["[0]" try]
["p" parser
... TODO: Get rid of this import ASAP
diff --git a/stdlib/source/test/lux/world/net/http/client.lux b/stdlib/source/test/lux/world/net/http/client.lux
index 919f7249e..3d4de1e0f 100644
--- a/stdlib/source/test/lux/world/net/http/client.lux
+++ b/stdlib/source/test/lux/world/net/http/client.lux
@@ -5,7 +5,7 @@
[abstract
[monad {"+" Monad do}]]
[control
- [pipe {"+" do>}]
+ ["[0]" pipe]
["[0]" io {"+" IO}]
["[0]" try {"+" Try}]
["[0]" function]
@@ -41,11 +41,11 @@
product.right
(the //.#body)
(function.on {.#None})
- (# ! each (|>> (do> try.monad
- []
- [product.right (# utf8.codec decoded)]
- [(# nat.decimal decoded)]
- [(nat.= expected) in])
+ (# ! each (|>> (pipe.do try.monad
+ []
+ [product.right (# utf8.codec decoded)]
+ [(# nat.decimal decoded)]
+ [(nat.= expected) in])
(try.else false))))
{try.#Failure error}
diff --git a/stdlib/source/test/lux/world/program.lux b/stdlib/source/test/lux/world/program.lux
index de559c620..d1696c608 100644
--- a/stdlib/source/test/lux/world/program.lux
+++ b/stdlib/source/test/lux/world/program.lux
@@ -1,32 +1,32 @@
(.using
- [library
- [lux "*"
- ["_" test {"+" Test}]
- [abstract
- [monad {"+" do}]]
- [control
- [pipe {"+" case>}]
- ["[0]" io]
- ["[0]" maybe ("[1]#[0]" functor)]
- ["[0]" try]
- ["[0]" exception]
- [parser
- [environment {"+" Environment}]]]
- [data
- ["[0]" text ("[1]#[0]" equivalence)]
- [collection
- ["[0]" dictionary]
- ["[0]" list]]]
- [math
- ["[0]" random {"+" Random}]
- [number
- ["n" nat]]]]]
- [\\library
- ["[0]" /
- [//
- [file {"+" Path}]]]]
- [\\specification
- ["$[0]" /]])
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [monad {"+" do}]]
+ [control
+ ["[0]" pipe]
+ ["[0]" io]
+ ["[0]" maybe ("[1]#[0]" functor)]
+ ["[0]" try]
+ ["[0]" exception]
+ [parser
+ [environment {"+" Environment}]]]
+ [data
+ ["[0]" text ("[1]#[0]" equivalence)]
+ [collection
+ ["[0]" dictionary]
+ ["[0]" list]]]
+ [math
+ ["[0]" random {"+" Random}]
+ [number
+ ["n" nat]]]]]
+ [\\library
+ ["[0]" /
+ [//
+ [file {"+" Path}]]]]
+ [\\specification
+ ["$[0]" /]])
(def: (environment env_size)
(-> Nat (Random Environment))
@@ -70,9 +70,9 @@
(|> unknown
(# program variable)
io.run!
- (case> {try.#Success _}
- false
-
- {try.#Failure error}
- (exception.match? /.unknown_environment_variable error)))))
+ (pipe.case {try.#Success _}
+ false
+
+ {try.#Failure error}
+ (exception.match? /.unknown_environment_variable error)))))
))))