diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/library/lux.lux | 16 |
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) |