aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux.lux')
-rw-r--r--stdlib/source/library/lux.lux16
1 files changed, 6 insertions, 10 deletions
diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux
index 67f2dc4d3..da0e84a92 100644
--- a/stdlib/source/library/lux.lux
+++ b/stdlib/source/library/lux.lux
@@ -4449,11 +4449,8 @@
(macro: .public (loop tokens)
(let [?params (case tokens
- (pattern (list name [_ {#Tuple bindings}] body))
+ (pattern (list [_ {#Form (list name [_ {#Tuple bindings}])}] body))
{#Some [name bindings body]}
-
- (pattern (list [_ {#Tuple bindings}] body))
- {#Some [(local$ "again") bindings body]}
_
{#None})]
@@ -4482,9 +4479,8 @@
(is (-> Code (Meta Code))
(function (_ _) (..generated_symbol "")))
inits)]
- (meta#in (list (` (let [(~+ (..interleaved aliases inits))]
- (.loop (~ name)
- [(~+ (..interleaved vars aliases))]
+ (meta#in (list (` (..let [(~+ (..interleaved aliases inits))]
+ (..loop ((~ name) [(~+ (..interleaved vars aliases))])
(~ body)))))))))
{#None}
@@ -4515,9 +4511,9 @@
(macro: .public (with_expansions tokens)
(case (parsed (andP (tupleP (someP bindingP)) (someP anyP)) tokens)
{#Some [bindings bodies]}
- (loop [bindings bindings
- map (is (PList (List Code))
- (list))]
+ (loop (again [bindings bindings
+ map (is (PList (List Code))
+ (list))])
(let [normal (is (-> Code (List Code))
(function (_ it)
(list#mix (function (_ [binding expansion] it)