aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/jvm/function.jvm.lux
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/lang/translation/jvm/function.jvm.lux')
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/function.jvm.lux31
1 files changed, 16 insertions, 15 deletions
diff --git a/new-luxc/source/luxc/lang/translation/jvm/function.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/function.jvm.lux
index a8006a772..17585b63c 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/function.jvm.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/function.jvm.lux
@@ -1,22 +1,23 @@
(.module:
[lux (#- function)
[control
- [monad (#+ do)]]
+ ["." monad (#+ do)]]
[data
["." text
format]
[collection
- [list ("list/" Functor<List> Monoid<List>)]]]
- [language
- ["_." reference (#+ Register Variable)]
- ["." compiler
- [analysis (#+ Arity)]
- [synthesis (#+ Synthesis Abstraction Apply)]
- ["." translation]]]]
+ ["." list ("list/." Functor<List> Monoid<List>)]]]
+ [compiler
+ [default
+ ["_." reference (#+ Register Variable)]
+ ["." phase
+ [analysis (#+ Arity)]
+ [synthesis (#+ Synthesis Abstraction Apply)]
+ ["." translation]]]]]
[luxc
[lang
[host
- ["$" jvm (#+ Label Inst Def Operation Compiler)
+ ["$" jvm (#+ Label Inst Def Operation Phase)
["." type]
["." def]
["_" inst]]]]]
@@ -109,7 +110,7 @@
(def: (instance class arity env)
(-> Text Arity (List Variable) (Operation Inst))
- (do compiler.Monad<Operation>
+ (do phase.Monad<Operation>
[captureI+ (monad.map @ reference.variable env)
#let [argsI (if (poly-arg? arity)
(|> (nullsI (dec arity))
@@ -284,13 +285,13 @@
(with-reset class arity env)
applyD
))]
- (do compiler.Monad<Operation>
+ (do phase.Monad<Operation>
[instanceI (instance class arity env)]
(wrap [functionD instanceI]))))
(def: #export (function translate [env arity bodyS])
- (-> Compiler Abstraction (Operation Inst))
- (do compiler.Monad<Operation>
+ (-> Phase Abstraction (Operation Inst))
+ (do phase.Monad<Operation>
[@begin _.make-label
[function-class bodyI] (translation.with-context
(translation.with-anchor [@begin +1]
@@ -312,8 +313,8 @@
(list& pre (segment size post)))))
(def: #export (call translate [functionS argsS])
- (-> Compiler Apply (Operation Inst))
- (do compiler.Monad<Operation>
+ (-> Phase Apply (Operation Inst))
+ (do phase.Monad<Operation>
[functionI (translate functionS)
argsI (monad.map @ translate argsS)
#let [applyI (|> (segment runtime.num-apply-variants argsI)