diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/platform/compiler/phase/synthesis/function.lux | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/stdlib/source/lux/platform/compiler/phase/synthesis/function.lux b/stdlib/source/lux/platform/compiler/phase/synthesis/function.lux index 267d941fc..ccc7835a4 100644 --- a/stdlib/source/lux/platform/compiler/phase/synthesis/function.lux +++ b/stdlib/source/lux/platform/compiler/phase/synthesis/function.lux @@ -8,11 +8,11 @@ ["." text format] [collection - ["." list ("list/." Functor<List> Monoid<List> Fold<List>)] + ["." list ("list/." functor monoid fold)] ["dict" dictionary (#+ Dictionary)]]]] ["." // (#+ Path Synthesis Operation Phase) ["." loop (#+ Transform)] - ["/." // ("operation/." Monad<Operation>) + ["/." // ("operation/." monad) ["." analysis (#+ Environment Arity Analysis)] [// ["." reference (#+ Register Variable)]]]]) @@ -40,7 +40,7 @@ (-> Phase Phase) (function (_ exprA) (let [[funcA argsA] (analysis.application exprA)] - (do ///.Monad<Operation> + (do ///.monad [funcS (phase funcA) argsS (monad.map @ phase argsA) ## locals //.locals @@ -75,7 +75,7 @@ (^template [<tag>] (<tag> left right) - (do ///.Monad<Operation> + (do ///.monad [left' (grow-path grow left) right' (grow-path grow right)] (wrap (<tag> left' right')))) @@ -91,7 +91,7 @@ (def: (grow-sub-environment super sub) (-> Environment Environment (Operation Environment)) - (monad.map ///.Monad<Operation> + (monad.map ///.monad (function (_ variable) (case variable (#reference.Local register) @@ -113,7 +113,7 @@ (#analysis.Tuple membersS+) (|> membersS+ - (monad.map ///.Monad<Operation> (grow environment)) + (monad.map ///.monad (grow environment)) (operation/map (|>> //.tuple)))) (^ (..self-reference)) @@ -139,20 +139,20 @@ (#//.Branch branch) (case branch (#//.Let [inputS register bodyS]) - (do ///.Monad<Operation> + (do ///.monad [inputS' (grow environment inputS) bodyS' (grow environment bodyS)] (wrap (//.branch/let [inputS' (inc register) bodyS']))) (#//.If [testS thenS elseS]) - (do ///.Monad<Operation> + (do ///.monad [testS' (grow environment testS) thenS' (grow environment thenS) elseS' (grow environment elseS)] (wrap (//.branch/if [testS' thenS' elseS']))) (#//.Case [inputS pathS]) - (do ///.Monad<Operation> + (do ///.monad [inputS' (grow environment inputS) pathS' (grow-path (grow environment) pathS)] (wrap (//.branch/case [inputS' pathS'])))) @@ -160,20 +160,20 @@ (#//.Loop loop) (case loop (#//.Scope [start initsS+ iterationS]) - (do ///.Monad<Operation> + (do ///.monad [initsS+' (monad.map @ (grow environment) initsS+) iterationS' (grow environment iterationS)] (wrap (//.loop/scope [start initsS+' iterationS']))) (#//.Recur argumentsS+) (|> argumentsS+ - (monad.map ///.Monad<Operation> (grow environment)) + (monad.map ///.monad (grow environment)) (operation/map (|>> //.loop/recur)))) (#//.Function function) (case function (#//.Abstraction [_env _arity _body]) - (do ///.Monad<Operation> + (do ///.monad [_env' (grow-sub-environment environment _env)] (wrap (//.function/abstraction [_env' _arity _body]))) @@ -184,14 +184,14 @@ (list/compose pre-argsS+ argsS+)])) _ - (do ///.Monad<Operation> + (do ///.monad [funcS' (grow environment funcS) argsS+' (monad.map @ (grow environment) argsS+)] (wrap (//.function/apply [funcS' argsS+'])))))) (#//.Extension name argumentsS+) (|> argumentsS+ - (monad.map ///.Monad<Operation> (grow environment)) + (monad.map ///.monad (grow environment)) (operation/map (|>> (#//.Extension name)))) _ @@ -199,7 +199,7 @@ (def: #export (abstraction phase environment bodyA) (-> Phase Environment Analysis (Operation Synthesis)) - (do ///.Monad<Operation> + (do ///.monad [bodyS (phase bodyA)] (case bodyS (^ (//.function/abstraction [env' down-arity' bodyS'])) |