aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorEduardo Julian2020-11-27 00:07:51 -0400
committerEduardo Julian2020-11-27 00:07:51 -0400
commit889139602b77e4387a6e8bfbedacc2a08703e976 (patch)
tree3a113e298037122e81b5529475bd1e59286f733f /stdlib
parentdbb658bd7976c073a2bf314f194b36b30c45784b (diff)
Re-named lux/data/format/context to lux/control/parser/environment.
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/source/lux/control/parser/environment.lux39
-rw-r--r--stdlib/source/lux/data/collection/set.lux6
-rw-r--r--stdlib/source/lux/data/format/context.lux45
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case.lux10
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux32
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/analysis/inference.lux18
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/analysis/reference.lux4
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/analysis/scope.lux16
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/analysis/structure.lux12
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/extension.lux4
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm.lux4
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux10
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/case.lux24
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/function.lux6
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/loop.lux4
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux21
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux8
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/php.lux4
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/python.lux8
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby.lux8
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux26
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux6
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/loop.lux4
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux28
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux8
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux16
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/case.lux56
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/function.lux38
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/loop.lux12
-rw-r--r--stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/variable.lux34
-rw-r--r--stdlib/source/lux/world/shell.lux24
-rw-r--r--stdlib/source/poly/lux/data/format/json.lux112
-rw-r--r--stdlib/source/program/aedifex.lux8
-rw-r--r--stdlib/source/program/aedifex/artifact.lux14
-rw-r--r--stdlib/source/program/aedifex/command/auto.lux23
-rw-r--r--stdlib/source/program/aedifex/command/build.lux40
-rw-r--r--stdlib/source/program/aedifex/command/deps.lux6
-rw-r--r--stdlib/source/program/aedifex/command/test.lux21
-rw-r--r--stdlib/source/program/aedifex/runtime.lux17
-rw-r--r--stdlib/source/spec/lux/world/shell.lux19
-rw-r--r--stdlib/source/test/aedifex.lux4
-rw-r--r--stdlib/source/test/aedifex/command/deps.lux4
-rw-r--r--stdlib/source/test/aedifex/input.lux16
-rw-r--r--stdlib/source/test/aedifex/runtime.lux28
-rw-r--r--stdlib/source/test/lux/control.lux30
-rw-r--r--stdlib/source/test/lux/control/concatenative.lux4
-rw-r--r--stdlib/source/test/lux/control/concurrency/actor.lux12
-rw-r--r--stdlib/source/test/lux/control/concurrency/frp.lux26
-rw-r--r--stdlib/source/test/lux/control/concurrency/semaphore.lux10
-rw-r--r--stdlib/source/test/lux/control/concurrency/stm.lux4
-rw-r--r--stdlib/source/test/lux/control/function/memo.lux12
-rw-r--r--stdlib/source/test/lux/control/function/mixin.lux6
-rw-r--r--stdlib/source/test/lux/control/parser.lux26
-rw-r--r--stdlib/source/test/lux/control/parser/environment.lux52
-rw-r--r--stdlib/source/test/lux/control/pipe.lux10
-rw-r--r--stdlib/source/test/lux/control/security/policy.lux12
-rw-r--r--stdlib/source/test/lux/control/try.lux8
-rw-r--r--stdlib/source/test/lux/locale/language.lux12
-rw-r--r--stdlib/source/test/lux/locale/territory.lux16
-rw-r--r--stdlib/source/test/lux/math.lux1
-rw-r--r--stdlib/source/test/lux/meta.lux20
-rw-r--r--stdlib/source/test/lux/meta/annotation.lux10
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux48
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux14
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux7
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/reference.lux16
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux36
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/extension/analysis/lux.lux6
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux26
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux38
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux10
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/primitive.lux10
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/structure.lux6
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux24
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux32
-rw-r--r--stdlib/source/test/lux/world/shell.lux102
76 files changed, 846 insertions, 647 deletions
diff --git a/stdlib/source/lux/control/parser/environment.lux b/stdlib/source/lux/control/parser/environment.lux
new file mode 100644
index 000000000..7f3630dd1
--- /dev/null
+++ b/stdlib/source/lux/control/parser/environment.lux
@@ -0,0 +1,39 @@
+(.module:
+ [lux #*
+ [control
+ ["." try (#+ Try)]
+ ["." exception (#+ exception:)]]
+ [data
+ ["." product]
+ ["." text
+ ["%" format (#+ format)]]
+ [collection
+ ["." dictionary (#+ Dictionary)]]]
+ [world
+ ["/" environment]]]
+ ["." //])
+
+(exception: #export (unknown {property /.Property})
+ (exception.report
+ ["Property" (%.text property)]))
+
+(type: #export (Parser a)
+ (//.Parser /.Environment a))
+
+(def: #export empty
+ /.Environment
+ (dictionary.new text.hash))
+
+(def: #export (property name)
+ (-> Text (Parser Text))
+ (function (_ environment)
+ (case (dictionary.get name environment)
+ (#.Some value)
+ (exception.return [environment value])
+
+ #.None
+ (exception.throw ..unknown name))))
+
+(def: #export (run parser environment)
+ (All [a] (-> (Parser a) /.Environment (Try a)))
+ (:: try.monad map product.right (parser environment)))
diff --git a/stdlib/source/lux/data/collection/set.lux b/stdlib/source/lux/data/collection/set.lux
index d874785b5..87117196d 100644
--- a/stdlib/source/lux/data/collection/set.lux
+++ b/stdlib/source/lux/data/collection/set.lux
@@ -60,8 +60,10 @@
(All [a] (Equivalence (Set a)))
(def: (= (^@ reference [hash _]) sample)
- (:: (list.equivalence (get@ #hash.&equivalence hash)) =
- (..to-list reference) (..to-list sample))))
+ (and (n.= (..size reference)
+ (..size sample))
+ (list.every? (..member? reference)
+ (..to-list sample)))))
(structure: #export hash
(All [a] (Hash (Set a)))
diff --git a/stdlib/source/lux/data/format/context.lux b/stdlib/source/lux/data/format/context.lux
deleted file mode 100644
index bc186f8b4..000000000
--- a/stdlib/source/lux/data/format/context.lux
+++ /dev/null
@@ -1,45 +0,0 @@
-(.module:
- [lux #*
- [abstract
- [monad (#+ do)]]
- [control
- [parser (#+ Parser)]
- ["." try (#+ Try)]
- ["ex" exception (#+ exception:)]]
- [data
- ["." text
- ["%" format (#+ format)]]
- [collection
- ["." dictionary (#+ Dictionary)]]]])
-
-(exception: #export (unknown-property {property Text})
- (ex.report ["Property" (%.text property)]))
-
-(type: #export Context
- (Dictionary Text Text))
-
-(type: #export (Property a)
- (Parser Context a))
-
-(def: #export empty
- Context
- (dictionary.new text.hash))
-
-(def: #export (property name)
- (-> Text (Property Text))
- (function (_ context)
- (case (dictionary.get name context)
- (#.Some value)
- (ex.return [context value])
-
- #.None
- (ex.throw unknown-property name))))
-
-(def: #export (run context property)
- (All [a] (-> Context (Property a) (Try a)))
- (case (property context)
- (#try.Success [_ output])
- (#try.Success output)
-
- (#try.Failure error)
- (#try.Failure error)))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case.lux
index b71d60f05..b550f9c5a 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case.lux
@@ -13,7 +13,7 @@
[text
["%" format (#+ format)]]
[collection
- ["." list ("#@." fold monoid functor)]]]
+ ["." list ("#\." fold monoid functor)]]]
["." type
["." check]]
["." meta]
@@ -125,7 +125,7 @@
(#.Product _)
(|> caseT
type.flatten-tuple
- (list@map (re-quantify envs))
+ (list\map (re-quantify envs))
type.tuple
(:: ///.monad wrap))
@@ -194,16 +194,16 @@
num-sub-patterns (list.size sub-patterns)
matches (cond (n.< num-subs num-sub-patterns)
(let [[prefix suffix] (list.split (dec num-sub-patterns) subs)]
- (list.zip/2 (list@compose prefix (list (type.tuple suffix))) sub-patterns))
+ (list.zip/2 (list\compose prefix (list (type.tuple suffix))) sub-patterns))
(n.> num-subs num-sub-patterns)
(let [[prefix suffix] (list.split (dec num-subs) sub-patterns)]
- (list.zip/2 subs (list@compose prefix (list (code.tuple suffix)))))
+ (list.zip/2 subs (list\compose prefix (list (code.tuple suffix)))))
## (n.= num-subs num-sub-patterns)
(list.zip/2 subs sub-patterns))]
(do !
- [[memberP+ thenA] (list@fold (: (All [a]
+ [[memberP+ thenA] (list\fold (: (All [a]
(-> [Type Code] (Operation [(List Pattern) a])
(Operation [(List Pattern) a])))
(function (_ [memberT memberC] then)
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux
index 9d1c396e9..adf935a89 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/case/coverage.lux
@@ -4,23 +4,23 @@
equivalence
["." monad (#+ do)]]
[control
- ["." try (#+ Try) ("#@." monad)]
+ ["." try (#+ Try) ("#\." monad)]
["ex" exception (#+ exception:)]]
[data
- ["." bit ("#@." equivalence)]
+ ["." bit ("#\." equivalence)]
["." maybe]
[number
["n" nat]]
["." text
["%" format (#+ Format format)]]
[collection
- ["." list ("#@." functor fold)]
+ ["." list ("#\." functor fold)]
["." dictionary (#+ Dictionary)]]]]
["." //// #_
[//
["/" analysis (#+ Pattern Variant Operation)]
[///
- ["#" phase ("#@." monad)]]]])
+ ["#" phase ("#\." monad)]]]])
(exception: #export (invalid-tuple-pattern)
"Tuple size must be >= 2")
@@ -76,7 +76,7 @@
(#Variant ?max-cases cases)
(|> cases
dictionary.entries
- (list@map (function (_ [idx coverage])
+ (list\map (function (_ [idx coverage])
(format (%.nat idx) " " (%coverage coverage))))
(text.join-with " ")
(text.enclose ["{" "}"])
@@ -97,13 +97,13 @@
(case pattern
(^or (#/.Simple #/.Unit)
(#/.Bind _))
- (////@wrap #Exhaustive)
+ (////\wrap #Exhaustive)
## Primitive patterns always have partial coverage because there
## are too many possibilities as far as values go.
(^template [<tag>]
[(#/.Simple (<tag> _))
- (////@wrap #Partial)])
+ (////\wrap #Partial)])
([#/.Nat]
[#/.Int]
[#/.Rev]
@@ -114,7 +114,7 @@
## "#0", which means it is possible for bit
## pattern-matching to become exhaustive if complementary parts meet.
(#/.Simple (#/.Bit value))
- (////@wrap (#Bit value))
+ (////\wrap (#Bit value))
## Tuple patterns can be exhaustive if there is exhaustiveness for all of
## their sub-patterns.
@@ -183,7 +183,7 @@
#1
[(#Bit sideR) (#Bit sideS)]
- (bit@= sideR sideS)
+ (bit\= sideR sideS)
[(#Variant allR casesR) (#Variant allS casesS)]
(and (n.= (cases allR)
@@ -219,12 +219,12 @@
(-> Coverage Coverage (Try Coverage))
(case [addition so-far]
[#Partial #Partial]
- (try@wrap #Partial)
+ (try\wrap #Partial)
## 2 bit coverages are exhaustive if they complement one another.
(^multi [(#Bit sideA) (#Bit sideSF)]
(xor sideA sideSF))
- (try@wrap #Exhaustive)
+ (try\wrap #Exhaustive)
[(#Variant allA casesA) (#Variant allSF casesSF)]
(let [addition-cases (cases allSF)
@@ -285,7 +285,7 @@
## The 2 sequences cannot possibly be merged.
[#0 #0]
- (try@wrap (#Alt so-far addition))
+ (try\wrap (#Alt so-far addition))
## There is nothing the addition adds to the coverage.
[#1 #1]
@@ -297,7 +297,7 @@
## The addition completes the coverage.
[#Exhaustive _]
- (try@wrap #Exhaustive)
+ (try\wrap #Exhaustive)
## The left part will always match, so the addition is redundant.
(^multi [(#Seq left right) single]
@@ -307,7 +307,7 @@
## The right part is not necessary, since it can always match the left.
(^multi [single (#Seq left right)]
(coverage/= left single))
- (try@wrap single)
+ (try\wrap single)
## When merging a new coverage against one based on Alt, it may be
## that one of the many coverages in the Alt is complementary to
@@ -356,7 +356,7 @@
#.None
(case (list.reverse possibilitiesSF)
(#.Cons last prevs)
- (wrap (list@fold (function (_ left right) (#Alt left right))
+ (wrap (list\fold (function (_ left right) (#Alt left right))
last
prevs))
@@ -368,4 +368,4 @@
## The addition cannot possibly improve the coverage.
(ex.throw redundant-pattern [so-far addition])
## There are now 2 alternative paths.
- (try@wrap (#Alt so-far addition)))))
+ (try\wrap (#Alt so-far addition)))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/inference.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/inference.lux
index 7c4d49340..c278c1065 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/inference.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/inference.lux
@@ -11,7 +11,7 @@
["." text
["%" format (#+ format)]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
["." type
["." check]]
["." meta]]
@@ -22,7 +22,7 @@
[//
["/" analysis (#+ Tag Analysis Operation Phase)]
[///
- ["#" phase ("#@." monad)]
+ ["#" phase ("#\." monad)]
[meta
[archive (#+ Archive)]]]]]])
@@ -60,7 +60,7 @@
(-> Nat Type Type Type)
(case type
(#.Primitive name params)
- (#.Primitive name (list@map (replace parameter-idx replacement) params))
+ (#.Primitive name (list\map (replace parameter-idx replacement) params))
(^template [<tag>]
[(<tag> left right)
@@ -78,7 +78,7 @@
(^template [<tag>]
[(<tag> env quantified)
- (<tag> (list@map (replace parameter-idx replacement) env)
+ (<tag> (list\map (replace parameter-idx replacement) env)
(replace (n.+ 2 parameter-idx) replacement quantified))])
([#.UnivQ]
[#.ExQ])
@@ -181,7 +181,7 @@
(function (recur base)
(case base
(#.Primitive name parameters)
- (#.Primitive name (list@map recur parameters))
+ (#.Primitive name (list\map recur parameters))
(^template [<tag>]
[(<tag> left right)
@@ -195,7 +195,7 @@
(^template [<tag>]
[(<tag> environment quantified)
- (<tag> (list@map recur environment) quantified)])
+ (<tag> (list\map recur environment) quantified)])
([#.UnivQ] [#.ExQ])
_
@@ -225,7 +225,7 @@
(/.throw ..invalid-type-application inferT))
(#.Product _)
- (///@wrap (|> inferT
+ (///\wrap (|> inferT
(type.function (type.flatten-tuple inferT))
(substitute-bound target originalT)))
@@ -264,7 +264,7 @@
(n.< boundary tag)))
(case (list.nth tag cases)
(#.Some caseT)
- (///@wrap (if (n.= 0 depth)
+ (///\wrap (if (n.= 0 depth)
(type.function (list caseT) currentT)
(let [replace' (replace (|> depth dec (n.* 2)) inferT)]
(type.function (list (replace' caseT))
@@ -278,7 +278,7 @@
(n.= boundary tag)
(let [caseT (type.variant (list.drop boundary cases))]
- (///@wrap (if (n.= 0 depth)
+ (///\wrap (if (n.= 0 depth)
(type.function (list caseT) currentT)
(let [replace' (replace (|> depth dec (n.* 2)) inferT)]
(type.function (list (replace' caseT))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/reference.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/reference.lux
index 72e47e33d..a0e141308 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/reference.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/reference.lux
@@ -6,7 +6,7 @@
["." exception (#+ exception:)]]
["." meta]
[data
- ["." text ("#@." equivalence)
+ ["." text ("#\." equivalence)
["%" format (#+ format)]]]]
["." // #_
["#." scope]
@@ -42,7 +42,7 @@
[_ (//type.infer actualT)
(^@ def-name [::module ::name]) (///extension.lift (meta.normalize def-name))
current (///extension.lift meta.current-module-name)]
- (if (text@= current ::module)
+ (if (text\= current ::module)
<return>
(if exported?
(do !
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/scope.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/scope.lux
index ffa635109..ef4ae5189 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/scope.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/scope.lux
@@ -6,11 +6,11 @@
["." try]
["ex" exception (#+ exception:)]]
[data
- ["." text ("#@." equivalence)]
- ["." maybe ("#@." monad)]
+ ["." text ("#\." equivalence)]
+ ["." maybe ("#\." monad)]
["." product]
[collection
- ["." list ("#@." functor fold monoid)]
+ ["." list ("#\." functor fold monoid)]
[dictionary
["." plist]]]]]
["." /// #_
@@ -36,7 +36,7 @@
(|> scope
(get@ [#.locals #.mappings])
(plist.get name)
- (maybe@map (function (_ [type value])
+ (maybe\map (function (_ [type value])
[type (#variable.Local value)]))))
(def: (captured? name scope)
@@ -51,7 +51,7 @@
mappings (get@ [#.captured #.mappings] scope)]
(case mappings
(#.Cons [_name [_source-type _source-ref]] mappings')
- (if (text@= name _name)
+ (if (text\= name _name)
(#.Some [_source-type (#variable.Foreign idx)])
(recur (inc idx) mappings'))
@@ -86,7 +86,7 @@
(#.Cons top-outer _)
(let [[ref-type init-ref] (maybe.default (undefined)
(..reference name top-outer))
- [ref inner'] (list@fold (: (-> Scope [Variable (List Scope)] [Variable (List Scope)])
+ [ref inner'] (list\fold (: (-> Scope [Variable (List Scope)] [Variable (List Scope)])
(function (_ scope ref+inner)
[(#variable.Foreign (get@ [#.captured #.counter] scope))
(#.Cons (update@ #.captured
@@ -97,7 +97,7 @@
(product.right ref+inner))]))
[init-ref #.Nil]
(list.reverse inner))
- scopes (list@compose inner' outer)]
+ scopes (list\compose inner' outer)]
(#.Right [(set@ #.scopes scopes state)
(#.Some [ref-type ref])]))
)))))
@@ -202,4 +202,4 @@
(-> Scope (List Variable))
(|> scope
(get@ [#.captured #.mappings])
- (list@map (function (_ [_ [_ ref]]) (ref-to-variable ref)))))
+ (list\map (function (_ [_ [_ ref]]) (ref-to-variable ref)))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/structure.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/structure.lux
index 03ce1c90b..848d0e96b 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/structure.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/analysis/structure.lux
@@ -14,7 +14,7 @@
[text
["%" format (#+ format)]]
[collection
- ["." list ("#@." functor)]
+ ["." list ("#\." functor)]
["." dictionary (#+ Dictionary)]]]
["." type
["." check]]
@@ -68,7 +68,7 @@
(template [<name>]
[(exception: #export (<name> {key Name} {record (List [Name Code])})
(ex.report ["Tag" (%.code (code.tag key))]
- ["Record" (%.code (code.record (list@map (function (_ [keyI valC])
+ ["Record" (%.code (code.record (list\map (function (_ [keyI valC])
[(code.tag keyI) valC])
record)))]))]
@@ -84,7 +84,7 @@
["Actual" (%.nat actual)]
["Type" (%.type type)]
["Expression" (%.code (|> record
- (list@map (function (_ [keyI valueC])
+ (list\map (function (_ [keyI valueC])
[(code.tag keyI) valueC]))
code.record))]))
@@ -219,8 +219,8 @@
membersC)
_ (//type.with-env
(check.check expectedT
- (type.tuple (list@map product.left membersTA))))]
- (wrap (/.tuple (list@map product.right membersTA))))))
+ (type.tuple (list\map product.left membersTA))))]
+ (wrap (/.tuple (list\map product.right membersTA))))))
(^template [<tag> <instancer>]
[(<tag> _)
@@ -329,7 +329,7 @@
(: (Dictionary Nat Code)
(dictionary.new n.hash))
record)
- #let [ordered-tuple (list@map (function (_ idx) (maybe.assume (dictionary.get idx idx->val)))
+ #let [ordered-tuple (list\map (function (_ idx) (maybe.assume (dictionary.get idx idx->val)))
tuple-range)]]
(wrap [ordered-tuple recordT]))
))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/extension.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/extension.lux
index 499ec7d37..9ec3d461c 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/extension.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/extension.lux
@@ -7,7 +7,7 @@
["s" code]]]
[data
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
["." meta (#+ with-gensyms)]
[macro
["." code]
@@ -42,7 +42,7 @@
(^ (list (~+ g!input+)))
(do ///.monad
[(~+ (|> g!input+
- (list@map (function (_ g!input)
+ (list\map (function (_ g!input)
(list g!input (` ((~ g!phase) (~ g!archive) (~ g!input))))))
list.concat))]
((~' wrap) ((~ g!extension) [(~+ g!input+)])))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm.lux
index c93bced64..47ad3ca78 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm.lux
@@ -17,14 +17,14 @@
["." synthesis]
[///
["." reference]
- ["#" phase ("#@." monad)]]]]])
+ ["#" phase ("#\." monad)]]]]])
(def: #export (generate archive synthesis)
Phase
(case synthesis
(^template [<tag> <generator>]
[(^ (<tag> value))
- (///@wrap (<generator> value))])
+ (///\wrap (<generator> value))])
([synthesis.bit /primitive.bit]
[synthesis.i64 /primitive.i64]
[synthesis.f64 /primitive.f64]
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux
index d5ebb3fdc..b13e1c63f 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/jvm/host.lux
@@ -13,7 +13,7 @@
[data
[binary (#+ Binary)]
["." product]
- ["." text ("#@." hash)
+ ["." text ("#\." hash)
["%" format (#+ format)]]
[collection
["." array]
@@ -25,7 +25,7 @@
[jvm
["." loader (#+ Library)]
["_" bytecode (#+ Bytecode)]
- ["." modifier (#+ Modifier) ("#@." monoid)]
+ ["." modifier (#+ Modifier) ("#\." monoid)]
["." field (#+ Field)]
["." method (#+ Method)]
["." version]
@@ -54,10 +54,10 @@
(def: value::field "value")
(def: value::type (type.class "java.lang.Object" (list)))
-(def: value::modifier ($_ modifier@compose field.public field.final field.static))
+(def: value::modifier ($_ modifier\compose field.public field.final field.static))
(def: init::type (type.method [(list) type.void (list)]))
-(def: init::modifier ($_ modifier@compose method.public method.static method.strict))
+(def: init::modifier ($_ modifier\compose method.public method.static method.strict))
(exception: #export (cannot-load {class Text} {error Text})
(exception.report
@@ -136,7 +136,7 @@
(-> Library java/lang/ClassLoader Name (Bytecode Any) (Try [Text Any Definition]))
(let [class-name (format (text.replace-all .module-separator class-path-separator module)
class-path-separator (name.normalize name)
- "___" (%.nat (text@hash name)))]
+ "___" (%.nat (text\hash name)))]
(do try.monad
[[value definition] (evaluate! library loader class-name valueG)]
(wrap [class-name value definition]))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/case.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/case.lux
index f13750e56..b1861b93a 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/case.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/case.lux
@@ -7,7 +7,7 @@
[data
["." text]
[collection
- ["." list ("#@." functor fold)]
+ ["." list ("#\." functor fold)]
["." set]]]
[target
["_" lua (#+ Expression Var Statement)]]]
@@ -24,7 +24,7 @@
["/#" // #_
["/#" // #_
[reference (#+ Register)]
- ["#." phase ("#@." monad)]
+ ["#." phase ("#\." monad)]
[meta
[archive (#+ Archive)]]]]]]]])
@@ -49,7 +49,7 @@
(Generator [Synthesis (List (Either Nat Nat))])
(do ///////phase.monad
[valueO (generate archive valueS)]
- (wrap (list@fold (function (_ side source)
+ (wrap (list\fold (function (_ side source)
(.let [method (.case side
(^template [<side> <accessor>]
[(<side> lefts)
@@ -135,17 +135,17 @@
(-> Phase Archive Path (Operation Statement))
(.case pathP
(^ (/////synthesis.path/then bodyS))
- (///////phase@map _.return (generate archive bodyS))
+ (///////phase\map _.return (generate archive bodyS))
#/////synthesis.Pop
- (///////phase@wrap ..pop!)
+ (///////phase\wrap ..pop!)
(#/////synthesis.Bind register)
- (///////phase@wrap (_.let (list (..register register)) ..peek))
+ (///////phase\wrap (_.let (list (..register register)) ..peek))
(^template [<tag> <format>]
[(^ (<tag> value))
- (///////phase@wrap (_.when (|> value <format> (_.= ..peek) _.not)
+ (///////phase\wrap (_.when (|> value <format> (_.= ..peek) _.not)
fail!))])
([/////synthesis.path/bit //primitive.bit]
[/////synthesis.path/i64 //primitive.i64]
@@ -154,28 +154,28 @@
(^template [<complex> <simple> <choice>]
[(^ (<complex> idx))
- (///////phase@wrap (<choice> false idx))
+ (///////phase\wrap (<choice> false idx))
(^ (<simple> idx nextP))
(|> nextP
(pattern-matching' generate archive)
- (///////phase@map (_.then (<choice> true idx))))])
+ (///////phase\map (_.then (<choice> true idx))))])
([/////synthesis.side/left /////synthesis.simple-left-side ..left-choice]
[/////synthesis.side/right /////synthesis.simple-right-side ..right-choice])
(^ (/////synthesis.member/left 0))
- (///////phase@wrap (|> ..peek (_.nth (_.int +1)) ..push!))
+ (///////phase\wrap (|> ..peek (_.nth (_.int +1)) ..push!))
(^template [<pm> <getter>]
[(^ (<pm> lefts))
- (///////phase@wrap (|> ..peek (<getter> (_.int (.int lefts))) ..push!))])
+ (///////phase\wrap (|> ..peek (<getter> (_.int (.int lefts))) ..push!))])
([/////synthesis.member/left //runtime.tuple//left]
[/////synthesis.member/right //runtime.tuple//right])
(^ (/////synthesis.!bind-top register thenP))
(do ///////phase.monad
[then! (pattern-matching' generate archive thenP)]
- (///////phase@wrap ($_ _.then
+ (///////phase\wrap ($_ _.then
(_.let (list (..register register)) ..peek-and-pop)
then!)))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/function.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/function.lux
index 8f9a4ce74..98c60d243 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/function.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/function.lux
@@ -7,7 +7,7 @@
[data
["." product]
[collection
- ["." list ("#@." functor fold)]]]
+ ["." list ("#\." functor fold)]]]
[target
["_" lua (#+ Expression Statement)]]]
["." // #_
@@ -49,7 +49,7 @@
[@closure (:: ! map _.var (/////generation.gensym "closure"))
#let [directive (_.function @closure
(|> (list.enumeration inits)
- (list@map (|>> product.left ..capture)))
+ (list\map (|>> product.left ..capture)))
($_ _.then
function-definition
(_.return (_.var function-name))))]
@@ -77,7 +77,7 @@
@num-args (_.var "num_args")
@self (_.var function-name)
initialize-self! (_.let (list (//case.register 0)) @self)
- initialize! (list@fold (.function (_ post pre!)
+ initialize! (list\fold (.function (_ post pre!)
($_ _.then
pre!
(_.let (list (..input post)) (_.nth (|> post inc .int _.int) @curried))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/loop.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/loop.lux
index f65883c4c..e04186c17 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/loop.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/loop.lux
@@ -9,7 +9,7 @@
[text
["%" format (#+ format)]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
[target
["_" lua (#+ Expression Var)]]]
["." // #_
@@ -34,7 +34,7 @@
(generate archive bodyS))
#let [directive (_.function @loop (|> initsS+
list.enumeration
- (list@map (|>> product.left (n.+ start) //case.register)))
+ (list\map (|>> product.left (n.+ start) //case.register)))
(_.return bodyO))]
_ (/////generation.execute! directive)
_ (/////generation.save! (_.code @loop) directive)]
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux
index e62faf9c6..c34a998a4 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/runtime.lux
@@ -12,7 +12,7 @@
["." text
["%" format (#+ format)]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
["." macro
["." code]
[syntax (#+ syntax:)]]
@@ -96,7 +96,7 @@
(syntax: #export (with-vars {vars (s.tuple (p.some s.local-identifier))}
body)
(wrap (list (` (let [(~+ (|> vars
- (list@map (function (_ var)
+ (list\map (function (_ var)
(list (code.local-identifier var)
(` (_.var (~ (code.text (///reference.sanitize var))))))))
list.concat))]
@@ -124,8 +124,8 @@
(let [nameC (code.local-identifier name)
code-nameC (code.local-identifier (format "@" name))
runtime-nameC (` (runtime-name (~ (code.text name))))
- inputsC (list@map code.local-identifier inputs)
- inputs-typesC (list@map (function.constant (` (_.Expression Any)))
+ inputsC (list\map code.local-identifier inputs)
+ inputs-typesC (list\map (function.constant (` (_.Expression Any)))
inputs)]
(wrap (list (` (def: #export ((~ nameC) (~+ inputsC))
(-> (~+ inputs-typesC) (Computation Any))
@@ -233,7 +233,8 @@
@tuple//right
@sum//get
@array//copy
- @array//concat))
+ @array//concat
+ ))
(runtime: (lux//try risky)
(with-vars [success value]
@@ -258,7 +259,8 @@
Statement
($_ _.then
@lux//try
- @lux//program-args))
+ @lux//program-args
+ ))
(runtime: (i64//logic-right-shift param subject)
(let [mask (|> (_.int +1)
@@ -306,7 +308,8 @@
($_ _.then
@text//index
@text//clip
- @text//char))
+ @text//char
+ ))
(runtime: (array//new size)
(with-vars [output idx]
@@ -345,7 +348,9 @@
(def: runtime//box
Statement
- @box//write)
+ ($_ _.then
+ @box//write
+ ))
(def: runtime
Statement
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux
index d06034686..0d96fe6df 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/lua/structure.lux
@@ -11,13 +11,13 @@
[analysis (#+ Variant Tuple)]
["#." synthesis (#+ Synthesis)]
["//#" /// #_
- ["#." phase ("#@." monad)]]]])
+ ["#." phase ("#\." monad)]]]])
(def: #export (tuple generate archive elemsS+)
(Generator (Tuple Synthesis))
(case elemsS+
#.Nil
- (///////phase@wrap (//primitive.text /////synthesis.unit))
+ (///////phase\wrap (//primitive.text /////synthesis.unit))
(#.Cons singletonS #.Nil)
(generate archive singletonS)
@@ -25,12 +25,12 @@
_
(|> elemsS+
(monad.map ///////phase.monad (generate archive))
- (///////phase@map _.array))))
+ (///////phase\map _.array))))
(def: #export (variant generate archive [lefts right? valueS])
(Generator (Variant Synthesis))
(let [tag (if right?
(inc lefts)
lefts)]
- (///////phase@map (//runtime.variant tag right?)
+ (///////phase\map (//runtime.variant tag right?)
(generate archive valueS))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/php.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/php.lux
index ad04cefdb..975301cef 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/php.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/php.lux
@@ -6,7 +6,7 @@
[runtime (#+ Phase)]
["." primitive]
["." structure]
- ["." reference ("#@." system)]
+ ["." reference ("#\." system)]
["." case]
["." loop]
["." function]
@@ -34,7 +34,7 @@
(structure.tuple generate members)
(#synthesis.Reference value)
- (reference@reference value)
+ (reference\reference value)
(^ (synthesis.branch/case case))
(case.case generate case)
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/python.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/python.lux
index f2bfbd4d5..defe15b33 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/python.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/python.lux
@@ -6,7 +6,7 @@
[runtime (#+ Phase)]
["#." primitive]
["#." structure]
- ["#." reference ("#@." system)]
+ ["#." reference ("#\." system)]
["#." function]
["#." case]
["#." loop]
@@ -16,14 +16,14 @@
[analysis (#+)]
["#." synthesis]
["//#" /// #_
- ["#." phase ("#@." monad)]]]]])
+ ["#." phase ("#\." monad)]]]]])
(def: #export (generate archive synthesis)
Phase
(case synthesis
(^template [<tag> <generator>]
[(^ (<tag> value))
- (//////phase@wrap (<generator> value))])
+ (//////phase\wrap (<generator> value))])
([////synthesis.bit /primitive.bit]
[////synthesis.i64 /primitive.i64]
[////synthesis.f64 /primitive.f64]
@@ -36,7 +36,7 @@
(/structure.tuple generate archive members)
(#////synthesis.Reference value)
- (/reference@reference archive value)
+ (/reference\reference archive value)
(^ (////synthesis.branch/case case))
(/case.case generate archive case)
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby.lux
index f2bfbd4d5..defe15b33 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby.lux
@@ -6,7 +6,7 @@
[runtime (#+ Phase)]
["#." primitive]
["#." structure]
- ["#." reference ("#@." system)]
+ ["#." reference ("#\." system)]
["#." function]
["#." case]
["#." loop]
@@ -16,14 +16,14 @@
[analysis (#+)]
["#." synthesis]
["//#" /// #_
- ["#." phase ("#@." monad)]]]]])
+ ["#." phase ("#\." monad)]]]]])
(def: #export (generate archive synthesis)
Phase
(case synthesis
(^template [<tag> <generator>]
[(^ (<tag> value))
- (//////phase@wrap (<generator> value))])
+ (//////phase\wrap (<generator> value))])
([////synthesis.bit /primitive.bit]
[////synthesis.i64 /primitive.i64]
[////synthesis.f64 /primitive.f64]
@@ -36,7 +36,7 @@
(/structure.tuple generate archive members)
(#////synthesis.Reference value)
- (/reference@reference archive value)
+ (/reference\reference archive value)
(^ (////synthesis.branch/case case))
(/case.case generate archive case)
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux
index 921769c00..bd85ca44a 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/case.lux
@@ -10,7 +10,7 @@
["n" nat]
["i" int]]
[collection
- ["." list ("#@." functor fold)]
+ ["." list ("#\." functor fold)]
["." set]]]
[target
["_" ruby (#+ Expression Statement)]]]
@@ -27,7 +27,7 @@
["#." generation]
["//#" /// #_
["#." reference (#+ Register)]
- ["#." phase ("#@." monad)]
+ ["#." phase ("#\." monad)]
[meta
[archive (#+ Archive)]]]]]]])
@@ -52,7 +52,7 @@
(Generator [Synthesis (List (Either Nat Nat))])
(do ///////phase.monad
[valueO (generate archive valueS)]
- (wrap (list@fold (function (_ side source)
+ (wrap (list\fold (function (_ side source)
(.let [method (.case side
(^template [<side> <accessor>]
[(<side> lefts)
@@ -139,17 +139,17 @@
(-> Phase Archive Path (Operation (Statement Any)))
(.case pathP
(^ (/////synthesis.path/then bodyS))
- (///////phase@map _.return (generate archive bodyS))
+ (///////phase\map _.return (generate archive bodyS))
#/////synthesis.Pop
- (///////phase@wrap ..pop!)
+ (///////phase\wrap ..pop!)
(#/////synthesis.Bind register)
- (///////phase@wrap (_.set (list (..register register)) ..peek))
+ (///////phase\wrap (_.set (list (..register register)) ..peek))
(^template [<tag> <format>]
[(^ (<tag> value))
- (///////phase@wrap (_.when (|> value <format> (_.= ..peek) _.not)
+ (///////phase\wrap (_.when (|> value <format> (_.= ..peek) _.not)
fail!))])
([/////synthesis.path/bit //primitive.bit]
[/////synthesis.path/i64 //primitive.i64]
@@ -158,28 +158,28 @@
(^template [<complex> <simple> <choice>]
[(^ (<complex> idx))
- (///////phase@wrap (<choice> false idx))
+ (///////phase\wrap (<choice> false idx))
(^ (<simple> idx nextP))
(|> nextP
(pattern-matching' generate archive)
- (///////phase@map (_.then (<choice> true idx))))])
+ (///////phase\map (_.then (<choice> true idx))))])
([/////synthesis.side/left /////synthesis.simple-left-side ..left-choice]
[/////synthesis.side/right /////synthesis.simple-right-side ..right-choice])
(^ (/////synthesis.member/left 0))
- (///////phase@wrap (|> ..peek (_.nth (_.int +0)) ..push!))
+ (///////phase\wrap (|> ..peek (_.nth (_.int +0)) ..push!))
(^template [<pm> <getter>]
[(^ (<pm> lefts))
- (///////phase@wrap (|> ..peek (<getter> (_.int (.int lefts))) ..push!))])
+ (///////phase\wrap (|> ..peek (<getter> (_.int (.int lefts))) ..push!))])
([/////synthesis.member/left //runtime.tuple//left]
[/////synthesis.member/right //runtime.tuple//right])
(^ (/////synthesis.!bind-top register thenP))
(do ///////phase.monad
[then! (pattern-matching' generate archive thenP)]
- (///////phase@wrap ($_ _.then
+ (///////phase\wrap ($_ _.then
(_.set (list (..register register)) ..peek-and-pop)
then!)))
@@ -187,7 +187,7 @@
(.let [[extra-pops nextP'] (case.count-pops nextP)]
(do ///////phase.monad
[next! (pattern-matching' generate archive nextP')]
- (///////phase@wrap ($_ _.then
+ (///////phase\wrap ($_ _.then
(..multi-pop! (n.+ 2 extra-pops))
next!))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
index df8fccb33..942829635 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
@@ -7,7 +7,7 @@
[data
["." product]
[collection
- ["." list ("#@." functor fold)]]]
+ ["." list ("#\." functor fold)]]]
[target
["_" ruby (#+ Expression Statement)]]]
["." // #_
@@ -46,7 +46,7 @@
_.return
(_.lambda #.None
(|> (list.enumeration inits)
- (list@map (|>> product.left ..capture))))
+ (list\map (|>> product.left ..capture))))
(_.do "call" inits))))
(def: input
@@ -70,7 +70,7 @@
@num-args (_.local "num_args")
@self (_.local function-name)
initialize-self! (_.set (list (//case.register 0)) @self)
- initialize! (list@fold (.function (_ post pre!)
+ initialize! (list\fold (.function (_ post pre!)
($_ _.then
pre!
(_.set (list (..input post)) (_.nth (|> post .int _.int) @curried))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/loop.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/loop.lux
index c9c68139c..42d048ed5 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/loop.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/loop.lux
@@ -9,7 +9,7 @@
[text
["%" format (#+ format)]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
[target
["_" ruby (#+ Expression LVar)]]]
["." // #_
@@ -36,7 +36,7 @@
(_.lambda (#.Some @loop)
(|> initsS+
list.enumeration
- (list@map (|>> product.left (n.+ start) //case.register))))
+ (list\map (|>> product.left (n.+ start) //case.register))))
(_.apply/* initsO+)))))
(def: #export (recur generate archive argsS+)
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux
index eda4d8a60..221442863 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/runtime.lux
@@ -12,7 +12,7 @@
["." text
["%" format (#+ format)]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
["." macro
["." code]
[syntax (#+ syntax:)]]
@@ -94,7 +94,7 @@
(syntax: #export (with-vars {vars (s.tuple (p.some s.local-identifier))}
body)
(wrap (list (` (let [(~+ (|> vars
- (list@map (function (_ var)
+ (list\map (function (_ var)
(list (code.local-identifier var)
(` (_.local (~ (code.text (///reference.sanitize var))))))))
list.concat))]
@@ -122,8 +122,8 @@
(let [nameC (code.local-identifier name)
code-nameC (code.local-identifier (format "@" name))
runtime-nameC (` (runtime-name (~ (code.text name))))
- inputsC (list@map code.local-identifier inputs)
- inputs-typesC (list@map (function.constant (` (_.Expression Any)))
+ inputsC (list\map code.local-identifier inputs)
+ inputs-typesC (list\map (function.constant (` (_.Expression Any)))
inputs)]
(wrap (list (` (def: #export ((~ nameC) (~+ inputsC))
(-> (~+ inputs-typesC) (Computation Any))
@@ -199,7 +199,8 @@
($_ _.then
@tuple//left
@tuple//right
- @sum//get))
+ @sum//get
+ ))
(runtime: (lux//try risky)
(with-vars [error value]
@@ -221,7 +222,8 @@
(Statement Any)
($_ _.then
@lux//try
- @lux//program-args))
+ @lux//program-args
+ ))
(runtime: (i64//logic-right-shift param subject)
(let [mask (|> (_.int +1)
@@ -233,7 +235,9 @@
(def: runtime//i64
(Statement Any)
- @i64//logic-right-shift)
+ ($_ _.then
+ @i64//logic-right-shift
+ ))
(runtime: (f64//decode inputG)
(with-vars [@input @temp]
@@ -250,7 +254,9 @@
(def: runtime//f64
(Statement Any)
- @f64//decode)
+ ($_ _.then
+ @f64//decode
+ ))
(runtime: (text//index subject param start)
(with-vars [idx]
@@ -278,7 +284,8 @@
($_ _.then
@text//index
@text//clip
- @text//char))
+ @text//char
+ ))
(def: runtime
(Statement Any)
@@ -290,7 +297,8 @@
runtime//text
))
-(def: #export artifact ..prefix)
+(def: #export artifact
+ ..prefix)
(def: #export generate
(Operation (Buffer (Statement Any)))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux
index d8eba5932..e8d192326 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/ruby/structure.lux
@@ -11,13 +11,13 @@
[analysis (#+ Variant Tuple)]
["#." synthesis (#+ Synthesis)]
["//#" /// #_
- ["#." phase ("#@." monad)]]]])
+ ["#." phase ("#\." monad)]]]])
(def: #export (tuple generate archive elemsS+)
(Generator (Tuple Synthesis))
(case elemsS+
#.Nil
- (///////phase@wrap (//primitive.text /////synthesis.unit))
+ (///////phase\wrap (//primitive.text /////synthesis.unit))
(#.Cons singletonS #.Nil)
(generate archive singletonS)
@@ -25,12 +25,12 @@
_
(|> elemsS+
(monad.map ///////phase.monad (generate archive))
- (///////phase@map _.array))))
+ (///////phase\map _.array))))
(def: #export (variant generate archive [lefts right? valueS])
(Generator (Variant Synthesis))
(let [tag (if right?
(inc lefts)
lefts)]
- (///////phase@map (//runtime.variant tag right?)
+ (///////phase\map (//runtime.variant tag right?)
(generate archive valueS))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux
index a6f3b3760..b25ac6bed 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/generation/scheme/case.lux
@@ -8,7 +8,7 @@
["." number]
["." text]
[collection
- ["." list ("#@." functor fold)]]]
+ ["." list ("#\." functor fold)]]]
[target
["_" scheme (#+ Expression Computation Var)]]]
["." // #_
@@ -16,7 +16,7 @@
["#." primitive]
["#/" // #_
["#." reference]
- ["#/" // ("#@." monad)
+ ["#/" // ("#\." monad)
["#/" // #_
[reference (#+ Register)]
["#." synthesis (#+ Synthesis Path)]]]]])
@@ -38,7 +38,7 @@
(Operation Expression))
(do ////.monad
[valueO (generate valueS)]
- (wrap (list@fold (function (_ side source)
+ (wrap (list\fold (function (_ side source)
(.let [method (.case side
(^template [<side> <accessor>]
[(<side> lefts)
@@ -109,14 +109,14 @@
(generate bodyS)
#/////synthesis.Pop
- (////@wrap pop-cursor!)
+ (////\wrap pop-cursor!)
(#/////synthesis.Bind register)
- (////@wrap (_.define-constant (..register register) ..cursor-top))
+ (////\wrap (_.define-constant (..register register) ..cursor-top))
(^template [<tag> <format> <=>]
[(^ (<tag> value))
- (////@wrap (_.when (|> value <format> (<=> cursor-top) _.not/1)
+ (////\wrap (_.when (|> value <format> (<=> cursor-top) _.not/1)
fail-pm!))])
([/////synthesis.path/bit //primitive.bit _.eqv?/2]
[/////synthesis.path/i64 (<| //primitive.i64 .int) _.=/2]
@@ -125,7 +125,7 @@
(^template [<pm> <flag> <prep>]
[(^ (<pm> idx))
- (////@wrap (_.let (list [@temp (|> idx <prep> .int _.int (//runtime.sum//get cursor-top <flag>))])
+ (////\wrap (_.let (list [@temp (|> idx <prep> .int _.int (//runtime.sum//get cursor-top <flag>))])
(_.if (_.null?/1 @temp)
fail-pm!
(push-cursor! @temp))))])
@@ -134,7 +134,7 @@
(^template [<pm> <getter>]
[(^ (<pm> idx))
- (////@wrap (push-cursor! (<getter> (_.int (.int idx)) cursor-top)))])
+ (////\wrap (push-cursor! (<getter> (_.int (.int idx)) cursor-top)))])
([/////synthesis.member/left //runtime.tuple//left]
[/////synthesis.member/right //runtime.tuple//right])
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/case.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/case.lux
index 448c37b02..ff740e751 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/case.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/case.lux
@@ -7,21 +7,21 @@
[pipe (#+ when> new> case>)]]
[data
["." product]
- ["." bit ("#@." equivalence)]
- ["." text ("#@." equivalence)]
+ ["." bit ("#\." equivalence)]
+ ["." text ("#\." equivalence)]
[number
["." i64]
["n" nat]
- ["." frac ("#@." equivalence)]]
+ ["." frac ("#\." equivalence)]]
[collection
- ["." list ("#@." functor fold monoid)]
+ ["." list ("#\." functor fold monoid)]
["." set (#+ Set)]]]]
["." /// #_
[//
["#." analysis (#+ Pattern Match Analysis)]
["/" synthesis (#+ Path Synthesis Operation Phase)]
[///
- ["#" phase ("#@." monad)]
+ ["#" phase ("#\." monad)]
["#." reference
["#/." variable (#+ Register Variable)]]
[meta
@@ -40,13 +40,13 @@
thenC
(#///analysis.Bit when)
- (///@map (function (_ then)
+ (///\map (function (_ then)
(#/.Bit-Fork when then #.None))
thenC)
(^template [<from> <to> <conversion>]
[(<from> test)
- (///@map (function (_ then)
+ (///\map (function (_ then)
(<to> [(<conversion> test) then] (list)))
thenC)])
([#///analysis.Nat #/.I64-Fork .i64]
@@ -61,16 +61,16 @@
thenC)
(#///analysis.Complex (#///analysis.Variant [lefts right? value-pattern]))
- (<| (///@map (|>> (#/.Seq (#/.Access (#/.Side (if right?
+ (<| (///\map (|>> (#/.Seq (#/.Access (#/.Side (if right?
(#.Right lefts)
(#.Left lefts)))))))
(path' value-pattern end?)
- (when> [(new> (not end?) [])] [(///@map ..clean-up)])
+ (when> [(new> (not end?) [])] [(///\map ..clean-up)])
thenC)
(#///analysis.Complex (#///analysis.Tuple tuple))
(let [tuple::last (dec (list.size tuple))]
- (list@fold (function (_ [tuple::lefts tuple::member] nextC)
+ (list\fold (function (_ [tuple::lefts tuple::member] nextC)
(.case tuple::member
(#///analysis.Simple #///analysis.Unit)
nextC
@@ -78,11 +78,11 @@
_
(let [right? (n.= tuple::last tuple::lefts)
end?' (and end? right?)]
- (<| (///@map (|>> (#/.Seq (#/.Access (#/.Member (if right?
+ (<| (///\map (|>> (#/.Seq (#/.Access (#/.Member (if right?
(#.Right (dec tuple::lefts))
(#.Left tuple::lefts)))))))
(path' tuple::member end?')
- (when> [(new> (not end?') [])] [(///@map ..clean-up)])
+ (when> [(new> (not end?') [])] [(///\map ..clean-up)])
nextC))))
thenC
(list.reverse (list.enumeration tuple))))
@@ -90,7 +90,7 @@
(def: (path archive synthesize pattern bodyA)
(-> Archive Phase Pattern Analysis (Operation Path))
- (path' pattern true (///@map (|>> #/.Then) (synthesize archive bodyA))))
+ (path' pattern true (///\map (|>> #/.Then) (synthesize archive bodyA))))
(def: (weave-branch weave equivalence [new-test new-then] [[old-test old-then] old-tail])
(All [a] (-> (-> Path Path Path) (Equivalence a) [a Path] (/.Fork a Path)
@@ -108,7 +108,7 @@
(def: (weave-fork weave equivalence new-fork old-fork)
(All [a] (-> (-> Path Path Path) (Equivalence a) (/.Fork a Path) (/.Fork a Path)
(/.Fork a Path)))
- (list@fold (..weave-branch weave equivalence) old-fork (#.Cons new-fork)))
+ (list\fold (..weave-branch weave equivalence) old-fork (#.Cons new-fork)))
(def: (weave new old)
(-> Path Path Path)
@@ -133,7 +133,7 @@
[(#/.Bit-Fork new-when new-then new-else)
(#/.Bit-Fork old-when old-then old-else)]
- (if (bit@= new-when old-when)
+ (if (bit\= new-when old-when)
(#/.Bit-Fork old-when
(weave new-then old-then)
(case [new-else old-else]
@@ -226,7 +226,7 @@
(do {! ///.monad}
[headSP (path archive synthesize headP headA)
tailSP+ (monad.map ! (product.uncurry (path archive synthesize)) tailPA+)]
- (wrap (/.branch/case [input (list@fold weave headSP tailSP+)]))))
+ (wrap (/.branch/case [input (list\fold weave headSP tailSP+)]))))
(template: (!masking <variable> <output>)
[[(#///analysis.Bind <variable>)
@@ -243,7 +243,7 @@
(def: #export (synthesize-masking synthesize archive input @variable @output)
(-> Phase Archive Synthesis Register Register (Operation Synthesis))
(if (n.= @variable @output)
- (///@wrap input)
+ (///\wrap input)
(..synthesize-let synthesize archive input @variable (#///analysis.Reference (///reference.local @output)))))
(def: #export (synthesize-if synthesize archive test then else)
@@ -267,10 +267,10 @@
path
(case input
(^ (/.branch/get [sub-path sub-input]))
- (///@wrap (/.branch/get [(list@compose path sub-path) sub-input]))
+ (///\wrap (/.branch/get [(list\compose path sub-path) sub-input]))
_
- (///@wrap (/.branch/get [path input])))))
+ (///\wrap (/.branch/get [path input])))))
(def: #export (synthesize synthesize^ [headB tailB+] archive inputA)
(-> Phase Match Phase)
@@ -341,7 +341,7 @@
(^or (^ (/.path/seq left right))
(^ (/.path/alt left right)))
- (list@fold for-path path-storage (list left right))
+ (list\fold for-path path-storage (list left right))
(^ (/.path/then bodyS))
(loop for-synthesis
@@ -352,7 +352,7 @@
(for-synthesis valueS synthesis-storage)
(^ (/.tuple members))
- (list@fold for-synthesis synthesis-storage members)
+ (list\fold for-synthesis synthesis-storage members)
(#/.Reference (#///reference.Variable var))
(if (set.member? (get@ #bindings synthesis-storage) var)
@@ -360,31 +360,31 @@
(update@ #dependencies (set.add var) synthesis-storage))
(^ (/.function/apply [functionS argsS]))
- (list@fold for-synthesis synthesis-storage (#.Cons functionS argsS))
+ (list\fold for-synthesis synthesis-storage (#.Cons functionS argsS))
(^ (/.function/abstraction [environment arity bodyS]))
- (list@fold for-synthesis synthesis-storage environment)
+ (list\fold for-synthesis synthesis-storage environment)
(^ (/.branch/let [inputS register exprS]))
- (list@fold for-synthesis
+ (list\fold for-synthesis
(update@ #bindings (set.add (#///reference/variable.Local register))
synthesis-storage)
(list inputS exprS))
(^ (/.branch/if [testS thenS elseS]))
- (list@fold for-synthesis synthesis-storage (list testS thenS elseS))
+ (list\fold for-synthesis synthesis-storage (list testS thenS elseS))
(^ (/.branch/case [inputS pathS]))
(|> synthesis-storage (for-synthesis inputS) (for-path pathS))
(^ (/.loop/scope [start initsS+ iterationS]))
- (list@fold for-synthesis synthesis-storage (#.Cons iterationS initsS+))
+ (list\fold for-synthesis synthesis-storage (#.Cons iterationS initsS+))
(^ (/.loop/recur replacementsS+))
- (list@fold for-synthesis synthesis-storage replacementsS+)
+ (list\fold for-synthesis synthesis-storage replacementsS+)
(#/.Extension [extension argsS])
- (list@fold for-synthesis synthesis-storage argsS)
+ (list\fold for-synthesis synthesis-storage argsS)
_
synthesis-storage))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/function.lux
index 864001655..2831b2605 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/function.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/function.lux
@@ -7,13 +7,13 @@
[pipe (#+ case>)]
["." exception (#+ exception:)]]
[data
- ["." maybe ("#@." functor)]
+ ["." maybe ("#\." functor)]
["." text
["%" format (#+ format)]]
[number
["n" nat]]
[collection
- ["." list ("#@." functor monoid fold)]]]]
+ ["." list ("#\." functor monoid fold)]]]]
["." // #_
["#." loop (#+ Transform)]
["//#" /// #_
@@ -23,7 +23,7 @@
[arity (#+ Arity)]
["#." reference
["#/." variable (#+ Register Variable)]]
- ["." phase ("#@." monad)]]]])
+ ["." phase ("#\." monad)]]]])
(exception: #export (cannot-find-foreign-variable-in-environment {foreign Register} {environment (Environment Synthesis)})
(exception.report
@@ -34,7 +34,7 @@
(-> Arity (List Synthesis))
(|>> dec
(enum.range n.enum 1)
- (list@map (|>> /.variable/local))))
+ (list\map (|>> /.variable/local))))
(template: #export (self-reference)
(/.variable/local 0))
@@ -59,7 +59,7 @@
[locals /.locals]
(wrap (|> functionS
(//loop.optimization true locals argsS)
- (maybe@map (: (-> [Nat (List Synthesis) Synthesis] Synthesis)
+ (maybe\map (: (-> [Nat (List Synthesis) Synthesis] Synthesis)
(function (_ [start inits iteration])
(case iteration
(^ (/.loop/scope [start' inits' output]))
@@ -74,7 +74,7 @@
(wrap <apply>))
(^ (/.function/apply [funcS' argsS']))
- (wrap (/.function/apply [funcS' (list@compose argsS' argsS)]))
+ (wrap (/.function/apply [funcS' (list\compose argsS' argsS)]))
_
(wrap <apply>)))))))
@@ -83,7 +83,7 @@
(-> (Environment Synthesis) Register (Operation Synthesis))
(case (list.nth register environment)
(#.Some aliased)
- (phase@wrap aliased)
+ (phase\wrap aliased)
#.None
(phase.throw ..cannot-find-foreign-variable-in-environment [register environment])))
@@ -92,7 +92,7 @@
(-> (-> Synthesis (Operation Synthesis)) Path (Operation Path))
(case path
(#/.Bind register)
- (phase@wrap (#/.Bind (inc register)))
+ (phase\wrap (#/.Bind (inc register)))
(^template [<tag>]
[(<tag> left right)
@@ -130,10 +130,10 @@
(#/.Then thenS)
(|> thenS
grow
- (phase@map (|>> #/.Then)))
+ (phase\map (|>> #/.Then)))
_
- (phase@wrap path)))
+ (phase\wrap path)))
(def: (grow environment expression)
(-> (Environment Synthesis) Synthesis (Operation Synthesis))
@@ -143,28 +143,28 @@
(#////analysis.Variant [lefts right? subS])
(|> subS
(grow environment)
- (phase@map (|>> [lefts right?] /.variant)))
+ (phase\map (|>> [lefts right?] /.variant)))
(#////analysis.Tuple membersS+)
(|> membersS+
(monad.map phase.monad (grow environment))
- (phase@map (|>> /.tuple))))
+ (phase\map (|>> /.tuple))))
(^ (..self-reference))
- (phase@wrap (/.function/apply [expression (list (/.variable/local 1))]))
+ (phase\wrap (/.function/apply [expression (list (/.variable/local 1))]))
(#/.Reference reference)
(case reference
(#////reference.Variable variable)
(case variable
(#////reference/variable.Local register)
- (phase@wrap (/.variable/local (inc register)))
+ (phase\wrap (/.variable/local (inc register)))
(#////reference/variable.Foreign register)
(..find-foreign environment register))
(#////reference.Constant constant)
- (phase@wrap expression))
+ (phase\wrap expression))
(#/.Control control)
(case control
@@ -205,7 +205,7 @@
(#/.Recur argumentsS+)
(|> argumentsS+
(monad.map phase.monad (grow environment))
- (phase@map (|>> /.loop/recur))))
+ (phase\map (|>> /.loop/recur))))
(#/.Function function)
(case function
@@ -227,7 +227,7 @@
(wrap (/.function/apply (case funcS
(^ (/.function/apply [(..self-reference) pre-argsS+]))
[(..self-reference)
- (list@compose pre-argsS+ argsS+)]
+ (list\compose pre-argsS+ argsS+)]
_
[funcS
@@ -236,10 +236,10 @@
(#/.Extension name argumentsS+)
(|> argumentsS+
(monad.map phase.monad (grow environment))
- (phase@map (|>> (#/.Extension name))))
+ (phase\map (|>> (#/.Extension name))))
(#/.Primitive _)
- (phase@wrap expression)))
+ (phase\wrap expression)))
(def: #export (abstraction phase environment archive bodyA)
(-> Phase (Environment Analysis) Phase)
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/loop.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
index f2559460a..3c99cdef9 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
@@ -3,7 +3,7 @@
[abstract
["." monad (#+ do)]]
[data
- ["." maybe ("#@." monad)]
+ ["." maybe ("#\." monad)]
[number
["n" nat]]
[collection
@@ -66,7 +66,7 @@
(#/.Then body)
(|> body
body-optimization
- (maybe@map (|>> #/.Then)))
+ (maybe\map (|>> #/.Then)))
_
(#.Some path))))
@@ -91,7 +91,7 @@
(#analysis.Tuple tuple)
(|> tuple
(monad.map maybe.monad (recur false))
- (maybe@map (|>> /.tuple))))
+ (maybe\map (|>> /.tuple))))
(#/.Reference reference)
(case reference
@@ -148,7 +148,7 @@
(^ (/.loop/recur args))
(|> args
(monad.map maybe.monad (recur false))
- (maybe@map (|>> /.loop/recur)))
+ (maybe\map (|>> /.loop/recur)))
(^ (/.function/abstraction [environment arity body]))
(do {! maybe.monad}
@@ -176,10 +176,10 @@
(#/.Extension [name args])
(|> args
(monad.map maybe.monad (recur false))
- (maybe@map (|>> [name] #/.Extension))))))
+ (maybe\map (|>> [name] #/.Extension))))))
(def: #export (optimization true-loop? offset inits functionS)
(-> Bit Register (List Synthesis) Abstraction (Maybe [Register (List Synthesis) Synthesis]))
(|> (get@ #/.body functionS)
(body-optimization true-loop? offset (get@ #/.environment functionS) (get@ #/.arity functionS))
- (maybe@map (|>> [offset inits]))))
+ (maybe\map (|>> [offset inits]))))
diff --git a/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/variable.lux b/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
index c18c26246..4055f70e7 100644
--- a/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
+++ b/stdlib/source/lux/tool/compiler/language/lux/phase/synthesis/variable.lux
@@ -7,14 +7,14 @@
["." exception (#+ exception:)]]
[data
["." product]
- ["." maybe ("#@." functor)]
+ ["." maybe ("#\." functor)]
[number
["n" nat]]
["." text
["%" format]]
[collection
["." dictionary (#+ Dictionary)]
- ["." list ("#@." functor fold)]
+ ["." list ("#\." functor fold)]
["." set]]]]
[////
["/" synthesis (#+ Path Synthesis)]
@@ -69,12 +69,12 @@
[#/.Alt])
(#/.Bit-Fork when then else)
- (#/.Bit-Fork when (recur then) (maybe@map recur else))
+ (#/.Bit-Fork when (recur then) (maybe\map recur else))
(^template [<tag>]
[(<tag> [[test then] tail])
(<tag> [[test (recur then)]
- (list@map (function (_ [test' then'])
+ (list\map (function (_ [test' then'])
[test' (recur then')])
tail)])])
([#/.I64-Fork]
@@ -114,7 +114,7 @@
(#analysis.Variant [lefts right (recur value)])
(#analysis.Tuple tuple)
- (#analysis.Tuple (list@map recur tuple))))
+ (#analysis.Tuple (list\map recur tuple))))
(#/.Reference reference)
(case reference
@@ -146,24 +146,24 @@
(#/.Loop (case loop
(#/.Scope [start inits iteration])
(#/.Scope [(..prune redundant start)
- (list@map recur inits)
+ (list\map recur inits)
(recur iteration)])
(#/.Recur resets)
- (#/.Recur (list@map recur resets))))
+ (#/.Recur (list\map recur resets))))
(#/.Function function)
(#/.Function (case function
(#/.Abstraction [environment arity body])
- (#/.Abstraction [(list@map recur environment)
+ (#/.Abstraction [(list\map recur environment)
arity
body])
(#/.Apply abstraction inputs)
- (#/.Apply (recur abstraction) (list@map recur inputs))))))
+ (#/.Apply (recur abstraction) (list\map recur inputs))))))
(#/.Extension name inputs)
- (#/.Extension name (list@map recur inputs)))))
+ (#/.Extension name (list\map recur inputs)))))
(type: Redundancy
(Dictionary Register Bit))
@@ -177,9 +177,9 @@
(def: (extended offset amount redundancy)
(-> Register Nat Redundancy [(List Register) Redundancy])
- (let [extension (|> amount list.indices (list@map (n.+ offset)))]
+ (let [extension (|> amount list.indices (list\map (n.+ offset)))]
[extension
- (list@fold (function (_ register redundancy)
+ (list\fold (function (_ register redundancy)
(dictionary.put register ..necessary! redundancy))
redundancy
extension)]))
@@ -237,7 +237,7 @@
(%.Format Redundancy)
(|> redundancy
dictionary.entries
- (list@map (function (_ [register redundant?])
+ (list\map (function (_ [register redundant?])
(%.format (%.nat register) ": " (%.bit redundant?))))
(text.join-with ", ")))
@@ -307,11 +307,11 @@
(list.filter (function (_ [register redundant?])
(and (set.member? bindings register)
redundant?)))
- (list@map product.left))]]
- (wrap [(list@fold dictionary.remove redundancy (set.to-list bindings))
+ (list\map product.left))]]
+ (wrap [(list\fold dictionary.remove redundancy (set.to-list bindings))
(|> redundants
(list.sort n.>)
- (list@fold (..remove-local-from-path ..remove-local) (#/.Seq pre post)))]))
+ (list\fold (..remove-local-from-path ..remove-local) (#/.Seq pre post)))]))
(#/.Then then)
(do try.monad
@@ -403,7 +403,7 @@
[[redundancy inits] (..list-optimization optimization' [redundancy inits])
#let [[extension redundancy] (..extended start (list.size inits) redundancy)]
[redundancy iteration] (optimization' [redundancy iteration])]
- (wrap [(list@fold dictionary.remove redundancy extension)
+ (wrap [(list\fold dictionary.remove redundancy extension)
(#/.Control (#/.Loop (#/.Scope [start inits iteration])))]))
(#/.Recur resets)
diff --git a/stdlib/source/lux/world/shell.lux b/stdlib/source/lux/world/shell.lux
index 70e6bd8a0..ea177db2c 100644
--- a/stdlib/source/lux/world/shell.lux
+++ b/stdlib/source/lux/world/shell.lux
@@ -10,7 +10,7 @@
["." io (#+ IO)]
[security
["!" capability (#+ capability:)]
- ["?" policy (#+ Safety Safe)]]
+ ["?" policy (#+ Context Safety Safe)]]
[concurrency
["." stm (#+ Var STM)]
["." promise (#+ Promise) ("#@." monad)]]]
@@ -21,12 +21,12 @@
["." text
["%" format (#+ format)]
["." encoding]]
- [format
- ["." context (#+ Context)]]
[collection
["." array (#+ Array)]
["." list ("#@." fold functor)]
- ["." dictionary]]]])
+ ["." dictionary]]]]
+ [//
+ [environment (#+ Environment)]])
(capability: #export (Can-Read !)
(can-read [] (! (Try Text))))
@@ -40,9 +40,14 @@
(type: #export Exit
Int)
-(def: #export normal
- Exit
- +0)
+(template [<code> <name>]
+ [(def: #export <name>
+ Exit
+ <code>)]
+
+ [+0 normal]
+ [+1 error]
+ )
(capability: #export (Can-Wait !)
(can-wait [] (! (Try Exit))))
@@ -75,9 +80,6 @@
[await ..can-wait]
)))))
-(type: #export Environment
- Context)
-
(type: #export Command
Text)
@@ -146,7 +148,7 @@
(def: (policy sanitize-command sanitize-argument)
(Ex [?] (-> (Sanitizer Command) (Sanitizer Argument) (Policy ?)))
(?.with-policy
- (: (?.Context Safety Policy)
+ (: (Context Safety Policy)
(function (_ (^open "?@."))
(structure
(def: command (|>> sanitize-command (!.use ?@can-upgrade)))
diff --git a/stdlib/source/poly/lux/data/format/json.lux b/stdlib/source/poly/lux/data/format/json.lux
index 15c8c5906..719817b3b 100644
--- a/stdlib/source/poly/lux/data/format/json.lux
+++ b/stdlib/source/poly/lux/data/format/json.lux
@@ -5,12 +5,10 @@
[equivalence (#+ Equivalence)]
["." codec]]
[control
- ["e" try]
- ["p" parser
+ ["." try]
+ ["<>" parser
["<.>" type]
- ["</>" json]
- ["l" text]
- ["s" code]]]
+ ["</>" json]]]
[data
["." bit]
maybe
@@ -66,7 +64,7 @@
(|> low .int int.frac #/.Number)))))
(def: decode
(</>.run (</>.array
- (do p.monad
+ (do <>.monad
[high </>.number
low </>.number]
(wrap (n.+ (|> high frac.int .nat (i64.left-shift 32))
@@ -77,7 +75,7 @@
(def: encode (|>> .nat (:: nat-codec encode)))
(def: decode
- (|>> (:: nat-codec decode) (:: e.functor map .int))))
+ (|>> (:: nat-codec decode) (:: try.functor map .int))))
(def: (nullable writer)
{#.doc "Builds a JSON generator for potentially inexistent values."}
@@ -94,9 +92,9 @@
(def: encode
(|>> unit.out (:: ..int-codec encode)))
(def: decode
- (|>> (:: ..int-codec decode) (:: e.functor map unit.in))))
+ (|>> (:: ..int-codec decode) (:: try.functor map unit.in))))
-(poly: #export codec\encode
+(poly: encode
(with-expansions
[<basic> (template [<matcher> <encoder>]
[(do !
@@ -122,28 +120,28 @@
[date.Date date.codec]
[day.Day day.codec]
[month.Month month.codec])]
- (do {! p.monad}
+ (do {! <>.monad}
[*env* <type>.env
#let [@JSON\encode (: (-> Type Code)
(function (_ type)
(` (-> (~ (poly.to-code *env* type)) /.JSON))))]
inputT <type>.peek]
- ($_ p.either
+ ($_ <>.either
<basic>
<time>
(do !
- [unitT (<type>.apply (p.after (<type>.exactly unit.Qty)
- <type>.any))]
+ [unitT (<type>.apply (<>.after (<type>.exactly unit.Qty)
+ <type>.any))]
(wrap (` (: (~ (@JSON\encode inputT))
(:: (~! qty-codec) (~' encode))))))
(do !
[#let [g!_ (code.local-identifier "_______")
g!key (code.local-identifier "_______key")
g!val (code.local-identifier "_______val")]
- [_ _ =val=] (<type>.apply ($_ p.and
+ [_ _ =val=] (<type>.apply ($_ <>.and
(<type>.exactly d.Dictionary)
(<type>.exactly .Text)
- codec\encode))]
+ encode))]
(wrap (` (: (~ (@JSON\encode inputT))
(|>> ((~! d.entries))
((~! list\map) (function ((~ g!_) [(~ g!key) (~ g!val)])
@@ -151,21 +149,21 @@
((~! d.from-list) (~! text.hash))
#/.Object)))))
(do !
- [[_ =sub=] (<type>.apply ($_ p.and
+ [[_ =sub=] (<type>.apply ($_ <>.and
(<type>.exactly .Maybe)
- codec\encode))]
+ encode))]
(wrap (` (: (~ (@JSON\encode inputT))
((~! ..nullable) (~ =sub=))))))
(do !
- [[_ =sub=] (<type>.apply ($_ p.and
+ [[_ =sub=] (<type>.apply ($_ <>.and
(<type>.exactly .List)
- codec\encode))]
+ encode))]
(wrap (` (: (~ (@JSON\encode inputT))
(|>> ((~! list\map) (~ =sub=)) ((~! row.from-list)) #/.Array)))))
(do !
[#let [g!_ (code.local-identifier "_______")
g!input (code.local-identifier "_______input")]
- members (<type>.variant (p.many codec\encode))
+ members (<type>.variant (<>.many encode))
#let [last (dec (list.size members))]]
(wrap (` (: (~ (@JSON\encode inputT))
(function ((~ g!_) (~ g!input))
@@ -182,7 +180,7 @@
((~ g!encode) (~ g!input))])))))
(list.enumeration members))))))))))
(do !
- [g!encoders (<type>.tuple (p.many codec\encode))
+ [g!encoders (<type>.tuple (<>.many encode))
#let [g!_ (code.local-identifier "_______")
g!members (|> (list.size g!encoders)
list.indices
@@ -194,7 +192,7 @@
(list.zip/2 g!members g!encoders)))]))))))
## Type recursion
(do !
- [[selfC non-recC] (<type>.recursive codec\encode)
+ [[selfC non-recC] (<type>.recursive encode)
#let [g! (code.local-identifier "____________")]]
(wrap (` (: (~ (@JSON\encode inputT))
((~! ..rec-encode) (.function ((~ g!) (~ selfC))
@@ -202,11 +200,11 @@
<type>.recursive-self
## Type applications
(do !
- [partsC (<type>.apply (p.many codec\encode))]
+ [partsC (<type>.apply (<>.many encode))]
(wrap (` ((~+ partsC)))))
## Polymorphism
(do !
- [[funcC varsC bodyC] (<type>.polymorphic codec\encode)]
+ [[funcC varsC bodyC] (<type>.polymorphic encode)]
(wrap (` (: (All [(~+ varsC)]
(-> (~+ (list\map (function (_ varC) (` (-> (~ varC) /.JSON)))
varsC))
@@ -217,10 +215,10 @@
<type>.parameter
<type>.recursive-call
## If all else fails...
- (p.fail (format "Cannot create JSON encoder for: " (type.format inputT)))
+ (<>.fail (format "Cannot create JSON encoder for: " (type.format inputT)))
))))
-(poly: #export codec\decode
+(poly: decode
(with-expansions
[<basic> (template [<matcher> <decoder>]
[(do !
@@ -230,87 +228,87 @@
[(<type>.exactly Any) </>.null]
[(<type>.sub Bit) </>.boolean]
- [(<type>.sub Nat) (p.codec ..nat-codec </>.any)]
- [(<type>.sub Int) (p.codec ..int-codec </>.any)]
+ [(<type>.sub Nat) (<>.codec ..nat-codec </>.any)]
+ [(<type>.sub Int) (<>.codec ..int-codec </>.any)]
[(<type>.sub Frac) </>.number]
[(<type>.sub Text) </>.string])
<time> (template [<type> <codec>]
[(do !
[_ (<type>.exactly <type>)]
(wrap (` (: (~ (@JSON\decode inputT))
- ((~! p.codec) (~! <codec>) (~! </>.string))))))]
+ ((~! <>.codec) (~! <codec>) (~! </>.string))))))]
## [duration.Duration duration.codec]
## [instant.Instant instant.codec]
[date.Date date.codec]
[day.Day day.codec]
[month.Month month.codec])]
- (do {! p.monad}
+ (do {! <>.monad}
[*env* <type>.env
#let [@JSON\decode (: (-> Type Code)
(function (_ type)
(` (</>.Parser (~ (poly.to-code *env* type))))))]
inputT <type>.peek]
- ($_ p.either
+ ($_ <>.either
<basic>
<time>
(do !
- [unitT (<type>.apply (p.after (<type>.exactly unit.Qty)
- <type>.any))]
+ [unitT (<type>.apply (<>.after (<type>.exactly unit.Qty)
+ <type>.any))]
(wrap (` (: (~ (@JSON\decode inputT))
- ((~! p.codec) (~! qty-codec) (~! </>.any))))))
+ ((~! <>.codec) (~! qty-codec) (~! </>.any))))))
(do !
- [[_ _ valC] (<type>.apply ($_ p.and
+ [[_ _ valC] (<type>.apply ($_ <>.and
(<type>.exactly d.Dictionary)
(<type>.exactly .Text)
- codec\decode))]
+ decode))]
(wrap (` (: (~ (@JSON\decode inputT))
((~! </>.dictionary) (~ valC))))))
(do !
- [[_ subC] (<type>.apply (p.and (<type>.exactly .Maybe)
- codec\decode))]
+ [[_ subC] (<type>.apply (<>.and (<type>.exactly .Maybe)
+ decode))]
(wrap (` (: (~ (@JSON\decode inputT))
((~! </>.nullable) (~ subC))))))
(do !
- [[_ subC] (<type>.apply (p.and (<type>.exactly .List)
- codec\decode))]
+ [[_ subC] (<type>.apply (<>.and (<type>.exactly .List)
+ decode))]
(wrap (` (: (~ (@JSON\decode inputT))
- ((~! </>.array) ((~! p.some) (~ subC)))))))
+ ((~! </>.array) ((~! <>.some) (~ subC)))))))
(do !
- [members (<type>.variant (p.many codec\decode))
+ [members (<type>.variant (<>.many decode))
#let [last (dec (list.size members))]]
(wrap (` (: (~ (@JSON\decode inputT))
- ($_ ((~! p.or))
+ ($_ ((~! <>.or))
(~+ (list\map (function (_ [tag memberC])
(if (n.= last tag)
(` (|> (~ memberC)
- ((~! p.after) ((~! </>.boolean!) (~ (code.bit #1))))
- ((~! p.after) ((~! </>.number!) (~ (code.frac (..tag (dec tag))))))
+ ((~! <>.after) ((~! </>.boolean!) (~ (code.bit #1))))
+ ((~! <>.after) ((~! </>.number!) (~ (code.frac (..tag (dec tag))))))
((~! </>.array))))
(` (|> (~ memberC)
- ((~! p.after) ((~! </>.boolean!) (~ (code.bit #0))))
- ((~! p.after) ((~! </>.number!) (~ (code.frac (..tag tag)))))
+ ((~! <>.after) ((~! </>.boolean!) (~ (code.bit #0))))
+ ((~! <>.after) ((~! </>.number!) (~ (code.frac (..tag tag)))))
((~! </>.array))))))
(list.enumeration members))))))))
(do !
- [g!decoders (<type>.tuple (p.many codec\decode))]
+ [g!decoders (<type>.tuple (<>.many decode))]
(wrap (` (: (~ (@JSON\decode inputT))
- ((~! </>.array) ($_ ((~! p.and)) (~+ g!decoders)))))))
+ ((~! </>.array) ($_ ((~! <>.and)) (~+ g!decoders)))))))
## Type recursion
(do !
- [[selfC bodyC] (<type>.recursive codec\decode)
+ [[selfC bodyC] (<type>.recursive decode)
#let [g! (code.local-identifier "____________")]]
(wrap (` (: (~ (@JSON\decode inputT))
- ((~! p.rec) (.function ((~ g!) (~ selfC))
- (~ bodyC)))))))
+ ((~! <>.rec) (.function ((~ g!) (~ selfC))
+ (~ bodyC)))))))
<type>.recursive-self
## Type applications
(do !
- [[funcC argsC] (<type>.apply (p.and codec\decode (p.many codec\decode)))]
+ [[funcC argsC] (<type>.apply (<>.and decode (<>.many decode)))]
(wrap (` ((~ funcC) (~+ argsC)))))
## Polymorphism
(do !
- [[funcC varsC bodyC] (<type>.polymorphic codec\decode)]
+ [[funcC varsC bodyC] (<type>.polymorphic decode)]
(wrap (` (: (All [(~+ varsC)]
(-> (~+ (list\map (|>> (~) </>.Parser (`)) varsC))
(</>.Parser ((~ (poly.to-code *env* inputT)) (~+ varsC)))))
@@ -319,7 +317,7 @@
<type>.parameter
<type>.recursive-call
## If all else fails...
- (p.fail (format "Cannot create JSON decoder for: " (type.format inputT)))
+ (<>.fail (format "Cannot create JSON decoder for: " (type.format inputT)))
))))
(syntax: #export (codec inputT)
@@ -342,7 +340,7 @@
(derived: (..codec Record)))}
(wrap (list (` (: (codec.Codec /.JSON (~ inputT))
(structure (def: (~' encode)
- (..codec\encode (~ inputT)))
+ ((~! ..encode) (~ inputT)))
(def: (~' decode)
- ((~! </>.run) (..codec\decode (~ inputT))))
+ ((~! </>.run) ((~! ..decode) (~ inputT))))
))))))
diff --git a/stdlib/source/program/aedifex.lux b/stdlib/source/program/aedifex.lux
index 6f98c7651..bc8f75ee0 100644
--- a/stdlib/source/program/aedifex.lux
+++ b/stdlib/source/program/aedifex.lux
@@ -43,7 +43,7 @@
["#." cache]
["#." repository (#+ Address Repository)]
["#." dependency #_
- ["#" resolution]]
+ ["#" resolution (#+ Resolution)]]
["#." command (#+ Command)
["#/." clean]
["#/." pom]
@@ -61,10 +61,10 @@
(list\map (|>> /repository.remote /repository.async))))
(def: (with-dependencies command profile)
- (All [a] (-> (Command a) (Command a)))
+ (All [a] (-> (-> (file.System Promise) Resolution (Command a)) (Command a)))
(do /action.monad
- [_ (/command/deps.do! (file.async file.default) (..repositories profile) profile)]
- (command profile)))
+ [resolution (/command/deps.do! (file.async file.default) (..repositories profile) profile)]
+ (command (file.async file.default) resolution profile)))
(exception: (cannot-find-repository {repository Text}
{options (Dictionary Text Address)})
diff --git a/stdlib/source/program/aedifex/artifact.lux b/stdlib/source/program/aedifex/artifact.lux
index c29cc7b2d..84e7839f8 100644
--- a/stdlib/source/program/aedifex/artifact.lux
+++ b/stdlib/source/program/aedifex/artifact.lux
@@ -1,7 +1,7 @@
(.module:
[lux (#- Name)
[abstract
- ["." equivalence (#+ Equivalence)]
+ [equivalence (#+ Equivalence)]
["." hash (#+ Hash)]]
[data
["." text
@@ -27,14 +27,6 @@
#name Name
#version Version})
-(def: #export equivalence
- (Equivalence Artifact)
- ($_ equivalence.product
- text.equivalence
- text.equivalence
- text.equivalence
- ))
-
(def: #export hash
(Hash Artifact)
($_ hash.product
@@ -43,6 +35,10 @@
text.hash
))
+(def: #export equivalence
+ (Equivalence Artifact)
+ (:: ..hash &equivalence))
+
(template [<separator> <definition>]
[(def: <definition>
Text
diff --git a/stdlib/source/program/aedifex/command/auto.lux b/stdlib/source/program/aedifex/command/auto.lux
index 0fc223376..80ff8ac8c 100644
--- a/stdlib/source/program/aedifex/command/auto.lux
+++ b/stdlib/source/program/aedifex/command/auto.lux
@@ -7,19 +7,21 @@
["." try (#+ Try)]
["." io (#+ IO)]
[concurrency
- ["." promise]]]
+ ["." promise (#+ Promise)]]]
[data
[collection
["." array]
["." list]
["." set]]]
[world
- [file (#+ Path)]]]
+ ["." file (#+ Path)]]]
["." // #_
["/#" // #_
["#" profile]
["#." action (#+ Action)]
- ["#." command (#+ Command)]]])
+ ["#." command (#+ Command)]
+ [dependency
+ [resolution (#+ Resolution)]]]])
(import: java/nio/file/WatchKey
["#::."
@@ -124,18 +126,21 @@
#.None
(wrap []))))
-(def: #export (do! command profile)
- (All [a] (-> (Command a) (Command Any)))
+(def: #export (do! command fs resolution profile)
+ (All [a]
+ (-> (-> (file.System Promise) Resolution (Command a))
+ (-> (file.System Promise) Resolution (Command Any))))
(do {! ///action.monad}
- [#let [fs (java/nio/file/FileSystems::getDefault)]
- watcher (promise.future (java/nio/file/FileSystem::newWatchService fs))
+ [watcher (promise.future
+ (java/nio/file/FileSystem::newWatchService
+ (java/nio/file/FileSystems::getDefault)))
targets (|> profile
(get@ #///.sources)
set.to-list
(monad.map ! ..targets)
(:: ! map list.concat))
_ (monad.map ! (..watch! watcher) targets)
- _ (command profile)]
+ _ (command fs resolution profile)]
(loop [_ []]
(do !
[?key (..poll! watcher)
@@ -143,7 +148,7 @@
(#.Some key)
(do !
[_ (promise.future (..drain! watcher))
- _ (command profile)]
+ _ (command fs resolution profile)]
(wrap []))
#.None
diff --git a/stdlib/source/program/aedifex/command/build.lux b/stdlib/source/program/aedifex/command/build.lux
index b3a096ea8..72f96b25e 100644
--- a/stdlib/source/program/aedifex/command/build.lux
+++ b/stdlib/source/program/aedifex/command/build.lux
@@ -8,7 +8,7 @@
["." exception (#+ exception:)]
["." io (#+ IO)]
[concurrency
- ["." promise ("#@." monad)]]]
+ ["." promise (#+ Promise) ("#@." monad)]]]
[data
["." product]
["." maybe]
@@ -27,9 +27,10 @@
["#." local]
["#." cache]
["#." repository]
+ ["#." shell]
+ ["#." runtime]
["#." dependency (#+ Dependency)
["#/." resolution (#+ Resolution)]]
- ["#." shell]
["#." artifact (#+ Group Name Artifact)
["#/." type]]])
@@ -87,11 +88,11 @@
_
(exception.throw ..no-available-compiler [])))
-(def: libraries
- (-> Resolution (List Path))
+(def: (libraries fs)
+ (All [!] (-> (file.System !) Resolution (List Path)))
(|>> dictionary.keys
(list.filter (|>> (get@ #///dependency.type) (text@= ///artifact/type.lux-library)))
- (list@map (|>> (get@ #///dependency.artifact) (///local.path file.default)))))
+ (list@map (|>> (get@ #///dependency.artifact) (///local.path fs)))))
(import: java/lang/String)
@@ -114,9 +115,8 @@
(-> Text (List Text) Text)
(|> values (list@map (|>> (format name " "))) (text.join-with " ")))
-(def: #export (do! profile)
- (Command [Compiler
- Path])
+(def: #export (do! fs resolution profile)
+ (-> (file.System Promise) Resolution (Command [Compiler Path]))
(case [(get@ #///.program profile)
(get@ #///.target profile)]
[#.None _]
@@ -127,26 +127,16 @@
[(#.Some program) (#.Some target)]
(do ///action.monad
- [cache (///cache.read-all (file.async file.default)
- (set.to-list (get@ #///.dependencies profile))
- ///dependency/resolution.empty)
- resolution (///dependency/resolution.all (list@map (|>> ///repository.remote ///repository.async)
- (set.to-list (get@ #///.repositories profile)))
- (set.to-list (get@ #///.dependencies profile))
- cache)
- _ (///cache.write-all (file.async file.default)
- resolution)
- [resolution compiler] (promise@wrap (..compiler resolution))
+ [[resolution compiler] (promise@wrap (..compiler resolution))
working-directory (promise.future ..working-directory)
- #let [libraries (..libraries resolution)
- [prefix output] (case compiler
- (#JVM artifact) [(format "java -jar " (///local.path file.default artifact))
+ #let [[prefix output] (case compiler
+ (#JVM artifact) [(///runtime.java (///local.path fs artifact))
"program.jar"]
- (#JS artifact) [(format "node --stack_size=8192 " (///local.path file.default artifact))
+ (#JS artifact) [(///runtime.node (///local.path fs artifact))
"program.js"])
- cache-directory (format working-directory (:: file.default separator) target)
+ cache-directory (format working-directory (:: fs separator) target)
command (format prefix " build"
- " " (..plural-parameter "--library" libraries)
+ " " (..plural-parameter "--library" (..libraries fs resolution))
" " (..plural-parameter "--source" (set.to-list (get@ #///.sources profile)))
" " (..singular-parameter "--target" cache-directory)
" " (..singular-parameter "--module" program))]
@@ -154,5 +144,5 @@
outcome (///shell.execute command working-directory)
#let [_ (log! "[BUILD ENDED]")]]
(wrap [compiler
- (format cache-directory (:: file.default separator) output)]))
+ (format cache-directory (:: fs separator) output)]))
))
diff --git a/stdlib/source/program/aedifex/command/deps.lux b/stdlib/source/program/aedifex/command/deps.lux
index bc4d88f6c..dfe58d707 100644
--- a/stdlib/source/program/aedifex/command/deps.lux
+++ b/stdlib/source/program/aedifex/command/deps.lux
@@ -18,14 +18,14 @@
["#." action (#+ Action)]
["#." cache]
["#." dependency #_
- ["#/." resolution]]])
+ ["#/." resolution (#+ Resolution)]]])
(def: #export (do! fs repositories profile)
- (-> (file.System Promise) (List (Repository Promise)) (Command (Set Artifact)))
+ (-> (file.System Promise) (List (Repository Promise)) (Command Resolution))
(do ///action.monad
[#let [dependencies (set.to-list (get@ #///.dependencies profile))]
cache (///cache.read-all fs dependencies ///dependency/resolution.empty)
resolution (///dependency/resolution.all repositories dependencies cache)
cached (///cache.write-all fs resolution)
#let [_ (log! "Successfully resolved dependencies!")]]
- (wrap cached)))
+ (wrap resolution)))
diff --git a/stdlib/source/program/aedifex/command/test.lux b/stdlib/source/program/aedifex/command/test.lux
index a27c07f10..d4519b2d0 100644
--- a/stdlib/source/program/aedifex/command/test.lux
+++ b/stdlib/source/program/aedifex/command/test.lux
@@ -4,25 +4,30 @@
[monad (#+ do)]]
[control
[concurrency
- ["." promise]]]
+ ["." promise (#+ Promise)]]]
[data
[text
- ["%" format (#+ format)]]]]
+ ["%" format (#+ format)]]]
+ [world
+ ["." file]]]
["." // #_
["#." build]
["/#" // #_
["#." action]
["#." command (#+ Command)]
- ["#." shell]]])
+ ["#." shell]
+ ["#." runtime]
+ [dependency
+ [resolution (#+ Resolution)]]]])
-(def: #export (do! project)
- (Command Any)
+(def: #export (do! fs resolution profile)
+ (-> (file.System Promise) Resolution (Command Any))
(do ///action.monad
- [[compiler program] (//build.do! project)
+ [[compiler program] (//build.do! fs resolution profile)
working-directory (promise.future //build.working-directory)
#let [command (case compiler
- (#//build.JVM artifact) (format "java -jar " program)
- (#//build.JS artifact) (format "node --stack_size=8192 " program))]
+ (#//build.JVM artifact) (///runtime.java program)
+ (#//build.JS artifact) (///runtime.node program))]
#let [_ (log! "[TEST STARTED]")]
outcome (///shell.execute command working-directory)
#let [_ (log! "[TEST ENDED]")]]
diff --git a/stdlib/source/program/aedifex/runtime.lux b/stdlib/source/program/aedifex/runtime.lux
new file mode 100644
index 000000000..6abfc5a62
--- /dev/null
+++ b/stdlib/source/program/aedifex/runtime.lux
@@ -0,0 +1,17 @@
+(.module:
+ [lux #*
+ [data
+ [text
+ ["%" format (#+ format)]]]
+ [world
+ [file (#+ Path)]
+ [shell (#+ Command)]]])
+
+(template [<name> <command>]
+ [(def: #export <name>
+ (-> Path Command)
+ (|>> (format <command>)))]
+
+ [java "java -jar "]
+ [node "node --stack_size=8192 "]
+ )
diff --git a/stdlib/source/spec/lux/world/shell.lux b/stdlib/source/spec/lux/world/shell.lux
index 69c1cc8ab..c10f77c12 100644
--- a/stdlib/source/spec/lux/world/shell.lux
+++ b/stdlib/source/spec/lux/world/shell.lux
@@ -8,25 +8,27 @@
[security
["!" capability]]
[concurrency
- ["." promise (#+ Promise)]]]
+ ["." promise (#+ Promise)]]
+ [parser
+ ["." environment]]]
[data
["." product]
["." text ("#\." equivalence)
["%" format (#+ format)]]
[number
["n" nat]
- ["i" int]]
- [format
- ["." context]]]
+ ["i" int]]]
[math
["." random]]]
{1
- ["." /]})
+ ["." /
+ [//
+ [environment (#+ Environment)]]]})
(template [<name> <command> <type> <prep>]
[(def: <name>
- (-> <type> [/.Environment /.Command (List /.Argument)])
- (|>> <prep> list [context.empty <command>]))]
+ (-> <type> [Environment /.Command (List /.Argument)])
+ (|>> <prep> list [environment.empty <command>]))]
[echo! "echo" Text (|>)]
[sleep! "sleep" Nat %.nat]
@@ -73,8 +75,7 @@
(#try.Failure error)
true)))))
-(with-expansions [<shell-coverage> (as-is [/.Can-Execute
- /.Environment /.Command /.Argument])]
+(with-expansions [<shell-coverage> (as-is [/.Can-Execute /.Command /.Argument])]
(def: #export (spec shell)
(-> (/.Shell Promise) Test)
(<| (_.with-cover [/.Shell /.Process])
diff --git a/stdlib/source/test/aedifex.lux b/stdlib/source/test/aedifex.lux
index 708834481..4947dcf18 100644
--- a/stdlib/source/test/aedifex.lux
+++ b/stdlib/source/test/aedifex.lux
@@ -25,7 +25,8 @@
["#." hash]
["#." parser]
["#." pom]
- ["#." repository]])
+ ["#." repository]
+ ["#." runtime]])
(def: test
Test
@@ -49,6 +50,7 @@
/parser.test
/pom.test
/repository.test
+ /runtime.test
))
(program: args
diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux
index c0617188d..ce85a2206 100644
--- a/stdlib/source/test/aedifex/command/deps.lux
+++ b/stdlib/source/test/aedifex/command/deps.lux
@@ -82,7 +82,7 @@
(/.do! fs (list (///repository.mock ($///dependency/resolution.single depender-artifact depender-package) []))))]
(wrap (and (and (set.member? pre dependee-artifact)
(not (set.member? pre depender-artifact)))
- (and (not (set.member? post dependee-artifact))
- (set.member? post depender-artifact)))))]
+ (and (dictionary.contains? dependee post)
+ (dictionary.contains? depender post)))))]
(_.claim [/.do!]
(try.default false verdict)))))))
diff --git a/stdlib/source/test/aedifex/input.lux b/stdlib/source/test/aedifex/input.lux
index c25d6fe36..c7f6a4282 100644
--- a/stdlib/source/test/aedifex/input.lux
+++ b/stdlib/source/test/aedifex/input.lux
@@ -12,8 +12,10 @@
[data
["." binary]
["." text
- ["%" format]
- ["." encoding]]]
+ ["%" format (#+ format)]
+ ["." encoding]]
+ [collection
+ ["." set (#+ Set)]]]
[math
["." random (#+ Random)]]
[world
@@ -28,6 +30,12 @@
["#." action]
["#." format]]]})
+(def: (with-default-source sources)
+ (-> (Set //.Source) (Set //.Source))
+ (if (set.empty? sources)
+ (set.add //.default-source sources)
+ sources))
+
(def: #export test
Test
(<| (_.covering /._)
@@ -46,6 +54,8 @@
(!.use (:: file over-write)))
actual (: (Promise (Try Profile))
(/.read promise.monad fs //.default))]
- (wrap (:: //.equivalence = expected actual)))]
+ (wrap (:: //.equivalence =
+ (update@ #//.sources ..with-default-source expected)
+ actual)))]
(_.claim [/.read]
(try.default false verdict)))))))
diff --git a/stdlib/source/test/aedifex/runtime.lux b/stdlib/source/test/aedifex/runtime.lux
new file mode 100644
index 000000000..e1c0a77c1
--- /dev/null
+++ b/stdlib/source/test/aedifex/runtime.lux
@@ -0,0 +1,28 @@
+(.module:
+ [lux #*
+ ["_" test (#+ Test)]
+ [abstract
+ [monad (#+ do)]]
+ [data
+ ["." text]]
+ [math
+ ["." random]]]
+ {#program
+ ["." /]})
+
+(def: #export test
+ Test
+ (<| (_.covering /._)
+ (do random.monad
+ [path (random.ascii/alpha 5)]
+ (`` ($_ _.and
+ (~~ (template [<command>]
+ [(_.cover [<command>]
+ (let [command (<command> path)]
+ (and (text.starts-with? (<command> "") command)
+ (text.ends-with? path command))))]
+
+ [/.java]
+ [/.node]
+ ))
+ )))))
diff --git a/stdlib/source/test/lux/control.lux b/stdlib/source/test/lux/control.lux
index 14d75527f..37ae36572 100644
--- a/stdlib/source/test/lux/control.lux
+++ b/stdlib/source/test/lux/control.lux
@@ -18,17 +18,7 @@
["#/." memo]
["#/." mixin]]
["#." io]
- ["#." parser
- ["#/." analysis]
- ["#/." binary]
- ["#/." cli]
- ["#/." code]
- ["#/." json]
- ["#/." synthesis]
- ["#/." text]
- ["#/." tree]
- ["#/." type]
- ["#/." xml]]
+ ["#." parser]
["#." pipe]
["#." reader]
["#." region]
@@ -62,22 +52,6 @@
/function/mixin.test
))
-(def: parser
- Test
- ($_ _.and
- /parser.test
- /parser/analysis.test
- /parser/binary.test
- /parser/cli.test
- /parser/code.test
- /parser/json.test
- /parser/synthesis.test
- /parser/text.test
- /parser/tree.test
- /parser/type.test
- /parser/xml.test
- ))
-
(def: security
Test
($_ _.and
@@ -94,7 +68,7 @@
/exception.test
..function
/io.test
- ..parser
+ /parser.test
/pipe.test
/reader.test
/region.test
diff --git a/stdlib/source/test/lux/control/concatenative.lux b/stdlib/source/test/lux/control/concatenative.lux
index 52cd5d214..f346ff568 100644
--- a/stdlib/source/test/lux/control/concatenative.lux
+++ b/stdlib/source/test/lux/control/concatenative.lux
@@ -6,7 +6,7 @@
[data
["." sum]
["." name]
- ["." bit ("#@." equivalence)]
+ ["." bit ("#\." equivalence)]
[number
["n" nat]
["i" int]
@@ -111,7 +111,7 @@
<arithmetic>'))
(~~ (template [<concatenative> <functional>]
[(_.cover [<concatenative>]
- (bit@= (<functional> parameter subject)
+ (bit\= (<functional> parameter subject)
(||> (/.push subject)
(/.push parameter)
<concatenative>)))]
diff --git a/stdlib/source/test/lux/control/concurrency/actor.lux b/stdlib/source/test/lux/control/concurrency/actor.lux
index 7ab561360..c25d7b07f 100644
--- a/stdlib/source/test/lux/control/concurrency/actor.lux
+++ b/stdlib/source/test/lux/control/concurrency/actor.lux
@@ -21,7 +21,7 @@
["." / (#+ actor: message:)
[//
["." atom (#+ Atom)]
- ["." promise (#+ Promise Resolver) ("#@." monad)]
+ ["." promise (#+ Promise Resolver) ("#\." monad)]
["." frp]]]})
(exception: got-wrecked)
@@ -33,11 +33,11 @@
(message state self))
((on-stop cause state)
- (promise@wrap []))
+ (promise\wrap []))
(message: (count! {increment Nat} state self Nat)
(let [state' (n.+ increment state)]
- (promise@wrap (#try.Success [state' state']))))
+ (promise\wrap (#try.Success [state' state']))))
)
(def: (mailed? outcome)
@@ -53,7 +53,7 @@
#let [as-mail (: (All [a] (-> (-> a a) (/.Mail a)))
(function (_ transform)
(function (_ state actor)
- (|> state transform #try.Success promise@wrap))))
+ (|> state transform #try.Success promise\wrap))))
inc! (: (/.Mail Nat) (as-mail inc))
dec! (: (/.Mail Nat) (as-mail dec))]]
(<| (_.covering /._)
@@ -129,7 +129,7 @@
(let [die! (: (/.Mail Nat)
(function (_ state actor)
- (promise@wrap (exception.throw ..got-wrecked []))))]
+ (promise\wrap (exception.throw ..got-wrecked []))))]
(wrap (do promise.monad
[result (promise.future (do io.monad
[actor (/.spawn! /.default initial-state)
@@ -175,7 +175,7 @@
(message (inc state) self))
((on-stop cause state)
- (promise@wrap (exec (%.nat state)
+ (promise\wrap (exec (%.nat state)
[]))))
sent/inc? (/.mail! inc! anonymous)
sent/dec? (/.mail! dec! anonymous)
diff --git a/stdlib/source/test/lux/control/concurrency/frp.lux b/stdlib/source/test/lux/control/concurrency/frp.lux
index e7d418bf7..c9b19f1c7 100644
--- a/stdlib/source/test/lux/control/concurrency/frp.lux
+++ b/stdlib/source/test/lux/control/concurrency/frp.lux
@@ -16,14 +16,14 @@
[number
["n" nat]]
[collection
- ["." list ("#@." functor fold monoid)]
+ ["." list ("#\." fold monoid)]
["." row (#+ Row)]]]
[math
["." random]]]
{1
["." /
[//
- ["." promise ("#@." monad)]
+ ["." promise ("#\." monad)]
["." atom (#+ Atom atom)]]]})
(def: injection
@@ -49,7 +49,7 @@
(def: #export test
Test
(<| (_.covering /._)
- (let [(^open "list@.") (list.equivalence n.equivalence)]
+ (let [(^open "list\.") (list.equivalence n.equivalence)]
(do random.monad
[inputs (random.list 5 random.nat)
sample random.nat
@@ -104,14 +104,14 @@
/.from-promise
/.consume)]
(_.claim [/.from-promise /.consume]
- (list@= (list sample)
+ (list\= (list sample)
output))))
(wrap (do promise.monad
[output (|> inputs
(/.sequential 0)
/.consume)]
(_.claim [/.sequential]
- (list@= inputs
+ (list\= inputs
output))))
(wrap (do promise.monad
[output (|> inputs
@@ -119,12 +119,12 @@
(/.filter n.even?)
/.consume)]
(_.claim [/.filter]
- (list@= (list.filter n.even? inputs)
+ (list\= (list.filter n.even? inputs)
output))))
(wrap (do {! promise.monad}
[#let [sink (: (Atom (Row Nat))
(atom.atom row.empty))
- channel (/.sequential 0 (list@compose inputs inputs))]
+ channel (/.sequential 0 (list\compose inputs inputs))]
_ (promise.future (/.subscribe (function (_ value)
(do {! io.monad}
[current (atom.read sink)]
@@ -141,9 +141,9 @@
promise.future
(:: ! map row.to-list))]
(_.claim [/.Subscriber /.subscribe]
- (and (list@= inputs
+ (and (list\= inputs
output)
- (list@= output
+ (list\= output
listened)))))
(wrap (do promise.monad
[actual (/.fold (function (_ input total)
@@ -151,7 +151,7 @@
0
(/.sequential 0 inputs))]
(_.claim [/.fold]
- (n.= (list@fold n.+ 0 inputs)
+ (n.= (list\fold n.+ 0 inputs)
actual))))
(wrap (do promise.monad
[actual (|> inputs
@@ -161,7 +161,7 @@
0)
/.consume)]
(_.claim [/.folds]
- (list@= (list.folds n.+ 0 inputs)
+ (list\= (list.folds n.+ 0 inputs)
actual))))
(wrap (do promise.monad
[actual (|> (list distint/0 distint/0 distint/0
@@ -171,7 +171,7 @@
(/.distinct n.equivalence)
/.consume)]
(_.claim [/.distinct]
- (list@= (list distint/0 distint/1 distint/2)
+ (list\= (list distint/0 distint/1 distint/2)
actual))))
(let [polling-delay 10
wiggle-room (n.* 5 polling-delay)
@@ -207,6 +207,6 @@
/.consume)]
(_.claim [/.iterate]
(and (n.= max-iterations (list.size actual))
- (list@= (list.folds n.+ sample (list.repeat (dec max-iterations) shift))
+ (list\= (list.folds n.+ sample (list.repeat (dec max-iterations) shift))
actual)))))
)))))
diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux
index 763ae41f8..fa81183cd 100644
--- a/stdlib/source/test/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux
@@ -15,10 +15,10 @@
["." maybe]
[number
["n" nat]]
- ["." text ("#@." equivalence)
+ ["." text ("#\." equivalence)
["%" format (#+ format)]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
[type
["." refinement]]
[math
@@ -116,9 +116,9 @@
_ processB
#let [outcome (io.run (atom.read resource))]]
(_.claim [/.mutex /.synchronize]
- (or (text@= (format expected-As expected-Bs)
+ (or (text\= (format expected-As expected-Bs)
outcome)
- (text@= (format expected-Bs expected-As)
+ (text\= (format expected-Bs expected-As)
outcome))))))
)))
@@ -155,7 +155,7 @@
(list.repeat limit)
(text.join-with ""))
ids (enum.range n.enum 0 (dec limit))
- waiters (list@map (function (_ id)
+ waiters (list\map (function (_ id)
(exec (io.run (atom.update (|>> (format "_")) resource))
(waiter resource barrier id)))
ids)]
diff --git a/stdlib/source/test/lux/control/concurrency/stm.lux b/stdlib/source/test/lux/control/concurrency/stm.lux
index fd3cd53d9..ca2a0eb92 100644
--- a/stdlib/source/test/lux/control/concurrency/stm.lux
+++ b/stdlib/source/test/lux/control/concurrency/stm.lux
@@ -15,7 +15,7 @@
[number
["n" nat]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
[math
["." random]]]
{1
@@ -94,7 +94,7 @@
(wrap (let [var (/.var 0)]
(do {! promise.monad}
[_ (|> (list.repeat iterations-per-process [])
- (list@map (function (_ _) (/.commit (/.update inc var))))
+ (list\map (function (_ _) (/.commit (/.update inc var))))
(monad.seq !))
cummulative (/.commit (/.read var))]
(_.claim [/.STM]
diff --git a/stdlib/source/test/lux/control/function/memo.lux b/stdlib/source/test/lux/control/function/memo.lux
index 90a2064af..a19b9e6f9 100644
--- a/stdlib/source/test/lux/control/function/memo.lux
+++ b/stdlib/source/test/lux/control/function/memo.lux
@@ -5,7 +5,7 @@
[monad (#+ do)]]
[control
["." io (#+ IO)]
- ["." state (#+ State) ("#@." monad)]]
+ ["." state (#+ State) ("#\." monad)]]
[math
["." random]]
[data
@@ -14,7 +14,7 @@
["n" nat]]
[collection
["." dictionary (#+ Dictionary)]
- ["." list ("#@." functor fold)]]]
+ ["." list ("#\." functor fold)]]]
[time
["." instant]
["." duration (#+ Duration)]]]
@@ -26,8 +26,8 @@
(def: (fibonacci recur input)
(/.Memo Nat Nat)
(case input
- 0 (state@wrap 0)
- 1 (state@wrap 1)
+ 0 (state\wrap 0)
+ 1 (state\wrap 1)
_ (do state.monad
[output-1 (recur (n.- 1 input))
output-2 (recur (n.- 2 input))]
@@ -90,8 +90,8 @@
[output' (recur (dec input))]
(wrap (n.* input output')))))))
expected (|> (list.indices input)
- (list@map inc)
- (list@fold n.* 1))
+ (list\map inc)
+ (list\fold n.* 1))
actual (|> (memo input)
(state.run (dictionary.new n.hash))
product.right)]
diff --git a/stdlib/source/test/lux/control/function/mixin.lux b/stdlib/source/test/lux/control/function/mixin.lux
index accf7659d..c4d6040cd 100644
--- a/stdlib/source/test/lux/control/function/mixin.lux
+++ b/stdlib/source/test/lux/control/function/mixin.lux
@@ -15,7 +15,7 @@
[number
["n" nat]]
[collection
- ["." list ("#@." functor fold)]]]
+ ["." list ("#\." functor fold)]]]
[math
["." random (#+ Random)]]]
{1
@@ -39,8 +39,8 @@
(wrap (function (_ delegate recur input)
output))))
expected (|> (list.indices input)
- (list@map inc)
- (list@fold n.* 1))]])
+ (list\map inc)
+ (list\fold n.* 1))]])
($_ _.and
(_.with-cover [/.Mixin]
($_ _.and
diff --git a/stdlib/source/test/lux/control/parser.lux b/stdlib/source/test/lux/control/parser.lux
index 9acf45684..569e32621 100644
--- a/stdlib/source/test/lux/control/parser.lux
+++ b/stdlib/source/test/lux/control/parser.lux
@@ -26,7 +26,19 @@
["." code]
[syntax (#+ syntax:)]]]
{1
- ["." / (#+ Parser)]})
+ ["." / (#+ Parser)]}
+ ["." / #_
+ ["#." analysis]
+ ["#." binary]
+ ["#." cli]
+ ["#." code]
+ ["#." environment]
+ ["#." json]
+ ["#." synthesis]
+ ["#." text]
+ ["#." tree]
+ ["#." type]
+ ["#." xml]])
(def: (should-fail expected input)
(All [a] (-> Text (Try a) Bit))
@@ -371,4 +383,16 @@
..combinators-0
..combinators-1
..combinators-2
+
+ /analysis.test
+ /binary.test
+ /cli.test
+ /code.test
+ /environment.test
+ /json.test
+ /synthesis.test
+ /text.test
+ /tree.test
+ /type.test
+ /xml.test
))))
diff --git a/stdlib/source/test/lux/control/parser/environment.lux b/stdlib/source/test/lux/control/parser/environment.lux
new file mode 100644
index 000000000..89b174b47
--- /dev/null
+++ b/stdlib/source/test/lux/control/parser/environment.lux
@@ -0,0 +1,52 @@
+(.module:
+ [lux #*
+ ["_" test (#+ Test)]
+ [abstract
+ [monad (#+ do)]]
+ [control
+ ["." try]
+ ["." exception]]
+ [data
+ ["." text ("#\." equivalence)]
+ [number
+ ["n" nat]]
+ [collection
+ ["." dictionary]]]
+ [math
+ ["." random]]]
+ {1
+ ["." /
+ ["/#" // ("#\." monad)]]})
+
+(def: #export test
+ Test
+ (<| (_.covering /._)
+ (_.with-cover [/.Parser])
+ ($_ _.and
+ (_.cover [/.empty]
+ (dictionary.empty? /.empty))
+ (do random.monad
+ [expected random.nat]
+ (_.cover [/.run]
+ (|> (/.run (//\wrap expected) /.empty)
+ (:: try.functor map (n.= expected))
+ (try.default false))))
+ (do random.monad
+ [property (random.ascii/alpha 1)
+ expected (random.ascii/alpha 1)]
+ (_.cover [/.property]
+ (|> /.empty
+ (dictionary.put property expected)
+ (/.run (/.property property))
+ (:: try.functor map (text\= expected))
+ (try.default false))))
+ (do random.monad
+ [property (random.ascii/alpha 1)]
+ (_.cover [/.unknown]
+ (case (/.run (/.property property) /.empty)
+ (#try.Success _)
+ false
+
+ (#try.Failure error)
+ (exception.match? /.unknown error))))
+ )))
diff --git a/stdlib/source/test/lux/control/pipe.lux b/stdlib/source/test/lux/control/pipe.lux
index 247ae8be4..6a9809c8b 100644
--- a/stdlib/source/test/lux/control/pipe.lux
+++ b/stdlib/source/test/lux/control/pipe.lux
@@ -7,7 +7,7 @@
["." identity]
[number
["n" nat]]
- ["." text ("#@." equivalence)
+ ["." text ("#\." equivalence)
["%" format (#+ format)]]]
[math
["." random]]]
@@ -33,7 +33,7 @@
(|> sample
(/.let> x [(n.+ x x)]))))
(_.cover [/.cond>]
- (text@= (cond (n.= 0 sample) "zero"
+ (text\= (cond (n.= 0 sample) "zero"
(n.even? sample) "even"
"odd")
(|> sample
@@ -41,7 +41,7 @@
[n.even?] [(/.new> "even" [])]
[(/.new> "odd" [])]))))
(_.cover [/.if>]
- (text@= (if (n.even? sample)
+ (text\= (if (n.even? sample)
"even"
"odd")
(|> sample
@@ -79,9 +79,9 @@
[%.nat]))]
(and (n.= (inc sample) left)
(n.= (dec sample) middle)
- (text@= (%.nat sample) right))))
+ (text\= (%.nat sample) right))))
(_.cover [/.case>]
- (text@= (case (n.% 10 sample)
+ (text\= (case (n.% 10 sample)
0 "zero"
1 "one"
2 "two"
diff --git a/stdlib/source/test/lux/control/security/policy.lux b/stdlib/source/test/lux/control/security/policy.lux
index 4885b52eb..13ad42f3f 100644
--- a/stdlib/source/test/lux/control/security/policy.lux
+++ b/stdlib/source/test/lux/control/security/policy.lux
@@ -14,7 +14,7 @@
[security
["!" capability]]]
[data
- ["." text ("#@." equivalence)]
+ ["." text ("#\." equivalence)]
[number
["n" nat]]]
[math
@@ -50,20 +50,20 @@
(Ex [%] (-> Any (Policy %)))
(/.with-policy
(: (Context Privacy Policy)
- (function (_ (^@ privilege (^open "%@.")))
+ (function (_ (^@ privilege (^open "%\.")))
(structure
(def: &hash
(structure
(def: &equivalence
(structure (def: (= reference sample)
- (text@= (!.use %@can-downgrade reference)
- (!.use %@can-downgrade sample)))))
+ (text\= (!.use %\can-downgrade reference)
+ (!.use %\can-downgrade sample)))))
(def: hash
- (|>> (!.use %@can-downgrade)
+ (|>> (!.use %\can-downgrade)
(:: text.hash hash)))))
(def: password
- (!.use %@can-upgrade))
+ (!.use %\can-upgrade))
(def: privilege
privilege))))))
diff --git a/stdlib/source/test/lux/control/try.lux b/stdlib/source/test/lux/control/try.lux
index 246beeeab..f4eaec656 100644
--- a/stdlib/source/test/lux/control/try.lux
+++ b/stdlib/source/test/lux/control/try.lux
@@ -13,7 +13,7 @@
pipe
["." io]]
[data
- ["." text ("#@." equivalence)]
+ ["." text ("#\." equivalence)]
[number
["n" nat]]]
[math
@@ -44,7 +44,7 @@
[expected random.nat
alternative (|> random.nat (random.filter (|>> (n.= expected) not)))
error (random.unicode 1)
- #let [(^open "io@.") io.monad]])
+ #let [(^open "io\.") io.monad]])
($_ _.and
(_.with-cover [/.equivalence]
($equivalence.spec (/.equivalence n.equivalence) (..try random.nat)))
@@ -65,7 +65,7 @@
(_.cover [/.fail]
(case (/.fail error)
(#/.Failure message)
- (text@= error message)
+ (text\= error message)
_
false))
@@ -97,7 +97,7 @@
(_.cover [/.with /.lift]
(let [lift (/.lift io.monad)]
(|> (do (/.with io.monad)
- [a (lift (io@wrap expected))
+ [a (lift (io\wrap expected))
b (wrap alternative)]
(wrap (n.+ a b)))
io.run
diff --git a/stdlib/source/test/lux/locale/language.lux b/stdlib/source/test/lux/locale/language.lux
index 1bb81e06a..9ffff2f1f 100644
--- a/stdlib/source/test/lux/locale/language.lux
+++ b/stdlib/source/test/lux/locale/language.lux
@@ -10,7 +10,7 @@
["n" nat]]
[collection
["." set (#+ Set)]
- ["." list ("#@." functor fold)]]]
+ ["." list ("#\." functor fold)]]]
[macro
["." template]]
[math
@@ -32,8 +32,8 @@
languages (: (List /.Language)
(`` (list (~~ (template.splice <languages>)))))]
{#count count
- #names (|> languages (list@map /.name) (set.from-list text.hash))
- #codes (|> languages (list@map /.code) (set.from-list text.hash))
+ #names (|> languages (list\map /.name) (set.from-list text.hash))
+ #codes (|> languages (list\map /.code) (set.from-list text.hash))
#languages (|> languages (set.from-list /.hash))
#test (_.cover <languages>
true)}))]
@@ -181,7 +181,7 @@
(Hash a)
(List Bundle)
[Nat (Set a)]))
- (list@fold (function (_ bundle [count set])
+ (list\fold (function (_ bundle [count set])
[(n.+ count (get@ #count bundle))
(set.union set (lens bundle))])
[0 (set.new hash)]
@@ -191,8 +191,8 @@
Test
(|> ..languages
list.reverse
- (list@map (get@ #test))
- (list@fold _.and
+ (list\map (get@ #test))
+ (list\fold _.and
(`` ($_ _.and
(~~ (template [<lens> <tag> <hash>]
[(let [[count set] (..aggregate (get@ <tag>) <hash> ..languages)]
diff --git a/stdlib/source/test/lux/locale/territory.lux b/stdlib/source/test/lux/locale/territory.lux
index 43d4401ec..12fa402af 100644
--- a/stdlib/source/test/lux/locale/territory.lux
+++ b/stdlib/source/test/lux/locale/territory.lux
@@ -10,7 +10,7 @@
["n" nat]]
[collection
["." set (#+ Set)]
- ["." list ("#@." functor fold)]]]
+ ["." list ("#\." functor fold)]]]
[macro
["." template]]
[math
@@ -33,10 +33,10 @@
(let [count (template.count <territories>)
territories (`` (list (~~ (template.splice <territories>))))]
{#count count
- #names (|> territories (list@map /.name) (set.from-list text.hash))
- #shorts (|> territories (list@map /.short-code) (set.from-list text.hash))
- #longs (|> territories (list@map /.long-code) (set.from-list text.hash))
- #numbers (|> territories (list@map /.numeric-code) (set.from-list n.hash))
+ #names (|> territories (list\map /.name) (set.from-list text.hash))
+ #shorts (|> territories (list\map /.short-code) (set.from-list text.hash))
+ #longs (|> territories (list\map /.long-code) (set.from-list text.hash))
+ #numbers (|> territories (list\map /.numeric-code) (set.from-list n.hash))
#territories (|> territories (set.from-list /.hash))
#test (_.cover <territories>
true)}))]
@@ -138,7 +138,7 @@
(Hash a)
(List Bundle)
[Nat (Set a)]))
- (list@fold (function (_ bundle [count set])
+ (list\fold (function (_ bundle [count set])
[(n.+ count (get@ #count bundle))
(set.union set (lens bundle))])
[0 (set.new hash)]
@@ -148,8 +148,8 @@
Test
(|> ..territories
list.reverse
- (list@map (get@ #test))
- (list@fold _.and
+ (list\map (get@ #test))
+ (list\fold _.and
(`` ($_ _.and
(~~ (template [<lens> <tag> <hash>]
[(let [[count set] (..aggregate (get@ <tag>) <hash> ..territories)]
diff --git a/stdlib/source/test/lux/math.lux b/stdlib/source/test/lux/math.lux
index 673099c34..2c34e8ed5 100644
--- a/stdlib/source/test/lux/math.lux
+++ b/stdlib/source/test/lux/math.lux
@@ -5,7 +5,6 @@
["r" math/random (#+ Random)]
[abstract/monad (#+ Monad do)]
[data
- ["." bit ("#@." equivalence)]
[number
["n" nat]
["." int]
diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux
index 4ade3f2f8..0f6b13629 100644
--- a/stdlib/source/test/lux/meta.lux
+++ b/stdlib/source/test/lux/meta.lux
@@ -11,7 +11,7 @@
[control
["." try]]
[data
- ["." text ("#@." equivalence)
+ ["." text ("#\." equivalence)
["%" format (#+ format)]]
[number
["n" nat]]]
@@ -42,7 +42,7 @@
dummy (random.filter (|>> (n.= expected) not) random.nat)
expected-error (random.ascii/upper-alpha 1)
expected-short (random.ascii/upper-alpha 1)
- dummy-module (random.filter (|>> (text@= expected-current-module) not)
+ dummy-module (random.filter (|>> (text\= expected-current-module) not)
(random.ascii/upper-alpha 1))
expected-gensym (random.ascii/upper-alpha 1)
#let [expected-lux {#.info {#.target target
@@ -114,7 +114,7 @@
(: (Meta Any))
(/.run expected-lux)
(!expect (^multi (#try.Failure actual-error)
- (text@= expected-error actual-error)))))
+ (text\= expected-error actual-error)))))
(_.cover [/.assert]
(and (|> (/.assert expected-error true)
(: (Meta Any))
@@ -123,7 +123,7 @@
(|> (/.assert expected-error false)
(/.run expected-lux)
(!expect (^multi (#try.Failure actual-error)
- (text@= expected-error actual-error))))))
+ (text\= expected-error actual-error))))))
(_.cover [/.either]
(and (|> (/.either (:: /.monad wrap expected)
(: (Meta Nat)
@@ -143,7 +143,7 @@
(/.fail expected-error)))
(/.run expected-lux)
(!expect (^multi (#try.Failure actual-error)
- (text@= expected-error actual-error))))
+ (text\= expected-error actual-error))))
(|> (/.either (:: /.monad wrap expected)
(:: /.monad wrap dummy))
(/.run expected-lux)
@@ -164,7 +164,7 @@
dummy (random.filter (|>> (n.= expected) not) random.nat)
expected-error (random.ascii/upper-alpha 1)
expected-short (random.ascii/upper-alpha 1)
- dummy-module (random.filter (|>> (text@= expected-current-module) not)
+ dummy-module (random.filter (|>> (text\= expected-current-module) not)
(random.ascii/upper-alpha 1))
#let [expected-lux {#.info {#.target target
#.version version
@@ -187,17 +187,17 @@
(|> /.current-module-name
(/.run expected-lux)
(!expect (^multi (#try.Success actual-current-module)
- (text@= expected-current-module actual-current-module)))))
+ (text\= expected-current-module actual-current-module)))))
(_.cover [/.normalize]
(and (|> (/.normalize ["" expected-short])
(/.run expected-lux)
(!expect (^multi (#try.Success [actual-module actual-short])
- (and (text@= expected-current-module actual-module)
+ (and (text\= expected-current-module actual-module)
(is? expected-short actual-short)))))
(|> (/.normalize [dummy-module expected-short])
(/.run expected-lux)
(!expect (^multi (#try.Success [actual-module actual-short])
- (and (text@= dummy-module actual-module)
+ (and (text\= dummy-module actual-module)
(is? expected-short actual-short)))))))
)))
@@ -240,7 +240,7 @@
dummy (random.filter (|>> (n.= expected) not) random.nat)
expected-error (random.ascii/upper-alpha 1)
expected-short (random.ascii/upper-alpha 1)
- dummy-module (random.filter (|>> (text@= expected-current-module) not)
+ dummy-module (random.filter (|>> (text\= expected-current-module) not)
(random.ascii/upper-alpha 1))
expected-gensym (random.ascii/upper-alpha 1)
expected-location ..random-location
diff --git a/stdlib/source/test/lux/meta/annotation.lux b/stdlib/source/test/lux/meta/annotation.lux
index a3c2dae7f..8acce1930 100644
--- a/stdlib/source/test/lux/meta/annotation.lux
+++ b/stdlib/source/test/lux/meta/annotation.lux
@@ -19,9 +19,9 @@
["." rev]
["." frac]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
[macro
- ["." code ("#@." equivalence)]]]
+ ["." code ("#\." equivalence)]]]
{1
["." /]}
[///
@@ -127,11 +127,11 @@
[(do !
[expected (random.list 5 (random.ascii/alpha 1))]
(_.cover [<definition>]
- (and (|> expected (list@map code.text) code.tuple
+ (and (|> expected (list\map code.text) code.tuple
(..annotation (name-of <tag>))
<definition>
(:: (list.equivalence text.equivalence) = expected))
- (|> expected (list@map code.text) code.tuple
+ (|> expected (list\map code.text) code.tuple
(..annotation key)
<definition>
(:: (list.equivalence text.equivalence) = (list))))))]
@@ -155,7 +155,7 @@
(..annotation key)
(/.value key)
(!expect (^multi (#.Some actual)
- (code@= expected actual))))))
+ (code\= expected actual))))))
..typed-value
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 2f3e7e8ba..c866acf41 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
@@ -3,19 +3,19 @@
[abstract ["." monad (#+ do)]]
[data
["%" text/format (#+ format)]
- ["." name ("#@." equivalence)]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["." name]]
+ ["r" math/random (#+ Random) ("#\." monad)]
["_" test (#+ Test)]
[control
pipe]
[data
["." product]
["." maybe]
- ["." text ("#@." equivalence)]
+ ["." text ("#\." equivalence)]
[number
["n" nat]]
[collection
- ["." list ("#@." monad)]
+ ["." list ("#\." monad)]
["." set]]]
["." type
["." check]]
@@ -44,7 +44,7 @@
#.Nil
(#.Cons head+ #.Nil)
- (list@map (|>> list) head+)
+ (list\map (|>> list) head+)
(#.Cons head+ tail++)
(do list.monad
@@ -56,7 +56,7 @@
(-> Bit (List [Code Code]) Code (Random (List Code)))
(case inputC
[_ (#.Bit _)]
- (r@wrap (list (' #0) (' #1)))
+ (r\wrap (list (' #0) (' #1)))
(^template [<tag> <gen> <wrapper>]
[[_ (<tag> _)]
@@ -71,7 +71,7 @@
#.None
(wrap (list (' _)))))
- (r@wrap (list (' _))))])
+ (r\wrap (list (' _))))])
([#.Nat r.nat code.nat]
[#.Int r.int code.int]
[#.Rev r.rev code.rev]
@@ -79,26 +79,26 @@
[#.Text (r.unicode 5) code.text])
(^ [_ (#.Tuple (list))])
- (r@wrap (list (' [])))
+ (r\wrap (list (' [])))
[_ (#.Tuple members)]
(do {! r.monad}
[member-wise-patterns (monad.map ! (exhaustive-branches allow-literals? variantTC) members)]
(wrap (|> member-wise-patterns
exhaustive-weaving
- (list@map code.tuple))))
+ (list\map code.tuple))))
(^ [_ (#.Record (list))])
- (r@wrap (list (' {})))
+ (r\wrap (list (' {})))
[_ (#.Record kvs)]
(do {! r.monad}
- [#let [ks (list@map product.left kvs)
- vs (list@map product.right kvs)]
+ [#let [ks (list\map product.left kvs)
+ vs (list\map product.right kvs)]
member-wise-patterns (monad.map ! (exhaustive-branches allow-literals? variantTC) vs)]
(wrap (|> member-wise-patterns
exhaustive-weaving
- (list@map (|>> (list.zip/2 ks) code.record)))))
+ (list\map (|>> (list.zip/2 ks) code.record)))))
(^ [_ (#.Form (list [_ (#.Tag _)] _))])
(do {! r.monad}
@@ -106,13 +106,13 @@
(function (_ [_tag _code])
(do !
[v-branches (exhaustive-branches allow-literals? variantTC _code)]
- (wrap (list@map (function (_ pattern) (` ((~ _tag) (~ pattern))))
+ (wrap (list\map (function (_ pattern) (` ((~ _tag) (~ pattern))))
v-branches))))
variantTC)]
- (wrap (list@join bundles)))
+ (wrap (list\join bundles)))
_
- (r@wrap (list))
+ (r\wrap (list))
))
(def: #export (input variant-tags record-tags primitivesC)
@@ -120,7 +120,7 @@
(r.rec
(function (_ input)
($_ r.either
- (r@map product.right _primitive.primitive)
+ (r\map product.right _primitive.primitive)
(do {! r.monad}
[choice (|> r.nat (:: ! map (n.% (list.size variant-tags))))
#let [choiceT (maybe.assume (list.nth choice variant-tags))
@@ -130,7 +130,7 @@
[size (|> r.nat (:: ! map (n.% 3)))
elems (r.list size input)]
(wrap (code.tuple elems)))
- (r@wrap (code.record (list.zip/2 record-tags primitivesC)))
+ (r\wrap (code.record (list.zip/2 record-tags primitivesC)))
))))
(def: (branch body pattern)
@@ -142,16 +142,16 @@
(do {! r.monad}
[module-name (r.unicode 5)
variant-name (r.unicode 5)
- record-name (|> (r.unicode 5) (r.filter (|>> (text@= variant-name) not)))
+ record-name (|> (r.unicode 5) (r.filter (|>> (text\= variant-name) not)))
size (|> r.nat (:: ! map (|>> (n.% 10) (n.max 2))))
variant-tags (|> (r.set text.hash size (r.unicode 5)) (:: ! map set.to-list))
record-tags (|> (r.set text.hash size (r.unicode 5)) (:: ! map set.to-list))
primitivesTC (r.list size _primitive.primitive)
- #let [primitivesT (list@map product.left primitivesTC)
- primitivesC (list@map product.right primitivesTC)
+ #let [primitivesT (list\map product.left primitivesTC)
+ primitivesC (list\map product.right primitivesTC)
code-tag (|>> [module-name] code.tag)
- variant-tags+ (list@map code-tag variant-tags)
- record-tags+ (list@map code-tag record-tags)
+ variant-tags+ (list\map code-tag variant-tags)
+ record-tags+ (list\map code-tag record-tags)
variantTC (list.zip/2 variant-tags+ primitivesC)]
inputC (input variant-tags+ record-tags+ primitivesC)
[outputT outputC] (r.filter (|>> product.left (is? Any) not)
@@ -169,7 +169,7 @@
(type.tuple primitivesT)))])
(//module.with-module 0 module-name)))]
exhaustive-patterns (exhaustive-branches true variantTC inputC)
- #let [exhaustive-branchesC (list@map (branch outputC)
+ #let [exhaustive-branchesC (list\map (branch outputC)
exhaustive-patterns)]]
($_ _.and
(_.test "Will reject empty pattern-matching (no branches)."
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 4fa365850..67c02f142 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
@@ -4,8 +4,8 @@
["." monad (#+ do)]]
[data
["%" text/format (#+ format)]
- ["." name ("#@." equivalence)]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["." name]]
+ ["r" math/random (#+ Random)]
["_" test (#+ Test)]
[control
pipe
@@ -13,11 +13,11 @@
[data
["." maybe]
["." product]
- ["." text ("#@." equivalence)]
+ ["." text ("#\." equivalence)]
[number
["n" nat]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
["." type]
["." macro
["." code]]]
@@ -53,7 +53,7 @@
(def: abstraction
(do r.monad
[func-name (r.unicode 5)
- arg-name (|> (r.unicode 5) (r.filter (|>> (text@= func-name) not)))
+ arg-name (|> (r.unicode 5) (r.filter (|>> (text\= func-name) not)))
[outputT outputC] _primitive.primitive
[inputT _] _primitive.primitive
#let [g!arg (code.local-identifier arg-name)]]
@@ -85,8 +85,8 @@
partial-args (|> r.nat (:: ! map (n.% full-args)))
var-idx (|> r.nat (:: ! map (|>> (n.% full-args) (n.max 1))))
inputsTC (r.list full-args _primitive.primitive)
- #let [inputsT (list@map product.left inputsTC)
- inputsC (list@map product.right inputsTC)]
+ #let [inputsT (list\map product.left inputsTC)
+ inputsC (list\map product.right inputsTC)]
[outputT outputC] _primitive.primitive
#let [funcT (type.function inputsT outputT)
partialT (type.function (list.drop partial-args inputsT) outputT)
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
index d2864e6a1..c26e16a6f 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/primitive.lux
@@ -6,13 +6,12 @@
[data
["%" text/format (#+ format)]
["." name]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["r" math/random (#+ Random) ("#\." monad)]
["_" test (#+ Test)]
[control
pipe
["." try (#+ Try)]
["." exception (#+ exception:)]]
- ["." type ("#@." equivalence)]
[macro
["." code]]]
{1
@@ -55,9 +54,9 @@
(Random [Type Code])
(`` ($_ r.either
(~~ (template [<type> <code-wrapper> <value-gen>]
- [(r.and (r@wrap <type>) (r@map <code-wrapper> <value-gen>))]
+ [(r.and (r\wrap <type>) (r\map <code-wrapper> <value-gen>))]
- [Any code.tuple (r.list 0 (r@wrap (' [])))]
+ [Any code.tuple (r.list 0 (r\wrap (' [])))]
[Bit code.bit r.bit]
[Nat code.nat r.nat]
[Int code.int r.int]
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 b67193533..ec5ef8ae0 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
@@ -2,17 +2,17 @@
[lux #*
[abstract ["." monad (#+ do)]]
[data
- ["." name ("#@." equivalence)]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["." name ("#\." equivalence)]]
+ ["r" math/random (#+ Random)]
["_" test (#+ Test)]
[control
pipe
["." try (#+ Try)]]
[data
- ["." text ("#@." equivalence)]
+ ["." text ("#\." equivalence)]
[number
["n" nat]]]
- ["." type ("#@." equivalence)]
+ ["." type ("#\." equivalence)]
[macro
["." code]]]
[//
@@ -70,7 +70,7 @@
scope-name (r.unicode 5)
var-name (r.unicode 5)
dependent-module (|> (r.unicode 5)
- (r.filter (|>> (text@= def-module) not)))]
+ (r.filter (|>> (text\= def-module) not)))]
($_ _.and
(_.test "Can analyse variable."
(|> (//scope.with-scope scope-name
@@ -79,7 +79,7 @@
(_primitive.phase archive.empty (code.local-identifier var-name)))))
(phase.run _primitive.state)
(case> (^ (#try.Success [inferredT (#////analysis.Reference (////reference.local var))]))
- (and (type@= expectedT inferredT)
+ (and (type\= expectedT inferredT)
(n.= 0 var))
_
@@ -93,8 +93,8 @@
(//module.with-module 0 def-module)
(phase.run _primitive.state)
(case> (^ (#try.Success [_ inferredT (#////analysis.Reference (////reference.constant constant-name))]))
- (and (type@= expectedT inferredT)
- (name@= def-name constant-name))
+ (and (type\= expectedT inferredT)
+ (name\= def-name constant-name))
_
false))))
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux
index fc6d49b3d..5ef40f052 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/structure.lux
@@ -4,20 +4,20 @@
[data
["%" text/format (#+ format)]
["." name]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["r" math/random (#+ Random)]
["_" test (#+ Test)]
[control
pipe
["." try]]
[data
- ["." bit ("#@." equivalence)]
+ ["." bit ("#\." equivalence)]
["." product]
["." maybe]
["." text]
[number
["n" nat]]
[collection
- ["." list ("#@." functor)]
+ ["." list ("#\." functor)]
["." set]]]
["." type
["." check]]
@@ -62,7 +62,7 @@
actual//lefts (get@ #////analysis.lefts variant)]
(and (n.= expected//lefts
actual//lefts)
- (bit@= expected//right?
+ (bit\= expected//right?
actual//right?))))
(def: (check-sum type tag size analysis)
@@ -123,14 +123,14 @@
primitives (r.list size _primitive.primitive)
+choice (|> r.nat (:: ! map (n.% (inc size))))
[_ +valueC] _primitive.primitive
- #let [variantT (type.variant (list@map product.left primitives))
+ #let [variantT (type.variant (list\map product.left primitives))
[valueT valueC] (maybe.assume (list.nth choice primitives))
+size (inc size)
+primitives (list.concat (list (list.take choice primitives)
(list [(#.Parameter 1) +valueC])
(list.drop choice primitives)))
[+valueT +valueC] (maybe.assume (list.nth +choice +primitives))
- +variantT (type.variant (list@map product.left +primitives))]]
+ +variantT (type.variant (list\map product.left +primitives))]]
(<| (_.context (%.name (name-of /.sum)))
($_ _.and
(_.test "Can analyse."
@@ -174,17 +174,17 @@
primitives (r.list size _primitive.primitive)
choice (|> r.nat (:: ! map (n.% size)))
[_ +valueC] _primitive.primitive
- #let [tupleT (type.tuple (list@map product.left primitives))
+ #let [tupleT (type.tuple (list\map product.left primitives))
[singletonT singletonC] (|> primitives (list.nth choice) maybe.assume)
+primitives (list.concat (list (list.take choice primitives)
(list [(#.Parameter 1) +valueC])
(list.drop choice primitives)))
- +tupleT (type.tuple (list@map product.left +primitives))]]
+ +tupleT (type.tuple (list\map product.left +primitives))]]
(<| (_.context (%.name (name-of /.product)))
($_ _.and
(_.test "Can analyse."
(|> (//type.with-type tupleT
- (/.product archive.empty _primitive.phase (list@map product.right primitives)))
+ (/.product archive.empty _primitive.phase (list\map product.right primitives)))
(phase.run _primitive.state)
(case> (#try.Success tupleA)
(correct-size? size tupleA)
@@ -193,7 +193,7 @@
false)))
(_.test "Can infer."
(|> (//type.with-inference
- (/.product archive.empty _primitive.phase (list@map product.right primitives)))
+ (/.product archive.empty _primitive.phase (list\map product.right primitives)))
(phase.run _primitive.state)
(case> (#try.Success [_type tupleA])
(and (check.checks? tupleT _type)
@@ -209,9 +209,9 @@
(|> (do phase.monad
[[_ varT] (//type.with-env check.var)
_ (//type.with-env
- (check.check varT (type.tuple (list@map product.left primitives))))]
+ (check.check varT (type.tuple (list\map product.left primitives))))]
(//type.with-type varT
- (/.product archive.empty _primitive.phase (list@map product.right primitives))))
+ (/.product archive.empty _primitive.phase (list\map product.right primitives))))
(phase.run _primitive.state)
(case> (#try.Success tupleA)
(correct-size? size tupleA)
@@ -220,11 +220,11 @@
false)))
(_.test "Can analyse through existential quantification."
(|> (//type.with-type (type.ex-q 1 +tupleT)
- (/.product archive.empty _primitive.phase (list@map product.right +primitives)))
+ (/.product archive.empty _primitive.phase (list\map product.right +primitives)))
check-succeeds))
(_.test "Cannot analyse through universal quantification."
(|> (//type.with-type (type.univ-q 1 +tupleT)
- (/.product archive.empty _primitive.phase (list@map product.right +primitives)))
+ (/.product archive.empty _primitive.phase (list\map product.right +primitives)))
check-fails))
))))
@@ -239,7 +239,7 @@
type-name (r.unicode 5)
#let [with-name (|>> (#.Named [module-name type-name]))
varT (#.Parameter 1)
- primitivesT (list@map product.left primitives)
+ primitivesT (list\map product.left primitives)
[choiceT choiceC] (maybe.assume (list.nth choice primitives))
[other-choiceT other-choiceC] (maybe.assume (list.nth other-choice primitives))
monoT (type.variant primitivesT)
@@ -283,9 +283,9 @@
type-name (r.unicode 5)
choice (|> r.nat (:: ! map (n.% size)))
#let [varT (#.Parameter 1)
- tagsC (list@map (|>> [module-name] code.tag) tags)
- primitivesT (list@map product.left primitives)
- primitivesC (list@map product.right primitives)
+ tagsC (list\map (|>> [module-name] code.tag) tags)
+ primitivesT (list\map product.left primitives)
+ primitivesC (list\map product.right primitives)
monoT (#.Named [module-name type-name] (type.tuple primitivesT))
recordC (list.zip/2 tagsC primitivesC)
polyT (|> (type.tuple (list.concat (list (list.take choice primitivesT)
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 0c0a2d467..b479b523a 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
@@ -5,7 +5,7 @@
[data
["%" text/format (#+ format)]
["." name]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["r" math/random (#+ Random)]
["_" test (#+ Test)]
[control
pipe
@@ -15,7 +15,7 @@
["." atom]]]
[data
["." product]]
- ["." type ("#@." equivalence)]
+ ["." type ("#\." equivalence)]
[macro
["." code]]]
[////
@@ -58,7 +58,7 @@
(do r.monad
[[primT primC] ..primitive
[antiT antiC] (|> ..primitive
- (r.filter (|>> product.left (type@= primT) not)))]
+ (r.filter (|>> product.left (type\= primT) not)))]
($_ _.and
(_.test "Can test for reference equality."
(check-success+ "lux is" (list primC primC) Bit))
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 0a59b5534..16ef89258 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
@@ -6,7 +6,7 @@
["." monad (#+ do)]]
[control
[pipe (#+ case>)]
- ["." try ("#@." functor)]]
+ ["." try ("#\." functor)]]
[data
["." sum]
["." text
@@ -17,10 +17,10 @@
["." rev]
["." frac]]
[collection
- ["." list ("#@." functor fold monoid)]
+ ["." list ("#\." functor fold monoid)]
["." set]]]
[math
- ["." random (#+ Random) ("#@." monad)]]]
+ ["." random (#+ Random)]]]
["." // #_
["#." primitive]]
{1
@@ -53,7 +53,7 @@
(|> maskA
(//.phase archive.empty)
(phase.run [///bundle.empty synthesis.init])
- (try@map (//primitive.corresponds? maskedA))
+ (try\map (//primitive.corresponds? maskedA))
(try.default false)))))
(def: let-test
@@ -127,16 +127,16 @@
(Random [analysis.Pattern Register]))
(do random.monad
[@member random.nat]
- (wrap [(list@fold (function (_ member inner)
+ (wrap [(list\fold (function (_ member inner)
(case member
(#.Left lefts)
(analysis.pattern/tuple
- (list@compose (list.repeat lefts (analysis.pattern/unit))
+ (list\compose (list.repeat lefts (analysis.pattern/unit))
(list inner (analysis.pattern/unit))))
(#.Right lefts)
(analysis.pattern/tuple
- (list@compose (list.repeat (inc lefts) (analysis.pattern/unit))
+ (list\compose (list.repeat (inc lefts) (analysis.pattern/unit))
(list inner)))))
(#analysis.Bind @member)
(list.reverse path))
@@ -290,26 +290,26 @@
branch (: (-> Nat Bit Text Frac Branch)
(function (_ lefts right? value body)
{#analysis.when (if right?
- (analysis.pattern/tuple (list@compose (list.repeat (inc lefts) (analysis.pattern/unit))
+ (analysis.pattern/tuple (list\compose (list.repeat (inc lefts) (analysis.pattern/unit))
(list (analysis.pattern/text value))))
- (analysis.pattern/tuple ($_ list@compose
+ (analysis.pattern/tuple ($_ list\compose
(list.repeat lefts (analysis.pattern/unit))
(list (analysis.pattern/text value)
(analysis.pattern/unit)))))
#analysis.then (analysis.frac body)}))]]
- (wrap [(list@fold (function (_ left right)
+ (wrap [(list\fold (function (_ left right)
(#synthesis.Alt left right))
(path (inc mid-size) true value/last body/last)
(|> (list.zip/2 value/mid body/mid)
(#.Cons [value/first body/first])
list.enumeration
- (list@map (function (_ [lefts' [value body]])
+ (list\map (function (_ [lefts' [value body]])
(path lefts' false value body)))
list.reverse))
[(branch 0 false value/first body/first)
- (list@compose (|> (list.zip/2 value/mid body/mid)
+ (list\compose (|> (list.zip/2 value/mid body/mid)
list.enumeration
- (list@map (function (_ [lefts' [value body]])
+ (list\map (function (_ [lefts' [value body]])
(branch (inc lefts') false value body))))
(list (branch (inc mid-size) true value/last body/last)))]])))
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux
index 4d92094d3..ffb04e31b 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux
@@ -13,7 +13,7 @@
[number
["n" nat]]
[collection
- ["." list ("#@." functor fold monoid)]
+ ["." list ("#\." functor fold monoid)]
["." dictionary (#+ Dictionary)]
["." set]]]
[math
@@ -32,7 +32,7 @@
[///
[arity (#+ Arity)]
["." reference
- ["." variable (#+ Variable) ("#@." equivalence)]]
+ ["." variable (#+ Variable)]]
["." phase]
[meta
["." archive]]]]]]]})
@@ -51,11 +51,11 @@
(def: (n-abstraction arity body)
(-> Arity Analysis Analysis)
- (list@fold (function (_ arity-1 body)
+ (list\fold (function (_ arity-1 body)
(case arity-1
0 (#analysis.Function (list) body)
- _ (#analysis.Function ($_ list@compose
- (list@map (|>> #variable.Foreign)
+ _ (#analysis.Function ($_ list\compose
+ (list\map (|>> #variable.Foreign)
(list.indices arity-1))
(list (#variable.Local 1)))
body)))
@@ -230,7 +230,7 @@
#analysis.value (#analysis.Bind 2)})
#analysis.then actual-output}
{#analysis.when (analysis.pattern/tuple
- (list@compose (list.repeat lefts (analysis.pattern/unit))
+ (list\compose (list.repeat lefts (analysis.pattern/unit))
(if right?
(list (analysis.pattern/unit) (#analysis.Bind 2))
(list (#analysis.Bind 2) (analysis.pattern/unit)))))
@@ -289,7 +289,7 @@
expected-record])
(#analysis.Case actual-record
[{#analysis.when (analysis.pattern/tuple
- (list@compose (list.repeat lefts (analysis.pattern/unit))
+ (list\compose (list.repeat lefts (analysis.pattern/unit))
(if right?
(list (analysis.pattern/unit) (#analysis.Bind 2))
(list (#analysis.Bind 2) (analysis.pattern/unit)))))
@@ -308,27 +308,27 @@
(do {! random.monad}
[resets (random.list arity (random-value false))]
(wrap [true
- (synthesis.loop/recur (list@map (|>> product.right product.left) resets))
+ (synthesis.loop/recur (list\map (|>> product.right product.left) resets))
(analysis.apply [(#analysis.Reference (case arity
1 (reference.local 0)
_ (reference.foreign 0)))
- (list@map (|>> product.right product.right) resets)])])))
+ (list\map (|>> product.right product.right) resets)])])))
(def: (random-scope arity output?)
(-> Arity Scenario)
(do {! random.monad}
[resets (random.list arity (..random-variable arity output?))
[_ expected-output actual-output] (..random-nat output?)]
- (wrap [(list@fold (function (_ new old)
+ (wrap [(list\fold (function (_ new old)
(and new old))
true
- (list@map product.left resets))
+ (list\map product.left resets))
(synthesis.loop/scope
{#synthesis.start (inc arity)
- #synthesis.inits (list@map (|>> product.right product.left) resets)
+ #synthesis.inits (list\map (|>> product.right product.left) resets)
#synthesis.iteration expected-output})
(analysis.apply [(..n-abstraction arity actual-output)
- (list@map (|>> product.right product.right) resets)])])))
+ (list\map (|>> product.right product.right) resets)])])))
(def: (random-loop arity random-value output?)
(-> Arity Scenario Scenario)
@@ -344,8 +344,8 @@
(do {! random.monad}
[[loop?-output expected-output actual-output] (..random-nat output?)
arity (|> random.nat (:: ! map (|>> (n.% 5) inc)))
- #let [environment ($_ list@compose
- (list@map (|>> #variable.Foreign)
+ #let [environment ($_ list\compose
+ (list\map (|>> #variable.Foreign)
(list.indices arity))
(list (#variable.Local 1)))]]
(wrap [true
@@ -365,14 +365,14 @@
[[loop?-abstraction expected-abstraction actual-abstraction] (..random-nat output?)
arity (|> random.nat (:: ! map (|>> (n.% 5) inc)))
inputs (random.list arity (random-value false))]
- (wrap [(list@fold (function (_ new old)
+ (wrap [(list\fold (function (_ new old)
(and new old))
loop?-abstraction
- (list@map product.left inputs))
+ (list\map product.left inputs))
(synthesis.function/apply [expected-abstraction
- (list@map (|>> product.right product.left) inputs)])
+ (list\map (|>> product.right product.left) inputs)])
(analysis.apply [actual-abstraction
- (list@map (|>> product.right product.right) inputs)])])))
+ (list\map (|>> product.right product.right) inputs)])])))
(def: (random-function random-value output?)
(-> Scenario Scenario)
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
index 2667eedac..05a6095bb 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/loop.lux
@@ -10,9 +10,9 @@
[number
["n" nat]]
[collection
- ["." list ("#@." functor)]]]
+ ["." list ("#\." functor)]]]
[math
- ["." random (#+ Random) ("#@." monad)]]]
+ ["." random (#+ Random) ("#\." monad)]]]
{1
["." /
[////
@@ -112,7 +112,7 @@
(let [pattern (: (Scenario Path)
(.function (recur offset arity next)
(`` ($_ random.either
- (random@wrap [next
+ (random\wrap [next
[//.path/pop
//.path/pop]])
(~~ (template [<path> <random>]
@@ -139,7 +139,7 @@
[//.path/side]
[//.path/member]
))
- (random@wrap [(inc next)
+ (random\wrap [(inc next)
[(//.path/bind (/.register-optimization offset next))
(//.path/bind next)]])
))))
@@ -276,7 +276,7 @@
(case (/.optimization true expected-offset expected-inits
{#//.environment (|> expected-offset
list.indices
- (list@map (|>> #variable.Local)))
+ (list\map (|>> #variable.Local)))
#//.arity arity
#//.body iteration})
(^ (#.Some (//.loop/scope [actual-offset actual-inits
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 1a215fb3b..69f087de7 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
@@ -11,7 +11,7 @@
["n" nat]]
[collection
["." list]]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["r" math/random (#+ Random) ("#\." monad)]
["_" test (#+ Test)]]
{1
["." / #_
@@ -87,10 +87,10 @@
_
false))))]
- [#////analysis.Unit #////synthesis.Text (r@wrap ////synthesis.unit)]
+ [#////analysis.Unit #////synthesis.Text (r\wrap ////synthesis.unit)]
[#////analysis.Bit #////synthesis.Bit r.bit]
- [#////analysis.Nat #////synthesis.I64 (r@map .i64 r.nat)]
- [#////analysis.Int #////synthesis.I64 (r@map .i64 r.int)]
- [#////analysis.Rev #////synthesis.I64 (r@map .i64 r.rev)]
+ [#////analysis.Nat #////synthesis.I64 (r\map .i64 r.nat)]
+ [#////analysis.Int #////synthesis.I64 (r\map .i64 r.int)]
+ [#////analysis.Rev #////synthesis.I64 (r\map .i64 r.rev)]
[#////analysis.Frac #////synthesis.F64 r.frac]
[#////analysis.Text #////synthesis.Text (r.unicode 5)]))))))
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 d759ff213..b51a196f0 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
@@ -4,13 +4,13 @@
[data
["%" text/format (#+ format)]
["." name]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["r" math/random (#+ Random)]
["_" test (#+ Test)]
[control
pipe
["." try]]
[data
- ["." bit ("#@." equivalence)]
+ ["." bit ("#\." equivalence)]
["." product]
[number
["n" nat]]
@@ -49,7 +49,7 @@
(case> (^ (#try.Success (////synthesis.variant [leftsS right?S valueS])))
(let [tagS (if right?S (inc leftsS) leftsS)]
(and (n.= tagA tagS)
- (|> tagS (n.= (dec size)) (bit@= right?S))
+ (|> tagS (n.= (dec size)) (bit\= right?S))
(//primitive.corresponds? memberA valueS)))
_
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 45706256b..437d721cd 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
@@ -15,7 +15,7 @@
[number
["n" nat]]
[collection
- ["." list ("#@." functor fold)]
+ ["." list ("#\." functor fold)]
["." dictionary (#+ Dictionary)]]]]
{1
["." /
@@ -97,8 +97,8 @@
(Scenario Synthesis)
(let [registers (dictionary.entries (get@ #necessary context))]
(:: random.monad wrap
- [(synthesis.tuple (list@map (|>> product.left synthesis.variable/local) registers))
- (synthesis.tuple (list@map (|>> product.right synthesis.variable/local) registers))])))
+ [(synthesis.tuple (list\map (|>> product.left synthesis.variable/local) registers))
+ (synthesis.tuple (list\map (|>> product.right synthesis.variable/local) registers))])))
(def: (structure-scenario context)
(Scenario Synthesis)
@@ -244,23 +244,23 @@
inits (random.list ..scope-arity (scenario context))
[expected-iteration actual-iteration] (scenario (update@ #necessary
(function (_ necessary)
- (list@fold (function (_ [idx _] context)
+ (list\fold (function (_ [idx _] context)
(dictionary.put (n.+ real-start idx)
(n.+ fake-start idx)
context))
necessary
(list.enumeration inits)))
context))]
- (wrap [(synthesis.loop/scope [real-start (list@map product.left inits) expected-iteration])
- (synthesis.loop/scope [fake-start (list@map product.right inits) actual-iteration])])))
+ (wrap [(synthesis.loop/scope [real-start (list\map product.left inits) expected-iteration])
+ (synthesis.loop/scope [fake-start (list\map product.right inits) actual-iteration])])))
(def: (recur-scenario scenario context)
(-> (Scenario Synthesis) (Scenario Synthesis))
(do {! random.monad}
[_ (wrap [])
resets (random.list ..scope-arity (scenario context))]
- (wrap [(synthesis.loop/recur (list@map product.left resets))
- (synthesis.loop/recur (list@map product.right resets))])))
+ (wrap [(synthesis.loop/recur (list\map product.left resets))
+ (synthesis.loop/recur (list\map product.right resets))])))
(def: (loop-scenario scenario context)
(-> (Scenario Synthesis) (Scenario Synthesis))
@@ -274,8 +274,8 @@
(do {! random.monad}
[_ (wrap [])
#let [registers (dictionary.entries (get@ #necessary context))
- expected-environment (list@map (|>> product.left #variable.Local) registers)
- actual-environment (list@map (|>> product.right #variable.Local) registers)]
+ expected-environment (list\map (|>> product.left #variable.Local) registers)
+ actual-environment (list\map (|>> product.right #variable.Local) registers)]
[expected-body actual-body] (..primitive-scenario context)]
(wrap [(synthesis.function/abstraction [expected-environment 1 expected-body])
(synthesis.function/abstraction [actual-environment 1 actual-body])])))
@@ -287,8 +287,8 @@
(random.and (random.unicode 1)
(random.unicode 1)))
inputs (random.list ..scope-arity (scenario context))]
- (wrap [(synthesis.function/apply [abstraction (list@map product.left inputs)])
- (synthesis.function/apply [abstraction (list@map product.right inputs)])])))
+ (wrap [(synthesis.function/apply [abstraction (list\map product.left inputs)])
+ (synthesis.function/apply [abstraction (list\map product.right inputs)])])))
(def: (function-scenario scenario context)
(-> (Scenario Synthesis) (Scenario Synthesis))
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux b/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux
index 7c2ece82e..c93eae5f9 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/syntax.lux
@@ -6,7 +6,7 @@
["." name]
[number
["n" nat]]]
- ["r" math/random (#+ Random) ("#@." monad)]
+ ["r" math/random (#+ Random) ("#\." monad)]
["_" test (#+ Test)]
[control
["." try]
@@ -38,18 +38,18 @@
(Random Code)
(let [numeric^ (: (Random Code)
($_ r.either
- (|> r.bit (r@map code.bit))
- (|> r.nat (r@map code.nat))
- (|> r.int (r@map code.int))
- (|> r.rev (r@map code.rev))
- (|> r.safe-frac (r@map code.frac))))
+ (|> r.bit (r\map code.bit))
+ (|> r.nat (r\map code.nat))
+ (|> r.int (r\map code.int))
+ (|> r.rev (r\map code.rev))
+ (|> r.safe-frac (r\map code.frac))))
textual^ (: (Random Code)
($_ r.either
(do r.monad
- [size (|> r.nat (r@map (n.% 20)))]
- (|> (r.ascii/upper-alpha size) (r@map code.text)))
- (|> name^ (r@map code.identifier))
- (|> name^ (r@map code.tag))))
+ [size (|> r.nat (r\map (n.% 20)))]
+ (|> (r.ascii/upper-alpha size) (r\map code.text)))
+ (|> name^ (r\map code.identifier))
+ (|> name^ (r\map code.tag))))
simple^ (: (Random Code)
($_ r.either
numeric^
@@ -57,16 +57,16 @@
(r.rec
(function (_ code^)
(let [multi^ (do r.monad
- [size (|> r.nat (r@map (n.% 3)))]
+ [size (|> r.nat (r\map (n.% 3)))]
(r.list size code^))
composite^ (: (Random Code)
($_ r.either
- (|> multi^ (r@map code.form))
- (|> multi^ (r@map code.tuple))
+ (|> multi^ (r\map code.form))
+ (|> multi^ (r\map code.tuple))
(do r.monad
- [size (|> r.nat (r@map (n.% 3)))]
+ [size (|> r.nat (r\map (n.% 3)))]
(|> (r.list size (r.and code^ code^))
- (r@map code.record)))))]
+ (r\map code.record)))))]
($_ r.either
simple^
composite^))))))
@@ -110,7 +110,7 @@
(Random Text)
(let [char-gen (|> r.nat (r.filter (|>> (n.= (`` (char (~~ (static text.new-line))))) not)))]
(do r.monad
- [size (|> r.nat (r@map (n.% 20)))]
+ [size (|> r.nat (r\map (n.% 20)))]
(r.text char-gen size))))
(def: comment^
diff --git a/stdlib/source/test/lux/world/shell.lux b/stdlib/source/test/lux/world/shell.lux
index f98fc6a17..094b32420 100644
--- a/stdlib/source/test/lux/world/shell.lux
+++ b/stdlib/source/test/lux/world/shell.lux
@@ -5,22 +5,39 @@
[monad (#+ do)]]
[control
["." try (#+ Try)]
- ["." exception (#+ exception:)]]
+ ["." exception (#+ exception:)]
+ ["." io (#+ IO)]
+ [concurrency
+ ["." promise (#+ Promise)]]
+ [security
+ ["!" capability]]
+ [parser
+ ["." environment]]]
[data
+ ["." text ("#\." equivalence)]
[number
["n" nat]
["i" int]]
[collection
- ["." list]]]]
+ ["." list]]]
+ [math
+ ["." random]]]
{1
- ["." /]}
+ ["." /
+ [//
+ [environment (#+ Environment)]]]}
{[1 #spec]
["$." /]})
+(macro: (|private| definition+ compiler)
+ (let [[module _] (name-of /._)]
+ (#.Right [compiler (list (` ("lux in-module" (~ [["" 0 0] (#.Text module)])
+ (~+ definition+))))])))
+
(exception: dead)
(def: (simulation [environment command arguments])
- (-> [/.Environment /.Command (List /.Argument)]
+ (-> [Environment /.Command (List /.Argument)]
(/.Simulation Bit))
(structure
(def: (on-read dead?)
@@ -50,9 +67,80 @@
(exception.throw ..dead [])
(#try.Success [true /.normal])))))
+(def: (io-shell command oops input destruction exit)
+ (-> /.Command Text Text Text /.Exit (/.Shell IO))
+ (structure
+ (def: execute
+ ((|private| /.can-execute)
+ (function (_ [environment command arguments])
+ (io.io
+ (#try.Success
+ (: (/.Process IO)
+ (structure
+ (def: read
+ ((|private| /.can-read)
+ (function (_ _)
+ (io.io (#try.Success command)))))
+ (def: error
+ ((|private| /.can-read)
+ (function (_ _)
+ (io.io (#try.Success oops)))))
+ (def: write
+ ((|private| /.can-write)
+ (function (_ message)
+ (io.io (#try.Failure message)))))
+ (def: destroy
+ ((|private| /.can-destroy)
+ (function (_ _)
+ (io.io (#try.Failure destruction)))))
+ (def: await
+ ((|private| /.can-wait)
+ (function (_ _)
+ (io.io (#try.Success exit))))))))))))))
+
(def: #export test
Test
(<| (_.covering /._)
- (_.with-cover [/.mock /.Simulation]
- ($/.spec (/.mock (|>> ..simulation #try.Success)
- false)))))
+ ($_ _.and
+ (_.with-cover [/.mock /.Simulation]
+ ($/.spec (/.mock (|>> ..simulation #try.Success)
+ false)))
+ (_.cover [/.error]
+ (not (i.= /.normal /.error)))
+ (do random.monad
+ [command (random.ascii/alpha 5)
+ oops (random.ascii/alpha 5)
+ input (random.ascii/alpha 5)
+ destruction (random.ascii/alpha 5)
+ exit random.int
+ #let [shell (/.async (..io-shell command oops input destruction exit))]]
+ (wrap (do {! promise.monad}
+ [verdict (do (try.with !)
+ [process (!.use (:: shell execute) [environment.empty command (list)])
+ read (!.use (:: process read) [])
+ error (!.use (:: process error) [])
+ write? (do !
+ [write (!.use (:: process write) [input])]
+ (wrap (#try.Success (case write
+ (#try.Success _)
+ false
+
+ (#try.Failure write)
+ (text\= input write)))))
+ destroy? (do !
+ [destroy (!.use (:: process destroy) [])]
+ (wrap (#try.Success (case destroy
+ (#try.Success _)
+ false
+
+ (#try.Failure destroy)
+ (text\= destruction destroy)))))
+ await (!.use (:: process await) [])]
+ (wrap (and (text\= command read)
+ (text\= oops error)
+ write?
+ destroy?
+ (i.= exit await))))]
+ (_.claim [/.async /.Can-Write]
+ (try.default false verdict)))))
+ )))