aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/abstract/monad/indexed.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/abstract/monad/indexed.lux')
-rw-r--r--stdlib/source/library/lux/abstract/monad/indexed.lux61
1 files changed, 31 insertions, 30 deletions
diff --git a/stdlib/source/library/lux/abstract/monad/indexed.lux b/stdlib/source/library/lux/abstract/monad/indexed.lux
index 212b190f4..f1d774637 100644
--- a/stdlib/source/library/lux/abstract/monad/indexed.lux
+++ b/stdlib/source/library/lux/abstract/monad/indexed.lux
@@ -8,7 +8,7 @@
[collection
["[0]" list (.open: "[1]#[0]" functor mix)]]]
["[0]" macro (.only)
- [syntax (.only syntax:)]
+ [syntax (.only syntax)]
["[0]" code]]]]
["[0]" //])
@@ -61,33 +61,34 @@
(at <>.monad each (|>> [{.#None}])
<code>.any)))
-(syntax: .public (do [[?name monad] ..named_monad
- context (<code>.tuple (<>.some context))
- expression <code>.any])
- (macro.with_symbols [g!_ g!then]
- (let [body (list#mix (function (_ context next)
- (case context
- {#Macro macro parameter}
- (` ((~ (code.symbol macro))
- (~ parameter)
- (~ next)))
-
- {#Binding [binding value]}
- (` ((~ g!then)
- (.function ((~ g!_) (~ binding))
- (~ next))
- (~ value)))))
- expression
- (list.reversed context))]
- (in (list (case ?name
- {.#Some name}
- (let [name (code.local name)]
- (` (let [(~ name) (~ monad)
- [..in (~' in)
- ..then (~ g!then)] (~ name)]
- (~ body))))
+(def: .public do
+ (syntax (_ [[?name monad] ..named_monad
+ context (<code>.tuple (<>.some context))
+ expression <code>.any])
+ (macro.with_symbols [g!_ g!then]
+ (let [body (list#mix (function (_ context next)
+ (case context
+ {#Macro macro parameter}
+ (` ((~ (code.symbol macro))
+ (~ parameter)
+ (~ next)))
+
+ {#Binding [binding value]}
+ (` ((~ g!then)
+ (.function ((~ g!_) (~ binding))
+ (~ next))
+ (~ value)))))
+ expression
+ (list.reversed context))]
+ (in (list (case ?name
+ {.#Some name}
+ (let [name (code.local name)]
+ (` (let [(~ name) (~ monad)
+ [..in (~' in)
+ ..then (~ g!then)] (~ name)]
+ (~ body))))
- {.#None}
- (` (let [[..in (~' in)
- ..then (~ g!then)] (~ monad)]
- (~ body)))))))))
+ {.#None}
+ (` (let [[..in (~' in)
+ ..then (~ g!then)] (~ monad)]
+ (~ body))))))))))