From 91a1f21f3c75750217d272554bc8a341f075f82d Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 15 Nov 2022 20:07:38 -0400 Subject: Now documenting dependers and dependees. --- lux-cl/source/program.lux | 12 +- lux-js/source/program.lux | 12 +- lux-jvm/source/program.lux | 12 +- lux-lua/source/program.lux | 16 +- lux-mode/lux-mode.el | 4 +- lux-php/source/program.lux | 12 +- lux-python/source/program.lux | 12 +- lux-r/source/program.lux | 12 +- lux-ruby/source/program.lux | 12 +- lux-scheme/source/program.lux | 12 +- stdlib/source/documentation/lux/meta.lux | 4 +- .../lux/meta/compiler/language/lux/declaration.lux | 4 +- .../lux/meta/compiler/language/lux/generation.lux | 64 - .../lux/meta/compiler/language/lux/translation.lux | 64 + stdlib/source/documentation/lux/meta/extension.lux | 6 +- stdlib/source/experiment/tool/interpreter.lux | 24 +- stdlib/source/library/lux.lux | 2 +- stdlib/source/library/lux/abstract/monoid.lux | 4 +- stdlib/source/library/lux/data/color.lux | 197 ++- stdlib/source/library/lux/data/color/named.lux | 13 +- stdlib/source/library/lux/data/color/rgb.lux | 146 +++ .../source/library/lux/data/format/css/value.lux | 198 ++- stdlib/source/library/lux/documentation.lux | 125 +- stdlib/source/library/lux/ffi.lux | 72 +- stdlib/source/library/lux/ffi/export.js.lux | 20 +- stdlib/source/library/lux/ffi/export.lua.lux | 38 +- stdlib/source/library/lux/ffi/export.py.lux | 20 +- stdlib/source/library/lux/ffi/export.rb.lux | 20 +- stdlib/source/library/lux/math.lux | 40 +- .../library/lux/meta/compiler/default/init.lux | 74 +- .../library/lux/meta/compiler/default/platform.lux | 28 +- .../compiler/language/lux/analysis/evaluation.lux | 30 +- .../lux/meta/compiler/language/lux/declaration.lux | 12 +- .../lux/meta/compiler/language/lux/generation.lux | 401 ------ .../compiler/language/lux/phase/declaration.lux | 4 +- .../language/lux/phase/extension/analysis/jvm.lux | 54 +- .../language/lux/phase/extension/analysis/lux.lux | 6 +- .../lux/phase/extension/declaration/jvm.lux | 90 +- .../lux/phase/extension/declaration/lux.lux | 76 +- .../lux/phase/extension/generation/common_lisp.lux | 18 - .../extension/generation/common_lisp/common.lux | 169 --- .../extension/generation/common_lisp/host.lux | 15 - .../language/lux/phase/extension/generation/js.lux | 18 - .../lux/phase/extension/generation/js/common.lux | 240 ---- .../lux/phase/extension/generation/js/host.lux | 162 --- .../lux/phase/extension/generation/jvm.lux | 20 - .../lux/phase/extension/generation/jvm/common.lux | 468 ------- .../lux/phase/extension/generation/jvm/host.lux | 1367 -------------------- .../lux/phase/extension/generation/lua.lux | 18 - .../lux/phase/extension/generation/lua/common.lux | 226 ---- .../lux/phase/extension/generation/lua/host.lux | 202 --- .../lux/phase/extension/generation/php.lux | 18 - .../lux/phase/extension/generation/php/common.lux | 181 --- .../lux/phase/extension/generation/php/host.lux | 145 --- .../lux/phase/extension/generation/python.lux | 18 - .../phase/extension/generation/python/common.lux | 233 ---- .../lux/phase/extension/generation/python/host.lux | 169 --- .../language/lux/phase/extension/generation/r.lux | 18 - .../lux/phase/extension/generation/r/common.lux | 168 --- .../lux/phase/extension/generation/r/host.lux | 42 - .../lux/phase/extension/generation/ruby.lux | 18 - .../lux/phase/extension/generation/ruby/common.lux | 230 ---- .../lux/phase/extension/generation/ruby/host.lux | 138 -- .../lux/phase/extension/generation/scheme.lux | 18 - .../phase/extension/generation/scheme/common.lux | 164 --- .../lux/phase/extension/generation/scheme/host.lux | 111 -- .../language/lux/phase/extension/synthesis/lux.lux | 8 +- .../phase/extension/translation/common_lisp.lux | 18 + .../extension/translation/common_lisp/common.lux | 169 +++ .../extension/translation/common_lisp/host.lux | 15 + .../lux/phase/extension/translation/js.lux | 18 + .../lux/phase/extension/translation/js/common.lux | 240 ++++ .../lux/phase/extension/translation/js/host.lux | 162 +++ .../lux/phase/extension/translation/jvm.lux | 20 + .../lux/phase/extension/translation/jvm/common.lux | 468 +++++++ .../lux/phase/extension/translation/jvm/host.lux | 1367 ++++++++++++++++++++ .../lux/phase/extension/translation/lua.lux | 18 + .../lux/phase/extension/translation/lua/common.lux | 226 ++++ .../lux/phase/extension/translation/lua/host.lux | 202 +++ .../lux/phase/extension/translation/php.lux | 18 + .../lux/phase/extension/translation/php/common.lux | 181 +++ .../lux/phase/extension/translation/php/host.lux | 145 +++ .../lux/phase/extension/translation/python.lux | 18 + .../phase/extension/translation/python/common.lux | 233 ++++ .../phase/extension/translation/python/host.lux | 169 +++ .../language/lux/phase/extension/translation/r.lux | 18 + .../lux/phase/extension/translation/r/common.lux | 168 +++ .../lux/phase/extension/translation/r/host.lux | 42 + .../lux/phase/extension/translation/ruby.lux | 18 + .../phase/extension/translation/ruby/common.lux | 230 ++++ .../lux/phase/extension/translation/ruby/host.lux | 137 ++ .../lux/phase/extension/translation/scheme.lux | 18 + .../phase/extension/translation/scheme/common.lux | 164 +++ .../phase/extension/translation/scheme/host.lux | 110 ++ .../language/lux/phase/generation/common_lisp.lux | 60 - .../lux/phase/generation/common_lisp/extension.lux | 14 - .../generation/common_lisp/extension/common.lux | 138 -- .../lux/phase/generation/common_lisp/function.lux | 104 -- .../lux/phase/generation/common_lisp/loop.lux | 72 -- .../lux/phase/generation/common_lisp/primitive.lux | 22 - .../lux/phase/generation/common_lisp/reference.lux | 14 - .../lux/phase/generation/common_lisp/runtime.lux | 305 ----- .../lux/phase/generation/common_lisp/structure.lux | 38 - .../lux/phase/generation/common_lisp/when.lux | 263 ---- .../language/lux/phase/generation/extension.lux | 85 -- .../compiler/language/lux/phase/generation/js.lux | 90 -- .../language/lux/phase/generation/js/function.lux | 131 -- .../language/lux/phase/generation/js/loop.lux | 116 -- .../language/lux/phase/generation/js/primitive.lux | 22 - .../language/lux/phase/generation/js/reference.lux | 14 - .../language/lux/phase/generation/js/runtime.lux | 838 ------------ .../language/lux/phase/generation/js/structure.lux | 37 - .../language/lux/phase/generation/js/when.lux | 346 ----- .../compiler/language/lux/phase/generation/jvm.lux | 128 -- .../language/lux/phase/generation/jvm/debug.lux | 31 - .../language/lux/phase/generation/jvm/function.lux | 200 --- .../lux/phase/generation/jvm/function/abstract.lux | 26 - .../generation/jvm/function/field/constant.lux | 27 - .../jvm/function/field/constant/arity.lux | 17 - .../generation/jvm/function/field/variable.lux | 57 - .../jvm/function/field/variable/count.lux | 35 - .../jvm/function/field/variable/foreign.lux | 40 - .../jvm/function/field/variable/partial.lux | 59 - .../lux/phase/generation/jvm/function/method.lux | 15 - .../phase/generation/jvm/function/method/apply.lux | 159 --- .../jvm/function/method/implementation.lux | 59 - .../phase/generation/jvm/function/method/init.lux | 105 -- .../phase/generation/jvm/function/method/new.lux | 82 -- .../phase/generation/jvm/function/method/reset.lux | 51 - .../language/lux/phase/generation/jvm/host.lux | 194 --- .../language/lux/phase/generation/jvm/loop.lux | 95 -- .../lux/phase/generation/jvm/primitive.lux | 134 -- .../language/lux/phase/generation/jvm/program.lux | 168 --- .../lux/phase/generation/jvm/reference.lux | 74 -- .../language/lux/phase/generation/jvm/runtime.lux | 680 ---------- .../lux/phase/generation/jvm/structure.lux | 97 -- .../language/lux/phase/generation/jvm/type.lux | 24 - .../language/lux/phase/generation/jvm/value.lux | 50 - .../language/lux/phase/generation/jvm/when.lux | 327 ----- .../compiler/language/lux/phase/generation/lua.lux | 90 -- .../language/lux/phase/generation/lua/function.lux | 144 --- .../language/lux/phase/generation/lua/loop.lux | 124 -- .../lux/phase/generation/lua/primitive.lux | 17 - .../lux/phase/generation/lua/reference.lux | 14 - .../language/lux/phase/generation/lua/runtime.lux | 461 ------- .../lux/phase/generation/lua/structure.lux | 36 - .../language/lux/phase/generation/lua/when.lux | 304 ----- .../compiler/language/lux/phase/generation/php.lux | 110 -- .../lux/phase/generation/php/extension.lux | 14 - .../lux/phase/generation/php/extension/common.lux | 113 -- .../language/lux/phase/generation/php/function.lux | 117 -- .../language/lux/phase/generation/php/loop.lux | 125 -- .../lux/phase/generation/php/primitive.lux | 31 - .../lux/phase/generation/php/reference.lux | 14 - .../language/lux/phase/generation/php/runtime.lux | 635 --------- .../lux/phase/generation/php/structure.lux | 42 - .../language/lux/phase/generation/php/when.lux | 297 ----- .../language/lux/phase/generation/python.lux | 80 -- .../lux/phase/generation/python/function.lux | 117 -- .../language/lux/phase/generation/python/loop.lux | 127 -- .../lux/phase/generation/python/primitive.lux | 19 - .../lux/phase/generation/python/reference.lux | 14 - .../lux/phase/generation/python/runtime.lux | 495 ------- .../lux/phase/generation/python/structure.lux | 36 - .../language/lux/phase/generation/python/when.lux | 362 ------ .../compiler/language/lux/phase/generation/r.lux | 62 - .../language/lux/phase/generation/r/function.lux | 118 -- .../language/lux/phase/generation/r/loop.lux | 66 - .../language/lux/phase/generation/r/primitive.lux | 19 - .../lux/phase/generation/r/procedure/common.lux | 292 ----- .../lux/phase/generation/r/procedure/host.lux | 90 -- .../language/lux/phase/generation/r/reference.lux | 14 - .../language/lux/phase/generation/r/runtime.lux | 882 ------------- .../language/lux/phase/generation/r/structure.lux | 41 - .../language/lux/phase/generation/r/when.lux | 242 ---- .../language/lux/phase/generation/reference.lux | 101 -- .../language/lux/phase/generation/ruby.lux | 80 -- .../lux/phase/generation/ruby/function.lux | 123 -- .../language/lux/phase/generation/ruby/loop.lux | 96 -- .../lux/phase/generation/ruby/primitive.lux | 17 - .../lux/phase/generation/ruby/reference.lux | 14 - .../language/lux/phase/generation/ruby/runtime.lux | 638 --------- .../lux/phase/generation/ruby/structure.lux | 36 - .../language/lux/phase/generation/ruby/when.lux | 382 ------ .../language/lux/phase/generation/scheme.lux | 62 - .../lux/phase/generation/scheme/extension.lux | 14 - .../phase/generation/scheme/extension/common.lux | 179 --- .../lux/phase/generation/scheme/function.lux | 102 -- .../language/lux/phase/generation/scheme/loop.lux | 65 - .../lux/phase/generation/scheme/primitive.lux | 17 - .../lux/phase/generation/scheme/reference.lux | 14 - .../lux/phase/generation/scheme/runtime.lux | 389 ------ .../lux/phase/generation/scheme/structure.lux | 41 - .../language/lux/phase/generation/scheme/when.lux | 225 ---- .../compiler/language/lux/phase/synthesis/loop.lux | 4 +- .../language/lux/phase/translation/common_lisp.lux | 60 + .../phase/translation/common_lisp/extension.lux | 14 + .../translation/common_lisp/extension/common.lux | 138 ++ .../lux/phase/translation/common_lisp/function.lux | 104 ++ .../lux/phase/translation/common_lisp/loop.lux | 72 ++ .../phase/translation/common_lisp/primitive.lux | 22 + .../phase/translation/common_lisp/reference.lux | 14 + .../lux/phase/translation/common_lisp/runtime.lux | 305 +++++ .../phase/translation/common_lisp/structure.lux | 38 + .../lux/phase/translation/common_lisp/when.lux | 263 ++++ .../language/lux/phase/translation/extension.lux | 85 ++ .../compiler/language/lux/phase/translation/js.lux | 90 ++ .../language/lux/phase/translation/js/function.lux | 131 ++ .../language/lux/phase/translation/js/loop.lux | 116 ++ .../lux/phase/translation/js/primitive.lux | 22 + .../lux/phase/translation/js/reference.lux | 14 + .../language/lux/phase/translation/js/runtime.lux | 838 ++++++++++++ .../lux/phase/translation/js/structure.lux | 37 + .../language/lux/phase/translation/js/when.lux | 346 +++++ .../language/lux/phase/translation/jvm.lux | 128 ++ .../language/lux/phase/translation/jvm/debug.lux | 31 + .../lux/phase/translation/jvm/function.lux | 200 +++ .../phase/translation/jvm/function/abstract.lux | 26 + .../translation/jvm/function/field/constant.lux | 27 + .../jvm/function/field/constant/arity.lux | 17 + .../translation/jvm/function/field/variable.lux | 57 + .../jvm/function/field/variable/count.lux | 35 + .../jvm/function/field/variable/foreign.lux | 40 + .../jvm/function/field/variable/partial.lux | 59 + .../lux/phase/translation/jvm/function/method.lux | 15 + .../translation/jvm/function/method/apply.lux | 159 +++ .../jvm/function/method/implementation.lux | 59 + .../phase/translation/jvm/function/method/init.lux | 105 ++ .../phase/translation/jvm/function/method/new.lux | 82 ++ .../translation/jvm/function/method/reset.lux | 51 + .../language/lux/phase/translation/jvm/host.lux | 194 +++ .../language/lux/phase/translation/jvm/loop.lux | 95 ++ .../lux/phase/translation/jvm/primitive.lux | 134 ++ .../language/lux/phase/translation/jvm/program.lux | 168 +++ .../lux/phase/translation/jvm/reference.lux | 74 ++ .../language/lux/phase/translation/jvm/runtime.lux | 680 ++++++++++ .../lux/phase/translation/jvm/structure.lux | 97 ++ .../language/lux/phase/translation/jvm/type.lux | 24 + .../language/lux/phase/translation/jvm/value.lux | 50 + .../language/lux/phase/translation/jvm/when.lux | 327 +++++ .../language/lux/phase/translation/lua.lux | 90 ++ .../lux/phase/translation/lua/function.lux | 144 +++ .../language/lux/phase/translation/lua/loop.lux | 124 ++ .../lux/phase/translation/lua/primitive.lux | 17 + .../lux/phase/translation/lua/reference.lux | 14 + .../language/lux/phase/translation/lua/runtime.lux | 461 +++++++ .../lux/phase/translation/lua/structure.lux | 36 + .../language/lux/phase/translation/lua/when.lux | 304 +++++ .../language/lux/phase/translation/php.lux | 110 ++ .../lux/phase/translation/php/extension.lux | 14 + .../lux/phase/translation/php/extension/common.lux | 113 ++ .../lux/phase/translation/php/function.lux | 117 ++ .../language/lux/phase/translation/php/loop.lux | 125 ++ .../lux/phase/translation/php/primitive.lux | 31 + .../lux/phase/translation/php/reference.lux | 14 + .../language/lux/phase/translation/php/runtime.lux | 635 +++++++++ .../lux/phase/translation/php/structure.lux | 42 + .../language/lux/phase/translation/php/when.lux | 297 +++++ .../language/lux/phase/translation/python.lux | 80 ++ .../lux/phase/translation/python/function.lux | 117 ++ .../language/lux/phase/translation/python/loop.lux | 127 ++ .../lux/phase/translation/python/primitive.lux | 19 + .../lux/phase/translation/python/reference.lux | 14 + .../lux/phase/translation/python/runtime.lux | 495 +++++++ .../lux/phase/translation/python/structure.lux | 36 + .../language/lux/phase/translation/python/when.lux | 362 ++++++ .../compiler/language/lux/phase/translation/r.lux | 62 + .../language/lux/phase/translation/r/function.lux | 118 ++ .../language/lux/phase/translation/r/loop.lux | 66 + .../language/lux/phase/translation/r/primitive.lux | 19 + .../lux/phase/translation/r/procedure/common.lux | 292 +++++ .../lux/phase/translation/r/procedure/host.lux | 90 ++ .../language/lux/phase/translation/r/reference.lux | 14 + .../language/lux/phase/translation/r/runtime.lux | 882 +++++++++++++ .../language/lux/phase/translation/r/structure.lux | 41 + .../language/lux/phase/translation/r/when.lux | 242 ++++ .../language/lux/phase/translation/reference.lux | 101 ++ .../language/lux/phase/translation/ruby.lux | 80 ++ .../lux/phase/translation/ruby/function.lux | 123 ++ .../language/lux/phase/translation/ruby/loop.lux | 96 ++ .../lux/phase/translation/ruby/primitive.lux | 17 + .../lux/phase/translation/ruby/reference.lux | 14 + .../lux/phase/translation/ruby/runtime.lux | 638 +++++++++ .../lux/phase/translation/ruby/structure.lux | 36 + .../language/lux/phase/translation/ruby/when.lux | 382 ++++++ .../language/lux/phase/translation/scheme.lux | 62 + .../lux/phase/translation/scheme/extension.lux | 14 + .../phase/translation/scheme/extension/common.lux | 179 +++ .../lux/phase/translation/scheme/function.lux | 102 ++ .../language/lux/phase/translation/scheme/loop.lux | 65 + .../lux/phase/translation/scheme/primitive.lux | 17 + .../lux/phase/translation/scheme/reference.lux | 14 + .../lux/phase/translation/scheme/runtime.lux | 389 ++++++ .../lux/phase/translation/scheme/structure.lux | 41 + .../language/lux/phase/translation/scheme/when.lux | 225 ++++ .../lux/meta/compiler/language/lux/synthesis.lux | 2 +- .../lux/meta/compiler/language/lux/translation.lux | 401 ++++++ .../compiler/meta/archive/artifact/category.lux | 4 +- .../lux/meta/compiler/meta/archive/registry.lux | 8 +- .../compiler/meta/cache/dependency/artifact.lux | 6 +- .../library/lux/meta/compiler/meta/io/archive.lux | 42 +- .../lux/meta/compiler/meta/packager/jvm.lux | 2 +- .../lux/meta/compiler/meta/packager/scheme.lux | 2 +- stdlib/source/library/lux/meta/extension.lux | 16 +- stdlib/source/library/lux/meta/type/linear.lux | 189 +++ stdlib/source/library/lux/meta/type/resource.lux | 189 --- stdlib/source/program/compositor.lux | 12 +- stdlib/source/specification/compositor.lux | 16 +- stdlib/source/specification/compositor/common.lux | 28 +- stdlib/source/test/lux.lux | 3 +- stdlib/source/test/lux/control/maybe.lux | 3 +- stdlib/source/test/lux/data.lux | 5 +- stdlib/source/test/lux/data/collection/list.lux | 3 +- stdlib/source/test/lux/data/color.lux | 25 +- stdlib/source/test/lux/data/color/rgb.lux | 128 ++ .../language/lux/phase/synthesis/primitive.lux | 4 +- .../lux/meta/compiler/meta/archive/registry.lux | 10 +- stdlib/source/test/lux/meta/extension.lux | 124 +- stdlib/source/test/lux/meta/type.lux | 4 +- stdlib/source/test/lux/meta/type/linear.lux | 194 +++ stdlib/source/test/lux/meta/type/resource.lux | 194 --- 321 files changed, 20579 insertions(+), 20189 deletions(-) delete mode 100644 stdlib/source/documentation/lux/meta/compiler/language/lux/generation.lux create mode 100644 stdlib/source/documentation/lux/meta/compiler/language/lux/translation.lux create mode 100644 stdlib/source/library/lux/data/color/rgb.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/generation.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/extension.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/extension/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/when.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/extension.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/when.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/debug.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/abstract.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/constant.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/constant/arity.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/count.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/foreign.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/apply.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/init.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/new.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/reset.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/program.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/type.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/value.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/when.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/when.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/extension.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/extension/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/when.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/when.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/procedure/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/procedure/host.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/when.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/ruby.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/ruby/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/ruby/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/ruby/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/ruby/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/ruby/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/ruby/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/ruby/when.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/extension.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/extension/common.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/function.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/loop.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/primitive.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/reference.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/runtime.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/structure.lux delete mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/scheme/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/extension.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/extension/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/common_lisp/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/extension.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/debug.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant/arity.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/init.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/new.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/program.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/extension.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/extension/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/php/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/procedure/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/procedure/host.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/r/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/extension.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/extension/common.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/function.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/loop.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/primitive.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/reference.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/runtime.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/structure.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/scheme/when.lux create mode 100644 stdlib/source/library/lux/meta/compiler/language/lux/translation.lux create mode 100644 stdlib/source/library/lux/meta/type/linear.lux delete mode 100644 stdlib/source/library/lux/meta/type/resource.lux create mode 100644 stdlib/source/test/lux/data/color/rgb.lux create mode 100644 stdlib/source/test/lux/meta/type/linear.lux delete mode 100644 stdlib/source/test/lux/meta/type/resource.lux diff --git a/lux-cl/source/program.lux b/lux-cl/source/program.lux index 502f0d329..4377dcc45 100644 --- a/lux-cl/source/program.lux +++ b/lux-cl/source/program.lux @@ -38,7 +38,7 @@ [language [lux [program (.only Program)] - [generation (.only Context Host)] + [translation (.only Context Host)] ["[0]" synthesis] [analysis [macro (.only Expander)]] @@ -47,9 +47,9 @@ ["[1]/[0]" bundle] ["[0]" analysis ["[1]" common_lisp]] - ["[0]" generation + ["[0]" translation ["[1]" common_lisp]]] - [generation + [translation ["[0]" reference] ["[0]" common_lisp ["[0]" runtime]]]]]] @@ -346,8 +346,8 @@ [host ..host] (wrap [platform.#file_system (file.async file.default) platform.#host host - platform.#phase common_lisp.generate - platform.#runtime runtime.generate + platform.#phase common_lisp.translate + platform.#runtime runtime.translate platform.#write (|>> _.code (at encoding.utf8 encoded))]))) (def get_ecl_cli_inputs @@ -424,7 +424,7 @@ ..expander analysis.bundle (io.io platform) - generation.bundle + translation.bundle extension/bundle.empty ..program [(And _.Tag Register) (type_literal (_.Expression Any)) (type_literal (_.Expression Any))] diff --git a/lux-js/source/program.lux b/lux-js/source/program.lux index 279b7a448..f7729ec2e 100644 --- a/lux-js/source/program.lux +++ b/lux-js/source/program.lux @@ -43,7 +43,7 @@ [language [lux [program (.only Program)] - [generation (.only Host)] + [translation (.only Host)] [analysis [macro (.only Expander)]] [phase @@ -51,9 +51,9 @@ ["[1]/[0]" bundle] ["[0]" analysis ["[1]" js]] - ["[0]" generation + ["[0]" translation ["[1]" js]]] - [generation + [translation ["[0]" reference] ["[0]" js (.only) ["[0]" runtime] @@ -650,8 +650,8 @@ ... This would crash if the compiler was run on a browser. @.js (maybe.trusted file.default)) platform.#host host - platform.#phase js.generate - platform.#runtime runtime.generate + platform.#phase js.translate + platform.#runtime runtime.translate platform.#phase_wrapper ..phase_wrapper platform.#write (|>> _.code (at utf8.codec encoded))]))) @@ -731,7 +731,7 @@ ..expander analysis.bundle (io.io platform) - generation.bundle + translation.bundle extension/bundle.empty ..lux_program (reference.constant js/reference.system) diff --git a/lux-jvm/source/program.lux b/lux-jvm/source/program.lux index 82d1fb6e3..b16467fbb 100644 --- a/lux-jvm/source/program.lux +++ b/lux-jvm/source/program.lux @@ -34,18 +34,18 @@ ["[1]" jvm]]] [language [lux - [generation (.only Operation)] + [translation (.only Operation)] [analysis [macro (.only Expander)]] [phase ["[0]" extension (.only) ["[0]" analysis ["[1]" jvm]] - ["[0]" generation + ["[0]" translation ["[1]" jvm]] ["[0]" declaration ["[1]" jvm]]] - [generation + [translation ["/" jvm (.only) ["[1][0]" runtime (.only Anchor Definition)] ["[1][0]" host] @@ -120,8 +120,8 @@ [platform.#file_system (file.async file.default) platform.#host host - platform.#phase /.generate - platform.#runtime /runtime.generate + platform.#phase /.translate + platform.#runtime /runtime.translate platform.#phase_wrapper ..phase_wrapper platform.#write product.right]]))) @@ -172,7 +172,7 @@ ..expander (analysis.bundle loader host) (io.io platform) - generation.bundle + translation.bundle (declaration.bundle loader ..extender) (/program.program /runtime.class_name) /reference.constant diff --git a/lux-lua/source/program.lux b/lux-lua/source/program.lux index a70d6b37a..f16ed850f 100644 --- a/lux-lua/source/program.lux +++ b/lux-lua/source/program.lux @@ -40,7 +40,7 @@ [language [lux [program (.only Program)] - [generation (.only Host)] + [translation (.only Host)] [analysis [macro (.only Expander)]] [phase @@ -48,9 +48,9 @@ ["[1]/[0]" bundle] ["[0]" analysis ["[1]" lua]] - ["[0]" generation + ["[0]" translation ["[1]" lua]]] - [generation + [translation ["[0]" reference] ["[0]" lua (.only) ["[0]" runtime] @@ -849,8 +849,8 @@ (in [baggage [platform.#file_system (file.async file.default) platform.#host host - platform.#phase lua.generate - platform.#runtime runtime.generate + platform.#phase lua.translate + platform.#runtime runtime.translate platform.#phase_wrapper ..phase_wrapper platform.#write (|>> _.code (at utf8.codec encoded))]])))] (for @.old @@ -861,8 +861,8 @@ [host ..host] (in [platform.#file_system (file.async file.default) platform.#host host - platform.#phase lua.generate - platform.#runtime runtime.generate + platform.#phase lua.translate + platform.#runtime runtime.translate platform.#phase_wrapper ..phase_wrapper platform.#write (|>> _.code (at utf8.codec encoded))]))))) @@ -897,7 +897,7 @@ @.lua ..expander) analysis.bundle (io.io platform) - generation.bundle + translation.bundle extension/bundle.empty ..lux_program (reference.constant lua/reference.system) diff --git a/lux-mode/lux-mode.el b/lux-mode/lux-mode.el index e01bf3121..5418fa683 100644 --- a/lux-mode/lux-mode.el +++ b/lux-mode/lux-mode.el @@ -396,7 +396,7 @@ Called by `imenu--generic-function'." (function-definition (altRE "function" "|>>" "<<|" "program")) (remember (altRE "remember" "to_do" "fix_me")) - (extension (altRE "analysis" "synthesis" "generation" "declaration")) + (extension (altRE "analysis" "synthesis" "translation" "declaration")) (definition (altRE "\\.require" "def" "inlined" "type"))) (let ((control (altRE control//flow @@ -592,7 +592,7 @@ This function also returns nil meaning don't specify the indentation." ("analysis" 'defun) ("synthesis" 'defun) - ("generation" 'defun) + ("translation" 'defun) ("declaration" 'defun) ("class" 'defun) diff --git a/lux-php/source/program.lux b/lux-php/source/program.lux index 7e4cbee67..024ca3553 100644 --- a/lux-php/source/program.lux +++ b/lux-php/source/program.lux @@ -40,7 +40,7 @@ [language [lux [program (.only Program)] - [generation (.only Context Host)] + [translation (.only Context Host)] ["[0]" synthesis] [analysis [macro (.only Expander)]] @@ -49,9 +49,9 @@ ["[1]/[0]" bundle] ["[0]" analysis ["[1]" php]] - ["[0]" generation + ["[0]" translation ["[1]" php]]] - [generation + [translation ["[0]" reference] ["[0]" php ["[0]" runtime]]]]]] @@ -511,8 +511,8 @@ [host ..host] (wrap [platform.#file_system (file.async file.default) platform.#host host - platform.#phase php.generate - platform.#runtime runtime.generate + platform.#phase php.translate + platform.#runtime runtime.translate platform.#write (|>> _.code (at utf8.codec encoded))]))) (def (program context program) @@ -574,7 +574,7 @@ ..expander analysis.bundle (io.io platform) - generation.bundle + translation.bundle extension/bundle.empty ..program [(& Nat _.Label) _.Expression _.Statement] diff --git a/lux-python/source/program.lux b/lux-python/source/program.lux index 8a995be27..aac58040c 100644 --- a/lux-python/source/program.lux +++ b/lux-python/source/program.lux @@ -42,7 +42,7 @@ [language [lux [program (.only Program)] - [generation (.only Host)] + [translation (.only Host)] ["[0]" synthesis] [analysis [macro (.only Expander)]] @@ -51,9 +51,9 @@ ["[1]/[0]" bundle] ["[0]" analysis ["[1]" python]] - ["[0]" generation + ["[0]" translation ["[1]" python]]] - [generation + [translation ["[0]" reference] ["[0]" python (.only) ["[0]" runtime] @@ -534,8 +534,8 @@ [host ..host] (in [platform.#file_system (file.async file.default) platform.#host host - platform.#phase python.generate - platform.#runtime runtime.generate + platform.#phase python.translate + platform.#runtime runtime.translate platform.#phase_wrapper ..phase_wrapper platform.#write (|>> _.code (at utf8.codec encoded))]))) @@ -587,7 +587,7 @@ ..expander analysis.bundle ..platform - generation.bundle + translation.bundle extension/bundle.empty ..lux_program (reference.constant python/reference.system) diff --git a/lux-r/source/program.lux b/lux-r/source/program.lux index 098c092b6..2fa7172e4 100644 --- a/lux-r/source/program.lux +++ b/lux-r/source/program.lux @@ -42,7 +42,7 @@ [language [lux [program (.only Program)] - [generation (.only Context Host)] + [translation (.only Context Host)] ["[0]" synthesis] [analysis [macro (.only Expander)]] @@ -51,9 +51,9 @@ ["[1]/[0]" bundle] ["[0]" analysis ["[1]" r]] - ["[0]" generation + ["[0]" translation ["[1]" r]]] - [generation + [translation ["[0]" reference] ["[0]" r ["[0]" runtime]]]]]] @@ -553,8 +553,8 @@ (wrap [interpreter [platform.#file_system (file.async file.default) platform.#host host - platform.#phase r.generate - platform.#runtime runtime.generate + platform.#phase r.translate + platform.#runtime runtime.translate platform.#write (|>> _.code (at utf8.codec encoded))]]))) (def (program context program) @@ -608,7 +608,7 @@ (..expander interpreter) analysis.bundle (io.io platform) - generation.bundle + translation.bundle extension/bundle.empty ..program [_.SVar _.Expression _.Expression] diff --git a/lux-ruby/source/program.lux b/lux-ruby/source/program.lux index 728949384..a16ad4dbd 100644 --- a/lux-ruby/source/program.lux +++ b/lux-ruby/source/program.lux @@ -39,7 +39,7 @@ [language [lux [program (.only Program)] - [generation (.only Host)] + [translation (.only Host)] ["[0]" synthesis] [analysis [macro (.only Expander)]] @@ -48,9 +48,9 @@ ["[1]/[0]" bundle] ["[0]" analysis ["[1]" ruby]] - ["[0]" generation + ["[0]" translation ["[1]" ruby]]] - [generation + [translation ["[0]" reference] ["[0]" ruby (.only) ["[0]" runtime] @@ -966,8 +966,8 @@ [host ..host] (in [platform.#file_system (file.async file.default) platform.#host host - platform.#phase ruby.generate - platform.#runtime runtime.generate + platform.#phase ruby.translate + platform.#runtime runtime.translate platform.#phase_wrapper ..phase_wrapper platform.#write (|>> _.code (at utf8.codec encoded))]))) @@ -1001,7 +1001,7 @@ ..expander analysis.bundle ..platform - generation.bundle + translation.bundle extension/bundle.empty ..lux_program (reference.constant ruby/reference.system) diff --git a/lux-scheme/source/program.lux b/lux-scheme/source/program.lux index 3af04436f..ebc1fcd69 100644 --- a/lux-scheme/source/program.lux +++ b/lux-scheme/source/program.lux @@ -40,7 +40,7 @@ [language [lux [program (.only Program)] - [generation (.only Context Host)] + [translation (.only Context Host)] ["[0]" synthesis] [analysis [macro (.only Expander)]] @@ -49,9 +49,9 @@ ["[1]/[0]" bundle] ["[0]" analysis ["[1]" scheme]] - ["[0]" generation + ["[0]" translation ["[1]" scheme]]] - [generation + [translation ["[0]" reference] ["[0]" scheme ["[0]" runtime]]]]]] @@ -409,8 +409,8 @@ [host ..host] (wrap [platform.#file_system (file.async file.default) platform.#host host - platform.#phase scheme.generate - platform.#runtime runtime.generate + platform.#phase scheme.translate + platform.#runtime runtime.translate platform.#write (|>> _.code (at encoding.utf8 encoded))]))) (def (program context program) @@ -470,7 +470,7 @@ ..expander analysis.bundle (io.io platform) - generation.bundle + translation.bundle extension/bundle.empty ..program [_.Var _.Expression _.Expression] diff --git a/stdlib/source/documentation/lux/meta.lux b/stdlib/source/documentation/lux/meta.lux index 329a5703d..a14f67132 100644 --- a/stdlib/source/documentation/lux/meta.lux +++ b/stdlib/source/documentation/lux/meta.lux @@ -24,7 +24,7 @@ [lux ["[1][0]" analysis] ["[1][0]" declaration] - ["[1][0]" generation] + ["[1][0]" translation] ["[1][0]" synthesis]]]]]) (def /compiler @@ -33,7 +33,7 @@ (list /compiler/phase.documentation /compiler/analysis.documentation /compiler/declaration.documentation - /compiler/generation.documentation + /compiler/translation.documentation /compiler/synthesis.documentation ))) diff --git a/stdlib/source/documentation/lux/meta/compiler/language/lux/declaration.lux b/stdlib/source/documentation/lux/meta/compiler/language/lux/declaration.lux index 2b906d759..8a073556e 100644 --- a/stdlib/source/documentation/lux/meta/compiler/language/lux/declaration.lux +++ b/stdlib/source/documentation/lux/meta/compiler/language/lux/declaration.lux @@ -28,9 +28,9 @@ ($.definition /.Bundle) ($.definition /.analysis) ($.definition /.synthesis) - ($.definition /.generation) + ($.definition /.translation) ($.definition /.lifted_analysis) ($.definition /.lifted_synthesis) - ($.definition /.lifted_generation) + ($.definition /.lifted_translation) ($.definition /.set_current_module) )) diff --git a/stdlib/source/documentation/lux/meta/compiler/language/lux/generation.lux b/stdlib/source/documentation/lux/meta/compiler/language/lux/generation.lux deleted file mode 100644 index 990029dd0..000000000 --- a/stdlib/source/documentation/lux/meta/compiler/language/lux/generation.lux +++ /dev/null @@ -1,64 +0,0 @@ -(.require - [library - [lux (.except) - ["$" documentation] - [data - [text (.only \n) - ["%" \\format (.only format)]] - [collection - ["[0]" list]]]]] - [\\library - ["[0]" /]]) - -(def .public documentation - (List $.Documentation) - (list ($.module /._ - "") - - ($.definition /.Buffer) - ($.definition /.cannot_interpret) - ($.definition /.cannot_overwrite_output) - ($.definition /.no_buffer_for_saving_code) - ($.definition /.Host) - ($.definition /.State) - ($.definition /.State) - ($.definition /.Operation) - ($.definition /.Phase) - ($.definition /.Handler) - ($.definition /.Bundle) - ($.definition /.Extender) - ($.definition /.state) - ($.definition /.empty_buffer) - ($.definition /.with_anchor) - ($.definition /.set_anchor) - ($.definition /.anchor) - ($.definition /.no_anchor) - ($.definition /.with_buffer) - ($.definition /.set_buffer) - ($.definition /.buffer) - ($.definition /.no_active_buffer) - ($.definition /.get_registry) - ($.definition /.set_registry) - ($.definition /.next) - ($.definition /.symbol) - ($.definition /.enter_module) - ($.definition /.module) - ($.definition /.evaluate!) - ($.definition /.execute!) - ($.definition /.define!) - ($.definition /.save!) - ($.definition /.learn) - ($.definition /.learn_custom) - ($.definition /.learn_analyser) - ($.definition /.learn_synthesizer) - ($.definition /.learn_generator) - ($.definition /.learn_declaration) - ($.definition /.unknown_definition) - ($.definition /.remember) - ($.definition /.no_context) - ($.definition /.module_id) - ($.definition /.context) - ($.definition /.with_context) - ($.definition /.with_new_context) - ($.definition /.log!) - )) diff --git a/stdlib/source/documentation/lux/meta/compiler/language/lux/translation.lux b/stdlib/source/documentation/lux/meta/compiler/language/lux/translation.lux new file mode 100644 index 000000000..f37babfcd --- /dev/null +++ b/stdlib/source/documentation/lux/meta/compiler/language/lux/translation.lux @@ -0,0 +1,64 @@ +(.require + [library + [lux (.except) + ["$" documentation] + [data + [text (.only \n) + ["%" \\format (.only format)]] + [collection + ["[0]" list]]]]] + [\\library + ["[0]" /]]) + +(def .public documentation + (List $.Documentation) + (list ($.module /._ + "") + + ($.definition /.Buffer) + ($.definition /.cannot_interpret) + ($.definition /.cannot_overwrite_output) + ($.definition /.no_buffer_for_saving_code) + ($.definition /.Host) + ($.definition /.State) + ($.definition /.State) + ($.definition /.Operation) + ($.definition /.Phase) + ($.definition /.Handler) + ($.definition /.Bundle) + ($.definition /.Extender) + ($.definition /.state) + ($.definition /.empty_buffer) + ($.definition /.with_anchor) + ($.definition /.set_anchor) + ($.definition /.anchor) + ($.definition /.no_anchor) + ($.definition /.with_buffer) + ($.definition /.set_buffer) + ($.definition /.buffer) + ($.definition /.no_active_buffer) + ($.definition /.get_registry) + ($.definition /.set_registry) + ($.definition /.next) + ($.definition /.symbol) + ($.definition /.enter_module) + ($.definition /.module) + ($.definition /.evaluate!) + ($.definition /.execute!) + ($.definition /.define!) + ($.definition /.save!) + ($.definition /.learn) + ($.definition /.learn_custom) + ($.definition /.learn_analyser) + ($.definition /.learn_synthesizer) + ($.definition /.learn_translator) + ($.definition /.learn_declaration) + ($.definition /.unknown_definition) + ($.definition /.remember) + ($.definition /.no_context) + ($.definition /.module_id) + ($.definition /.context) + ($.definition /.with_context) + ($.definition /.with_new_context) + ($.definition /.log!) + )) diff --git a/stdlib/source/documentation/lux/meta/extension.lux b/stdlib/source/documentation/lux/meta/extension.lux index f27a7c7a0..3c81d0205 100644 --- a/stdlib/source/documentation/lux/meta/extension.lux +++ b/stdlib/source/documentation/lux/meta/extension.lux @@ -37,10 +37,10 @@ ($.example (synthesis ("my synthesis" self phase archive [pass_through .any]) (phase archive pass_through)))) - ($.definition /.generation + ($.definition /.translation "" - ($.example (generation ("my generation" self phase archive [pass_through .any]) - (phase archive pass_through)))) + ($.example (translation ("my translation" self phase archive [pass_through .any]) + (phase archive pass_through)))) ($.definition /.declaration "" diff --git a/stdlib/source/experiment/tool/interpreter.lux b/stdlib/source/experiment/tool/interpreter.lux index 53fe60a88..a52ae4129 100644 --- a/stdlib/source/experiment/tool/interpreter.lux +++ b/stdlib/source/experiment/tool/interpreter.lux @@ -15,7 +15,7 @@ ["[0]" analysis ["[0]" module] ["[0]" type]] - ["[0]" generation] + ["[0]" translation] ["[0]" declaration (.only State Operation) ["[0]" total]]] ["[0]" default @@ -65,15 +65,15 @@ [_ (module.create 0 ..module)] (analysis.set_current_module ..module)))) -(def (initialize Monad Console platform configuration generation_bundle) +(def (initialize Monad Console platform configuration translation_bundle) (All (_ ! anchor expression declaration) (-> (Monad !) (Console !) (Platform ! anchor expression declaration) Configuration - (generation.Bundle anchor expression declaration) + (translation.Bundle anchor expression declaration) (! (State anchor expression declaration)))) (do Monad - [state (platform.initialize platform generation_bundle) + [state (platform.initialize platform translation_bundle) state (platform.compile platform (has cli.#module syntax.prelude configuration) (has [declaration.#analysis declaration.#state @@ -102,7 +102,7 @@ [state phase.state .let [analyse (the [declaration.#analysis declaration.#phase] state) synthesize (the [declaration.#synthesis declaration.#phase] state) - generate (the [declaration.#generation declaration.#phase] state)] + translate (the [declaration.#translation declaration.#phase] state)] [_ codeT codeA] (declaration.lifted_analysis (analysis.with_scope (type.with_fresh_env @@ -114,12 +114,12 @@ (in [codeT codeA]))))) codeS (declaration.lifted_synthesis (synthesize codeA))] - (declaration.lifted_generation - (generation.with_buffer + (declaration.lifted_translation + (translation.with_buffer (do ! - [codeH (generate codeS) - count generation.next - codeV (generation.evaluate! (format "interpretation_" (%.nat count)) codeH)] + [codeH (translate codeS) + count translation.next + codeV (translation.evaluate! (format "interpretation_" (%.nat count)) codeH)] (in [codeT codeV])))))) (def (interpret configuration code) @@ -187,12 +187,12 @@ (has #source source')) representation])))) -(def .public (run! Monad Console platform configuration generation_bundle) +(def .public (run! Monad Console platform configuration translation_bundle) (All (_ ! anchor expression declaration) (-> (Monad !) (Console !) (Platform ! anchor expression declaration) Configuration - (generation.Bundle anchor expression declaration) + (translation.Bundle anchor expression declaration) (! Any))) (do [! Monad] [state (initialize Monad Console platform configuration)] diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux index 9250c2cc6..710521e74 100644 --- a/stdlib/source/library/lux.lux +++ b/stdlib/source/library/lux.lux @@ -5834,7 +5834,7 @@ [Analysis] [Synthesis] - [Generation] + [Translation] [Declaration] ) diff --git a/stdlib/source/library/lux/abstract/monoid.lux b/stdlib/source/library/lux/abstract/monoid.lux index 6190cfe7e..bef824ab0 100644 --- a/stdlib/source/library/lux/abstract/monoid.lux +++ b/stdlib/source/library/lux/abstract/monoid.lux @@ -10,7 +10,9 @@ composite))) (def .public (and left right) - (All (_ l r) (-> (Monoid l) (Monoid r) (Monoid [l r]))) + (All (_ left right) + (-> (Monoid left) (Monoid right) + (Monoid [left right]))) (implementation (def identity [(at left identity) diff --git a/stdlib/source/library/lux/data/color.lux b/stdlib/source/library/lux/data/color.lux index 0f6b443be..a0971891a 100644 --- a/stdlib/source/library/lux/data/color.lux +++ b/stdlib/source/library/lux/data/color.lux @@ -2,9 +2,11 @@ [library [lux (.except) [abstract - [equivalence (.only Equivalence)] [monoid (.only Monoid)] + ["[0]" equivalence (.only Equivalence)] ["[0]" hash (.only Hash)]] + [control + ["[0]" try]] [data [collection ["[0]" list (.use "[1]#[0]" functor)]]] @@ -17,10 +19,11 @@ ["[0]" i64]]] [meta [type - ["[0]" primitive (.except def)]]]]]) + ["[0]" primitive]]]]] + [/ + ["[0]" rgb (.only RGB)]]) -(def rgb_limit 256) -(def top (-- rgb_limit)) +(def top (-- rgb.limit)) (def rgb_factor (|> top .int int.frac)) @@ -33,12 +36,6 @@ (-> Frac Nat) (|>> (f.* rgb_factor) f.int .nat)) -(type .public RGB - (Record - [#red Nat - #green Nat - #blue Nat])) - (type .public HSL [Frac Frac Frac]) @@ -55,92 +52,62 @@ (primitive.def .public Color RGB - (def .public (of_rgb [red green blue]) + (def .public of_rgb (-> RGB Color) - (abstraction [#red (n.% ..rgb_limit red) - #green (n.% ..rgb_limit green) - #blue (n.% ..rgb_limit blue)])) + (|>> primitive.abstraction)) (def .public rgb (-> Color RGB) - (|>> representation)) + (|>> primitive.representation)) (def .public equivalence (Equivalence Color) - (implementation - (def (= reference sample) - (let [[rR gR bR] (representation reference) - [rS gS bS] (representation sample)] - (and (n.= rR rS) - (n.= gR gS) - (n.= bR bS)))))) + (at equivalence.functor each ..rgb rgb.equivalence)) (def .public hash (Hash Color) - (implementation - (def equivalence ..equivalence) - - (def (hash value) - (let [[r g b] (representation value)] - (all i64.or - (i64.left_shifted 16 r) - (i64.left_shifted 8 g) - b))))) - - (def .public black - Color - (..of_rgb [#red 0 - #green 0 - #blue 0])) - - (def .public white - Color - (..of_rgb [#red ..top - #green ..top - #blue ..top])) - - (def .public addition - (Monoid Color) - (implementation - (def identity ..black) - - (def (composite left right) - (let [[lR lG lB] (representation left) - [rR rG rB] (representation right)] - (abstraction [#red (n.max lR rR) - #green (n.max lG rG) - #blue (n.max lB rB)]))))) - - (def (opposite_intensity value) - (-> Nat Nat) - (|> ..top (n.- value))) - - (def .public (complement color) + (at hash.functor each ..rgb rgb.hash)) + + (with_template [ ] + [(def .public + Color + (primitive.abstraction ))] + + [black rgb.black] + [white rgb.white] + ) + + (with_template [ ] + [(def .public + (Monoid Color) + (implementation + (def identity + (primitive.abstraction + (at identity))) + + (def (composite left right) + (primitive.abstraction + (at composite + (primitive.representation left) + (primitive.representation right))))))] + + [addition rgb.addition] + [subtraction rgb.subtraction] + ) + + (def .public complement (-> Color Color) - (let [[red green blue] (representation color)] - (abstraction [#red (opposite_intensity red) - #green (opposite_intensity green) - #blue (opposite_intensity blue)]))) - - (def .public subtraction - (Monoid Color) - (implementation - (def identity ..white) - - (def (composite left right) - (let [[lR lG lB] (representation (..complement left)) - [rR rG rB] (representation right)] - (abstraction [#red (n.min lR rR) - #green (n.min lG rG) - #blue (n.min lB rB)]))))) + (|>> primitive.representation + rgb.complement + primitive.abstraction)) ) (def .public (hsl color) (-> Color HSL) (let [[red green blue] (rgb color) - red (..down red) - green (..down green) - blue (..down blue) + red (..down (rgb.number red)) + green (..down (rgb.number green)) + blue (..down (rgb.number blue)) max (all f.max red green blue) min (all f.min red green blue) luminance (|> (f.+ max min) (f./ +2.0))] @@ -191,28 +158,28 @@ (def .public (of_hsl [hue saturation luminance]) (-> HSL Color) - (if (f.= +0.0 saturation) - ... Achromatic - (let [intensity (..up luminance)] - (of_rgb [#red intensity - #green intensity - #blue intensity])) - ... Chromatic - (let [q (if (f.< +0.5 luminance) - (|> saturation (f.+ +1.0) (f.* luminance)) - (|> luminance (f.+ saturation) (f.- (f.* saturation luminance)))) - p (|> luminance (f.* +2.0) (f.- q)) - third (|> +1.0 (f./ +3.0))] - (of_rgb [#red (|> hue (f.+ third) (hue_rgb p q)) - #green (|> hue (hue_rgb p q)) - #blue (|> hue (f.- third) (hue_rgb p q))])))) + (|> (if (f.= +0.0 saturation) + ... Achromatic + (let [intensity (..up luminance)] + (rgb.rgb intensity intensity intensity)) + ... Chromatic + (let [q (if (f.< +0.5 luminance) + (|> saturation (f.+ +1.0) (f.* luminance)) + (|> luminance (f.+ saturation) (f.- (f.* saturation luminance)))) + p (|> luminance (f.* +2.0) (f.- q)) + third (|> +1.0 (f./ +3.0))] + (rgb.rgb (|> hue (f.+ third) (hue_rgb p q)) + (|> hue (hue_rgb p q)) + (|> hue (f.- third) (hue_rgb p q))))) + try.trusted + of_rgb)) (def .public (hsb color) (-> Color HSB) (let [[red green blue] (rgb color) - red (..down red) - green (..down green) - blue (..down blue) + red (..down (rgb.number red)) + green (..down (rgb.number green)) + blue (..down (rgb.number blue)) max (all f.max red green blue) min (all f.min red green blue) brightness max @@ -252,16 +219,18 @@ red (when mod 0 v 1 q 2 p 3 p 4 t 5 v _ (undefined)) green (when mod 0 t 1 v 2 v 3 q 4 p 5 p _ (undefined)) blue (when mod 0 p 1 p 2 t 3 v 4 v 5 q _ (undefined))] - (of_rgb [#red (..up red) - #green (..up green) - #blue (..up blue)]))) + (|> (rgb.rgb (..up red) + (..up green) + (..up blue)) + try.trusted + of_rgb))) (def .public (cmyk color) (-> Color CMYK) (let [[red green blue] (rgb color) - red (..down red) - green (..down green) - blue (..down blue) + red (..down (rgb.number red)) + green (..down (rgb.number green)) + blue (..down (rgb.number blue)) key (|> +1.0 (f.- (all f.max red green blue))) f (if (f.< +1.0 key) (|> +1.0 (f./ (|> +1.0 (f.- key)))) @@ -277,18 +246,18 @@ (def .public (of_cmyk [cyan magenta yellow key]) (-> CMYK Color) (if (f.= +1.0 key) - (of_rgb [#red 0 - #green 0 - #blue 0]) + ..black (let [red (|> (|> +1.0 (f.- cyan)) (f.* (|> +1.0 (f.- key)))) green (|> (|> +1.0 (f.- magenta)) (f.* (|> +1.0 (f.- key)))) blue (|> (|> +1.0 (f.- yellow)) (f.* (|> +1.0 (f.- key))))] - (of_rgb [#red (..up red) - #green (..up green) - #blue (..up blue)])))) + (|> (rgb.rgb (..up red) + (..up green) + (..up blue)) + try.trusted + of_rgb)))) (def (normal ratio) (-> Frac Frac) @@ -313,9 +282,11 @@ .nat))) [redS greenS blueS] (rgb start) [redE greenE blueE] (rgb end)] - (of_rgb [#red (interpolated' redE redS) - #green (interpolated' greenE greenS) - #blue (interpolated' blueE blueS)]))) + (|> (rgb.rgb (interpolated' (rgb.number redE) (rgb.number redS)) + (interpolated' (rgb.number greenE) (rgb.number greenS)) + (interpolated' (rgb.number blueE) (rgb.number blueS))) + try.trusted + of_rgb))) (with_template [ ] [(def .public ( ratio color) diff --git a/stdlib/source/library/lux/data/color/named.lux b/stdlib/source/library/lux/data/color/named.lux index df8d311cf..29f58b285 100644 --- a/stdlib/source/library/lux/data/color/named.lux +++ b/stdlib/source/library/lux/data/color/named.lux @@ -1,17 +1,22 @@ (.require [library [lux (.except) + [control + ["[0]" try]] [math [number (.only hex)]]]] - ["[0]" // (.only Color)]) + ["[0]" // (.only Color) + ["[0]" rgb]]) ... https://developer.mozilla.org/en-US/docs/Web/CSS/color_value (with_template [ ] [(`` (def .public Color - (//.of_rgb [//.#red (hex ) - //.#green (hex ) - //.#blue (hex )])))] + (|> (rgb.rgb (hex ) + (hex ) + (hex )) + try.trusted + //.of_rgb)))] ["F0" "F8" "FF" alice_blue] ["FA" "EB" "D7" antique_white] diff --git a/stdlib/source/library/lux/data/color/rgb.lux b/stdlib/source/library/lux/data/color/rgb.lux new file mode 100644 index 000000000..23ac52a30 --- /dev/null +++ b/stdlib/source/library/lux/data/color/rgb.lux @@ -0,0 +1,146 @@ +(.require + [library + [lux (.except) + [abstract + [monad (.only do)] + [monoid (.only Monoid)] + [equivalence (.only Equivalence)] + ["[0]" hash (.only Hash)]] + [control + ["[0]" try (.only Try)] + ["[0]" exception (.only Exception)]] + [data + [text + ["%" \\format]]] + [math + [number + ["n" nat] + ["[0]" i64]]] + [meta + [type + ["[0]" primitive]]]]]) + +(def .public limit + Nat + 256) + +(primitive.def .public Value + Nat + + (def .public least + Value + (primitive.abstraction 0)) + + (def .public most + Value + (primitive.abstraction (-- ..limit))) + + (exception.def .public (invalid it) + (Exception Nat) + (exception.report + (list ["Limit" (%.nat ..limit)] + ["Value" (%.nat it)]))) + + (def .public (value it) + (-> Nat + (Try Value)) + (if (n.< ..limit it) + {try.#Success (primitive.abstraction it)} + (exception.except ..invalid [it]))) + + (def .public number + (-> Value Nat) + (|>> primitive.representation)) + + (type .public RGB + (Record + [#red Value + #green Value + #blue Value])) + + (def .public (rgb red green blue) + (-> Nat Nat Nat + (Try RGB)) + (do try.monad + [red (value red) + green (value green) + blue (value blue)] + (in [#red red + #green green + #blue blue]))) + + (def .public equivalence + (Equivalence RGB) + (implementation + (def (= [rR gR bR] [rS gS bS]) + (and (n.= (primitive.representation rR) (primitive.representation rS)) + (n.= (primitive.representation gR) (primitive.representation gS)) + (n.= (primitive.representation bR) (primitive.representation bS)))))) + + (def .public hash + (Hash RGB) + (implementation + (def equivalence + ..equivalence) + + (def (hash [r g b]) + (all i64.or + (i64.left_shifted 16 (primitive.representation r)) + (i64.left_shifted 08 (primitive.representation g)) + (primitive.representation b))))) + + (def (opposite_intensity value) + (-> Nat Nat) + (|> (primitive.representation ..most) + (n.- value))) + + (def .public (complement it) + (-> RGB RGB) + (`` [(,, (with_template [] + [ (|> it + (the ) + primitive.representation + opposite_intensity + primitive.abstraction)] + + [#red] + [#green] + [#blue] + ))])) + + (def .public black + RGB + [#red ..least + #green ..least + #blue ..least]) + + (def .public white + RGB + [#red ..most + #green ..most + #blue ..most]) + + (with_template [ ] + [(def .public + (Monoid RGB) + (implementation + (def identity + ) + + (def (composite left right) + (let [left ( left) + right ( right)] + (`` [(,, (with_template [] + [ (primitive.abstraction + ( (primitive.representation (the left)) + (primitive.representation (the right))))] + + [#red] + [#green] + [#blue] + ))])))))] + + [addition ..black n.max |> |>] + [subtraction ..white n.min ..complement |>] + ) + ) diff --git a/stdlib/source/library/lux/data/format/css/value.lux b/stdlib/source/library/lux/data/format/css/value.lux index a05cabdf5..0a46fddbe 100644 --- a/stdlib/source/library/lux/data/format/css/value.lux +++ b/stdlib/source/library/lux/data/format/css/value.lux @@ -4,8 +4,9 @@ [control ["[0]" maybe]] [data - ["[0]" color] ["[0]" product] + ["[0]" color (.only) + ["[0]" rgb]] ["[0]" text (.only) ["%" \\format (.only Format format)]] [collection @@ -61,11 +62,14 @@ Text (def .public value - (-> (Value Any) Text) + (-> (Value Any) + Text) (|>> representation)) (with_template [ ] - [(def .public Value (abstraction ))] + [(def .public + Value + (abstraction ))] [initial "initial"] [inherit "inherit"] @@ -775,10 +779,12 @@ []] ) - (def value_separator ",") + (def value_separator + ",") (def (apply name inputs) - (-> Text (List Text) Value) + (-> Text (List Text) + Value) (|> inputs (text.interposed ..value_separator) (text.enclosed ["(" ")"]) @@ -794,18 +800,21 @@ []) (def .public (steps intervals step) - (-> Nat Step (Value Timing)) + (-> Nat Step + (Value Timing)) (..apply "steps" (list (%.nat intervals) (..step step)))) (def .public (cubic_bezier p0 p1 p2 p3) - (-> Frac Frac Frac Frac (Value Timing)) + (-> Frac Frac Frac Frac + (Value Timing)) (|> (list p0 p1 p2 p3) (list#each %number) (..apply "cubic-bezier"))) (with_template [ ] [(def .public - (-> Nat (Value )) + (-> Nat + (Value )) (|>> %.nat abstraction))] [iteration Iteration] @@ -815,30 +824,34 @@ ) (def .public animation - (-> Label (Value Animation)) + (-> Label + (Value Animation)) (|>> abstraction)) (def .public (rgb color) - (-> color.Color (Value Color)) + (-> color.Color + (Value Color)) (let [[red green blue] (color.rgb color)] - (..apply "rgb" (list (%.nat red) - (%.nat green) - (%.nat blue))))) + (..apply "rgb" (list (%.nat (rgb.number red)) + (%.nat (rgb.number green)) + (%.nat (rgb.number blue)))))) (def .public (rgba pigment) - (-> color.Pigment (Value Color)) + (-> color.Pigment + (Value Color)) (let [(open "_[0]") pigment [red green blue] (color.rgb _#color)] - (..apply "rgba" (list (%.nat red) - (%.nat green) - (%.nat blue) + (..apply "rgba" (list (%.nat (rgb.number red)) + (%.nat (rgb.number green)) + (%.nat (rgb.number blue)) (if (r.= (at r.interval top) _#alpha) "1.0" (format "0" (%.rev _#alpha))))))) (with_template [ ] [(def .public ( value) - (-> Frac (Value Length)) + (-> Frac + (Value Length)) (abstraction (format (%number value) )))] [em "em"] @@ -867,7 +880,8 @@ (with_template [ ] [(def .public ( value) - (-> Int (Value Time)) + (-> Int + (Value Time)) (abstraction (format (if (i.< +0 value) (%.int value) (%.nat (.nat value))) @@ -879,13 +893,15 @@ ) (def .public thickness - (-> (Value Length) (Value Thickness)) + (-> (Value Length) + (Value Thickness)) (|>> transmutation)) (def slice_separator " ") (def .public (slice_number/2 horizontal vertical) - (-> Nat Nat (Value Slice)) + (-> Nat Nat + (Value Slice)) (abstraction (format (%.nat horizontal) ..slice_separator (%.nat vertical)))) @@ -893,18 +909,22 @@ Text (def .public stop - (-> (Value Color) Stop) + (-> (Value Color) + Stop) (|>> (representation Value) (abstraction Stop))) - (def stop_separator " ") + (def stop_separator + " ") (def .public (single_stop length color) - (-> (Value Length) (Value Color) Stop) + (-> (Value Length) (Value Color) + Stop) (abstraction (format (representation Value color) ..stop_separator (representation Value length)))) (def .public (double_stop start end color) - (-> (Value Length) (Value Length) (Value Color) Stop) + (-> (Value Length) (Value Length) (Value Color) + Stop) (abstraction (format (representation Value color) ..stop_separator (representation Value start) ..stop_separator (representation Value end)))) @@ -913,11 +933,13 @@ Text (def .public hint - (-> (Value Length) Hint) + (-> (Value Length) + Hint) (|>> (representation Value) (abstraction Hint))) (def (with_hint [hint stop]) - (-> [(Maybe Hint) Stop] Text) + (-> [(Maybe Hint) Stop] + Text) (when hint {.#None} (representation Stop stop) @@ -932,17 +954,22 @@ Text (def .public angle - (-> Angle Text) + (-> Angle + Text) (|>> representation)) (def .public (turn value) - (-> Rev Angle) + (-> Rev + Angle) (abstraction (format (%.rev value) "turn"))) - (def degree_limit Nat 360) + (def degree_limit + Nat + 360) (def .public (degree value) - (-> Nat Angle) + (-> Nat + Angle) (abstraction (format (%.nat (n.% ..degree_limit value)) "deg"))) (with_template [ ] @@ -958,7 +985,8 @@ (with_template [ ] [(def .public ( angle start next) - (-> Angle Stop (List/1 [(Maybe Hint) Stop]) (Value Image)) + (-> Angle Stop (List/1 [(Maybe Hint) Stop]) + (Value Image)) (let [[now after] next] (..apply (list.partial (representation Angle angle) (with_hint now) @@ -969,25 +997,31 @@ ) ) - (def percentage_limit Nat (.++ 100)) + (def percentage_limit + Nat + (.++ 100)) (def .public (%% value) - (-> Nat (Value Percentage)) + (-> Nat + (Value Percentage)) (abstraction (format (%.nat (n.% percentage_limit value)) "%"))) (def .public slice_percent/1 - (-> (Value Percentage) (Value Slice)) + (-> (Value Percentage) + (Value Slice)) (|>> transmutation)) (def .public (slice_percent/2 horizontal vertical) - (-> (Value Percentage) (Value Percentage) (Value Slice)) + (-> (Value Percentage) (Value Percentage) + (Value Slice)) (abstraction (format (representation horizontal) ..slice_separator (representation vertical)))) (with_template [
 +]
     [(`` (with_template [ ]
            [(def .public 
-              (->  (Value Filter))
+              (-> 
+                  (Value Filter))
               (|>> 
 (list) (..apply )))]
 
            (,, (template.spliced +))))]
@@ -1007,10 +1041,12 @@
     )
 
   (def .public svg_filter
-    (-> URL (Value Filter))
+    (-> URL
+        (Value Filter))
     (|>> (list) (..apply "url")))
 
-  (def default_shadow_length (px +0.0))
+  (def default_shadow_length
+    (px +0.0))
 
   (def .public (drop_shadow horizontal vertical blur spread color)
     (-> (Value Length) (Value Length)
@@ -1026,11 +1062,13 @@
         (list)
         (..apply "drop-shadow")))
 
-  (def length_separator " ")
+  (def length_separator
+    " ")
 
   (with_template [ ]
     [(def .public ( horizontal vertical)
-       (-> (Value Length) (Value Length) (Value ))
+       (-> (Value Length) (Value Length)
+           (Value ))
        (abstraction (format (representation horizontal)
                             ..length_separator
                             (representation vertical))))]
@@ -1040,11 +1078,13 @@
     )
 
   (def .public (fit/1 length)
-    (-> (Value Length) (Value Fit))
+    (-> (Value Length)
+        (Value Fit))
     (..fit length length))
 
   (def .public image
-    (-> URL (Value Image))
+    (-> URL
+        (Value Image))
     (|>> %.text
          (list)
          (..apply "url")))
@@ -1114,30 +1154,36 @@
       #left (Value Length)]))
 
   (def .public (clip rectangle)
-    (-> Rectangle (Value Clip))
+    (-> Rectangle
+        (Value Clip))
     (`` (..apply "rect" (list (,, (with_template []
                                     [(representation (the  rectangle))]
 
                                     [#top] [#right] [#bottom] [#left]))))))
 
   (def .public counter
-    (-> Label (Value Counter))
+    (-> Label
+        (Value Counter))
     (|>> abstraction))
 
   (def .public current_count
-    (-> (Value Counter) (Value Content))
+    (-> (Value Counter)
+        (Value Content))
     (|>> representation (list) (..apply "counter")))
 
   (def .public text
-    (-> Text (Value Content))
+    (-> Text
+        (Value Content))
     (|>> %.text abstraction))
 
   (def .public attribute
-    (-> Label (Value Content))
+    (-> Label
+        (Value Content))
     (|>> (list) (..apply "attr")))
 
   (def .public media
-    (-> URL (Value Content))
+    (-> URL
+        (Value Content))
     (|>> (list) (..apply "url")))
 
   (enumeration
@@ -1166,35 +1212,42 @@
         ..initial))])
 
   (def .public font_size
-    (-> (Value Length) (Value Font_Size))
+    (-> (Value Length)
+        (Value Font_Size))
     (|>> transmutation))
 
   (def .public number
-    (-> Frac (Value Number))
+    (-> Frac
+        (Value Number))
     (|>> %number abstraction))
 
   (def .public grid
-    (-> Label (Value Grid))
+    (-> Label
+        (Value Grid))
     (|>> abstraction))
 
   (def .public fit_content
-    (-> (Value Length) (Value Grid_Content))
+    (-> (Value Length)
+        (Value Grid_Content))
     (|>> representation (list) (..apply "fit-content")))
 
   (def .public (min_max min max)
-    (-> (Value Grid_Content) (Value Grid_Content) (Value Grid_Content))
+    (-> (Value Grid_Content) (Value Grid_Content)
+        (Value Grid_Content))
     (..apply "minmax" (list (representation min)
                             (representation max))))
 
   (def .public grid_span
-    (-> Nat (Value Grid_Span))
+    (-> Nat
+        (Value Grid_Span))
     (|>> %.nat (format "span ") abstraction))
 
   (def grid_column_separator " ")
   (def grid_row_separator " ")
 
   (def .public grid_template
-    (-> (List (List (Maybe (Value Grid)))) (Value Grid_Template))
+    (-> (List (List (Maybe (Value Grid))))
+        (Value Grid_Template))
     (let [empty (is (Value Grid)
                     (abstraction "."))]
       (|>> (list#each (|>> (list#each (|>> (maybe.else empty)
@@ -1205,11 +1258,13 @@
            abstraction)))
 
   (def .public (resolution dpi)
-    (-> Nat (Value Resolution))
+    (-> Nat
+        (Value Resolution))
     (abstraction (format (%.nat dpi) "dpi")))
 
   (def .public (ratio numerator denominator)
-    (-> Nat Nat (Value Ratio))
+    (-> Nat Nat
+        (Value Ratio))
     (abstraction (format (%.nat numerator) "/" (%.nat denominator))))
 
   (enumeration
@@ -1234,7 +1289,8 @@
   (def quote_separator " ")
 
   (def .public (quotes [left0 right0] [left1 right1])
-    (-> [Quote Quote] [Quote Quote] (Value Quotes))
+    (-> [Quote Quote] [Quote Quote]
+        (Value Quotes))
     (|> (list left0 right0 left1 right1)
         (list#each (|>> ..quote_text %.text))
         (text.interposed ..quote_separator)
@@ -1261,7 +1317,8 @@
 
   (with_template [   ]
     [(`` (def .public ( [(,, (template.spliced ))])
-           (-> [(,, (template.spliced ))] (Value Transform))
+           (-> [(,, (template.spliced ))]
+               (Value Transform))
            (|> (list (,, (template.spliced )))
                (list#each %number)
                (..apply ))))]
@@ -1283,7 +1340,8 @@
 
   (with_template [   ]
     [(`` (def .public ( [(,, (template.spliced ))])
-           (-> [(,, (template.spliced ))] (Value Transform))
+           (-> [(,, (template.spliced ))]
+               (Value Transform))
            (|> (list (,, (template.spliced )))
                (list#each ..angle)
                (..apply ))))]
@@ -1299,36 +1357,42 @@
     )
 
   (def .public (rotate_3d [x y z angle])
-    (-> [Frac Frac Frac Angle] (Value Transform))
+    (-> [Frac Frac Frac Angle]
+        (Value Transform))
     (..apply "rotate3d"
              (list (%number x) (%number y) (%number z) (..angle angle))))
 
   (def origin_separator " ")
 
   (def .public (origin_2d x y)
-    (-> (Value Length) (Value Length) (Value Transform_Origin))
+    (-> (Value Length) (Value Length)
+        (Value Transform_Origin))
     (abstraction (format (representation x) ..origin_separator
                          (representation y))))
 
   (def .public (origin_3d x y z)
-    (-> (Value Length) (Value Length) (Value Length) (Value Transform_Origin))
+    (-> (Value Length) (Value Length) (Value Length)
+        (Value Transform_Origin))
     (abstraction (format (representation x) ..origin_separator
                          (representation y) ..origin_separator
                          (representation z))))
 
   (def .public vertical_align
-    (-> (Value Length) (Value Vertical_Align))
+    (-> (Value Length)
+        (Value Vertical_Align))
     (|>> transmutation))
 
   (def .public (z_index index)
-    (-> Int (Value Z_Index))
+    (-> Int
+        (Value Z_Index))
     (abstraction (if (i.< +0 index)
                    (%.int index)
                    (%.nat (.nat index)))))
 
   (with_template [  ]
     [(def .public ( pre post)
-       (-> (Value ) (Value ) (Value ))
+       (-> (Value ) (Value )
+           (Value ))
        (abstraction (format (representation pre)
                             
                             (representation post))))]
diff --git a/stdlib/source/library/lux/documentation.lux b/stdlib/source/library/lux/documentation.lux
index 200daa9eb..e5f23e1ef 100644
--- a/stdlib/source/library/lux/documentation.lux
+++ b/stdlib/source/library/lux/documentation.lux
@@ -37,7 +37,11 @@
     [compiler
      [language
       [lux
-       ["[0]" syntax]]]]]]])
+       ["[0]" syntax]]]
+     [meta
+      [archive
+       [module
+        ["[0]" descriptor]]]]]]]])
 
 (def |recursion_dummy|
   (template (_)
@@ -54,7 +58,8 @@
          .any))
 
 (def (reference_column code)
-  (-> Code Nat)
+  (-> Code
+      Nat)
   (when code
     (^.with_template []
       [[[_ _ column] { _}]
@@ -78,7 +83,8 @@
     ))
 
 (def (padding reference_column [_ old_line old_column] [_ new_line new_column])
-  (-> Nat Location Location Text)
+  (-> Nat Location Location
+      Text)
   (if (n.= old_line new_line)
     (if (n.< old_column new_column)
       ""
@@ -91,7 +97,8 @@
               (text.together (list.repeated (n.- reference_column new_column) " "))))))
 
 (def (code_documentation expected_module old_location reference_column example)
-  (-> Text Location Nat Code [Location Text])
+  (-> Text Location Nat Code
+      [Location Text])
   (when example
     [new_location {.#Symbol [module short]}]
     (let [documentation (cond (text#= expected_module module)
@@ -136,13 +143,15 @@
 
 (def .public (comment it module)
   (-> Text
-      (-> Text (Markdown Block)))
+      (-> Text
+          (Markdown Block)))
   (<| (md.code "clojure")
       (format "... " it)))
 
 (def (example' it module)
   (-> Code
-      (-> Text (Markdown Block)))
+      (-> Text
+          (Markdown Block)))
   (<| (md.code "clojure")
       (let [reference_column (..reference_column it)
             [location _] it]
@@ -156,11 +165,13 @@
 
 (def .public (deprecated when module)
   (-> Text
-      (-> Text (Markdown Block)))
+      (-> Text
+          (Markdown Block)))
   (md.paragraph (md.text (format "Deprecated: " when))))
 
 (def parameter_type_name
-  (-> Nat Text)
+  (-> Nat
+      Text)
   (|>> %.nat (format "_")))
 
 (def type_variable_names
@@ -170,7 +181,8 @@
 
 (with_template [ ]
   [(def ( id)
-     (-> Nat Bit)
+     (-> Nat
+         Bit)
      ( id))]
 
   [type_function? n.even?]
@@ -178,11 +190,13 @@
   )
 
 (def (parameter_id level id)
-  (-> Nat Nat Nat)
+  (-> Nat Nat
+      Nat)
   (n.- (n./ 2 id) level))
 
 (def (parameter_name [type_function_name type_function_arguments] level id)
-  (-> [Text (List Text)] Nat Nat Text)
+  (-> [Text (List Text)] Nat Nat
+      Text)
   (if (type_parameter? id)
     (let [parameter_id (..parameter_id level id)]
       (when (list.item parameter_id type_function_arguments)
@@ -198,7 +212,8 @@
     type_function_name))
 
 (def (level_parameters offset level)
-  (-> Nat Nat (List Text))
+  (-> Nat Nat
+      (List Text))
   (if (n.= 0 level)
     (list)
     (|> level
@@ -207,14 +222,16 @@
         (list#each (|>> (n.+ (++ offset)) parameter_type_name)))))
 
 (def (nested line_prefix body)
-  (-> Text Text Text)
+  (-> Text Text
+      Text)
   (|> body
       (text.all_split_by \n)
       (list#each (text.prefix line_prefix))
       (text.interposed \n)))
 
 (def (%type' level type_function_name nestable? module type)
-  (-> Nat Text Bit Text Type Text)
+  (-> Nat Text Bit Text Type
+      Text)
   (when type
     {.#Primitive name params}
     (|> params
@@ -296,11 +313,13 @@
     ))
 
 (def .public type_documentation
-  (-> Text Type Text)
+  (-> Text Type
+      Text)
   (%type' (-- 0) "?" true))
 
 (def (parameterized_type arity type)
-  (-> Nat Type (Maybe Type))
+  (-> Nat Type
+      (Maybe Type))
   (when arity
     0 {.#Some type}
     _ (when type
@@ -311,7 +330,8 @@
         {.#None})))
 
 (def (type_definition' nestable? level arity type_function_info tags module type)
-  (-> Bit Nat Nat [Text (List Text)] (List Text) Text Type Text)
+  (-> Bit Nat Nat [Text (List Text)] (List Text) Text Type
+      Text)
   (when tags
     (list single_tag)
     (format "(Record" \n
@@ -434,7 +454,8 @@
       )))
 
 (def .public (type_definition module [name parameters] tags type)
-  (-> Text [Text (List Text)] (List Text) Type Text)
+  (-> Text [Text (List Text)] (List Text) Type
+      Text)
   (let [arity (list.size parameters)]
     (when (parameterized_type arity type)
       {.#Some type}
@@ -551,6 +572,8 @@
   (Record
    [#module Text
     #description Text
+    ... https://en.wiktionary.org/wiki/dependee
+    #dependees (Set descriptor.Module)
     #coverage (Set Text)]))
 
 (.type .public Documentation
@@ -573,14 +596,16 @@
                                            (,* extra))))]
       (macro.with_symbols [g!_]
         (let [[module short] name]
-          (in (list (` (.let [(, g!_) (.is (.-> .Any ..Documentation)
+          (in (list (` (.let [(, g!_) (.is (.-> .Any
+                                                ..Documentation)
                                            (.function ((, g!_) (, g!_))
                                              {#Definition [..#global [(, (code.text module)) (, (code.text short))]
                                                            ..#documentation (,* documentation)]}))]
                          ((, g!_) []))))))))))
 
 (def definitions_documentation
-  (-> (List Definition) (Markdown Block))
+  (-> (List Definition)
+      (Markdown Block))
   (|>> (list.sorted (function (_ left right)
                       (text#< (symbol.short (the #global right))
                               (symbol.short (the #global left)))))
@@ -592,7 +617,8 @@
   (text.of_char 31))
 
 (def coverage_format
-  (-> (List Text) Text)
+  (-> (List Text)
+      Text)
   (list#mix (function (_ short aggregate)
               (when aggregate
                 "" short
@@ -603,10 +629,13 @@
       (syntax (_ [[name _] ..qualified_symbol
                   description .any])
         (do meta.monad
-          [coverage (meta.exports name)]
+          [coverage (meta.exports name)
+           dependees (meta.imported_modules name)]
           (in (list (` (is Documentation
                            {#Module [..#module (, (code.text name))
                                      ..#description (, description)
+                                     ..#dependees (|> (list (,* (list#each code.text dependees)))
+                                                      (set.of_list text.hash))
                                      ..#coverage (|> (, (code.text (|> coverage
                                                                        (list#each product.left)
                                                                        ..coverage_format)))
@@ -614,15 +643,33 @@
                                                      (set.of_list text.hash))]}))))))))
 
 (def listing
-  (-> (List Text) (Markdown Block))
+  (-> (List Text)
+      (Markdown Block))
   (|>> (list.sorted text#<)
        (list#each (function (_ definition)
                     [(md.snippet definition)
                      {.#None}]))
        md.numbered_list))
 
-(def (module_documentation [module definitions])
-  (-> [Module (List Definition)] (Markdown Block))
+(def (dependencies heading it)
+  (-> descriptor.Module (Set descriptor.Module)
+      (Markdown Block))
+  (if (set.empty? it)
+    md.empty
+    (all md.then
+         (md.heading/2 heading)
+         (|> (set.list it)
+             (list.only (|>> (text#= descriptor.runtime) not))
+             (list.sorted text#<)
+             (list#each (function (_ it)
+                          [(md.text it) {.#None}]))
+             md.bullet_list)
+         )))
+
+(def (module_documentation dependers [module definitions])
+  (-> (Dictionary descriptor.Module (Set descriptor.Module))
+      [Module (List Definition)]
+      (Markdown Block))
   (let [(open "_[0]") module]
     (all md.then
          ... Name
@@ -634,8 +681,11 @@
            description (<| md.paragraph
                            md.text
                            description))
+
+         (dependencies "Dependees" (the #dependees module))
+         (dependencies "Dependers" (|> (dictionary.value (the #module module) dependers)
+                                       (maybe.else (set.empty text.hash))))
          
-         ... Definitions
          (md.heading/2 "Definitions")
          (|> definitions
              (list.only (|>> (the #global)
@@ -674,8 +724,20 @@
                 (..listing un_expected)))
          )))
 
+... https://en.wiktionary.org/wiki/depender
+(def dependers
+  (-> (List [descriptor.Module Module])
+      (Dictionary descriptor.Module (Set descriptor.Module)))
+  (list#mix (function (_ [name module] it)
+              (list#mix (function (_ import it)
+                          (dictionary.revised' import (set.empty text.hash) (set.has name) it))
+                        it
+                        (set.list (the #dependees module))))
+            (dictionary.empty text.hash)))
+
 (def .public (markdown it)
-  (-> (List Documentation) Text)
+  (-> (List Documentation)
+      Text)
   (let [with_modules (list#mix (function (_ doc it)
                                  (if (dictionary.key? it (the #module doc))
                                    it
@@ -692,13 +754,18 @@
                                                              it)
                                          it)))
                                    with_modules
-                                   (sum.lefts it))]
+                                   (sum.lefts it))
+        dependers (|> with_modules
+                      dictionary.entries
+                      (list#each (function (_ [name [module definitons]])
+                                   [name module]))
+                      ..dependers)]
     (|> with_definitions
         dictionary.values
         (list.sorted (function (_ left right)
                        (text#< (the #module (product.left right))
                                (the #module (product.left left)))))
-        (list#each ..module_documentation)
+        (list#each (..module_documentation dependers))
         (list.interposed md.horizontal_rule)
         (list#mix md.then (is (Markdown Block) md.empty))
         md.markdown)))
diff --git a/stdlib/source/library/lux/ffi.lux b/stdlib/source/library/lux/ffi.lux
index 17b150560..575809639 100644
--- a/stdlib/source/library/lux/ffi.lux
+++ b/stdlib/source/library/lux/ffi.lux
@@ -57,9 +57,9 @@
               {try.#Success }
               )))))]))
 
-(def generation
+(def translation
   (template (_    )
-    [("lux def generation" 
+    [("lux def translation" 
       (.function (_ name phase archive inputs)
         (.function (_ state)
           (let [ [name phase archive state]]
@@ -80,10 +80,10 @@
                      _
                      {try.#Success [state (extension_analysis name (list))]})
 
-                   (generation 
-                     [name phase archive state]
-                     (list)
-                     {try.#Success [state js.undefined]})
+                   (translation 
+                                [name phase archive state]
+                                (list)
+                                {try.#Success [state js.undefined]})
 
                    (def .public undefined
                      (template (undefined)
@@ -97,12 +97,12 @@
                        [[state it] (phase archive (` (.is .Any (, it))) state)]
                        (in [state (extension_analysis name (list it))])))
 
-                   (generation 
-                     [name phase archive state]
-                     (list it)
-                     (do try.monad
-                       [[state it] (phase archive it state)]
-                       (in [state (js.= js.undefined it)])))
+                   (translation 
+                                [name phase archive state]
+                                (list it)
+                                (do try.monad
+                                  [[state it] (phase archive it state)]
+                                  (in [state (js.= js.undefined it)])))
 
                    (def .public undefined?
                      (template (undefined? )
@@ -137,23 +137,23 @@
                        _
                        (.undefined)))
 
-                   (generation 
-                     [name phase archive state]
-                     (list.partial head_key head_value tail)
-                     (do [! try.monad]
-                       [[state output] (monad.mix !
-                                                  (.function (_ [key value] [state output])
-                                                    (when key
-                                                      (text_synthesis key)
-                                                      (do try.monad
-                                                        [[state value] (phase archive value state)]
-                                                        (in [state (list.partial [key value] output)]))
-                                                      
-                                                      _
-                                                      (.undefined)))
-                                                  [state (list)]
-                                                  (pairs (list.partial head_key head_value tail)))]
-                       (in [state (js.object (list.reversed output))])))
+                   (translation 
+                                [name phase archive state]
+                                (list.partial head_key head_value tail)
+                                (do [! try.monad]
+                                  [[state output] (monad.mix !
+                                                             (.function (_ [key value] [state output])
+                                                               (when key
+                                                                 (text_synthesis key)
+                                                                 (do try.monad
+                                                                   [[state value] (phase archive value state)]
+                                                                   (in [state (list.partial [key value] output)]))
+                                                                 
+                                                                 _
+                                                                 (.undefined)))
+                                                             [state (list)]
+                                                             (pairs (list.partial head_key head_value tail)))]
+                                  (in [state (js.object (list.reversed output))])))
 
                    (def .public object
                      (syntax (_ [it (<>.some .any)])
@@ -169,13 +169,13 @@
                         [state object] (phase archive (` (.is (..Object .Any) (, object))) state)]
                        (in [state (extension_analysis name (list (text_analysis field) value object))])))
 
-                   (generation 
-                     [name phase archive state]
-                     (list (text_synthesis field) value object)
-                     (do try.monad
-                       [[state value] (phase archive value state)
-                        [state object] (phase archive object state)]
-                       (in [state (js.set (js.the field object) value)])))
+                   (translation 
+                                [name phase archive state]
+                                (list (text_synthesis field) value object)
+                                (do try.monad
+                                  [[state value] (phase archive value state)
+                                   [state object] (phase archive object state)]
+                                  (in [state (js.set (js.the field object) value)])))
 
                    (def .public set
                      (syntax (_ [field .any
diff --git a/stdlib/source/library/lux/ffi/export.js.lux b/stdlib/source/library/lux/ffi/export.js.lux
index 6b0732c7a..1a54cb8ee 100644
--- a/stdlib/source/library/lux/ffi/export.js.lux
+++ b/stdlib/source/library/lux/ffi/export.js.lux
@@ -31,7 +31,7 @@
         ["[1]" artifact]]]]
      [language
       [lux
-       ["[0]" generation]
+       ["[0]" translation]
        ["[0]" declaration]
        [analysis
         ["[0]" type]]]]]]]])
@@ -61,17 +61,17 @@
        term (declaration.lifted_synthesis
              (next archive term))
 
-       dependencies (declaration.lifted_generation
+       dependencies (declaration.lifted_translation
                      (dependency.dependencies archive term))
 
-       next declaration.generation
-       [interim_artifacts term] (declaration.lifted_generation
-                                 (generation.with_interim_artifacts archive
+       next declaration.translation
+       [interim_artifacts term] (declaration.lifted_translation
+                                 (translation.with_interim_artifacts archive
                                    (next archive term)))
 
-       _ (declaration.lifted_generation
+       _ (declaration.lifted_translation
           (do !
-            [@self (generation.learn_custom name (list#mix set.has dependencies interim_artifacts))
+            [@self (translation.learn_custom name (list#mix set.has dependencies interim_artifacts))
              .let [$module (/.var "module")
                    $exports (/.the "exports" $module)
                    definition (/.define (/.var name) term)
@@ -80,9 +80,9 @@
                    code (all /.then
                              definition
                              export)]
-             _ (generation.execute! definition)
-             _ (generation.save! @self {.#None} code)]
-            (generation.log! (%.format "Export " (%.text name)))))]
+             _ (translation.execute! definition)
+             _ (translation.save! @self {.#None} code)]
+            (translation.log! (%.format "Export " (%.text name)))))]
       (in declaration.no_requirements)))
 
   (def .public export
diff --git a/stdlib/source/library/lux/ffi/export.lua.lux b/stdlib/source/library/lux/ffi/export.lua.lux
index ce6949ea7..3153f1d47 100644
--- a/stdlib/source/library/lux/ffi/export.lua.lux
+++ b/stdlib/source/library/lux/ffi/export.lua.lux
@@ -31,7 +31,7 @@
         ["[1]" artifact]]]]
      [language
       [lux
-       ["[0]" generation]
+       ["[0]" translation]
        ["[0]" declaration]
        [analysis
         ["[0]" type]]]]]]]])
@@ -65,17 +65,17 @@
        term (declaration.lifted_synthesis
              (next archive term))
 
-       dependencies (declaration.lifted_generation
+       dependencies (declaration.lifted_translation
                      (dependency.dependencies archive term))
 
-       next declaration.generation
-       [interim_artifacts term] (declaration.lifted_generation
-                                 (generation.with_interim_artifacts archive
+       next declaration.translation
+       [interim_artifacts term] (declaration.lifted_translation
+                                 (translation.with_interim_artifacts archive
                                    (next archive term)))
 
-       _ (declaration.lifted_generation
+       _ (declaration.lifted_translation
           (do !
-            [@self (generation.learn_custom name (list#mix set.has dependencies interim_artifacts))
+            [@self (translation.learn_custom name (list#mix set.has dependencies interim_artifacts))
              .let [$exports (/.var "_REQUIREDNAME")
                    $global (/.var "_G")
                    exporting? (/.not (/.= /.nil $exports))
@@ -87,18 +87,18 @@
                                                  (list))
                                              (/.var name))
                    export! (/.when exporting?
-                                   (all /.then
-                                        (/.when no_exports?
-                                                initialize_exports!)
-                                        export_definition!
-                                        ))]
-             _ (generation.execute! (all /.then
-                                         (/.set (list (/.var name)) term)
-                                         export!))
-             _ (generation.save! @self {.#None} (all /.then
-                                                     (/.local/1 (/.var name) term)
-                                                     export!))]
-            (generation.log! (%.format "Export " (%.text name)))))]
+                             (all /.then
+                                  (/.when no_exports?
+                                    initialize_exports!)
+                                  export_definition!
+                                  ))]
+             _ (translation.execute! (all /.then
+                                          (/.set (list (/.var name)) term)
+                                          export!))
+             _ (translation.save! @self {.#None} (all /.then
+                                                      (/.local/1 (/.var name) term)
+                                                      export!))]
+            (translation.log! (%.format "Export " (%.text name)))))]
       (in declaration.no_requirements)))
 
   (def .public export
diff --git a/stdlib/source/library/lux/ffi/export.py.lux b/stdlib/source/library/lux/ffi/export.py.lux
index d67b9539c..6e69e2a51 100644
--- a/stdlib/source/library/lux/ffi/export.py.lux
+++ b/stdlib/source/library/lux/ffi/export.py.lux
@@ -31,7 +31,7 @@
         ["[1]" artifact]]]]
      [language
       [lux
-       ["[0]" generation]
+       ["[0]" translation]
        ["[0]" declaration]
        [analysis
         ["[0]" type]]]]]]]])
@@ -61,21 +61,21 @@
        term (declaration.lifted_synthesis
              (next archive term))
 
-       dependencies (declaration.lifted_generation
+       dependencies (declaration.lifted_translation
                      (dependency.dependencies archive term))
 
-       next declaration.generation
-       [interim_artifacts term] (declaration.lifted_generation
-                                 (generation.with_interim_artifacts archive
+       next declaration.translation
+       [interim_artifacts term] (declaration.lifted_translation
+                                 (translation.with_interim_artifacts archive
                                    (next archive term)))
 
-       _ (declaration.lifted_generation
+       _ (declaration.lifted_translation
           (do !
-            [@self (generation.learn_custom name (list#mix set.has dependencies interim_artifacts))
+            [@self (translation.learn_custom name (list#mix set.has dependencies interim_artifacts))
              .let [code (/.set (list (/.item (/.string name) /.globals/0)) term)]
-             _ (generation.execute! code)
-             _ (generation.save! @self {.#None} code)]
-            (generation.log! (%.format "Export " (%.text name)))))]
+             _ (translation.execute! code)
+             _ (translation.save! @self {.#None} code)]
+            (translation.log! (%.format "Export " (%.text name)))))]
       (in declaration.no_requirements)))
 
   (def .public export
diff --git a/stdlib/source/library/lux/ffi/export.rb.lux b/stdlib/source/library/lux/ffi/export.rb.lux
index 9798cdb96..5d3fff361 100644
--- a/stdlib/source/library/lux/ffi/export.rb.lux
+++ b/stdlib/source/library/lux/ffi/export.rb.lux
@@ -33,7 +33,7 @@
         ["[1]" artifact]]]]
      [language
       [lux
-       ["[0]" generation]
+       ["[0]" translation]
        ["[0]" declaration]
        ["[0]" analysis
         ["[1]" type]]]]]]]])
@@ -100,17 +100,17 @@
        term (declaration.lifted_synthesis
              (next archive term))
 
-       dependencies (declaration.lifted_generation
+       dependencies (declaration.lifted_translation
                      (dependency.dependencies archive term))
 
-       next declaration.generation
-       [interim_artifacts term] (declaration.lifted_generation
-                                 (generation.with_interim_artifacts archive
+       next declaration.translation
+       [interim_artifacts term] (declaration.lifted_translation
+                                 (translation.with_interim_artifacts archive
                                    (next archive term)))
 
-       _ (declaration.lifted_generation
+       _ (declaration.lifted_translation
           (do !
-            [@self (generation.learn_custom name (list#mix set.has dependencies interim_artifacts))
+            [@self (translation.learn_custom name (list#mix set.has dependencies interim_artifacts))
              .let [[:input:/* :output:] (type.flat_function type)
                    code (if global?
                           (/.set (list (/.manual name)) term)
@@ -122,9 +122,9 @@
                             _
                             (/.statement (/.apply (list (/.string name) term) {.#None}
                                                   (/.manual "define_method")))))]
-             _ (generation.execute! code)
-             _ (generation.save! @self {.#None} code)]
-            (generation.log! (%.format "Export " (%.text name)))))]
+             _ (translation.execute! code)
+             _ (translation.save! @self {.#None} code)]
+            (translation.log! (%.format "Export " (%.text name)))))]
       (in declaration.no_requirements)))
 
   (def .public export
diff --git a/stdlib/source/library/lux/math.lux b/stdlib/source/library/lux/math.lux
index f2c3710f2..a952076c2 100644
--- a/stdlib/source/library/lux/math.lux
+++ b/stdlib/source/library/lux/math.lux
@@ -109,28 +109,28 @@
                                                 ... else
                                                 (phase.except ..no_arithmetic_for [:it:]))))))))))]
 
-                [+ [[.Nat (in (analysis.nat location.dummy 0)) .i64_+#|generation]
-                    [.Int (in (analysis.int location.dummy +0)) .i64_+#|generation]
-                    [.Rev (in (analysis.rev location.dummy .0)) .i64_+#|generation]
-                    [.Frac (in (analysis.frac location.dummy +0.0)) .f64_+#|generation]
+                [+ [[.Nat (in (analysis.nat location.dummy 0)) .i64_+#|translation]
+                    [.Int (in (analysis.int location.dummy +0)) .i64_+#|translation]
+                    [.Rev (in (analysis.rev location.dummy .0)) .i64_+#|translation]
+                    [.Frac (in (analysis.frac location.dummy +0.0)) .f64_+#|translation]
                     [Ratio (type.expecting Ratio (phase archive (` ))) ratio.+]
                     [Complex (type.expecting Complex (phase archive (` ))) complex.+]]]
-                [- [[.Nat (in (analysis.nat location.dummy 0)) .i64_-#|generation]
-                    [.Int (in (analysis.int location.dummy -0)) .i64_-#|generation]
-                    [.Rev (in (analysis.rev location.dummy .0)) .i64_-#|generation]
-                    [.Frac (in (analysis.frac location.dummy -0.0)) .f64_-#|generation]
+                [- [[.Nat (in (analysis.nat location.dummy 0)) .i64_-#|translation]
+                    [.Int (in (analysis.int location.dummy -0)) .i64_-#|translation]
+                    [.Rev (in (analysis.rev location.dummy .0)) .i64_-#|translation]
+                    [.Frac (in (analysis.frac location.dummy -0.0)) .f64_-#|translation]
                     [Ratio (type.expecting Ratio (phase archive (` ))) ratio.-]
                     [Complex (type.expecting Complex (phase archive (` ))) complex.-]]]
                 [* [[.Nat (in (analysis.nat location.dummy 1)) nat.*]
-                    [.Int (in (analysis.int location.dummy +1)) .int_*#|generation]
+                    [.Int (in (analysis.int location.dummy +1)) .int_*#|translation]
                     [.Rev (in (analysis.rev location.dummy rev./1)) rev.*]
-                    [.Frac (in (analysis.frac location.dummy +1.0)) .f64_*#|generation]
+                    [.Frac (in (analysis.frac location.dummy +1.0)) .f64_*#|translation]
                     [Ratio (type.expecting Ratio (phase archive (` ))) ratio.*]
                     [Complex (type.expecting Complex (phase archive (` ))) complex.*]]]
                 [/ [[.Nat (in (analysis.nat location.dummy 1)) nat./]
-                    [.Int (in (analysis.int location.dummy +1)) .int_/#|generation]
+                    [.Int (in (analysis.int location.dummy +1)) .int_/#|translation]
                     [.Rev (in (analysis.rev location.dummy rev./1)) rev./]
-                    [.Frac (in (analysis.frac location.dummy +1.0)) .f64_/#|generation]
+                    [.Frac (in (analysis.frac location.dummy +1.0)) .f64_/#|translation]
                     [Ratio (type.expecting Ratio (phase archive (` ))) ratio./]
                     [Complex (type.expecting Complex (phase archive (` ))) complex./]]]
                 )
@@ -159,16 +159,16 @@
                                               ... else
                                               (phase.except ..no_arithmetic_for [:it:])))))))))]
 
-                [= [[.Nat .i64_=#|generation]
-                    [.Int .i64_=#|generation]
-                    [.Rev .i64_=#|generation]
-                    [.Frac .f64_=#|generation]
+                [= [[.Nat .i64_=#|translation]
+                    [.Int .i64_=#|translation]
+                    [.Rev .i64_=#|translation]
+                    [.Frac .f64_=#|translation]
                     [Ratio ratio.=]
                     [Complex complex.=]]]
                 [< [[.Nat nat.<]
-                    [.Int .int_<#|generation]
+                    [.Int .int_<#|translation]
                     [.Rev rev.<]
-                    [.Frac .f64_<#|generation]
+                    [.Frac .f64_<#|translation]
                     [Ratio ratio.<]]]
                 [> [[.Nat nat.>]
                     [.Int int.>]
@@ -212,9 +212,9 @@
                                               (phase.except ..no_arithmetic_for [:it:])))))))))]
 
                 [% [[.Nat nat.%]
-                    [.Int .int_%#|generation]
+                    [.Int .int_%#|translation]
                     [.Rev rev.%]
-                    [.Frac .f64_%#|generation]
+                    [.Frac .f64_%#|translation]
                     [Ratio ratio.%]
                     [Complex complex.%]]]
                 )
diff --git a/stdlib/source/library/lux/meta/compiler/default/init.lux b/stdlib/source/library/lux/meta/compiler/default/init.lux
index 18d962303..2999dad49 100644
--- a/stdlib/source/library/lux/meta/compiler/default/init.lux
+++ b/stdlib/source/library/lux/meta/compiler/default/init.lux
@@ -31,7 +31,7 @@
      ["[1][0]" syntax (.only Aliases)]
      ["[1][0]" synthesis]
      ["[1][0]" declaration (.only Requirements Extender)]
-     ["[1][0]" generation]
+     ["[1][0]" translation]
      ["[1][0]" analysis (.only)
       [macro (.only Expander)]
       ["[0]A" module]]
@@ -52,22 +52,22 @@
       ["[0]" descriptor]
       ["[0]" document]]]]]])
 
-(def .public (state target module configuration extender expander host generate)
+(def .public (state target module configuration extender expander host translate)
   (All (_ anchor expression declaration)
     (-> Target
         descriptor.Module
         Configuration
         extension.Extender Expander
-        (///generation.Host expression declaration)
-        (-> extension.Extender Lux (///generation.Phase anchor expression declaration))
+        (///translation.Host expression declaration)
+        (-> extension.Extender Lux (///translation.Phase anchor expression declaration))
         (///declaration.State anchor expression declaration)))
   (let [lux (///analysis.state (///analysis.info version.latest target configuration))]
     [///declaration.#analysis [///declaration.#state lux
                                ///declaration.#phase (analysisP.phase extender expander)]
      ///declaration.#synthesis [///declaration.#state ///synthesis.init
                                 ///declaration.#phase (synthesisP.phase extender)]
-     ///declaration.#generation [///declaration.#state (///generation.state host module)
-                                 ///declaration.#phase (generate extender)]]))
+     ///declaration.#translation [///declaration.#state (///translation.state host module)
+                                  ///declaration.#phase (translate extender)]]))
 
 (type Reader
   (-> Source (Either [Source Text] [Source Code])))
@@ -96,7 +96,7 @@
     (///declaration.Operation anchor expression declaration a)))
 
 (type (Payload declaration)
-  [(///generation.Buffer declaration)
+  [(///translation.Buffer declaration)
    Registry])
 
 (def (with_analysis_defaults bundle)
@@ -123,9 +123,9 @@
                           (moduleA.override_definition [.prelude name] [true {.#Default [.Synthesis handler]}])))))]
     (in [])))
 
-(def (with_generation_defaults bundle)
+(def (with_translation_defaults bundle)
   (All (_ anchor expression declaration)
-    (-> (///generation.Bundle anchor expression declaration)
+    (-> (///translation.Bundle anchor expression declaration)
         (///declaration.Operation anchor expression declaration Any)))
   (do [! ///phase.monad]
     [_ (|> bundle
@@ -133,7 +133,7 @@
            (monad.each !
                        (function (_ [name handler])
                          (///declaration.lifted_analysis
-                          (moduleA.override_definition [.prelude name] [true {.#Default [.Generation handler]}])))))]
+                          (moduleA.override_definition [.prelude name] [true {.#Default [.Translation handler]}])))))]
     (in [])))
 
 (def (with_declaration_defaults bundle)
@@ -154,10 +154,10 @@
 (type .public (Extensions anchor expression declaration)
   [///analysis.Bundle
    ///synthesis.Bundle
-   (///generation.Bundle anchor expression declaration)
+   (///translation.Bundle anchor expression declaration)
    (///declaration.Bundle anchor expression declaration)])
 
-(def .public (with_defaults module [analysis_bundle synthesis_bundle generation_bundle host_declaration_bundle])
+(def .public (with_defaults module [analysis_bundle synthesis_bundle translation_bundle host_declaration_bundle])
   (All (_ anchor expression declaration)
     (-> Text (Extensions anchor expression declaration)
         (///declaration.Operation anchor expression declaration Any)))
@@ -166,7 +166,7 @@
     (do ///phase.monad
       [_ (with_analysis_defaults analysis_bundle)
        _ (with_synthesis_defaults synthesis_bundle)
-       _ (with_generation_defaults generation_bundle)]
+       _ (with_translation_defaults translation_bundle)]
       (with_declaration_defaults (dictionary.composite host_declaration_bundle
                                                        luxD.bundle)))
 
@@ -191,7 +191,7 @@
        [_ (monad.each ! moduleA.import dependencies)
         .let [source (///analysis.source (the ///.#module input) (the ///.#code input))]
         _ (///analysis.set_source_code source)]
-       (in [source [///generation.empty_buffer
+       (in [source [///translation.empty_buffer
                     registry.empty]])))))
 
 (def (end module)
@@ -204,10 +204,10 @@
      analysis_module (<| (is (Operation .Module))
                          ///declaration.lifted_analysis
                          meta.current_module)
-     final_buffer (///declaration.lifted_generation
-                   ///generation.buffer)
-     final_registry (///declaration.lifted_generation
-                     ///generation.get_registry)]
+     final_buffer (///declaration.lifted_translation
+                   ///translation.buffer)
+     final_registry (///declaration.lifted_translation
+                     ///translation.get_registry)]
     (in [analysis_module [final_buffer
                           final_registry]])))
 
@@ -218,10 +218,10 @@
         (///declaration.Operation anchor expression declaration
                                   (Payload declaration))))
   (do ///phase.monad
-    [buffer (///declaration.lifted_generation
-             ///generation.buffer)
-     registry (///declaration.lifted_generation
-               ///generation.get_registry)]
+    [buffer (///declaration.lifted_translation
+             ///translation.buffer)
+     registry (///declaration.lifted_translation
+               ///translation.get_registry)]
     (in [buffer registry])))
 
 ... TODO: Inline ASAP
@@ -232,10 +232,10 @@
                                   [Requirements (Payload declaration)])))
   (do ///phase.monad
     [.let [[pre_buffer pre_registry] pre_payoad]
-     _ (///declaration.lifted_generation
-        (///generation.set_buffer pre_buffer))
-     _ (///declaration.lifted_generation
-        (///generation.set_registry pre_registry))
+     _ (///declaration.lifted_translation
+        (///translation.set_buffer pre_buffer))
+     _ (///declaration.lifted_translation
+        (///translation.set_registry pre_registry))
      requirements (let [execute! (declarationP.phase wrapper extender expander)]
                     (execute! archive code))
      post_payload (..get_current_payload extender)]
@@ -285,21 +285,21 @@
   (def (define_program! archive program global program_module program_definition)
     (All (_ )
       (-> Archive
-          (Program expression declaration) (-> Archive Symbol (///generation.Operation  expression))
+          (Program expression declaration) (-> Archive Symbol (///translation.Operation  expression))
           descriptor.Module Text
-          (///generation.Operation  Any)))
+          (///translation.Operation  Any)))
     (do ///phase.monad
-      [ [@program _] (///generation.definition archive [program_module program_definition])
-        @self (///generation.learn [///program.name {.#None}] true (set.has @program (set.empty unit.hash)))
+      [ [@program _] (///translation.definition archive [program_module program_definition])
+        @self (///translation.learn [///program.name {.#None}] true (set.has @program (set.empty unit.hash)))
 
         |program| (global archive [program_module program_definition])
         @module (///phase.lifted (archive.id program_module archive))]
-      (///generation.save! @self {.#None} (program [@module @self] |program|))))
+      (///translation.save! @self {.#None} (program [@module @self] |program|))))
 
   (def .public (compiler program global wrapper extender expander prelude write_declaration program_module program_definition
                          extensions)
     (All (_ )
-      (-> (Program expression declaration) (-> Archive Symbol (///generation.Operation  expression))
+      (-> (Program expression declaration) (-> Archive Symbol (///translation.Operation  expression))
           ///phase.Wrapper (Extender ) Expander descriptor.Module (-> declaration Binary)
           descriptor.Module (Maybe Text)
           (Extensions )
@@ -327,7 +327,7 @@
                                            [_ (if (text#= program_module module)
                                                 (when program_definition
                                                   {.#Some program_definition}
-                                                  (///declaration.lifted_generation
+                                                  (///declaration.lifted_translation
                                                    (define_program! archive program global program_module program_definition))
                                                   
                                                   {.#None}
@@ -360,10 +360,10 @@
                                                                               [analysis_module (<| (is (Operation .Module))
                                                                                                    ///declaration.lifted_analysis
                                                                                                    meta.current_module)
-                                                                               _ (///declaration.lifted_generation
-                                                                                  (///generation.set_buffer temporary_buffer))
-                                                                               _ (///declaration.lifted_generation
-                                                                                  (///generation.set_registry temporary_registry))
+                                                                               _ (///declaration.lifted_translation
+                                                                                  (///translation.set_buffer temporary_buffer))
+                                                                               _ (///declaration.lifted_translation
+                                                                                  (///translation.set_registry temporary_registry))
                                                                                _ (|> requirements
                                                                                      (the ///declaration.#referrals)
                                                                                      (monad.each ! (execute! archive)))
diff --git a/stdlib/source/library/lux/meta/compiler/default/platform.lux b/stdlib/source/library/lux/meta/compiler/default/platform.lux
index c6f7c892f..0e56f0d61 100644
--- a/stdlib/source/library/lux/meta/compiler/default/platform.lux
+++ b/stdlib/source/library/lux/meta/compiler/default/platform.lux
@@ -44,7 +44,7 @@
      ["$" /]
      ["[0]" syntax]
      ["[1][0]" synthesis]
-     ["[1][0]" generation (.only Buffer)]
+     ["[1][0]" translation (.only Buffer)]
      ["[1][0]" declaration (.only Extender)]
      ["[1][0]" analysis (.only)
       [macro (.only Expander)]
@@ -73,12 +73,12 @@
      ["ioW" archive]]]]])
 
 (with_expansions [ (these anchor expression declaration)
-                   (these ///generation.Operation )]
+                   (these ///translation.Operation )]
   (type .public (Platform )
     (Record
      [#file_system (file.System Async)
-      #host (///generation.Host expression declaration)
-      #phase (-> extension.Extender Lux (///generation.Phase ))
+      #host (///translation.Host expression declaration)
+      #phase (-> extension.Extender Lux (///translation.Phase ))
       #runtime ( [Registry Output])
       #phase_wrapper phase.Wrapper
       #write (-> declaration Binary)]))
@@ -143,13 +143,13 @@
     ... TODO: Inline ASAP
     (def initialize_buffer!
       (All (_ )
-        (///generation.Operation  Any))
-      (///generation.set_buffer ///generation.empty_buffer))
+        (///translation.Operation  Any))
+      (///translation.set_buffer ///translation.empty_buffer))
 
     ... TODO: Inline ASAP
     (def (compile_runtime! platform)
       (All (_ )
-        (->  (///generation.Operation  [Registry Output])))
+        (->  (///translation.Operation  [Registry Output])))
       (do phase.monad
         [_ ..initialize_buffer!]
         (the #runtime platform)))
@@ -178,7 +178,7 @@
             (///declaration.Operation 
                                       [Archive (archive.Entry .Module)])))
       (do phase.monad
-        [[registry payload] (///declaration.lifted_generation
+        [[registry payload] (///declaration.lifted_translation
                              (..compile_runtime! platform))
          .let [entry [..runtime_module payload registry]]
          archive (phase.lifted (if (archive.reserved? archive descriptor.runtime)
@@ -259,9 +259,9 @@
     (def (module_compilation_log module)
       (All (_ )
         (-> descriptor.Module  Text))
-      (|>> (the [///declaration.#generation
+      (|>> (the [///declaration.#translation
                  ///declaration.#state
-                 ///generation.#log])
+                 ///translation.#log])
            (sequence#mix (function (_ right left)
                            (%.format left ..compilation_log_separator right))
                          module)))
@@ -269,9 +269,9 @@
     (def with_reset_log
       (All (_ )
         (->  ))
-      (has [///declaration.#generation
+      (has [///declaration.#translation
             ///declaration.#state
-            ///generation.#log]
+            ///translation.#log]
            sequence.empty))
 
     (def empty
@@ -603,7 +603,7 @@
       (def (compiler program global phase_wrapper extender expander platform program_module program_definition
                      all_extensions)
         (All (_ )
-          (-> (Program expression declaration) (-> Archive Symbol (///generation.Operation  expression))
+          (-> (Program expression declaration) (-> Archive Symbol (///translation.Operation  expression))
               phase.Wrapper (Extender ) Expander  Text (Maybe Module)
               (//init.Extensions )
               (///.Compiler  .Module)))
@@ -791,7 +791,7 @@
       (def .public (compile program global lux_compiler phase_wrapper import file_context extender expander platform compilation context
                             all_extensions)
         (All (_ )
-          (-> (Program expression declaration) (-> Archive Symbol (///generation.Operation  expression))
+          (-> (Program expression declaration) (-> Archive Symbol (///translation.Operation  expression))
               (-> Any ..Custom) phase.Wrapper Import context.Context (Extender ) Expander  Compilation Lux_Context
               (//init.Extensions )
               Lux_Return))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/evaluation.lux b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/evaluation.lux
index 2e80fdb66..0a6cd7660 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/analysis/evaluation.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/analysis/evaluation.lux
@@ -26,7 +26,7 @@
     ["[0]P" analysis]
     [//
      ["[0]" synthesis]
-     ["[0]" generation]
+     ["[0]" translation]
      [///
       ["[0]" phase]
       [meta
@@ -42,13 +42,13 @@
 
 (def .public (evaluator analysis
                         [synthesis_state synthesis]
-                        [generation_state generation])
+                        [translation_state translation])
   (All (_ anchor expression artifact)
     (-> //.Phase
         [synthesis.State
          (-> Lux synthesis.Phase)]
-        [(generation.State anchor expression artifact)
-         (-> Lux (generation.Phase anchor expression artifact))]
+        [(translation.State anchor expression artifact)
+         (-> Lux (translation.Phase anchor expression artifact))]
         Eval))
   (function (eval archive type exprC)
     (do phase.monad
@@ -62,18 +62,18 @@
             [exprS (|> exprA
                        (synthesis lux archive)
                        (phase.result synthesis_state))])
-          (phase.result generation_state)
+          (phase.result translation_state)
           (do phase.monad
             [@module (sharing [anchor expression artifact]
-                       (is (-> Lux (generation.Phase anchor expression artifact))
-                           generation)
-                       (is (generation.Operation anchor expression artifact module.ID)
-                           (generation.module_id module archive)))
+                       (is (-> Lux (translation.Phase anchor expression artifact))
+                           translation)
+                       (is (translation.Operation anchor expression artifact module.ID)
+                           (translation.module_id module archive)))
              .let [[evals _] (io.run! (atom.update! (dictionary.revised' @module 0 ++) ..evals))
                    @eval (maybe.else 0 (dictionary.value @module evals))]
-             exprO (<| (generation.with_registry_shift (|> @module
-                                                           (i64.left_shifted 16)
-                                                           (i64.or @eval)
-                                                           (i64.left_shifted 32)))
-                       (generation lux archive exprS))]
-            (generation.evaluate! [@module @eval] [{.#None} exprO]))))))
+             exprO (<| (translation.with_registry_shift (|> @module
+                                                            (i64.left_shifted 16)
+                                                            (i64.or @eval)
+                                                            (i64.left_shifted 32)))
+                       (translation lux archive exprS))]
+            (translation.evaluate! [@module @eval] [{.#None} exprO]))))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/declaration.lux b/stdlib/source/library/lux/meta/compiler/language/lux/declaration.lux
index 5e3a91a34..43c7d23a4 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/declaration.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/declaration.lux
@@ -11,7 +11,7 @@
  [//
   ["[0]" analysis]
   ["[0]" synthesis]
-  ["[0]" generation]
+  ["[0]" translation]
   [phase
    ["[0]" extension]]
   [///
@@ -32,8 +32,8 @@
                          analysis.Phase)
     #synthesis (Component synthesis.State
                           (-> Lux synthesis.Phase))
-    #generation (Component (generation.State anchor expression declaration)
-                           (-> Lux (generation.Phase anchor expression declaration)))]))
+    #translation (Component (translation.State anchor expression declaration)
+                            (-> Lux (translation.Phase anchor expression declaration)))]))
 
 (type .public Import
   (Record
@@ -79,7 +79,7 @@
 
   [analysis   ..#analysis   analysis.Phase]
   [synthesis  ..#synthesis  (-> Lux synthesis.Phase)]
-  [generation ..#generation (-> Lux (generation.Phase anchor expression declaration))]
+  [translation ..#translation (-> Lux (translation.Phase anchor expression declaration))]
   )
 
 (with_template [  ]
@@ -92,7 +92,7 @@
 
   [lifted_analysis   ..#analysis   analysis.Operation]
   [lifted_synthesis  ..#synthesis  synthesis.Operation]
-  [lifted_generation ..#generation (generation.Operation anchor expression declaration)]
+  [lifted_translation ..#translation (translation.Operation anchor expression declaration)]
   )
 
 (def .public (set_current_module module)
@@ -100,4 +100,4 @@
     (-> Module (Operation anchor expression declaration Any)))
   (do phase.monad
     [_ (..lifted_analysis (analysis.set_current_module module))]
-    (..lifted_generation (generation.enter_module module))))
+    (..lifted_translation (translation.enter_module module))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/generation.lux b/stdlib/source/library/lux/meta/compiler/language/lux/generation.lux
deleted file mode 100644
index d34049cf6..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/generation.lux
+++ /dev/null
@@ -1,401 +0,0 @@
-(.require
- [library
-  [lux (.except Synthesis #module #counter #host #location symbol)
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" try (.only Try)]
-    ["[0]" exception (.only Exception)]
-    ["[0]" function]]
-   [data
-    [binary (.only Binary)]
-    ["[0]" product]
-    ["[0]" text (.use "[1]#[0]" equivalence)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" sequence (.only Sequence)]
-     ["[0]" list (.use "[1]#[0]" functor mix)]
-     ["[0]" set (.only Set)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    ["[0]" symbol]
-    [macro
-     ["^" pattern]
-     ["[0]" template]]]]]
- [//
-  [synthesis (.only Synthesis)]
-  [phase
-   ["[0]" extension]]
-  [///
-   ["[0]" phase]
-   [meta
-    ["[0]" archive (.only Archive)
-     ["[0]" registry (.only Registry)]
-     ["[0]" unit]
-     ["[0]" artifact (.only)
-      ["[0]" category]]
-     ["[0]" module (.only)
-      ["[0]" descriptor]]]]]])
-
-(type .public (Buffer declaration)
-  (Sequence [artifact.ID (Maybe Text) declaration]))
-
-(exception.def .public (cannot_interpret error)
-  (Exception Text)
-  (exception.report
-   (list ["Error" error])))
-
-(with_template []
-  [(exception.def .public ( it)
-     (Exception artifact.ID)
-     (exception.report
-      (list ["Artifact ID" (%.nat it)])))]
-
-  [cannot_overwrite_output]
-  [no_buffer_for_saving_code]
-  )
-
-(type .public (Host expression declaration)
-  (Interface
-   (is (-> unit.ID [(Maybe unit.ID) expression] (Try Any))
-       evaluate)
-   (is (-> declaration (Try Any))
-       execute)
-   (is (-> unit.ID (Maybe Text) [(Maybe unit.ID) expression] (Try [Text Any declaration]))
-       define)
-
-   (is (-> unit.ID Binary declaration)
-       ingest)
-   (is (-> unit.ID (Maybe Text) declaration (Try Any))
-       re_learn)
-   (is (-> unit.ID (Maybe Text) declaration (Try Any))
-       re_load)))
-
-(type .public (State anchor expression declaration)
-  (Record
-   [#module descriptor.Module
-    #anchor (Maybe anchor)
-    #host (Host expression declaration)
-    #buffer (Maybe (Buffer declaration))
-    #registry Registry
-    #registry_shift Nat
-    #counter Nat
-    #context (Maybe artifact.ID)
-    #log (Sequence Text)
-    #interim_artifacts (List artifact.ID)]))
-
-(type .public (Operation anchor expression declaration)
-  (phase.Operation (State anchor expression declaration)))
-
-(type .public (Phase anchor expression declaration)
-  (phase.Phase (State anchor expression declaration) Synthesis expression))
-
-(with_template [ ]
-  [(type .public ( anchor expression declaration)
-     ( (State anchor expression declaration) Synthesis expression))]
-
-  [Handler   extension.Handler]
-  [Bundle    extension.Bundle]
-  [Extender  extension.Extender]
-  )
-
-(def .public (state host module)
-  (All (_ anchor expression declaration)
-    (-> (Host expression declaration)
-        descriptor.Module
-        (..State anchor expression declaration)))
-  [#module module
-   #anchor {.#None}
-   #host host
-   #buffer {.#None}
-   #registry registry.empty
-   #registry_shift 0
-   #counter 0
-   #context {.#None}
-   #log sequence.empty
-   #interim_artifacts (list)])
-
-(def .public empty_buffer
-  Buffer
-  sequence.empty)
-
-(with_template [
-                  
-                   ]
-  [(exception.def .public )
-
-   (def .public 
-     (All (_ anchor expression declaration output) )
-     (function (_ body)
-       (function (_ state)
-         (when (body (has  {.#Some } state))
-           {try.#Success [state' output]}
-           {try.#Success [(has  (the  state) state')
-                          output]}
-
-           {try.#Failure error}
-           {try.#Failure error}))))
-
-   (def .public 
-     (All (_ anchor expression declaration)
-       (Operation anchor expression declaration ))
-     (function (_ state)
-       (when (the  state)
-         {.#Some output}
-         {try.#Success [state output]}
-
-         {.#None}
-         (exception.except  []))))
-
-   (def .public ( value)
-     (All (_ anchor expression declaration)
-       (->  (Operation anchor expression declaration Any)))
-     (function (_ state)
-       {try.#Success [(has  {.#Some value} state)
-                      []]}))]
-
-  [#anchor
-   (with_anchor anchor)
-   (-> anchor (Operation anchor expression declaration output)
-       (Operation anchor expression declaration output))
-   anchor
-   set_anchor anchor anchor no_anchor]
-
-  [#buffer
-   with_buffer
-   (-> (Operation anchor expression declaration output)
-       (Operation anchor expression declaration output))
-   ..empty_buffer
-   set_buffer buffer (Buffer declaration) no_active_buffer]
-  )
-
-(def .public get_registry
-  (All (_ anchor expression declaration)
-    (Operation anchor expression declaration Registry))
-  (function (_ state)
-    {try.#Success [state (the #registry state)]}))
-
-(def .public (set_registry value)
-  (All (_ anchor expression declaration)
-    (-> Registry (Operation anchor expression declaration Any)))
-  (function (_ state)
-    {try.#Success [(has #registry value state)
-                   []]}))
-
-(def .public next
-  (All (_ anchor expression declaration)
-    (Operation anchor expression declaration Nat))
-  (do phase.monad
-    [count (phase.read (the #counter))
-     _ (phase.update (revised #counter ++))]
-    (in count)))
-
-(def .public (symbol prefix)
-  (All (_ anchor expression declaration)
-    (-> Text (Operation anchor expression declaration Text)))
-  (at phase.monad each (|>> %.nat (format prefix)) ..next))
-
-(def .public (enter_module module)
-  (All (_ anchor expression declaration)
-    (-> descriptor.Module (Operation anchor expression declaration Any)))
-  (phase.update (has #module module)))
-
-(def .public module
-  (All (_ anchor expression declaration)
-    (Operation anchor expression declaration descriptor.Module))
-  (phase.read (the #module)))
-
-(def .public (evaluate! label code)
-  (All (_ anchor expression declaration)
-    (-> unit.ID [(Maybe unit.ID) expression] (Operation anchor expression declaration Any)))
-  (function (_ state)
-    (when (at (the #host state) evaluate label code)
-      {try.#Success output}
-      {try.#Success [state output]}
-
-      {try.#Failure error}
-      (exception.except ..cannot_interpret [error]))))
-
-(def .public (execute! code)
-  (All (_ anchor expression declaration)
-    (-> declaration (Operation anchor expression declaration Any)))
-  (function (_ state)
-    (when (at (the #host state) execute code)
-      {try.#Success output}
-      {try.#Success [state output]}
-
-      {try.#Failure error}
-      (exception.except ..cannot_interpret error))))
-
-(def .public (define! context custom code)
-  (All (_ anchor expression declaration)
-    (-> unit.ID (Maybe Text) [(Maybe unit.ID) expression] (Operation anchor expression declaration [Text Any declaration])))
-  (function (_ state)
-    (when (at (the #host state) define context custom code)
-      {try.#Success output}
-      {try.#Success [state output]}
-
-      {try.#Failure error}
-      (exception.except ..cannot_interpret error))))
-
-(def .public (save! artifact_id custom code)
-  (All (_ anchor expression declaration)
-    (-> artifact.ID (Maybe Text) declaration (Operation anchor expression declaration Any)))
-  (do [! phase.monad]
-    [?buffer (phase.read (the #buffer))]
-    (when ?buffer
-      {.#Some buffer}
-      ... TODO: Optimize by no longer checking for overwrites...
-      (if (sequence.any? (|>> product.left (n.= artifact_id)) buffer)
-        (phase.except ..cannot_overwrite_output [artifact_id])
-        (phase.update (has #buffer {.#Some (sequence.suffix [artifact_id custom code] buffer)})))
-      
-      {.#None}
-      (phase.except ..no_buffer_for_saving_code [artifact_id]))))
-
-(with_template [     ]
-  [(`` (def .public ( it (,, (template.spliced )) dependencies)
-         (All (_ anchor expression declaration)
-           (->  (,, (template.spliced )) (Set unit.ID) (Operation anchor expression declaration artifact.ID)))
-         (function (_ state)
-           (let [[id registry'] ( it  dependencies (the #registry state))]
-             {try.#Success [(has #registry registry' state)
-                            id]}))))]
-
-  [category.Definition mandatory? [mandatory?] [Bit] learn registry.definition]
-  [Text #1 [] [] learn_custom registry.custom]
-  [Text #0 [] [] learn_analyser registry.analyser]
-  [Text #0 [] [] learn_synthesizer registry.synthesizer]
-  [Text #0 [] [] learn_generator registry.generator]
-  [Text #0 [] [] learn_declaration registry.declaration]
-  )
-
-(exception.def .public (unknown_definition [name known_definitions])
-  (Exception [Symbol (List category.Definition)])
-  (exception.report
-   (list ["Definition" (symbol.short name)]
-         ["Module" (symbol.module name)]
-         ["Known Definitions" (exception.listing product.left known_definitions)])))
-
-(def .public (remember archive name)
-  (All (_ anchor expression declaration)
-    (-> Archive Symbol (Operation anchor expression declaration unit.ID)))
-  (function (_ state)
-    (let [[_module _name] name]
-      (do try.monad
-        [@module (archive.id _module archive)
-         registry (if (text#= (the #module state) _module)
-                    {try.#Success (the #registry state)}
-                    (do try.monad
-                      [[_module output registry] (archive.find _module archive)]
-                      {try.#Success registry}))]
-        (when (registry.id _name registry)
-          {.#None}
-          (exception.except ..unknown_definition [name (registry.definitions registry)])
-          
-          {.#Some id}
-          {try.#Success [state [@module id]]})))))
-
-(def .public (definition archive name)
-  (All (_ anchor expression declaration)
-    (-> Archive Symbol (Operation anchor expression declaration [unit.ID (Maybe category.Definition)])))
-  (function (_ state)
-    (let [[_module _name] name]
-      (do try.monad
-        [@module (archive.id _module archive)
-         registry (if (text#= (the #module state) _module)
-                    {try.#Success (the #registry state)}
-                    (do try.monad
-                      [[_module output registry] (archive.find _module archive)]
-                      {try.#Success registry}))]
-        (when (registry.find_definition _name registry)
-          {.#None}
-          (exception.except ..unknown_definition [name (registry.definitions registry)])
-          
-          {.#Some [@artifact def]}
-          {try.#Success [state [[@module @artifact] def]]})))))
-
-(exception.def .public no_context)
-
-(def .public (module_id module archive)
-  (All (_ anchor expression declaration)
-    (-> descriptor.Module Archive (Operation anchor expression declaration module.ID)))
-  (function (_ state)
-    (do try.monad
-      [@module (archive.id module archive)]
-      (in [state @module]))))
-
-(def .public (context archive)
-  (All (_ anchor expression declaration)
-    (-> Archive (Operation anchor expression declaration unit.ID)))
-  (function (_ state)
-    (when (the #context state)
-      {.#None}
-      (exception.except ..no_context [])
-      
-      {.#Some id}
-      (do try.monad
-        [@module (archive.id (the #module state) archive)]
-        (in [state [@module id]])))))
-
-(def .public (with_context @artifact body)
-  (All (_ anchor expression declaration a)
-    (-> artifact.ID
-        (Operation anchor expression declaration a)
-        (Operation anchor expression declaration a)))
-  (function (_ state)
-    (do try.monad
-      [[state' output] (body (has #context {.#Some @artifact} state))]
-      (in [(has #context (the #context state) state')
-           output]))))
-
-(def .public (with_registry_shift shift body)
-  (All (_ anchor expression declaration a)
-    (-> Nat
-        (Operation anchor expression declaration a)
-        (Operation anchor expression declaration a)))
-  (function (_ state)
-    (do try.monad
-      [[state' output] (body (has #registry_shift shift state))]
-      (in [(has #registry_shift (the #registry_shift state) state')
-           output]))))
-
-(def .public (with_new_context archive dependencies body)
-  (All (_ anchor expression declaration a)
-    (-> Archive (Set unit.ID) (Operation anchor expression declaration a)
-        (Operation anchor expression declaration [unit.ID a])))
-  (function (_ state)
-    (let [[@artifact registry'] (registry.resource false dependencies (the #registry state))
-          @artifact (n.+ @artifact (the #registry_shift state))]
-      (do try.monad
-        [[state' output] (body (|> state
-                                   (has #registry registry')
-                                   (has #context {.#Some @artifact})
-                                   (revised #interim_artifacts (|>> {.#Item @artifact}))))
-         @module (archive.id (the #module state) archive)]
-        (in [(has #context (the #context state) state')
-             [[@module @artifact]
-              output]])))))
-
-(def .public (log! message)
-  (All (_ anchor expression declaration a)
-    (-> Text (Operation anchor expression declaration Any)))
-  (function (_ state)
-    {try.#Success [(revised #log (sequence.suffix message) state)
-                   []]}))
-
-(def .public (with_interim_artifacts archive body)
-  (All (_ anchor expression declaration a)
-    (-> Archive (Operation anchor expression declaration a)
-        (Operation anchor expression declaration [(List unit.ID) a])))
-  (do phase.monad
-    [module (phase.read (the #module))]
-    (function (_ state)
-      (do try.monad
-        [@module (archive.id module archive)
-         [state' output] (body state)]
-        (in [(has #interim_artifacts (list) state')
-             [(list#each (|>> [@module]) (the #interim_artifacts state'))
-              output]])))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/declaration.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/declaration.lux
index ee14e65bc..0c6da0e7b 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/declaration.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/declaration.lux
@@ -94,8 +94,8 @@
                compiler_eval ((evaluation.evaluator analysis
                                                     [(the [/.#synthesis /.#state] state)
                                                      (the [/.#synthesis /.#phase] state)]
-                                                    [(the [/.#generation /.#state] state)
-                                                     (the [/.#generation /.#phase] state)])
+                                                    [(the [/.#translation /.#state] state)
+                                                     (the [/.#translation /.#phase] state)])
                               archive)
                extension_eval (as Eval (wrapper (as_expected compiler_eval)))]
          _ (phase.with (has [/.#analysis /.#state .#eval] extension_eval state))]
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux
index 4e5b5d435..f6da727d8 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux
@@ -63,13 +63,13 @@
   ["[1][0]" lux (.only custom install)]
   ["/[1]" // (.only)
    ["/[1]" //
-    [generation
+    [translation
      [jvm
       ["[0]" runtime]
       ["[0]" function
        ["[1]" abstract]]]]
     ["/[1]" //
-     ["[0]" generation]
+     ["[0]" translation]
      ["[0]" declaration]
      ["[1][0]" analysis (.only Analysis Operation Phase Handler Bundle)
       ["[0]" complex]
@@ -460,7 +460,7 @@
                                                   (list)})
                     (analyse archive arrayC))
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list arrayA)}])))]))
 
 (def array::length::object
@@ -480,7 +480,7 @@
              :write: (typeA.check (check.clean (list) :write:))
              arrayJT (jvm_array_type (.type_literal (array.Array' :read: :write:)))
              @ meta.location]
-            (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+            (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                              (list (/////analysis.text @ (..signature arrayJT))
                                                    arrayA)}]))))]))
 
@@ -495,7 +495,7 @@
          _ (typeA.inference {.#Primitive (|> (jvm.array primitive_type) ..reflection)
                                          (list)})
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list lengthA)}])))]))
 
 (def array::new::object
@@ -515,7 +515,7 @@
                      {.#None}
                      (/////analysis.except ..non_array expectedT))
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list (/////analysis.text @ (..signature elementJT))
                                                lengthA)}])))]))
 
@@ -694,7 +694,7 @@
                                                   (list)})
                     (analyse archive arrayC))
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list idxA arrayA)}])))]))
 
 (def array::read::object
@@ -716,7 +716,7 @@
              :write: (typeA.check (check.clean (list) :write:))
              arrayJT (jvm_array_type (.type_literal (array.Array' :read: :write:)))
              @ meta.location]
-            (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+            (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                              (list (/////analysis.text @ (..signature arrayJT))
                                                    idxA
                                                    arrayA)}]))))]))
@@ -737,7 +737,7 @@
            arrayA (<| (typeA.expecting array_type)
                       (analyse archive arrayC))
            @ meta.location]
-          (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+          (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                            (list idxA
                                                  valueA
                                                  arrayA)}])))])))
@@ -763,7 +763,7 @@
              :write: (typeA.check (check.clean (list) :write:))
              arrayJT (jvm_array_type (.type_literal (array.Array' :read: :write:)))
              @ meta.location]
-            (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+            (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                              (list (/////analysis.text @ (..signature arrayJT))
                                                    idxA
                                                    valueA
@@ -822,7 +822,7 @@
          [_ :object:] (check_object expectedT)
          _ (typeA.inference :object:)
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list)}])))]))
 
 (def object::null?
@@ -836,7 +836,7 @@
                             (analyse archive objectC))
          _ (check_object objectT)
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list objectA)}])))]))
 
 (def object::synchronized
@@ -850,7 +850,7 @@
          _ (check_object monitorT)
          exprA (analyse archive exprC)
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list monitorA exprA)}])))]))
 
 (def (object::throw class_loader)
@@ -869,7 +869,7 @@
                  (in [])
                  (/////analysis.except non_throwable exception_class)))
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list exceptionA)}])))]))
 
 (def (object::class class_loader)
@@ -882,7 +882,7 @@
          _ (typeA.inference {.#Primitive "java.lang.Class" (list {.#Primitive class (list)})})
          _ (phase.lifted (reflection!.load class_loader class))
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list (/////analysis.text @ class))}])))]))
 
 (def (object::instance? class_loader)
@@ -899,7 +899,7 @@
          ? (phase.lifted (reflection!.sub? class_loader object_class sub_class))
          @ meta.location]
         (if ?
-          (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+          (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                            (list (/////analysis.text @ sub_class) objectA)}])
           (/////analysis.except cannot_possibly_be_an_instance (format sub_class " !<= "  object_class)))))]))
 
@@ -990,7 +990,7 @@
                                            false)))))))
          @ meta.location]
         (if can_cast?
-          (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+          (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                            (list (/////analysis.text @ from_name)
                                                  (/////analysis.text @ to_name)
                                                  fromA)}])
@@ -1023,7 +1023,7 @@
          fieldT (reflection_type luxT.fresh fieldJT)
          _ (typeA.inference fieldT)
          @ meta.location]
-        (in (<| [@] {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]}
+        (in (<| [@] {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]}
                 (list (/////analysis.text @ class)
                       (/////analysis.text @ field)
                       (/////analysis.text @ (..signature fieldJT)))))))]))
@@ -1048,7 +1048,7 @@
          valueA (<| (typeA.expecting fieldT)
                     (analyse archive valueC))
          @ meta.location]
-        (in (<| [@] {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]}
+        (in (<| [@] {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]}
                 (list (/////analysis.text @ class)
                       (/////analysis.text @ field)
                       (/////analysis.text @ (..signature fieldJT))
@@ -1074,7 +1074,7 @@
          fieldT (reflection_type mapping fieldJT)
          _ (typeA.inference fieldT)
          @ meta.location]
-        (in (<| [@] {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]}
+        (in (<| [@] {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]}
                 (list (/////analysis.text @ class)
                       (/////analysis.text @ field)
                       (/////analysis.text @ (..signature fieldJT))
@@ -1104,7 +1104,7 @@
          valueA (<| (typeA.expecting fieldT)
                     (analyse archive valueC))
          @ meta.location]
-        (in (<| [@] {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]}
+        (in (<| [@] {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]}
                 (list (/////analysis.text @ class)
                       (/////analysis.text @ field)
                       (/////analysis.text @ (..signature fieldJT))
@@ -1491,7 +1491,7 @@
          [outputT argsA] (inference.general archive analyse methodT (list#each product.right argsTC))
          outputJT (check_return outputT)
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list.partial (/////analysis.text @ (..signature (jvm.class class (list))))
                                                        (/////analysis.text @ method)
                                                        (/////analysis.text @ (..signature outputJT))
@@ -1517,7 +1517,7 @@
                                  (undefined))]
          outputJT (check_return outputT)
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list.partial (/////analysis.text @ (..signature (jvm.class class (list))))
                                                        (/////analysis.text @ method)
                                                        (/////analysis.text @ (..signature outputJT))
@@ -1544,7 +1544,7 @@
                                  (undefined))]
          outputJT (check_return outputT)
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list.partial (/////analysis.text @ (..signature (jvm.class class (list))))
                                                        (/////analysis.text @ method)
                                                        (/////analysis.text @ (..signature outputJT))
@@ -1574,7 +1574,7 @@
                                  (undefined))]
          outputJT (check_return outputT)
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list.partial (/////analysis.text @ (..signature (jvm.class class_name (list))))
                                                        (/////analysis.text @ method)
                                                        (/////analysis.text @ (..signature outputJT))
@@ -1594,7 +1594,7 @@
                             (not deprecated?))
          [outputT argsA] (inference.general archive analyse methodT (list#each product.right argsTC))
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list.partial (/////analysis.text @ (..signature (jvm.class class (list))))
                                                        (decorate_inputs @ argsT argsA))}])))]))
 
@@ -2700,7 +2700,7 @@
          _ (..require_complete_method_concretion class_loader supers methods)
          methodsA (monad.each ! (analyse_overriden_method analyse archive selfT mapping supers) methods)
          @ meta.location]
-        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|generation")]
+        (in [@ {/////analysis.#Extension [.prelude (%.format extension_name "|translation")]
                                          (list (class_analysis @ super_class)
                                                (/////analysis.tuple @ (list#each (class_analysis @) super_interfaces))
                                                (/////analysis.tuple @ (list#each (typed_analysis @) constructor_argsA+))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
index becc2aad5..adfdc2e52 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lux.lux
@@ -78,7 +78,7 @@
                                      (analyse archive argC)))
                                (list.zipped_2 inputsT+ args))
              @ meta.location]
-            (in [@ {analysis.#Extension [.prelude (format extension_name "|generation")] argsA}]))
+            (in [@ {analysis.#Extension [.prelude (format extension_name "|translation")] argsA}]))
           (analysis.except ..incorrect_arity [num_expected num_actual]))))))
 
 (def .public (nullary valueT)
@@ -153,7 +153,7 @@
                                   (list (analysis.tuple @ (list#each (|>> (analysis.nat @)) cases))
                                         branch))))
                  (list.partial input else)
-                 {analysis.#Extension [.prelude (format extension_name "|generation")]}
+                 {analysis.#Extension [.prelude (format extension_name "|translation")]}
                  [@]))))])))
 
 ... .is?# represents reference/pointer equality.
@@ -180,7 +180,7 @@
                 (analyse archive)
                 (typeA.expecting (type_literal (-> .Any :var:)))
                 (at ! each (|>> list
-                                {analysis.#Extension [.prelude (format extension_name "|generation")]}
+                                {analysis.#Extension [.prelude (format extension_name "|translation")]}
                                 [@]))))))]))
 
 (def lux::in_module
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux
index a51e62ed5..63c16cafa 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux
@@ -66,7 +66,7 @@
         ["[1]" artifact]]]]
      [language
       [lux
-       ["[0]" generation]
+       ["[0]" translation]
        ["[0]" declaration (.only Handler Bundle)]
        ["[0]" analysis (.only Analysis)
         ["[0]A" type]
@@ -74,14 +74,14 @@
        ["[0]" synthesis (.only Synthesis)
         ["<[1]>" \\parser]]
        [phase
-        [generation
+        [translation
          [jvm
           ["[0]" runtime (.only Anchor Definition Extender)]
           ["[0]" value]]]
         ["[0]" extension (.only)
          [analysis
           ["[0]" jvm]]
-         [generation
+         [translation
           [jvm
            ["[0]" host]]]
          [declaration
@@ -454,19 +454,19 @@
                 (is [Register (Bytecode Any)] [offset (_#in [])]))
       product.right))
 
-(def (constructor_method_generation generate archive super_class method)
-  (-> (generation.Phase Anchor (Bytecode Any) Definition) Archive (Type Class) (jvm.Constructor Synthesis) (Operation (Resource Method)))
+(def (constructor_method_translation translate archive super_class method)
+  (-> (translation.Phase Anchor (Bytecode Any) Definition) Archive (Type Class) (jvm.Constructor Synthesis) (Operation (Resource Method)))
   (<| (let [[privacy strict_floating_point? annotations method_tvars exceptions
              self arguments constructor_argumentsS
              bodyS] method
              bodyS (when (list.size arguments)
                      0 (host.without_fake_parameter bodyS)
                      _ bodyS)])
-      declaration.lifted_generation
+      declaration.lifted_translation
       (do [! phase.monad]
-        [constructor_argumentsG (monad.each ! (|>> product.right (generate archive))
+        [constructor_argumentsG (monad.each ! (|>> product.right (translate archive))
                                             constructor_argumentsS)
-         bodyG (generate archive bodyS)
+         bodyG (translate archive bodyS)
          .let [[super_name super_vars] (parser.read_class super_class)
                super_constructorT (type.method [(list)
                                                 (list#each product.left constructor_argumentsS)
@@ -528,17 +528,17 @@
                   ... (at type.equivalence = type.double returnT)
                   (unwrap_primitive _.dreturn type.double)))))))
 
-(def (overriden_method_generation generate archive method)
-  (-> (generation.Phase Anchor (Bytecode Any) Definition) Archive (jvm.Overriden_Method Synthesis) (Operation (Resource Method)))
+(def (overriden_method_translation translate archive method)
+  (-> (translation.Phase Anchor (Bytecode Any) Definition) Archive (jvm.Overriden_Method Synthesis) (Operation (Resource Method)))
   (<| (let [[super method_name strict_floating_point? annotations
              method_tvars self arguments returnJ exceptionsJ
              bodyS] method
              bodyS (when (list.size arguments)
                      0 (host.without_fake_parameter bodyS)
                      _ bodyS)])
-      declaration.lifted_generation
+      declaration.lifted_translation
       (do [! phase.monad]
-        [bodyG (generate archive bodyS)
+        [bodyG (translate archive bodyS)
          .let [argumentsT (list#each product.right arguments)]]
         (in (method.method (all modifier#composite
                                 method.public
@@ -553,17 +553,17 @@
                            bodyG
                            (method_return returnJ))})))))
 
-(def (virtual_method_generation generate archive method)
-  (-> (generation.Phase Anchor (Bytecode Any) Definition) Archive (jvm.Virtual_Method Synthesis) (Operation (Resource Method)))
+(def (virtual_method_translation translate archive method)
+  (-> (translation.Phase Anchor (Bytecode Any) Definition) Archive (jvm.Virtual_Method Synthesis) (Operation (Resource Method)))
   (<| (let [[method_name privacy final? strict_floating_point? annotations method_tvars
              self arguments returnJ exceptionsJ
              bodyS] method
              bodyS (when (list.size arguments)
                      0 (host.without_fake_parameter bodyS)
                      _ bodyS)])
-      declaration.lifted_generation
+      declaration.lifted_translation
       (do [! phase.monad]
-        [bodyG (generate archive bodyS)
+        [bodyG (translate archive bodyS)
          .let [argumentsT (list#each product.right arguments)]]
         (in (method.method (all modifier#composite
                                 (..method_privacy privacy)
@@ -581,14 +581,14 @@
                            bodyG
                            (method_return returnJ))})))))
 
-(def (static_method_generation generate archive method)
-  (-> (generation.Phase Anchor (Bytecode Any) Definition) Archive (jvm.Static_Method Synthesis) (Operation (Resource Method)))
+(def (static_method_translation translate archive method)
+  (-> (translation.Phase Anchor (Bytecode Any) Definition) Archive (jvm.Static_Method Synthesis) (Operation (Resource Method)))
   (<| (let [[method_name privacy strict_floating_point? annotations method_tvars
              arguments returnJ exceptionsJ
              bodyS] method])
-      declaration.lifted_generation
+      declaration.lifted_translation
       (do [! phase.monad]
-        [bodyG (generate archive bodyS)
+        [bodyG (translate archive bodyS)
          .let [argumentsT (list#each product.right arguments)]]
         (in (method.method (all modifier#composite
                                 (..method_privacy privacy)
@@ -604,7 +604,7 @@
                            bodyG
                            (method_return returnJ))})))))
 
-(def (abstract_method_generation method)
+(def (abstract_method_translation method)
   (-> (jvm.Abstract_Method Synthesis) (Resource Method))
   (let [[name privacy annotations variables
          arguments return exceptions] method]
@@ -616,32 +616,32 @@
       (list)
       {.#None})))
 
-(def (method_generation generate archive super_class method)
-  (-> (generation.Phase Anchor (Bytecode Any) Definition) Archive (Type Class) (Method_Definition Synthesis) (Operation (Resource Method)))
+(def (method_translation translate archive super_class method)
+  (-> (translation.Phase Anchor (Bytecode Any) Definition) Archive (Type Class) (Method_Definition Synthesis) (Operation (Resource Method)))
   (when method
     {#Constructor method}
-    (..constructor_method_generation generate archive super_class method)
+    (..constructor_method_translation translate archive super_class method)
     
     {#Overriden_Method method}
-    (..overriden_method_generation generate archive method)
+    (..overriden_method_translation translate archive method)
     
     {#Virtual_Method method}
-    (..virtual_method_generation generate archive method)
+    (..virtual_method_translation translate archive method)
     
     {#Static_Method method}
-    (..static_method_generation generate archive method)
+    (..static_method_translation translate archive method)
 
     {#Abstract_Method method}
-    (at phase.monad in (..abstract_method_generation method))))
+    (at phase.monad in (..abstract_method_translation method))))
 
-(def (method_definition archive super interfaces [mapping selfT] [analyse synthesize generate])
+(def (method_definition archive super interfaces [mapping selfT] [analyse synthesize translate])
   (-> Archive
       (Type Class)
       (List (Type Class))
       [Mapping .Type]
       [analysis.Phase
        synthesis.Phase
-       (generation.Phase Anchor (Bytecode Any) Definition)]
+       (translation.Phase Anchor (Bytecode Any) Definition)]
       (-> (Method_Definition Code) (Operation [(Set unit.ID) (Resource Method)])))
   (function (_ methodC)
     (do phase.monad
@@ -665,13 +665,13 @@
        methodS (is (Operation Synthesis)
                    (declaration.lifted_synthesis
                     (synthesize archive methodA)))
-       dependencies (declaration.lifted_generation
+       dependencies (declaration.lifted_translation
                      (cache.dependencies archive methodS))
        methodS' (|> methodS
                     list
                     (.result ..method_synthesis)
                     phase.lifted)
-       methodG (method_generation generate archive super methodS')]
+       methodG (method_translation translate archive super methodS')]
       (in [dependencies methodG]))))
 
 (def class_name
@@ -843,13 +843,13 @@
 
 (def (save_class! name bytecode dependencies)
   (-> Text Binary (Set unit.ID) (Operation Any))
-  (declaration.lifted_generation
+  (declaration.lifted_translation
    (do [! phase.monad]
      [.let [artifact [name bytecode]]
-      artifact_id (generation.learn_custom name dependencies)
-      _ (generation.execute! artifact)
-      _ (generation.save! artifact_id {.#Some name} artifact)
-      _ (generation.log! (format "JVM Class " name))]
+      artifact_id (translation.learn_custom name dependencies)
+      _ (translation.execute! artifact)
+      _ (translation.save! artifact_id {.#Some name} artifact)
+      _ (translation.log! (format "JVM Class " name))]
      (in []))))
 
 (def jvm::class
@@ -885,8 +885,8 @@
                           fields
                           methods))
          ... Necessary for reflection to work properly during analysis.
-         _ (declaration.lifted_generation
-            (generation.execute! mock))
+         _ (declaration.lifted_translation
+            (translation.execute! mock))
          parameters (declaration.lifted_analysis
                      (typeA.check (jvm.parameter_types parameters)))
          .let [mapping (list#mix (function (_ [parameterJ parameterT] mapping)
@@ -899,7 +899,7 @@
                                  (..method_definition archive super interfaces [mapping selfT]
                                                       [(the [declaration.#analysis declaration.#phase] state)
                                                        ((the [declaration.#synthesis declaration.#phase] state) analysis_state)
-                                                       ((the [declaration.#generation declaration.#phase] state) analysis_state)]))
+                                                       ((the [declaration.#translation declaration.#phase] state) analysis_state)]))
                              methods)
          .let [all_dependencies (cache.all (list#each product.left methods))]
          bytecode (<| (at ! each (\\format.result class.format))
@@ -939,7 +939,7 @@
          (.tuple (<>.some ..annotation))
          (<>.some jvm.method_declaration))
     (function (_ phase archive [[name parameters] supers annotations method_declarations])
-      (declaration.lifted_generation
+      (declaration.lifted_translation
        (do [! phase.monad]
          [bytecode (<| (at ! each (\\format.result class.format))
                        phase.lifted
@@ -957,11 +957,11 @@
                          (list)
                          (list#each ..method_declaration method_declarations)
                          (list)))
-          artifact_id (generation.learn_custom name unit.none)
+          artifact_id (translation.learn_custom name unit.none)
           .let [artifact [name bytecode]]
-          _ (generation.execute! artifact)
-          _ (generation.save! artifact_id {.#Some name} artifact)
-          _ (generation.log! (format "JVM Interface " (%.text name)))]
+          _ (translation.execute! artifact)
+          _ (translation.save! artifact_id {.#Some name} artifact)
+          _ (translation.log! (format "JVM Interface " (%.text name)))]
          (in declaration.no_requirements))))]))
 
 (import java/lang/ClassLoader
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/lux.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/lux.lux
index efc224a6d..f9df8a9c7 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/lux.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/lux.lux
@@ -41,7 +41,7 @@
      ["[0]A" module]
      ["[0]" scope]]
     ["[1][0]" synthesis (.only Synthesis)]
-    ["[1][0]" generation]
+    ["[1][0]" translation]
     ["[1][0]" declaration (.only Import Requirements Phase Operation Handler Extender Bundle)]
     [phase
      [extension
@@ -81,20 +81,20 @@
   [@module (n.- (++ @artifact) 0)])
 
 ... TODO: Inline "evaluate!'" into "evaluate!" ASAP
-(def (evaluate!' archive generation code//type codeS)
+(def (evaluate!' archive translation code//type codeS)
   (All (_ anchor expression declaration)
     (-> Archive
-        (/////generation.Phase anchor expression declaration)
+        (/////translation.Phase anchor expression declaration)
         Type
         Synthesis
         (Operation anchor expression declaration [Type expression Any])))
-  (/////declaration.lifted_generation
+  (/////declaration.lifted_translation
    (do phase.monad
-     [module /////generation.module
-      id /////generation.next
-      codeG (generation archive codeS)
-      @module (/////generation.module_id module archive)
-      codeV (/////generation.evaluate! (..context [@module id]) [{.#None} codeG])]
+     [module /////translation.module
+      id /////translation.next
+      codeG (translation archive codeS)
+      @module (/////translation.module_id module archive)
+      codeV (/////translation.evaluate! (..context [@module id]) [{.#None} codeG])]
      (in [code//type codeG codeV]))))
 
 (def .public (evaluate! archive type codeC)
@@ -105,7 +105,7 @@
      .let [analysis_state (the [/////declaration.#analysis /////declaration.#state] state)
            analysis (the [/////declaration.#analysis /////declaration.#phase] state)
            synthesis ((the [/////declaration.#synthesis /////declaration.#phase] state) analysis_state)
-           generation ((the [/////declaration.#generation /////declaration.#phase] state) analysis_state)]
+           translation ((the [/////declaration.#translation /////declaration.#phase] state) analysis_state)]
      [_ codeA] (<| /////declaration.lifted_analysis
                    scope.with
                    typeA.fresh
@@ -113,22 +113,22 @@
                    (analysis archive codeC))
      codeS (/////declaration.lifted_synthesis
             (synthesis archive codeA))]
-    (evaluate!' archive generation type codeS)))
+    (evaluate!' archive translation type codeS)))
 
 ... TODO: Inline "definition'" into "definition" ASAP
-(def (definition' archive generation [module name] code//type codeS)
+(def (definition' archive translation [module name] code//type codeS)
   (All (_ anchor expression declaration)
     (-> Archive
-        (/////generation.Phase anchor expression declaration)
+        (/////translation.Phase anchor expression declaration)
         Symbol
         Type
         Synthesis
         (Operation anchor expression declaration [Type expression Any])))
-  (/////declaration.lifted_generation
+  (/////declaration.lifted_translation
    (do phase.monad
      [dependencies (cache/artifact.dependencies archive codeS)
-      [interim_artifacts codeG] (/////generation.with_interim_artifacts archive
-                                  (generation archive codeS))
+      [interim_artifacts codeG] (/////translation.with_interim_artifacts archive
+                                  (translation archive codeS))
       .let [@abstraction (when codeS
                            (/////synthesis.function/abstraction @ [env arity body])
                            (|> interim_artifacts
@@ -138,9 +138,9 @@
                            _
                            {.#None})]
       @module (phase.lifted (archive.id module archive))
-      @self (/////generation.learn [name @abstraction] false (list#mix set.has dependencies interim_artifacts))
-      [target_name value declaration] (/////generation.define! [@module @self] {.#None} [(maybe#each product.right @abstraction) codeG])
-      _ (/////generation.save! @self {.#None} declaration)]
+      @self (/////translation.learn [name @abstraction] false (list#mix set.has dependencies interim_artifacts))
+      [target_name value declaration] (/////translation.define! [@module @self] {.#None} [(maybe#each product.right @abstraction) codeG])
+      _ (/////translation.save! @self {.#None} declaration)]
      (in [code//type codeG value]))))
 
 (def (definition archive name expected codeC)
@@ -152,7 +152,7 @@
      .let [analysis_state (the [/////declaration.#analysis /////declaration.#state] state)
            analysis (the [/////declaration.#analysis /////declaration.#phase] state)
            synthesis ((the [/////declaration.#synthesis /////declaration.#phase] state) analysis_state)
-           generation ((the [/////declaration.#generation /////declaration.#phase] state) analysis_state)]
+           translation ((the [/////declaration.#translation /////declaration.#phase] state) analysis_state)]
      [_ code//type codeA] (/////declaration.lifted_analysis
                            (scope.with
                              (typeA.fresh
@@ -171,29 +171,29 @@
                                   (in [expected codeA]))))))
      codeS (/////declaration.lifted_synthesis
             (synthesis archive codeA))]
-    (definition' archive generation name code//type codeS)))
+    (definition' archive translation name code//type codeS)))
 
 (with_template [  ]
   [... TODO: Inline "" into "" ASAP
-   (def ( archive generation extension codeT codeS)
+   (def ( archive translation extension codeT codeS)
      (All (_ anchor expression declaration)
        (-> Archive
-           (/////generation.Phase anchor expression declaration)
+           (/////translation.Phase anchor expression declaration)
            Text
            Type
            Synthesis
            (Operation anchor expression declaration [expression Any])))
      (do phase.monad
        [current_module (/////declaration.lifted_analysis meta.current_module_name)]
-       (/////declaration.lifted_generation
+       (/////declaration.lifted_translation
         (do phase.monad
           [dependencies (cache/artifact.dependencies archive codeS)
-           [interim_artifacts codeG] (/////generation.with_interim_artifacts archive
-                                       (generation archive codeS))
+           [interim_artifacts codeG] (/////translation.with_interim_artifacts archive
+                                       (translation archive codeS))
            @module (phase.lifted (archive.id current_module archive))
            @self ( extension (list#mix set.has dependencies interim_artifacts))
-           [target_name value declaration] (/////generation.define! [@module @self] {.#None} [{.#None} codeG])
-           _ (/////generation.save! @self {.#None} declaration)]
+           [target_name value declaration] (/////translation.define! [@module @self] {.#None} [{.#None} codeG])
+           _ (/////translation.save! @self {.#None} declaration)]
           (in [codeG value])))))
 
    (def .public ( archive extension codeT codeC)
@@ -205,7 +205,7 @@
         .let [analysis_state (the [/////declaration.#analysis /////declaration.#state] state)
               analysis (the [/////declaration.#analysis /////declaration.#phase] state)
               synthesis ((the [/////declaration.#synthesis /////declaration.#phase] state) analysis_state)
-              generation ((the [/////declaration.#generation /////declaration.#phase] state) analysis_state)]
+              translation ((the [/////declaration.#translation /////declaration.#phase] state) analysis_state)]
         [_ codeA] (<| /////declaration.lifted_analysis
                       scope.with
                       typeA.fresh
@@ -213,12 +213,12 @@
                       (analysis archive codeC))
         codeS (/////declaration.lifted_synthesis
                (synthesis archive codeA))]
-       ( archive generation extension codeT codeS)))]
+       ( archive translation extension codeT codeS)))]
 
-  [analyser analyser' /////generation.learn_analyser]
-  [synthesizer synthesizer' /////generation.learn_synthesizer]
-  [generator generator' /////generation.learn_generator]
-  [declaration declaration' /////generation.learn_declaration]
+  [analyser analyser' /////translation.learn_analyser]
+  [synthesizer synthesizer' /////translation.learn_synthesizer]
+  [translator translator' /////translation.learn_translator]
+  [declaration declaration' /////translation.learn_declaration]
   )
 
 ... TODO: Get rid of this function ASAP.
@@ -230,8 +230,8 @@
      .let [eval (analysis/evaluation.evaluator (the [/////declaration.#analysis /////declaration.#phase] state)
                                                [(the [/////declaration.#synthesis /////declaration.#state] state)
                                                 (the [/////declaration.#synthesis /////declaration.#phase] state)]
-                                               [(the [/////declaration.#generation /////declaration.#state] state)
-                                                (the [/////declaration.#generation /////declaration.#phase] state)])]
+                                               [(the [/////declaration.#translation /////declaration.#state] state)
+                                                (the [/////declaration.#translation /////declaration.#phase] state)])]
      _ (/////declaration.lifted_analysis
         (do !
           [_ (moduleA.override_definition [.prelude "is#"] [true {.#Default [.Analysis (analysisE.is#_extension eval "is#")]}])
@@ -242,8 +242,8 @@
 (def (announce_definition! short type)
   (All (_ anchor expression declaration)
     (-> Text Type (Operation anchor expression declaration Any)))
-  (/////declaration.lifted_generation
-   (/////generation.log! (format short " : " (%.type type)))))
+  (/////declaration.lifted_translation
+   (/////translation.log! (format short " : " (%.type type)))))
 
 (def lux::def
   Handler
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp.lux
deleted file mode 100644
index 94afa28d6..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp.lux
+++ /dev/null
@@ -1,18 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [common_lisp
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (dictionary.composite /common.bundle
-                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp/common.lux
deleted file mode 100644
index 06008de15..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp/common.lux
+++ /dev/null
@@ -1,169 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" dictionary]
-     ["[0]" set]
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["f" frac]]]
-   [meta
-    ["@" target (.only)
-     ["_" common_lisp (.only Expression)]]]]]
- ["[0]" ////
-  ["/" bundle]
-  ["/[1]" //
-   ["[0]" extension]
-   [generation
-    [extension (.only Nullary Unary Binary Trinary
-                      nullary unary binary trinary)]
-    ["[0]" reference]
-    ["//" common_lisp
-     ["[1][0]" runtime (.only Operation Phase Handler Bundle Generator)]
-     ["[1][0]" when]]]
-   [//
-    ["[0]" generation]
-    ["[0]" synthesis (.only %synthesis)
-     ["" \\parser (.only Parser)]]
-    [///
-     ["[1]" phase]]]]])
-
-(def !unary
-  (template (_ function)
-    (|>> list _.apply (|> (_.constant function)))))
-
-... ... TODO: Get rid of this ASAP
-... (def lux::syntax_char_case!
-...   (..custom [(all <>.and
-...                  .any
-...                  .any
-...                  (<>.some (.tuple (all <>.and
-...                                          (.tuple (<>.many .i64))
-...                                          .any))))
-...              (function (_ extension_name phase archive [input else conditionals])
-...                (do [! /////.monad]
-...                  [@input (at ! each _.var (generation.symbol "input"))
-...                   inputG (phase archive input)
-...                   elseG (phase archive else)
-...                   conditionalsG (is (Operation (List [Expression Expression]))
-...                                    (monad.each ! (function (_ [chars branch])
-...                                                   (do !
-...                                                     [branchG (phase archive branch)]
-...                                                     (in [(|> chars (list#each (|>> .int _.int (_.=/2 @input))) _.or)
-...                                                            branchG])))
-...                                               conditionals))]
-...                  (in (_.let (list [@input inputG])
-...                          (list (list#mix (function (_ [test then] else)
-...                                             (_.if test then else))
-...                                           elseG
-...                                           conditionalsG))))))]))
-
-(def lux_procs
-  Bundle
-  (|> /.empty
-      ... (/.install "syntax char case!" lux::syntax_char_case!)
-      (/.install "is" (binary _.eq/2))
-      ... (/.install "try" (unary //runtime.lux//try))
-      ))
-
-... (def (capped operation parameter subject)
-...   (-> (-> Expression Expression Expression)
-...       (-> Expression Expression Expression))
-...   (//runtime.i64//64 (operation parameter subject)))
-
-(def i64_procs
-  Bundle
-  (<| (/.prefix "i64")
-      (|> /.empty
-          (/.install "and" (binary _.logand/2))
-          (/.install "or" (binary _.logior/2))
-          (/.install "xor" (binary _.logxor/2))
-          (/.install "left-shift" (binary _.ash/2))
-          (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shifted)))
-          (/.install "=" (binary _.=/2))
-          (/.install "<" (binary _.> _.code_char/1 _.string/1)))
-          )))
-
-(def f64_procs
-  Bundle
-  (<| (/.prefix "f64")
-      (|> /.empty
-          ... (/.install "=" (binary (product.uncurried _.=/2)))
-          ... (/.install "<" (binary (product.uncurried _. /.empty
-          (/.install "=" (binary _.string=/2))
-          ... (/.install "<" (binary (product.uncurried _.string /.empty
-          (/.install "log" (unary ..io//log!))
-          (/.install "error" (unary _.error/1))
-          )))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lux")
-      (|> /.empty
-          (dictionary.composite lux_procs)
-          (dictionary.composite i64_procs)
-          (dictionary.composite f64_procs)
-          (dictionary.composite text_procs)
-          (dictionary.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp/host.lux
deleted file mode 100644
index 987668fa2..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/common_lisp/host.lux
+++ /dev/null
@@ -1,15 +0,0 @@
-(.require
- [library
-  [lux (.except)]]
- [////
-  ["/" bundle]
-  [//
-   [generation
-    [common_lisp
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "common_lisp")
-      (|> /.empty
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js.lux
deleted file mode 100644
index 9dde05bab..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js.lux
+++ /dev/null
@@ -1,18 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [js
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (dictionary.composite /common.bundle
-                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js/common.lux
deleted file mode 100644
index 7f7f3be33..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js/common.lux
+++ /dev/null
@@ -1,240 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" dictionary]]]
-   [math
-    [number
-     ["f" frac]]]
-   [meta
-    ["@" target (.only)
-     ["_" js (.only Literal Expression Statement)]]
-    [macro
-     ["^" pattern]]]]]
- ["[0]" ////
-  ["/" bundle]
-  ["/[1]" //
-   ["[0]" extension]
-   [generation
-    [extension (.only Nullary Unary Binary Trinary
-                      nullary unary binary trinary)]
-    ["//" js
-     ["[1][0]" runtime (.only Operation Phase Phase! Handler Bundle Generator)]
-     ["[1][0]" primitive]
-     ["[1][0]" structure]
-     ["[1][0]" reference]
-     ["[1][0]" when]
-     ["[1][0]" loop]
-     ["[1][0]" function]]]
-   [//
-    ["[0]" synthesis (.only %synthesis)
-     ["" \\parser (.only Parser)]]
-    [///
-     ["[1]" phase (.use "[1]#[0]" monad)]]]]])
-
-... [Procedures]
-... [[Bits]]
-(with_template [ ]
-  [(def ( [paramG subjectG])
-     (Binary Expression)
-     ( subjectG (//runtime.i64::number paramG)))]
-
-  [i64::left_shifted  //runtime.i64::left_shifted]
-  [i64::right_shifted //runtime.i64::right_shifted]
-  )
-
-... [[Numbers]]
-(def f64//decode
-  (Unary Expression)
-  (|>> list
-       (_.apply (_.var "parseFloat"))
-       _.return
-       (_.closure (list))
-       //runtime.lux//try))
-
-(def i64::char
-  (Unary Expression)
-  (|>> //runtime.i64::number
-       (list)
-       (_.apply (_.var "String.fromCharCode"))))
-
-... [[Text]]
-(def (text//concat [leftG rightG])
-  (Binary Expression)
-  (|> leftG (_.do "concat" (list rightG))))
-
-(def (text//clip [startG endG subjectG])
-  (Trinary Expression)
-  (//runtime.text//clip startG endG subjectG))
-
-(def (text//index [startG partG subjectG])
-  (Trinary Expression)
-  (//runtime.text//index startG partG subjectG))
-
-... [[IO]]
-(def (io//log messageG)
-  (Unary Expression)
-  (all _.,
-       (//runtime.io//log messageG)
-       //runtime.unit))
-
-(def .public (statement expression archive synthesis)
-  Phase!
-  (when synthesis
-    ... TODO: Get rid of this ASAP
-    {synthesis.#Extension [.prelude "when_char#|generation"] parameters}
-    (do /////.monad
-      [body (expression archive synthesis)]
-      (in (as Statement body)))
-
-    (^.with_template []
-      [( value)
-       (/////#each _.return (expression archive synthesis))])
-    ([synthesis.bit]
-     [synthesis.i64]
-     [synthesis.f64]
-     [synthesis.text]
-     [synthesis.variant]
-     [synthesis.tuple]
-     [synthesis.branch/get]
-     [synthesis.function/apply])
-
-    (^.with_template []
-      [{ value}
-       (/////#each _.return (expression archive synthesis))])
-    ([synthesis.#Reference]
-     [synthesis.#Extension])
-
-    (synthesis.branch/when when)
-    (//when.when! statement expression archive when)
-
-    (synthesis.branch/exec it)
-    (//when.exec! statement expression archive it)
-
-    (synthesis.branch/let let)
-    (//when.let! statement expression archive let)
-
-    (synthesis.branch/if if)
-    (//when.if! statement expression archive if)
-
-    (synthesis.loop/scope scope)
-    (//loop.scope! statement expression archive scope)
-
-    (synthesis.loop/again updates)
-    (//loop.again! statement expression archive updates)
-
-    (synthesis.function/abstraction abstraction)
-    (/////#each _.return (//function.function statement expression archive abstraction))
-    ))
-
-... TODO: Get rid of this ASAP
-(def lux::syntax_char_case!
-  (..custom [(all <>.and
-                  .any
-                  .any
-                  (<>.some (.tuple (all <>.and
-                                           (.tuple (<>.many .i64))
-                                           .any))))
-             (function (_ extension_name phase archive [input else conditionals])
-               (do [! /////.monad]
-                 [inputG (phase archive input)
-                  else! (..statement phase archive else)
-                  conditionals! (is (Operation (List [(List Literal)
-                                                      Statement]))
-                                    (monad.each ! (function (_ [chars branch])
-                                                    (do !
-                                                      [branch! (..statement phase archive branch)]
-                                                      (in [(list#each (|>> .int _.int) chars)
-                                                           branch!])))
-                                                conditionals))]
-                 ... (in (_.apply (_.closure (list)
-                 ...                           (_.switch (_.the //runtime.i64_low_field inputG)
-                 ...                                     conditionals!
-                 ...                                     {.#Some (_.return else!)}))
-                 ...                (list)))
-                 (in (<| (as Expression)
-                         (is Statement)
-                         (_.switch (_.the //runtime.i64_low_field inputG)
-                                   conditionals!
-                                   {.#Some else!})))))]))
-
-... [Bundles]
-(def lux_procs
-  Bundle
-  (|> /.empty
-      (/.install "syntax char case!" lux::syntax_char_case!)
-      (/.install "is" (binary (product.uncurried _.=)))
-      (/.install "try" (unary //runtime.lux//try))))
-
-(def i64_procs
-  Bundle
-  (<| (/.prefix "i64")
-      (|> /.empty
-          (/.install "and" (binary (product.uncurried //runtime.i64::and)))
-          (/.install "or" (binary (product.uncurried //runtime.i64::or)))
-          (/.install "xor" (binary (product.uncurried //runtime.i64::xor)))
-          (/.install "left-shift" (binary i64::left_shifted))
-          (/.install "right-shift" (binary i64::right_shifted))
-          (/.install "=" (binary (product.uncurried //runtime.i64::=)))
-          (/.install "<" (binary (product.uncurried //runtime.i64::<)))
-          (/.install "+" (binary (product.uncurried //runtime.i64::+)))
-          (/.install "-" (binary (product.uncurried //runtime.i64::-)))
-          (/.install "*" (binary (product.uncurried //runtime.i64::*)))
-          (/.install "/" (binary (product.uncurried //runtime.i64::/)))
-          (/.install "%" (binary (product.uncurried //runtime.i64::%)))
-          (/.install "f64" (unary //runtime.i64::number))
-          (/.install "char" (unary i64::char))
-          )))
-
-(def f64_procs
-  Bundle
-  (<| (/.prefix "f64")
-      (|> /.empty
-          (/.install "+" (binary (product.uncurried _.+)))
-          (/.install "-" (binary (product.uncurried _.-)))
-          (/.install "*" (binary (product.uncurried _.*)))
-          (/.install "/" (binary (product.uncurried _./)))
-          (/.install "%" (binary (product.uncurried _.%)))
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "i64" (unary //runtime.i64::of_number))
-          (/.install "encode" (unary (_.do "toString" (list))))
-          (/.install "decode" (unary f64//decode)))))
-
-(def text_procs
-  Bundle
-  (<| (/.prefix "text")
-      (|> /.empty
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "concat" (binary text//concat))
-          (/.install "index" (trinary text//index))
-          (/.install "size" (unary (|>> (_.the "length") //runtime.i64::of_number)))
-          (/.install "char" (binary (product.uncurried //runtime.text//char)))
-          (/.install "clip" (trinary text//clip))
-          )))
-
-(def io_procs
-  Bundle
-  (<| (/.prefix "io")
-      (|> /.empty
-          (/.install "log" (unary io//log))
-          (/.install "error" (unary //runtime.io//error)))))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lux")
-      (|> lux_procs
-          (dictionary.composite i64_procs)
-          (dictionary.composite f64_procs)
-          (dictionary.composite text_procs)
-          (dictionary.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js/host.lux
deleted file mode 100644
index 2f7766332..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/js/host.lux
+++ /dev/null
@@ -1,162 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list]]]
-   [meta
-    [target
-     ["_" js (.only Var Expression)]]]]]
- ["[0]" //
-  ["[1][0]" common (.only custom)]
-  ["//[1]" ///
-   ["/" bundle]
-   ["/[1]" //
-    ["[0]" extension]
-    [generation
-     [extension (.only Nullary Unary Binary Trinary
-                       nullary unary binary trinary)]
-     ["//" js
-      ["[1][0]" runtime (.only Operation Phase Handler Bundle
-                               with_vars)]]]
-    ["/[1]" //
-     ["[0]" generation]
-     [synthesis
-      ["" \\parser (.only Parser)]]
-     ["//[1]" ///
-      ["[1][0]" phase]]]]]])
-
-(def array::new
-  (Unary Expression)
-  (|>> (_.the //runtime.i64_low_field) list (_.new (_.var "Array"))))
-
-(def array::length
-  (Unary Expression)
-  (|>> (_.the "length") //runtime.i64::of_number))
-
-(def (array::read [indexG arrayG])
-  (Binary Expression)
-  (_.at (_.the //runtime.i64_low_field indexG)
-        arrayG))
-
-(def (array::write [indexG valueG arrayG])
-  (Trinary Expression)
-  (//runtime.array//write indexG valueG arrayG))
-
-(def (array::delete [indexG arrayG])
-  (Binary Expression)
-  (//runtime.array//delete indexG arrayG))
-
-(def array
-  Bundle
-  (<| (/.prefix "array")
-      (|> /.empty
-          (/.install "new" (unary array::new))
-          (/.install "length" (unary array::length))
-          (/.install "read" (binary array::read))
-          (/.install "write" (trinary array::write))
-          (/.install "delete" (binary array::delete))
-          )))
-
-(def object::new
-  (custom
-   [(all <>.and .any (<>.some .any))
-    (function (_ extension phase archive [constructorS inputsS])
-      (do [! ////////phase.monad]
-        [constructorG (phase archive constructorS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.new constructorG inputsG))))]))
-
-(def object::get
-  Handler
-  (custom
-   [(all <>.and .text .any)
-    (function (_ extension phase archive [fieldS objectS])
-      (do ////////phase.monad
-        [objectG (phase archive objectS)]
-        (in (_.the fieldS objectG))))]))
-
-(def object::do
-  Handler
-  (custom
-   [(all <>.and .text .any (<>.some .any))
-    (function (_ extension phase archive [methodS objectS inputsS])
-      (do [! ////////phase.monad]
-        [objectG (phase archive objectS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.do methodS inputsG objectG))))]))
-
-(with_template [  ]
-  [(def  (Nullary Expression) (function.constant ))
-   (def  (Unary Expression) (_.= ))]
-
-  [object::null object::null? _.null]
-  [object::undefined object::undefined? _.undefined]
-  )
-
-(def object
-  Bundle
-  (<| (/.prefix "object")
-      (|> /.empty
-          (/.install "new" object::new)
-          (/.install "get" object::get)
-          (/.install "do" object::do)
-          (/.install "null" (nullary object::null))
-          (/.install "null?" (unary object::null?))
-          (/.install "undefined" (nullary object::undefined))
-          (/.install "undefined?" (unary object::undefined?))
-          )))
-
-(def js::constant
-  (custom
-   [.text
-    (function (_ extension phase archive name)
-      (at ////////phase.monad in (_.var name)))]))
-
-(def js::apply
-  (custom
-   [(all <>.and .any (<>.some .any))
-    (function (_ extension phase archive [abstractionS inputsS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.apply abstractionG inputsG))))]))
-
-(def js::function
-  (custom
-   [(all <>.and .i64 .any)
-    (function (_ extension phase archive [arity abstractionS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         .let [variable (is (-> Text (Operation Var))
-                            (|>> generation.symbol
-                                 (at ! each _.var)))]
-         g!inputs (monad.each ! (function (_ _) (variable "input"))
-                              (list.repeated (.nat arity) []))
-         g!abstraction (variable "abstraction")]
-        (in (_.closure g!inputs
-                       (all _.then
-                            (_.define g!abstraction abstractionG)
-                            (_.return (when (.nat arity)
-                                        0 (_.apply_1 g!abstraction //runtime.unit)
-                                        1 (_.apply g!abstraction g!inputs)
-                                        _ (_.apply_1 g!abstraction (_.array g!inputs)))))))))]))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "js")
-      (|> /.empty
-          (dictionary.composite ..array)
-          (dictionary.composite ..object)
-
-          (/.install "constant" js::constant)
-          (/.install "apply" js::apply)
-          (/.install "type-of" (unary _.type_of))
-          (/.install "function" js::function)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm.lux
deleted file mode 100644
index 6bed843bd..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm.lux
+++ /dev/null
@@ -1,20 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [jvm
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (all dictionary.composite
-       /common.bundle
-       /host.bundle
-       ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm/common.lux
deleted file mode 100644
index 4d8a17afa..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm/common.lux
+++ /dev/null
@@ -1,468 +0,0 @@
-(.require
- [library
-  [lux (.except Type Label Primitive Synthesis)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["|" pipe]
-    ["<>" parser]
-    ["[0]" try]
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    [collection
-     ["[0]" list (.use "[1]#[0]" monad)]
-     ["[0]" dictionary]]]
-   [math
-    [number
-     ["f" frac]
-     ["[0]" i32]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)]
-      [encoding
-       ["[0]" signed (.only S4)]]
-      ["[0]" type (.only Type)
-       [category (.only Primitive Class)]]]]]]]
- ["[0]" /////
-  ["[0]" extension]
-  [generation
-   [extension (.only Nullary Unary Binary Trinary Variadic
-                     nullary unary binary trinary variadic)]
-   ["///" jvm
-    ["[1][0]" value]
-    ["[1][0]" runtime (.only Operation Phase Bundle Handler)]
-    ["[1][0]" function
-     ["[1]" abstract]]]]
-  [//
-   ["[0]" synthesis (.only Synthesis %synthesis)
-    ["<[1]>" \\parser (.only Parser)]]
-   [///
-    ["[0]" phase]
-    [meta
-     [archive (.only Archive)]]]]])
-
-(def .public (custom [parser handler])
-  (All (_ s)
-    (-> [(Parser s)
-         (-> Phase Archive s (Operation (Bytecode Any)))]
-        Handler))
-  (function (_ phase archive input)
-    (when (.result parser input)
-      {try.#Success input'}
-      (handler phase archive input')
-
-      {try.#Failure error}
-      (phase.failure error))))
-
-(def $Boolean (type.class "java.lang.Boolean" (list)))
-(def $Double (type.class "java.lang.Double" (list)))
-(def $Character (type.class "java.lang.Character" (list)))
-(def $String (type.class "java.lang.String" (list)))
-(def $CharSequence (type.class "java.lang.CharSequence" (list)))
-(def $Object (type.class "java.lang.Object" (list)))
-(def $PrintStream (type.class "java.io.PrintStream" (list)))
-(def $System (type.class "java.lang.System" (list)))
-(def $Error (type.class "java.lang.Error" (list)))
-
-(def lux_int
-  (Bytecode Any)
-  (all _.composite
-       _.i2l
-       (///value.wrap type.long)))
-
-(def jvm_int
-  (Bytecode Any)
-  (all _.composite
-       (///value.unwrap type.long)
-       _.l2i))
-
-(def (predicate bytecode)
-  (-> (-> Label (Bytecode Any))
-      (Bytecode Any))
-  (do _.monad
-    [@then _.new_label
-     @end _.new_label]
-    (all _.composite
-         (bytecode @then)
-         (_.getstatic $Boolean "FALSE" $Boolean)
-         (_.goto @end)
-         (_.set_label @then)
-         (_.getstatic $Boolean "TRUE" $Boolean)
-         (_.set_label @end)
-         )))
-
-... TODO: Get rid of this ASAP
-(def lux::syntax_char_case!
-  (..custom [(all <>.and
-                  .any
-                  .any
-                  (<>.some (.tuple (all <>.and
-                                                   (.tuple (<>.many .i64))
-                                                   .any))))
-             (function (_ phase archive [inputS elseS conditionalsS])
-               (do [! phase.monad]
-                 [@end ///runtime.forge_label
-                  inputG (phase archive inputS)
-                  elseG (phase archive elseS)
-                  conditionalsG+ (is (Operation (List [(List [S4 Label])
-                                                       (Bytecode Any)]))
-                                     (monad.each ! (function (_ [chars branch])
-                                                     (do !
-                                                       [branchG (phase archive branch)
-                                                        @branch ///runtime.forge_label]
-                                                       (in [(list#each (function (_ char)
-                                                                         [(try.trusted (signed.s4 (.int char))) @branch])
-                                                                       chars)
-                                                            (all _.composite
-                                                                 (_.set_label @branch)
-                                                                 branchG
-                                                                 (_.when_continuous (_.goto @end)))])))
-                                                 conditionalsS))
-                  .let [table (|> conditionalsG+
-                                  (list#each product.left)
-                                  list#conjoint)
-                        conditionalsG (|> conditionalsG+
-                                          (list#each product.right)
-                                          (monad.all _.monad))]]
-                 (in (do _.monad
-                       [@else _.new_label]
-                       (all _.composite
-                            inputG (///value.unwrap type.long) _.l2i
-                            (_.lookupswitch @else table)
-                            conditionalsG
-                            (_.set_label @else)
-                            elseG
-                            (<| (_.when_acknowledged @end)
-                                (_.set_label @end))
-                            )))))]))
-
-(def (lux::is [referenceG sampleG])
-  (Binary (Bytecode Any))
-  (all _.composite
-       referenceG
-       sampleG
-       (..predicate _.if_acmpeq)))
-
-(def (lux::try riskyG)
-  (Unary (Bytecode Any))
-  (all _.composite
-       riskyG
-       (_.checkcast ///function.class)
-       ///runtime.try))
-
-(def with_basic_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has "when_char#|generation" ..lux::syntax_char_case!)
-       (dictionary.has "is?#|generation" (binary ..lux::is))
-       (dictionary.has "try#|generation" (unary ..lux::try))))
-
-(with_template [ ]
-  [(def ( [maskG inputG])
-     (Binary (Bytecode Any))
-     (all _.composite
-          inputG (///value.unwrap type.long)
-          maskG (///value.unwrap type.long)
-           (///value.wrap type.long)))]
-
-  [i64::and _.land]
-  [i64::or  _.lor]
-  [i64::xor _.lxor]
-  )
-
-(with_template [ ]
-  [(def ( [shiftG inputG])
-     (Binary (Bytecode Any))
-     (all _.composite
-          inputG (///value.unwrap type.long)
-          shiftG ..jvm_int
-           (///value.wrap type.long)))]
-
-  [i64::left_shifted  _.lshl]
-  [i64::right_shifted _.lushr]
-  )
-
-(with_template [  ]
-  [(def ( [paramG subjectG])
-     (Binary (Bytecode Any))
-     (all _.composite
-          subjectG (///value.unwrap )
-          paramG (///value.unwrap )
-           (///value.wrap )))]
-
-  [i64::+ type.long   _.ladd]
-  [i64::- type.long   _.lsub]
-  [i64::* type.long   _.lmul]
-  [i64::/ type.long   _.ldiv]
-  [i64::% type.long   _.lrem]
-  
-  [f64::+ type.double _.dadd]
-  [f64::- type.double _.dsub]
-  [f64::* type.double _.dmul]
-  [f64::/ type.double _.ddiv]
-  [f64::% type.double _.drem]
-  )
-
-(with_template [   ]
-  [(with_template [ ]
-     [(def ( [paramG subjectG])
-        (Binary (Bytecode Any))
-        (all _.composite
-             subjectG (///value.unwrap )
-             paramG (///value.unwrap )
-             
-             
-             (..predicate _.if_icmpeq)))]
-     
-     [ _.iconst_0]
-     [ _.iconst_m1])]
-
-  [i64::= i64::< type.long   _.lcmp]
-  [f64::= f64::< type.double _.dcmpg]
-  )
-
-(def (::toString class from)
-  (-> (Type Class) (Type Primitive) (Bytecode Any))
-  (_.invokestatic class "toString" (type.method [(list) (list from) ..$String (list)])))
-
-(with_template [  ]
-  [(def ( inputG)
-     (Unary (Bytecode Any))
-     (all _.composite
-          inputG
-          
-          ))]
-
-  [i64::f64
-   (///value.unwrap type.long)
-   (all _.composite
-        _.l2d
-        (///value.wrap type.double))]
-
-  [i64::char
-   (///value.unwrap type.long)
-   (all _.composite
-        _.l2i
-        _.i2c
-        (..::toString ..$Character type.char))]
-
-  [f64::i64
-   (///value.unwrap type.double)
-   (all _.composite
-        _.d2l
-        (///value.wrap type.long))]
-  
-  [f64::encode
-   (///value.unwrap type.double)
-   (..::toString ..$Double type.double)]
-  
-  [f64::decode
-   (_.checkcast $String)
-   ///runtime.decode_frac]
-  )
-
-(def with_i64_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has "i64_and#|generation" (binary ..i64::and))
-       (dictionary.has "i64_or#|generation" (binary ..i64::or))
-       (dictionary.has "i64_xor#|generation" (binary ..i64::xor))
-       (dictionary.has "i64_left#|generation" (binary ..i64::left_shifted))
-       (dictionary.has "i64_right#|generation" (binary ..i64::right_shifted))
-
-       (dictionary.has "i64_=#|generation" (binary ..i64::=))
-       (dictionary.has "i64_+#|generation" (binary ..i64::+))
-       (dictionary.has "i64_-#|generation" (binary ..i64::-))))
-
-(def with_int_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has "int_<#|generation" (binary ..i64::<))
-       (dictionary.has "int_*#|generation" (binary ..i64::*))
-       (dictionary.has "int_/#|generation" (binary ..i64::/))
-       (dictionary.has "int_%#|generation" (binary ..i64::%))
-       
-       (dictionary.has "int_f64#|generation" (unary ..i64::f64))
-       (dictionary.has "int_char#|generation" (unary ..i64::char))))
-
-(def with_frac_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has "f64_+#|generation" (binary ..f64::+))
-       (dictionary.has "f64_-#|generation" (binary ..f64::-))
-       (dictionary.has "f64_*#|generation" (binary ..f64::*))
-       (dictionary.has "f64_/#|generation" (binary ..f64::/))
-       (dictionary.has "f64_%#|generation" (binary ..f64::%))
-       (dictionary.has "f64_=#|generation" (binary ..f64::=))
-       (dictionary.has "f64_<#|generation" (binary ..f64::<))
-       (dictionary.has "f64_int#|generation" (unary ..f64::i64))
-       (dictionary.has "f64_encoded#|generation" (unary ..f64::encode))
-       (dictionary.has "f64_decoded#|generation" (unary ..f64::decode))))
-
-(def $String::length
-  (_.invokevirtual ..$String "length" (type.method [(list) (list) type.int (list)])))
-
-(def (text::size inputG)
-  (Unary (Bytecode Any))
-  (all _.composite
-       inputG
-       (_.checkcast $String)
-       $String::length
-       ..lux_int))
-
-(def no_op
-  (Bytecode Any)
-  (_#in []))
-
-(with_template [    ]
-  [(def ( [paramG subjectG])
-     (Binary (Bytecode Any))
-     (all _.composite
-          subjectG 
-          paramG 
-           ))]
-
-  [text::= ..no_op ..no_op
-   (_.invokevirtual ..$Object "equals" (type.method [(list) (list ..$Object) type.boolean (list)]))
-   (///value.wrap type.boolean)]
-  [text::< (_.checkcast $String) (_.checkcast $String)
-   (_.invokevirtual ..$String "compareTo" (type.method [(list) (list ..$String) type.int (list)]))
-   (..predicate _.iflt)]
-  [text::char (_.checkcast $String) ..jvm_int
-   (_.invokevirtual ..$String "charAt" (type.method [(list) (list type.int) type.char (list)]))
-   ..lux_int]
-  )
-
-(def text::composite
-  (Variadic (Bytecode Any))
-  (let [$StringBuilder (type.class "java.lang.StringBuilder" (list))
-        add_part! (is (-> (Bytecode Any)
-                          (Bytecode Any))
-                      (function (_ it)
-                        (all _.composite
-                             it
-                             (_.checkcast $String)
-                             )))
-        update_size! (is (Bytecode Any)
-                         (all _.composite
-                              _.dup
-                              $String::length
-                              _.dup2_x1
-                              _.pop2
-                              _.iadd
-                              ))
-        new_StringBuilder (is (Bytecode Any)
-                              (all _.composite
-                                   (_.new $StringBuilder)
-                                   _.dup_x1
-                                   _.swap
-                                   (_.invokespecial $StringBuilder "" (type.method [(list) (list type.int) type.void (list)]))
-                                   ))
-        compose_part! (is (Bytecode Any)
-                          (all _.composite
-                               _.swap
-                               (_.invokevirtual $StringBuilder "append" (type.method [(list) (list ..$String) $StringBuilder (list)]))
-                               ))]
-    (|>> (|.when (list)
-           (_.string "")
-
-           (list single)
-           single
-
-           (list left right)
-           (all _.composite
-                left (_.checkcast $String)
-                right (_.checkcast $String)
-                (_.invokevirtual ..$String "concat" (type.method [(list) (list ..$String) ..$String (list)])))
-
-           parts
-           (do [! _.monad]
-             [_ (_.int (.i64 +0))
-              _ (monad.each ! (is (-> (Bytecode Any)
-                                      (Bytecode Any))
-                                  (function (_ it)
-                                    (all _.composite
-                                         (add_part! it)
-                                         update_size!
-                                         )))
-                            (list.reversed parts))
-              _ new_StringBuilder
-              _ (monad.each ! (function.constant compose_part!)
-                            parts)]
-             (_.invokevirtual $StringBuilder "toString" (type.method [(list) (list) ..$String (list)])))
-           ))))
-
-(def (text::clip [offset! length! subject!])
-  (Trinary (Bytecode Any))
-  (all _.composite
-       subject! (_.checkcast $String)
-       offset! ..jvm_int
-       _.dup
-       length! ..jvm_int
-       _.iadd
-       (_.invokevirtual ..$String "substring" (type.method [(list) (list type.int type.int) ..$String (list)]))))
-
-(def index_method (type.method [(list) (list ..$String type.int) type.int (list)]))
-(def (text::index [startG partG textG])
-  (Trinary (Bytecode Any))
-  (do _.monad
-    [@not_found _.new_label
-     @end _.new_label]
-    (all _.composite
-         textG (_.checkcast $String)
-         partG (_.checkcast $String)
-         startG ..jvm_int
-         (_.invokevirtual ..$String "indexOf" index_method)
-         _.dup
-         _.iconst_m1
-         (_.if_icmpeq @not_found)
-         ..lux_int
-         ///runtime.some_injection
-         (_.goto @end)
-         (_.set_label @not_found)
-         _.pop
-         ///runtime.none_injection
-         (_.set_label @end))))
-
-(def with_text_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has "text_=#|generation" (binary ..text::=))
-       (dictionary.has "text_<#|generation" (binary ..text::<))
-       (dictionary.has "text_composite#|generation" (variadic ..text::composite))
-       (dictionary.has "text_index#|generation" (trinary ..text::index))
-       (dictionary.has "text_size#|generation" (unary ..text::size))
-       (dictionary.has "text_char#|generation" (binary ..text::char))
-       (dictionary.has "text_clip#|generation" (trinary ..text::clip))))
-
-(def string_method (type.method [(list) (list ..$String) type.void (list)]))
-(def (io::log messageG)
-  (Unary (Bytecode Any))
-  (all _.composite
-       (_.getstatic ..$System "out" ..$PrintStream)
-       messageG
-       (_.checkcast $String)
-       (_.invokevirtual ..$PrintStream "println" ..string_method)
-       ///runtime.unit))
-
-(def (io::error messageG)
-  (Unary (Bytecode Any))
-  (all _.composite
-       (_.new ..$Error)
-       _.dup
-       messageG
-       (_.checkcast $String)
-       (_.invokespecial ..$Error "" ..string_method)
-       _.athrow))
-
-(def with_io_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has "log!#|generation" (unary ..io::log))
-       (dictionary.has "error#|generation" (unary ..io::error))))
-
-(def .public bundle
-  Bundle
-  (|> extension.empty
-      with_basic_extensions
-      with_io_extensions
-      with_text_extensions
-      with_i64_extensions
-      with_int_extensions
-      with_frac_extensions))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm/host.lux
deleted file mode 100644
index 853c0c0ae..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/jvm/host.lux
+++ /dev/null
@@ -1,1367 +0,0 @@
-(.require
- [library
-  [lux (.except Type Primitive Synthesis)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" maybe (.use "[1]#[0]" functor)]
-    ["[0]" exception (.only Exception)]]
-   [data
-    ["[0]" product]
-    [binary
-     ["[0]" \\format]]
-    ["[0]" text (.use "[1]#[0]" equivalence)
-     ["%" \\format]
-     ["<[1]>" \\parser]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" monad mix monoid)]
-     ["[0]" dictionary (.only Dictionary)]
-     ["[0]" set (.only Set)]
-     ["[0]" sequence]]]
-   [math
-    [number
-     ["n" nat]
-     ["[0]" i32]]]
-   [meta
-    ["[0]" location]
-    [macro
-     ["^" pattern]
-     ["[0]" template]]
-    [target
-     [jvm
-      ["[0]" version]
-      ["[0]" modifier (.use "[1]#[0]" monoid)]
-      ["[0]" method (.only Method)]
-      ["[0]" class (.only Class)]
-      [constant
-       [pool (.only Resource)]]
-      [encoding
-       ["[0]" name]]
-      ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)
-       ["__" instruction (.only Primitive_Array_Type)]]
-      ["[0]" type (.only Type Typed Argument)
-       ["[0]" category (.only Void Value' Value Return' Return Primitive Object Array Var Parameter)]
-       ["[0]" box]
-       ["[0]" reflection]
-       ["[0]" signature]
-       ["[0]" parser]]]]]]]
- ["[0]" //
-  [common (.only custom)]
-  ["///[1]" ////
-   [generation
-    [extension (.only Nullary Unary Binary Trinary Variadic
-                      nullary unary binary trinary variadic)]
-    ["///" jvm (.only)
-     ["[1][0]" runtime (.only Operation Bundle Phase Handler)]
-     ["[1][0]" reference]
-     ["[1][0]" value]
-     [function
-      [field
-       [variable
-        ["[0]" foreign]]]]]]
-   ["[0]" extension (.only)
-    [analysis
-     ["/" jvm]]]
-   ["/[1]" //
-    ["[1][0]" generation]
-    ["[0]" synthesis (.only Synthesis Path %synthesis)
-     ["<[1]>" \\parser (.only Parser)]]
-    [analysis (.only Environment)
-     ["[0]" complex]]
-    [///
-     ["[1]" phase]
-     ["[1][0]" reference (.only)
-      ["[2][0]" variable (.only Variable Register)]]
-     [meta
-      ["[0]" archive (.only Archive)
-       ["[0]" artifact]
-       ["[0]" unit]]
-      ["[0]" cache
-       [dependency
-        ["[1]/[0]" artifact]]]]]]]])
-
-(with_template [ <0>]
-  [(def 
-     (Bytecode Any)
-     (all _.composite
-          _.l2i
-          <0>))]
-
-  [l2s _.i2s]
-  [l2b _.i2b]
-  [l2c _.i2c]
-  )
-
-(with_template [ ]
-  [(def ( inputG)
-     (Unary (Bytecode Any))
-     (if (same? _.nop )
-       inputG
-       (all _.composite
-            inputG
-            )))]
-  
-  [_.d2f conversion::double_to_float]
-  [_.d2i conversion::double_to_int]
-  [_.d2l conversion::double_to_long]
-  
-  [_.f2d conversion::float_to_double]
-  [_.f2i conversion::float_to_int]
-  [_.f2l conversion::float_to_long]
-  
-  [_.i2b conversion::int_to_byte]
-  [_.i2c conversion::int_to_char]
-  [_.i2d conversion::int_to_double]
-  [_.i2f conversion::int_to_float]
-  [_.i2l conversion::int_to_long]
-  [_.i2s conversion::int_to_short]
-  
-  [_.l2d conversion::long_to_double]
-  [_.l2f conversion::long_to_float]
-  [_.l2i conversion::long_to_int]
-  [..l2s conversion::long_to_short]
-  [..l2b conversion::long_to_byte]
-  [..l2c conversion::long_to_char]
-  
-  [_.i2b conversion::char_to_byte]
-  [_.i2s conversion::char_to_short]
-  [_.nop conversion::char_to_int]
-  [_.i2l conversion::char_to_long]
-  
-  [_.i2l conversion::byte_to_long]
-  
-  [_.i2l conversion::short_to_long]
-  )
-
-(def with_conversion_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has (%.format "jvm_" "conversion_" "double_to_float" "#" "|generation") (unary conversion::double_to_float))
-       (dictionary.has (%.format "jvm_" "conversion_" "double_to_int" "#" "|generation") (unary conversion::double_to_int))
-       (dictionary.has (%.format "jvm_" "conversion_" "double_to_long" "#" "|generation") (unary conversion::double_to_long))
-       
-       (dictionary.has (%.format "jvm_" "conversion_" "float_to_double" "#" "|generation") (unary conversion::float_to_double))
-       (dictionary.has (%.format "jvm_" "conversion_" "float_to_int" "#" "|generation") (unary conversion::float_to_int))
-       (dictionary.has (%.format "jvm_" "conversion_" "float_to_long" "#" "|generation") (unary conversion::float_to_long))
-       
-       (dictionary.has (%.format "jvm_" "conversion_" "int_to_byte" "#" "|generation") (unary conversion::int_to_byte))
-       (dictionary.has (%.format "jvm_" "conversion_" "int_to_char" "#" "|generation") (unary conversion::int_to_char))
-       (dictionary.has (%.format "jvm_" "conversion_" "int_to_double" "#" "|generation") (unary conversion::int_to_double))
-       (dictionary.has (%.format "jvm_" "conversion_" "int_to_float" "#" "|generation") (unary conversion::int_to_float))
-       (dictionary.has (%.format "jvm_" "conversion_" "int_to_long" "#" "|generation") (unary conversion::int_to_long))
-       (dictionary.has (%.format "jvm_" "conversion_" "int_to_short" "#" "|generation") (unary conversion::int_to_short))
-       
-       (dictionary.has (%.format "jvm_" "conversion_" "long_to_double" "#" "|generation") (unary conversion::long_to_double))
-       (dictionary.has (%.format "jvm_" "conversion_" "long_to_float" "#" "|generation") (unary conversion::long_to_float))
-       (dictionary.has (%.format "jvm_" "conversion_" "long_to_int" "#" "|generation") (unary conversion::long_to_int))
-       (dictionary.has (%.format "jvm_" "conversion_" "long_to_short" "#" "|generation") (unary conversion::long_to_short))
-       (dictionary.has (%.format "jvm_" "conversion_" "long_to_byte" "#" "|generation") (unary conversion::long_to_byte))
-       (dictionary.has (%.format "jvm_" "conversion_" "long_to_char" "#" "|generation") (unary conversion::long_to_char))
-       
-       (dictionary.has (%.format "jvm_" "conversion_" "char_to_byte" "#" "|generation") (unary conversion::char_to_byte))
-       (dictionary.has (%.format "jvm_" "conversion_" "char_to_short" "#" "|generation") (unary conversion::char_to_short))
-       (dictionary.has (%.format "jvm_" "conversion_" "char_to_int" "#" "|generation") (unary conversion::char_to_int))
-       (dictionary.has (%.format "jvm_" "conversion_" "char_to_long" "#" "|generation") (unary conversion::char_to_long))
-       
-       (dictionary.has (%.format "jvm_" "conversion_" "byte_to_long" "#" "|generation") (unary conversion::byte_to_long))
-       
-       (dictionary.has (%.format "jvm_" "conversion_" "short_to_long" "#" "|generation") (unary conversion::short_to_long))
-       ))
-
-(with_template [ ]
-  [(def ( [parameter! subject!])
-     (Binary (Bytecode Any))
-     (all _.composite
-          subject!
-          parameter!
-          ))]
-
-  [int::+ _.iadd]
-  [int::- _.isub]
-  [int::* _.imul]
-  [int::/ _.idiv]
-  [int::% _.irem]
-  [int::and _.iand]
-  [int::or _.ior]
-  [int::xor _.ixor]
-  [int::shl _.ishl]
-  [int::shr _.ishr]
-  [int::ushr _.iushr]
-  
-  [long::+ _.ladd]
-  [long::- _.lsub]
-  [long::* _.lmul]
-  [long::/ _.ldiv]
-  [long::% _.lrem]
-  [long::and _.land]
-  [long::or _.lor]
-  [long::xor _.lxor]
-  [long::shl _.lshl]
-  [long::shr _.lshr]
-  [long::ushr _.lushr]
-
-  [float::+ _.fadd]
-  [float::- _.fsub]
-  [float::* _.fmul]
-  [float::/ _.fdiv]
-  [float::% _.frem]
-  
-  [double::+ _.dadd]
-  [double::- _.dsub]
-  [double::* _.dmul]
-  [double::/ _.ddiv]
-  [double::% _.drem]
-  )
-
-(def $Boolean (type.class box.boolean (list)))
-(def falseG (_.getstatic ..$Boolean "FALSE" ..$Boolean))
-(def trueG (_.getstatic ..$Boolean "TRUE" ..$Boolean))
-
-(with_template [ ]
-  [(def ( [reference subject])
-     (Binary (Bytecode Any))
-     (do _.monad
-       [@then _.new_label
-        @end _.new_label]
-       (all _.composite
-            subject
-            reference
-            ( @then)
-            falseG
-            (_.goto @end)
-            (_.set_label @then)
-            trueG
-            (_.set_label @end))))]
-
-  [int::= _.if_icmpeq]
-  [int::< _.if_icmplt]
-
-  [char::= _.if_icmpeq]
-  [char::< _.if_icmplt]
-  )
-
-(with_template [  ]
-  [(def ( [reference subject])
-     (Binary (Bytecode Any))
-     (do _.monad
-       [@then _.new_label
-        @end _.new_label]
-       (all _.composite
-            subject
-            reference
-            
-            (_.int (i32.i32 (.i64 )))
-            (_.if_icmpeq @then)
-            falseG
-            (_.goto @end)
-            (_.set_label @then)
-            trueG
-            (_.set_label @end))))]
-
-  [long::= _.lcmp +0]
-  [long::< _.lcmp -1]
-  
-  [float::= _.fcmpg +0]
-  [float::< _.fcmpg -1]
-
-  [double::= _.dcmpg +0]
-  [double::< _.dcmpg -1]
-  )
-
-(def with_int_extensions
-  (-> Bundle Bundle)
-  (let [type (reflection.reflection reflection.int)]
-    (|>> (dictionary.has (%.format "jvm_" type "_" "+" "#" "|generation") (binary int::+))
-         (dictionary.has (%.format "jvm_" type "_" "-" "#" "|generation") (binary int::-))
-         (dictionary.has (%.format "jvm_" type "_" "*" "#" "|generation") (binary int::*))
-         (dictionary.has (%.format "jvm_" type "_" "/" "#" "|generation") (binary int::/))
-         (dictionary.has (%.format "jvm_" type "_" "%" "#" "|generation") (binary int::%))
-         (dictionary.has (%.format "jvm_" type "_" "=" "#" "|generation") (binary int::=))
-         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|generation") (binary int::<))
-         (dictionary.has (%.format "jvm_" type "_" "and" "#" "|generation") (binary int::and))
-         (dictionary.has (%.format "jvm_" type "_" "or" "#" "|generation") (binary int::or))
-         (dictionary.has (%.format "jvm_" type "_" "xor" "#" "|generation") (binary int::xor))
-         (dictionary.has (%.format "jvm_" type "_" "shl" "#" "|generation") (binary int::shl))
-         (dictionary.has (%.format "jvm_" type "_" "shr" "#" "|generation") (binary int::shr))
-         (dictionary.has (%.format "jvm_" type "_" "ushr" "#" "|generation") (binary int::ushr))
-         )))
-
-(def with_long_extensions
-  (-> Bundle Bundle)
-  (let [type (reflection.reflection reflection.long)]
-    (|>> (dictionary.has (%.format "jvm_" type "_" "+" "#" "|generation") (binary long::+))
-         (dictionary.has (%.format "jvm_" type "_" "-" "#" "|generation") (binary long::-))
-         (dictionary.has (%.format "jvm_" type "_" "*" "#" "|generation") (binary long::*))
-         (dictionary.has (%.format "jvm_" type "_" "/" "#" "|generation") (binary long::/))
-         (dictionary.has (%.format "jvm_" type "_" "%" "#" "|generation") (binary long::%))
-         (dictionary.has (%.format "jvm_" type "_" "=" "#" "|generation") (binary long::=))
-         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|generation") (binary long::<))
-         (dictionary.has (%.format "jvm_" type "_" "and" "#" "|generation") (binary long::and))
-         (dictionary.has (%.format "jvm_" type "_" "or" "#" "|generation") (binary long::or))
-         (dictionary.has (%.format "jvm_" type "_" "xor" "#" "|generation") (binary long::xor))
-         (dictionary.has (%.format "jvm_" type "_" "shl" "#" "|generation") (binary long::shl))
-         (dictionary.has (%.format "jvm_" type "_" "shr" "#" "|generation") (binary long::shr))
-         (dictionary.has (%.format "jvm_" type "_" "ushr" "#" "|generation") (binary long::ushr))
-         )))
-
-(def with_float_extensions
-  (-> Bundle Bundle)
-  (let [type (reflection.reflection reflection.float)]
-    (|>> (dictionary.has (%.format "jvm_" type "_" "+" "#" "|generation") (binary float::+))
-         (dictionary.has (%.format "jvm_" type "_" "-" "#" "|generation") (binary float::-))
-         (dictionary.has (%.format "jvm_" type "_" "*" "#" "|generation") (binary float::*))
-         (dictionary.has (%.format "jvm_" type "_" "/" "#" "|generation") (binary float::/))
-         (dictionary.has (%.format "jvm_" type "_" "%" "#" "|generation") (binary float::%))
-         (dictionary.has (%.format "jvm_" type "_" "=" "#" "|generation") (binary float::=))
-         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|generation") (binary float::<))
-         )))
-
-(def with_double_extensions
-  (-> Bundle Bundle)
-  (let [type (reflection.reflection reflection.float)]
-    (|>> (dictionary.has (%.format "jvm_" type "_" "+" "#" "|generation") (binary double::+))
-         (dictionary.has (%.format "jvm_" type "_" "-" "#" "|generation") (binary double::-))
-         (dictionary.has (%.format "jvm_" type "_" "*" "#" "|generation") (binary double::*))
-         (dictionary.has (%.format "jvm_" type "_" "/" "#" "|generation") (binary double::/))
-         (dictionary.has (%.format "jvm_" type "_" "%" "#" "|generation") (binary double::%))
-         (dictionary.has (%.format "jvm_" type "_" "=" "#" "|generation") (binary double::=))
-         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|generation") (binary double::<))
-         )))
-
-(def with_char_extensions
-  (-> Bundle Bundle)
-  (let [type (reflection.reflection reflection.char)]
-    (|>> (dictionary.has (%.format "jvm_" type "_" "=" "#" "|generation") (binary char::=))
-         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|generation") (binary char::<))
-         )))
-
-(with_template [  ]
-  [(def .public 
-     (Parser (Type ))
-     (.then  .text))]
-
-  [var Var parser.var]
-  [class category.Class parser.class]
-  [object Object parser.object]
-  [value Value parser.value]
-  [return Return parser.return]
-  )
-
-(def reflection
-  (All (_ category)
-    (-> (Type (<| Return' Value' category)) Text))
-  (|>> type.reflection reflection.reflection))
-
-(def signature
-  (All (_ category)
-    (-> (Type category) Text))
-  (|>> type.signature signature.signature))
-
-(exception.def .public (not_an_object_array arrayJT)
-  (Exception (Type Array))
-  (exception.report
-   (list ["JVM type" (..signature arrayJT)])))
-
-(def .public object_array
-  (Parser (Type Object))
-  (do <>.monad
-    [arrayJT (.then parser.array .text)]
-    (when (parser.array? arrayJT)
-      {.#Some elementJT}
-      (when (parser.object? elementJT)
-        {.#Some elementJT}
-        (in elementJT)
-
-        {.#None}
-        (<>.failure (exception.error ..not_an_object_array [arrayJT])))
-      
-      {.#None}
-      (undefined))))
-
-(def (primitive_array_length_handler jvm_primitive)
-  (-> (Type Primitive) Handler)
-  (..custom
-   [.any
-    (function (_ generate archive arrayS)
-      (do //////.monad
-        [arrayG (generate archive arrayS)]
-        (in (all _.composite
-                 arrayG
-                 (_.checkcast (type.array jvm_primitive))
-                 _.arraylength))))]))
-
-(def array::length::object
-  Handler
-  (..custom
-   [(all <>.and ..object_array .any)
-    (function (_ generate archive [elementJT arrayS])
-      (do //////.monad
-        [arrayG (generate archive arrayS)]
-        (in (all _.composite
-                 arrayG
-                 (_.checkcast (type.array elementJT))
-                 _.arraylength))))]))
-
-(def (new_primitive_array_handler jvm_primitive)
-  (-> Primitive_Array_Type Handler)
-  (..custom
-   [.any
-    (function (_ generate archive [lengthS])
-      (do //////.monad
-        [lengthG (generate archive lengthS)]
-        (in (all _.composite
-                 lengthG
-                 (_.newarray jvm_primitive)))))]))
-
-(def array::new::object
-  Handler
-  (..custom
-   [(all <>.and ..object .any)
-    (function (_ generate archive [objectJT lengthS])
-      (do //////.monad
-        [lengthG (generate archive lengthS)]
-        (in (all _.composite
-                 lengthG
-                 (_.anewarray objectJT)))))]))
-
-(def (read_primitive_array_handler jvm_primitive loadG)
-  (-> (Type Primitive) (Bytecode Any) Handler)
-  (..custom
-   [(all <>.and .any .any)
-    (function (_ generate archive [idxS arrayS])
-      (do //////.monad
-        [arrayG (generate archive arrayS)
-         idxG (generate archive idxS)]
-        (in (all _.composite
-                 arrayG
-                 (_.checkcast (type.array jvm_primitive))
-                 idxG
-                 loadG))))]))
-
-(def array::read::object
-  Handler
-  (..custom
-   [(all <>.and ..object_array .any .any)
-    (function (_ generate archive [elementJT idxS arrayS])
-      (do //////.monad
-        [arrayG (generate archive arrayS)
-         idxG (generate archive idxS)]
-        (in (all _.composite
-                 arrayG
-                 (_.checkcast (type.array elementJT))
-                 idxG
-                 _.aaload))))]))
-
-(def (write_primitive_array_handler jvm_primitive storeG)
-  (-> (Type Primitive) (Bytecode Any) Handler)
-  (..custom
-   [(all <>.and .any .any .any)
-    (function (_ generate archive [idxS valueS arrayS])
-      (do //////.monad
-        [arrayG (generate archive arrayS)
-         idxG (generate archive idxS)
-         valueG (generate archive valueS)]
-        (in (all _.composite
-                 arrayG
-                 (_.checkcast (type.array jvm_primitive))
-                 _.dup
-                 idxG
-                 valueG
-                 storeG))))]))
-
-(def array::write::object
-  Handler
-  (..custom
-   [(all <>.and ..object_array .any .any .any)
-    (function (_ generate archive [elementJT idxS valueS arrayS])
-      (do //////.monad
-        [arrayG (generate archive arrayS)
-         idxG (generate archive idxS)
-         valueG (generate archive valueS)]
-        (in (all _.composite
-                 arrayG
-                 (_.checkcast (type.array elementJT))
-                 _.dup
-                 idxG
-                 valueG
-                 _.aastore))))]))
-
-(def with_array_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.boolean) "#" "|generation") (primitive_array_length_handler type.boolean))
-       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.byte) "#" "|generation") (primitive_array_length_handler type.byte))
-       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.short) "#" "|generation") (primitive_array_length_handler type.short))
-       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.int) "#" "|generation") (primitive_array_length_handler type.int))
-       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.long) "#" "|generation") (primitive_array_length_handler type.long))
-       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.float) "#" "|generation") (primitive_array_length_handler type.float))
-       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.double) "#" "|generation") (primitive_array_length_handler type.double))
-       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.char) "#" "|generation") (primitive_array_length_handler type.char))
-       (dictionary.has (%.format "jvm_" "array_" "length_" "object" "#" "|generation") array::length::object)
-
-       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.boolean) "#" "|generation") (new_primitive_array_handler __.t_boolean))
-       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.byte) "#" "|generation") (new_primitive_array_handler __.t_byte))
-       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.short) "#" "|generation") (new_primitive_array_handler __.t_short))
-       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.int) "#" "|generation") (new_primitive_array_handler __.t_int))
-       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.long) "#" "|generation") (new_primitive_array_handler __.t_long))
-       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.float) "#" "|generation") (new_primitive_array_handler __.t_float))
-       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.double) "#" "|generation") (new_primitive_array_handler __.t_double))
-       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.char) "#" "|generation") (new_primitive_array_handler __.t_char))
-       (dictionary.has (%.format "jvm_" "array_" "new_" "object" "#" "|generation") array::new::object)
-
-       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.boolean) "#" "|generation") (read_primitive_array_handler type.boolean _.baload))
-       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.byte) "#" "|generation") (read_primitive_array_handler type.byte _.baload))
-       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.short) "#" "|generation") (read_primitive_array_handler type.short _.saload))
-       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.int) "#" "|generation") (read_primitive_array_handler type.int _.iaload))
-       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.long) "#" "|generation") (read_primitive_array_handler type.long _.laload))
-       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.float) "#" "|generation") (read_primitive_array_handler type.float _.faload))
-       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.double) "#" "|generation") (read_primitive_array_handler type.double _.daload))
-       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.char) "#" "|generation") (read_primitive_array_handler type.char _.caload))
-       (dictionary.has (%.format "jvm_" "array_" "read_" "object" "#" "|generation") array::read::object)
-
-       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.boolean) "#" "|generation") (write_primitive_array_handler type.boolean _.bastore))
-       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.byte) "#" "|generation") (write_primitive_array_handler type.byte _.bastore))
-       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.short) "#" "|generation") (write_primitive_array_handler type.short _.sastore))
-       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.int) "#" "|generation") (write_primitive_array_handler type.int _.iastore))
-       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.long) "#" "|generation") (write_primitive_array_handler type.long _.lastore))
-       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.float) "#" "|generation") (write_primitive_array_handler type.float _.fastore))
-       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.double) "#" "|generation") (write_primitive_array_handler type.double _.dastore))
-       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.char) "#" "|generation") (write_primitive_array_handler type.char _.castore))
-       (dictionary.has (%.format "jvm_" "array_" "write_" "object" "#" "|generation") array::write::object)
-       ))
-
-(def (object::null _)
-  (Nullary (Bytecode Any))
-  _.aconst_null)
-
-(def (object::null? objectG)
-  (Unary (Bytecode Any))
-  (do _.monad
-    [@then _.new_label
-     @end _.new_label]
-    (all _.composite
-         objectG
-         (_.ifnull @then)
-         ..falseG
-         (_.goto @end)
-         (_.set_label @then)
-         ..trueG
-         (_.set_label @end))))
-
-(def (object::synchronized [monitorG exprG])
-  (Binary (Bytecode Any))
-  (all _.composite
-       monitorG
-       _.dup
-       _.monitorenter
-       exprG
-       _.swap
-       _.monitorexit))
-
-(def unitG
-  (_.string synthesis.unit))
-
-(def (object::throw exceptionG)
-  (Unary (Bytecode Any))
-  (all _.composite
-       exceptionG
-       (_.checkcast (type.class "java.lang.Throwable" (list)))
-       ///runtime.throw
-       unitG))
-
-(def $Class (type.class "java.lang.Class" (list)))
-(def $String (type.class "java.lang.String" (list)))
-
-(def object::class
-  Handler
-  (..custom
-   [.text
-    (function (_ generate archive [class])
-      (do //////.monad
-        []
-        (in (all _.composite
-                 (_.string class)
-                 (_.invokestatic ..$Class "forName" (type.method [(list) (list ..$String) ..$Class (list)]))))))]))
-
-(def object::instance?
-  Handler
-  (..custom
-   [(all <>.and .text .any)
-    (function (_ generate archive [class objectS])
-      (do //////.monad
-        [objectG (generate archive objectS)]
-        (in (all _.composite
-                 objectG
-                 (_.instanceof (type.class class (list)))
-                 (///value.wrap type.boolean)))))]))
-
-(def object::cast
-  Handler
-  (..custom
-   [(all <>.and .text .text .any)
-    (function (_ generate archive [from to valueS])
-      (do //////.monad
-        [valueG (generate archive valueS)]
-        (in (`` (cond (,, (with_template [ ]
-                            [(and (text#= (..reflection ) from)
-                                  (text#=  to))
-                             (all _.composite
-                                  valueG
-                                  (///value.wrap ))
-
-                             (and (text#=  from)
-                                  (text#= (..reflection ) to))
-                             (all _.composite
-                                  valueG
-                                  (///value.unwrap ))]
-                            
-                            [box.boolean type.boolean]
-                            [box.byte    type.byte]
-                            [box.short   type.short]
-                            [box.int     type.int]
-                            [box.long    type.long]
-                            [box.char    type.char]
-                            [box.float   type.float]
-                            [box.double  type.double]))
-                      ... else
-                      valueG)))))]))
-
-(def with_object_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has (%.format "jvm_" "object_" "null" "#" "|generation") (nullary object::null))
-       (dictionary.has (%.format "jvm_" "object_" "null?" "#" "|generation") (unary object::null?))
-       (dictionary.has (%.format "jvm_" "object_" "synchronized" "#" "|generation") (binary object::synchronized))
-       (dictionary.has (%.format "jvm_" "object_" "throw" "#" "|generation") (unary object::throw))
-       (dictionary.has (%.format "jvm_" "object_" "class" "#" "|generation") object::class)
-       (dictionary.has (%.format "jvm_" "object_" "instance?" "#" "|generation") object::instance?)
-       (dictionary.has (%.format "jvm_" "object_" "cast" "#" "|generation") object::cast)
-       ))
-
-(def get::static
-  Handler
-  (..custom
-   [(all <>.and .text .text ..value)
-    (function (_ generate archive [class field :unboxed:])
-      (at //////.monad in (_.getstatic (type.class class (list)) field :unboxed:)))]))
-
-(def put::static
-  Handler
-  (..custom
-   [(all <>.and .text .text ..value .any)
-    (function (_ generate archive [class field :unboxed: valueS])
-      (do //////.monad
-        [valueG (generate archive valueS)]
-        (in (all _.composite
-                 valueG
-                 (when (parser.object? :unboxed:)
-                   {.#Some :unboxed:}
-                   (_.checkcast :unboxed:)
-                   
-                   {.#None}
-                   (_#in []))
-                 (_.putstatic (type.class class (list)) field :unboxed:)
-                 ..unitG))))]))
-
-(def get::virtual
-  Handler
-  (..custom
-   [(all <>.and .text .text ..value .any)
-    (function (_ generate archive [class field :unboxed: objectS])
-      (do //////.monad
-        [objectG (generate archive objectS)
-         .let [:class: (type.class class (list))
-               getG (_.getfield :class: field :unboxed:)]]
-        (in (all _.composite
-                 objectG
-                 (_.checkcast :class:)
-                 getG))))]))
-
-(def put::virtual
-  Handler
-  (..custom
-   [(all <>.and .text .text ..value .any .any)
-    (function (_ generate archive [class field :unboxed: valueS objectS])
-      (do //////.monad
-        [valueG (generate archive valueS)
-         objectG (generate archive objectS)
-         .let [:class: (type.class class (list))
-               putG (when (parser.object? :unboxed:)
-                      {.#Some :unboxed:}
-                      (all _.composite
-                           (_.checkcast :unboxed:)
-                           (_.putfield :class: field :unboxed:))
-                      
-                      {.#None}
-                      (_.putfield :class: field :unboxed:))]]
-        (in (all _.composite
-                 objectG
-                 (_.checkcast :class:)
-                 _.dup
-                 valueG
-                 putG))))]))
-
-(type Input
-  (Typed Synthesis))
-
-(def input
-  (Parser Input)
-  (.tuple (<>.and ..value .any)))
-
-(def (generate_input generate archive [valueT valueS])
-  (-> Phase Archive Input (Operation (Typed (Bytecode Any))))
-  (do //////.monad
-    [valueG (generate archive valueS)]
-    (when (type.primitive? valueT)
-      {.#Right valueT}
-      (in [valueT valueG])
-      
-      {.#Left valueT}
-      (in [valueT (all _.composite
-                       valueG
-                       (_.checkcast valueT))]))))
-
-(def (prepare_output outputT)
-  (-> (Type Return) (Bytecode Any))
-  (when (type.void? outputT)
-    {.#Right outputT}
-    ..unitG
-    
-    {.#Left outputT}
-    (_#in [])))
-
-(def invoke::static
-  Handler
-  (..custom
-   [(all <>.and ..class .text ..return (<>.some ..input))
-    (function (_ generate archive [class method outputT inputsTS])
-      (do [! //////.monad]
-        [inputsTG (monad.each ! (generate_input generate archive) inputsTS)]
-        (in (all _.composite
-                 (monad.each _.monad product.right inputsTG)
-                 (_.invokestatic class method (type.method [(list) (list#each product.left inputsTG) outputT (list)]))
-                 (prepare_output outputT)))))]))
-
-(with_template [  ]
-  [(def 
-     Handler
-     (..custom
-      [(all <>.and ..class .text ..return .any (<>.some ..input))
-       (function (_ generate archive [class method outputT objectS inputsTS])
-         (do [! //////.monad]
-           [objectG (generate archive objectS)
-            inputsTG (monad.each ! (generate_input generate archive) inputsTS)]
-           (in (all _.composite
-                    objectG
-                    (if 
-                      (_.checkcast class)
-                      (_#in []))
-                    (monad.each _.monad product.right inputsTG)
-                    ( class method (type.method [(list) (list#each product.left inputsTG) outputT (list)]))
-                    (prepare_output outputT)))))]))]
-
-  [#1 invoke::virtual _.invokevirtual]
-  [#0 invoke::special _.invokespecial]
-  [#1 invoke::interface _.invokeinterface]
-  )
-
-(def invoke::constructor
-  Handler
-  (..custom
-   [(all <>.and ..class (<>.some ..input))
-    (function (_ generate archive [class inputsTS])
-      (do [! //////.monad]
-        [inputsTG (monad.each ! (generate_input generate archive) inputsTS)]
-        (in (all _.composite
-                 (_.new class)
-                 _.dup
-                 (monad.each _.monad product.right inputsTG)
-                 (_.invokespecial class "" (type.method [(list) (list#each product.left inputsTG) type.void (list)]))))))]))
-
-(def with_member_extensions
-  (-> Bundle Bundle)
-  (|>> (dictionary.has (%.format "jvm_" "member_" "get_" "static" "#" "|generation") get::static)
-       (dictionary.has (%.format "jvm_" "member_" "get_" "virtual" "#" "|generation") get::virtual)
-       
-       (dictionary.has (%.format "jvm_" "member_" "put_" "static" "#" "|generation") put::static)
-       (dictionary.has (%.format "jvm_" "member_" "put_" "virtual" "#" "|generation") put::virtual)
-       
-       (dictionary.has (%.format "jvm_" "member_" "invoke_" "static" "#" "|generation") invoke::static)
-       (dictionary.has (%.format "jvm_" "member_" "invoke_" "virtual" "#" "|generation") invoke::virtual)
-       (dictionary.has (%.format "jvm_" "member_" "invoke_" "special" "#" "|generation") invoke::special)
-       (dictionary.has (%.format "jvm_" "member_" "invoke_" "interface" "#" "|generation") invoke::interface)
-       (dictionary.has (%.format "jvm_" "member_" "invoke_" "constructor" "#" "|generation") invoke::constructor)
-       ))
-
-(def annotation_parameter
-  (Parser (/.Annotation_Parameter Synthesis))
-  (.tuple (<>.and .text .any)))
-
-(def annotation
-  (Parser (/.Annotation Synthesis))
-  (.tuple (<>.and .text (<>.some ..annotation_parameter))))
-
-(def argument
-  (Parser Argument)
-  (.tuple (<>.and .text ..value)))
-
-(def .public (hidden_method_body arity body)
-  (-> Nat Synthesis Synthesis)
-  (with_expansions [ (panic! (%.format (%.nat arity) " " (synthesis.%synthesis body)))]
-    (when [arity body]
-      (^.or [0 _]
-            [1 _])
-      body
-      
-      [2 [@ {synthesis.#Control {synthesis.#Branch {synthesis.#Let _ 2 (synthesis.tuple @ (list _ hidden))}}}]]
-      hidden
-      
-      [_ [@ {synthesis.#Control {synthesis.#Branch {synthesis.#When _ path}}}]]
-      (loop (again [path (is Path path)])
-        (when path
-          {synthesis.#Seq _ next}
-          (again next)
-          
-          {synthesis.#Then (synthesis.tuple @ (list _ hidden))}
-          hidden
-          
-          _
-          ))
-
-      _
-      )))
-
-(def (without_fake_parameter#path without_fake_parameter)
-  (-> (-> Synthesis Synthesis)
-      (-> Path Path))
-  (function (again it)
-    (when it
-      (^.or {synthesis.#Pop}
-            {synthesis.#Access _})
-      it
-      
-      {synthesis.#Bind it}
-      {synthesis.#Bind (-- it)}
-      
-      {synthesis.#Bit_Fork when then else}
-      {synthesis.#Bit_Fork when
-                           (again then)
-                           (maybe#each again else)}
-
-      (^.with_template []
-        [{ [head tail]}
-         { [(revised synthesis.#then again head)
-                 (list#each (revised synthesis.#then again) tail)]}])
-      ([synthesis.#I64_Fork]
-       [synthesis.#F64_Fork]
-       [synthesis.#Text_Fork])
-      
-      (^.with_template []
-        [{ left right}
-         { (again left) (again right)}])
-      ([synthesis.#Seq]
-       [synthesis.#Alt])
-      
-      {synthesis.#Then it}
-      {synthesis.#Then (without_fake_parameter it)})))
-
-(def .public (without_fake_parameter it)
-  (-> Synthesis Synthesis)
-  (when it
-    [@ {synthesis.#Simple _}]
-    it
-    
-    [@ {synthesis.#Structure it}]
-    [@ {synthesis.#Structure
-        (when it
-          {complex.#Variant it}
-          {complex.#Variant (revised complex.#value without_fake_parameter it)}
-
-          {complex.#Tuple it}
-          {complex.#Tuple (list#each without_fake_parameter it)})}]
-    
-    [@ {synthesis.#Reference it}]
-    [@ {synthesis.#Reference
-        (when it
-          {//////reference.#Variable it}
-          {//////reference.#Variable
-           (when it
-             {//////variable.#Local it}
-             {//////variable.#Local (-- it)}
-             
-             {//////variable.#Foreign _}
-             it)}
-          
-          {//////reference.#Constant _}
-          it)}]
-    
-    [@ {synthesis.#Control it}]
-    [@ {synthesis.#Control
-        (when it
-          {synthesis.#Branch it}
-          {synthesis.#Branch
-           (when it
-             {synthesis.#Exec before after}
-             {synthesis.#Exec (without_fake_parameter before)
-                              (without_fake_parameter after)}
-             
-             {synthesis.#Let value register body}
-             {synthesis.#Let (without_fake_parameter value)
-                             (-- register)
-                             (without_fake_parameter body)}
-             
-             {synthesis.#If when then else}
-             {synthesis.#If (without_fake_parameter when)
-                            (without_fake_parameter then)
-                            (without_fake_parameter else)}
-             
-             {synthesis.#Get members record}
-             {synthesis.#Get members
-                             (without_fake_parameter record)}
-             
-             {synthesis.#When value path}
-             {synthesis.#When (without_fake_parameter value)
-                              (without_fake_parameter#path without_fake_parameter path)})}
-          
-          {synthesis.#Loop it}
-          {synthesis.#Loop
-           (when it
-             {synthesis.#Scope [synthesis.#start start
-                                synthesis.#inits inits
-                                synthesis.#iteration iteration]}
-             {synthesis.#Scope [synthesis.#start (-- start)
-                                synthesis.#inits (list#each without_fake_parameter inits)
-                                synthesis.#iteration iteration]}
-             
-             {synthesis.#Again _}
-             it)}
-          
-          {synthesis.#Function it}
-          {synthesis.#Function
-           (when it
-             {synthesis.#Abstraction [synthesis.#environment environment
-                                      synthesis.#arity arity
-                                      synthesis.#body body]}
-             {synthesis.#Abstraction [synthesis.#environment (list#each without_fake_parameter environment)
-                                      synthesis.#arity arity
-                                      synthesis.#body body]}
-             
-             {synthesis.#Apply [synthesis.#function function
-                                synthesis.#arguments arguments]}
-             {synthesis.#Apply [synthesis.#function (without_fake_parameter function)
-                                synthesis.#arguments (list#each without_fake_parameter arguments)]})})}]
-
-    [@ {synthesis.#Extension name parameters}]
-    [@ {synthesis.#Extension name (list#each without_fake_parameter parameters)}]))
-
-(def overriden_method_definition
-  (Parser [(Environment Synthesis) (/.Overriden_Method Synthesis)])
-  (.tuple (do <>.monad
-                       [_ (.this_text /.overriden_tag)
-                        ownerT ..class
-                        name .text
-                        strict_fp? .bit
-                        annotations (.tuple (<>.some ..annotation))
-                        vars (.tuple (<>.some ..var))
-                        self_name .text
-                        arguments (.tuple (<>.some ..argument))
-                        returnT ..return
-                        exceptionsT (.tuple (<>.some ..class))
-                        [environment _ _ body] (<| (.function 1)
-                                                   (.loop (<>.exactly 0 .any))
-                                                   .tuple
-                                                   (<>.after .any)
-                                                   .any)
-                        .let [arity (list.size arguments)]]
-                       (in [environment
-                            [ownerT name
-                             strict_fp? annotations vars
-                             self_name arguments returnT exceptionsT
-                             (<| (..hidden_method_body arity)
-                                 (when arity
-                                   0 (without_fake_parameter body)
-                                   _ body))]]))))
-
-(def (normalize_path normalize)
-  (-> (-> Synthesis Synthesis)
-      (-> Path Path))
-  (function (again path)
-    (when path
-      (synthesis.path/then bodyS)
-      (synthesis.path/then (normalize bodyS))
-
-      (^.with_template []
-        [{ leftP rightP}
-         { (again leftP) (again rightP)}])
-      ([synthesis.#Alt]
-       [synthesis.#Seq])
-
-      (^.with_template []
-        [{ _}
-         path])
-      ([synthesis.#Pop]
-       [synthesis.#Bind]
-       [synthesis.#Access])
-
-      {synthesis.#Bit_Fork when then else}
-      {synthesis.#Bit_Fork when (again then) (maybe#each again else)}
-
-      (^.with_template []
-        [{ [[exampleH nextH] tail]}
-         { [[exampleH (again nextH)]
-                 (list#each (function (_ [example next])
-                              [example (again next)])
-                            tail)]}])
-      ([synthesis.#I64_Fork]
-       [synthesis.#F64_Fork]
-       [synthesis.#Text_Fork]))))
-
-(type Mapping
-  (Dictionary Synthesis Variable))
-
-(def (normalize_method_body mapping)
-  (-> Mapping Synthesis Synthesis)
-  (function (again body)
-    (when body
-      (^.with_template []
-        [
-         body])
-      ([[@ {synthesis.#Simple _}]]
-       [(synthesis.constant @ _)])
-
-      (synthesis.variant @ [lefts right? sub])
-      (synthesis.variant @ [lefts right? (again sub)])
-
-      (synthesis.tuple @ members)
-      (synthesis.tuple @ (list#each again members))
-
-      (synthesis.variable @ var)
-      (|> mapping
-          (dictionary.value body)
-          (maybe.else var)
-          (synthesis.variable @))
-
-      (synthesis.branch/when @ [inputS pathS])
-      (synthesis.branch/when @ [(again inputS) (normalize_path again pathS)])
-
-      (synthesis.branch/exec @ [this that])
-      (synthesis.branch/exec @ [(again this) (again that)])
-
-      (synthesis.branch/let @ [inputS register outputS])
-      (synthesis.branch/let @ [(again inputS) register (again outputS)])
-
-      (synthesis.branch/if @ [testS thenS elseS])
-      (synthesis.branch/if @ [(again testS) (again thenS) (again elseS)])
-
-      (synthesis.branch/get @ [path recordS])
-      (synthesis.branch/get @ [path (again recordS)])
-
-      (synthesis.loop/scope @ [offset initsS+ bodyS])
-      (synthesis.loop/scope @ [offset (list#each again initsS+) (again bodyS)])
-
-      (synthesis.loop/again @ updatesS+)
-      (synthesis.loop/again @ (list#each again updatesS+))
-
-      (synthesis.function/abstraction @ [environment arity bodyS])
-      (synthesis.function/abstraction @ [(list#each (function (_ captured)
-                                                      (when captured
-                                                        (synthesis.variable @ var)
-                                                        (|> mapping
-                                                            (dictionary.value captured)
-                                                            (maybe.else var)
-                                                            (synthesis.variable @))
-
-                                                        _
-                                                        captured))
-                                                    environment)
-                                         arity
-                                         bodyS])
-
-      (synthesis.function/apply @ [functionS inputsS+])
-      (synthesis.function/apply @ [(again functionS) (list#each again inputsS+)])
-
-      [@ {synthesis.#Extension [name inputsS+]}]
-      [@ {synthesis.#Extension [name (list#each again inputsS+)]}])))
-
-(def $Object
-  (type.class "java.lang.Object" (list)))
-
-(def (anonymous_init_method env inputsTI)
-  (-> (Environment Synthesis) (List (Typed (Bytecode Any))) (Type category.Method))
-  (type.method [(list)
-                (list.repeated (n.+ (list.size inputsTI) (list.size env)) ..$Object)
-                type.void
-                (list)]))
-
-(def (with_anonymous_init class env super_class inputsTG)
-  (-> (Type category.Class) (Environment Synthesis) (Type category.Class) (List (Typed (Bytecode Any))) (Resource Method))
-  (let [inputs_offset (list.size inputsTG)
-        inputs! (|> inputsTG
-                    list.enumeration
-                    (list#each (function (_ [register [type term]])
-                                 (let [then! (when (type.primitive? type)
-                                               {.#Right type}
-                                               (///value.unwrap type)
-                                               
-                                               {.#Left type}
-                                               (_.checkcast type))]
-                                   (all _.composite
-                                        (_.aload (++ register))
-                                        then!))))
-                    list.reversed
-                    (list#mix _.composite (_#in [])))
-        store_captured! (|> env
-                            list.size
-                            list.indices
-                            (monad.each _.monad (.function (_ register)
-                                                  (all _.composite
-                                                       (_.aload 0)
-                                                       (_.aload (n.+ inputs_offset (++ register)))
-                                                       (_.putfield class (///reference.foreign_name register) $Object)))))]
-    (method.method method.public ""
-      true (anonymous_init_method env inputsTG)
-      (list)
-      {.#Some (all _.composite
-                   (_.aload 0)
-                   inputs!
-                   (_.invokespecial super_class "" (type.method [(list) (list#each product.left inputsTG) type.void (list)]))
-                   store_captured!
-                   _.return)})))
-
-(def (anonymous_instance generate archive class env inputsTI)
-  (-> Phase Archive (Type category.Class) (Environment Synthesis) (List (Typed (Bytecode Any))) (Operation (Bytecode Any)))
-  (do [! //////.monad]
-    [captureG+ (monad.each ! (generate archive) env)]
-    (in (all _.composite
-             (_.new class)
-             _.dup
-             (|> inputsTI
-                 (list#each product.right)
-                 list.reversed
-                 (list#mix _.composite (_#in [])))
-             (monad.all _.monad captureG+)
-             (_.invokespecial class "" (anonymous_init_method env inputsTI))))))
-
-(def (returnG returnT)
-  (-> (Type Return) (Bytecode Any))
-  (when (type.void? returnT)
-    {.#Right returnT}
-    _.return
-
-    {.#Left returnT}
-    (when (type.primitive? returnT)
-      {.#Left returnT}
-      (when (type.class? returnT)
-        {.#Some class_name}
-        (all _.composite
-             (_.checkcast returnT)
-             _.areturn)
-
-        {.#None}
-        _.areturn)
-      
-      {.#Right returnT}
-      (template.let [(unwrap_primitive  )
-                     [(all _.composite
-                           (///value.unwrap )
-                           )]]
-        (`` (cond (,, (with_template [ ]
-                        [(at type.equivalence =  returnT)
-                         (unwrap_primitive  )]
-
-                        [_.ireturn type.boolean]
-                        [_.ireturn type.byte]
-                        [_.ireturn type.short]
-                        [_.ireturn type.int]
-                        [_.ireturn type.char]
-                        [_.freturn type.float]
-                        [_.lreturn type.long]))
-
-                  ... (at type.equivalence = type.double returnT)
-                  (unwrap_primitive _.dreturn type.double)))))))
-
-(def (method_dependencies archive method)
-  (-> Archive (/.Overriden_Method Synthesis) (Operation (Set unit.ID)))
-  (let [[_super _name _strict_fp? _annotations
-         _t_vars _this _arguments _return _exceptions
-         bodyS] method]
-    (cache/artifact.dependencies archive bodyS)))
-
-(def (anonymous_dependencies archive inputsTS overriden_methods)
-  (-> Archive (List Input) (List [(Environment Synthesis) (/.Overriden_Method Synthesis)])
-      (Operation (Set unit.ID)))
-  (do [! //////.monad]
-    [all_input_dependencies (monad.each ! (|>> product.right (cache/artifact.dependencies archive)) inputsTS)
-     all_closure_dependencies (|> overriden_methods
-                                  (list#each product.left)
-                                  list.together
-                                  (monad.each ! (cache/artifact.dependencies archive)))
-     all_method_dependencies (monad.each ! (|>> product.right (method_dependencies archive)) overriden_methods)]
-    (in (cache/artifact.all (all list#composite
-                                 all_input_dependencies
-                                 all_closure_dependencies
-                                 all_method_dependencies)))))
-
-(def (prepare_argument lux_register argumentT jvm_register)
-  (-> Register (Type Value) Register [Register (Bytecode Any)])
-  (when (type.primitive? argumentT)
-    {.#Left argumentT}
-    [(n.+ 1 jvm_register)
-     (if (n.= lux_register jvm_register)
-       (_#in [])
-       (all _.composite
-            (_.aload jvm_register)
-            (_.astore lux_register)))]
-    
-    {.#Right argumentT}
-    (template.let [(wrap_primitive   )
-                   [[(n.+  jvm_register)
-                     (all _.composite
-                          ( jvm_register)
-                          (///value.wrap )
-                          (_.astore lux_register))]]]
-      (`` (cond (,, (with_template [  ]
-                      [(at type.equivalence =  argumentT)
-                       (wrap_primitive   )]
-
-                      [1 _.iload type.boolean]
-                      [1 _.iload type.byte]
-                      [1 _.iload type.short]
-                      [1 _.iload type.int]
-                      [1 _.iload type.char]
-                      [1 _.fload type.float]
-                      [2 _.lload type.long]))
-
-                ... (at type.equivalence = type.double argumentT)
-                (wrap_primitive 2 _.dload type.double))))))
-
-(def .public (prepare_arguments offset types)
-  (-> Nat (List (Type Value)) (Bytecode Any))
-  (|> types
-      list.enumeration
-      (list#mix (function (_ [lux_register type] [jvm_register before])
-                  (let [[jvm_register' after] (prepare_argument (n.+ offset lux_register) type jvm_register)]
-                    [jvm_register'
-                     (all _.composite
-                          before
-                          after)]))
-                (is [Register (Bytecode Any)]
-                    [offset
-                     (_#in [])]))
-      product.right))
-
-(def (normalized_method global_mapping [environment method])
-  (-> Mapping [(Environment Synthesis) (/.Overriden_Method Synthesis)]
-      (/.Overriden_Method Synthesis))
-  (let [[ownerT name strict_fp? annotations vars self_name arguments returnT exceptionsT body] method
-        local_mapping (|> environment
-                          list.enumeration
-                          (list#each (function (_ [foreign_id capture])
-                                       [(synthesis.variable/foreign location.dummy foreign_id)
-                                        (|> global_mapping
-                                            (dictionary.value capture)
-                                            maybe.trusted)]))
-                          (dictionary.of_list synthesis.hash))]
-    [ownerT name
-     strict_fp? annotations vars
-     self_name arguments returnT exceptionsT
-     (normalize_method_body local_mapping body)]))
-
-(def (total_environment overriden_methods)
-  (-> (List [(Environment Synthesis) (/.Overriden_Method Synthesis)])
-      (List Synthesis))
-  (|> overriden_methods
-      ... Get all the environments.
-      (list#each product.left)
-      ... Combine them.
-      list#conjoint
-      ... Remove duplicates.
-      (set.of_list synthesis.hash)
-      set.list))
-
-(def (global_mapping total_environment)
-  (-> (List Synthesis) Mapping)
-  (|> total_environment
-      ... Give them names as "foreign" variables.
-      list.enumeration
-      (list#each (function (_ [id capture])
-                   [capture {//////variable.#Foreign id}]))
-      (dictionary.of_list synthesis.hash)))
-
-(def (method_definition phase archive artifact_id method)
-  (-> Phase Archive artifact.ID (/.Overriden_Method Synthesis) (Operation (Resource Method)))
-  (let [[ownerT name strict_fp? annotations vars self_name arguments returnT exceptionsT bodyS] method]
-    (do //////.monad
-      [bodyG (//////generation.with_context artifact_id
-               (phase archive bodyS))
-       .let [argumentsT (list#each product.right arguments)
-             methodT (type.method [vars argumentsT returnT exceptionsT])]]
-      (in (method.method (all modifier#composite
-                              method.public
-                              method.final
-                              (if strict_fp?
-                                method.strict
-                                modifier#identity))
-            name
-            true methodT
-            (list)
-            {.#Some (all _.composite
-                         (prepare_arguments 1 argumentsT)
-                         bodyG
-                         (returnG returnT))})))))
-
-(def class::anonymous
-  Handler
-  (..custom
-   [(all <>.and
-         ..class
-         (.tuple (<>.some ..class))
-         (.tuple (<>.some ..input))
-         (.tuple (<>.some ..overriden_method_definition)))
-    (function (_ generate archive [super_class
-                                   super_interfaces
-                                   inputsTS
-                                   overriden_methods])
-      (do [! //////.monad]
-        [all_dependencies (anonymous_dependencies archive inputsTS overriden_methods)
-         [context _] (//////generation.with_new_context archive all_dependencies (in []))
-         .let [[module_id artifact_id] context
-               anonymous_class_name (///runtime.class_name context)
-               class (type.class anonymous_class_name (list))
-               total_environment (..total_environment overriden_methods)
-               global_mapping (..global_mapping total_environment)]
-         inputsTI (monad.each ! (generate_input generate archive) inputsTS)
-         methods! (|> overriden_methods
-                      (list#each (normalized_method global_mapping))
-                      (monad.each ! (method_definition generate archive artifact_id)))
-         bytecode (<| (at ! each (\\format.result class.format))
-                      //////.lifted
-                      (class.class version.v6_0 (all modifier#composite class.public class.final)
-                        (name.internal anonymous_class_name)
-                        {.#None}
-                        (name.internal (..reflection super_class))
-                        (list#each (|>> ..reflection name.internal) super_interfaces)
-                        (foreign.variables total_environment)
-                        (list.partial (..with_anonymous_init class total_environment super_class inputsTI)
-                                      methods!)
-                        (list)))
-         .let [artifact [anonymous_class_name bytecode]]
-         _ (//////generation.execute! artifact)
-         _ (//////generation.save! artifact_id {.#None} artifact)]
-        (anonymous_instance generate archive class total_environment inputsTI)))]))
-
-(def with_class_extensions
-  (-> Bundle Bundle)
-  (dictionary.has (%.format "jvm_" "class_" "anonymous" "#" "|generation") class::anonymous))
-
-(def .public bundle
-  Bundle
-  (<| with_conversion_extensions
-      with_int_extensions
-      with_long_extensions
-      with_float_extensions
-      with_double_extensions
-      with_char_extensions
-      with_array_extensions
-      with_object_extensions
-      with_member_extensions
-      with_class_extensions
-      extension.empty))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua.lux
deleted file mode 100644
index 35d3f07b8..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua.lux
+++ /dev/null
@@ -1,18 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [lua
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (dictionary.composite /common.bundle
-                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua/common.lux
deleted file mode 100644
index 4038262df..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua/common.lux
+++ /dev/null
@@ -1,226 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    ["[0]" text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["f" frac]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    ["@" target (.only)
-     ["_" lua (.only Expression Statement)]]]]]
- ["[0]" ////
-  ["/" bundle]
-  ["/[1]" //
-   ["[0]" extension]
-   [generation
-    [extension (.only Nullary Unary Binary Trinary
-                      nullary unary binary trinary)]
-    ["//" lua
-     ["[1][0]" runtime (.only Operation Phase Phase! Handler Bundle Generator)]
-     ["[1][0]" primitive]
-     ["[1][0]" structure]
-     ["[1][0]" reference]
-     ["[1][0]" when]
-     ["[1][0]" loop]
-     ["[1][0]" function]]]
-   [//
-    ["[0]" generation]
-    ["[0]" synthesis (.only %synthesis)
-     ["" \\parser (.only Parser)]]
-    [///
-     ["[1]" phase (.use "[1]#[0]" monad)]]]]])
-
-(def !unary
-  (template (_ function)
-    [(|>> list _.apply (|> (_.var function)))]))
-
-(def .public (statement expression archive synthesis)
-  Phase!
-  (when synthesis
-    ... TODO: Get rid of this ASAP
-    {synthesis.#Extension [.prelude "when_char#|generation"] parameters}
-    (do /////.monad
-      [body (expression archive synthesis)]
-      (in (as Statement body)))
-    
-    (^.with_template []
-      [( value)
-       (/////#each _.return (expression archive synthesis))])
-    ([synthesis.bit]
-     [synthesis.i64]
-     [synthesis.f64]
-     [synthesis.text]
-     [synthesis.variant]
-     [synthesis.tuple]
-     [synthesis.branch/get]
-     [synthesis.function/apply])
-
-    (^.with_template []
-      [{ value}
-       (/////#each _.return (expression archive synthesis))])
-    ([synthesis.#Reference]
-     [synthesis.#Extension])
-
-    (synthesis.branch/when when)
-    (//when.when! statement expression archive when)
-
-    (synthesis.branch/exec it)
-    (//when.exec! statement expression archive it)
-
-    (synthesis.branch/let let)
-    (//when.let! statement expression archive let)
-
-    (synthesis.branch/if if)
-    (//when.if! statement expression archive if)
-
-    (synthesis.loop/scope scope)
-    (do /////.monad
-      [[inits scope!] (//loop.scope! statement expression archive false scope)]
-      (in scope!))
-
-    (synthesis.loop/again updates)
-    (//loop.again! statement expression archive updates)
-
-    (synthesis.function/abstraction abstraction)
-    (/////#each _.return (//function.function statement expression archive abstraction))
-    ))
-
-... TODO: Get rid of this ASAP
-(def lux::syntax_char_case!
-  (..custom [(all <>.and
-                  .any
-                  .any
-                  (<>.some (.tuple (all <>.and
-                                           (.tuple (<>.many .i64))
-                                           .any))))
-             (function (_ extension_name phase archive [input else conditionals])
-               (|> conditionals
-                   (list#each (function (_ [chars branch])
-                                {synthesis.#Seq (when chars
-                                                  {.#End}
-                                                  {synthesis.#Pop}
-                                                  
-                                                  {.#Item head tail}
-                                                  {synthesis.#I64_Fork
-                                                   [head {synthesis.#Pop}]
-                                                   (list#each (function (_ char)
-                                                                [char {synthesis.#Pop}])
-                                                              tail)})
-                                                {synthesis.#Then branch}}))
-                   list.reversed
-                   (list#mix (function (_ pre post)
-                               {synthesis.#Alt pre post})
-                             {synthesis.#Then else})
-                   [input]
-                   (//when.when! statement phase archive)
-                   (at /////.monad each (|>> (as Expression)))))]))
-
-(def lux_procs
-  Bundle
-  (|> /.empty
-      (/.install "syntax char case!" lux::syntax_char_case!)
-      (/.install "is" (binary (product.uncurried _.=)))
-      (/.install "try" (unary //runtime.lux//try))))
-
-(def i64_procs
-  Bundle
-  (<| (/.prefix "i64")
-      (|> /.empty
-          (/.install "and" (binary (product.uncurried _.bit_and)))
-          (/.install "or" (binary (product.uncurried _.bit_or)))
-          (/.install "xor" (binary (product.uncurried _.bit_xor)))
-          (/.install "left-shift" (binary (product.uncurried //runtime.i64//left_shifted)))
-          (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shifted)))
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "+" (binary (product.uncurried _.+)))
-          (/.install "-" (binary (product.uncurried _.-)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "*" (binary (product.uncurried _.*)))
-          (/.install "/" (binary (product.uncurried //runtime.i64//division)))
-          (/.install "%" (binary (product.uncurried //runtime.i64//remainder)))
-          (/.install "f64" (unary (_./ (_.float +1.0))))
-          (/.install "char" (unary (function (_ it) (_.apply (list it) (_.var "utf8.char")))))
-          )))
-
-(def f64//decode
-  (Unary Expression)
-  (|>> list _.apply (|> (_.var "tonumber")) _.return (_.closure (list)) //runtime.lux//try))
-
-(def f64_procs
-  Bundle
-  (<| (/.prefix "f64")
-      (|> /.empty
-          (/.install "+" (binary (product.uncurried _.+)))
-          (/.install "-" (binary (product.uncurried _.-)))
-          (/.install "*" (binary (product.uncurried _.*)))
-          (/.install "/" (binary (product.uncurried _./)))
-          (/.install "%" (binary (product.uncurried (function (_ parameter subject) (_.apply (list subject parameter) (_.var "math.fmod"))))))
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "i64" (unary (!unary "math.floor")))
-          (/.install "encode" (unary (function (_ it) (_.apply (list (_.string "%.17g") it) (_.var "string.format")))))
-          (/.install "decode" (unary ..f64//decode)))))
-
-(def (text//char [paramO subjectO])
-  (Binary Expression)
-  (//runtime.text//char (_.+ (_.int +1) paramO) subjectO))
-
-(def (text//clip [paramO extraO subjectO])
-  (Trinary Expression)
-  (//runtime.text//clip subjectO paramO extraO))
-
-(def (text//index [startO partO textO])
-  (Trinary Expression)
-  (//runtime.text//index textO partO startO))
-
-(def text_procs
-  Bundle
-  (<| (/.prefix "text")
-      (|> /.empty
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "concat" (binary (product.uncurried (function.flipped _.concat))))
-          (/.install "index" (trinary ..text//index))
-          (/.install "size" (unary //runtime.text//size))
-          ... TODO: Use version below once the Lua compiler becomes self-hosted.
-          ... (/.install "size" (unary (for @.lua (!unary "utf8.len")
-          ...                               (!unary "string.len"))))
-          (/.install "char" (binary ..text//char))
-          (/.install "clip" (trinary ..text//clip))
-          )))
-
-(def (io//log! messageO)
-  (Unary Expression)
-  (|> (_.apply (list messageO) (_.var "print"))
-      (_.or //runtime.unit)))
-
-(def io_procs
-  Bundle
-  (<| (/.prefix "io")
-      (|> /.empty
-          (/.install "log" (unary ..io//log!))
-          (/.install "error" (unary (!unary "error"))))))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lux")
-      (|> lux_procs
-          (dictionary.composite i64_procs)
-          (dictionary.composite f64_procs)
-          (dictionary.composite text_procs)
-          (dictionary.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua/host.lux
deleted file mode 100644
index 5072f1488..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/lua/host.lux
+++ /dev/null
@@ -1,202 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list]]
-    [text
-     ["%" \\format (.only format)]]]
-   [meta
-    [target
-     ["_" lua (.only Var Expression)]]]]]
- ["[0]" //
-  ["[1][0]" common (.only custom)]
-  ["//[1]" ///
-   ["/" bundle]
-   ["/[1]" //
-    ["[0]" extension]
-    [generation
-     [extension (.only Nullary Unary Binary Trinary
-                       nullary unary binary trinary)]
-     ["[0]" reference]
-     ["//" lua
-      ["[1][0]" runtime (.only Operation Phase Handler Bundle
-                               with_vars)]]]
-    ["/[1]" //
-     ["[0]" generation]
-     [synthesis
-      ["" \\parser (.only Parser)]]
-     ["//[1]" ///
-      ["[1][0]" phase]]]]]])
-
-(def array::new
-  (Unary Expression)
-  (|>> ["n"] list _.table))
-
-(def array::length
-  (Unary Expression)
-  (_.the "n"))
-
-(def (array::read [indexG arrayG])
-  (Binary Expression)
-  (_.item (_.+ (_.int +1) indexG) arrayG))
-
-(def (array::write [indexG valueG arrayG])
-  (Trinary Expression)
-  (//runtime.array//write indexG valueG arrayG))
-
-(def (array::delete [indexG arrayG])
-  (Binary Expression)
-  (//runtime.array//write indexG _.nil arrayG))
-
-(def array
-  Bundle
-  (<| (/.prefix "array")
-      (|> /.empty
-          (/.install "new" (unary array::new))
-          (/.install "length" (unary array::length))
-          (/.install "read" (binary array::read))
-          (/.install "write" (trinary array::write))
-          (/.install "delete" (binary array::delete))
-          )))
-
-(def object::get
-  Handler
-  (custom
-   [(all <>.and .text .any)
-    (function (_ extension phase archive [fieldS objectS])
-      (do ////////phase.monad
-        [objectG (phase archive objectS)]
-        (in (_.the fieldS objectG))))]))
-
-(def object::do
-  Handler
-  (custom
-   [(all <>.and .text .any (<>.some .any))
-    (function (_ extension phase archive [methodS objectS inputsS])
-      (do [! ////////phase.monad]
-        [objectG (phase archive objectS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.do methodS inputsG objectG))))]))
-
-(with_template [  ]
-  [(def  (Nullary Expression) (function.constant ))
-   (def  (Unary Expression) (_.= ))]
-
-  [object::nil object::nil? _.nil]
-  )
-
-(def object
-  Bundle
-  (<| (/.prefix "object")
-      (|> /.empty
-          (/.install "get" object::get)
-          (/.install "do" object::do)
-          (/.install "nil" (nullary object::nil))
-          (/.install "nil?" (unary object::nil?))
-          )))
-
-(def $input
-  (_.var "input"))
-
-(def utf8::encode
-  (custom
-   [.any
-    (function (_ extension phase archive inputS)
-      (do [! ////////phase.monad]
-        [inputG (phase archive inputS)]
-        (in (<| (_.apply (list inputG))
-                (_.closure (list $input))
-                (_.return (_.apply (list (_.apply (list $input (_.int +1) (_.length $input))
-                                                  (_.var "string.byte")))
-                                   (_.var "table.pack")))))))]))
-
-(def utf8::decode
-  (custom
-   [.any
-    (function (_ extension phase archive inputS)
-      (do [! ////////phase.monad]
-        [inputG (phase archive inputS)]
-        (in (_.apply (list (_.apply (list inputG)
-                                    (_.var "table.unpack")))
-                     (_.var "string.char")))))]))
-
-(def utf8
-  Bundle
-  (<| (/.prefix "utf8")
-      (|> /.empty
-          (/.install "encode" utf8::encode)
-          (/.install "decode" utf8::decode)
-          )))
-
-(def lua::constant
-  (custom
-   [.text
-    (function (_ extension phase archive name)
-      (at ////////phase.monad in (_.var name)))]))
-
-(def lua::apply
-  (custom
-   [(all <>.and .any (<>.some .any))
-    (function (_ extension phase archive [abstractionS inputsS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.apply inputsG abstractionG))))]))
-
-(def lua::power
-  (custom
-   [(all <>.and .any .any)
-    (function (_ extension phase archive [powerS baseS])
-      (do [! ////////phase.monad]
-        [powerG (phase archive powerS)
-         baseG (phase archive baseS)]
-        (in (_.^ powerG baseG))))]))
-
-(def lua::import
-  (custom
-   [.text
-    (function (_ extension phase archive module)
-      (at ////////phase.monad in
-          (_.require/1 (_.string module))))]))
-
-(def lua::function
-  (custom
-   [(all <>.and .i64 .any)
-    (function (_ extension phase archive [arity abstractionS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         .let [variable (is (-> Text (Operation Var))
-                            (|>> generation.symbol
-                                 (at ! each _.var)))]
-         g!inputs (monad.each ! (function (_ _)
-                                  (variable "input"))
-                              (list.repeated (.nat arity) []))]
-        (in (<| (_.closure g!inputs)
-                _.return
-                (when (.nat arity)
-                  0 (_.apply (list //runtime.unit) abstractionG)
-                  1 (_.apply g!inputs abstractionG)
-                  _ (_.apply (list (_.array g!inputs)) abstractionG))))))]))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lua")
-      (|> /.empty
-          (dictionary.composite ..array)
-          (dictionary.composite ..object)
-          (dictionary.composite ..utf8)
-
-          (/.install "constant" lua::constant)
-          (/.install "apply" lua::apply)
-          (/.install "power" lua::power)
-          (/.install "import" lua::import)
-          (/.install "function" lua::function)
-          (/.install "script universe" (nullary (function.constant (_.boolean reference.universe))))
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php.lux
deleted file mode 100644
index 2a76ad856..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php.lux
+++ /dev/null
@@ -1,18 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [php
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (dictionary.composite /common.bundle
-                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php/common.lux
deleted file mode 100644
index 0fb91a5d3..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php/common.lux
+++ /dev/null
@@ -1,181 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" dictionary]
-     ["[0]" set]
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["f" frac]]]
-   [meta
-    ["@" target (.only)
-     ["_" php (.only Expression)]]]]]
- ["[0]" ////
-  ["/" bundle]
-  ["/[1]" //
-   ["[0]" extension]
-   [generation
-    [extension (.only Nullary Unary Binary Trinary
-                      nullary unary binary trinary)]
-    ["[0]" reference]
-    ["//" php
-     ["[1][0]" runtime (.only Operation Phase Handler Bundle Generator)]
-     ["[1][0]" when]]]
-   [//
-    ["[0]" synthesis (.only %synthesis)
-     ["" \\parser (.only Parser)]]
-    ["[0]" generation]
-    [///
-     ["[1]" phase]]]]])
-
-(def !unary
-  (template (_ function)
-    (|>> list _.apply (|> (_.constant function)))))
-
-... TODO: Get rid of this ASAP
-(def lux::syntax_char_case!
-  (..custom [(all <>.and
-                  .any
-                  .any
-                  (<>.some (.tuple (all <>.and
-                                           (.tuple (<>.many .i64))
-                                           .any))))
-             (function (_ extension_name phase archive [input else conditionals])
-               (do [! /////.monad]
-                 [inputG (phase archive input)
-                  [[context_module context_artifact] elseG] (generation.with_new_context archive
-                                                              (phase archive else))
-                  @input (at ! each _.var (generation.symbol "input"))
-                  conditionalsG (is (Operation (List [Expression Expression]))
-                                    (monad.each ! (function (_ [chars branch])
-                                                    (do !
-                                                      [branchG (phase archive branch)]
-                                                      (in [(|> chars
-                                                               (list#each (|>> .int _.int (_.=== @input)))
-                                                               (list#mix (function (_ clause total)
-                                                                           (if (same? _.null total)
-                                                                             clause
-                                                                             (_.or clause total)))
-                                                                         _.null))
-                                                           branchG])))
-                                                conditionals))
-                  .let [foreigns (|> conditionals
-                                     (list#each (|>> product.right synthesis.path/then //when.dependencies))
-                                     (list.partial (//when.dependencies (synthesis.path/then else)))
-                                     list.together
-                                     (set.of_list _.hash)
-                                     set.list)
-                        @expression (_.constant (reference.artifact [context_module context_artifact]))
-                        declaration (_.define_function @expression (list.partial (_.parameter @input) (list#each _.reference foreigns))
-                                                       (list#mix (function (_ [test then] else)
-                                                                   (_.if test (_.return then) else))
-                                                                 (_.return elseG)
-                                                                 conditionalsG))]
-                  _ (generation.execute! declaration)
-                  _ (generation.save! context_artifact declaration)]
-                 (in (_.apply (list.partial inputG foreigns) @expression))))]))
-
-(def lux_procs
-  Bundle
-  (|> /.empty
-      (/.install "syntax char case!" lux::syntax_char_case!)
-      (/.install "is" (binary (product.uncurried _.===)))
-      (/.install "try" (unary //runtime.lux//try))
-      ))
-
-(def (left_shifted [parameter subject])
-  (Binary Expression)
-  (_.bit_shl (_.% (_.int +64) parameter) subject))
-
-(def i64_procs
-  Bundle
-  (<| (/.prefix "i64")
-      (|> /.empty
-          (/.install "and" (binary (product.uncurried _.bit_and)))
-          (/.install "or" (binary (product.uncurried _.bit_or)))
-          (/.install "xor" (binary (product.uncurried _.bit_xor)))
-          (/.install "left-shift" (binary ..left_shifted))
-          (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shifted)))
-          (/.install "=" (binary (product.uncurried _.==)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "+" (binary (product.uncurried //runtime.i64//+)))
-          (/.install "-" (binary (product.uncurried //runtime.i64//-)))
-          (/.install "*" (binary (product.uncurried //runtime.i64//*)))
-          (/.install "/" (binary (function (_ [parameter subject])
-                                   (_.intdiv/2 [subject parameter]))))
-          (/.install "%" (binary (product.uncurried _.%)))
-          (/.install "f64" (unary (_./ (_.float +1.0))))
-          (/.install "char" (unary //runtime.i64//char))
-          )))
-
-(def (f64//% [parameter subject])
-  (Binary Expression)
-  (_.fmod/2 [subject parameter]))
-
-(def (f64//encode subject)
-  (Unary Expression)
-  (_.number_format/2 [subject (_.int +17)]))
-
-(def f64_procs
-  Bundle
-  (<| (/.prefix "f64")
-      (|> /.empty
-          (/.install "=" (binary (product.uncurried _.==)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "+" (binary (product.uncurried _.+)))
-          (/.install "-" (binary (product.uncurried _.-)))
-          (/.install "*" (binary (product.uncurried _.*)))
-          (/.install "/" (binary (product.uncurried _./)))
-          (/.install "%" (binary ..f64//%))
-          (/.install "i64" (unary _.intval/1))
-          (/.install "encode" (unary ..f64//encode))
-          (/.install "decode" (unary //runtime.f64//decode)))))
-
-(def (text//clip [paramO extraO subjectO])
-  (Trinary Expression)
-  (//runtime.text//clip paramO extraO subjectO))
-
-(def (text//index [startO partO textO])
-  (Trinary Expression)
-  (//runtime.text//index textO partO startO))
-
-(def text_procs
-  Bundle
-  (<| (/.prefix "text")
-      (|> /.empty
-          (/.install "=" (binary (product.uncurried _.==)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "concat" (binary (product.uncurried (function.flipped _.concat))))
-          (/.install "index" (trinary ..text//index))
-          (/.install "size" (unary //runtime.text//size))
-          (/.install "char" (binary (product.uncurried //runtime.text//char)))
-          (/.install "clip" (trinary ..text//clip))
-          )))
-
-(def io_procs
-  Bundle
-  (<| (/.prefix "io")
-      (|> /.empty
-          (/.install "log" (unary //runtime.io//log!))
-          (/.install "error" (unary //runtime.io//throw!)))))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lux")
-      (|> /.empty
-          (dictionary.composite lux_procs)
-          (dictionary.composite i64_procs)
-          (dictionary.composite f64_procs)
-          (dictionary.composite text_procs)
-          (dictionary.composite io_procs))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php/host.lux
deleted file mode 100644
index 855f5754d..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/php/host.lux
+++ /dev/null
@@ -1,145 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list]]
-    [text
-     ["%" \\format (.only format)]]]
-   [meta
-    [target
-     ["_" php (.only Var Expression)]]]]]
- ["[0]" //
-  ["[1][0]" common (.only custom)]
-  ["//[1]" ///
-   ["/" bundle]
-   ["/[1]" //
-    ["[0]" extension]
-    [generation
-     [extension (.only Nullary Unary Binary Trinary
-                       nullary unary binary trinary)]
-     ["[0]" reference]
-     ["//" php
-      ["[1][0]" runtime (.only Operation Phase Handler Bundle
-                               with_vars)]]]
-    ["/[1]" //
-     ["[0]" generation]
-     [synthesis
-      ["" \\parser (.only Parser)]]
-     ["//[1]" ///
-      ["[1][0]" phase]]]]]])
-
-(def (array::new size)
-  (Unary Expression)
-  (//runtime.tuple//make size (_.array_fill/3 [(_.int +0) size _.null])))
-
-(def (array::read [indexG arrayG])
-  (Binary Expression)
-  (_.item indexG arrayG))
-
-(def (array::write [indexG valueG arrayG])
-  (Trinary Expression)
-  (//runtime.array//write indexG valueG arrayG))
-
-(def (array::delete [indexG arrayG])
-  (Binary Expression)
-  (//runtime.array//write indexG _.null arrayG))
-
-(def array
-  Bundle
-  (<| (/.prefix "array")
-      (|> /.empty
-          (/.install "new" (unary array::new))
-          (/.install "length" (unary //runtime.array//length))
-          (/.install "read" (binary array::read))
-          (/.install "write" (trinary array::write))
-          (/.install "delete" (binary array::delete))
-          )))
-
-(def object::new
-  (custom
-   [(all <>.and .text (<>.some .any))
-    (function (_ extension phase archive [constructor inputsS])
-      (do [! ////////phase.monad]
-        [inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.new (_.constant constructor) inputsG))))]))
-
-(def object::get
-  Handler
-  (custom
-   [(all <>.and .text .any)
-    (function (_ extension phase archive [fieldS objectS])
-      (do ////////phase.monad
-        [objectG (phase archive objectS)]
-        (in (_.the fieldS objectG))))]))
-
-(def object::do
-  Handler
-  (custom
-   [(all <>.and .text .any (<>.some .any))
-    (function (_ extension phase archive [methodS objectS inputsS])
-      (do [! ////////phase.monad]
-        [objectG (phase archive objectS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.do methodS inputsG objectG))))]))
-
-(with_template [  ]
-  [(def  (Nullary Expression) (function.constant ))
-   (def  (Unary Expression) (_.=== ))]
-
-  [object::null object::null? _.null]
-  )
-
-(def object
-  Bundle
-  (<| (/.prefix "object")
-      (|> /.empty
-          (/.install "new" object::new)
-          (/.install "get" object::get)
-          (/.install "do" object::do)
-          (/.install "null" (nullary object::null))
-          (/.install "null?" (unary object::null?))
-          )))
-
-(def php::constant
-  (custom
-   [.text
-    (function (_ extension phase archive name)
-      (at ////////phase.monad in (_.constant name)))]))
-
-(def php::apply
-  (custom
-   [(all <>.and .any (<>.some .any))
-    (function (_ extension phase archive [abstractionS inputsS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.apply inputsG abstractionG))))]))
-
-(def php::pack
-  (custom
-   [(all <>.and .any .any)
-    (function (_ extension phase archive [formatS dataS])
-      (do [! ////////phase.monad]
-        [formatG (phase archive formatS)
-         dataG (phase archive dataS)]
-        (in (_.pack/2 [formatG (_.splat dataG)]))))]))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "php")
-      (|> /.empty
-          (dictionary.composite ..array)
-          (dictionary.composite ..object)
-
-          (/.install "constant" php::constant)
-          (/.install "apply" php::apply)
-          (/.install "pack" php::pack)
-          (/.install "script universe" (nullary (function.constant (_.bool reference.universe))))
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python.lux
deleted file mode 100644
index 8adf1ec86..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python.lux
+++ /dev/null
@@ -1,18 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [python
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (dictionary.composite /common.bundle
-                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python/common.lux
deleted file mode 100644
index c03a52bc2..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python/common.lux
+++ /dev/null
@@ -1,233 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["f" frac]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" python (.only Expression Statement)]]]]]
- ["[0]" ////
-  ["/" bundle]
-  ["/[1]" //
-   ["[0]" extension]
-   [generation
-    ["[0]" reference]
-    [extension (.only Nullary Unary Binary Trinary
-                      nullary unary binary trinary)]
-    ["//" python
-     ["[1][0]" runtime (.only Operation Phase Phase! Handler Bundle Generator)]
-     ["[1][0]" primitive]
-     ["[1][0]" structure]
-     ["[1][0]" reference]
-     ["[1][0]" function]
-     ["[1][0]" when]
-     ["[1][0]" loop]]]
-   [//
-    [analysis (.only)]
-    ["[0]" generation]
-    ["[0]" synthesis (.only %synthesis)
-     ["<[1]>" \\parser (.only Parser)]]
-    [///
-     ["[1]" phase (.use "[1]#[0]" monad)]]]]])
-
-(def .public (statement expression archive synthesis)
-  Phase!
-  (when synthesis
-    ... TODO: Get rid of this ASAP
-    {synthesis.#Extension [.prelude "when_char#|generation"] parameters}
-    (do /////.monad
-      [body (expression archive synthesis)]
-      (in (as (Statement Any) body)))
-    
-    (^.with_template []
-      [( value)
-       (/////#each _.return (expression archive synthesis))])
-    ([synthesis.bit]
-     [synthesis.i64]
-     [synthesis.f64]
-     [synthesis.text]
-     [synthesis.variant]
-     [synthesis.tuple]
-     [synthesis.branch/get]
-     [synthesis.function/apply])
-
-    (^.with_template []
-      [{ value}
-       (/////#each _.return (expression archive synthesis))])
-    ([synthesis.#Reference]
-     [synthesis.#Extension])
-
-    (synthesis.branch/when when)
-    (//when.when! false statement expression archive when)
-
-    (^.with_template [ ]
-      [( value)
-       ( statement expression archive value)])
-    ([synthesis.branch/exec //when.exec!]
-     [synthesis.branch/let //when.let!]
-     [synthesis.branch/if //when.if!]
-     [synthesis.loop/scope //loop.scope!]
-     [synthesis.loop/again //loop.again!])
-
-    (synthesis.function/abstraction abstraction)
-    (/////#each _.return (//function.function statement expression archive abstraction))
-    ))
-
-... TODO: Get rid of this ASAP
-(def lux::syntax_char_case!
-  (..custom [(all <>.and
-                  .any
-                  .any
-                  (<>.some (.tuple (all <>.and
-                                                   (.tuple (<>.many .i64))
-                                                   .any))))
-             (function (_ extension_name phase archive [input else conditionals])
-               (do [! /////.monad]
-                 [inputG (phase archive input)
-                  else! (..statement phase archive else)
-                  @input (at ! each _.var (generation.symbol "input"))
-                  conditionals! (is (Operation (List [(Expression Any)
-                                                      (Statement Any)]))
-                                    (monad.each ! (function (_ [chars branch])
-                                                    (do !
-                                                      [branch! (..statement phase archive branch)]
-                                                      (in [(|> chars
-                                                               (list#each (|>> .int _.int (_.= @input)))
-                                                               (list#mix (function (_ clause total)
-                                                                           (if (same? _.none total)
-                                                                             clause
-                                                                             (_.or clause total)))
-                                                                         _.none))
-                                                           branch!])))
-                                                conditionals))
-                  ... .let [dependencies (//case.dependencies (list#mix (function (_ right left)
-                  ...                                                      (synthesis.path/seq left right))
-                  ...                                                    (synthesis.path/then input)
-                  ...                                                    {.#Item (synthesis.path/then else)
-                  ...                                                     (list#each (|>> product.right
-                  ...                                                                     synthesis.path/then)
-                  ...                                                                conditionals)}))
-                  ...       @closure (_.var (reference.artifact artifact_id))
-                  ...       closure (_.def @closure dependencies
-                  ...                      (all _.then
-                  ...                          (_.set (list @input) inputG)
-                  ...                          (list#mix (function (_ [test then!] else!)
-                  ...                                       (_.if test then! else!))
-                  ...                                     else!
-                  ...                                     conditionals!)))]
-                  ... _ (generation.execute! closure)
-                  ... _ (generation.save! (product.right artifact_id) {.#None} closure)
-                  ]
-                 ... (in (_.apply @closure dependencies))
-                 (in (<| (as (Expression Any))
-                         (is (Statement Any))
-                         (all _.then
-                              (_.set (list @input) inputG)
-                              (list#mix (function (_ [test then!] else!)
-                                          (_.if test then! else!))
-                                        else!
-                                        conditionals!))))))]))
-
-(def lux_procs
-  Bundle
-  (|> /.empty
-      (/.install "syntax char case!" lux::syntax_char_case!)
-      (/.install "is" (binary (product.uncurried _.is)))
-      (/.install "try" (unary //runtime.lux::try))))
-
-(def (capped operation parameter subject)
-  (-> (-> (Expression Any) (Expression Any) (Expression Any))
-      (-> (Expression Any) (Expression Any) (Expression Any)))
-  (//runtime.i64::64 (operation parameter subject)))
-
-(def i64_procs
-  Bundle
-  (<| (/.prefix "i64")
-      (|> /.empty
-          (/.install "and" (binary (product.uncurried //runtime.i64::and)))
-          (/.install "or" (binary (product.uncurried //runtime.i64::or)))
-          (/.install "xor" (binary (product.uncurried //runtime.i64::xor)))
-          (/.install "left-shift" (binary (product.uncurried //runtime.i64::left_shifted)))
-          (/.install "right-shift" (binary (product.uncurried //runtime.i64::right_shifted)))
-
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "+" (binary (product.uncurried (..capped _.+))))
-          (/.install "-" (binary (product.uncurried (..capped _.-))))
-          (/.install "*" (binary (product.uncurried (..capped _.*))))
-          (/.install "/" (binary (product.uncurried //runtime.i64#/)))
-          (/.install "%" (binary (product.uncurried //runtime.i64::remainder)))
-          (/.install "f64" (unary _.float/1))
-          (/.install "char" (unary //runtime.i64::char))
-          )))
-
-(def f64_procs
-  Bundle
-  (<| (/.prefix "f64")
-      (|> /.empty
-          (/.install "+" (binary (product.uncurried _.+)))
-          (/.install "-" (binary (product.uncurried _.-)))
-          (/.install "*" (binary (product.uncurried _.*)))
-          (/.install "/" (binary (product.uncurried //runtime.f64::/)))
-          (/.install "%" (binary (function (_ [parameter subject])
-                                   (|> (_.__import__/1 (_.unicode "math"))
-                                       (_.do "fmod" (list subject parameter))))))
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "i64" (unary _.int/1))
-          (/.install "encode" (unary _.repr/1))
-          (/.install "decode" (unary //runtime.f64::decode)))))
-
-(def (text::clip [paramO extraO subjectO])
-  (Trinary (Expression Any))
-  (//runtime.text::clip paramO extraO subjectO))
-
-(def (text::index [startO partO textO])
-  (Trinary (Expression Any))
-  (//runtime.text::index startO partO textO))
-
-(def text_procs
-  Bundle
-  (<| (/.prefix "text")
-      (|> /.empty
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "concat" (binary (product.uncurried (function.flipped _.+))))
-          (/.install "index" (trinary ..text::index))
-          (/.install "size" (unary _.len/1))
-          (/.install "char" (binary (product.uncurried //runtime.text::char)))
-          (/.install "clip" (trinary ..text::clip))
-          )))
-
-(def io_procs
-  Bundle
-  (<| (/.prefix "io")
-      (|> /.empty
-          (/.install "log" (unary //runtime.io::log!))
-          (/.install "error" (unary //runtime.io::throw!)))))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lux")
-      (|> lux_procs
-          (dictionary.composite i64_procs)
-          (dictionary.composite f64_procs)
-          (dictionary.composite text_procs)
-          (dictionary.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python/host.lux
deleted file mode 100644
index fde1ab399..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/python/host.lux
+++ /dev/null
@@ -1,169 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    ["[0]" text (.only)
-     ["%" \\format]]
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list]]]
-   [meta
-    [target
-     ["_" python (.only Expression SVar)]]]]]
- ["[0]" //
-  ["[1][0]" common (.only custom)]
-  ["//[1]" ///
-   ["/" bundle]
-   ["/[1]" //
-    ["[0]" extension]
-    [generation
-     [extension (.only Nullary Unary Binary Trinary
-                       nullary unary binary trinary)]
-     ["//" python
-      ["[1][0]" runtime (.only Operation Phase Handler Bundle
-                               with_vars)]]]
-    ["/[1]" //
-     ["[0]" generation]
-     [synthesis
-      ["" \\parser (.only Parser)]]
-     ["//[1]" ///
-      ["[1][0]" phase]]]]]])
-
-(def (array::new size)
-  (Unary (Expression Any))
-  (|> (list _.none)
-      _.list
-      (_.* size)))
-
-(def array::length
-  (Unary (Expression Any))
-  (|>> _.len/1 //runtime.i64::64))
-
-(def (array::read [indexG arrayG])
-  (Binary (Expression Any))
-  (_.item indexG arrayG))
-
-(def (array::write [indexG valueG arrayG])
-  (Trinary (Expression Any))
-  (//runtime.array::write indexG valueG arrayG))
-
-(def (array::delete [indexG arrayG])
-  (Binary (Expression Any))
-  (//runtime.array::write indexG _.none arrayG))
-
-(def array
-  Bundle
-  (<| (/.prefix "array")
-      (|> /.empty
-          (/.install "new" (unary array::new))
-          (/.install "length" (unary array::length))
-          (/.install "read" (binary array::read))
-          (/.install "write" (trinary array::write))
-          (/.install "delete" (binary array::delete))
-          )))
-
-(def object::get
-  Handler
-  (custom
-   [(all <>.and .text .any)
-    (function (_ extension phase archive [fieldS objectS])
-      (do ////////phase.monad
-        [objectG (phase archive objectS)]
-        (in (_.the fieldS objectG))))]))
-
-(def object::do
-  Handler
-  (custom
-   [(all <>.and .text .any (<>.some .any))
-    (function (_ extension phase archive [methodS objectS inputsS])
-      (do [! ////////phase.monad]
-        [objectG (phase archive objectS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.do methodS inputsG objectG))))]))
-
-(with_template [  ]
-  [(def  (Nullary (Expression Any)) (function.constant ))
-   (def  (Unary (Expression Any)) (_.= ))]
-
-  [object::none object::none? _.none]
-  )
-
-(def object
-  Bundle
-  (<| (/.prefix "object")
-      (|> /.empty
-          (/.install "get" object::get)
-          (/.install "do" object::do)
-          (/.install "none" (nullary object::none))
-          (/.install "none?" (unary object::none?))
-          )))
-
-(def python::constant
-  (custom
-   [.text
-    (function (_ extension phase archive name)
-      (do ////////phase.monad
-        []
-        (in (_.var name))))]))
-
-(def python::import
-  (custom
-   [.text
-    (function (_ extension phase archive module)
-      (do ////////phase.monad
-        []
-        (in (_.apply (list (_.string module)) (_.var "__import__")))))]))
-
-(def python::apply
-  (custom
-   [(all <>.and .any (<>.some .any))
-    (function (_ extension phase archive [abstractionS inputsS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.apply inputsG abstractionG))))]))
-
-(def python::function
-  (custom
-   [(all <>.and .i64 .any)
-    (function (_ extension phase archive [arity abstractionS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         .let [variable (is (-> Text (Operation SVar))
-                            (|>> generation.symbol
-                                 (at ! each _.var)))]
-         g!inputs (monad.each ! (function (_ _) (variable "input"))
-                              (list.repeated (.nat arity) []))]
-        (in (_.lambda g!inputs
-                      (when (.nat arity)
-                        0 (_.apply (list //runtime.unit) abstractionG)
-                        1 (_.apply g!inputs abstractionG)
-                        _ (_.apply (list (_.list g!inputs)) abstractionG))))))]))
-
-(def python::exec
-  (custom
-   [(all <>.and .any .any)
-    (function (_ extension phase archive [codeS globalsS])
-      (do [! ////////phase.monad]
-        [codeG (phase archive codeS)
-         globalsG (phase archive globalsS)]
-        (in (//runtime.lux::exec codeG globalsG))))]))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "python")
-      (|> /.empty
-          (dictionary.composite ..array)
-          (dictionary.composite ..object)
-
-          (/.install "constant" python::constant)
-          (/.install "import" python::import)
-          (/.install "apply" python::apply)
-          (/.install "function" python::function)
-          (/.install "exec" python::exec)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r.lux
deleted file mode 100644
index 1a9b58970..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r.lux
+++ /dev/null
@@ -1,18 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [r
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (dictionary.composite /common.bundle
-                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r/common.lux
deleted file mode 100644
index 0705afd3c..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r/common.lux
+++ /dev/null
@@ -1,168 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" dictionary]
-     ["[0]" set]
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["f" frac]]]
-   [meta
-    ["@" target (.only)
-     ["_" r (.only Expression)]]]]]
- ["[0]" ////
-  ["/" bundle]
-  ["/[1]" //
-   ["[0]" extension]
-   [generation
-    [extension (.only Nullary Unary Binary Trinary
-                      nullary unary binary trinary)]
-    ["[0]" reference]
-    ["//" r
-     ["[1][0]" runtime (.only Operation Phase Handler Bundle Generator)]
-     ["[1][0]" when]]]
-   [//
-    ["[0]" synthesis (.only %synthesis)
-     ["" \\parser (.only Parser)]]
-    ["[0]" generation]
-    [///
-     ["[1]" phase]]]]])
-
-... (def !unary
-...   (template (_ function)
-...     (|>> list _.apply (|> (_.constant function)))))
-
-... ... ... TODO: Get rid of this ASAP
-... ... (def lux::syntax_char_case!
-... ...   (..custom [(all <>.and
-... ...                  .any
-... ...                  .any
-... ...                  (<>.some (.tuple (all <>.and
-... ...                                          (.tuple (<>.many .i64))
-... ...                                          .any))))
-... ...              (function (_ extension_name phase archive [input else conditionals])
-... ...                (do [! /////.monad]
-... ...                  [@input (at ! each _.var (generation.symbol "input"))
-... ...                   inputG (phase archive input)
-... ...                   elseG (phase archive else)
-... ...                   conditionalsG (is (Operation (List [Expression Expression]))
-... ...                                    (monad.each ! (function (_ [chars branch])
-... ...                                                   (do !
-... ...                                                     [branchG (phase archive branch)]
-... ...                                                     (in [(|> chars (list#each (|>> .int _.int (_.=/2 @input))) _.or)
-... ...                                                            branchG])))
-... ...                                               conditionals))]
-... ...                  (in (_.let (list [@input inputG])
-... ...                          (list (list#mix (function (_ [test then] else)
-... ...                                             (_.if test then else))
-... ...                                           elseG
-... ...                                           conditionalsG))))))]))
-
-... (def lux_procs
-...   Bundle
-...   (|> /.empty
-...       ... (/.install "syntax char case!" lux::syntax_char_case!)
-...       (/.install "is" (binary _.eq/2))
-...       ... (/.install "try" (unary //runtime.lux//try))
-...       ))
-
-... ... (def (capped operation parameter subject)
-... ...   (-> (-> Expression Expression Expression)
-... ...       (-> Expression Expression Expression))
-... ...   (//runtime.i64//64 (operation parameter subject)))
-
-(def i64_procs
-  Bundle
-  (<| (/.prefix "i64")
-      (|> /.empty
-          ... (/.install "and" (binary _.logand/2))
-          ... (/.install "or" (binary _.logior/2))
-          ... (/.install "xor" (binary _.logxor/2))
-          ... (/.install "left-shift" (binary _.ash/2))
-          ... (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shift)))
-          ... (/.install "=" (binary _.=/2))
-          ... (/.install "<" (binary _.> //runtime.i64_low _.intToUtf8/1)))
-          )))
-
-... (def f64_procs
-...   Bundle
-...   (<| (/.prefix "f64")
-...       (|> /.empty
-...           ... (/.install "=" (binary (product.uncurried _.=/2)))
-...           ... (/.install "<" (binary (product.uncurried _. /.empty
-          ... (/.install "=" (binary _.string=/2))
-          ... (/.install "<" (binary (product.uncurried _.string /.empty
-...           (/.install "log" (unary ..io//log!))
-...           (/.install "error" (unary _.error/1))
-...           )))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lux")
-      (|> /.empty
-          ... (dictionary.composite lux_procs)
-          (dictionary.composite i64_procs)
-          ... (dictionary.composite f64_procs)
-          (dictionary.composite text_procs)
-          ... (dictionary.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r/host.lux
deleted file mode 100644
index 31a2e612f..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/r/host.lux
+++ /dev/null
@@ -1,42 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list]]
-    [text
-     ["%" \\format (.only format)]]]
-   [meta
-    [target
-     ["_" r (.only Var Expression)]]]]]
- ["[0]" //
-  ["[1][0]" common (.only custom)]
-  ["//[1]" ///
-   ["/" bundle]
-   ["/[1]" //
-    ["[0]" extension]
-    [generation
-     [extension (.only Nullary Unary Binary Trinary
-                       nullary unary binary trinary)]
-     ["[0]" reference]
-     ["//" r
-      ["[1][0]" runtime (.only Operation Phase Handler Bundle
-                               with_vars)]]]
-    ["/[1]" //
-     ["[0]" generation]
-     [synthesis
-      ["" \\parser (.only Parser)]]
-     ["//[1]" ///
-      ["[1][0]" phase]]]]]])
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "r")
-      (|> /.empty
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby.lux
deleted file mode 100644
index 3852ff8b4..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby.lux
+++ /dev/null
@@ -1,18 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [ruby
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (dictionary.composite /common.bundle
-                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby/common.lux
deleted file mode 100644
index 6d2087640..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby/common.lux
+++ /dev/null
@@ -1,230 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["f" frac]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" ruby (.only Expression Statement)]]]]]
- ["[0]" ////
-  ["/" bundle]
-  ["/[1]" //
-   ["[0]" extension]
-   [generation
-    [extension (.only Nullary Unary Binary Trinary
-                      nullary unary binary trinary)]
-    ["//" ruby
-     ["[1][0]" runtime (.only Operation Phase Phase! Handler Bundle Generator)]
-     ["[1][0]" primitive]
-     ["[1][0]" structure]
-     ["[1][0]" reference]
-     ["[1][0]" function]
-     ["[1][0]" when]
-     ["[1][0]" loop]]]
-   [//
-    ["[0]" generation]
-    ["[0]" synthesis (.only %synthesis)
-     ["" \\parser (.only Parser)]]
-    [///
-     ["[1]" phase (.use "[1]#[0]" monad)]]]]])
-
-(def .public (statement expression archive synthesis)
-  Phase!
-  (when synthesis
-    ... TODO: Get rid of this ASAP
-    {synthesis.#Extension [.prelude "when_char#|generation"] parameters}
-    (do /////.monad
-      [body (expression archive synthesis)]
-      (in (as Statement
-              body)))
-    
-    (^.with_template []
-      [( value)
-       (/////#each _.return (expression archive synthesis))])
-    ([synthesis.bit]
-     [synthesis.i64]
-     [synthesis.f64]
-     [synthesis.text]
-     [synthesis.variant]
-     [synthesis.tuple]
-     [synthesis.branch/get]
-     [synthesis.function/apply])
-
-    (^.with_template []
-      [{ value}
-       (/////#each _.return (expression archive synthesis))])
-    ([synthesis.#Reference]
-     [synthesis.#Extension])
-
-    (synthesis.branch/when when)
-    (//when.when! false statement expression archive when)
-
-    (^.with_template [ ]
-      [( value)
-       ( statement expression archive value)])
-    ([synthesis.branch/exec //when.exec!]
-     [synthesis.branch/let //when.let!]
-     [synthesis.branch/if //when.if!]
-     [synthesis.loop/scope //loop.scope!]
-     [synthesis.loop/again //loop.again!])
-
-    (synthesis.function/abstraction abstraction)
-    (/////#each _.return (//function.function statement expression archive abstraction))
-    ))
-
-... TODO: Get rid of this ASAP
-(def lux::syntax_char_case!
-  (..custom [(all <>.and
-                  .any
-                  .any
-                  (<>.some (.tuple (all <>.and
-                                           (.tuple (<>.many .i64))
-                                           .any))))
-             (function (_ extension_name phase archive [input else conditionals])
-               (do [! /////.monad]
-                 [inputG (phase archive input)
-                  else! (statement phase archive else)
-                  @input (at ! each _.local (generation.symbol "input"))
-                  conditionals! (is (Operation (List [Expression Statement]))
-                                    (monad.each ! (function (_ [chars branch])
-                                                    (do !
-                                                      [branch! (statement phase archive branch)]
-                                                      (in [(|> chars
-                                                               (list#each (|>> .int _.int (_.= @input)))
-                                                               (list#mix (function (_ clause total)
-                                                                           (if (same? _.nil total)
-                                                                             clause
-                                                                             (_.or clause total)))
-                                                                         _.nil))
-                                                           branch!])))
-                                                conditionals))
-                  ... .let [closure (_.lambda {.#None} (list @input)
-                  ...                         (list#mix (function (_ [test then] else)
-                  ...                                     (_.if test (_.return then) else))
-                  ...                                   (_.return else!)
-                  ...                                   conditionals!))]
-                  ]
-                 ... (in (_.apply_lambda (list inputG) closure))
-                 (in (<| (as Expression)
-                         (is Statement)
-                         (all _.then
-                              (_.set (list @input) inputG)
-                              (list#mix (function (_ [test then!] else!)
-                                          (_.if test then! else!))
-                                        else!
-                                        conditionals!))))))]))
-
-(def lux_procs
-  Bundle
-  (|> /.empty
-      (/.install "syntax char case!" lux::syntax_char_case!)
-      (/.install "is" (binary (function (_ [reference subject])
-                                (_.do "equal?" (list reference) {.#None} subject))))
-      (/.install "try" (unary //runtime.lux//try))))
-
-(def i64_procs
-  Bundle
-  (<| (/.prefix "i64")
-      (|> /.empty
-          (/.install "and" (binary (product.uncurried //runtime.i64::and)))
-          (/.install "or" (binary (product.uncurried //runtime.i64::or)))
-          (/.install "xor" (binary (product.uncurried //runtime.i64::xor)))
-          (/.install "left-shift" (binary (product.uncurried //runtime.i64::left_shifted)))
-          (/.install "right-shift" (binary (product.uncurried //runtime.i64::right_shifted)))
-          
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "+" (binary (product.uncurried //runtime.i64::+)))
-          (/.install "-" (binary (product.uncurried //runtime.i64::-)))
-          (/.install "*" (binary (product.uncurried //runtime.i64::*)))
-          (/.install "/" (binary (product.uncurried //runtime.i64::/)))
-          (/.install "%" (binary (function (_ [parameter subject])
-                                   (_.do "remainder" (list parameter) {.#None} subject))))
-          
-          (/.install "f64" (unary (_./ (_.float +1.0))))
-          (/.install "char" (unary //runtime.i64::char))
-          )))
-
-(def f64_procs
-  Bundle
-  (<| (/.prefix "f64")
-      (|> /.empty
-          (/.install "+" (binary (product.uncurried _.+)))
-          (/.install "-" (binary (product.uncurried _.-)))
-          (/.install "*" (binary (product.uncurried _.*)))
-          (/.install "/" (binary (product.uncurried _./)))
-          (/.install "%" (binary (function (_ [parameter subject])
-                                   (_.do "remainder" (list parameter) {.#None} subject))))
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "i64" (unary (_.do "floor" (list) {.#None})))
-          (/.install "encode" (unary (_.do "to_s" (list) {.#None})))
-          (/.install "decode" (unary //runtime.f64//decode)))))
-
-(def (text//char [subjectO paramO])
-  (Binary Expression)
-  (//runtime.text//char subjectO paramO))
-
-(def (text//clip [paramO extraO subjectO])
-  (Trinary Expression)
-  (//runtime.text//clip paramO extraO subjectO))
-
-(def (text//index [startO partO textO])
-  (Trinary Expression)
-  (//runtime.text//index textO partO startO))
-
-(def text_procs
-  Bundle
-  (<| (/.prefix "text")
-      (|> /.empty
-          (/.install "=" (binary (product.uncurried _.=)))
-          (/.install "<" (binary (product.uncurried _.<)))
-          (/.install "concat" (binary (product.uncurried (function.flipped _.+))))
-          (/.install "index" (trinary text//index))
-          (/.install "size" (unary (_.the "length")))
-          (/.install "char" (binary (product.uncurried //runtime.text//char)))
-          (/.install "clip" (trinary text//clip))
-          )))
-
-(def (io//log! messageG)
-  (Unary Expression)
-  (|> (_.print/2 messageG (_.string text.new_line))
-      (_.or //runtime.unit)))
-
-(def io//error!
-  (Unary Expression)
-  _.raise)
-
-(def io_procs
-  Bundle
-  (<| (/.prefix "io")
-      (|> /.empty
-          (/.install "log" (unary ..io//log!))
-          (/.install "error" (unary ..io//error!))
-          )))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lux")
-      (|> lux_procs
-          (dictionary.composite ..i64_procs)
-          (dictionary.composite ..f64_procs)
-          (dictionary.composite ..text_procs)
-          (dictionary.composite ..io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby/host.lux
deleted file mode 100644
index bbff556ec..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/ruby/host.lux
+++ /dev/null
@@ -1,138 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list]]
-    [text
-     ["%" \\format (.only format)]]]
-   [meta
-    [target
-     ["_" ruby (.only Var Expression)]]]]]
- ["[0]" //
-  ["[1][0]" common (.only custom)]
-  ["//[1]" ///
-   ["/" bundle]
-   ["/[1]" //
-    ["[0]" extension]
-    [generation
-     [extension (.only Nullary Unary Binary Trinary
-                       nullary unary binary trinary)]
-     ["[0]" reference]
-     ["//" ruby
-      ["[1][0]" runtime (.only Operation Phase Handler Bundle
-                               with_vars)]]]
-    ["/[1]" //
-     ["[0]" generation]
-     [synthesis
-      ["" \\parser (.only Parser)]]
-     ["//[1]" ///
-      ["[1][0]" phase]]]]]])
-
-(def (array::new [size])
-  (Unary Expression)
-  (_.do "new" (list size) {.#None} (is _.CVar (_.manual "Array"))))
-
-(def array::length
-  (Unary Expression)
-  (_.the "size"))
-
-(def (array::read [indexG arrayG])
-  (Binary Expression)
-  (_.item indexG arrayG))
-
-(def (array::write [indexG valueG arrayG])
-  (Trinary Expression)
-  (//runtime.array//write indexG valueG arrayG))
-
-(def (array::delete [indexG arrayG])
-  (Binary Expression)
-  (//runtime.array//write indexG _.nil arrayG))
-
-(def array
-  Bundle
-  (<| (/.prefix "array")
-      (|> /.empty
-          (/.install "new" (unary array::new))
-          (/.install "length" (unary array::length))
-          (/.install "read" (binary array::read))
-          (/.install "write" (trinary array::write))
-          (/.install "delete" (binary array::delete))
-          )))
-
-(def object::get
-  Handler
-  (custom
-   [(all <>.and .text .any)
-    (function (_ extension phase archive [fieldS objectS])
-      (do ////////phase.monad
-        [objectG (phase archive objectS)]
-        (in (_.the fieldS objectG))))]))
-
-(def object::do
-  Handler
-  (custom
-   [(all <>.and .text .any (<>.some .any))
-    (function (_ extension phase archive [methodS objectS inputsS])
-      (do [! ////////phase.monad]
-        [objectG (phase archive objectS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.do methodS inputsG {.#None} objectG))))]))
-
-(with_template [  ]
-  [(def  (Nullary Expression) (function.constant ))
-   (def  (Unary Expression) (_.= ))]
-
-  [object::nil object::nil? _.nil]
-  )
-
-(def object
-  Bundle
-  (<| (/.prefix "object")
-      (|> /.empty
-          (/.install "get" object::get)
-          (/.install "do" object::do)
-          (/.install "nil" (nullary object::nil))
-          (/.install "nil?" (unary object::nil?))
-          )))
-
-(def ruby::constant
-  (custom
-   [.text
-    (function (_ extension phase archive name)
-      (at ////////phase.monad in (is _.CVar (_.manual name))))]))
-
-(def ruby::apply
-  (custom
-   [(all <>.and .any (<>.some .any))
-    (function (_ extension phase archive [abstractionS inputsS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.apply inputsG {.#None} abstractionG))))]))
-
-(def ruby::import
-  (custom
-   [.text
-    (function (_ extension phase archive module)
-      (at ////////phase.monad in
-          (_.require/1 (_.string module))))]))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "ruby")
-      (|> /.empty
-          (dictionary.composite ..array)
-          (dictionary.composite ..object)
-
-          (/.install "constant" ruby::constant)
-          (/.install "apply" ruby::apply)
-          (/.install "import" ruby::import)
-          (/.install "script universe" (nullary (function.constant (_.bool reference.universe))))
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme.lux
deleted file mode 100644
index e2a5ce49f..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme.lux
+++ /dev/null
@@ -1,18 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- ["[0]" /
-  ["[1][0]" common]
-  ["[1][0]" host]
-  [////
-   [generation
-    [scheme
-     [runtime (.only Bundle)]]]]])
-
-(def .public bundle
-  Bundle
-  (dictionary.composite /common.bundle
-                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme/common.lux
deleted file mode 100644
index 894906ea0..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme/common.lux
+++ /dev/null
@@ -1,164 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    ["[0]" text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" dictionary]
-     ["[0]" set]
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["f" frac]]]
-   [meta
-    ["@" target
-     ["_" scheme (.only Expression)]]]]]
- ["[0]" ////
-  ["/" bundle]
-  ["/[1]" //
-   ["[0]" extension]
-   [generation
-    [extension (.only Nullary Unary Binary Trinary
-                      nullary unary binary trinary)]
-    ["[0]" reference]
-    ["//" scheme
-     ["[1][0]" runtime (.only Operation Phase Handler Bundle Generator)]
-     ["[1][0]" when]]]
-   [//
-    ["[0]" generation]
-    ["[0]" synthesis (.only %synthesis)
-     ["" \\parser (.only Parser)]]
-    [///
-     ["[1]" phase]]]]])
-
-(def !unary
-  (template (_ function)
-    (|>> list _.apply (|> (_.constant function)))))
-
-... TODO: Get rid of this ASAP
-(def lux::syntax_char_case!
-  (..custom [(all <>.and
-                  .any
-                  .any
-                  (<>.some (.tuple (all <>.and
-                                           (.tuple (<>.many .i64))
-                                           .any))))
-             (function (_ extension_name phase archive [input else conditionals])
-               (do [! /////.monad]
-                 [@input (at ! each _.var (generation.symbol "input"))
-                  inputG (phase archive input)
-                  elseG (phase archive else)
-                  conditionalsG (is (Operation (List [Expression Expression]))
-                                    (monad.each ! (function (_ [chars branch])
-                                                    (do !
-                                                      [branchG (phase archive branch)]
-                                                      (in [(|> chars (list#each (|>> .int _.int (_.=/2 @input))) _.or)
-                                                           branchG])))
-                                                conditionals))]
-                 (in (_.let (list [@input inputG])
-                       (list#mix (function (_ [test then] else)
-                                   (_.if test then else))
-                                 elseG
-                                 conditionalsG)))))]))
-
-(def lux_procs
-  Bundle
-  (|> /.empty
-      (/.install "syntax char case!" lux::syntax_char_case!)
-      (/.install "is" (binary (product.uncurried _.eq?/2)))
-      (/.install "try" (unary //runtime.lux//try))
-      ))
-
-(def (capped operation parameter subject)
-  (-> (-> Expression Expression Expression)
-      (-> Expression Expression Expression))
-  (//runtime.i64//64 (operation parameter subject)))
-
-(def i64_procs
-  Bundle
-  (<| (/.prefix "i64")
-      (|> /.empty
-          (/.install "and" (binary (product.uncurried //runtime.i64//and)))
-          (/.install "or" (binary (product.uncurried //runtime.i64//or)))
-          (/.install "xor" (binary (product.uncurried //runtime.i64//xor)))
-          (/.install "left-shift" (binary (product.uncurried //runtime.i64//left_shift)))
-          (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shift)))
-          (/.install "=" (binary (product.uncurried _.=/2)))
-          (/.install "<" (binary (product.uncurried _.> _.integer->char/1 (_.make_string/2 (_.int +1)))))
-          )))
-
-(def f64_procs
-  Bundle
-  (<| (/.prefix "f64")
-      (|> /.empty
-          (/.install "=" (binary (product.uncurried _.=/2)))
-          (/.install "<" (binary (product.uncurried _.string/1))
-          (/.install "decode" (unary //runtime.f64//decode)))))
-
-(def (text//index [offset sub text])
-  (Trinary Expression)
-  (//runtime.text//index offset sub text))
-
-(def (text//clip [paramO extraO subjectO])
-  (Trinary Expression)
-  (//runtime.text//clip paramO extraO subjectO))
-
-(def text_procs
-  Bundle
-  (<| (/.prefix "text")
-      (|> /.empty
-          (/.install "=" (binary (product.uncurried _.string=?/2)))
-          (/.install "<" (binary (product.uncurried _.string /.empty
-          (/.install "log" (unary ..io//log!))
-          (/.install "error" (unary _.raise/1))
-          )))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "lux")
-      (|> /.empty
-          (dictionary.composite lux_procs)
-          (dictionary.composite i64_procs)
-          (dictionary.composite f64_procs)
-          (dictionary.composite text_procs)
-          (dictionary.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme/host.lux
deleted file mode 100644
index d48dc1e11..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/generation/scheme/host.lux
+++ /dev/null
@@ -1,111 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    [collection
-     ["[0]" dictionary]
-     ["[0]" list]]
-    [text
-     ["%" \\format (.only format)]]]
-   [meta
-    [target
-     ["_" scheme (.only Var Expression)]]]]]
- ["[0]" //
-  ["[1][0]" common (.only custom)]
-  ["//[1]" ///
-   ["/" bundle]
-   ["/[1]" //
-    ["[0]" extension]
-    [generation
-     [extension (.only Nullary Unary Binary Trinary
-                       nullary unary binary trinary)]
-     ["[0]" reference]
-     ["//" scheme
-      ["[1][0]" runtime (.only Operation Phase Handler Bundle
-                               with_vars)]]]
-    ["/[1]" //
-     ["[0]" generation]
-     [synthesis
-      ["" \\parser (.only Parser)]]
-     ["//[1]" ///
-      ["[1][0]" phase]]]]]])
-
-(def (array::new size)
-  (Unary Expression)
-  (_.make_vector/2 size _.nil))
-
-(def array::length
-  (Unary Expression)
-  _.vector_length/1)
-
-(def (array::read [indexG arrayG])
-  (Binary Expression)
-  (_.vector_ref/2 arrayG indexG))
-
-(def (array::write [indexG valueG arrayG])
-  (Trinary Expression)
-  (//runtime.array//write indexG valueG arrayG))
-
-(def (array::delete [indexG arrayG])
-  (Binary Expression)
-  (//runtime.array//write indexG _.nil arrayG))
-
-(def array
-  Bundle
-  (<| (/.prefix "array")
-      (|> /.empty
-          (/.install "new" (unary array::new))
-          (/.install "length" (unary array::length))
-          (/.install "read" (binary array::read))
-          (/.install "write" (trinary array::write))
-          (/.install "delete" (binary array::delete))
-          )))
-
-(with_template [  ]
-  [(def  (Nullary Expression) (function.constant ))
-   (def  (Unary Expression) (_.eq?/2 ))]
-
-  [object::nil object::nil? _.nil]
-  )
-
-(def object
-  Bundle
-  (<| (/.prefix "object")
-      (|> /.empty
-          (/.install "nil" (nullary object::nil))
-          (/.install "nil?" (unary object::nil?))
-          )))
-
-(def scheme::constant
-  (custom
-   [.text
-    (function (_ extension phase archive name)
-      (do ////////phase.monad
-        []
-        (in (_.var name))))]))
-
-(def scheme::apply
-  (custom
-   [(all <>.and .any (<>.some .any))
-    (function (_ extension phase archive [abstractionS inputsS])
-      (do [! ////////phase.monad]
-        [abstractionG (phase archive abstractionS)
-         inputsG (monad.each ! (phase archive) inputsS)]
-        (in (_.apply inputsG abstractionG))))]))
-
-(def .public bundle
-  Bundle
-  (<| (/.prefix "scheme")
-      (|> /.empty
-          (dictionary.composite ..array)
-          (dictionary.composite ..object)
-
-          (/.install "constant" scheme::constant)
-          (/.install "apply" scheme::apply)
-          (/.install "script universe" (nullary (function.constant (_.bool reference.universe))))
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/synthesis/lux.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/synthesis/lux.lux
index 64c98bdfa..5a57a54bd 100644
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/synthesis/lux.lux
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/synthesis/lux.lux
@@ -21,9 +21,9 @@
   (-> Text Text)
   (|>> (text.suffix "|synthesis")))
 
-(def generation
+(def translation
   (-> Text Text)
-  (text.replaced (synthesis "") "|generation"))
+  (text.replaced (synthesis "") "|translation"))
 
 (def .public (install name anonymous)
   (-> Text (-> Text Handler)
@@ -46,11 +46,11 @@
 
 (def (text::composite self)
   (-> Text Handler)
-  (let [generation [.prelude (generation self)]]
+  (let [translation [.prelude (translation self)]]
     (function (_ synthesis archive parts)
       (do [! phase.monad]
         [parts (monad.each ! (synthesis archive) parts)]
-        (in [location.dummy {synthesis.#Extension generation (flat_text_composite generation parts)}])))))
+        (in [location.dummy {synthesis.#Extension translation (flat_text_composite translation parts)}])))))
 
 (def .public bundle
   Bundle
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp.lux
new file mode 100644
index 000000000..9dea25a19
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp.lux
@@ -0,0 +1,18 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [common_lisp
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (dictionary.composite /common.bundle
+                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/common.lux
new file mode 100644
index 000000000..4a0f897c3
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/common.lux
@@ -0,0 +1,169 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]
+    ["[0]" try]]
+   [data
+    ["[0]" product]
+    ["[0]" text (.only)
+     ["%" \\format (.only format)]]
+    [collection
+     ["[0]" dictionary]
+     ["[0]" set]
+     ["[0]" list (.use "[1]#[0]" functor mix)]]]
+   [math
+    [number
+     ["f" frac]]]
+   [meta
+    ["@" target (.only)
+     ["_" common_lisp (.only Expression)]]]]]
+ ["[0]" ////
+  ["/" bundle]
+  ["/[1]" //
+   ["[0]" extension]
+   [translation
+    [extension (.only Nullary Unary Binary Trinary
+                      nullary unary binary trinary)]
+    ["[0]" reference]
+    ["//" common_lisp
+     ["[1][0]" runtime (.only Operation Phase Handler Bundle Translator)]
+     ["[1][0]" when]]]
+   [//
+    ["[0]" translation]
+    ["[0]" synthesis (.only %synthesis)
+     ["" \\parser (.only Parser)]]
+    [///
+     ["[1]" phase]]]]])
+
+(def !unary
+  (template (_ function)
+    (|>> list _.apply (|> (_.constant function)))))
+
+... ... TODO: Get rid of this ASAP
+... (def lux::syntax_char_case!
+...   (..custom [(all <>.and
+...                  .any
+...                  .any
+...                  (<>.some (.tuple (all <>.and
+...                                          (.tuple (<>.many .i64))
+...                                          .any))))
+...              (function (_ extension_name phase archive [input else conditionals])
+...                (do [! /////.monad]
+...                  [@input (at ! each _.var (translation.symbol "input"))
+...                   inputG (phase archive input)
+...                   elseG (phase archive else)
+...                   conditionalsG (is (Operation (List [Expression Expression]))
+...                                    (monad.each ! (function (_ [chars branch])
+...                                                   (do !
+...                                                     [branchG (phase archive branch)]
+...                                                     (in [(|> chars (list#each (|>> .int _.int (_.=/2 @input))) _.or)
+...                                                            branchG])))
+...                                               conditionals))]
+...                  (in (_.let (list [@input inputG])
+...                          (list (list#mix (function (_ [test then] else)
+...                                             (_.if test then else))
+...                                           elseG
+...                                           conditionalsG))))))]))
+
+(def lux_procs
+  Bundle
+  (|> /.empty
+      ... (/.install "syntax char case!" lux::syntax_char_case!)
+      (/.install "is" (binary _.eq/2))
+      ... (/.install "try" (unary //runtime.lux//try))
+      ))
+
+... (def (capped operation parameter subject)
+...   (-> (-> Expression Expression Expression)
+...       (-> Expression Expression Expression))
+...   (//runtime.i64//64 (operation parameter subject)))
+
+(def i64_procs
+  Bundle
+  (<| (/.prefix "i64")
+      (|> /.empty
+          (/.install "and" (binary _.logand/2))
+          (/.install "or" (binary _.logior/2))
+          (/.install "xor" (binary _.logxor/2))
+          (/.install "left-shift" (binary _.ash/2))
+          (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shifted)))
+          (/.install "=" (binary _.=/2))
+          (/.install "<" (binary _.> _.code_char/1 _.string/1)))
+          )))
+
+(def f64_procs
+  Bundle
+  (<| (/.prefix "f64")
+      (|> /.empty
+          ... (/.install "=" (binary (product.uncurried _.=/2)))
+          ... (/.install "<" (binary (product.uncurried _. /.empty
+          (/.install "=" (binary _.string=/2))
+          ... (/.install "<" (binary (product.uncurried _.string /.empty
+          (/.install "log" (unary ..io//log!))
+          (/.install "error" (unary _.error/1))
+          )))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lux")
+      (|> /.empty
+          (dictionary.composite lux_procs)
+          (dictionary.composite i64_procs)
+          (dictionary.composite f64_procs)
+          (dictionary.composite text_procs)
+          (dictionary.composite io_procs)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/host.lux
new file mode 100644
index 000000000..583461e36
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/common_lisp/host.lux
@@ -0,0 +1,15 @@
+(.require
+ [library
+  [lux (.except)]]
+ [////
+  ["/" bundle]
+  [//
+   [translation
+    [common_lisp
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "common_lisp")
+      (|> /.empty
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js.lux
new file mode 100644
index 000000000..8ae7a6a74
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js.lux
@@ -0,0 +1,18 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [js
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (dictionary.composite /common.bundle
+                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/common.lux
new file mode 100644
index 000000000..d8f690b45
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/common.lux
@@ -0,0 +1,240 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" try]]
+   [data
+    ["[0]" product]
+    [collection
+     ["[0]" list (.use "[1]#[0]" functor)]
+     ["[0]" dictionary]]]
+   [math
+    [number
+     ["f" frac]]]
+   [meta
+    ["@" target (.only)
+     ["_" js (.only Literal Expression Statement)]]
+    [macro
+     ["^" pattern]]]]]
+ ["[0]" ////
+  ["/" bundle]
+  ["/[1]" //
+   ["[0]" extension]
+   [translation
+    [extension (.only Nullary Unary Binary Trinary
+                      nullary unary binary trinary)]
+    ["//" js
+     ["[1][0]" runtime (.only Operation Phase Phase! Handler Bundle Translator)]
+     ["[1][0]" primitive]
+     ["[1][0]" structure]
+     ["[1][0]" reference]
+     ["[1][0]" when]
+     ["[1][0]" loop]
+     ["[1][0]" function]]]
+   [//
+    ["[0]" synthesis (.only %synthesis)
+     ["" \\parser (.only Parser)]]
+    [///
+     ["[1]" phase (.use "[1]#[0]" monad)]]]]])
+
+... [Procedures]
+... [[Bits]]
+(with_template [ ]
+  [(def ( [paramG subjectG])
+     (Binary Expression)
+     ( subjectG (//runtime.i64::number paramG)))]
+
+  [i64::left_shifted  //runtime.i64::left_shifted]
+  [i64::right_shifted //runtime.i64::right_shifted]
+  )
+
+... [[Numbers]]
+(def f64//decode
+  (Unary Expression)
+  (|>> list
+       (_.apply (_.var "parseFloat"))
+       _.return
+       (_.closure (list))
+       //runtime.lux//try))
+
+(def i64::char
+  (Unary Expression)
+  (|>> //runtime.i64::number
+       (list)
+       (_.apply (_.var "String.fromCharCode"))))
+
+... [[Text]]
+(def (text//concat [leftG rightG])
+  (Binary Expression)
+  (|> leftG (_.do "concat" (list rightG))))
+
+(def (text//clip [startG endG subjectG])
+  (Trinary Expression)
+  (//runtime.text//clip startG endG subjectG))
+
+(def (text//index [startG partG subjectG])
+  (Trinary Expression)
+  (//runtime.text//index startG partG subjectG))
+
+... [[IO]]
+(def (io//log messageG)
+  (Unary Expression)
+  (all _.,
+       (//runtime.io//log messageG)
+       //runtime.unit))
+
+(def .public (statement expression archive synthesis)
+  Phase!
+  (when synthesis
+    ... TODO: Get rid of this ASAP
+    {synthesis.#Extension [.prelude "when_char#|translation"] parameters}
+    (do /////.monad
+      [body (expression archive synthesis)]
+      (in (as Statement body)))
+
+    (^.with_template []
+      [( value)
+       (/////#each _.return (expression archive synthesis))])
+    ([synthesis.bit]
+     [synthesis.i64]
+     [synthesis.f64]
+     [synthesis.text]
+     [synthesis.variant]
+     [synthesis.tuple]
+     [synthesis.branch/get]
+     [synthesis.function/apply])
+
+    (^.with_template []
+      [{ value}
+       (/////#each _.return (expression archive synthesis))])
+    ([synthesis.#Reference]
+     [synthesis.#Extension])
+
+    (synthesis.branch/when when)
+    (//when.when! statement expression archive when)
+
+    (synthesis.branch/exec it)
+    (//when.exec! statement expression archive it)
+
+    (synthesis.branch/let let)
+    (//when.let! statement expression archive let)
+
+    (synthesis.branch/if if)
+    (//when.if! statement expression archive if)
+
+    (synthesis.loop/scope scope)
+    (//loop.scope! statement expression archive scope)
+
+    (synthesis.loop/again updates)
+    (//loop.again! statement expression archive updates)
+
+    (synthesis.function/abstraction abstraction)
+    (/////#each _.return (//function.function statement expression archive abstraction))
+    ))
+
+... TODO: Get rid of this ASAP
+(def lux::syntax_char_case!
+  (..custom [(all <>.and
+                  .any
+                  .any
+                  (<>.some (.tuple (all <>.and
+                                           (.tuple (<>.many .i64))
+                                           .any))))
+             (function (_ extension_name phase archive [input else conditionals])
+               (do [! /////.monad]
+                 [inputG (phase archive input)
+                  else! (..statement phase archive else)
+                  conditionals! (is (Operation (List [(List Literal)
+                                                      Statement]))
+                                    (monad.each ! (function (_ [chars branch])
+                                                    (do !
+                                                      [branch! (..statement phase archive branch)]
+                                                      (in [(list#each (|>> .int _.int) chars)
+                                                           branch!])))
+                                                conditionals))]
+                 ... (in (_.apply (_.closure (list)
+                 ...                           (_.switch (_.the //runtime.i64_low_field inputG)
+                 ...                                     conditionals!
+                 ...                                     {.#Some (_.return else!)}))
+                 ...                (list)))
+                 (in (<| (as Expression)
+                         (is Statement)
+                         (_.switch (_.the //runtime.i64_low_field inputG)
+                                   conditionals!
+                                   {.#Some else!})))))]))
+
+... [Bundles]
+(def lux_procs
+  Bundle
+  (|> /.empty
+      (/.install "syntax char case!" lux::syntax_char_case!)
+      (/.install "is" (binary (product.uncurried _.=)))
+      (/.install "try" (unary //runtime.lux//try))))
+
+(def i64_procs
+  Bundle
+  (<| (/.prefix "i64")
+      (|> /.empty
+          (/.install "and" (binary (product.uncurried //runtime.i64::and)))
+          (/.install "or" (binary (product.uncurried //runtime.i64::or)))
+          (/.install "xor" (binary (product.uncurried //runtime.i64::xor)))
+          (/.install "left-shift" (binary i64::left_shifted))
+          (/.install "right-shift" (binary i64::right_shifted))
+          (/.install "=" (binary (product.uncurried //runtime.i64::=)))
+          (/.install "<" (binary (product.uncurried //runtime.i64::<)))
+          (/.install "+" (binary (product.uncurried //runtime.i64::+)))
+          (/.install "-" (binary (product.uncurried //runtime.i64::-)))
+          (/.install "*" (binary (product.uncurried //runtime.i64::*)))
+          (/.install "/" (binary (product.uncurried //runtime.i64::/)))
+          (/.install "%" (binary (product.uncurried //runtime.i64::%)))
+          (/.install "f64" (unary //runtime.i64::number))
+          (/.install "char" (unary i64::char))
+          )))
+
+(def f64_procs
+  Bundle
+  (<| (/.prefix "f64")
+      (|> /.empty
+          (/.install "+" (binary (product.uncurried _.+)))
+          (/.install "-" (binary (product.uncurried _.-)))
+          (/.install "*" (binary (product.uncurried _.*)))
+          (/.install "/" (binary (product.uncurried _./)))
+          (/.install "%" (binary (product.uncurried _.%)))
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "i64" (unary //runtime.i64::of_number))
+          (/.install "encode" (unary (_.do "toString" (list))))
+          (/.install "decode" (unary f64//decode)))))
+
+(def text_procs
+  Bundle
+  (<| (/.prefix "text")
+      (|> /.empty
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "concat" (binary text//concat))
+          (/.install "index" (trinary text//index))
+          (/.install "size" (unary (|>> (_.the "length") //runtime.i64::of_number)))
+          (/.install "char" (binary (product.uncurried //runtime.text//char)))
+          (/.install "clip" (trinary text//clip))
+          )))
+
+(def io_procs
+  Bundle
+  (<| (/.prefix "io")
+      (|> /.empty
+          (/.install "log" (unary io//log))
+          (/.install "error" (unary //runtime.io//error)))))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lux")
+      (|> lux_procs
+          (dictionary.composite i64_procs)
+          (dictionary.composite f64_procs)
+          (dictionary.composite text_procs)
+          (dictionary.composite io_procs)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux
new file mode 100644
index 000000000..dc17f8960
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux
@@ -0,0 +1,162 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]]
+   [data
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list]]]
+   [meta
+    [target
+     ["_" js (.only Var Expression)]]]]]
+ ["[0]" //
+  ["[1][0]" common (.only custom)]
+  ["//[1]" ///
+   ["/" bundle]
+   ["/[1]" //
+    ["[0]" extension]
+    [translation
+     [extension (.only Nullary Unary Binary Trinary
+                       nullary unary binary trinary)]
+     ["//" js
+      ["[1][0]" runtime (.only Operation Phase Handler Bundle
+                               with_vars)]]]
+    ["/[1]" //
+     ["[0]" translation]
+     [synthesis
+      ["" \\parser (.only Parser)]]
+     ["//[1]" ///
+      ["[1][0]" phase]]]]]])
+
+(def array::new
+  (Unary Expression)
+  (|>> (_.the //runtime.i64_low_field) list (_.new (_.var "Array"))))
+
+(def array::length
+  (Unary Expression)
+  (|>> (_.the "length") //runtime.i64::of_number))
+
+(def (array::read [indexG arrayG])
+  (Binary Expression)
+  (_.at (_.the //runtime.i64_low_field indexG)
+        arrayG))
+
+(def (array::write [indexG valueG arrayG])
+  (Trinary Expression)
+  (//runtime.array//write indexG valueG arrayG))
+
+(def (array::delete [indexG arrayG])
+  (Binary Expression)
+  (//runtime.array//delete indexG arrayG))
+
+(def array
+  Bundle
+  (<| (/.prefix "array")
+      (|> /.empty
+          (/.install "new" (unary array::new))
+          (/.install "length" (unary array::length))
+          (/.install "read" (binary array::read))
+          (/.install "write" (trinary array::write))
+          (/.install "delete" (binary array::delete))
+          )))
+
+(def object::new
+  (custom
+   [(all <>.and .any (<>.some .any))
+    (function (_ extension phase archive [constructorS inputsS])
+      (do [! ////////phase.monad]
+        [constructorG (phase archive constructorS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.new constructorG inputsG))))]))
+
+(def object::get
+  Handler
+  (custom
+   [(all <>.and .text .any)
+    (function (_ extension phase archive [fieldS objectS])
+      (do ////////phase.monad
+        [objectG (phase archive objectS)]
+        (in (_.the fieldS objectG))))]))
+
+(def object::do
+  Handler
+  (custom
+   [(all <>.and .text .any (<>.some .any))
+    (function (_ extension phase archive [methodS objectS inputsS])
+      (do [! ////////phase.monad]
+        [objectG (phase archive objectS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.do methodS inputsG objectG))))]))
+
+(with_template [  ]
+  [(def  (Nullary Expression) (function.constant ))
+   (def  (Unary Expression) (_.= ))]
+
+  [object::null object::null? _.null]
+  [object::undefined object::undefined? _.undefined]
+  )
+
+(def object
+  Bundle
+  (<| (/.prefix "object")
+      (|> /.empty
+          (/.install "new" object::new)
+          (/.install "get" object::get)
+          (/.install "do" object::do)
+          (/.install "null" (nullary object::null))
+          (/.install "null?" (unary object::null?))
+          (/.install "undefined" (nullary object::undefined))
+          (/.install "undefined?" (unary object::undefined?))
+          )))
+
+(def js::constant
+  (custom
+   [.text
+    (function (_ extension phase archive name)
+      (at ////////phase.monad in (_.var name)))]))
+
+(def js::apply
+  (custom
+   [(all <>.and .any (<>.some .any))
+    (function (_ extension phase archive [abstractionS inputsS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.apply abstractionG inputsG))))]))
+
+(def js::function
+  (custom
+   [(all <>.and .i64 .any)
+    (function (_ extension phase archive [arity abstractionS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         .let [variable (is (-> Text (Operation Var))
+                            (|>> translation.symbol
+                                 (at ! each _.var)))]
+         g!inputs (monad.each ! (function (_ _) (variable "input"))
+                              (list.repeated (.nat arity) []))
+         g!abstraction (variable "abstraction")]
+        (in (_.closure g!inputs
+                       (all _.then
+                            (_.define g!abstraction abstractionG)
+                            (_.return (when (.nat arity)
+                                        0 (_.apply_1 g!abstraction //runtime.unit)
+                                        1 (_.apply g!abstraction g!inputs)
+                                        _ (_.apply_1 g!abstraction (_.array g!inputs)))))))))]))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "js")
+      (|> /.empty
+          (dictionary.composite ..array)
+          (dictionary.composite ..object)
+
+          (/.install "constant" js::constant)
+          (/.install "apply" js::apply)
+          (/.install "type-of" (unary _.type_of))
+          (/.install "function" js::function)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm.lux
new file mode 100644
index 000000000..26f6cba97
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm.lux
@@ -0,0 +1,20 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [jvm
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (all dictionary.composite
+       /common.bundle
+       /host.bundle
+       ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/common.lux
new file mode 100644
index 000000000..034560910
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/common.lux
@@ -0,0 +1,468 @@
+(.require
+ [library
+  [lux (.except Type Label Primitive Synthesis)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["|" pipe]
+    ["<>" parser]
+    ["[0]" try]
+    ["[0]" function]]
+   [data
+    ["[0]" product]
+    [collection
+     ["[0]" list (.use "[1]#[0]" monad)]
+     ["[0]" dictionary]]]
+   [math
+    [number
+     ["f" frac]
+     ["[0]" i32]]]
+   [meta
+    [target
+     [jvm
+      ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)]
+      [encoding
+       ["[0]" signed (.only S4)]]
+      ["[0]" type (.only Type)
+       [category (.only Primitive Class)]]]]]]]
+ ["[0]" /////
+  ["[0]" extension]
+  [translation
+   [extension (.only Nullary Unary Binary Trinary Variadic
+                     nullary unary binary trinary variadic)]
+   ["///" jvm
+    ["[1][0]" value]
+    ["[1][0]" runtime (.only Operation Phase Bundle Handler)]
+    ["[1][0]" function
+     ["[1]" abstract]]]]
+  [//
+   ["[0]" synthesis (.only Synthesis %synthesis)
+    ["<[1]>" \\parser (.only Parser)]]
+   [///
+    ["[0]" phase]
+    [meta
+     [archive (.only Archive)]]]]])
+
+(def .public (custom [parser handler])
+  (All (_ s)
+    (-> [(Parser s)
+         (-> Phase Archive s (Operation (Bytecode Any)))]
+        Handler))
+  (function (_ phase archive input)
+    (when (.result parser input)
+      {try.#Success input'}
+      (handler phase archive input')
+
+      {try.#Failure error}
+      (phase.failure error))))
+
+(def $Boolean (type.class "java.lang.Boolean" (list)))
+(def $Double (type.class "java.lang.Double" (list)))
+(def $Character (type.class "java.lang.Character" (list)))
+(def $String (type.class "java.lang.String" (list)))
+(def $CharSequence (type.class "java.lang.CharSequence" (list)))
+(def $Object (type.class "java.lang.Object" (list)))
+(def $PrintStream (type.class "java.io.PrintStream" (list)))
+(def $System (type.class "java.lang.System" (list)))
+(def $Error (type.class "java.lang.Error" (list)))
+
+(def lux_int
+  (Bytecode Any)
+  (all _.composite
+       _.i2l
+       (///value.wrap type.long)))
+
+(def jvm_int
+  (Bytecode Any)
+  (all _.composite
+       (///value.unwrap type.long)
+       _.l2i))
+
+(def (predicate bytecode)
+  (-> (-> Label (Bytecode Any))
+      (Bytecode Any))
+  (do _.monad
+    [@then _.new_label
+     @end _.new_label]
+    (all _.composite
+         (bytecode @then)
+         (_.getstatic $Boolean "FALSE" $Boolean)
+         (_.goto @end)
+         (_.set_label @then)
+         (_.getstatic $Boolean "TRUE" $Boolean)
+         (_.set_label @end)
+         )))
+
+... TODO: Get rid of this ASAP
+(def lux::syntax_char_case!
+  (..custom [(all <>.and
+                  .any
+                  .any
+                  (<>.some (.tuple (all <>.and
+                                                   (.tuple (<>.many .i64))
+                                                   .any))))
+             (function (_ phase archive [inputS elseS conditionalsS])
+               (do [! phase.monad]
+                 [@end ///runtime.forge_label
+                  inputG (phase archive inputS)
+                  elseG (phase archive elseS)
+                  conditionalsG+ (is (Operation (List [(List [S4 Label])
+                                                       (Bytecode Any)]))
+                                     (monad.each ! (function (_ [chars branch])
+                                                     (do !
+                                                       [branchG (phase archive branch)
+                                                        @branch ///runtime.forge_label]
+                                                       (in [(list#each (function (_ char)
+                                                                         [(try.trusted (signed.s4 (.int char))) @branch])
+                                                                       chars)
+                                                            (all _.composite
+                                                                 (_.set_label @branch)
+                                                                 branchG
+                                                                 (_.when_continuous (_.goto @end)))])))
+                                                 conditionalsS))
+                  .let [table (|> conditionalsG+
+                                  (list#each product.left)
+                                  list#conjoint)
+                        conditionalsG (|> conditionalsG+
+                                          (list#each product.right)
+                                          (monad.all _.monad))]]
+                 (in (do _.monad
+                       [@else _.new_label]
+                       (all _.composite
+                            inputG (///value.unwrap type.long) _.l2i
+                            (_.lookupswitch @else table)
+                            conditionalsG
+                            (_.set_label @else)
+                            elseG
+                            (<| (_.when_acknowledged @end)
+                                (_.set_label @end))
+                            )))))]))
+
+(def (lux::is [referenceG sampleG])
+  (Binary (Bytecode Any))
+  (all _.composite
+       referenceG
+       sampleG
+       (..predicate _.if_acmpeq)))
+
+(def (lux::try riskyG)
+  (Unary (Bytecode Any))
+  (all _.composite
+       riskyG
+       (_.checkcast ///function.class)
+       ///runtime.try))
+
+(def with_basic_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has "when_char#|translation" ..lux::syntax_char_case!)
+       (dictionary.has "is?#|translation" (binary ..lux::is))
+       (dictionary.has "try#|translation" (unary ..lux::try))))
+
+(with_template [ ]
+  [(def ( [maskG inputG])
+     (Binary (Bytecode Any))
+     (all _.composite
+          inputG (///value.unwrap type.long)
+          maskG (///value.unwrap type.long)
+           (///value.wrap type.long)))]
+
+  [i64::and _.land]
+  [i64::or  _.lor]
+  [i64::xor _.lxor]
+  )
+
+(with_template [ ]
+  [(def ( [shiftG inputG])
+     (Binary (Bytecode Any))
+     (all _.composite
+          inputG (///value.unwrap type.long)
+          shiftG ..jvm_int
+           (///value.wrap type.long)))]
+
+  [i64::left_shifted  _.lshl]
+  [i64::right_shifted _.lushr]
+  )
+
+(with_template [  ]
+  [(def ( [paramG subjectG])
+     (Binary (Bytecode Any))
+     (all _.composite
+          subjectG (///value.unwrap )
+          paramG (///value.unwrap )
+           (///value.wrap )))]
+
+  [i64::+ type.long   _.ladd]
+  [i64::- type.long   _.lsub]
+  [i64::* type.long   _.lmul]
+  [i64::/ type.long   _.ldiv]
+  [i64::% type.long   _.lrem]
+  
+  [f64::+ type.double _.dadd]
+  [f64::- type.double _.dsub]
+  [f64::* type.double _.dmul]
+  [f64::/ type.double _.ddiv]
+  [f64::% type.double _.drem]
+  )
+
+(with_template [   ]
+  [(with_template [ ]
+     [(def ( [paramG subjectG])
+        (Binary (Bytecode Any))
+        (all _.composite
+             subjectG (///value.unwrap )
+             paramG (///value.unwrap )
+             
+             
+             (..predicate _.if_icmpeq)))]
+     
+     [ _.iconst_0]
+     [ _.iconst_m1])]
+
+  [i64::= i64::< type.long   _.lcmp]
+  [f64::= f64::< type.double _.dcmpg]
+  )
+
+(def (::toString class from)
+  (-> (Type Class) (Type Primitive) (Bytecode Any))
+  (_.invokestatic class "toString" (type.method [(list) (list from) ..$String (list)])))
+
+(with_template [  ]
+  [(def ( inputG)
+     (Unary (Bytecode Any))
+     (all _.composite
+          inputG
+          
+          ))]
+
+  [i64::f64
+   (///value.unwrap type.long)
+   (all _.composite
+        _.l2d
+        (///value.wrap type.double))]
+
+  [i64::char
+   (///value.unwrap type.long)
+   (all _.composite
+        _.l2i
+        _.i2c
+        (..::toString ..$Character type.char))]
+
+  [f64::i64
+   (///value.unwrap type.double)
+   (all _.composite
+        _.d2l
+        (///value.wrap type.long))]
+  
+  [f64::encode
+   (///value.unwrap type.double)
+   (..::toString ..$Double type.double)]
+  
+  [f64::decode
+   (_.checkcast $String)
+   ///runtime.decode_frac]
+  )
+
+(def with_i64_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has "i64_and#|translation" (binary ..i64::and))
+       (dictionary.has "i64_or#|translation" (binary ..i64::or))
+       (dictionary.has "i64_xor#|translation" (binary ..i64::xor))
+       (dictionary.has "i64_left#|translation" (binary ..i64::left_shifted))
+       (dictionary.has "i64_right#|translation" (binary ..i64::right_shifted))
+
+       (dictionary.has "i64_=#|translation" (binary ..i64::=))
+       (dictionary.has "i64_+#|translation" (binary ..i64::+))
+       (dictionary.has "i64_-#|translation" (binary ..i64::-))))
+
+(def with_int_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has "int_<#|translation" (binary ..i64::<))
+       (dictionary.has "int_*#|translation" (binary ..i64::*))
+       (dictionary.has "int_/#|translation" (binary ..i64::/))
+       (dictionary.has "int_%#|translation" (binary ..i64::%))
+       
+       (dictionary.has "int_f64#|translation" (unary ..i64::f64))
+       (dictionary.has "int_char#|translation" (unary ..i64::char))))
+
+(def with_frac_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has "f64_+#|translation" (binary ..f64::+))
+       (dictionary.has "f64_-#|translation" (binary ..f64::-))
+       (dictionary.has "f64_*#|translation" (binary ..f64::*))
+       (dictionary.has "f64_/#|translation" (binary ..f64::/))
+       (dictionary.has "f64_%#|translation" (binary ..f64::%))
+       (dictionary.has "f64_=#|translation" (binary ..f64::=))
+       (dictionary.has "f64_<#|translation" (binary ..f64::<))
+       (dictionary.has "f64_int#|translation" (unary ..f64::i64))
+       (dictionary.has "f64_encoded#|translation" (unary ..f64::encode))
+       (dictionary.has "f64_decoded#|translation" (unary ..f64::decode))))
+
+(def $String::length
+  (_.invokevirtual ..$String "length" (type.method [(list) (list) type.int (list)])))
+
+(def (text::size inputG)
+  (Unary (Bytecode Any))
+  (all _.composite
+       inputG
+       (_.checkcast $String)
+       $String::length
+       ..lux_int))
+
+(def no_op
+  (Bytecode Any)
+  (_#in []))
+
+(with_template [    ]
+  [(def ( [paramG subjectG])
+     (Binary (Bytecode Any))
+     (all _.composite
+          subjectG 
+          paramG 
+           ))]
+
+  [text::= ..no_op ..no_op
+   (_.invokevirtual ..$Object "equals" (type.method [(list) (list ..$Object) type.boolean (list)]))
+   (///value.wrap type.boolean)]
+  [text::< (_.checkcast $String) (_.checkcast $String)
+   (_.invokevirtual ..$String "compareTo" (type.method [(list) (list ..$String) type.int (list)]))
+   (..predicate _.iflt)]
+  [text::char (_.checkcast $String) ..jvm_int
+   (_.invokevirtual ..$String "charAt" (type.method [(list) (list type.int) type.char (list)]))
+   ..lux_int]
+  )
+
+(def text::composite
+  (Variadic (Bytecode Any))
+  (let [$StringBuilder (type.class "java.lang.StringBuilder" (list))
+        add_part! (is (-> (Bytecode Any)
+                          (Bytecode Any))
+                      (function (_ it)
+                        (all _.composite
+                             it
+                             (_.checkcast $String)
+                             )))
+        update_size! (is (Bytecode Any)
+                         (all _.composite
+                              _.dup
+                              $String::length
+                              _.dup2_x1
+                              _.pop2
+                              _.iadd
+                              ))
+        new_StringBuilder (is (Bytecode Any)
+                              (all _.composite
+                                   (_.new $StringBuilder)
+                                   _.dup_x1
+                                   _.swap
+                                   (_.invokespecial $StringBuilder "" (type.method [(list) (list type.int) type.void (list)]))
+                                   ))
+        compose_part! (is (Bytecode Any)
+                          (all _.composite
+                               _.swap
+                               (_.invokevirtual $StringBuilder "append" (type.method [(list) (list ..$String) $StringBuilder (list)]))
+                               ))]
+    (|>> (|.when (list)
+           (_.string "")
+
+           (list single)
+           single
+
+           (list left right)
+           (all _.composite
+                left (_.checkcast $String)
+                right (_.checkcast $String)
+                (_.invokevirtual ..$String "concat" (type.method [(list) (list ..$String) ..$String (list)])))
+
+           parts
+           (do [! _.monad]
+             [_ (_.int (.i64 +0))
+              _ (monad.each ! (is (-> (Bytecode Any)
+                                      (Bytecode Any))
+                                  (function (_ it)
+                                    (all _.composite
+                                         (add_part! it)
+                                         update_size!
+                                         )))
+                            (list.reversed parts))
+              _ new_StringBuilder
+              _ (monad.each ! (function.constant compose_part!)
+                            parts)]
+             (_.invokevirtual $StringBuilder "toString" (type.method [(list) (list) ..$String (list)])))
+           ))))
+
+(def (text::clip [offset! length! subject!])
+  (Trinary (Bytecode Any))
+  (all _.composite
+       subject! (_.checkcast $String)
+       offset! ..jvm_int
+       _.dup
+       length! ..jvm_int
+       _.iadd
+       (_.invokevirtual ..$String "substring" (type.method [(list) (list type.int type.int) ..$String (list)]))))
+
+(def index_method (type.method [(list) (list ..$String type.int) type.int (list)]))
+(def (text::index [startG partG textG])
+  (Trinary (Bytecode Any))
+  (do _.monad
+    [@not_found _.new_label
+     @end _.new_label]
+    (all _.composite
+         textG (_.checkcast $String)
+         partG (_.checkcast $String)
+         startG ..jvm_int
+         (_.invokevirtual ..$String "indexOf" index_method)
+         _.dup
+         _.iconst_m1
+         (_.if_icmpeq @not_found)
+         ..lux_int
+         ///runtime.some_injection
+         (_.goto @end)
+         (_.set_label @not_found)
+         _.pop
+         ///runtime.none_injection
+         (_.set_label @end))))
+
+(def with_text_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has "text_=#|translation" (binary ..text::=))
+       (dictionary.has "text_<#|translation" (binary ..text::<))
+       (dictionary.has "text_composite#|translation" (variadic ..text::composite))
+       (dictionary.has "text_index#|translation" (trinary ..text::index))
+       (dictionary.has "text_size#|translation" (unary ..text::size))
+       (dictionary.has "text_char#|translation" (binary ..text::char))
+       (dictionary.has "text_clip#|translation" (trinary ..text::clip))))
+
+(def string_method (type.method [(list) (list ..$String) type.void (list)]))
+(def (io::log messageG)
+  (Unary (Bytecode Any))
+  (all _.composite
+       (_.getstatic ..$System "out" ..$PrintStream)
+       messageG
+       (_.checkcast $String)
+       (_.invokevirtual ..$PrintStream "println" ..string_method)
+       ///runtime.unit))
+
+(def (io::error messageG)
+  (Unary (Bytecode Any))
+  (all _.composite
+       (_.new ..$Error)
+       _.dup
+       messageG
+       (_.checkcast $String)
+       (_.invokespecial ..$Error "" ..string_method)
+       _.athrow))
+
+(def with_io_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has "log!#|translation" (unary ..io::log))
+       (dictionary.has "error#|translation" (unary ..io::error))))
+
+(def .public bundle
+  Bundle
+  (|> extension.empty
+      with_basic_extensions
+      with_io_extensions
+      with_text_extensions
+      with_i64_extensions
+      with_int_extensions
+      with_frac_extensions))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux
new file mode 100644
index 000000000..c2eafe2a2
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux
@@ -0,0 +1,1367 @@
+(.require
+ [library
+  [lux (.except Type Primitive Synthesis)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" maybe (.use "[1]#[0]" functor)]
+    ["[0]" exception (.only Exception)]]
+   [data
+    ["[0]" product]
+    [binary
+     ["[0]" \\format]]
+    ["[0]" text (.use "[1]#[0]" equivalence)
+     ["%" \\format]
+     ["<[1]>" \\parser]]
+    [collection
+     ["[0]" list (.use "[1]#[0]" monad mix monoid)]
+     ["[0]" dictionary (.only Dictionary)]
+     ["[0]" set (.only Set)]
+     ["[0]" sequence]]]
+   [math
+    [number
+     ["n" nat]
+     ["[0]" i32]]]
+   [meta
+    ["[0]" location]
+    [macro
+     ["^" pattern]
+     ["[0]" template]]
+    [target
+     [jvm
+      ["[0]" version]
+      ["[0]" modifier (.use "[1]#[0]" monoid)]
+      ["[0]" method (.only Method)]
+      ["[0]" class (.only Class)]
+      [constant
+       [pool (.only Resource)]]
+      [encoding
+       ["[0]" name]]
+      ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)
+       ["__" instruction (.only Primitive_Array_Type)]]
+      ["[0]" type (.only Type Typed Argument)
+       ["[0]" category (.only Void Value' Value Return' Return Primitive Object Array Var Parameter)]
+       ["[0]" box]
+       ["[0]" reflection]
+       ["[0]" signature]
+       ["[0]" parser]]]]]]]
+ ["[0]" //
+  [common (.only custom)]
+  ["///[1]" ////
+   [translation
+    [extension (.only Nullary Unary Binary Trinary Variadic
+                      nullary unary binary trinary variadic)]
+    ["///" jvm (.only)
+     ["[1][0]" runtime (.only Operation Bundle Phase Handler)]
+     ["[1][0]" reference]
+     ["[1][0]" value]
+     [function
+      [field
+       [variable
+        ["[0]" foreign]]]]]]
+   ["[0]" extension (.only)
+    [analysis
+     ["/" jvm]]]
+   ["/[1]" //
+    ["[1][0]" translation]
+    ["[0]" synthesis (.only Synthesis Path %synthesis)
+     ["<[1]>" \\parser (.only Parser)]]
+    [analysis (.only Environment)
+     ["[0]" complex]]
+    [///
+     ["[1]" phase]
+     ["[1][0]" reference (.only)
+      ["[2][0]" variable (.only Variable Register)]]
+     [meta
+      ["[0]" archive (.only Archive)
+       ["[0]" artifact]
+       ["[0]" unit]]
+      ["[0]" cache
+       [dependency
+        ["[1]/[0]" artifact]]]]]]]])
+
+(with_template [ <0>]
+  [(def 
+     (Bytecode Any)
+     (all _.composite
+          _.l2i
+          <0>))]
+
+  [l2s _.i2s]
+  [l2b _.i2b]
+  [l2c _.i2c]
+  )
+
+(with_template [ ]
+  [(def ( inputG)
+     (Unary (Bytecode Any))
+     (if (same? _.nop )
+       inputG
+       (all _.composite
+            inputG
+            )))]
+  
+  [_.d2f conversion::double_to_float]
+  [_.d2i conversion::double_to_int]
+  [_.d2l conversion::double_to_long]
+  
+  [_.f2d conversion::float_to_double]
+  [_.f2i conversion::float_to_int]
+  [_.f2l conversion::float_to_long]
+  
+  [_.i2b conversion::int_to_byte]
+  [_.i2c conversion::int_to_char]
+  [_.i2d conversion::int_to_double]
+  [_.i2f conversion::int_to_float]
+  [_.i2l conversion::int_to_long]
+  [_.i2s conversion::int_to_short]
+  
+  [_.l2d conversion::long_to_double]
+  [_.l2f conversion::long_to_float]
+  [_.l2i conversion::long_to_int]
+  [..l2s conversion::long_to_short]
+  [..l2b conversion::long_to_byte]
+  [..l2c conversion::long_to_char]
+  
+  [_.i2b conversion::char_to_byte]
+  [_.i2s conversion::char_to_short]
+  [_.nop conversion::char_to_int]
+  [_.i2l conversion::char_to_long]
+  
+  [_.i2l conversion::byte_to_long]
+  
+  [_.i2l conversion::short_to_long]
+  )
+
+(def with_conversion_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has (%.format "jvm_" "conversion_" "double_to_float" "#" "|translation") (unary conversion::double_to_float))
+       (dictionary.has (%.format "jvm_" "conversion_" "double_to_int" "#" "|translation") (unary conversion::double_to_int))
+       (dictionary.has (%.format "jvm_" "conversion_" "double_to_long" "#" "|translation") (unary conversion::double_to_long))
+       
+       (dictionary.has (%.format "jvm_" "conversion_" "float_to_double" "#" "|translation") (unary conversion::float_to_double))
+       (dictionary.has (%.format "jvm_" "conversion_" "float_to_int" "#" "|translation") (unary conversion::float_to_int))
+       (dictionary.has (%.format "jvm_" "conversion_" "float_to_long" "#" "|translation") (unary conversion::float_to_long))
+       
+       (dictionary.has (%.format "jvm_" "conversion_" "int_to_byte" "#" "|translation") (unary conversion::int_to_byte))
+       (dictionary.has (%.format "jvm_" "conversion_" "int_to_char" "#" "|translation") (unary conversion::int_to_char))
+       (dictionary.has (%.format "jvm_" "conversion_" "int_to_double" "#" "|translation") (unary conversion::int_to_double))
+       (dictionary.has (%.format "jvm_" "conversion_" "int_to_float" "#" "|translation") (unary conversion::int_to_float))
+       (dictionary.has (%.format "jvm_" "conversion_" "int_to_long" "#" "|translation") (unary conversion::int_to_long))
+       (dictionary.has (%.format "jvm_" "conversion_" "int_to_short" "#" "|translation") (unary conversion::int_to_short))
+       
+       (dictionary.has (%.format "jvm_" "conversion_" "long_to_double" "#" "|translation") (unary conversion::long_to_double))
+       (dictionary.has (%.format "jvm_" "conversion_" "long_to_float" "#" "|translation") (unary conversion::long_to_float))
+       (dictionary.has (%.format "jvm_" "conversion_" "long_to_int" "#" "|translation") (unary conversion::long_to_int))
+       (dictionary.has (%.format "jvm_" "conversion_" "long_to_short" "#" "|translation") (unary conversion::long_to_short))
+       (dictionary.has (%.format "jvm_" "conversion_" "long_to_byte" "#" "|translation") (unary conversion::long_to_byte))
+       (dictionary.has (%.format "jvm_" "conversion_" "long_to_char" "#" "|translation") (unary conversion::long_to_char))
+       
+       (dictionary.has (%.format "jvm_" "conversion_" "char_to_byte" "#" "|translation") (unary conversion::char_to_byte))
+       (dictionary.has (%.format "jvm_" "conversion_" "char_to_short" "#" "|translation") (unary conversion::char_to_short))
+       (dictionary.has (%.format "jvm_" "conversion_" "char_to_int" "#" "|translation") (unary conversion::char_to_int))
+       (dictionary.has (%.format "jvm_" "conversion_" "char_to_long" "#" "|translation") (unary conversion::char_to_long))
+       
+       (dictionary.has (%.format "jvm_" "conversion_" "byte_to_long" "#" "|translation") (unary conversion::byte_to_long))
+       
+       (dictionary.has (%.format "jvm_" "conversion_" "short_to_long" "#" "|translation") (unary conversion::short_to_long))
+       ))
+
+(with_template [ ]
+  [(def ( [parameter! subject!])
+     (Binary (Bytecode Any))
+     (all _.composite
+          subject!
+          parameter!
+          ))]
+
+  [int::+ _.iadd]
+  [int::- _.isub]
+  [int::* _.imul]
+  [int::/ _.idiv]
+  [int::% _.irem]
+  [int::and _.iand]
+  [int::or _.ior]
+  [int::xor _.ixor]
+  [int::shl _.ishl]
+  [int::shr _.ishr]
+  [int::ushr _.iushr]
+  
+  [long::+ _.ladd]
+  [long::- _.lsub]
+  [long::* _.lmul]
+  [long::/ _.ldiv]
+  [long::% _.lrem]
+  [long::and _.land]
+  [long::or _.lor]
+  [long::xor _.lxor]
+  [long::shl _.lshl]
+  [long::shr _.lshr]
+  [long::ushr _.lushr]
+
+  [float::+ _.fadd]
+  [float::- _.fsub]
+  [float::* _.fmul]
+  [float::/ _.fdiv]
+  [float::% _.frem]
+  
+  [double::+ _.dadd]
+  [double::- _.dsub]
+  [double::* _.dmul]
+  [double::/ _.ddiv]
+  [double::% _.drem]
+  )
+
+(def $Boolean (type.class box.boolean (list)))
+(def falseG (_.getstatic ..$Boolean "FALSE" ..$Boolean))
+(def trueG (_.getstatic ..$Boolean "TRUE" ..$Boolean))
+
+(with_template [ ]
+  [(def ( [reference subject])
+     (Binary (Bytecode Any))
+     (do _.monad
+       [@then _.new_label
+        @end _.new_label]
+       (all _.composite
+            subject
+            reference
+            ( @then)
+            falseG
+            (_.goto @end)
+            (_.set_label @then)
+            trueG
+            (_.set_label @end))))]
+
+  [int::= _.if_icmpeq]
+  [int::< _.if_icmplt]
+
+  [char::= _.if_icmpeq]
+  [char::< _.if_icmplt]
+  )
+
+(with_template [  ]
+  [(def ( [reference subject])
+     (Binary (Bytecode Any))
+     (do _.monad
+       [@then _.new_label
+        @end _.new_label]
+       (all _.composite
+            subject
+            reference
+            
+            (_.int (i32.i32 (.i64 )))
+            (_.if_icmpeq @then)
+            falseG
+            (_.goto @end)
+            (_.set_label @then)
+            trueG
+            (_.set_label @end))))]
+
+  [long::= _.lcmp +0]
+  [long::< _.lcmp -1]
+  
+  [float::= _.fcmpg +0]
+  [float::< _.fcmpg -1]
+
+  [double::= _.dcmpg +0]
+  [double::< _.dcmpg -1]
+  )
+
+(def with_int_extensions
+  (-> Bundle Bundle)
+  (let [type (reflection.reflection reflection.int)]
+    (|>> (dictionary.has (%.format "jvm_" type "_" "+" "#" "|translation") (binary int::+))
+         (dictionary.has (%.format "jvm_" type "_" "-" "#" "|translation") (binary int::-))
+         (dictionary.has (%.format "jvm_" type "_" "*" "#" "|translation") (binary int::*))
+         (dictionary.has (%.format "jvm_" type "_" "/" "#" "|translation") (binary int::/))
+         (dictionary.has (%.format "jvm_" type "_" "%" "#" "|translation") (binary int::%))
+         (dictionary.has (%.format "jvm_" type "_" "=" "#" "|translation") (binary int::=))
+         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|translation") (binary int::<))
+         (dictionary.has (%.format "jvm_" type "_" "and" "#" "|translation") (binary int::and))
+         (dictionary.has (%.format "jvm_" type "_" "or" "#" "|translation") (binary int::or))
+         (dictionary.has (%.format "jvm_" type "_" "xor" "#" "|translation") (binary int::xor))
+         (dictionary.has (%.format "jvm_" type "_" "shl" "#" "|translation") (binary int::shl))
+         (dictionary.has (%.format "jvm_" type "_" "shr" "#" "|translation") (binary int::shr))
+         (dictionary.has (%.format "jvm_" type "_" "ushr" "#" "|translation") (binary int::ushr))
+         )))
+
+(def with_long_extensions
+  (-> Bundle Bundle)
+  (let [type (reflection.reflection reflection.long)]
+    (|>> (dictionary.has (%.format "jvm_" type "_" "+" "#" "|translation") (binary long::+))
+         (dictionary.has (%.format "jvm_" type "_" "-" "#" "|translation") (binary long::-))
+         (dictionary.has (%.format "jvm_" type "_" "*" "#" "|translation") (binary long::*))
+         (dictionary.has (%.format "jvm_" type "_" "/" "#" "|translation") (binary long::/))
+         (dictionary.has (%.format "jvm_" type "_" "%" "#" "|translation") (binary long::%))
+         (dictionary.has (%.format "jvm_" type "_" "=" "#" "|translation") (binary long::=))
+         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|translation") (binary long::<))
+         (dictionary.has (%.format "jvm_" type "_" "and" "#" "|translation") (binary long::and))
+         (dictionary.has (%.format "jvm_" type "_" "or" "#" "|translation") (binary long::or))
+         (dictionary.has (%.format "jvm_" type "_" "xor" "#" "|translation") (binary long::xor))
+         (dictionary.has (%.format "jvm_" type "_" "shl" "#" "|translation") (binary long::shl))
+         (dictionary.has (%.format "jvm_" type "_" "shr" "#" "|translation") (binary long::shr))
+         (dictionary.has (%.format "jvm_" type "_" "ushr" "#" "|translation") (binary long::ushr))
+         )))
+
+(def with_float_extensions
+  (-> Bundle Bundle)
+  (let [type (reflection.reflection reflection.float)]
+    (|>> (dictionary.has (%.format "jvm_" type "_" "+" "#" "|translation") (binary float::+))
+         (dictionary.has (%.format "jvm_" type "_" "-" "#" "|translation") (binary float::-))
+         (dictionary.has (%.format "jvm_" type "_" "*" "#" "|translation") (binary float::*))
+         (dictionary.has (%.format "jvm_" type "_" "/" "#" "|translation") (binary float::/))
+         (dictionary.has (%.format "jvm_" type "_" "%" "#" "|translation") (binary float::%))
+         (dictionary.has (%.format "jvm_" type "_" "=" "#" "|translation") (binary float::=))
+         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|translation") (binary float::<))
+         )))
+
+(def with_double_extensions
+  (-> Bundle Bundle)
+  (let [type (reflection.reflection reflection.float)]
+    (|>> (dictionary.has (%.format "jvm_" type "_" "+" "#" "|translation") (binary double::+))
+         (dictionary.has (%.format "jvm_" type "_" "-" "#" "|translation") (binary double::-))
+         (dictionary.has (%.format "jvm_" type "_" "*" "#" "|translation") (binary double::*))
+         (dictionary.has (%.format "jvm_" type "_" "/" "#" "|translation") (binary double::/))
+         (dictionary.has (%.format "jvm_" type "_" "%" "#" "|translation") (binary double::%))
+         (dictionary.has (%.format "jvm_" type "_" "=" "#" "|translation") (binary double::=))
+         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|translation") (binary double::<))
+         )))
+
+(def with_char_extensions
+  (-> Bundle Bundle)
+  (let [type (reflection.reflection reflection.char)]
+    (|>> (dictionary.has (%.format "jvm_" type "_" "=" "#" "|translation") (binary char::=))
+         (dictionary.has (%.format "jvm_" type "_" "<" "#" "|translation") (binary char::<))
+         )))
+
+(with_template [  ]
+  [(def .public 
+     (Parser (Type ))
+     (.then  .text))]
+
+  [var Var parser.var]
+  [class category.Class parser.class]
+  [object Object parser.object]
+  [value Value parser.value]
+  [return Return parser.return]
+  )
+
+(def reflection
+  (All (_ category)
+    (-> (Type (<| Return' Value' category)) Text))
+  (|>> type.reflection reflection.reflection))
+
+(def signature
+  (All (_ category)
+    (-> (Type category) Text))
+  (|>> type.signature signature.signature))
+
+(exception.def .public (not_an_object_array arrayJT)
+  (Exception (Type Array))
+  (exception.report
+   (list ["JVM type" (..signature arrayJT)])))
+
+(def .public object_array
+  (Parser (Type Object))
+  (do <>.monad
+    [arrayJT (.then parser.array .text)]
+    (when (parser.array? arrayJT)
+      {.#Some elementJT}
+      (when (parser.object? elementJT)
+        {.#Some elementJT}
+        (in elementJT)
+
+        {.#None}
+        (<>.failure (exception.error ..not_an_object_array [arrayJT])))
+      
+      {.#None}
+      (undefined))))
+
+(def (primitive_array_length_handler jvm_primitive)
+  (-> (Type Primitive) Handler)
+  (..custom
+   [.any
+    (function (_ translate archive arrayS)
+      (do //////.monad
+        [arrayG (translate archive arrayS)]
+        (in (all _.composite
+                 arrayG
+                 (_.checkcast (type.array jvm_primitive))
+                 _.arraylength))))]))
+
+(def array::length::object
+  Handler
+  (..custom
+   [(all <>.and ..object_array .any)
+    (function (_ translate archive [elementJT arrayS])
+      (do //////.monad
+        [arrayG (translate archive arrayS)]
+        (in (all _.composite
+                 arrayG
+                 (_.checkcast (type.array elementJT))
+                 _.arraylength))))]))
+
+(def (new_primitive_array_handler jvm_primitive)
+  (-> Primitive_Array_Type Handler)
+  (..custom
+   [.any
+    (function (_ translate archive [lengthS])
+      (do //////.monad
+        [lengthG (translate archive lengthS)]
+        (in (all _.composite
+                 lengthG
+                 (_.newarray jvm_primitive)))))]))
+
+(def array::new::object
+  Handler
+  (..custom
+   [(all <>.and ..object .any)
+    (function (_ translate archive [objectJT lengthS])
+      (do //////.monad
+        [lengthG (translate archive lengthS)]
+        (in (all _.composite
+                 lengthG
+                 (_.anewarray objectJT)))))]))
+
+(def (read_primitive_array_handler jvm_primitive loadG)
+  (-> (Type Primitive) (Bytecode Any) Handler)
+  (..custom
+   [(all <>.and .any .any)
+    (function (_ translate archive [idxS arrayS])
+      (do //////.monad
+        [arrayG (translate archive arrayS)
+         idxG (translate archive idxS)]
+        (in (all _.composite
+                 arrayG
+                 (_.checkcast (type.array jvm_primitive))
+                 idxG
+                 loadG))))]))
+
+(def array::read::object
+  Handler
+  (..custom
+   [(all <>.and ..object_array .any .any)
+    (function (_ translate archive [elementJT idxS arrayS])
+      (do //////.monad
+        [arrayG (translate archive arrayS)
+         idxG (translate archive idxS)]
+        (in (all _.composite
+                 arrayG
+                 (_.checkcast (type.array elementJT))
+                 idxG
+                 _.aaload))))]))
+
+(def (write_primitive_array_handler jvm_primitive storeG)
+  (-> (Type Primitive) (Bytecode Any) Handler)
+  (..custom
+   [(all <>.and .any .any .any)
+    (function (_ translate archive [idxS valueS arrayS])
+      (do //////.monad
+        [arrayG (translate archive arrayS)
+         idxG (translate archive idxS)
+         valueG (translate archive valueS)]
+        (in (all _.composite
+                 arrayG
+                 (_.checkcast (type.array jvm_primitive))
+                 _.dup
+                 idxG
+                 valueG
+                 storeG))))]))
+
+(def array::write::object
+  Handler
+  (..custom
+   [(all <>.and ..object_array .any .any .any)
+    (function (_ translate archive [elementJT idxS valueS arrayS])
+      (do //////.monad
+        [arrayG (translate archive arrayS)
+         idxG (translate archive idxS)
+         valueG (translate archive valueS)]
+        (in (all _.composite
+                 arrayG
+                 (_.checkcast (type.array elementJT))
+                 _.dup
+                 idxG
+                 valueG
+                 _.aastore))))]))
+
+(def with_array_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.boolean) "#" "|translation") (primitive_array_length_handler type.boolean))
+       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.byte) "#" "|translation") (primitive_array_length_handler type.byte))
+       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.short) "#" "|translation") (primitive_array_length_handler type.short))
+       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.int) "#" "|translation") (primitive_array_length_handler type.int))
+       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.long) "#" "|translation") (primitive_array_length_handler type.long))
+       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.float) "#" "|translation") (primitive_array_length_handler type.float))
+       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.double) "#" "|translation") (primitive_array_length_handler type.double))
+       (dictionary.has (%.format "jvm_" "array_" "length_" (reflection.reflection reflection.char) "#" "|translation") (primitive_array_length_handler type.char))
+       (dictionary.has (%.format "jvm_" "array_" "length_" "object" "#" "|translation") array::length::object)
+
+       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.boolean) "#" "|translation") (new_primitive_array_handler __.t_boolean))
+       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.byte) "#" "|translation") (new_primitive_array_handler __.t_byte))
+       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.short) "#" "|translation") (new_primitive_array_handler __.t_short))
+       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.int) "#" "|translation") (new_primitive_array_handler __.t_int))
+       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.long) "#" "|translation") (new_primitive_array_handler __.t_long))
+       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.float) "#" "|translation") (new_primitive_array_handler __.t_float))
+       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.double) "#" "|translation") (new_primitive_array_handler __.t_double))
+       (dictionary.has (%.format "jvm_" "array_" "new_" (reflection.reflection reflection.char) "#" "|translation") (new_primitive_array_handler __.t_char))
+       (dictionary.has (%.format "jvm_" "array_" "new_" "object" "#" "|translation") array::new::object)
+
+       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.boolean) "#" "|translation") (read_primitive_array_handler type.boolean _.baload))
+       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.byte) "#" "|translation") (read_primitive_array_handler type.byte _.baload))
+       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.short) "#" "|translation") (read_primitive_array_handler type.short _.saload))
+       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.int) "#" "|translation") (read_primitive_array_handler type.int _.iaload))
+       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.long) "#" "|translation") (read_primitive_array_handler type.long _.laload))
+       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.float) "#" "|translation") (read_primitive_array_handler type.float _.faload))
+       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.double) "#" "|translation") (read_primitive_array_handler type.double _.daload))
+       (dictionary.has (%.format "jvm_" "array_" "read_" (reflection.reflection reflection.char) "#" "|translation") (read_primitive_array_handler type.char _.caload))
+       (dictionary.has (%.format "jvm_" "array_" "read_" "object" "#" "|translation") array::read::object)
+
+       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.boolean) "#" "|translation") (write_primitive_array_handler type.boolean _.bastore))
+       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.byte) "#" "|translation") (write_primitive_array_handler type.byte _.bastore))
+       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.short) "#" "|translation") (write_primitive_array_handler type.short _.sastore))
+       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.int) "#" "|translation") (write_primitive_array_handler type.int _.iastore))
+       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.long) "#" "|translation") (write_primitive_array_handler type.long _.lastore))
+       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.float) "#" "|translation") (write_primitive_array_handler type.float _.fastore))
+       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.double) "#" "|translation") (write_primitive_array_handler type.double _.dastore))
+       (dictionary.has (%.format "jvm_" "array_" "write_" (reflection.reflection reflection.char) "#" "|translation") (write_primitive_array_handler type.char _.castore))
+       (dictionary.has (%.format "jvm_" "array_" "write_" "object" "#" "|translation") array::write::object)
+       ))
+
+(def (object::null _)
+  (Nullary (Bytecode Any))
+  _.aconst_null)
+
+(def (object::null? objectG)
+  (Unary (Bytecode Any))
+  (do _.monad
+    [@then _.new_label
+     @end _.new_label]
+    (all _.composite
+         objectG
+         (_.ifnull @then)
+         ..falseG
+         (_.goto @end)
+         (_.set_label @then)
+         ..trueG
+         (_.set_label @end))))
+
+(def (object::synchronized [monitorG exprG])
+  (Binary (Bytecode Any))
+  (all _.composite
+       monitorG
+       _.dup
+       _.monitorenter
+       exprG
+       _.swap
+       _.monitorexit))
+
+(def unitG
+  (_.string synthesis.unit))
+
+(def (object::throw exceptionG)
+  (Unary (Bytecode Any))
+  (all _.composite
+       exceptionG
+       (_.checkcast (type.class "java.lang.Throwable" (list)))
+       ///runtime.throw
+       unitG))
+
+(def $Class (type.class "java.lang.Class" (list)))
+(def $String (type.class "java.lang.String" (list)))
+
+(def object::class
+  Handler
+  (..custom
+   [.text
+    (function (_ translate archive [class])
+      (do //////.monad
+        []
+        (in (all _.composite
+                 (_.string class)
+                 (_.invokestatic ..$Class "forName" (type.method [(list) (list ..$String) ..$Class (list)]))))))]))
+
+(def object::instance?
+  Handler
+  (..custom
+   [(all <>.and .text .any)
+    (function (_ translate archive [class objectS])
+      (do //////.monad
+        [objectG (translate archive objectS)]
+        (in (all _.composite
+                 objectG
+                 (_.instanceof (type.class class (list)))
+                 (///value.wrap type.boolean)))))]))
+
+(def object::cast
+  Handler
+  (..custom
+   [(all <>.and .text .text .any)
+    (function (_ translate archive [from to valueS])
+      (do //////.monad
+        [valueG (translate archive valueS)]
+        (in (`` (cond (,, (with_template [ ]
+                            [(and (text#= (..reflection ) from)
+                                  (text#=  to))
+                             (all _.composite
+                                  valueG
+                                  (///value.wrap ))
+
+                             (and (text#=  from)
+                                  (text#= (..reflection ) to))
+                             (all _.composite
+                                  valueG
+                                  (///value.unwrap ))]
+                            
+                            [box.boolean type.boolean]
+                            [box.byte    type.byte]
+                            [box.short   type.short]
+                            [box.int     type.int]
+                            [box.long    type.long]
+                            [box.char    type.char]
+                            [box.float   type.float]
+                            [box.double  type.double]))
+                      ... else
+                      valueG)))))]))
+
+(def with_object_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has (%.format "jvm_" "object_" "null" "#" "|translation") (nullary object::null))
+       (dictionary.has (%.format "jvm_" "object_" "null?" "#" "|translation") (unary object::null?))
+       (dictionary.has (%.format "jvm_" "object_" "synchronized" "#" "|translation") (binary object::synchronized))
+       (dictionary.has (%.format "jvm_" "object_" "throw" "#" "|translation") (unary object::throw))
+       (dictionary.has (%.format "jvm_" "object_" "class" "#" "|translation") object::class)
+       (dictionary.has (%.format "jvm_" "object_" "instance?" "#" "|translation") object::instance?)
+       (dictionary.has (%.format "jvm_" "object_" "cast" "#" "|translation") object::cast)
+       ))
+
+(def get::static
+  Handler
+  (..custom
+   [(all <>.and .text .text ..value)
+    (function (_ translate archive [class field :unboxed:])
+      (at //////.monad in (_.getstatic (type.class class (list)) field :unboxed:)))]))
+
+(def put::static
+  Handler
+  (..custom
+   [(all <>.and .text .text ..value .any)
+    (function (_ translate archive [class field :unboxed: valueS])
+      (do //////.monad
+        [valueG (translate archive valueS)]
+        (in (all _.composite
+                 valueG
+                 (when (parser.object? :unboxed:)
+                   {.#Some :unboxed:}
+                   (_.checkcast :unboxed:)
+                   
+                   {.#None}
+                   (_#in []))
+                 (_.putstatic (type.class class (list)) field :unboxed:)
+                 ..unitG))))]))
+
+(def get::virtual
+  Handler
+  (..custom
+   [(all <>.and .text .text ..value .any)
+    (function (_ translate archive [class field :unboxed: objectS])
+      (do //////.monad
+        [objectG (translate archive objectS)
+         .let [:class: (type.class class (list))
+               getG (_.getfield :class: field :unboxed:)]]
+        (in (all _.composite
+                 objectG
+                 (_.checkcast :class:)
+                 getG))))]))
+
+(def put::virtual
+  Handler
+  (..custom
+   [(all <>.and .text .text ..value .any .any)
+    (function (_ translate archive [class field :unboxed: valueS objectS])
+      (do //////.monad
+        [valueG (translate archive valueS)
+         objectG (translate archive objectS)
+         .let [:class: (type.class class (list))
+               putG (when (parser.object? :unboxed:)
+                      {.#Some :unboxed:}
+                      (all _.composite
+                           (_.checkcast :unboxed:)
+                           (_.putfield :class: field :unboxed:))
+                      
+                      {.#None}
+                      (_.putfield :class: field :unboxed:))]]
+        (in (all _.composite
+                 objectG
+                 (_.checkcast :class:)
+                 _.dup
+                 valueG
+                 putG))))]))
+
+(type Input
+  (Typed Synthesis))
+
+(def input
+  (Parser Input)
+  (.tuple (<>.and ..value .any)))
+
+(def (translate_input translate archive [valueT valueS])
+  (-> Phase Archive Input (Operation (Typed (Bytecode Any))))
+  (do //////.monad
+    [valueG (translate archive valueS)]
+    (when (type.primitive? valueT)
+      {.#Right valueT}
+      (in [valueT valueG])
+      
+      {.#Left valueT}
+      (in [valueT (all _.composite
+                       valueG
+                       (_.checkcast valueT))]))))
+
+(def (prepare_output outputT)
+  (-> (Type Return) (Bytecode Any))
+  (when (type.void? outputT)
+    {.#Right outputT}
+    ..unitG
+    
+    {.#Left outputT}
+    (_#in [])))
+
+(def invoke::static
+  Handler
+  (..custom
+   [(all <>.and ..class .text ..return (<>.some ..input))
+    (function (_ translate archive [class method outputT inputsTS])
+      (do [! //////.monad]
+        [inputsTG (monad.each ! (translate_input translate archive) inputsTS)]
+        (in (all _.composite
+                 (monad.each _.monad product.right inputsTG)
+                 (_.invokestatic class method (type.method [(list) (list#each product.left inputsTG) outputT (list)]))
+                 (prepare_output outputT)))))]))
+
+(with_template [  ]
+  [(def 
+     Handler
+     (..custom
+      [(all <>.and ..class .text ..return .any (<>.some ..input))
+       (function (_ translate archive [class method outputT objectS inputsTS])
+         (do [! //////.monad]
+           [objectG (translate archive objectS)
+            inputsTG (monad.each ! (translate_input translate archive) inputsTS)]
+           (in (all _.composite
+                    objectG
+                    (if 
+                      (_.checkcast class)
+                      (_#in []))
+                    (monad.each _.monad product.right inputsTG)
+                    ( class method (type.method [(list) (list#each product.left inputsTG) outputT (list)]))
+                    (prepare_output outputT)))))]))]
+
+  [#1 invoke::virtual _.invokevirtual]
+  [#0 invoke::special _.invokespecial]
+  [#1 invoke::interface _.invokeinterface]
+  )
+
+(def invoke::constructor
+  Handler
+  (..custom
+   [(all <>.and ..class (<>.some ..input))
+    (function (_ translate archive [class inputsTS])
+      (do [! //////.monad]
+        [inputsTG (monad.each ! (translate_input translate archive) inputsTS)]
+        (in (all _.composite
+                 (_.new class)
+                 _.dup
+                 (monad.each _.monad product.right inputsTG)
+                 (_.invokespecial class "" (type.method [(list) (list#each product.left inputsTG) type.void (list)]))))))]))
+
+(def with_member_extensions
+  (-> Bundle Bundle)
+  (|>> (dictionary.has (%.format "jvm_" "member_" "get_" "static" "#" "|translation") get::static)
+       (dictionary.has (%.format "jvm_" "member_" "get_" "virtual" "#" "|translation") get::virtual)
+       
+       (dictionary.has (%.format "jvm_" "member_" "put_" "static" "#" "|translation") put::static)
+       (dictionary.has (%.format "jvm_" "member_" "put_" "virtual" "#" "|translation") put::virtual)
+       
+       (dictionary.has (%.format "jvm_" "member_" "invoke_" "static" "#" "|translation") invoke::static)
+       (dictionary.has (%.format "jvm_" "member_" "invoke_" "virtual" "#" "|translation") invoke::virtual)
+       (dictionary.has (%.format "jvm_" "member_" "invoke_" "special" "#" "|translation") invoke::special)
+       (dictionary.has (%.format "jvm_" "member_" "invoke_" "interface" "#" "|translation") invoke::interface)
+       (dictionary.has (%.format "jvm_" "member_" "invoke_" "constructor" "#" "|translation") invoke::constructor)
+       ))
+
+(def annotation_parameter
+  (Parser (/.Annotation_Parameter Synthesis))
+  (.tuple (<>.and .text .any)))
+
+(def annotation
+  (Parser (/.Annotation Synthesis))
+  (.tuple (<>.and .text (<>.some ..annotation_parameter))))
+
+(def argument
+  (Parser Argument)
+  (.tuple (<>.and .text ..value)))
+
+(def .public (hidden_method_body arity body)
+  (-> Nat Synthesis Synthesis)
+  (with_expansions [ (panic! (%.format (%.nat arity) " " (synthesis.%synthesis body)))]
+    (when [arity body]
+      (^.or [0 _]
+            [1 _])
+      body
+      
+      [2 [@ {synthesis.#Control {synthesis.#Branch {synthesis.#Let _ 2 (synthesis.tuple @ (list _ hidden))}}}]]
+      hidden
+      
+      [_ [@ {synthesis.#Control {synthesis.#Branch {synthesis.#When _ path}}}]]
+      (loop (again [path (is Path path)])
+        (when path
+          {synthesis.#Seq _ next}
+          (again next)
+          
+          {synthesis.#Then (synthesis.tuple @ (list _ hidden))}
+          hidden
+          
+          _
+          ))
+
+      _
+      )))
+
+(def (without_fake_parameter#path without_fake_parameter)
+  (-> (-> Synthesis Synthesis)
+      (-> Path Path))
+  (function (again it)
+    (when it
+      (^.or {synthesis.#Pop}
+            {synthesis.#Access _})
+      it
+      
+      {synthesis.#Bind it}
+      {synthesis.#Bind (-- it)}
+      
+      {synthesis.#Bit_Fork when then else}
+      {synthesis.#Bit_Fork when
+                           (again then)
+                           (maybe#each again else)}
+
+      (^.with_template []
+        [{ [head tail]}
+         { [(revised synthesis.#then again head)
+                 (list#each (revised synthesis.#then again) tail)]}])
+      ([synthesis.#I64_Fork]
+       [synthesis.#F64_Fork]
+       [synthesis.#Text_Fork])
+      
+      (^.with_template []
+        [{ left right}
+         { (again left) (again right)}])
+      ([synthesis.#Seq]
+       [synthesis.#Alt])
+      
+      {synthesis.#Then it}
+      {synthesis.#Then (without_fake_parameter it)})))
+
+(def .public (without_fake_parameter it)
+  (-> Synthesis Synthesis)
+  (when it
+    [@ {synthesis.#Simple _}]
+    it
+    
+    [@ {synthesis.#Structure it}]
+    [@ {synthesis.#Structure
+        (when it
+          {complex.#Variant it}
+          {complex.#Variant (revised complex.#value without_fake_parameter it)}
+
+          {complex.#Tuple it}
+          {complex.#Tuple (list#each without_fake_parameter it)})}]
+    
+    [@ {synthesis.#Reference it}]
+    [@ {synthesis.#Reference
+        (when it
+          {//////reference.#Variable it}
+          {//////reference.#Variable
+           (when it
+             {//////variable.#Local it}
+             {//////variable.#Local (-- it)}
+             
+             {//////variable.#Foreign _}
+             it)}
+          
+          {//////reference.#Constant _}
+          it)}]
+    
+    [@ {synthesis.#Control it}]
+    [@ {synthesis.#Control
+        (when it
+          {synthesis.#Branch it}
+          {synthesis.#Branch
+           (when it
+             {synthesis.#Exec before after}
+             {synthesis.#Exec (without_fake_parameter before)
+                              (without_fake_parameter after)}
+             
+             {synthesis.#Let value register body}
+             {synthesis.#Let (without_fake_parameter value)
+                             (-- register)
+                             (without_fake_parameter body)}
+             
+             {synthesis.#If when then else}
+             {synthesis.#If (without_fake_parameter when)
+                            (without_fake_parameter then)
+                            (without_fake_parameter else)}
+             
+             {synthesis.#Get members record}
+             {synthesis.#Get members
+                             (without_fake_parameter record)}
+             
+             {synthesis.#When value path}
+             {synthesis.#When (without_fake_parameter value)
+                              (without_fake_parameter#path without_fake_parameter path)})}
+          
+          {synthesis.#Loop it}
+          {synthesis.#Loop
+           (when it
+             {synthesis.#Scope [synthesis.#start start
+                                synthesis.#inits inits
+                                synthesis.#iteration iteration]}
+             {synthesis.#Scope [synthesis.#start (-- start)
+                                synthesis.#inits (list#each without_fake_parameter inits)
+                                synthesis.#iteration iteration]}
+             
+             {synthesis.#Again _}
+             it)}
+          
+          {synthesis.#Function it}
+          {synthesis.#Function
+           (when it
+             {synthesis.#Abstraction [synthesis.#environment environment
+                                      synthesis.#arity arity
+                                      synthesis.#body body]}
+             {synthesis.#Abstraction [synthesis.#environment (list#each without_fake_parameter environment)
+                                      synthesis.#arity arity
+                                      synthesis.#body body]}
+             
+             {synthesis.#Apply [synthesis.#function function
+                                synthesis.#arguments arguments]}
+             {synthesis.#Apply [synthesis.#function (without_fake_parameter function)
+                                synthesis.#arguments (list#each without_fake_parameter arguments)]})})}]
+
+    [@ {synthesis.#Extension name parameters}]
+    [@ {synthesis.#Extension name (list#each without_fake_parameter parameters)}]))
+
+(def overriden_method_definition
+  (Parser [(Environment Synthesis) (/.Overriden_Method Synthesis)])
+  (.tuple (do <>.monad
+                       [_ (.this_text /.overriden_tag)
+                        ownerT ..class
+                        name .text
+                        strict_fp? .bit
+                        annotations (.tuple (<>.some ..annotation))
+                        vars (.tuple (<>.some ..var))
+                        self_name .text
+                        arguments (.tuple (<>.some ..argument))
+                        returnT ..return
+                        exceptionsT (.tuple (<>.some ..class))
+                        [environment _ _ body] (<| (.function 1)
+                                                   (.loop (<>.exactly 0 .any))
+                                                   .tuple
+                                                   (<>.after .any)
+                                                   .any)
+                        .let [arity (list.size arguments)]]
+                       (in [environment
+                            [ownerT name
+                             strict_fp? annotations vars
+                             self_name arguments returnT exceptionsT
+                             (<| (..hidden_method_body arity)
+                                 (when arity
+                                   0 (without_fake_parameter body)
+                                   _ body))]]))))
+
+(def (normalize_path normalize)
+  (-> (-> Synthesis Synthesis)
+      (-> Path Path))
+  (function (again path)
+    (when path
+      (synthesis.path/then bodyS)
+      (synthesis.path/then (normalize bodyS))
+
+      (^.with_template []
+        [{ leftP rightP}
+         { (again leftP) (again rightP)}])
+      ([synthesis.#Alt]
+       [synthesis.#Seq])
+
+      (^.with_template []
+        [{ _}
+         path])
+      ([synthesis.#Pop]
+       [synthesis.#Bind]
+       [synthesis.#Access])
+
+      {synthesis.#Bit_Fork when then else}
+      {synthesis.#Bit_Fork when (again then) (maybe#each again else)}
+
+      (^.with_template []
+        [{ [[exampleH nextH] tail]}
+         { [[exampleH (again nextH)]
+                 (list#each (function (_ [example next])
+                              [example (again next)])
+                            tail)]}])
+      ([synthesis.#I64_Fork]
+       [synthesis.#F64_Fork]
+       [synthesis.#Text_Fork]))))
+
+(type Mapping
+  (Dictionary Synthesis Variable))
+
+(def (normalize_method_body mapping)
+  (-> Mapping Synthesis Synthesis)
+  (function (again body)
+    (when body
+      (^.with_template []
+        [
+         body])
+      ([[@ {synthesis.#Simple _}]]
+       [(synthesis.constant @ _)])
+
+      (synthesis.variant @ [lefts right? sub])
+      (synthesis.variant @ [lefts right? (again sub)])
+
+      (synthesis.tuple @ members)
+      (synthesis.tuple @ (list#each again members))
+
+      (synthesis.variable @ var)
+      (|> mapping
+          (dictionary.value body)
+          (maybe.else var)
+          (synthesis.variable @))
+
+      (synthesis.branch/when @ [inputS pathS])
+      (synthesis.branch/when @ [(again inputS) (normalize_path again pathS)])
+
+      (synthesis.branch/exec @ [this that])
+      (synthesis.branch/exec @ [(again this) (again that)])
+
+      (synthesis.branch/let @ [inputS register outputS])
+      (synthesis.branch/let @ [(again inputS) register (again outputS)])
+
+      (synthesis.branch/if @ [testS thenS elseS])
+      (synthesis.branch/if @ [(again testS) (again thenS) (again elseS)])
+
+      (synthesis.branch/get @ [path recordS])
+      (synthesis.branch/get @ [path (again recordS)])
+
+      (synthesis.loop/scope @ [offset initsS+ bodyS])
+      (synthesis.loop/scope @ [offset (list#each again initsS+) (again bodyS)])
+
+      (synthesis.loop/again @ updatesS+)
+      (synthesis.loop/again @ (list#each again updatesS+))
+
+      (synthesis.function/abstraction @ [environment arity bodyS])
+      (synthesis.function/abstraction @ [(list#each (function (_ captured)
+                                                      (when captured
+                                                        (synthesis.variable @ var)
+                                                        (|> mapping
+                                                            (dictionary.value captured)
+                                                            (maybe.else var)
+                                                            (synthesis.variable @))
+
+                                                        _
+                                                        captured))
+                                                    environment)
+                                         arity
+                                         bodyS])
+
+      (synthesis.function/apply @ [functionS inputsS+])
+      (synthesis.function/apply @ [(again functionS) (list#each again inputsS+)])
+
+      [@ {synthesis.#Extension [name inputsS+]}]
+      [@ {synthesis.#Extension [name (list#each again inputsS+)]}])))
+
+(def $Object
+  (type.class "java.lang.Object" (list)))
+
+(def (anonymous_init_method env inputsTI)
+  (-> (Environment Synthesis) (List (Typed (Bytecode Any))) (Type category.Method))
+  (type.method [(list)
+                (list.repeated (n.+ (list.size inputsTI) (list.size env)) ..$Object)
+                type.void
+                (list)]))
+
+(def (with_anonymous_init class env super_class inputsTG)
+  (-> (Type category.Class) (Environment Synthesis) (Type category.Class) (List (Typed (Bytecode Any))) (Resource Method))
+  (let [inputs_offset (list.size inputsTG)
+        inputs! (|> inputsTG
+                    list.enumeration
+                    (list#each (function (_ [register [type term]])
+                                 (let [then! (when (type.primitive? type)
+                                               {.#Right type}
+                                               (///value.unwrap type)
+                                               
+                                               {.#Left type}
+                                               (_.checkcast type))]
+                                   (all _.composite
+                                        (_.aload (++ register))
+                                        then!))))
+                    list.reversed
+                    (list#mix _.composite (_#in [])))
+        store_captured! (|> env
+                            list.size
+                            list.indices
+                            (monad.each _.monad (.function (_ register)
+                                                  (all _.composite
+                                                       (_.aload 0)
+                                                       (_.aload (n.+ inputs_offset (++ register)))
+                                                       (_.putfield class (///reference.foreign_name register) $Object)))))]
+    (method.method method.public ""
+      true (anonymous_init_method env inputsTG)
+      (list)
+      {.#Some (all _.composite
+                   (_.aload 0)
+                   inputs!
+                   (_.invokespecial super_class "" (type.method [(list) (list#each product.left inputsTG) type.void (list)]))
+                   store_captured!
+                   _.return)})))
+
+(def (anonymous_instance translate archive class env inputsTI)
+  (-> Phase Archive (Type category.Class) (Environment Synthesis) (List (Typed (Bytecode Any))) (Operation (Bytecode Any)))
+  (do [! //////.monad]
+    [captureG+ (monad.each ! (translate archive) env)]
+    (in (all _.composite
+             (_.new class)
+             _.dup
+             (|> inputsTI
+                 (list#each product.right)
+                 list.reversed
+                 (list#mix _.composite (_#in [])))
+             (monad.all _.monad captureG+)
+             (_.invokespecial class "" (anonymous_init_method env inputsTI))))))
+
+(def (returnG returnT)
+  (-> (Type Return) (Bytecode Any))
+  (when (type.void? returnT)
+    {.#Right returnT}
+    _.return
+
+    {.#Left returnT}
+    (when (type.primitive? returnT)
+      {.#Left returnT}
+      (when (type.class? returnT)
+        {.#Some class_name}
+        (all _.composite
+             (_.checkcast returnT)
+             _.areturn)
+
+        {.#None}
+        _.areturn)
+      
+      {.#Right returnT}
+      (template.let [(unwrap_primitive  )
+                     [(all _.composite
+                           (///value.unwrap )
+                           )]]
+        (`` (cond (,, (with_template [ ]
+                        [(at type.equivalence =  returnT)
+                         (unwrap_primitive  )]
+
+                        [_.ireturn type.boolean]
+                        [_.ireturn type.byte]
+                        [_.ireturn type.short]
+                        [_.ireturn type.int]
+                        [_.ireturn type.char]
+                        [_.freturn type.float]
+                        [_.lreturn type.long]))
+
+                  ... (at type.equivalence = type.double returnT)
+                  (unwrap_primitive _.dreturn type.double)))))))
+
+(def (method_dependencies archive method)
+  (-> Archive (/.Overriden_Method Synthesis) (Operation (Set unit.ID)))
+  (let [[_super _name _strict_fp? _annotations
+         _t_vars _this _arguments _return _exceptions
+         bodyS] method]
+    (cache/artifact.dependencies archive bodyS)))
+
+(def (anonymous_dependencies archive inputsTS overriden_methods)
+  (-> Archive (List Input) (List [(Environment Synthesis) (/.Overriden_Method Synthesis)])
+      (Operation (Set unit.ID)))
+  (do [! //////.monad]
+    [all_input_dependencies (monad.each ! (|>> product.right (cache/artifact.dependencies archive)) inputsTS)
+     all_closure_dependencies (|> overriden_methods
+                                  (list#each product.left)
+                                  list.together
+                                  (monad.each ! (cache/artifact.dependencies archive)))
+     all_method_dependencies (monad.each ! (|>> product.right (method_dependencies archive)) overriden_methods)]
+    (in (cache/artifact.all (all list#composite
+                                 all_input_dependencies
+                                 all_closure_dependencies
+                                 all_method_dependencies)))))
+
+(def (prepare_argument lux_register argumentT jvm_register)
+  (-> Register (Type Value) Register [Register (Bytecode Any)])
+  (when (type.primitive? argumentT)
+    {.#Left argumentT}
+    [(n.+ 1 jvm_register)
+     (if (n.= lux_register jvm_register)
+       (_#in [])
+       (all _.composite
+            (_.aload jvm_register)
+            (_.astore lux_register)))]
+    
+    {.#Right argumentT}
+    (template.let [(wrap_primitive   )
+                   [[(n.+  jvm_register)
+                     (all _.composite
+                          ( jvm_register)
+                          (///value.wrap )
+                          (_.astore lux_register))]]]
+      (`` (cond (,, (with_template [  ]
+                      [(at type.equivalence =  argumentT)
+                       (wrap_primitive   )]
+
+                      [1 _.iload type.boolean]
+                      [1 _.iload type.byte]
+                      [1 _.iload type.short]
+                      [1 _.iload type.int]
+                      [1 _.iload type.char]
+                      [1 _.fload type.float]
+                      [2 _.lload type.long]))
+
+                ... (at type.equivalence = type.double argumentT)
+                (wrap_primitive 2 _.dload type.double))))))
+
+(def .public (prepare_arguments offset types)
+  (-> Nat (List (Type Value)) (Bytecode Any))
+  (|> types
+      list.enumeration
+      (list#mix (function (_ [lux_register type] [jvm_register before])
+                  (let [[jvm_register' after] (prepare_argument (n.+ offset lux_register) type jvm_register)]
+                    [jvm_register'
+                     (all _.composite
+                          before
+                          after)]))
+                (is [Register (Bytecode Any)]
+                    [offset
+                     (_#in [])]))
+      product.right))
+
+(def (normalized_method global_mapping [environment method])
+  (-> Mapping [(Environment Synthesis) (/.Overriden_Method Synthesis)]
+      (/.Overriden_Method Synthesis))
+  (let [[ownerT name strict_fp? annotations vars self_name arguments returnT exceptionsT body] method
+        local_mapping (|> environment
+                          list.enumeration
+                          (list#each (function (_ [foreign_id capture])
+                                       [(synthesis.variable/foreign location.dummy foreign_id)
+                                        (|> global_mapping
+                                            (dictionary.value capture)
+                                            maybe.trusted)]))
+                          (dictionary.of_list synthesis.hash))]
+    [ownerT name
+     strict_fp? annotations vars
+     self_name arguments returnT exceptionsT
+     (normalize_method_body local_mapping body)]))
+
+(def (total_environment overriden_methods)
+  (-> (List [(Environment Synthesis) (/.Overriden_Method Synthesis)])
+      (List Synthesis))
+  (|> overriden_methods
+      ... Get all the environments.
+      (list#each product.left)
+      ... Combine them.
+      list#conjoint
+      ... Remove duplicates.
+      (set.of_list synthesis.hash)
+      set.list))
+
+(def (global_mapping total_environment)
+  (-> (List Synthesis) Mapping)
+  (|> total_environment
+      ... Give them names as "foreign" variables.
+      list.enumeration
+      (list#each (function (_ [id capture])
+                   [capture {//////variable.#Foreign id}]))
+      (dictionary.of_list synthesis.hash)))
+
+(def (method_definition phase archive artifact_id method)
+  (-> Phase Archive artifact.ID (/.Overriden_Method Synthesis) (Operation (Resource Method)))
+  (let [[ownerT name strict_fp? annotations vars self_name arguments returnT exceptionsT bodyS] method]
+    (do //////.monad
+      [bodyG (//////translation.with_context artifact_id
+               (phase archive bodyS))
+       .let [argumentsT (list#each product.right arguments)
+             methodT (type.method [vars argumentsT returnT exceptionsT])]]
+      (in (method.method (all modifier#composite
+                              method.public
+                              method.final
+                              (if strict_fp?
+                                method.strict
+                                modifier#identity))
+            name
+            true methodT
+            (list)
+            {.#Some (all _.composite
+                         (prepare_arguments 1 argumentsT)
+                         bodyG
+                         (returnG returnT))})))))
+
+(def class::anonymous
+  Handler
+  (..custom
+   [(all <>.and
+         ..class
+         (.tuple (<>.some ..class))
+         (.tuple (<>.some ..input))
+         (.tuple (<>.some ..overriden_method_definition)))
+    (function (_ translate archive [super_class
+                                    super_interfaces
+                                    inputsTS
+                                    overriden_methods])
+      (do [! //////.monad]
+        [all_dependencies (anonymous_dependencies archive inputsTS overriden_methods)
+         [context _] (//////translation.with_new_context archive all_dependencies (in []))
+         .let [[module_id artifact_id] context
+               anonymous_class_name (///runtime.class_name context)
+               class (type.class anonymous_class_name (list))
+               total_environment (..total_environment overriden_methods)
+               global_mapping (..global_mapping total_environment)]
+         inputsTI (monad.each ! (translate_input translate archive) inputsTS)
+         methods! (|> overriden_methods
+                      (list#each (normalized_method global_mapping))
+                      (monad.each ! (method_definition translate archive artifact_id)))
+         bytecode (<| (at ! each (\\format.result class.format))
+                      //////.lifted
+                      (class.class version.v6_0 (all modifier#composite class.public class.final)
+                        (name.internal anonymous_class_name)
+                        {.#None}
+                        (name.internal (..reflection super_class))
+                        (list#each (|>> ..reflection name.internal) super_interfaces)
+                        (foreign.variables total_environment)
+                        (list.partial (..with_anonymous_init class total_environment super_class inputsTI)
+                                      methods!)
+                        (list)))
+         .let [artifact [anonymous_class_name bytecode]]
+         _ (//////translation.execute! artifact)
+         _ (//////translation.save! artifact_id {.#None} artifact)]
+        (anonymous_instance translate archive class total_environment inputsTI)))]))
+
+(def with_class_extensions
+  (-> Bundle Bundle)
+  (dictionary.has (%.format "jvm_" "class_" "anonymous" "#" "|translation") class::anonymous))
+
+(def .public bundle
+  Bundle
+  (<| with_conversion_extensions
+      with_int_extensions
+      with_long_extensions
+      with_float_extensions
+      with_double_extensions
+      with_char_extensions
+      with_array_extensions
+      with_object_extensions
+      with_member_extensions
+      with_class_extensions
+      extension.empty))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua.lux
new file mode 100644
index 000000000..65fa90262
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua.lux
@@ -0,0 +1,18 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [lua
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (dictionary.composite /common.bundle
+                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux
new file mode 100644
index 000000000..b332a5639
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux
@@ -0,0 +1,226 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]
+    ["[0]" try]]
+   [data
+    ["[0]" product]
+    ["[0]" text
+     ["%" \\format (.only format)]]
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list (.use "[1]#[0]" functor mix)]]]
+   [math
+    [number
+     ["f" frac]]]
+   [meta
+    [macro
+     ["^" pattern]]
+    ["@" target (.only)
+     ["_" lua (.only Expression Statement)]]]]]
+ ["[0]" ////
+  ["/" bundle]
+  ["/[1]" //
+   ["[0]" extension]
+   [translation
+    [extension (.only Nullary Unary Binary Trinary
+                      nullary unary binary trinary)]
+    ["//" lua
+     ["[1][0]" runtime (.only Operation Phase Phase! Handler Bundle Translator)]
+     ["[1][0]" primitive]
+     ["[1][0]" structure]
+     ["[1][0]" reference]
+     ["[1][0]" when]
+     ["[1][0]" loop]
+     ["[1][0]" function]]]
+   [//
+    ["[0]" translation]
+    ["[0]" synthesis (.only %synthesis)
+     ["" \\parser (.only Parser)]]
+    [///
+     ["[1]" phase (.use "[1]#[0]" monad)]]]]])
+
+(def !unary
+  (template (_ function)
+    [(|>> list _.apply (|> (_.var function)))]))
+
+(def .public (statement expression archive synthesis)
+  Phase!
+  (when synthesis
+    ... TODO: Get rid of this ASAP
+    {synthesis.#Extension [.prelude "when_char#|translation"] parameters}
+    (do /////.monad
+      [body (expression archive synthesis)]
+      (in (as Statement body)))
+    
+    (^.with_template []
+      [( value)
+       (/////#each _.return (expression archive synthesis))])
+    ([synthesis.bit]
+     [synthesis.i64]
+     [synthesis.f64]
+     [synthesis.text]
+     [synthesis.variant]
+     [synthesis.tuple]
+     [synthesis.branch/get]
+     [synthesis.function/apply])
+
+    (^.with_template []
+      [{ value}
+       (/////#each _.return (expression archive synthesis))])
+    ([synthesis.#Reference]
+     [synthesis.#Extension])
+
+    (synthesis.branch/when when)
+    (//when.when! statement expression archive when)
+
+    (synthesis.branch/exec it)
+    (//when.exec! statement expression archive it)
+
+    (synthesis.branch/let let)
+    (//when.let! statement expression archive let)
+
+    (synthesis.branch/if if)
+    (//when.if! statement expression archive if)
+
+    (synthesis.loop/scope scope)
+    (do /////.monad
+      [[inits scope!] (//loop.scope! statement expression archive false scope)]
+      (in scope!))
+
+    (synthesis.loop/again updates)
+    (//loop.again! statement expression archive updates)
+
+    (synthesis.function/abstraction abstraction)
+    (/////#each _.return (//function.function statement expression archive abstraction))
+    ))
+
+... TODO: Get rid of this ASAP
+(def lux::syntax_char_case!
+  (..custom [(all <>.and
+                  .any
+                  .any
+                  (<>.some (.tuple (all <>.and
+                                           (.tuple (<>.many .i64))
+                                           .any))))
+             (function (_ extension_name phase archive [input else conditionals])
+               (|> conditionals
+                   (list#each (function (_ [chars branch])
+                                {synthesis.#Seq (when chars
+                                                  {.#End}
+                                                  {synthesis.#Pop}
+                                                  
+                                                  {.#Item head tail}
+                                                  {synthesis.#I64_Fork
+                                                   [head {synthesis.#Pop}]
+                                                   (list#each (function (_ char)
+                                                                [char {synthesis.#Pop}])
+                                                              tail)})
+                                                {synthesis.#Then branch}}))
+                   list.reversed
+                   (list#mix (function (_ pre post)
+                               {synthesis.#Alt pre post})
+                             {synthesis.#Then else})
+                   [input]
+                   (//when.when! statement phase archive)
+                   (at /////.monad each (|>> (as Expression)))))]))
+
+(def lux_procs
+  Bundle
+  (|> /.empty
+      (/.install "syntax char case!" lux::syntax_char_case!)
+      (/.install "is" (binary (product.uncurried _.=)))
+      (/.install "try" (unary //runtime.lux//try))))
+
+(def i64_procs
+  Bundle
+  (<| (/.prefix "i64")
+      (|> /.empty
+          (/.install "and" (binary (product.uncurried _.bit_and)))
+          (/.install "or" (binary (product.uncurried _.bit_or)))
+          (/.install "xor" (binary (product.uncurried _.bit_xor)))
+          (/.install "left-shift" (binary (product.uncurried //runtime.i64//left_shifted)))
+          (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shifted)))
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "+" (binary (product.uncurried _.+)))
+          (/.install "-" (binary (product.uncurried _.-)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "*" (binary (product.uncurried _.*)))
+          (/.install "/" (binary (product.uncurried //runtime.i64//division)))
+          (/.install "%" (binary (product.uncurried //runtime.i64//remainder)))
+          (/.install "f64" (unary (_./ (_.float +1.0))))
+          (/.install "char" (unary (function (_ it) (_.apply (list it) (_.var "utf8.char")))))
+          )))
+
+(def f64//decode
+  (Unary Expression)
+  (|>> list _.apply (|> (_.var "tonumber")) _.return (_.closure (list)) //runtime.lux//try))
+
+(def f64_procs
+  Bundle
+  (<| (/.prefix "f64")
+      (|> /.empty
+          (/.install "+" (binary (product.uncurried _.+)))
+          (/.install "-" (binary (product.uncurried _.-)))
+          (/.install "*" (binary (product.uncurried _.*)))
+          (/.install "/" (binary (product.uncurried _./)))
+          (/.install "%" (binary (product.uncurried (function (_ parameter subject) (_.apply (list subject parameter) (_.var "math.fmod"))))))
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "i64" (unary (!unary "math.floor")))
+          (/.install "encode" (unary (function (_ it) (_.apply (list (_.string "%.17g") it) (_.var "string.format")))))
+          (/.install "decode" (unary ..f64//decode)))))
+
+(def (text//char [paramO subjectO])
+  (Binary Expression)
+  (//runtime.text//char (_.+ (_.int +1) paramO) subjectO))
+
+(def (text//clip [paramO extraO subjectO])
+  (Trinary Expression)
+  (//runtime.text//clip subjectO paramO extraO))
+
+(def (text//index [startO partO textO])
+  (Trinary Expression)
+  (//runtime.text//index textO partO startO))
+
+(def text_procs
+  Bundle
+  (<| (/.prefix "text")
+      (|> /.empty
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "concat" (binary (product.uncurried (function.flipped _.concat))))
+          (/.install "index" (trinary ..text//index))
+          (/.install "size" (unary //runtime.text//size))
+          ... TODO: Use version below once the Lua compiler becomes self-hosted.
+          ... (/.install "size" (unary (for @.lua (!unary "utf8.len")
+          ...                               (!unary "string.len"))))
+          (/.install "char" (binary ..text//char))
+          (/.install "clip" (trinary ..text//clip))
+          )))
+
+(def (io//log! messageO)
+  (Unary Expression)
+  (|> (_.apply (list messageO) (_.var "print"))
+      (_.or //runtime.unit)))
+
+(def io_procs
+  Bundle
+  (<| (/.prefix "io")
+      (|> /.empty
+          (/.install "log" (unary ..io//log!))
+          (/.install "error" (unary (!unary "error"))))))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lux")
+      (|> lux_procs
+          (dictionary.composite i64_procs)
+          (dictionary.composite f64_procs)
+          (dictionary.composite text_procs)
+          (dictionary.composite io_procs)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux
new file mode 100644
index 000000000..97cb5fa8f
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux
@@ -0,0 +1,202 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]]
+   [data
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list]]
+    [text
+     ["%" \\format (.only format)]]]
+   [meta
+    [target
+     ["_" lua (.only Var Expression)]]]]]
+ ["[0]" //
+  ["[1][0]" common (.only custom)]
+  ["//[1]" ///
+   ["/" bundle]
+   ["/[1]" //
+    ["[0]" extension]
+    [translation
+     [extension (.only Nullary Unary Binary Trinary
+                       nullary unary binary trinary)]
+     ["[0]" reference]
+     ["//" lua
+      ["[1][0]" runtime (.only Operation Phase Handler Bundle
+                               with_vars)]]]
+    ["/[1]" //
+     ["[0]" translation]
+     [synthesis
+      ["" \\parser (.only Parser)]]
+     ["//[1]" ///
+      ["[1][0]" phase]]]]]])
+
+(def array::new
+  (Unary Expression)
+  (|>> ["n"] list _.table))
+
+(def array::length
+  (Unary Expression)
+  (_.the "n"))
+
+(def (array::read [indexG arrayG])
+  (Binary Expression)
+  (_.item (_.+ (_.int +1) indexG) arrayG))
+
+(def (array::write [indexG valueG arrayG])
+  (Trinary Expression)
+  (//runtime.array//write indexG valueG arrayG))
+
+(def (array::delete [indexG arrayG])
+  (Binary Expression)
+  (//runtime.array//write indexG _.nil arrayG))
+
+(def array
+  Bundle
+  (<| (/.prefix "array")
+      (|> /.empty
+          (/.install "new" (unary array::new))
+          (/.install "length" (unary array::length))
+          (/.install "read" (binary array::read))
+          (/.install "write" (trinary array::write))
+          (/.install "delete" (binary array::delete))
+          )))
+
+(def object::get
+  Handler
+  (custom
+   [(all <>.and .text .any)
+    (function (_ extension phase archive [fieldS objectS])
+      (do ////////phase.monad
+        [objectG (phase archive objectS)]
+        (in (_.the fieldS objectG))))]))
+
+(def object::do
+  Handler
+  (custom
+   [(all <>.and .text .any (<>.some .any))
+    (function (_ extension phase archive [methodS objectS inputsS])
+      (do [! ////////phase.monad]
+        [objectG (phase archive objectS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.do methodS inputsG objectG))))]))
+
+(with_template [  ]
+  [(def  (Nullary Expression) (function.constant ))
+   (def  (Unary Expression) (_.= ))]
+
+  [object::nil object::nil? _.nil]
+  )
+
+(def object
+  Bundle
+  (<| (/.prefix "object")
+      (|> /.empty
+          (/.install "get" object::get)
+          (/.install "do" object::do)
+          (/.install "nil" (nullary object::nil))
+          (/.install "nil?" (unary object::nil?))
+          )))
+
+(def $input
+  (_.var "input"))
+
+(def utf8::encode
+  (custom
+   [.any
+    (function (_ extension phase archive inputS)
+      (do [! ////////phase.monad]
+        [inputG (phase archive inputS)]
+        (in (<| (_.apply (list inputG))
+                (_.closure (list $input))
+                (_.return (_.apply (list (_.apply (list $input (_.int +1) (_.length $input))
+                                                  (_.var "string.byte")))
+                                   (_.var "table.pack")))))))]))
+
+(def utf8::decode
+  (custom
+   [.any
+    (function (_ extension phase archive inputS)
+      (do [! ////////phase.monad]
+        [inputG (phase archive inputS)]
+        (in (_.apply (list (_.apply (list inputG)
+                                    (_.var "table.unpack")))
+                     (_.var "string.char")))))]))
+
+(def utf8
+  Bundle
+  (<| (/.prefix "utf8")
+      (|> /.empty
+          (/.install "encode" utf8::encode)
+          (/.install "decode" utf8::decode)
+          )))
+
+(def lua::constant
+  (custom
+   [.text
+    (function (_ extension phase archive name)
+      (at ////////phase.monad in (_.var name)))]))
+
+(def lua::apply
+  (custom
+   [(all <>.and .any (<>.some .any))
+    (function (_ extension phase archive [abstractionS inputsS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.apply inputsG abstractionG))))]))
+
+(def lua::power
+  (custom
+   [(all <>.and .any .any)
+    (function (_ extension phase archive [powerS baseS])
+      (do [! ////////phase.monad]
+        [powerG (phase archive powerS)
+         baseG (phase archive baseS)]
+        (in (_.^ powerG baseG))))]))
+
+(def lua::import
+  (custom
+   [.text
+    (function (_ extension phase archive module)
+      (at ////////phase.monad in
+          (_.require/1 (_.string module))))]))
+
+(def lua::function
+  (custom
+   [(all <>.and .i64 .any)
+    (function (_ extension phase archive [arity abstractionS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         .let [variable (is (-> Text (Operation Var))
+                            (|>> translation.symbol
+                                 (at ! each _.var)))]
+         g!inputs (monad.each ! (function (_ _)
+                                  (variable "input"))
+                              (list.repeated (.nat arity) []))]
+        (in (<| (_.closure g!inputs)
+                _.return
+                (when (.nat arity)
+                  0 (_.apply (list //runtime.unit) abstractionG)
+                  1 (_.apply g!inputs abstractionG)
+                  _ (_.apply (list (_.array g!inputs)) abstractionG))))))]))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lua")
+      (|> /.empty
+          (dictionary.composite ..array)
+          (dictionary.composite ..object)
+          (dictionary.composite ..utf8)
+
+          (/.install "constant" lua::constant)
+          (/.install "apply" lua::apply)
+          (/.install "power" lua::power)
+          (/.install "import" lua::import)
+          (/.install "function" lua::function)
+          (/.install "script universe" (nullary (function.constant (_.boolean reference.universe))))
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php.lux
new file mode 100644
index 000000000..cae310997
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php.lux
@@ -0,0 +1,18 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [php
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (dictionary.composite /common.bundle
+                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/common.lux
new file mode 100644
index 000000000..b6625995e
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/common.lux
@@ -0,0 +1,181 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]
+    ["[0]" try]]
+   [data
+    ["[0]" product]
+    ["[0]" text (.only)
+     ["%" \\format (.only format)]]
+    [collection
+     ["[0]" dictionary]
+     ["[0]" set]
+     ["[0]" list (.use "[1]#[0]" functor mix)]]]
+   [math
+    [number
+     ["f" frac]]]
+   [meta
+    ["@" target (.only)
+     ["_" php (.only Expression)]]]]]
+ ["[0]" ////
+  ["/" bundle]
+  ["/[1]" //
+   ["[0]" extension]
+   [translation
+    [extension (.only Nullary Unary Binary Trinary
+                      nullary unary binary trinary)]
+    ["[0]" reference]
+    ["//" php
+     ["[1][0]" runtime (.only Operation Phase Handler Bundle Translator)]
+     ["[1][0]" when]]]
+   [//
+    ["[0]" synthesis (.only %synthesis)
+     ["" \\parser (.only Parser)]]
+    ["[0]" translation]
+    [///
+     ["[1]" phase]]]]])
+
+(def !unary
+  (template (_ function)
+    (|>> list _.apply (|> (_.constant function)))))
+
+... TODO: Get rid of this ASAP
+(def lux::syntax_char_case!
+  (..custom [(all <>.and
+                  .any
+                  .any
+                  (<>.some (.tuple (all <>.and
+                                           (.tuple (<>.many .i64))
+                                           .any))))
+             (function (_ extension_name phase archive [input else conditionals])
+               (do [! /////.monad]
+                 [inputG (phase archive input)
+                  [[context_module context_artifact] elseG] (translation.with_new_context archive
+                                                              (phase archive else))
+                  @input (at ! each _.var (translation.symbol "input"))
+                  conditionalsG (is (Operation (List [Expression Expression]))
+                                    (monad.each ! (function (_ [chars branch])
+                                                    (do !
+                                                      [branchG (phase archive branch)]
+                                                      (in [(|> chars
+                                                               (list#each (|>> .int _.int (_.=== @input)))
+                                                               (list#mix (function (_ clause total)
+                                                                           (if (same? _.null total)
+                                                                             clause
+                                                                             (_.or clause total)))
+                                                                         _.null))
+                                                           branchG])))
+                                                conditionals))
+                  .let [foreigns (|> conditionals
+                                     (list#each (|>> product.right synthesis.path/then //when.dependencies))
+                                     (list.partial (//when.dependencies (synthesis.path/then else)))
+                                     list.together
+                                     (set.of_list _.hash)
+                                     set.list)
+                        @expression (_.constant (reference.artifact [context_module context_artifact]))
+                        declaration (_.define_function @expression (list.partial (_.parameter @input) (list#each _.reference foreigns))
+                                                       (list#mix (function (_ [test then] else)
+                                                                   (_.if test (_.return then) else))
+                                                                 (_.return elseG)
+                                                                 conditionalsG))]
+                  _ (translation.execute! declaration)
+                  _ (translation.save! context_artifact declaration)]
+                 (in (_.apply (list.partial inputG foreigns) @expression))))]))
+
+(def lux_procs
+  Bundle
+  (|> /.empty
+      (/.install "syntax char case!" lux::syntax_char_case!)
+      (/.install "is" (binary (product.uncurried _.===)))
+      (/.install "try" (unary //runtime.lux//try))
+      ))
+
+(def (left_shifted [parameter subject])
+  (Binary Expression)
+  (_.bit_shl (_.% (_.int +64) parameter) subject))
+
+(def i64_procs
+  Bundle
+  (<| (/.prefix "i64")
+      (|> /.empty
+          (/.install "and" (binary (product.uncurried _.bit_and)))
+          (/.install "or" (binary (product.uncurried _.bit_or)))
+          (/.install "xor" (binary (product.uncurried _.bit_xor)))
+          (/.install "left-shift" (binary ..left_shifted))
+          (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shifted)))
+          (/.install "=" (binary (product.uncurried _.==)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "+" (binary (product.uncurried //runtime.i64//+)))
+          (/.install "-" (binary (product.uncurried //runtime.i64//-)))
+          (/.install "*" (binary (product.uncurried //runtime.i64//*)))
+          (/.install "/" (binary (function (_ [parameter subject])
+                                   (_.intdiv/2 [subject parameter]))))
+          (/.install "%" (binary (product.uncurried _.%)))
+          (/.install "f64" (unary (_./ (_.float +1.0))))
+          (/.install "char" (unary //runtime.i64//char))
+          )))
+
+(def (f64//% [parameter subject])
+  (Binary Expression)
+  (_.fmod/2 [subject parameter]))
+
+(def (f64//encode subject)
+  (Unary Expression)
+  (_.number_format/2 [subject (_.int +17)]))
+
+(def f64_procs
+  Bundle
+  (<| (/.prefix "f64")
+      (|> /.empty
+          (/.install "=" (binary (product.uncurried _.==)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "+" (binary (product.uncurried _.+)))
+          (/.install "-" (binary (product.uncurried _.-)))
+          (/.install "*" (binary (product.uncurried _.*)))
+          (/.install "/" (binary (product.uncurried _./)))
+          (/.install "%" (binary ..f64//%))
+          (/.install "i64" (unary _.intval/1))
+          (/.install "encode" (unary ..f64//encode))
+          (/.install "decode" (unary //runtime.f64//decode)))))
+
+(def (text//clip [paramO extraO subjectO])
+  (Trinary Expression)
+  (//runtime.text//clip paramO extraO subjectO))
+
+(def (text//index [startO partO textO])
+  (Trinary Expression)
+  (//runtime.text//index textO partO startO))
+
+(def text_procs
+  Bundle
+  (<| (/.prefix "text")
+      (|> /.empty
+          (/.install "=" (binary (product.uncurried _.==)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "concat" (binary (product.uncurried (function.flipped _.concat))))
+          (/.install "index" (trinary ..text//index))
+          (/.install "size" (unary //runtime.text//size))
+          (/.install "char" (binary (product.uncurried //runtime.text//char)))
+          (/.install "clip" (trinary ..text//clip))
+          )))
+
+(def io_procs
+  Bundle
+  (<| (/.prefix "io")
+      (|> /.empty
+          (/.install "log" (unary //runtime.io//log!))
+          (/.install "error" (unary //runtime.io//throw!)))))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lux")
+      (|> /.empty
+          (dictionary.composite lux_procs)
+          (dictionary.composite i64_procs)
+          (dictionary.composite f64_procs)
+          (dictionary.composite text_procs)
+          (dictionary.composite io_procs))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/host.lux
new file mode 100644
index 000000000..16a55823f
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/php/host.lux
@@ -0,0 +1,145 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]]
+   [data
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list]]
+    [text
+     ["%" \\format (.only format)]]]
+   [meta
+    [target
+     ["_" php (.only Var Expression)]]]]]
+ ["[0]" //
+  ["[1][0]" common (.only custom)]
+  ["//[1]" ///
+   ["/" bundle]
+   ["/[1]" //
+    ["[0]" extension]
+    [translation
+     [extension (.only Nullary Unary Binary Trinary
+                       nullary unary binary trinary)]
+     ["[0]" reference]
+     ["//" php
+      ["[1][0]" runtime (.only Operation Phase Handler Bundle
+                               with_vars)]]]
+    ["/[1]" //
+     ["[0]" translation]
+     [synthesis
+      ["" \\parser (.only Parser)]]
+     ["//[1]" ///
+      ["[1][0]" phase]]]]]])
+
+(def (array::new size)
+  (Unary Expression)
+  (//runtime.tuple//make size (_.array_fill/3 [(_.int +0) size _.null])))
+
+(def (array::read [indexG arrayG])
+  (Binary Expression)
+  (_.item indexG arrayG))
+
+(def (array::write [indexG valueG arrayG])
+  (Trinary Expression)
+  (//runtime.array//write indexG valueG arrayG))
+
+(def (array::delete [indexG arrayG])
+  (Binary Expression)
+  (//runtime.array//write indexG _.null arrayG))
+
+(def array
+  Bundle
+  (<| (/.prefix "array")
+      (|> /.empty
+          (/.install "new" (unary array::new))
+          (/.install "length" (unary //runtime.array//length))
+          (/.install "read" (binary array::read))
+          (/.install "write" (trinary array::write))
+          (/.install "delete" (binary array::delete))
+          )))
+
+(def object::new
+  (custom
+   [(all <>.and .text (<>.some .any))
+    (function (_ extension phase archive [constructor inputsS])
+      (do [! ////////phase.monad]
+        [inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.new (_.constant constructor) inputsG))))]))
+
+(def object::get
+  Handler
+  (custom
+   [(all <>.and .text .any)
+    (function (_ extension phase archive [fieldS objectS])
+      (do ////////phase.monad
+        [objectG (phase archive objectS)]
+        (in (_.the fieldS objectG))))]))
+
+(def object::do
+  Handler
+  (custom
+   [(all <>.and .text .any (<>.some .any))
+    (function (_ extension phase archive [methodS objectS inputsS])
+      (do [! ////////phase.monad]
+        [objectG (phase archive objectS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.do methodS inputsG objectG))))]))
+
+(with_template [  ]
+  [(def  (Nullary Expression) (function.constant ))
+   (def  (Unary Expression) (_.=== ))]
+
+  [object::null object::null? _.null]
+  )
+
+(def object
+  Bundle
+  (<| (/.prefix "object")
+      (|> /.empty
+          (/.install "new" object::new)
+          (/.install "get" object::get)
+          (/.install "do" object::do)
+          (/.install "null" (nullary object::null))
+          (/.install "null?" (unary object::null?))
+          )))
+
+(def php::constant
+  (custom
+   [.text
+    (function (_ extension phase archive name)
+      (at ////////phase.monad in (_.constant name)))]))
+
+(def php::apply
+  (custom
+   [(all <>.and .any (<>.some .any))
+    (function (_ extension phase archive [abstractionS inputsS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.apply inputsG abstractionG))))]))
+
+(def php::pack
+  (custom
+   [(all <>.and .any .any)
+    (function (_ extension phase archive [formatS dataS])
+      (do [! ////////phase.monad]
+        [formatG (phase archive formatS)
+         dataG (phase archive dataS)]
+        (in (_.pack/2 [formatG (_.splat dataG)]))))]))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "php")
+      (|> /.empty
+          (dictionary.composite ..array)
+          (dictionary.composite ..object)
+
+          (/.install "constant" php::constant)
+          (/.install "apply" php::apply)
+          (/.install "pack" php::pack)
+          (/.install "script universe" (nullary (function.constant (_.bool reference.universe))))
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python.lux
new file mode 100644
index 000000000..a84adb1b4
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python.lux
@@ -0,0 +1,18 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [python
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (dictionary.composite /common.bundle
+                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux
new file mode 100644
index 000000000..ff724bd07
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux
@@ -0,0 +1,233 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]
+    ["[0]" try]]
+   [data
+    ["[0]" product]
+    ["[0]" text (.only)
+     ["%" \\format (.only format)]]
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list (.use "[1]#[0]" functor mix)]]]
+   [math
+    [number
+     ["f" frac]]]
+   [meta
+    [macro
+     ["^" pattern]]
+    [target
+     ["_" python (.only Expression Statement)]]]]]
+ ["[0]" ////
+  ["/" bundle]
+  ["/[1]" //
+   ["[0]" extension]
+   [translation
+    ["[0]" reference]
+    [extension (.only Nullary Unary Binary Trinary
+                      nullary unary binary trinary)]
+    ["//" python
+     ["[1][0]" runtime (.only Operation Phase Phase! Handler Bundle Translator)]
+     ["[1][0]" primitive]
+     ["[1][0]" structure]
+     ["[1][0]" reference]
+     ["[1][0]" function]
+     ["[1][0]" when]
+     ["[1][0]" loop]]]
+   [//
+    [analysis (.only)]
+    ["[0]" translation]
+    ["[0]" synthesis (.only %synthesis)
+     ["<[1]>" \\parser (.only Parser)]]
+    [///
+     ["[1]" phase (.use "[1]#[0]" monad)]]]]])
+
+(def .public (statement expression archive synthesis)
+  Phase!
+  (when synthesis
+    ... TODO: Get rid of this ASAP
+    {synthesis.#Extension [.prelude "when_char#|translation"] parameters}
+    (do /////.monad
+      [body (expression archive synthesis)]
+      (in (as (Statement Any) body)))
+    
+    (^.with_template []
+      [( value)
+       (/////#each _.return (expression archive synthesis))])
+    ([synthesis.bit]
+     [synthesis.i64]
+     [synthesis.f64]
+     [synthesis.text]
+     [synthesis.variant]
+     [synthesis.tuple]
+     [synthesis.branch/get]
+     [synthesis.function/apply])
+
+    (^.with_template []
+      [{ value}
+       (/////#each _.return (expression archive synthesis))])
+    ([synthesis.#Reference]
+     [synthesis.#Extension])
+
+    (synthesis.branch/when when)
+    (//when.when! false statement expression archive when)
+
+    (^.with_template [ ]
+      [( value)
+       ( statement expression archive value)])
+    ([synthesis.branch/exec //when.exec!]
+     [synthesis.branch/let //when.let!]
+     [synthesis.branch/if //when.if!]
+     [synthesis.loop/scope //loop.scope!]
+     [synthesis.loop/again //loop.again!])
+
+    (synthesis.function/abstraction abstraction)
+    (/////#each _.return (//function.function statement expression archive abstraction))
+    ))
+
+... TODO: Get rid of this ASAP
+(def lux::syntax_char_case!
+  (..custom [(all <>.and
+                  .any
+                  .any
+                  (<>.some (.tuple (all <>.and
+                                                   (.tuple (<>.many .i64))
+                                                   .any))))
+             (function (_ extension_name phase archive [input else conditionals])
+               (do [! /////.monad]
+                 [inputG (phase archive input)
+                  else! (..statement phase archive else)
+                  @input (at ! each _.var (translation.symbol "input"))
+                  conditionals! (is (Operation (List [(Expression Any)
+                                                      (Statement Any)]))
+                                    (monad.each ! (function (_ [chars branch])
+                                                    (do !
+                                                      [branch! (..statement phase archive branch)]
+                                                      (in [(|> chars
+                                                               (list#each (|>> .int _.int (_.= @input)))
+                                                               (list#mix (function (_ clause total)
+                                                                           (if (same? _.none total)
+                                                                             clause
+                                                                             (_.or clause total)))
+                                                                         _.none))
+                                                           branch!])))
+                                                conditionals))
+                  ... .let [dependencies (//case.dependencies (list#mix (function (_ right left)
+                  ...                                                      (synthesis.path/seq left right))
+                  ...                                                    (synthesis.path/then input)
+                  ...                                                    {.#Item (synthesis.path/then else)
+                  ...                                                     (list#each (|>> product.right
+                  ...                                                                     synthesis.path/then)
+                  ...                                                                conditionals)}))
+                  ...       @closure (_.var (reference.artifact artifact_id))
+                  ...       closure (_.def @closure dependencies
+                  ...                      (all _.then
+                  ...                          (_.set (list @input) inputG)
+                  ...                          (list#mix (function (_ [test then!] else!)
+                  ...                                       (_.if test then! else!))
+                  ...                                     else!
+                  ...                                     conditionals!)))]
+                  ... _ (translation.execute! closure)
+                  ... _ (translation.save! (product.right artifact_id) {.#None} closure)
+                  ]
+                 ... (in (_.apply @closure dependencies))
+                 (in (<| (as (Expression Any))
+                         (is (Statement Any))
+                         (all _.then
+                              (_.set (list @input) inputG)
+                              (list#mix (function (_ [test then!] else!)
+                                          (_.if test then! else!))
+                                        else!
+                                        conditionals!))))))]))
+
+(def lux_procs
+  Bundle
+  (|> /.empty
+      (/.install "syntax char case!" lux::syntax_char_case!)
+      (/.install "is" (binary (product.uncurried _.is)))
+      (/.install "try" (unary //runtime.lux::try))))
+
+(def (capped operation parameter subject)
+  (-> (-> (Expression Any) (Expression Any) (Expression Any))
+      (-> (Expression Any) (Expression Any) (Expression Any)))
+  (//runtime.i64::64 (operation parameter subject)))
+
+(def i64_procs
+  Bundle
+  (<| (/.prefix "i64")
+      (|> /.empty
+          (/.install "and" (binary (product.uncurried //runtime.i64::and)))
+          (/.install "or" (binary (product.uncurried //runtime.i64::or)))
+          (/.install "xor" (binary (product.uncurried //runtime.i64::xor)))
+          (/.install "left-shift" (binary (product.uncurried //runtime.i64::left_shifted)))
+          (/.install "right-shift" (binary (product.uncurried //runtime.i64::right_shifted)))
+
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "+" (binary (product.uncurried (..capped _.+))))
+          (/.install "-" (binary (product.uncurried (..capped _.-))))
+          (/.install "*" (binary (product.uncurried (..capped _.*))))
+          (/.install "/" (binary (product.uncurried //runtime.i64#/)))
+          (/.install "%" (binary (product.uncurried //runtime.i64::remainder)))
+          (/.install "f64" (unary _.float/1))
+          (/.install "char" (unary //runtime.i64::char))
+          )))
+
+(def f64_procs
+  Bundle
+  (<| (/.prefix "f64")
+      (|> /.empty
+          (/.install "+" (binary (product.uncurried _.+)))
+          (/.install "-" (binary (product.uncurried _.-)))
+          (/.install "*" (binary (product.uncurried _.*)))
+          (/.install "/" (binary (product.uncurried //runtime.f64::/)))
+          (/.install "%" (binary (function (_ [parameter subject])
+                                   (|> (_.__import__/1 (_.unicode "math"))
+                                       (_.do "fmod" (list subject parameter))))))
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "i64" (unary _.int/1))
+          (/.install "encode" (unary _.repr/1))
+          (/.install "decode" (unary //runtime.f64::decode)))))
+
+(def (text::clip [paramO extraO subjectO])
+  (Trinary (Expression Any))
+  (//runtime.text::clip paramO extraO subjectO))
+
+(def (text::index [startO partO textO])
+  (Trinary (Expression Any))
+  (//runtime.text::index startO partO textO))
+
+(def text_procs
+  Bundle
+  (<| (/.prefix "text")
+      (|> /.empty
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "concat" (binary (product.uncurried (function.flipped _.+))))
+          (/.install "index" (trinary ..text::index))
+          (/.install "size" (unary _.len/1))
+          (/.install "char" (binary (product.uncurried //runtime.text::char)))
+          (/.install "clip" (trinary ..text::clip))
+          )))
+
+(def io_procs
+  Bundle
+  (<| (/.prefix "io")
+      (|> /.empty
+          (/.install "log" (unary //runtime.io::log!))
+          (/.install "error" (unary //runtime.io::throw!)))))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lux")
+      (|> lux_procs
+          (dictionary.composite i64_procs)
+          (dictionary.composite f64_procs)
+          (dictionary.composite text_procs)
+          (dictionary.composite io_procs)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux
new file mode 100644
index 000000000..d9af74b71
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux
@@ -0,0 +1,169 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]]
+   [data
+    ["[0]" text (.only)
+     ["%" \\format]]
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list]]]
+   [meta
+    [target
+     ["_" python (.only Expression SVar)]]]]]
+ ["[0]" //
+  ["[1][0]" common (.only custom)]
+  ["//[1]" ///
+   ["/" bundle]
+   ["/[1]" //
+    ["[0]" extension]
+    [translation
+     [extension (.only Nullary Unary Binary Trinary
+                       nullary unary binary trinary)]
+     ["//" python
+      ["[1][0]" runtime (.only Operation Phase Handler Bundle
+                               with_vars)]]]
+    ["/[1]" //
+     ["[0]" translation]
+     [synthesis
+      ["" \\parser (.only Parser)]]
+     ["//[1]" ///
+      ["[1][0]" phase]]]]]])
+
+(def (array::new size)
+  (Unary (Expression Any))
+  (|> (list _.none)
+      _.list
+      (_.* size)))
+
+(def array::length
+  (Unary (Expression Any))
+  (|>> _.len/1 //runtime.i64::64))
+
+(def (array::read [indexG arrayG])
+  (Binary (Expression Any))
+  (_.item indexG arrayG))
+
+(def (array::write [indexG valueG arrayG])
+  (Trinary (Expression Any))
+  (//runtime.array::write indexG valueG arrayG))
+
+(def (array::delete [indexG arrayG])
+  (Binary (Expression Any))
+  (//runtime.array::write indexG _.none arrayG))
+
+(def array
+  Bundle
+  (<| (/.prefix "array")
+      (|> /.empty
+          (/.install "new" (unary array::new))
+          (/.install "length" (unary array::length))
+          (/.install "read" (binary array::read))
+          (/.install "write" (trinary array::write))
+          (/.install "delete" (binary array::delete))
+          )))
+
+(def object::get
+  Handler
+  (custom
+   [(all <>.and .text .any)
+    (function (_ extension phase archive [fieldS objectS])
+      (do ////////phase.monad
+        [objectG (phase archive objectS)]
+        (in (_.the fieldS objectG))))]))
+
+(def object::do
+  Handler
+  (custom
+   [(all <>.and .text .any (<>.some .any))
+    (function (_ extension phase archive [methodS objectS inputsS])
+      (do [! ////////phase.monad]
+        [objectG (phase archive objectS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.do methodS inputsG objectG))))]))
+
+(with_template [  ]
+  [(def  (Nullary (Expression Any)) (function.constant ))
+   (def  (Unary (Expression Any)) (_.= ))]
+
+  [object::none object::none? _.none]
+  )
+
+(def object
+  Bundle
+  (<| (/.prefix "object")
+      (|> /.empty
+          (/.install "get" object::get)
+          (/.install "do" object::do)
+          (/.install "none" (nullary object::none))
+          (/.install "none?" (unary object::none?))
+          )))
+
+(def python::constant
+  (custom
+   [.text
+    (function (_ extension phase archive name)
+      (do ////////phase.monad
+        []
+        (in (_.var name))))]))
+
+(def python::import
+  (custom
+   [.text
+    (function (_ extension phase archive module)
+      (do ////////phase.monad
+        []
+        (in (_.apply (list (_.string module)) (_.var "__import__")))))]))
+
+(def python::apply
+  (custom
+   [(all <>.and .any (<>.some .any))
+    (function (_ extension phase archive [abstractionS inputsS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.apply inputsG abstractionG))))]))
+
+(def python::function
+  (custom
+   [(all <>.and .i64 .any)
+    (function (_ extension phase archive [arity abstractionS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         .let [variable (is (-> Text (Operation SVar))
+                            (|>> translation.symbol
+                                 (at ! each _.var)))]
+         g!inputs (monad.each ! (function (_ _) (variable "input"))
+                              (list.repeated (.nat arity) []))]
+        (in (_.lambda g!inputs
+                      (when (.nat arity)
+                        0 (_.apply (list //runtime.unit) abstractionG)
+                        1 (_.apply g!inputs abstractionG)
+                        _ (_.apply (list (_.list g!inputs)) abstractionG))))))]))
+
+(def python::exec
+  (custom
+   [(all <>.and .any .any)
+    (function (_ extension phase archive [codeS globalsS])
+      (do [! ////////phase.monad]
+        [codeG (phase archive codeS)
+         globalsG (phase archive globalsS)]
+        (in (//runtime.lux::exec codeG globalsG))))]))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "python")
+      (|> /.empty
+          (dictionary.composite ..array)
+          (dictionary.composite ..object)
+
+          (/.install "constant" python::constant)
+          (/.install "import" python::import)
+          (/.install "apply" python::apply)
+          (/.install "function" python::function)
+          (/.install "exec" python::exec)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r.lux
new file mode 100644
index 000000000..3d44b164f
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r.lux
@@ -0,0 +1,18 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [r
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (dictionary.composite /common.bundle
+                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/common.lux
new file mode 100644
index 000000000..ad16cb2da
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/common.lux
@@ -0,0 +1,168 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]
+    ["[0]" try]]
+   [data
+    ["[0]" product]
+    ["[0]" text (.only)
+     ["%" \\format (.only format)]]
+    [collection
+     ["[0]" dictionary]
+     ["[0]" set]
+     ["[0]" list (.use "[1]#[0]" functor mix)]]]
+   [math
+    [number
+     ["f" frac]]]
+   [meta
+    ["@" target (.only)
+     ["_" r (.only Expression)]]]]]
+ ["[0]" ////
+  ["/" bundle]
+  ["/[1]" //
+   ["[0]" extension]
+   [translation
+    [extension (.only Nullary Unary Binary Trinary
+                      nullary unary binary trinary)]
+    ["[0]" reference]
+    ["//" r
+     ["[1][0]" runtime (.only Operation Phase Handler Bundle Translator)]
+     ["[1][0]" when]]]
+   [//
+    ["[0]" synthesis (.only %synthesis)
+     ["" \\parser (.only Parser)]]
+    ["[0]" translation]
+    [///
+     ["[1]" phase]]]]])
+
+... (def !unary
+...   (template (_ function)
+...     (|>> list _.apply (|> (_.constant function)))))
+
+... ... ... TODO: Get rid of this ASAP
+... ... (def lux::syntax_char_case!
+... ...   (..custom [(all <>.and
+... ...                  .any
+... ...                  .any
+... ...                  (<>.some (.tuple (all <>.and
+... ...                                          (.tuple (<>.many .i64))
+... ...                                          .any))))
+... ...              (function (_ extension_name phase archive [input else conditionals])
+... ...                (do [! /////.monad]
+... ...                  [@input (at ! each _.var (translation.symbol "input"))
+... ...                   inputG (phase archive input)
+... ...                   elseG (phase archive else)
+... ...                   conditionalsG (is (Operation (List [Expression Expression]))
+... ...                                    (monad.each ! (function (_ [chars branch])
+... ...                                                   (do !
+... ...                                                     [branchG (phase archive branch)]
+... ...                                                     (in [(|> chars (list#each (|>> .int _.int (_.=/2 @input))) _.or)
+... ...                                                            branchG])))
+... ...                                               conditionals))]
+... ...                  (in (_.let (list [@input inputG])
+... ...                          (list (list#mix (function (_ [test then] else)
+... ...                                             (_.if test then else))
+... ...                                           elseG
+... ...                                           conditionalsG))))))]))
+
+... (def lux_procs
+...   Bundle
+...   (|> /.empty
+...       ... (/.install "syntax char case!" lux::syntax_char_case!)
+...       (/.install "is" (binary _.eq/2))
+...       ... (/.install "try" (unary //runtime.lux//try))
+...       ))
+
+... ... (def (capped operation parameter subject)
+... ...   (-> (-> Expression Expression Expression)
+... ...       (-> Expression Expression Expression))
+... ...   (//runtime.i64//64 (operation parameter subject)))
+
+(def i64_procs
+  Bundle
+  (<| (/.prefix "i64")
+      (|> /.empty
+          ... (/.install "and" (binary _.logand/2))
+          ... (/.install "or" (binary _.logior/2))
+          ... (/.install "xor" (binary _.logxor/2))
+          ... (/.install "left-shift" (binary _.ash/2))
+          ... (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shift)))
+          ... (/.install "=" (binary _.=/2))
+          ... (/.install "<" (binary _.> //runtime.i64_low _.intToUtf8/1)))
+          )))
+
+... (def f64_procs
+...   Bundle
+...   (<| (/.prefix "f64")
+...       (|> /.empty
+...           ... (/.install "=" (binary (product.uncurried _.=/2)))
+...           ... (/.install "<" (binary (product.uncurried _. /.empty
+          ... (/.install "=" (binary _.string=/2))
+          ... (/.install "<" (binary (product.uncurried _.string /.empty
+...           (/.install "log" (unary ..io//log!))
+...           (/.install "error" (unary _.error/1))
+...           )))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lux")
+      (|> /.empty
+          ... (dictionary.composite lux_procs)
+          (dictionary.composite i64_procs)
+          ... (dictionary.composite f64_procs)
+          (dictionary.composite text_procs)
+          ... (dictionary.composite io_procs)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/host.lux
new file mode 100644
index 000000000..60f5bf54f
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/r/host.lux
@@ -0,0 +1,42 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]]
+   [data
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list]]
+    [text
+     ["%" \\format (.only format)]]]
+   [meta
+    [target
+     ["_" r (.only Var Expression)]]]]]
+ ["[0]" //
+  ["[1][0]" common (.only custom)]
+  ["//[1]" ///
+   ["/" bundle]
+   ["/[1]" //
+    ["[0]" extension]
+    [translation
+     [extension (.only Nullary Unary Binary Trinary
+                       nullary unary binary trinary)]
+     ["[0]" reference]
+     ["//" r
+      ["[1][0]" runtime (.only Operation Phase Handler Bundle
+                               with_vars)]]]
+    ["/[1]" //
+     ["[0]" translation]
+     [synthesis
+      ["" \\parser (.only Parser)]]
+     ["//[1]" ///
+      ["[1][0]" phase]]]]]])
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "r")
+      (|> /.empty
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby.lux
new file mode 100644
index 000000000..93d22272e
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby.lux
@@ -0,0 +1,18 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [ruby
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (dictionary.composite /common.bundle
+                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux
new file mode 100644
index 000000000..a080ff33f
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux
@@ -0,0 +1,230 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]
+    ["[0]" try]]
+   [data
+    ["[0]" product]
+    ["[0]" text (.only)
+     ["%" \\format (.only format)]]
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list (.use "[1]#[0]" functor mix)]]]
+   [math
+    [number
+     ["f" frac]]]
+   [meta
+    [macro
+     ["^" pattern]]
+    [target
+     ["_" ruby (.only Expression Statement)]]]]]
+ ["[0]" ////
+  ["/" bundle]
+  ["/[1]" //
+   ["[0]" extension]
+   [translation
+    [extension (.only Nullary Unary Binary Trinary
+                      nullary unary binary trinary)]
+    ["//" ruby
+     ["[1][0]" runtime (.only Operation Phase Phase! Handler Bundle Translator)]
+     ["[1][0]" primitive]
+     ["[1][0]" structure]
+     ["[1][0]" reference]
+     ["[1][0]" function]
+     ["[1][0]" when]
+     ["[1][0]" loop]]]
+   [//
+    ["[0]" translation]
+    ["[0]" synthesis (.only %synthesis)
+     ["" \\parser (.only Parser)]]
+    [///
+     ["[1]" phase (.use "[1]#[0]" monad)]]]]])
+
+(def .public (statement expression archive synthesis)
+  Phase!
+  (when synthesis
+    ... TODO: Get rid of this ASAP
+    {synthesis.#Extension [.prelude "when_char#|translation"] parameters}
+    (do /////.monad
+      [body (expression archive synthesis)]
+      (in (as Statement
+              body)))
+    
+    (^.with_template []
+      [( value)
+       (/////#each _.return (expression archive synthesis))])
+    ([synthesis.bit]
+     [synthesis.i64]
+     [synthesis.f64]
+     [synthesis.text]
+     [synthesis.variant]
+     [synthesis.tuple]
+     [synthesis.branch/get]
+     [synthesis.function/apply])
+
+    (^.with_template []
+      [{ value}
+       (/////#each _.return (expression archive synthesis))])
+    ([synthesis.#Reference]
+     [synthesis.#Extension])
+
+    (synthesis.branch/when when)
+    (//when.when! false statement expression archive when)
+
+    (^.with_template [ ]
+      [( value)
+       ( statement expression archive value)])
+    ([synthesis.branch/exec //when.exec!]
+     [synthesis.branch/let //when.let!]
+     [synthesis.branch/if //when.if!]
+     [synthesis.loop/scope //loop.scope!]
+     [synthesis.loop/again //loop.again!])
+
+    (synthesis.function/abstraction abstraction)
+    (/////#each _.return (//function.function statement expression archive abstraction))
+    ))
+
+... TODO: Get rid of this ASAP
+(def lux::syntax_char_case!
+  (..custom [(all <>.and
+                  .any
+                  .any
+                  (<>.some (.tuple (all <>.and
+                                           (.tuple (<>.many .i64))
+                                           .any))))
+             (function (_ extension_name phase archive [input else conditionals])
+               (do [! /////.monad]
+                 [inputG (phase archive input)
+                  else! (statement phase archive else)
+                  @input (at ! each _.local (translation.symbol "input"))
+                  conditionals! (is (Operation (List [Expression Statement]))
+                                    (monad.each ! (function (_ [chars branch])
+                                                    (do !
+                                                      [branch! (statement phase archive branch)]
+                                                      (in [(|> chars
+                                                               (list#each (|>> .int _.int (_.= @input)))
+                                                               (list#mix (function (_ clause total)
+                                                                           (if (same? _.nil total)
+                                                                             clause
+                                                                             (_.or clause total)))
+                                                                         _.nil))
+                                                           branch!])))
+                                                conditionals))
+                  ... .let [closure (_.lambda {.#None} (list @input)
+                  ...                         (list#mix (function (_ [test then] else)
+                  ...                                     (_.if test (_.return then) else))
+                  ...                                   (_.return else!)
+                  ...                                   conditionals!))]
+                  ]
+                 ... (in (_.apply_lambda (list inputG) closure))
+                 (in (<| (as Expression)
+                         (is Statement)
+                         (all _.then
+                              (_.set (list @input) inputG)
+                              (list#mix (function (_ [test then!] else!)
+                                          (_.if test then! else!))
+                                        else!
+                                        conditionals!))))))]))
+
+(def lux_procs
+  Bundle
+  (|> /.empty
+      (/.install "syntax char case!" lux::syntax_char_case!)
+      (/.install "is" (binary (function (_ [reference subject])
+                                (_.do "equal?" (list reference) {.#None} subject))))
+      (/.install "try" (unary //runtime.lux//try))))
+
+(def i64_procs
+  Bundle
+  (<| (/.prefix "i64")
+      (|> /.empty
+          (/.install "and" (binary (product.uncurried //runtime.i64::and)))
+          (/.install "or" (binary (product.uncurried //runtime.i64::or)))
+          (/.install "xor" (binary (product.uncurried //runtime.i64::xor)))
+          (/.install "left-shift" (binary (product.uncurried //runtime.i64::left_shifted)))
+          (/.install "right-shift" (binary (product.uncurried //runtime.i64::right_shifted)))
+          
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "+" (binary (product.uncurried //runtime.i64::+)))
+          (/.install "-" (binary (product.uncurried //runtime.i64::-)))
+          (/.install "*" (binary (product.uncurried //runtime.i64::*)))
+          (/.install "/" (binary (product.uncurried //runtime.i64::/)))
+          (/.install "%" (binary (function (_ [parameter subject])
+                                   (_.do "remainder" (list parameter) {.#None} subject))))
+          
+          (/.install "f64" (unary (_./ (_.float +1.0))))
+          (/.install "char" (unary //runtime.i64::char))
+          )))
+
+(def f64_procs
+  Bundle
+  (<| (/.prefix "f64")
+      (|> /.empty
+          (/.install "+" (binary (product.uncurried _.+)))
+          (/.install "-" (binary (product.uncurried _.-)))
+          (/.install "*" (binary (product.uncurried _.*)))
+          (/.install "/" (binary (product.uncurried _./)))
+          (/.install "%" (binary (function (_ [parameter subject])
+                                   (_.do "remainder" (list parameter) {.#None} subject))))
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "i64" (unary (_.do "floor" (list) {.#None})))
+          (/.install "encode" (unary (_.do "to_s" (list) {.#None})))
+          (/.install "decode" (unary //runtime.f64//decode)))))
+
+(def (text//char [subjectO paramO])
+  (Binary Expression)
+  (//runtime.text//char subjectO paramO))
+
+(def (text//clip [paramO extraO subjectO])
+  (Trinary Expression)
+  (//runtime.text//clip paramO extraO subjectO))
+
+(def (text//index [startO partO textO])
+  (Trinary Expression)
+  (//runtime.text//index textO partO startO))
+
+(def text_procs
+  Bundle
+  (<| (/.prefix "text")
+      (|> /.empty
+          (/.install "=" (binary (product.uncurried _.=)))
+          (/.install "<" (binary (product.uncurried _.<)))
+          (/.install "concat" (binary (product.uncurried (function.flipped _.+))))
+          (/.install "index" (trinary text//index))
+          (/.install "size" (unary (_.the "length")))
+          (/.install "char" (binary (product.uncurried //runtime.text//char)))
+          (/.install "clip" (trinary text//clip))
+          )))
+
+(def (io//log! messageG)
+  (Unary Expression)
+  (|> (_.print/2 messageG (_.string text.new_line))
+      (_.or //runtime.unit)))
+
+(def io//error!
+  (Unary Expression)
+  _.raise)
+
+(def io_procs
+  Bundle
+  (<| (/.prefix "io")
+      (|> /.empty
+          (/.install "log" (unary ..io//log!))
+          (/.install "error" (unary ..io//error!))
+          )))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lux")
+      (|> lux_procs
+          (dictionary.composite ..i64_procs)
+          (dictionary.composite ..f64_procs)
+          (dictionary.composite ..text_procs)
+          (dictionary.composite ..io_procs)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux
new file mode 100644
index 000000000..b4a2ef91d
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux
@@ -0,0 +1,137 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]]
+   [data
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list]]
+    [text
+     ["%" \\format (.only format)]]]
+   [meta
+    [target
+     ["_" ruby (.only Var Expression)]]]]]
+ ["[0]" //
+  ["[1][0]" common (.only custom)]
+  ["//[1]" ///
+   ["/" bundle]
+   ["/[1]" //
+    ["[0]" extension]
+    [translation
+     [extension (.only Nullary Unary Binary Trinary
+                       nullary unary binary trinary)]
+     ["[0]" reference]
+     ["//" ruby
+      ["[1][0]" runtime (.only Operation Phase Handler Bundle
+                               with_vars)]]]
+    ["/[1]" //
+     [synthesis
+      ["" \\parser (.only Parser)]]
+     ["//[1]" ///
+      ["[1][0]" phase]]]]]])
+
+(def (array::new [size])
+  (Unary Expression)
+  (_.do "new" (list size) {.#None} (is _.CVar (_.manual "Array"))))
+
+(def array::length
+  (Unary Expression)
+  (_.the "size"))
+
+(def (array::read [indexG arrayG])
+  (Binary Expression)
+  (_.item indexG arrayG))
+
+(def (array::write [indexG valueG arrayG])
+  (Trinary Expression)
+  (//runtime.array//write indexG valueG arrayG))
+
+(def (array::delete [indexG arrayG])
+  (Binary Expression)
+  (//runtime.array//write indexG _.nil arrayG))
+
+(def array
+  Bundle
+  (<| (/.prefix "array")
+      (|> /.empty
+          (/.install "new" (unary array::new))
+          (/.install "length" (unary array::length))
+          (/.install "read" (binary array::read))
+          (/.install "write" (trinary array::write))
+          (/.install "delete" (binary array::delete))
+          )))
+
+(def object::get
+  Handler
+  (custom
+   [(all <>.and .text .any)
+    (function (_ extension phase archive [fieldS objectS])
+      (do ////////phase.monad
+        [objectG (phase archive objectS)]
+        (in (_.the fieldS objectG))))]))
+
+(def object::do
+  Handler
+  (custom
+   [(all <>.and .text .any (<>.some .any))
+    (function (_ extension phase archive [methodS objectS inputsS])
+      (do [! ////////phase.monad]
+        [objectG (phase archive objectS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.do methodS inputsG {.#None} objectG))))]))
+
+(with_template [  ]
+  [(def  (Nullary Expression) (function.constant ))
+   (def  (Unary Expression) (_.= ))]
+
+  [object::nil object::nil? _.nil]
+  )
+
+(def object
+  Bundle
+  (<| (/.prefix "object")
+      (|> /.empty
+          (/.install "get" object::get)
+          (/.install "do" object::do)
+          (/.install "nil" (nullary object::nil))
+          (/.install "nil?" (unary object::nil?))
+          )))
+
+(def ruby::constant
+  (custom
+   [.text
+    (function (_ extension phase archive name)
+      (at ////////phase.monad in (is _.CVar (_.manual name))))]))
+
+(def ruby::apply
+  (custom
+   [(all <>.and .any (<>.some .any))
+    (function (_ extension phase archive [abstractionS inputsS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.apply inputsG {.#None} abstractionG))))]))
+
+(def ruby::import
+  (custom
+   [.text
+    (function (_ extension phase archive module)
+      (at ////////phase.monad in
+          (_.require/1 (_.string module))))]))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "ruby")
+      (|> /.empty
+          (dictionary.composite ..array)
+          (dictionary.composite ..object)
+
+          (/.install "constant" ruby::constant)
+          (/.install "apply" ruby::apply)
+          (/.install "import" ruby::import)
+          (/.install "script universe" (nullary (function.constant (_.bool reference.universe))))
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme.lux
new file mode 100644
index 000000000..606200c82
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme.lux
@@ -0,0 +1,18 @@
+(.require
+ [library
+  [lux (.except)
+   [data
+    [collection
+     ["[0]" dictionary]]]]]
+ ["[0]" /
+  ["[1][0]" common]
+  ["[1][0]" host]
+  [////
+   [translation
+    [scheme
+     [runtime (.only Bundle)]]]]])
+
+(def .public bundle
+  Bundle
+  (dictionary.composite /common.bundle
+                        /host.bundle))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/common.lux
new file mode 100644
index 000000000..7719f82cf
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/common.lux
@@ -0,0 +1,164 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]
+    ["[0]" try]]
+   [data
+    ["[0]" product]
+    ["[0]" text
+     ["%" \\format (.only format)]]
+    [collection
+     ["[0]" dictionary]
+     ["[0]" set]
+     ["[0]" list (.use "[1]#[0]" functor mix)]]]
+   [math
+    [number
+     ["f" frac]]]
+   [meta
+    ["@" target
+     ["_" scheme (.only Expression)]]]]]
+ ["[0]" ////
+  ["/" bundle]
+  ["/[1]" //
+   ["[0]" extension]
+   [translation
+    [extension (.only Nullary Unary Binary Trinary
+                      nullary unary binary trinary)]
+    ["[0]" reference]
+    ["//" scheme
+     ["[1][0]" runtime (.only Operation Phase Handler Bundle Translator)]
+     ["[1][0]" when]]]
+   [//
+    ["[0]" translation]
+    ["[0]" synthesis (.only %synthesis)
+     ["" \\parser (.only Parser)]]
+    [///
+     ["[1]" phase]]]]])
+
+(def !unary
+  (template (_ function)
+    (|>> list _.apply (|> (_.constant function)))))
+
+... TODO: Get rid of this ASAP
+(def lux::syntax_char_case!
+  (..custom [(all <>.and
+                  .any
+                  .any
+                  (<>.some (.tuple (all <>.and
+                                           (.tuple (<>.many .i64))
+                                           .any))))
+             (function (_ extension_name phase archive [input else conditionals])
+               (do [! /////.monad]
+                 [@input (at ! each _.var (translation.symbol "input"))
+                  inputG (phase archive input)
+                  elseG (phase archive else)
+                  conditionalsG (is (Operation (List [Expression Expression]))
+                                    (monad.each ! (function (_ [chars branch])
+                                                    (do !
+                                                      [branchG (phase archive branch)]
+                                                      (in [(|> chars (list#each (|>> .int _.int (_.=/2 @input))) _.or)
+                                                           branchG])))
+                                                conditionals))]
+                 (in (_.let (list [@input inputG])
+                       (list#mix (function (_ [test then] else)
+                                   (_.if test then else))
+                                 elseG
+                                 conditionalsG)))))]))
+
+(def lux_procs
+  Bundle
+  (|> /.empty
+      (/.install "syntax char case!" lux::syntax_char_case!)
+      (/.install "is" (binary (product.uncurried _.eq?/2)))
+      (/.install "try" (unary //runtime.lux//try))
+      ))
+
+(def (capped operation parameter subject)
+  (-> (-> Expression Expression Expression)
+      (-> Expression Expression Expression))
+  (//runtime.i64//64 (operation parameter subject)))
+
+(def i64_procs
+  Bundle
+  (<| (/.prefix "i64")
+      (|> /.empty
+          (/.install "and" (binary (product.uncurried //runtime.i64//and)))
+          (/.install "or" (binary (product.uncurried //runtime.i64//or)))
+          (/.install "xor" (binary (product.uncurried //runtime.i64//xor)))
+          (/.install "left-shift" (binary (product.uncurried //runtime.i64//left_shift)))
+          (/.install "right-shift" (binary (product.uncurried //runtime.i64//right_shift)))
+          (/.install "=" (binary (product.uncurried _.=/2)))
+          (/.install "<" (binary (product.uncurried _.> _.integer->char/1 (_.make_string/2 (_.int +1)))))
+          )))
+
+(def f64_procs
+  Bundle
+  (<| (/.prefix "f64")
+      (|> /.empty
+          (/.install "=" (binary (product.uncurried _.=/2)))
+          (/.install "<" (binary (product.uncurried _.string/1))
+          (/.install "decode" (unary //runtime.f64//decode)))))
+
+(def (text//index [offset sub text])
+  (Trinary Expression)
+  (//runtime.text//index offset sub text))
+
+(def (text//clip [paramO extraO subjectO])
+  (Trinary Expression)
+  (//runtime.text//clip paramO extraO subjectO))
+
+(def text_procs
+  Bundle
+  (<| (/.prefix "text")
+      (|> /.empty
+          (/.install "=" (binary (product.uncurried _.string=?/2)))
+          (/.install "<" (binary (product.uncurried _.string /.empty
+          (/.install "log" (unary ..io//log!))
+          (/.install "error" (unary _.raise/1))
+          )))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "lux")
+      (|> /.empty
+          (dictionary.composite lux_procs)
+          (dictionary.composite i64_procs)
+          (dictionary.composite f64_procs)
+          (dictionary.composite text_procs)
+          (dictionary.composite io_procs)
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/host.lux
new file mode 100644
index 000000000..2a93c30b6
--- /dev/null
+++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/scheme/host.lux
@@ -0,0 +1,110 @@
+(.require
+ [library
+  [lux (.except)
+   [abstract
+    ["[0]" monad (.only do)]]
+   [control
+    ["<>" parser]
+    ["[0]" function]]
+   [data
+    [collection
+     ["[0]" dictionary]
+     ["[0]" list]]
+    [text
+     ["%" \\format (.only format)]]]
+   [meta
+    [target
+     ["_" scheme (.only Var Expression)]]]]]
+ ["[0]" //
+  ["[1][0]" common (.only custom)]
+  ["//[1]" ///
+   ["/" bundle]
+   ["/[1]" //
+    ["[0]" extension]
+    [translation
+     [extension (.only Nullary Unary Binary Trinary
+                       nullary unary binary trinary)]
+     ["[0]" reference]
+     ["//" scheme
+      ["[1][0]" runtime (.only Operation Phase Handler Bundle
+                               with_vars)]]]
+    ["/[1]" //
+     [synthesis
+      ["" \\parser (.only Parser)]]
+     ["//[1]" ///
+      ["[1][0]" phase]]]]]])
+
+(def (array::new size)
+  (Unary Expression)
+  (_.make_vector/2 size _.nil))
+
+(def array::length
+  (Unary Expression)
+  _.vector_length/1)
+
+(def (array::read [indexG arrayG])
+  (Binary Expression)
+  (_.vector_ref/2 arrayG indexG))
+
+(def (array::write [indexG valueG arrayG])
+  (Trinary Expression)
+  (//runtime.array//write indexG valueG arrayG))
+
+(def (array::delete [indexG arrayG])
+  (Binary Expression)
+  (//runtime.array//write indexG _.nil arrayG))
+
+(def array
+  Bundle
+  (<| (/.prefix "array")
+      (|> /.empty
+          (/.install "new" (unary array::new))
+          (/.install "length" (unary array::length))
+          (/.install "read" (binary array::read))
+          (/.install "write" (trinary array::write))
+          (/.install "delete" (binary array::delete))
+          )))
+
+(with_template [  ]
+  [(def  (Nullary Expression) (function.constant ))
+   (def  (Unary Expression) (_.eq?/2 ))]
+
+  [object::nil object::nil? _.nil]
+  )
+
+(def object
+  Bundle
+  (<| (/.prefix "object")
+      (|> /.empty
+          (/.install "nil" (nullary object::nil))
+          (/.install "nil?" (unary object::nil?))
+          )))
+
+(def scheme::constant
+  (custom
+   [.text
+    (function (_ extension phase archive name)
+      (do ////////phase.monad
+        []
+        (in (_.var name))))]))
+
+(def scheme::apply
+  (custom
+   [(all <>.and .any (<>.some .any))
+    (function (_ extension phase archive [abstractionS inputsS])
+      (do [! ////////phase.monad]
+        [abstractionG (phase archive abstractionS)
+         inputsG (monad.each ! (phase archive) inputsS)]
+        (in (_.apply inputsG abstractionG))))]))
+
+(def .public bundle
+  Bundle
+  (<| (/.prefix "scheme")
+      (|> /.empty
+          (dictionary.composite ..array)
+          (dictionary.composite ..object)
+
+          (/.install "constant" scheme::constant)
+          (/.install "apply" scheme::apply)
+          (/.install "script universe" (nullary (function.constant (_.bool reference.universe))))
+          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp.lux
deleted file mode 100644
index 0f1867ff7..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp.lux
+++ /dev/null
@@ -1,60 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    [monad (.only do)]]
-   [meta
-    [macro
-     ["^" pattern]]]]]
- ["[0]" /
-  [runtime (.only Phase)]
-  ["[1][0]" primitive]
-  ["[1][0]" structure]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["[1][0]" loop]
-  ["[1][0]" function]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" extension]
-    ["/[1]" //
-     [analysis (.only)]
-     ["[1][0]" synthesis]
-     ["//[1]" ///
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [reference (.only)
-       [variable (.only)]]]]]]])
-
-(def .public (generate archive synthesis)
-  Phase
-  (when synthesis
-    (^.with_template [ ]
-      [( value)
-       (//////phase#in ( value))])
-    ([////synthesis.bit  /primitive.bit]
-     [////synthesis.i64  /primitive.i64]
-     [////synthesis.f64  /primitive.f64]
-     [////synthesis.text /primitive.text])
-
-    {////synthesis.#Reference value}
-    (//reference.reference /reference.system archive value)
-
-    (^.with_template [ ]
-      [( value)
-       ( generate archive value)])
-    ([////synthesis.variant /structure.variant]
-     [////synthesis.tuple /structure.tuple]
-     [////synthesis.branch/let /when.let]
-     [////synthesis.branch/if /when.if]
-     [////synthesis.branch/get /when.get]
-     [////synthesis.function/apply /function.apply]
-
-     [////synthesis.branch/when /when.when]
-     [////synthesis.loop/scope /loop.scope]
-     [////synthesis.loop/again /loop.again]
-     [////synthesis.function/abstraction /function.function])
-
-    {////synthesis.#Extension extension}
-    (///extension.apply archive generate extension)
-    ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/extension.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/extension.lux
deleted file mode 100644
index 1d1c8473f..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/extension.lux
+++ /dev/null
@@ -1,14 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- [//
-  [runtime (.only Bundle)]]
- [/
-  ["[0]" common]])
-
-(def .public bundle
-  Bundle
-  common.bundle)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/extension/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/extension/common.lux
deleted file mode 100644
index bb57efc5b..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/extension/common.lux
+++ /dev/null
@@ -1,138 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    [number
-     ["f" frac]]
-    [collection
-     ["[0]" dictionary]]]
-   [meta
-    [target
-     ["_" common_lisp (.only Expression)]]]]]
- ["[0]" ///
-  ["[1][0]" runtime (.only Operation Phase Handler Bundle)]
-  ["[1][0]" primitive]
-  [//
-   [extension (.only Nullary Unary Binary Trinary
-                     nullary unary binary trinary)]
-   [//
-    [extension
-     ["[0]" bundle]]]]])
-
-(def lux_procs
-  Bundle
-  (|> bundle.empty
-      (bundle.install "is" (binary (product.uncurried _.eq)))
-      (bundle.install "try" (unary ///runtime.lux//try))))
-
-(def (i64//left_shifted [paramG subjectG])
-  (Binary (Expression Any))
-  (_.ash (_.rem (_.int +64) paramG) subjectG))
-
-(def (i64//arithmetic_right_shifted [paramG subjectG])
-  (Binary (Expression Any))
-  (_.ash (|> paramG (_.rem (_.int +64)) (_.* (_.int -1)))
-         subjectG))
-
-(def (i64//logic_right_shifted [paramG subjectG])
-  (Binary (Expression Any))
-  (///runtime.i64//logic_right_shifted (_.rem (_.int +64) paramG) subjectG))
-
-(def i64_procs
-  Bundle
-  (<| (bundle.prefix "i64")
-      (|> bundle.empty
-          (bundle.install "and" (binary (product.uncurried _.logand)))
-          (bundle.install "or" (binary (product.uncurried _.logior)))
-          (bundle.install "xor" (binary (product.uncurried _.logxor)))
-          (bundle.install "left-shift" (binary i64//left_shifted))
-          (bundle.install "logical-right-shift" (binary i64//logic_right_shifted))
-          (bundle.install "arithmetic-right-shift" (binary i64//arithmetic_right_shifted))
-          (bundle.install "=" (binary (product.uncurried _.=)))
-          (bundle.install "<" (binary (product.uncurried _.<)))
-          (bundle.install "+" (binary (product.uncurried _.+)))
-          (bundle.install "-" (binary (product.uncurried _.-)))
-          (bundle.install "*" (binary (product.uncurried _.*)))
-          (bundle.install "/" (binary (product.uncurried _.floor)))
-          (bundle.install "%" (binary (product.uncurried _.rem)))
-          (bundle.install "f64" (unary (function (_ value)
-                                         (_.coerce/2 [value (_.symbol "double-float")]))))
-          (bundle.install "char" (unary (|>> _.code_char/1 _.string/1)))
-          )))
-
-(def f64_procs
-  Bundle
-  (<| (bundle.prefix "f64")
-      (|> bundle.empty
-          (bundle.install "+" (binary (product.uncurried _.+)))
-          (bundle.install "-" (binary (product.uncurried _.-)))
-          (bundle.install "*" (binary (product.uncurried _.*)))
-          (bundle.install "/" (binary (product.uncurried _./)))
-          (bundle.install "%" (binary (product.uncurried _.mod)))
-          (bundle.install "=" (binary (product.uncurried _.=)))
-          (bundle.install "<" (binary (product.uncurried _.<)))
-          (bundle.install "i64" (unary _.floor/1))
-          (bundle.install "encode" (unary _.write_to_string/1))
-          (bundle.install "decode" (unary (let [@temp (_.var "temp")]
-                                            (function (_ input)
-                                              (_.let (list [@temp (_.read_from_string/1 input)])
-                                                (_.if (_.equal (_.symbol "DOUBLE-FLOAT")
-                                                               (_.type_of/1 @temp))
-                                                  (///runtime.some @temp)
-                                                  ///runtime.none)))))))))
-
-(def (text//< [paramG subjectG])
-  (Binary (Expression Any))
-  (|> (_.string< paramG subjectG)
-      _.null/1
-      _.not/1))
-
-(def (text//clip [paramO extraO subjectO])
-  (Trinary (Expression Any))
-  (///runtime.text//clip subjectO paramO extraO))
-
-(def (text//index [startO partO textO])
-  (Trinary (Expression Any))
-  (///runtime.text//index textO partO startO))
-
-(def text_procs
-  Bundle
-  (<| (bundle.prefix "text")
-      (|> bundle.empty
-          (bundle.install "=" (binary (product.uncurried _.string=)))
-          (bundle.install "<" (binary text//<))
-          (bundle.install "concat" (binary _.concatenate/2|string))
-          (bundle.install "index" (trinary text//index))
-          (bundle.install "size" (unary _.length/1))
-          (bundle.install "char" (binary (|>> _.char/2 _.char_int/1)))
-          (bundle.install "clip" (trinary text//clip))
-          )))
-
-(def (void code)
-  (-> (Expression Any) (Expression Any))
-  (all _.progn
-       code
-       ///runtime.unit))
-
-(def io_procs
-  Bundle
-  (<| (bundle.prefix "io")
-      (|> bundle.empty
-          (bundle.install "log" (unary (|>> _.print/1 ..void)))
-          (bundle.install "error" (unary _.error/1))
-          )))
-
-(def .public bundle
-  Bundle
-  (<| (bundle.prefix "lux")
-      (|> lux_procs
-          (dictionary.composite i64_procs)
-          (dictionary.composite f64_procs)
-          (dictionary.composite text_procs)
-          (dictionary.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/function.lux
deleted file mode 100644
index 5a9e65883..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/function.lux
+++ /dev/null
@@ -1,104 +0,0 @@
-(.require
- [library
-  [lux (.except function)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    pipe]
-   [data
-    ["[0]" product]
-    [text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]]]
-   [meta
-    [target
-     ["_" common_lisp (.only Expression Var/1)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["//[1]" ///
-    [analysis (.only Variant Tuple Abstraction Application Analysis)]
-    [synthesis (.only Synthesis)]
-    ["[1][0]" generation (.only Context)]
-    ["//[1]" ///
-     [arity (.only Arity)]
-     ["[1][0]" phase (.use "[1]#[0]" monad)]
-     [reference
-      [variable (.only Register Variable)]]]]]])
-
-(def .public (apply expression archive [functionS argsS+])
-  (Generator (Application Synthesis))
-  (do [! ///////phase.monad]
-    [functionG (expression archive functionS)
-     argsG+ (monad.each ! (expression archive) argsS+)]
-    (in (_.funcall/+ [functionG argsG+]))))
-
-(def capture
-  (-> Register Var/1)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def (with_closure inits function_definition)
-  (-> (List (Expression Any)) (Expression Any) (Operation (Expression Any)))
-  (when inits
-    {.#End}
-    (at ///////phase.monad in function_definition)
-
-    _
-    (do [! ///////phase.monad]
-      [@closure (at ! each _.var (/////generation.symbol "closure"))]
-      (in (_.labels (list [@closure [(|> (list.enumeration inits)
-                                         (list#each (|>> product.left ..capture))
-                                         _.args)
-                                     function_definition]])
-                    (_.funcall/+ [(_.function/1 @closure) inits]))))))
-
-(def input
-  (|>> ++ //when.register))
-
-(def .public (function expression archive [environment arity bodyS])
-  (Generator (Abstraction Synthesis))
-  (do [! ///////phase.monad]
-    [@scope (at ! each (|>> %.nat (format "function_scope") _.tag) /////generation.next)
-     @output (at ! each (|>> %.nat (format "loop_output") _.var) /////generation.next)
-     [function_name bodyG] (/////generation.with_new_context archive
-                             (/////generation.with_anchor [@scope 1]
-                               (expression archive bodyS)))
-     closureG+ (monad.each ! (expression archive) environment)
-     .let [@curried (_.var "curried")
-           @missing (_.var "missing")
-           arityG (|> arity .int _.int)
-           @num_args (_.var "num_args")
-           @self (_.var (///reference.artifact function_name))
-           initialize_self! [(//when.register 0) (_.function/1 @self)]
-           initialize! [(|> (list.indices arity)
-                            (list#each ..input)
-                            _.args)
-                        @curried]]]
-    (with_closure closureG+
-      (_.labels (list [@self [(_.args& (list) @curried)
-                              (_.let (list [@num_args (_.length/1 @curried)])
-                                (list (_.cond (list [(_.=/2 [arityG @num_args])
-                                                     (_.let (list [@output _.nil]
-                                                                  initialize_self!)
-                                                       (list (_.destructuring-bind initialize!
-                                                                                   (list (_.tagbody
-                                                                                          (list @scope
-                                                                                                (_.setq @output bodyG)))
-                                                                                         @output))))]
-
-                                                    [(_.>/2 [arityG @num_args])
-                                                     (let [arity_inputs (_.subseq/3 [@curried (_.int +0) arityG])
-                                                           extra_inputs (_.subseq/3 [@curried arityG @num_args])]
-                                                       (_.apply/2 [(_.apply/2 [(_.function/1 @self)
-                                                                               arity_inputs])
-                                                                   extra_inputs]))])
-                                              ... (|> @num_args (_.< arityG))
-                                              (_.lambda (_.args& (list) @missing)
-                                                        (_.apply/2 [(_.function/1 @self)
-                                                                    (_.append/2 [@curried @missing])])))))]])
-                (_.function/1 @self)))
-    ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/loop.lux
deleted file mode 100644
index d2dcb8802..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/loop.lux
+++ /dev/null
@@ -1,72 +0,0 @@
-(.require
- [library
-  [lux (.except Scope)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    [text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     ["_" common_lisp (.only Expression)]]]]]
- ["[0]" //
-  [runtime (.only Operation Phase Generator)]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    [synthesis
-     ["[0]" when]]
-    ["/[1]" //
-     ["[0]"synthesis (.only Scope Synthesis)]
-     ["[1][0]" generation]
-     ["//[1]" ///
-      ["[1][0]" phase]
-      [meta
-       [archive (.only Archive)]]
-      [reference
-       [variable (.only Register)]]]]]]])
-
-(def .public (scope expression archive [start initsS+ bodyS])
-  (Generator (Scope Synthesis))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [@scope (at ! each (|>> %.nat (format "loop_scope") _.tag) /////generation.next)
-       @output (at ! each (|>> %.nat (format "loop_output") _.var) /////generation.next)
-       initsG+ (monad.each ! (expression archive) initsS+)
-       bodyG (/////generation.with_anchor [@scope start]
-               (expression archive bodyS))]
-      ... TODO: There is a bug in the way the variables are updated. Do a _.multiple_value_setq instead.
-      (in (_.let (|> initsG+
-                     list.enumeration
-                     (list#each (function (_ [idx init])
-                                  [(|> idx (n.+ start) //when.register)
-                                   init]))
-                     (list.partial [@output _.nil]))
-            (list (_.tagbody (list @scope
-                                   (_.setq @output bodyG)))
-                  @output))))))
-
-(def .public (again expression archive argsS+)
-  (Generator (List Synthesis))
-  (do [! ///////phase.monad]
-    [[tag offset] /////generation.anchor
-     argsO+ (monad.each ! (expression archive) argsS+)
-     .let [bindings (|> argsO+
-                        list.enumeration
-                        (list#each (|>> product.left (n.+ offset) //when.register))
-                        _.args)]]
-    (in (_.progn (list (_.multiple_value_setq bindings (_.values/* argsO+))
-                       (_.go tag))))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/primitive.lux
deleted file mode 100644
index a85bbb625..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/primitive.lux
+++ /dev/null
@@ -1,22 +0,0 @@
-(.require
- [library
-  [lux (.except i64)
-   [meta
-    [target
-     ["_" common_lisp (.only Expression)]]]]])
-
-(def .public bit
-  (-> Bit (Expression Any))
-  _.bool)
-
-(def .public i64
-  (-> (I64 Any) (Expression Any))
-  (|>> .int _.int))
-
-(def .public f64
-  (-> Frac (Expression Any))
-  _.double)
-
-(def .public text
-  (-> Text (Expression Any))
-  _.string)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/reference.lux
deleted file mode 100644
index 4f70ce907..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/reference.lux
+++ /dev/null
@@ -1,14 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [meta
-    [target
-     ["_" common_lisp (.only Expression)]]]]]
- [///
-  [reference (.only System)]])
-
-(def .public system
-  (System (Expression Any))
-  (implementation
-   (def constant _.var)
-   (def variable _.var)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/runtime.lux
deleted file mode 100644
index 9294d4335..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/runtime.lux
+++ /dev/null
@@ -1,305 +0,0 @@
-(.require
- [library
-  [lux (.except Location)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.use "[1]#[0]" hash)
-     ["%" \\format (.only format)]
-     ["[0]" encoding]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor monoid)]
-     ["[0]" sequence]]]
-   [math
-    [number (.only hex)
-     ["[0]" i64]]]
-   ["[0]" meta (.only)
-    ["[0]" code (.only)
-     ["<[1]>" \\parser]]
-    ["[0]" macro (.only)
-     [syntax (.only syntax)]]
-    ["@" target
-     ["_" common_lisp (.only Expression Computation Literal)]]]]]
- ["[0]" ///
-  ["[1][0]" reference]
-  ["//[1]" ///
-   [analysis (.only Variant)]
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["[1][0]" generation]
-   ["//[1]" /// (.only)
-    ["[1][0]" phase]
-    [reference
-     [variable (.only Register)]]
-    [meta
-     [archive (.only Output Archive)
-      ["[0]" artifact (.only Registry)]]]]]])
-
-(def module_id
-  0)
-
-(with_template [ ]
-  [(type .public 
-     ( [_.Tag Register] (Expression Any) (Expression Any)))]
-
-  [Operation /////generation.Operation]
-  [Phase /////generation.Phase]
-  [Handler /////generation.Handler]
-  [Bundle /////generation.Bundle]
-  )
-
-(type .public (Generator i)
-  (-> Phase Archive i (Operation (Expression Any))))
-
-(def .public unit
-  (_.string /////synthesis.unit))
-
-(def (flag value)
-  (-> Bit Literal)
-  (if value
-    (_.string "")
-    _.nil))
-
-(def (variant' tag last? value)
-  (-> (Expression Any) (Expression Any) (Expression Any) (Computation Any))
-  (_.list/* (list tag last? value)))
-
-(def .public (variant [lefts right? value])
-  (-> (Variant (Expression Any)) (Computation Any))
-  (variant' (_.int (.int lefts)) (flag right?) value))
-
-(def .public none
-  (Computation Any)
-  (|> ..unit [0 #0] ..variant))
-
-(def .public some
-  (-> (Expression Any) (Computation Any))
-  (|>> [1 #1] ..variant))
-
-(def .public left
-  (-> (Expression Any) (Computation Any))
-  (|>> [0 #0] ..variant))
-
-(def .public right
-  (-> (Expression Any) (Computation Any))
-  (|>> [1 #1] ..variant))
-
-(def .public with_vars
-  (syntax (_ [vars (.tuple (<>.some .local))
-              body .any])
-    (do [! meta.monad]
-      [ids (monad.all ! (list.repeated (list.size vars) meta.seed))]
-      (in (list (` (let [(,* (|> vars
-                                 (list.zipped_2 ids)
-                                 (list#each (function (_ [id var])
-                                              (list (code.local var)
-                                                    (` (_.var (, (code.text (format "v" (%.nat id)))))))))
-                                 list.together))]
-                     (, body))))))))
-
-(def runtime
-  (syntax (_ [declaration (<>.or .local
-                                 (.form (<>.and .local
-                                                      (<>.some .local))))
-              code .any])
-    (do meta.monad
-      [runtime_id meta.seed]
-      (macro.with_symbols [g!_]
-        (let [runtime (code.local (///reference.artifact [..module_id runtime_id]))
-              runtime_name (` (_.var (, (code.text (%.code runtime)))))]
-          (when declaration
-            {.#Left name}
-            (let [g!name (code.local name)
-                  code_nameC (code.local (format "@" name))]
-              (in (list (` (def .public (, g!name)
-                             _.Var/1
-                             (, runtime_name)))
-                        
-                        (` (def (, code_nameC)
-                             (_.Expression Any)
-                             (_.defparameter (, runtime_name) (, code)))))))
-            
-            {.#Right [name inputs]}
-            (let [g!name (code.local name)
-                  code_nameC (code.local (format "@" name))
-                  
-                  inputsC (list#each code.local inputs)
-                  inputs_typesC (list#each (function.constant (` (_.Expression Any)))
-                                           inputs)]
-              (in (list (` (def .public ((, g!name) (,* inputsC))
-                             (-> (,* inputs_typesC) (_.Computation Any))
-                             (_.call/* (, runtime_name) (list (,* inputsC)))))
-                        
-                        (` (def (, code_nameC)
-                             (_.Expression Any)
-                             (..with_vars [(,* inputsC)]
-                               (_.defun (, runtime_name) (_.args (list (,* inputsC)))
-                                        (, code))))))))))))))
-
-(runtime
- (lux//try op)
- (with_vars [error]
-   (_.handler_case
-    (list [(_.bool true) error
-           (..left (_.format/3 [_.nil (_.string "~A") error]))])
-    (..right (_.funcall/+ [op (list ..unit)])))))
-
-... TODO: Use Common Lisp's swiss-army loop macro instead.
-(runtime
- (lux//program_args inputs)
- (with_vars [loop input tail]
-   (_.labels (list [loop [(_.args (list input tail))
-                          (_.if (_.null/1 input)
-                            tail
-                            (_.funcall/+ [(_.function/1 loop)
-                                          (list (_.cdr/1 input)
-                                                (..some (_.vector/* (list (_.car/1 input) tail))))]))]])
-             (_.funcall/+ [(_.function/1 loop)
-                           (list (_.reverse/1 inputs)
-                                 ..none)]))))
-
-(def runtime//lux
-  (List (Expression Any))
-  (list @lux//try
-        @lux//program_args))
-
-(def last_index
-  (|>> _.length/1 [(_.int +1)] _.-/2))
-
-(with_expansions [ (these (all _.then
-                                      (_.; (_.set lefts (_.-/2 [last_index_right lefts])))
-                                      (_.; (_.set tuple (_.nth last_index_right tuple)))))]
-  (def !recur
-    (template (_ )
-      ( (_.-/2 [last_index_right lefts])
-              (_.elt/2 [tuple last_index_right]))))
-  
-  (runtime
-   (tuple//left lefts tuple)
-   (with_vars [last_index_right]
-     (_.let (list [last_index_right (..last_index tuple)])
-       (list (_.if (_.>/2 [lefts last_index_right])
-               ... No need for recursion
-               (_.elt/2 [tuple lefts])
-               ... Needs recursion
-               (!recur tuple//left))))))
-
-  (runtime
-   (tuple//right lefts tuple)
-   (with_vars [last_index_right right_index]
-     (_.let (list [last_index_right (..last_index tuple)]
-                  [right_index (_.+/2 [(_.int +1) lefts])])
-       (list (_.cond (list [(_.=/2 [last_index_right right_index])
-                            (_.elt/2 [tuple right_index])]
-                           [(_.>/2 [last_index_right right_index])
-                            ... Needs recursion.
-                            (!recur tuple//right)])
-                     (_.subseq/3 [tuple right_index (_.length/1 tuple)])))))))
-
-... TODO: Find a way to extract parts of the sum without "nth", which
-... does a linear search, and is thus expensive.
-(runtime
- (sum//get sum wantsLast wantedTag)
- (with_vars [sum_tag sum_flag]
-   (let [no_match! (_.return sum)
-         sum_value (_.nth/2 [(_.int +2) sum])
-         test_recursion! (_.if sum_flag
-                           ... Must iterate.
-                           (_.progn (list (_.setq wantedTag (_.-/2 [sum_tag wantedTag]))
-                                          (_.setq sum sum_value)))
-                           no_match!)]
-     (_.while (_.bool true)
-              (_.let (list [sum_tag (_.nth/2 [(_.int +0) sum])]
-                           [sum_flag (_.nth/2 [(_.int +1) sum])])
-                (list (_.cond (list [(_.=/2 [sum_tag wantedTag])
-                                     (_.if (_.equal/2 [wantsLast sum_flag])
-                                       (_.return sum_value)
-                                       test_recursion!)]
-
-                                    [(_.>/2 [sum_tag wantedTag])
-                                     test_recursion!]
-
-                                    [(_.and (_. (_.int +1)
-                  [anti_shift] _.ash/2
-                  [(_.int +1)] _.-/2)]
-     (|> input
-         [(_.*/2 [(_.int -1) shift])] _.ash/2
-         [mask] _.logand/2))))
-
-(def runtime//i64
-  (List (Expression Any))
-  (list @i64//right_shifted))
-
-(runtime
- (text//clip offset length text)
- (_.subseq/3 [text offset (_.+/2 [offset length])]))
-
-(runtime
- (text//index offset sub text)
- (with_vars [index]
-   (_.let (list [index (_.search/3 [sub text offset])])
-     (list (_.if index
-             (..some index)
-             ..none)))))
-
-(def runtime//text
-  (List (Expression Any))
-  (list @text//index
-        @text//clip))
-
-(runtime
- (io//exit code)
- (_.progn (list (_.conditional+ (list "sbcl")
-                                (_.call/* (_.var "sb-ext:quit") (list code)))
-                (_.conditional+ (list "clisp")
-                                (_.call/* (_.var "ext:exit") (list code)))
-                (_.conditional+ (list "ccl")
-                                (_.call/* (_.var "ccl:quit") (list code)))
-                (_.conditional+ (list "allegro")
-                                (_.call/* (_.var "excl:exit") (list code)))
-                (_.call/* (_.var "cl-user::quit") (list code)))))
-
-(def runtime//io
-  (List (Expression Any))
-  (list @io//exit))
-
-(def runtime
-  (_.progn (all list#composite
-                runtime//adt
-                runtime//lux
-                runtime//i64
-                runtime//text
-                runtime//io)))
-
-(def .public generate
-  (Operation [Registry Output])
-  (do ///////phase.monad
-    [_ (/////generation.execute! ..runtime)
-     _ (/////generation.save! (%.nat ..module_id) ..runtime)]
-    (in [(|> artifact.empty
-             artifact.resource
-             product.right)
-         (sequence.sequence [(%.nat ..module_id)
-                             (|> ..runtime
-                                 _.code
-                                 (at encoding.utf8 encoded))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/structure.lux
deleted file mode 100644
index c4aabc6f2..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/structure.lux
+++ /dev/null
@@ -1,38 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [meta
-    [target
-     ["_" common_lisp (.only Expression)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" primitive]
-  ["///[1]" ////
-   [analysis (.only Variant Tuple)]
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["//[1]" ///
-    ["[1][0]" phase (.use "[1]#[0]" monad)]]]])
-
-(def .public (tuple expression archive elemsS+)
-  (Generator (Tuple Synthesis))
-  (when elemsS+
-    {.#End}
-    (///////phase#in (//primitive.text /////synthesis.unit))
-
-    {.#Item singletonS {.#End}}
-    (expression archive singletonS)
-
-    _
-    (|> elemsS+
-        (monad.each ///////phase.monad (expression archive))
-        (///////phase#each _.vector/*))))
-
-(def .public (variant expression archive [lefts right? valueS])
-  (Generator (Variant Synthesis))
-  (let [tag (if right?
-              (++ lefts)
-              lefts)]
-    (///////phase#each (|>> [tag right?] //runtime.variant)
-                       (expression archive valueS))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/when.lux
deleted file mode 100644
index 731102b94..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/common_lisp/when.lux
+++ /dev/null
@@ -1,263 +0,0 @@
-(.require
- [library
-  [lux (.except when let if)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix monoid)]
-     ["[0]" set]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" common_lisp (.only Expression Var/1)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" reference]
-  ["[1][0]" primitive]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" synthesis
-     ["[1]/[0]" when]]
-    ["/[1]" //
-     ["[1][0]" synthesis (.only Member Synthesis Path)]
-     ["[1][0]" generation]
-     ["//[1]" ///
-      [reference
-       ["[1][0]" variable (.only Register)]]
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [meta
-       [archive (.only Archive)]]]]]]])
-
-(def .public register
-  (-> Register Var/1)
-  (|>> (///reference.local //reference.system) as_expected))
-
-(def .public capture
-  (-> Register Var/1)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def .public (let expression archive [valueS register bodyS])
-  (Generator [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueG (expression archive valueS)
-     bodyG (expression archive bodyS)]
-    (in (_.let (list [(..register register) valueG])
-          (list bodyG)))))
-
-(def .public (if expression archive [testS thenS elseS])
-  (Generator [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [testG (expression archive testS)
-     thenG (expression archive thenS)
-     elseG (expression archive elseS)]
-    (in (_.if testG thenG elseG))))
-
-(def .public (get expression archive [pathP valueS])
-  (Generator [(List Member) Synthesis])
-  (do ///////phase.monad
-    [valueG (expression archive valueS)]
-    (in (list#mix (function (_ side source)
-                    (.let [method (.when side
-                                    (^.with_template [ ]
-                                      [( lefts)
-                                       ( (_.int (.int lefts)))])
-                                    ([.#Left //runtime.tuple//left]
-                                     [.#Right //runtime.tuple//right]))]
-                      (method source)))
-                  valueG
-                  pathP))))
-
-(def @savepoint (_.var "lux_pm_savepoint"))
-(def @cursor (_.var "lux_pm_cursor"))
-(def @temp (_.var "lux_pm_temp"))
-(def @variant (_.var "lux_pm_variant"))
-
-(def (push! value)
-  (-> (Expression Any) (Expression Any))
-  (_.setq @cursor (_.cons/2 [value @cursor])))
-
-(def pop!
-  (Expression Any)
-  (_.setq @cursor (_.cdr/1 @cursor)))
-
-(def peek
-  (Expression Any)
-  (_.car/1 @cursor))
-
-(def save!
-  (Expression Any)
-  (_.setq @savepoint (_.cons/2 [@cursor @savepoint])))
-
-(def restore!
-  (List (Expression Any))
-  (list (_.setq @cursor (_.car/1 @savepoint))
-        (_.setq @savepoint (_.cdr/1 @savepoint))))
-
-(def (multi_pop! pops)
-  (-> Nat (Expression Any))
-  (_.setq @cursor (_.nthcdr/2 [(_.int (.int pops)) @cursor])))
-
-(with_template [  ]
-  [(def ( @fail simple? idx next!)
-     (-> _.Tag Bit Nat (Maybe (Expression Any)) (Expression Any))
-     (.let [ (_.eq/2 [@variant @temp])]
-       (_.let (list [@variant ..peek])
-         (list.partial (_.setq @temp (|> idx  .int _.int (//runtime.sum//get @variant )))
-                       (.if simple?
-                         (_.when 
-                           (_.go @fail))
-                         (_.if 
-                           (_.go @fail)
-                           (..push! @temp)))
-                       (.when next!
-                         {.#Some next!}
-                         (list next!)
-                         
-                         {.#None}
-                         (list))))))]
-
-  [left_choice  _.nil         (<|)]
-  [right_choice (_.string "") ++]
-  )
-
-(def (alternation @otherwise pre! post!)
-  (-> _.Tag (Expression Any) (Expression Any) (Expression Any))
-  (_.tagbody (all list#composite
-                  (list ..save!
-                        pre!
-                        @otherwise)
-                  ..restore!
-                  (list post!))))
-
-(def (pattern_matching' expression archive)
-  (Generator [Var/1 _.Tag _.Tag Path])
-  (function (again [$output @done @fail pathP])
-    (.when pathP
-      (/////synthesis.path/then bodyS)
-      (at ///////phase.monad each
-          (function (_ outputV)
-            (_.progn (list (_.setq $output outputV)
-                           (_.go @done))))
-          (expression archive bodyS))
-
-      {/////synthesis.#Pop}
-      (///////phase#in ..pop!)
-
-      {/////synthesis.#Bind register}
-      (///////phase#in (_.setq (..register register) ..peek))
-
-      {/////synthesis.#Bit_Fork when thenP elseP}
-      (do [! ///////phase.monad]
-        [then! (again [$output @done @fail thenP])
-         else! (.when elseP
-                 {.#Some elseP}
-                 (again [$output @done @fail elseP])
-
-                 {.#None}
-                 (in (_.go @fail)))]
-        (in (.if when
-              (_.if ..peek
-                then!
-                else!)
-              (_.if ..peek
-                else!
-                then!))))
-
-      (^.with_template [  <=>]
-        [{ item}
-         (do [! ///////phase.monad]
-           [clauses (monad.each ! (function (_ [match then])
-                                    (do !
-                                      [then! (again [$output @done @fail then])]
-                                      (in [(<=> [(|> match )
-                                                 ..peek])
-                                           then!])))
-                                {.#Item item})]
-           (in (list#mix (function (_ [when then] else)
-                           (_.if when then else))
-                         (_.go @fail)
-                         clauses)))])
-      ([/////synthesis.#I64_Fork //primitive.i64 _.=/2]
-       [/////synthesis.#F64_Fork //primitive.f64 _.=/2]
-       [/////synthesis.#Text_Fork //primitive.text _.string=/2])
-
-      (^.with_template [  ]
-        [( idx)
-         (///////phase#in ( @fail false idx {.#None}))
-
-         ( idx nextP)
-         (|> nextP
-             [$output @done @fail] again
-             (at ///////phase.monad each (|>> {.#Some} ( @fail true idx))))])
-      ([/////synthesis.side/left  /////synthesis.simple_left_side  ..left_choice]
-       [/////synthesis.side/right /////synthesis.simple_right_side ..right_choice])
-
-      (/////synthesis.member/left 0)
-      (///////phase#in (..push! (_.elt/2 [..peek (_.int +0)])))
-      
-      (^.with_template [ ]
-        [( lefts)
-         (///////phase#in (|> ..peek ( (_.int (.int lefts))) ..push!))])
-      ([/////synthesis.member/left  //runtime.tuple//left]
-       [/////synthesis.member/right //runtime.tuple//right])
-
-      (/////synthesis.!multi_pop nextP)
-      (.let [[extra_pops nextP'] (////synthesis/when.count_pops nextP)]
-        (do ///////phase.monad
-          [next! (again [$output @done @fail nextP'])]
-          (///////phase#in (_.progn (list (..multi_pop! (n.+ 2 extra_pops))
-                                          next!)))))
-
-      (/////synthesis.path/alt preP postP)
-      (do [! ///////phase.monad]
-        [@otherwise (at ! each (|>> %.nat (format "lux_when_otherwise") _.tag) /////generation.next)
-         pre! (again [$output @done @otherwise preP])
-         post! (again [$output @done @fail postP])]
-        (in (..alternation @otherwise pre! post!)))
-
-      (/////synthesis.path/seq preP postP)
-      (do ///////phase.monad
-        [pre! (again [$output @done @fail preP])
-         post! (again [$output @done @fail postP])]
-        (in (_.progn (list pre! post!)))))))
-
-(def (pattern_matching $output expression archive pathP)
-  (-> Var/1 (Generator Path))
-  (do [! ///////phase.monad]
-    [@done (at ! each (|>> %.nat (format "lux_when_done") _.tag) /////generation.next)
-     @fail (at ! each (|>> %.nat (format "lux_when_fail") _.tag) /////generation.next)
-     pattern_matching! (pattern_matching' expression archive [$output @done @fail pathP])]
-    (in (_.tagbody
-         (list pattern_matching!
-               @fail
-               (_.error/1 (_.string ////synthesis/when.pattern_matching_error))
-               @done)))))
-
-(def .public (when expression archive [valueS pathP])
-  (Generator [Synthesis Path])
-  (do [! ///////phase.monad]
-    [initG (expression archive valueS)
-     $output (at ! each (|>> %.nat (format "lux_when_output") _.var) /////generation.next)
-     pattern_matching! (pattern_matching $output expression archive pathP)
-     .let [storage (|> pathP
-                       ////synthesis/when.storage
-                       (the ////synthesis/when.#bindings)
-                       set.list
-                       (list#each (function (_ register)
-                                    [(..register register)
-                                     _.nil])))]]
-    (in (_.let (list.partial [@cursor (_.list/* (list initG))]
-                             [@savepoint (_.list/* (list))]
-                             [@temp _.nil]
-                             [$output _.nil]
-                             storage)
-          (list pattern_matching!
-                $output)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/extension.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/extension.lux
deleted file mode 100644
index 9c8dbf379..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/extension.lux
+++ /dev/null
@@ -1,85 +0,0 @@
-(.require
- [library
-  [lux (.except Synthesis)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" exception (.only Exception)]]
-   [data
-    [text
-     ["%" \\format]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]]]
-   ["[0]" meta (.only)
-    ["[0]" code (.only)
-     ["<[1]>" \\parser]]
-    ["[0]" macro (.only with_symbols)
-     [syntax (.only syntax)]]]]]
- ["[0]" ///
-  ["[1][0]" extension]
-  [//
-   [synthesis (.only Synthesis)]
-   ["[0]" generation]
-   [///
-    ["[1]" phase]]]])
-
-(def Vector
-  (syntax (_ [size .nat
-              elemT .any])
-    (in (list (` [(,* (list.repeated size elemT))])))))
-
-(def Arity
-  (template (_ arity)
-    [(All (_ of)
-       (-> (Vector arity of) of))]))
-
-(exception.def .public (incorrect_arity [expected actual])
-  (Exception [Nat Nat])
-  (exception.report
-   (list ["Expected" (%.nat expected)]
-         ["Actual" (%.nat actual)])))
-
-(def arity
-  (syntax (_ [arity .nat])
-    (with_symbols [g!_ g!extension g!phase g!archive g!inputs g!anchor g!expression g!declaration]
-      (do [! meta.monad]
-        [g!input+ (monad.all ! (list.repeated arity (macro.symbol "input")))]
-        (in (list (` (is (All ((, g!_) (, g!anchor) (, g!expression) (, g!declaration))
-                           (-> ((Arity (, (code.nat arity))) (, g!expression))
-                               (generation.Handler (, g!anchor) (, g!expression) (, g!declaration))))
-                         (function ((, g!_) (, g!extension))
-                           (function ((, g!_) (, g!phase) (, g!archive) (, g!inputs))
-                             (when (, g!inputs)
-                               (list (,* g!input+))
-                               (do ///.monad
-                                 [(,* (|> g!input+
-                                          (list#each (function (_ g!input)
-                                                       (list g!input (` ((, g!phase) (, g!archive) (, g!input))))))
-                                          list.together))]
-                                 ((,' in) ((, g!extension) [(,* g!input+)])))
-
-                               (, g!_)
-                               (///.except ..incorrect_arity [(, (code.nat arity)) (list.size (, g!inputs))]))
-                             ))))))))))
-
-(with_template [  ]
-  [(type .public  (Arity ))
-   (def .public  (arity ))]
-
-  [0 Nullary nullary]
-  [1 Unary unary]
-  [2 Binary binary]
-  [3 Trinary trinary]
-  )
-
-(type .public (Variadic of)
-  (-> (List of) of))
-
-(def .public (variadic extension)
-  (All (_ anchor expression declaration)
-    (-> (Variadic expression) (generation.Handler anchor expression declaration)))
-  (function (_ phase archive inputsS)
-    (let [! ///.monad]
-      (|> inputsS
-          (monad.each ! (phase archive))
-          (at ! each extension)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js.lux
deleted file mode 100644
index 911215b10..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js.lux
+++ /dev/null
@@ -1,90 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" exception]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" js]]]]]
- ["[0]" /
-  [runtime (.only Phase Phase!)]
-  ["[1][0]" primitive]
-  ["[1][0]" structure]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["[1][0]" loop]
-  ["[1][0]" function]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" extension (.only)
-     [generation
-      [js
-       ["[1]/[0]" common]]]]
-    ["/[1]" //
-     [analysis (.only)]
-     ["[0]" synthesis]
-     ["//[1]" ///
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [reference (.only)
-       [variable (.only)]]]]]]])
-
-(exception.def .public cannot_recur_as_an_expression)
-
-(def (expression archive synthesis)
-  Phase
-  (when synthesis
-    (^.with_template [ ]
-      [( value)
-       (//////phase#in ( value))])
-    ([synthesis.bit  /primitive.bit]
-     [synthesis.i64  /primitive.i64]
-     [synthesis.f64  /primitive.f64]
-     [synthesis.text /primitive.text])
-
-    (synthesis.variant variantS)
-    (/structure.variant expression archive variantS)
-
-    (synthesis.tuple members)
-    (/structure.tuple expression archive members)
-
-    {synthesis.#Reference value}
-    (//reference.reference /reference.system archive value)
-
-    (synthesis.branch/when when)
-    (/when.when ///extension/common.statement expression archive when)
-
-    (synthesis.branch/exec it)
-    (/when.exec expression archive it)
-
-    (synthesis.branch/let let)
-    (/when.let expression archive let)
-
-    (synthesis.branch/if if)
-    (/when.if expression archive if)
-
-    (synthesis.branch/get get)
-    (/when.get expression archive get)
-
-    (synthesis.loop/scope scope)
-    (/loop.scope ///extension/common.statement expression archive scope)
-
-    (synthesis.loop/again updates)
-    (//////phase.except ..cannot_recur_as_an_expression [])
-
-    (synthesis.function/abstraction abstraction)
-    (/function.function ///extension/common.statement expression archive abstraction)
-
-    (synthesis.function/apply application)
-    (/function.apply expression archive application)
-
-    {synthesis.#Extension extension}
-    (///extension.apply archive expression extension)))
-
-(def .public generate
-  Phase
-  ..expression)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/function.lux
deleted file mode 100644
index f0bb48d3d..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/function.lux
+++ /dev/null
@@ -1,131 +0,0 @@
-(.require
- [library
-  [lux (.except function)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    [text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [meta
-    [target
-     ["_" js (.only Expression Computation Var Statement)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Phase! Generator)]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["//[1]" ///
-    [analysis (.only Abstraction Reification Analysis)]
-    [synthesis (.only Synthesis)]
-    ["[1][0]" generation]
-    ["//[1]" ///
-     [arity (.only Arity)]
-     ["[1][0]" phase (.use "[1]#[0]" monad)]
-     [reference
-      [variable (.only Register Variable)]]
-     [meta
-      [archive
-       ["[0]" unit]]
-      ["[0]" cache
-       [dependency
-        ["[1]" artifact]]]]]]]])
-
-(def .public (apply expression archive [functionS argsS+])
-  (Generator (Reification Synthesis))
-  (do [! ///////phase.monad]
-    [functionO (expression archive functionS)
-     argsO+ (monad.each ! (expression archive) argsS+)]
-    (in (_.apply functionO argsO+))))
-
-(def capture
-  (-> Register Var)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def (with_closure @self inits body!)
-  (-> Var (List Expression) Statement [Statement Expression])
-  (when inits
-    {.#End}
-    [(_.function_definition @self (list) body!)
-     @self]
-
-    _
-    [(_.function_definition @self
-                            (|> (list.enumeration inits)
-                                (list#each (|>> product.left ..capture)))
-                            (_.return (_.function @self (list) body!)))
-     (_.apply @self inits)]))
-
-(def @curried
-  (_.var "curried"))
-
-(def input
-  (|>> ++ //when.register))
-
-(def @@arguments
-  (_.var "arguments"))
-
-(def (@scope function_name)
-  (-> unit.ID Text)
-  (format (///reference.artifact function_name) "_scope"))
-
-(def .public (function statement expression archive [environment arity bodyS])
-  (-> Phase! (Generator (Abstraction Synthesis)))
-  (do [! ///////phase.monad]
-    [dependencies (cache.dependencies archive bodyS)
-     [function_name body!] (/////generation.with_new_context archive dependencies
-                             (do !
-                               [scope (at ! each ..@scope
-                                          (/////generation.context archive))]
-                               (/////generation.with_anchor [1 scope]
-                                 (statement expression archive bodyS))))
-     .let [arityO (|> arity .int _.i32)
-           @num_args (_.var "num_args")
-           @scope (..@scope function_name)
-           @self (_.var (///reference.artifact function_name))
-           apply_poly (.function (_ args func)
-                        (|> func (_.do "apply" (list _.null args))))
-           initialize_self! (_.define (//when.register 0) @self)
-           initialize! (list#mix (.function (_ post pre!)
-                                   (all _.then
-                                        pre!
-                                        (_.define (..input post) (_.at (_.i32 (.int post)) @@arguments))))
-                                 initialize_self!
-                                 (list.indices arity))]
-     environment (monad.each ! (expression archive) environment)
-     .let [[definition instantiation] (with_closure @self environment
-                                        (all _.then
-                                             (_.define @num_args (_.the "length" @@arguments))
-                                             (<| (_.if (|> @num_args (_.= arityO))
-                                                   (all _.then
-                                                        initialize!
-                                                        (_.with_label (_.label @scope)
-                                                          (_.do_while (_.boolean true)
-                                                                      body!))))
-                                                 (_.if (|> @num_args (_.> arityO))
-                                                   (let [arity_inputs (|> (_.array (list))
-                                                                          (_.the "slice")
-                                                                          (_.do "call" (list @@arguments (_.i32 +0) arityO)))
-                                                         extra_inputs (|> (_.array (list))
-                                                                          (_.the "slice")
-                                                                          (_.do "call" (list @@arguments arityO)))]
-                                                     (_.return (|> @self
-                                                                   (apply_poly arity_inputs)
-                                                                   (apply_poly extra_inputs)))))
-                                                 ... (|> @num_args (_.< arityO))
-                                                 (let [all_inputs (|> (_.array (list))
-                                                                      (_.the "slice")
-                                                                      (_.do "call" (list @@arguments)))]
-                                                   (all _.then
-                                                        (_.define @curried all_inputs)
-                                                        (_.return (_.closure (list)
-                                                                             (let [@missing all_inputs]
-                                                                               (_.return (apply_poly (_.do "concat" (list @missing) @curried)
-                                                                                                     @self))))))))
-                                             ))]
-     _ (/////generation.execute! definition)
-     _ (/////generation.save! (product.right function_name) {.#None} definition)]
-    (in instantiation)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/loop.lux
deleted file mode 100644
index 92811921c..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/loop.lux
+++ /dev/null
@@ -1,116 +0,0 @@
-(.require
- [library
-  [lux (.except Scope)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     ["_" js (.only Computation Var Expression Statement)]]]]]
- ["[0]" //
-  [runtime (.only Operation Phase Phase! Generator Generator!)]
-  ["[1][0]" when]
-  ["///[1]" ////
-   [synthesis (.only Scope Synthesis)]
-   ["[1][0]" generation]
-   ["//[1]" ///
-    ["[1][0]" phase]
-    [reference
-     [variable (.only Register)]]]]])
-
-(def @scope
-  (-> Nat Text)
-  (|>> %.nat (format "scope")))
-
-(def $iteration
-  (-> Nat Var)
-  (|>> %.nat (format "iteration") _.var))
-
-(def (setup $iteration initial? offset bindings body)
-  (-> Var Bit Register (List Expression) Statement Statement)
-  (when bindings
-    (list)
-    body
-
-    (list binding)
-    (let [$binding (//when.register offset)]
-      (all _.then
-           (if initial?
-             (_.define $binding binding)
-             (_.statement (_.set $binding binding)))
-           body
-           ))
-
-    _
-    (|> bindings
-        list.enumeration
-        (list#each (function (_ [register _])
-                     (let [variable (//when.register (n.+ offset register))]
-                       (if initial?
-                         (_.define variable (_.at (_.i32 (.int register)) $iteration))
-                         (_.statement (_.set variable (_.at (_.i32 (.int register)) $iteration)))))))
-        list.reversed
-        (list#mix _.then body)
-        (_.then (_.define $iteration (_.array bindings))))))
-
-(def .public (scope! statement expression archive [start initsS+ bodyS])
-  (Generator! (Scope Synthesis))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (statement expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [@scope (at ! each ..@scope /////generation.next)
-       initsO+ (monad.each ! (expression archive) initsS+)
-       body! (/////generation.with_anchor [start @scope]
-               (statement expression archive bodyS))
-       $iteration (at ! each ..$iteration /////generation.next)]
-      (in (..setup $iteration
-                   true start
-                   initsO+
-                   (_.with_label (_.label @scope)
-                     (_.do_while (_.boolean true)
-                                 body!)))))))
-
-(def .public (scope statement expression archive [start initsS+ bodyS])
-  (-> Phase! (Generator (Scope Synthesis)))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [loop! (scope! statement expression archive [start initsS+ bodyS])]
-      (in (_.apply (_.closure (list) loop!) (list))))))
-
-(def @temp
-  (_.var "lux_again_values"))
-
-(def .public (again! statement expression archive argsS+)
-  (Generator! (List Synthesis))
-  (do [! ///////phase.monad]
-    [[offset @scope] /////generation.anchor
-     argsO+ (monad.each ! (expression archive) argsS+)
-     $iteration (at ! each ..$iteration /////generation.next)]
-    (in (all _.then
-             (_.define @temp (_.array argsO+))
-             (..setup $iteration
-                      false offset
-                      (|> argsO+
-                          list.enumeration
-                          (list#each (function (_ [idx _])
-                                       (_.at (_.i32 (.int idx)) @temp))))
-                      (_.continue_at (_.label @scope)))))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/primitive.lux
deleted file mode 100644
index 509108682..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/primitive.lux
+++ /dev/null
@@ -1,22 +0,0 @@
-(.require
- [library
-  [lux (.except i64)
-   [meta
-    [target
-     ["_" js (.only Computation)]]]]]
- ["[0]" //
-  ["[1][0]" runtime]])
-
-(def .public bit
-  _.boolean)
-
-(def .public (i64 value)
-  (-> (I64 Any) Computation)
-  (//runtime.i64 (|> value //runtime.high .int _.i32)
-                 (|> value //runtime.low .int _.i32)))
-
-(def .public f64
-  _.number)
-
-(def .public text
-  _.string)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/reference.lux
deleted file mode 100644
index 95393bf91..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/reference.lux
+++ /dev/null
@@ -1,14 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [meta
-    [target
-     ["_" js (.only Expression)]]]]]
- [///
-  [reference (.only System)]])
-
-(def .public system
-  (System Expression)
-  (implementation
-   (def constant' _.var)
-   (def variable' _.var)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/runtime.lux
deleted file mode 100644
index ad0ee82b2..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/runtime.lux
+++ /dev/null
@@ -1,838 +0,0 @@
-(.require
- [library
-  [lux (.except Synthesis Declaration i64 left right)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.use "[1]#[0]" hash)
-     ["%" \\format (.only format)]
-     [encoding
-      ["[0]" utf8]]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" sequence]]]
-   [math
-    [number (.only hex)
-     ["[0]" i64]]]
-   ["[0]" meta (.only)
-    ["[0]" code (.only)
-     ["<[1]>" \\parser]]
-    ["[0]" macro (.only)
-     [syntax (.only syntax)]]
-    [target
-     ["_" js (.only Expression Var Computation Statement)]]]]]
- ["[0]" ///
-  ["[1][0]" reference]
-  ["//[1]" ///
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["[1][0]" generation]
-   ["//[1]" /// (.only)
-    ["[1][0]" phase]
-    [reference
-     [variable (.only Register)]]
-    [meta
-     [archive (.only Output Archive)
-      ["[0]" registry (.only Registry)]
-      ["[0]" unit]]]]]])
-
-(type .public Anchor
-  [Register Text])
-
-(type .public Value
-  Expression)
-
-(type .public Declaration
-  Statement)
-
-(with_template [ ]
-  [(type .public 
-     ( Anchor Value Declaration))]
-
-  [Operation /////generation.Operation]
-  [Phase /////generation.Phase]
-  [Handler /////generation.Handler]
-  [Bundle /////generation.Bundle]
-  )
-
-(type .public (Generator i)
-  (-> Phase Archive i (Operation Expression)))
-
-(type .public Phase!
-  (-> Phase Archive Synthesis (Operation Statement)))
-
-(type .public (Generator! i)
-  (-> Phase! Phase Archive i (Operation Statement)))
-
-(def .public high
-  (-> (I64 Any) (I64 Any))
-  (i64.right_shifted 32))
-
-(def .public low
-  (-> (I64 Any) (I64 Any))
-  (let [mask (-- (i64.left_shifted 32 1))]
-    (|>> (i64.and mask))))
-
-(def .public unit
-  Computation
-  (_.string /////synthesis.unit))
-
-(def .public (flag value)
-  (-> Bit Computation)
-  (if value
-    (_.string "")
-    _.null))
-
-(def (feature name definition)
-  (-> Var (-> Var Expression) Statement)
-  (_.define name (definition name)))
-
-(def .public with_vars
-  (syntax (_ [vars (.tuple (<>.some .local))
-              body .any])
-    (do [! meta.monad]
-      [ids (monad.all ! (list.repeated (list.size vars) meta.seed))]
-      (in (list (` (let [(,* (|> vars
-                                 (list.zipped_2 ids)
-                                 (list#each (function (_ [id var])
-                                              (list (code.local var)
-                                                    (` (_.var (, (code.text (format "v" (%.nat id)))))))))
-                                 list.together))]
-                     (, body))))))))
-
-(def runtime
-  (syntax (_ [declaration (<>.or .local
-                                 (.form (<>.and .local
-                                                      (<>.some .local))))
-              code .any])
-    (macro.with_symbols [g!_ runtime]
-      (let [runtime_name (` (_.var (, (code.text (%.code runtime)))))]
-        (when declaration
-          {.#Left name}
-          (let [g!name (code.local name)]
-            (in (list (` (def .public (, g!name)
-                           Var
-                           (, runtime_name)))
-                      
-                      (` (def (, (code.local (format "@" name)))
-                           Statement
-                           (..feature (, runtime_name)
-                                      (function ((, g!_) (, g!name))
-                                        (, code))))))))
-          
-          {.#Right [name inputs]}
-          (let [g!name (code.local name)
-                inputsC (list#each code.local inputs)
-                inputs_typesC (list#each (function.constant (` _.Expression)) inputs)]
-            (in (list (` (def .public ((, g!name) (,* inputsC))
-                           (-> (,* inputs_typesC) Computation)
-                           (_.apply (, runtime_name) (list (,* inputsC)))))
-                      
-                      (` (def (, (code.local (format "@" name)))
-                           Statement
-                           (..feature (, runtime_name)
-                                      (function ((, g!_) (, g!_))
-                                        (..with_vars [(,* inputsC)]
-                                          (_.function (, g!_) (list (,* inputsC))
-                                            (, code)))))))))))))))
-
-(def length
-  (-> Expression Computation)
-  (_.the "length"))
-
-(def last_index
-  (-> Expression Computation)
-  (|>> ..length (_.- (_.i32 +1))))
-
-(def (last_element tuple)
-  (_.at (..last_index tuple)
-        tuple))
-
-(with_expansions [ (these (all _.then
-                                      (_.statement (_.set lefts (_.- last_index_right lefts)))
-                                      (_.statement (_.set tuple (_.at last_index_right tuple)))))]
-  (runtime
-   (tuple//left lefts tuple)
-   (with_vars [last_index_right]
-     (<| (_.while (_.boolean true))
-         (all _.then
-              (_.define last_index_right (..last_index tuple))
-              (_.if (_.> lefts last_index_right)
-                ... No need for recursion
-                (_.return (_.at lefts tuple))
-                ... Needs recursion
-                )))))
-
-  (runtime
-   (tuple//right lefts tuple)
-   (with_vars [last_index_right right_index]
-     (<| (_.while (_.boolean true))
-         (all _.then
-              (_.define last_index_right (..last_index tuple))
-              (_.define right_index (_.+ (_.i32 +1) lefts))
-              (<| (_.if (_.= last_index_right right_index)
-                    (_.return (_.at right_index tuple)))
-                  (_.if (_.> last_index_right right_index)
-                    ... Needs recursion.
-                    )
-                  (_.return (_.do "slice" (list right_index) tuple)))
-              )))))
-
-(def .public variant_tag_field "_lux_tag")
-(def .public variant_flag_field "_lux_flag")
-(def .public variant_value_field "_lux_value")
-
-(runtime
- variant//new
- (let [@this (_.var "this")]
-   (with_vars [tag is_last value]
-     (_.closure (list tag is_last value)
-                (all _.then
-                     (_.statement (_.set (_.the ..variant_tag_field @this) tag))
-                     (_.statement (_.set (_.the ..variant_flag_field @this) is_last))
-                     (_.statement (_.set (_.the ..variant_value_field @this) value))
-                     )))))
-
-(def .public (variant tag last? value)
-  (-> Expression Expression Expression Computation)
-  (_.new ..variant//new (list tag last? value)))
-
-(runtime
- (sum//get sum expected::right? expected::lefts)
- (let [mismatch! (_.return _.null)
-       actual::lefts (|> sum (_.the ..variant_tag_field))
-       actual::right? (|> sum (_.the ..variant_flag_field))
-       actual::value (|> sum (_.the ..variant_value_field))
-       is_last? (_.= ..unit actual::right?)
-       recur! (all _.then
-                   (_.statement (_.set expected::lefts (|> expected::lefts
-                                                           (_.- actual::lefts)
-                                                           (_.- (_.i32 +1)))))
-                   (_.statement (_.set sum actual::value)))]
-   (<| (_.while (_.boolean true))
-       (_.if (_.= expected::lefts actual::lefts)
-         (_.if (_.= expected::right? actual::right?)
-           (_.return actual::value)
-           mismatch!))
-       (_.if (_.< expected::lefts actual::lefts)
-         (_.if (_.= ..unit actual::right?)
-           recur!
-           mismatch!))
-       (_.if (_.= ..unit expected::right?)
-         (_.return (..variant (|> actual::lefts
-                                  (_.- expected::lefts)
-                                  (_.- (_.i32 +1)))
-                              actual::right?
-                              actual::value)))
-       mismatch!)))
-
-(def left
-  (-> Expression Computation)
-  (..variant (_.i32 +0) (flag #0)))
-
-(def right
-  (-> Expression Computation)
-  (..variant (_.i32 +0) (flag #1)))
-
-(def none
-  Computation
-  (..left ..unit))
-
-(def some
-  (-> Expression Computation)
-  ..right)
-
-(def runtime//structure
-  Statement
-  (all _.then
-       @tuple//left
-       @tuple//right
-       @variant//new
-       @sum//get
-       ))
-
-(runtime
- (lux//try op)
- (with_vars [ex]
-   (_.try (_.return (..right (_.apply_1 op ..unit)))
-          [ex (_.return (..left (|> ex (_.do "toString" (list)))))])))
-
-(runtime
- (lux//program_args inputs)
- (with_vars [output idx]
-   (all _.then
-        (_.define output ..none)
-        (_.for idx
-               (..last_index inputs)
-               (_.>= (_.i32 +0) idx)
-               (_.-- idx)
-               (_.statement (_.set output (..some (_.array (list (_.at idx inputs)
-                                                                 output))))))
-        (_.return output))))
-
-(def runtime//lux
-  Statement
-  (all _.then
-       @lux//try
-       @lux//program_args
-       ))
-
-(def .public i64_low_field Text "_lux_low")
-(def .public i64_high_field Text "_lux_high")
-
-(runtime
- i64::new
- (let [@this (_.var "this")]
-   (with_vars [high low]
-     (_.closure (list high low)
-                (all _.then
-                     (_.statement (_.set (_.the ..i64_high_field @this) high))
-                     (_.statement (_.set (_.the ..i64_low_field @this) low))
-                     )))))
-
-(def .public (i64 high low)
-  (-> Expression Expression Computation)
-  (_.new ..i64::new (list high low)))
-
-(with_template [ ]
-  [(runtime
-    ( subject parameter)
-    (_.return (..i64 ( (_.the ..i64_high_field subject)
-                           (_.the ..i64_high_field parameter))
-                     ( (_.the ..i64_low_field subject)
-                           (_.the ..i64_low_field parameter)))))]
-
-  [i64::xor _.bit_xor]
-  [i64::or  _.bit_or]
-  [i64::and _.bit_and]
-  )
-
-(runtime
- (i64::not value)
- (_.return (..i64 (_.bit_not (_.the ..i64_high_field value))
-                  (_.bit_not (_.the ..i64_low_field value)))))
-
-(def (cap_shift! shift)
-  (-> Var Statement)
-  (_.statement (_.set shift (|> shift (_.bit_and (_.i32 +63))))))
-
-(def (no_shift! shift input)
-  (-> Var Var (-> Expression Expression))
-  (_.? (|> shift (_.= (_.i32 +0)))
-       input))
-
-(def small_shift?
-  (-> Var Expression)
-  (|>> (_.< (_.i32 +32))))
-
-(runtime
- (i64::left_shifted input shift)
- (all _.then
-      (..cap_shift! shift)
-      (_.return (<| (..no_shift! shift input)
-                    (_.? (..small_shift? shift)
-                         (let [high (_.bit_or (|> input (_.the ..i64_high_field) (_.left_shift shift))
-                                              (|> input (_.the ..i64_low_field) (_.logic_right_shift (_.- shift (_.i32 +32)))))
-                               low (|> input (_.the ..i64_low_field) (_.left_shift shift))]
-                           (..i64 high low)))
-                    (let [high (|> input (_.the ..i64_low_field) (_.left_shift (_.- (_.i32 +32) shift)))]
-                      (..i64 high (_.i32 +0)))))
-      ))
-
-(runtime
- (i64::arithmetic_right_shifted input shift)
- (all _.then
-      (..cap_shift! shift)
-      (_.return (<| (..no_shift! shift input)
-                    (_.? (..small_shift? shift)
-                         (let [high (|> input (_.the ..i64_high_field) (_.arithmetic_right_shift shift))
-                               low (|> input (_.the ..i64_low_field) (_.logic_right_shift shift)
-                                       (_.bit_or (|> input (_.the ..i64_high_field) (_.left_shift (_.- shift (_.i32 +32))))))]
-                           (..i64 high low)))
-                    (let [high (_.? (|> input (_.the ..i64_high_field) (_.>= (_.i32 +0)))
-                                    (_.i32 +0)
-                                    (_.i32 -1))
-                          low (|> input (_.the ..i64_high_field) (_.arithmetic_right_shift (_.- (_.i32 +32) shift)))]
-                      (..i64 high low))))))
-
-(runtime
- (i64::right_shifted input shift)
- (all _.then
-      (..cap_shift! shift)
-      (_.return (<| (..no_shift! shift input)
-                    (_.? (..small_shift? shift)
-                         (let [high (|> input (_.the ..i64_high_field) (_.logic_right_shift shift))
-                               low (|> input (_.the ..i64_low_field) (_.logic_right_shift shift)
-                                       (_.bit_or (|> input (_.the ..i64_high_field) (_.left_shift (_.- shift (_.i32 +32))))))]
-                           (..i64 high low)))
-                    (_.? (|> shift (_.= (_.i32 +32)))
-                         (..i64 (_.i32 +0) (|> input (_.the ..i64_high_field))))
-                    (..i64 (_.i32 +0)
-                           (|> input (_.the ..i64_high_field) (_.logic_right_shift (_.- (_.i32 +32) shift))))))))
-
-(def runtime//bit
-  Statement
-  (all _.then
-       @i64::and
-       @i64::or
-       @i64::xor
-       @i64::not
-       @i64::left_shifted
-       @i64::arithmetic_right_shifted
-       @i64::right_shifted
-       ))
-
-(runtime
- i64::2^16
- (_.left_shift (_.i32 +16) (_.i32 +1)))
-
-(runtime
- i64::2^32
- (_.* i64::2^16 i64::2^16))
-
-(runtime
- i64::2^64
- (_.* i64::2^32 i64::2^32))
-
-(runtime
- i64::2^63
- (|> i64::2^64 (_./ (_.i32 +2))))
-
-(runtime
- (i64::unsigned_low i64)
- (_.return (_.? (|> i64 (_.the ..i64_low_field) (_.>= (_.i32 +0)))
-                (|> i64 (_.the ..i64_low_field))
-                (|> i64 (_.the ..i64_low_field) (_.+ i64::2^32)))))
-
-(runtime
- (i64::number i64)
- (_.return (|> i64
-               (_.the ..i64_high_field)
-               (_.* i64::2^32)
-               (_.+ (i64::unsigned_low i64)))))
-
-(runtime
- i64::zero
- (..i64 (_.i32 +0) (_.i32 +0)))
-
-(runtime
- i64::min
- (..i64 (_.i32 (.int (hex "80,00,00,00")))
-        (_.i32 +0)))
-
-(runtime
- i64::max
- (..i64 (_.i32 (.int (hex "7F,FF,FF,FF")))
-        (_.i32 (.int (hex "FF,FF,FF,FF")))))
-
-(runtime
- i64::one
- (..i64 (_.i32 +0) (_.i32 +1)))
-
-(runtime
- (i64::= reference sample)
- (_.return (_.and (_.= (_.the ..i64_high_field reference)
-                       (_.the ..i64_high_field sample))
-                  (_.= (_.the ..i64_low_field reference)
-                       (_.the ..i64_low_field sample)))))
-
-(runtime
- (i64::+ parameter subject)
- (let [up_16 (_.left_shift (_.i32 +16))
-       high_16 (_.logic_right_shift (_.i32 +16))
-       low_16 (_.bit_and (_.i32 (.int (hex "FFFF"))))
-       hh (|>> (_.the ..i64_high_field) high_16)
-       hl (|>> (_.the ..i64_high_field) low_16)
-       lh (|>> (_.the ..i64_low_field) high_16)
-       ll (|>> (_.the ..i64_low_field) low_16)]
-   (with_vars [l48 l32 l16 l00
-               r48 r32 r16 r00
-               x48 x32 x16 x00]
-     (all _.then
-          (_.define l48 (hh subject))
-          (_.define l32 (hl subject))
-          (_.define l16 (lh subject))
-          (_.define l00 (ll subject))
-
-          (_.define r48 (hh parameter))
-          (_.define r32 (hl parameter))
-          (_.define r16 (lh parameter))
-          (_.define r00 (ll parameter))
-
-          (_.define x00 (_.+ l00 r00))
-          
-          (_.define x16 (|> (high_16 x00)
-                            (_.+ l16)
-                            (_.+ r16)))
-          (_.statement (_.set x00 (low_16 x00)))
-          
-          (_.define x32 (|> (high_16 x16)
-                            (_.+ l32)
-                            (_.+ r32)))
-          (_.statement (_.set x16 (low_16 x16)))
-          
-          (_.define x48 (|> (high_16 x32)
-                            (_.+ l48)
-                            (_.+ r48)
-                            low_16))
-          (_.statement (_.set x32 (low_16 x32)))
-
-          (_.return (..i64 (_.bit_or (up_16 x48) x32)
-                           (_.bit_or (up_16 x16) x00)))
-          ))))
-
-(runtime
- (i64::opposite value)
- (_.return (_.? (i64::= i64::min value)
-                i64::min
-                (i64::+ i64::one (i64::not value)))))
-
-(runtime
- i64::-one
- (i64::opposite i64::one))
-
-(runtime
- (i64::of_number value)
- (_.return (<| (_.? (_.not_a_number? value)
-                    i64::zero)
-               (_.? (_.<= (_.opposite i64::2^63) value)
-                    i64::min)
-               (_.? (|> value (_.+ (_.i32 +1)) (_.>= i64::2^63))
-                    i64::max)
-               (_.? (|> value (_.< (_.i32 +0)))
-                    (|> value _.opposite i64::of_number i64::opposite))
-               (..i64 (|> value (_./ i64::2^32) _.to_i32)
-                      (|> value (_.% i64::2^32) _.to_i32)))))
-
-(runtime
- (i64::- parameter subject)
- (_.return (i64::+ (i64::opposite parameter) subject)))
-
-(runtime
- (i64::* parameter subject)
- (let [up_16 (_.left_shift (_.i32 +16))
-       high_16 (_.logic_right_shift (_.i32 +16))
-       low_16 (_.bit_and (_.i32 (.int (hex "FFFF"))))
-       hh (|>> (_.the ..i64_high_field) high_16)
-       hl (|>> (_.the ..i64_high_field) low_16)
-       lh (|>> (_.the ..i64_low_field) high_16)
-       ll (|>> (_.the ..i64_low_field) low_16)]
-   (with_vars [l48 l32 l16 l00
-               r48 r32 r16 r00
-               x48 x32 x16 x00]
-     (all _.then
-          (_.define l48 (hh subject))
-          (_.define l32 (hl subject))
-          (_.define l16 (lh subject))
-          (_.define l00 (ll subject))
-
-          (_.define r48 (hh parameter))
-          (_.define r32 (hl parameter))
-          (_.define r16 (lh parameter))
-          (_.define r00 (ll parameter))
-
-          (_.define x00 (_.* l00 r00))
-          (_.define x16 (high_16 x00))
-          (_.statement (_.set x00 (low_16 x00)))
-          
-          (_.statement (_.set x16 (|> x16 (_.+ (_.* l16 r00)))))
-          (_.define x32 (high_16 x16))
-          (_.statement (_.set x16 (|> x16 low_16 (_.+ (_.* l00 r16)))))
-          (_.statement (_.set x32 (|> x32 (_.+ (high_16 x16)))))
-          (_.statement (_.set x16 (low_16 x16)))
-
-          (_.statement (_.set x32 (|> x32 (_.+ (_.* l32 r00)))))
-          (_.define x48 (high_16 x32))
-          (_.statement (_.set x32 (|> x32 low_16 (_.+ (_.* l16 r16)))))
-          (_.statement (_.set x48 (|> x48 (_.+ (high_16 x32)))))
-          (_.statement (_.set x32 (|> x32 low_16 (_.+ (_.* l00 r32)))))
-          (_.statement (_.set x48 (|> x48 (_.+ (high_16 x32)))))
-          (_.statement (_.set x32 (low_16 x32)))
-          
-          (_.statement (_.set x48 (|> x48
-                                      (_.+ (_.* l48 r00))
-                                      (_.+ (_.* l32 r16))
-                                      (_.+ (_.* l16 r32))
-                                      (_.+ (_.* l00 r48))
-                                      low_16)))
-
-          (_.return (..i64 (_.bit_or (up_16 x48) x32)
-                           (_.bit_or (up_16 x16) x00)))
-          ))))
-
-(runtime
- (i64::< parameter subject)
- (let [negative? (|>> (_.the ..i64_high_field) (_.< (_.i32 +0)))]
-   (with_vars [-subject? -parameter?]
-     (all _.then
-          (_.define -subject? (negative? subject))
-          (_.define -parameter? (negative? parameter))
-          (_.return (<| (_.? (_.and -subject? (_.not -parameter?))
-                             (_.boolean true))
-                        (_.? (_.and (_.not -subject?) -parameter?)
-                             (_.boolean false))
-                        (negative? (i64::- parameter subject))))
-          ))))
-
-(def (i64::<= param subject)
-  (-> Expression Expression Expression)
-  (|> (i64::< param subject)
-      (_.or (i64::= param subject))))
-
-(def negative?
-  (i64::< i64::zero))
-
-(runtime
- (i64::/ parameter subject)
- (<| (_.if (i64::= i64::zero parameter)
-       (_.throw (_.string "Cannot divide by zero!")))
-     (_.if (i64::= i64::zero subject)
-       (_.return i64::zero))
-     (_.if (i64::= i64::min subject)
-       (<| (_.if (_.or (i64::= i64::one parameter)
-                       (i64::= i64::-one parameter))
-             (_.return i64::min))
-           (_.if (i64::= i64::min parameter)
-             (_.return i64::one))
-           (with_vars [approximation]
-             (let [subject/2 (..i64::arithmetic_right_shifted subject (_.i32 +1))]
-               (all _.then
-                    (_.define approximation (i64::left_shifted (i64::/ parameter
-                                                                       subject/2)
-                                                               (_.i32 +1)))
-                    (_.if (i64::= i64::zero approximation)
-                      (_.return (_.? (..negative? parameter)
-                                     i64::one
-                                     i64::-one))
-                      (let [remainder (i64::- (i64::* approximation
-                                                      parameter)
-                                              subject)]
-                        (_.return (i64::+ (i64::/ parameter
-                                                  remainder)
-                                          approximation)))))))))
-     (_.if (i64::= i64::min parameter)
-       (_.return i64::zero))
-     (_.if (..negative? subject)
-       (_.return (_.? (..negative? parameter)
-                      (i64::/ (i64::opposite parameter)
-                              (i64::opposite subject))
-                      (i64::opposite (i64::/ parameter
-                                             (i64::opposite subject))))))
-     (_.if (..negative? parameter)
-       (_.return (i64::opposite (i64::/ (i64::opposite parameter) subject))))
-     (with_vars [result remainder]
-       (all _.then
-            (_.define result i64::zero)
-            (_.define remainder subject)
-            (_.while (i64::<= remainder parameter)
-                     (with_vars [approximate approximate_result approximate_remainder log2 delta]
-                       (let [approximate_result' (i64::of_number approximate)
-                             approx_remainder (i64::* parameter approximate_result)]
-                         (all _.then
-                              (_.define approximate (|> (i64::number remainder)
-                                                        (_./ (i64::number parameter))
-                                                        (_.apply_1 (_.var "Math.floor"))
-                                                        (_.apply_2 (_.var "Math.max") (_.i32 +1))))
-                              (_.define log2 (|> approximate
-                                                 (_.apply_1 (_.var "Math.log"))
-                                                 (_./ (_.var "Math.LN2"))
-                                                 (_.apply_1 (_.var "Math.ceil"))))
-                              (_.define delta (_.? (_.> (_.i32 +48) log2)
-                                                   (_.apply_2 (_.var "Math.pow")
-                                                              (_.i32 +2)
-                                                              (_.- (_.i32 +48)
-                                                                   log2))
-                                                   (_.i32 +1)))
-                              (_.define approximate_result approximate_result')
-                              (_.define approximate_remainder approx_remainder)
-                              (_.while (_.or (..negative? approximate_remainder)
-                                             (i64::< approximate_remainder
-                                                     remainder))
-                                       (all _.then
-                                            (_.statement (_.set approximate (_.- delta approximate)))
-                                            (_.statement (_.set approximate_result approximate_result'))
-                                            (_.statement (_.set approximate_remainder approx_remainder))))
-                              (_.statement (_.set result (i64::+ (_.? (i64::= i64::zero approximate_result)
-                                                                      i64::one
-                                                                      approximate_result)
-                                                                 result)))
-                              (_.statement (_.set remainder (i64::- approximate_remainder remainder)))))))
-            (_.return result)))))
-
-(runtime
- (i64::% parameter subject)
- (let [flat (|> subject
-                (i64::/ parameter)
-                (i64::* parameter))]
-   (_.return (i64::- flat subject))))
-
-(def runtime//i64
-  Statement
-  (all _.then
-       ..runtime//bit
-
-       @i64::2^16
-       @i64::2^32
-       @i64::2^64
-       @i64::2^63
-       @i64::unsigned_low
-       @i64::new
-       @i64::zero
-       @i64::min
-       @i64::max
-       @i64::one
-       @i64::=
-       @i64::+
-       @i64::opposite
-       @i64::-one
-       @i64::number
-       @i64::of_number
-       @i64::-
-       @i64::*
-       @i64::<
-       @i64::/
-       @i64::%
-       ))
-
-(runtime
- (text//index start part text)
- (with_vars [idx]
-   (all _.then
-        (_.define idx (|> text (_.do "indexOf" (list part (i64::number start)))))
-        (_.return (_.? (_.= (_.i32 -1) idx)
-                       ..none
-                       (..some (i64::of_number idx)))))))
-
-(runtime
- (text//clip offset length text)
- (_.return (|> text (_.do "substring" (list (_.the ..i64_low_field offset)
-                                            (_.+ (_.the ..i64_low_field offset)
-                                                 (_.the ..i64_low_field length)))))))
-
-(runtime
- (text//char idx text)
- (with_vars [result]
-   (all _.then
-        (_.define result (|> text (_.do "charCodeAt" (list (_.the ..i64_low_field idx)))))
-        (_.if (_.not_a_number? result)
-          (_.throw (_.string "[Lux Error] Cannot get char from text."))
-          (_.return (i64::of_number result))))))
-
-(def runtime//text
-  Statement
-  (all _.then
-       @text//index
-       @text//clip
-       @text//char
-       ))
-
-(runtime
- (io//log message)
- (let [console (_.var "console")
-       print (_.var "print")
-       end! (_.return ..unit)
-
-       has_console? (|> console _.type_of (_.= (_.string "undefined")) _.not)
-       node_or_browser? (|> has_console?
-                            (_.and (_.the "log" console)))
-       nashorn? (|> print _.type_of (_.= (_.string "undefined")) _.not)]
-   (<| (_.if node_or_browser?
-         (all _.then
-              (_.statement (|> console (_.do "log" (list message))))
-              end!))
-       (_.if nashorn?
-         (all _.then
-              (_.statement (_.apply_1 print message))
-              end!))
-       end!)))
-
-(runtime
- (io//error message)
- (_.throw message))
-
-(def runtime//io
-  Statement
-  (all _.then
-       @io//log
-       @io//error
-       ))
-
-(runtime
- (js//get object field)
- (with_vars [temp]
-   (all _.then
-        (_.define temp (_.at field object))
-        (_.return (_.? (_.= _.undefined temp)
-                       ..none
-                       (..some temp))))))
-
-(runtime
- (js//set object field input)
- (all _.then
-      (_.statement (_.set (_.at field object) input))
-      (_.return object)))
-
-(runtime
- (js//delete object field)
- (all _.then
-      (_.statement (_.delete (_.at field object)))
-      (_.return object)))
-
-(def runtime//js
-  Statement
-  (all _.then
-       @js//get
-       @js//set
-       @js//delete
-       ))
-
-(runtime
- (array//write idx value array)
- (all _.then
-      (_.statement (_.set (_.at (_.the ..i64_low_field idx) array) value))
-      (_.return array)))
-
-(runtime
- (array//delete idx array)
- (all _.then
-      (_.statement (_.delete (_.at (_.the ..i64_low_field idx) array)))
-      (_.return array)))
-
-(def runtime//array
-  Statement
-  (all _.then
-       @array//write
-       @array//delete
-       ))
-
-(def full
-  Statement
-  (all _.then
-       runtime//structure
-       runtime//i64
-       runtime//text
-       runtime//io
-       runtime//js
-       runtime//array
-       runtime//lux
-       ))
-
-(def module_id
-  0)
-
-(def .public generate
-  (Operation [Registry Output])
-  (do ///////phase.monad
-    [_ (/////generation.execute! ..full)
-     _ (/////generation.save! ..module_id {.#None} ..full)]
-    (in [(|> registry.empty
-             (registry.resource true unit.none)
-             product.right)
-         (sequence.sequence [..module_id
-                             {.#None}
-                             (|> ..full
-                                 _.code
-                                 (at utf8.codec encoded))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/structure.lux
deleted file mode 100644
index ee1ae1a03..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/structure.lux
+++ /dev/null
@@ -1,37 +0,0 @@
-(.require
- [library
-  [lux (.except Variant Tuple)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [meta
-    [target
-     ["_" js (.only Expression)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" primitive]
-  ["///[1]" ////
-   ["[1][0]" synthesis (.only Synthesis)]
-   [analysis
-    [complex (.only Variant Tuple)]]
-   ["//[1]" /// (.only)
-    ["[1][0]" phase (.use "[1]#[0]" monad)]]]])
-
-(def .public (tuple generate archive elemsS+)
-  (Generator (Tuple Synthesis))
-  (when elemsS+
-    {.#End}
-    (///////phase#in //runtime.unit)
-
-    {.#Item singletonS {.#End}}
-    (generate archive singletonS)
-
-    _
-    (do [! ///////phase.monad]
-      [elemsT+ (monad.each ! (generate archive) elemsS+)]
-      (in (_.array elemsT+)))))
-
-(def .public (variant generate archive [lefts right? valueS])
-  (Generator (Variant Synthesis))
-  (///////phase#each (//runtime.variant (_.i32 (.int lefts))
-                                        (//runtime.flag right?))
-                     (generate archive valueS)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/when.lux
deleted file mode 100644
index c7790d6d1..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/js/when.lux
+++ /dev/null
@@ -1,346 +0,0 @@
-(.require
- [library
-  [lux (.except when exec let if)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" maybe]]
-   [data
-    ["[0]" text]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" js (.only Expression Computation Var Statement)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Phase! Generator Generator!)]
-  ["[1][0]" reference]
-  ["[1][0]" primitive]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" synthesis
-     ["[1]/[0]" when]]
-    ["/[1]" //
-     ["[1][0]" synthesis (.only Synthesis Path)
-      [access
-       ["[0]" member (.only Member)]]]
-     ["//[1]" ///
-      [reference
-       [variable (.only Register)]]
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [meta
-       [archive (.only Archive)]]]]]]])
-
-(def .public register
-  (-> Register Var)
-  (|>> (///reference.local //reference.system) as_expected))
-
-(def .public (exec expression archive [this that])
-  (Generator [Synthesis Synthesis])
-  (do ///////phase.monad
-    [this (expression archive this)
-     that (expression archive that)]
-    (in (|> (_.array (list this that))
-            (_.at (_.int +1))))))
-
-(def .public (exec! statement expression archive [this that])
-  (Generator! [Synthesis Synthesis])
-  (do ///////phase.monad
-    [this (expression archive this)
-     that (statement expression archive that)]
-    (in (all _.then
-             (_.statement this)
-             that))))
-
-(def .public (let expression archive [valueS register bodyS])
-  (Generator [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)
-     bodyO (expression archive bodyS)]
-    ... TODO: Find some way to do 'let' without paying the price of the closure.
-    (in (_.apply (_.closure (list (..register register))
-                            (_.return bodyO))
-                 (list valueO)))))
-
-(def .public (let! statement expression archive [valueS register bodyS])
-  (Generator! [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)
-     bodyO (statement expression archive bodyS)]
-    (in (all _.then
-             (_.define (..register register) valueO)
-             bodyO))))
-
-(def .public (if expression archive [testS thenS elseS])
-  (Generator [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [testO (expression archive testS)
-     thenO (expression archive thenS)
-     elseO (expression archive elseS)]
-    (in (_.? testO thenO elseO))))
-
-(def .public (if! statement expression archive [testS thenS elseS])
-  (Generator! [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [testO (expression archive testS)
-     thenO (statement expression archive thenS)
-     elseO (statement expression archive elseS)]
-    (in (_.if testO
-          thenO
-          elseO))))
-
-(def .public (get expression archive [pathP valueS])
-  (Generator [(List Member) Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)]
-    (in (list#mix (function (_ side source)
-                    (.let [method (.if (the member.#right? side)
-                                    (//runtime.tuple//right (_.i32 (.int (the member.#lefts side))))
-                                    (//runtime.tuple//left (_.i32 (.int (the member.#lefts side)))))]
-                      (method source)))
-                  valueO
-                  (list.reversed pathP)))))
-
-(def @savepoint (_.var "lux_pm_cursor_savepoint"))
-(def @cursor (_.var "lux_pm_cursor"))
-(def @temp (_.var "lux_pm_temp"))
-
-(def (push_cursor! value)
-  (-> Expression Statement)
-  (_.statement (|> @cursor (_.do "push" (list value)))))
-
-(def peek_and_pop_cursor
-  Expression
-  (|> @cursor (_.do "pop" (list))))
-
-(def pop_cursor!
-  Statement
-  (_.statement ..peek_and_pop_cursor))
-
-(def length
-  (|>> (_.the "length")))
-
-(def last_index
-  (|>> ..length (_.- (_.i32 +1))))
-
-(def peek_cursor
-  Expression
-  (|> @cursor (_.at (last_index @cursor))))
-
-(def save_cursor!
-  Statement
-  (.let [cursor (|> @cursor (_.do "slice" (list)))]
-    (_.statement (|> @savepoint (_.do "push" (list cursor))))))
-
-(def restore_cursor!
-  Statement
-  (_.statement (_.set @cursor (|> @savepoint (_.do "pop" (list))))))
-
-(def fail_pm! _.break)
-
-(def (multi_pop_cursor! pops)
-  (-> Nat Statement)
-  (.let [popsJS (_.i32 (.int pops))]
-    (_.statement (|> @cursor (_.do "splice" (list (|> @cursor ..length (_.- popsJS))
-                                                  popsJS))))))
-
-(with_template [ ]
-  [(def ( simple? idx)
-     (-> Bit Nat Statement)
-     (all _.then
-          (_.statement (_.set @temp (//runtime.sum//get ..peek_cursor 
-                                                        (|> idx .int _.i32))))
-          (.if simple?
-            (_.when (_.= _.null @temp)
-              ..fail_pm!)
-            (_.if (_.= _.null @temp)
-              ..fail_pm!
-              (push_cursor! @temp)))))]
-
-  [left_choice  _.null]
-  [right_choice //runtime.unit]
-  )
-
-(def (alternation pre! post!)
-  (-> Statement Statement Statement)
-  (all _.then
-       (_.do_while (_.boolean false)
-                   (all _.then
-                        ..save_cursor!
-                        pre!))
-       (all _.then
-            ..restore_cursor!
-            post!)))
-
-(def (optimized_pattern_matching again pathP)
-  (-> (-> Path (Operation Statement))
-      (-> Path (Operation (Maybe Statement))))
-  (.when pathP
-    (^.with_template [ ]
-      [( idx nextP)
-       (|> nextP
-           again
-           (at ///////phase.monad each (|>> (_.then ( true idx)) {.#Some})))])
-    ([/////synthesis.simple_left_side  ..left_choice]
-     [/////synthesis.simple_right_side ..right_choice])
-
-    (/////synthesis.member/left 0)
-    (///////phase#in {.#Some (push_cursor! (_.at (_.i32 +0) ..peek_cursor))})
-
-    ... Extra optimization
-    (/////synthesis.path/seq
-     (/////synthesis.member/left 0)
-     (/////synthesis.!bind_top register thenP))
-    (do ///////phase.monad
-      [then! (again thenP)]
-      (in {.#Some (all _.then
-                       (_.define (..register register) (_.at (_.i32 +0) ..peek_cursor))
-                       then!)}))
-
-    ... Extra optimization
-    (^.with_template [ ]
-      [(/////synthesis.path/seq
-        ( lefts)
-        (/////synthesis.!bind_top register thenP))
-       (do ///////phase.monad
-         [then! (again thenP)]
-         (in {.#Some (all _.then
-                          (_.define (..register register) ( (_.i32 (.int lefts)) ..peek_cursor))
-                          then!)}))])
-    ([/////synthesis.member/left  //runtime.tuple//left]
-     [/////synthesis.member/right //runtime.tuple//right])
-
-    (/////synthesis.!bind_top register thenP)
-    (do ///////phase.monad
-      [then! (again thenP)]
-      (in {.#Some (all _.then
-                       (_.define (..register register) ..peek_and_pop_cursor)
-                       then!)}))
-
-    (/////synthesis.!multi_pop nextP)
-    (.let [[extra_pops nextP'] (////synthesis/when.count_pops nextP)]
-      (do ///////phase.monad
-        [next! (again nextP')]
-        (in {.#Some (all _.then
-                         (multi_pop_cursor! (n.+ 2 extra_pops))
-                         next!)})))
-
-    _
-    (///////phase#in {.#None})))
-
-(def (pattern_matching' statement expression archive)
-  (-> Phase! Phase Archive
-      (-> Path (Operation Statement)))
-  (function (again pathP)
-    (do ///////phase.monad
-      [outcome (optimized_pattern_matching again pathP)]
-      (.when outcome
-        {.#Some outcome}
-        (in outcome)
-
-        {.#None}
-        (.when pathP
-          {/////synthesis.#Then bodyS}
-          (statement expression archive bodyS)
-
-          {/////synthesis.#Pop}
-          (///////phase#in pop_cursor!)
-
-          {/////synthesis.#Bind register}
-          (///////phase#in (_.define (..register register) ..peek_cursor))
-
-          {/////synthesis.#Bit_Fork when thenP elseP}
-          (do [! ///////phase.monad]
-            [then! (again thenP)
-             else! (.when elseP
-                     {.#Some elseP}
-                     (again elseP)
-
-                     {.#None}
-                     (in ..fail_pm!))]
-            (in (.if when
-                  (_.if ..peek_cursor
-                    then!
-                    else!)
-                  (_.if ..peek_cursor
-                    else!
-                    then!))))
-
-          {/////synthesis.#I64_Fork item}
-          (do [! ///////phase.monad]
-            [clauses (monad.each ! (function (_ [match then])
-                                     (do !
-                                       [then! (again then)]
-                                       (in [(//runtime.i64::= (//primitive.i64 (.int match))
-                                                              ..peek_cursor)
-                                            then!])))
-                                 {.#Item item})]
-            (in (list#mix (function (_ [when then] else)
-                            (_.if when then else))
-                          ..fail_pm!
-                          clauses)))
-
-          (^.with_template [ ]
-            [{ item}
-             (do [! ///////phase.monad]
-               [cases (monad.each ! (function (_ [match then])
-                                      (at ! each (|>> [(list ( match))]) (again then)))
-                                  {.#Item item})]
-               (in (_.switch ..peek_cursor
-                             cases
-                             {.#Some ..fail_pm!})))])
-          ([/////synthesis.#F64_Fork //primitive.f64]
-           [/////synthesis.#Text_Fork //primitive.text])
-
-          (^.with_template [ ]
-            [( idx)
-             (///////phase#in ( false idx))])
-          ([/////synthesis.side/left  ..left_choice]
-           [/////synthesis.side/right ..right_choice])
-
-          (^.with_template [ ]
-            [( lefts)
-             (///////phase#in (push_cursor! ( (_.i32 (.int lefts)) ..peek_cursor)))])
-          ([/////synthesis.member/left  //runtime.tuple//left]
-           [/////synthesis.member/right //runtime.tuple//right])
-
-          (^.with_template [ ]
-            [( leftP rightP)
-             (do ///////phase.monad
-               [left! (again leftP)
-                right! (again rightP)]
-               (in ( left! right!)))])
-          ([/////synthesis.path/seq _.then]
-           [/////synthesis.path/alt ..alternation]))))))
-
-(def (pattern_matching statement expression archive pathP)
-  (-> Phase! Phase Archive Path (Operation Statement))
-  (do ///////phase.monad
-    [pattern_matching! (pattern_matching' statement expression archive pathP)]
-    (in (all _.then
-             (_.do_while (_.boolean false)
-                         pattern_matching!)
-             (_.throw (_.string ////synthesis/when.pattern_matching_error))))))
-
-(def .public (when! statement expression archive [valueS pathP])
-  (Generator! [Synthesis Path])
-  (do ///////phase.monad
-    [stack_init (expression archive valueS)
-     pattern_matching! (pattern_matching statement expression archive pathP)]
-    (in (all _.then
-             (_.declare @temp)
-             (_.define @cursor (_.array (list stack_init)))
-             (_.define @savepoint (_.array (list)))
-             pattern_matching!))))
-
-(def .public (when statement expression archive [valueS pathP])
-  (-> Phase! (Generator [Synthesis Path]))
-  (do ///////phase.monad
-    [pattern_matching! (..when! statement expression archive [valueS pathP])]
-    (in (_.apply (_.closure (list) pattern_matching!) (list)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm.lux
deleted file mode 100644
index 3c4de2531..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm.lux
+++ /dev/null
@@ -1,128 +0,0 @@
-(.require
- [library
-  [lux (.except Synthesis)
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" try]
-    ["[0]" exception (.only Exception)]]
-   [data
-    ["[0]" text (.use "[1]#[0]" equivalence)
-     ["%" \\format]]]
-   ["[0]" meta (.only)
-    [macro
-     ["^" pattern]]
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]]]
-    [type
-     ["[0]" check]]
-    [compiler
-     [meta
-      ["[0]" archive (.only Archive)]
-      ["[0]" cache
-       [dependency
-        ["[1]/[0]" artifact]]]]]]]]
- ["[0]" /
-  [runtime (.only Operation Phase Handler)]
-  ["[1][0]" primitive]
-  ["[1][0]" structure]
-  ["[1][0]" reference]
-  ["[1][0]" function]
-  ["[1][0]" when]
-  ["[1][0]" loop]
-  ["//[1]" ///
-   ["[0]" extension]
-   [//
-    ["[0]" synthesis (.only Synthesis)]
-    ["[0]" generation]
-    [///
-     ["[0]" reference]
-     ["[0]" phase (.use "[1]#[0]" monad)]]]]])
-
-(def (with_source_mapping @ it)
-  (All (_ of)
-    (-> Location (Operation (Bytecode of))
-        (Operation (Bytecode of))))
-  (do [! phase.monad]
-    [.let [[expected_module line column] @]
-     actual_module generation.module
-     it it]
-    (in (if (text#= expected_module actual_module)
-          (do _.monad
-            [_ (_.map line)]
-            it)
-          it))))
-
-(def .public (generate extender lux)
-  (-> extension.Extender Lux Phase)
-  (function (phase archive synthesis)
-    (when synthesis
-      (^.with_template [ ]
-        [( @ value)
-         (with_source_mapping @
-           (phase#in ( value)))])
-      ([synthesis.bit  /primitive.bit]
-       [synthesis.i64  /primitive.i64]
-       [synthesis.f64  /primitive.f64]
-       [synthesis.text /primitive.text])
-
-      (synthesis.variant @ variantS)
-      (with_source_mapping @
-        (/structure.variant phase archive variantS))
-
-      (synthesis.tuple @ members)
-      (with_source_mapping @
-        (/structure.tuple phase archive members))
-
-      [@ {synthesis.#Reference reference}]
-      (with_source_mapping @
-        (when reference
-          {reference.#Variable variable}
-          (/reference.variable archive variable)
-          
-          {reference.#Constant constant}
-          (/reference.constant archive constant)))
-
-      (synthesis.branch/when @ [valueS pathS])
-      (with_source_mapping @
-        (/when.when phase archive [valueS pathS]))
-
-      (synthesis.branch/exec @ [this that])
-      (with_source_mapping @
-        (/when.exec phase archive [this that]))
-
-      (synthesis.branch/let @ [inputS register bodyS])
-      (with_source_mapping @
-        (/when.let phase archive [inputS register bodyS]))
-
-      (synthesis.branch/if @ [conditionS thenS elseS])
-      (with_source_mapping @
-        (/when.if phase archive [conditionS thenS elseS]))
-
-      (synthesis.branch/get @ [path recordS])
-      (with_source_mapping @
-        (/when.get phase archive [path recordS]))
-
-      (synthesis.loop/scope @ scope)
-      (with_source_mapping @
-        (/loop.scope phase archive scope))
-
-      (synthesis.loop/again @ updates)
-      (with_source_mapping @
-        (/loop.again phase archive updates))
-
-      (synthesis.function/abstraction @ abstraction)
-      (with_source_mapping @
-        (/function.abstraction phase archive abstraction))
-
-      (synthesis.function/apply @ application)
-      (with_source_mapping @
-        (/function.apply phase archive application))
-
-      [@ {synthesis.#Extension [name parameters]}]
-      (with_source_mapping @
-        (extension.application extender lux phase archive .Generation false name parameters
-                               (|>>)
-                               (function (_ _) {.#None})))
-      )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/debug.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/debug.lux
deleted file mode 100644
index 51ae831e0..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/debug.lux
+++ /dev/null
@@ -1,31 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" io (.only IO)]
-    ["[0]" try (.only Try)]]
-   [data
-    [binary (.only Binary)]
-    [text
-     ["%" \\format (.only format)]]]
-   [world
-    ["[0]" file (.only File)]]]])
-
-(def extension ".class")
-
-(def .public (write_class! name bytecode)
-  (-> Text Binary (IO Text))
-  (let [file_path (format name ..extension)]
-    (do io.monad
-      [outcome (do (try.with @)
-                 [file (is (IO (Try (File IO)))
-                           (file.get_file io.monad file.default file_path))]
-                 (at file over_write bytecode))]
-      (in (when outcome
-            {try.#Success definition}
-            file_path
-
-            {try.#Failure error}
-            error)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function.lux
deleted file mode 100644
index 0f4221157..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function.lux
+++ /dev/null
@@ -1,200 +0,0 @@
-(.require
- [library
-  [lux (.except Type Label Synthesis with)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    [binary
-     ["[0]" \\format]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" monoid mix functor)]
-     ["[0]" sequence]]]
-   [math
-    [number
-     ["n" nat]
-     ["[0]" i32]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)]
-      ["[0]" version]
-      ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)]
-      ["[0]" field (.only Field)]
-      ["[0]" method (.only Method)]
-      ["[0]" class (.only Class)]
-      ["[0]" attribute]
-      ["[0]" type (.only Type)
-       [category (.only Return' Value')]
-       ["[0]" reflection]]
-      ["[0]" constant (.only)
-       [pool (.only Resource)]]
-      [encoding
-       ["[0]" name (.only External Internal)]
-       ["[0]" unsigned]]]]
-    [compiler
-     [meta
-      ["[0]" archive (.only Archive)]
-      ["[0]" cache
-       [dependency
-        ["[1]/[0]" artifact]]]]]]]]
- ["[0]" /
-  ["[1][0]" abstract]
-  [field
-   [constant
-    ["[1][0]" arity]]
-   [variable
-    ["[1][0]" foreign]
-    ["[1][0]" partial]]]
-  [method
-   ["[1][0]" init]
-   ["[1][0]" new]
-   ["[1][0]" implementation]
-   ["[1][0]" reset]
-   ["[1][0]" apply]]
-  ["/[1]" //
-   ["[1][0]" runtime (.only Operation Phase Generator)]
-   ["[1][0]" reference]
-   [////
-    [analysis (.only Environment)]
-    ["[0]" synthesis (.only Synthesis Abstraction Apply)]
-    ["[0]" generation]
-    [///
-     ["[0]" arity (.only Arity)]
-     ["[0]" phase]
-     [meta
-      [archive
-       ["[0]" unit]]]
-     [reference
-      [variable (.only Register)]]]]]])
-
-(def .public (with generate archive @begin class environment arity body)
-  (-> Phase Archive Label External (Environment Synthesis) Arity (Bytecode Any)
-      (Operation [(List (Resource Field))
-                  (List (Resource Method))
-                  (Bytecode Any)]))
-  (let [classT (type.class class (list))
-        fields (is (List (Resource Field))
-                   (list#composite (/foreign.variables environment)
-                                   (/partial.variables arity)))
-        methods (is (List (Resource Method))
-                    (list.partial (/init.method classT environment arity)
-                                  (/reset.method classT environment arity)
-                                  (if (arity.multiary? arity)
-                                    (|> (n.min arity /arity.maximum)
-                                        list.indices
-                                        (list#each (|>> ++ (/apply.method classT environment arity @begin)))
-                                        (list.partial (/implementation.method classT arity @begin body)))
-                                    (list (/implementation.method classT arity @begin body)
-                                          (/apply.method classT environment arity @begin 1)))))]
-    (do phase.monad
-      [instance (/new.instance generate archive classT environment arity)]
-      (in [fields methods instance]))))
-
-(def modifier
-  (Modifier Class)
-  (all modifier#composite
-       class.public
-       class.final))
-
-(def this_offset
-  1)
-
-(def internal
-  (All (_ category)
-    (-> (Type (<| Return' Value' category))
-        Internal))
-  (|>> type.reflection
-       reflection.reflection
-       name.internal))
-
-(def .public (abstraction generate archive [environment arity bodyS])
-  (Generator Abstraction)
-  (do phase.monad
-    [dependencies (cache/artifact.dependencies archive bodyS)
-     @begin //runtime.forge_label
-     [function_context bodyG] (<| (generation.with_new_context archive dependencies)
-                                  (generation.with_anchor [@begin ..this_offset])
-                                  (generate archive bodyS))
-     .let [function_class (//runtime.class_name function_context)]
-     [fields methods instance] (..with generate archive @begin function_class environment arity bodyG)
-     module generation.module
-     class (phase.lifted (class.class version.v6_0
-                           ..modifier
-                           (name.internal function_class)
-                           {.#None}
-                           (..internal /abstract.class) (list)
-                           fields
-                           methods
-                           (list (attribute.source_file module))))
-     .let [bytecode [function_class (\\format.result class.format class)]]
-     _ (generation.execute! bytecode)
-     _ (generation.save! (product.right function_context) {.#None} bytecode)]
-    (in instance)))
-
-(def (apply/?' generate archive [abstractionG inputsS])
-  (Generator [(Bytecode Any) (List Synthesis)])
-  (do [! phase.monad]
-    [inputsG (monad.each ! (generate archive) inputsS)]
-    (in (all _.composite
-             abstractionG
-             (|> inputsG
-                 (list.sub /arity.maximum)
-                 (monad.each _.monad
-                             (function (_ batchG)
-                               (all _.composite
-                                    (_.checkcast /abstract.class)
-                                    (monad.all _.monad batchG)
-                                    (_.invokevirtual /abstract.class //runtime.apply::name (//runtime.apply::type (list.size batchG)))
-                                    ))))
-             ))))
-
-(def (apply/? generate archive [abstractionS inputsS])
-  (Generator Apply)
-  (do [! phase.monad]
-    [abstractionG (generate archive abstractionS)]
-    (apply/?' generate archive [abstractionG inputsS])))
-
-(def (apply/= generate archive [$abstraction @abstraction arity inputsS])
-  (Generator [Symbol unit.ID Arity (List Synthesis)])
-  (do [! phase.monad]
-    [.let [:abstraction: (type.class (//runtime.class_name @abstraction) (list))]
-     abstractionG (//reference.constant archive $abstraction)
-     inputsG (monad.each ! (generate archive) inputsS)]
-    (in (all _.composite
-             abstractionG
-             (monad.all _.monad inputsG)
-             (/implementation.call :abstraction: arity)
-             ))))
-
-(def (apply/> generate archive [$abstraction @abstraction arity inputsS])
-  (Generator [Symbol unit.ID Arity (List Synthesis)])
-  (do [! phase.monad]
-    [=G (apply/= generate archive [$abstraction @abstraction arity (list.first arity inputsS)])]
-    (apply/?' generate archive [=G (list.after arity inputsS)])))
-
-(def .public (apply generate archive [abstractionS inputsS])
-  (Generator Apply)
-  (when abstractionS
-    (synthesis.constant @ $abstraction)
-    (do [! phase.monad]
-      [[@definition |abstraction|] (generation.definition archive $abstraction)
-       .let [actual_arity (list.size inputsS)]]
-      (when |abstraction|
-        {.#Some [_ {.#Some [expected_arity @abstraction]}]}
-        (cond (n.< expected_arity actual_arity)
-              (apply/? generate archive [abstractionS inputsS])
-              
-              (n.= expected_arity actual_arity)
-              (apply/= generate archive [$abstraction @abstraction expected_arity inputsS])
-              
-              ... (n.> expected_arity actual_arity)
-              (apply/> generate archive [$abstraction @abstraction expected_arity inputsS]))
-        
-        _
-        (apply/? generate archive [abstractionS inputsS])))
-
-    _
-    (apply/? generate archive [abstractionS inputsS])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/abstract.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/abstract.lux
deleted file mode 100644
index ea783b42a..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/abstract.lux
+++ /dev/null
@@ -1,26 +0,0 @@
-(.require
- [library
-  [lux (.except Type)
-   [data
-    [text
-     ["%" \\format]]]
-   [meta
-    [target
-     [jvm
-      ["[0]" type (.only Type)
-       [category (.only Method)]]]]]]]
- [//
-  [field
-   [constant
-    ["[0]" arity]]]])
-
-... (def .public artifact_id
-...   1)
-
-(def .public class
-  ... (type.class (%.nat artifact_id) (list))
-  (type.class "library.lux.Function" (list)))
-
-(def .public init
-  (Type Method)
-  (type.method [(list) (list arity.type) type.void (list)]))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/constant.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/constant.lux
deleted file mode 100644
index cd54bb0f8..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/constant.lux
+++ /dev/null
@@ -1,27 +0,0 @@
-(.require
- [library
-  [lux (.except Type)
-   [data
-    [collection
-     ["[0]" sequence]]]
-   [meta
-    [target
-     [jvm
-      ["[0]" field (.only Field)]
-      ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)]
-      [type (.only Type)
-       [category (.only Value)]]
-      [constant
-       [pool (.only Resource)]]]]]]])
-
-(def modifier
-  (Modifier Field)
-  (all modifier#composite
-       field.public
-       field.static
-       field.final
-       ))
-
-(def .public (constant name type)
-  (-> Text (Type Value) (Resource Field))
-  (field.field ..modifier name false type (sequence.sequence)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/constant/arity.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/constant/arity.lux
deleted file mode 100644
index 0f7856172..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/constant/arity.lux
+++ /dev/null
@@ -1,17 +0,0 @@
-(.require
- [library
-  [lux (.except type)
-   [meta
-    [target
-     [jvm
-      ["[0]" type]
-      [constant
-       [pool (.only Resource)]]]]]]]
- ["[0]" //
-  [/////////
-   [arity (.only Arity)]]])
-
-(def .public minimum Arity 1)
-(def .public maximum Arity 8)
-
-(def .public type type.int)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable.lux
deleted file mode 100644
index 17ef0b605..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable.lux
+++ /dev/null
@@ -1,57 +0,0 @@
-(.require
- [library
-  [lux (.except Type type)
-   [data
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" sequence]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)]
-      ["[0]" field (.only Field)]
-      [type (.only Type)
-       [category (.only Value Class)]]
-      [constant
-       [pool (.only Resource)]]]]]]]
- ["[0]" ////
-  ["[1][0]" type]
-  ["[1][0]" reference]
-  [//////
-   [reference
-    [variable (.only Register)]]]])
-
-(def .public type ////type.value)
-
-(def .public (get class name)
-  (-> (Type Class) Text (Bytecode Any))
-  (all _.composite
-       ////reference.this
-       (_.getfield class name ..type)
-       ))
-
-(def .public (put naming class register value)
-  (-> (-> Register Text) (Type Class) Register (Bytecode Any) (Bytecode Any))
-  (all _.composite
-       ////reference.this
-       value
-       (_.putfield class (naming register) ..type)))
-
-(def modifier
-  (Modifier Field)
-  (all modifier#composite
-       field.private
-       field.final
-       ))
-
-(def .public (variable name type)
-  (-> Text (Type Value) (Resource Field))
-  (field.field ..modifier name false type (sequence.sequence)))
-
-(def .public (variables naming amount)
-  (-> (-> Register Text) Nat (List (Resource Field)))
-  (|> amount
-      list.indices
-      (list#each (function (_ register)
-                   (..variable (naming register) ..type)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/count.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/count.lux
deleted file mode 100644
index c58fad6cf..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/count.lux
+++ /dev/null
@@ -1,35 +0,0 @@
-(.require
- [library
-  [lux (.except type)
-   [control
-    ["[0]" try]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" type]
-      [encoding
-       [name (.only External)]
-       ["[0]" signed]]]]]]]
- ["[0]" ////
-  ["[1][0]" abstract]])
-
-(def .public field "partials")
-(def .public type type.int)
-
-(def .public initial
-  (Bytecode Any)
-  (|> +0
-      signed.s1
-      try.trusted
-      _.bipush))
-
-(def this
-  _.aload_0)
-
-(def .public value
-  (Bytecode Any)
-  (all _.composite
-       ..this
-       (_.getfield ////abstract.class ..field ..type)
-       ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/foreign.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/foreign.lux
deleted file mode 100644
index ae7170923..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/foreign.lux
+++ /dev/null
@@ -1,40 +0,0 @@
-(.require
- [library
-  [lux (.except Type Synthesis)
-   [data
-    [collection
-     ["[0]" list]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" field (.only Field)]
-      [constant
-       [pool (.only Resource)]]
-      [type (.only Type)
-       [category (.only Value Class)]]]]]]]
- ["[0]" // (.only)
-  ["///[1]" ////
-   ["[1][0]" reference]
-   [////
-    [analysis (.only Environment)]
-    [synthesis (.only Synthesis)]
-    [///
-     [reference
-      [variable (.only Register)]]]]]])
-
-(def .public (closure environment)
-  (-> (Environment Synthesis) (List (Type Value)))
-  (list.repeated (list.size environment) //.type))
-
-(def .public (get class register)
-  (-> (Type Class) Register (Bytecode Any))
-  (//.get class (/////reference.foreign_name register)))
-
-(def .public (put class register value)
-  (-> (Type Class) Register (Bytecode Any) (Bytecode Any))
-  (//.put /////reference.foreign_name class register value))
-
-(def .public variables
-  (-> (Environment Synthesis) (List (Resource Field)))
-  (|>> list.size (//.variables /////reference.foreign_name)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux
deleted file mode 100644
index 7310e30ce..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/field/variable/partial.lux
+++ /dev/null
@@ -1,59 +0,0 @@
-(.require
- [library
-  [lux (.except Type)
-   [abstract
-    ["[0]" monad]]
-   [data
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)]
-      ["[0]" field (.only Field)]
-      [type (.only Type)
-       [category (.only Class)]]
-      [constant
-       [pool (.only Resource)]]]]]]]
- ["[0]" // (.only)
-  ["[1][0]" count]
-  ["/[1]" //
-   [constant
-    ["[1][0]" arity]]
-   ["//[1]" ///
-    ["[1][0]" reference]
-    [//////
-     ["[0]" arity (.only Arity)]
-     [reference
-      [variable (.only Register)]]]]]])
-
-(def .public (initial amount)
-  (-> Nat (Bytecode Any))
-  (all _.composite
-       (|> _.aconst_null
-           (list.repeated amount)
-           (monad.all _.monad))
-       (_#in [])))
-
-(def .public (get class register)
-  (-> (Type Class) Register (Bytecode Any))
-  (//.get class (/////reference.partial_name register)))
-
-(def .public (put class register value)
-  (-> (Type Class) Register (Bytecode Any) (Bytecode Any))
-  (//.put /////reference.partial_name class register value))
-
-(def .public variables
-  (-> Arity (List (Resource Field)))
-  (|>> (n.- ///arity.minimum) (//.variables /////reference.partial_name)))
-
-(def .public (new arity)
-  (-> Arity (Bytecode Any))
-  (if (arity.multiary? arity)
-    (all _.composite
-         //count.initial
-         (initial (n.- ///arity.minimum arity)))
-    (_#in [])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method.lux
deleted file mode 100644
index b00454753..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method.lux
+++ /dev/null
@@ -1,15 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [meta
-    [target
-     [jvm
-      ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)]
-      ["[0]" method (.only Method)]]]]]])
-
-(def .public modifier
-  (Modifier Method)
-  (all modifier#composite
-       method.public
-       method.strict
-       ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/apply.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/apply.lux
deleted file mode 100644
index 34a552ba6..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/apply.lux
+++ /dev/null
@@ -1,159 +0,0 @@
-(.require
- [library
-  [lux (.except Type Label Synthesis)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" try]]
-   [data
-    [collection
-     ["[0]" list (.use "[1]#[0]" monoid functor)]]]
-   [math
-    [number
-     ["n" nat]
-     ["i" int]
-     ["[0]" i32]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)]
-      ["[0]" method (.only Method)]
-      [constant
-       [pool (.only Resource)]]
-      [encoding
-       ["[0]" signed]]
-      ["[0]" type (.only Type)
-       ["[0]" category (.only Class)]]]]]]]
- ["[0]" // (.only)
-  ["[1][0]" reset]
-  ["[1][0]" implementation]
-  ["[1][0]" init]
-  ["/[1]" //
-   ["[1][0]" abstract]
-   [field
-    [constant
-     ["[1][0]" arity]]
-    [variable
-     ["[1][0]" partial]
-     ["[1][0]" count]
-     ["[1][0]" foreign]]]
-   ["/[1]" //
-    ["[1][0]" runtime]
-    ["[1][0]" value]
-    ["[1][0]" reference]
-    [////
-     [analysis (.only Environment)]
-     [synthesis (.only Synthesis)]
-     [///
-      [arity (.only Arity)]
-      [reference
-       [variable (.only Register)]]]]]]])
-
-(def (increment by)
-  (-> Nat (Bytecode Any))
-  (all _.composite
-       (<| _.int .i64 by)
-       _.iadd))
-
-(def (inputs offset amount)
-  (-> Register Nat (Bytecode Any))
-  (all _.composite
-       (|> amount
-           list.indices
-           (monad.each _.monad (|>> (n.+ offset) _.aload)))
-       (_#in [])
-       ))
-
-(def (apply offset amount)
-  (-> Register Nat (Bytecode Any))
-  (let [arity (n.min amount ///arity.maximum)]
-    (all _.composite
-         (_.checkcast ///abstract.class)
-         (..inputs offset arity)
-         (_.invokevirtual ///abstract.class ////runtime.apply::name (////runtime.apply::type arity))
-         (if (n.> ///arity.maximum amount)
-           (apply (n.+ ///arity.maximum offset)
-                  (n.- ///arity.maximum amount))
-           (_#in []))
-         )))
-
-(def this_offset 1)
-
-(def .public (method class environment function_arity @begin apply_arity)
-  (-> (Type Class) (Environment Synthesis) Arity Label Arity (Resource Method))
-  (let [num_partials (-- function_arity)
-        over_extent (i.- (.int apply_arity)
-                         (.int function_arity))]
-    (method.method //.modifier ////runtime.apply::name
-                   false (////runtime.apply::type apply_arity)
-                   (list)
-                   {.#Some (when num_partials
-                             0 (all _.composite
-                                    ////reference.this
-                                    (..inputs ..this_offset apply_arity)
-                                    (//implementation.call class function_arity)
-                                    _.areturn)
-                             _ (do _.monad
-                                 [@default _.new_label
-                                  @labelsH _.new_label
-                                  @labelsT (|> _.new_label
-                                               (list.repeated (-- num_partials))
-                                               (monad.all _.monad))
-                                  .let [cases (|> (list#composite {.#Item [@labelsH @labelsT]}
-                                                                  (list @default))
-                                                  list.enumeration
-                                                  (list#each (function (_ [stage @case])
-                                                               (let [current_partials (|> (list.indices stage)
-                                                                                          (list#each (///partial.get class))
-                                                                                          (monad.all _.monad))
-                                                                     already_partial? (n.> 0 stage)
-                                                                     exact_match? (i.= over_extent (.int stage))
-                                                                     has_more_than_necessary? (i.> over_extent (.int stage))]
-                                                                 (all _.composite
-                                                                      (_.set_label @case)
-                                                                      (cond exact_match?
-                                                                            (all _.composite
-                                                                                 ////reference.this
-                                                                                 (if already_partial?
-                                                                                   (_.invokevirtual class //reset.name (//reset.type class))
-                                                                                   (_#in []))
-                                                                                 current_partials
-                                                                                 (..inputs ..this_offset apply_arity)
-                                                                                 (//implementation.call class function_arity)
-                                                                                 _.areturn)
-                                                                            
-                                                                            has_more_than_necessary?
-                                                                            (let [arity_inputs (|> function_arity (n.- stage))
-                                                                                  additional_inputs (|> apply_arity (n.- arity_inputs))]
-                                                                              (all _.composite
-                                                                                   ////reference.this
-                                                                                   (_.invokevirtual class //reset.name (//reset.type class))
-                                                                                   current_partials
-                                                                                   (..inputs ..this_offset arity_inputs)
-                                                                                   (//implementation.call class function_arity)
-                                                                                   (apply (n.+ ..this_offset arity_inputs) additional_inputs)
-                                                                                   _.areturn))
-
-                                                                            ... (i.< over_extent (.int stage))
-                                                                            (let [current_environment (|> (list.indices (list.size environment))
-                                                                                                          (list#each (///foreign.get class))
-                                                                                                          (monad.all _.monad))
-                                                                                  missing_partials (|> _.aconst_null
-                                                                                                       (list.repeated (|> num_partials (n.- apply_arity) (n.- stage)))
-                                                                                                       (monad.all _.monad))]
-                                                                              (all _.composite
-                                                                                   (_.new class)
-                                                                                   _.dup
-                                                                                   current_environment
-                                                                                   ///count.value
-                                                                                   (..increment apply_arity)
-                                                                                   current_partials
-                                                                                   (..inputs ..this_offset apply_arity)
-                                                                                   missing_partials
-                                                                                   (_.invokespecial class //init.name (//init.type environment function_arity))
-                                                                                   _.areturn)))))))
-                                                  (monad.all _.monad))]]
-                                 (all _.composite
-                                      ///count.value
-                                      (_.tableswitch (try.trusted (signed.s4 +0)) @default [@labelsH @labelsT])
-                                      cases)))})))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux
deleted file mode 100644
index 420872a39..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/implementation.lux
+++ /dev/null
@@ -1,59 +0,0 @@
-(.require
- [library
-  [lux (.except Type Label type)
-   [data
-    [collection
-     ["[0]" list]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Label Bytecode)]
-      ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)]
-      ["[0]" method (.only Method)]
-      [constant
-       [pool (.only Resource)]]
-      ["[0]" type (.only Type)
-       ["[0]" category (.only Class)]]]]]]]
- ["[0]" // (.only)
-  ["//[1]" ///
-   ["[0]" runtime]
-   ["[1][0]" type]
-   [//////
-    [arity (.only Arity)]
-    [meta
-     [archive
-      ["[0]" unit]]]]]])
-
-(def .public name "impl")
-
-(def .public (type :it: arity)
-  (-> (Type Class) Arity (Type category.Method))
-  (type.method [(list)
-                (list.partial :it: (list.repeated arity ////type.value))
-                ////type.value
-                (list)]))
-
-(def modifier
-  (all modifier#composite
-       method.static
-       //.modifier
-       ))
-
-(def .public (method :it: arity @begin body)
-  (-> (Type Class) Arity Label (Bytecode Any) (Resource Method))
-  (method.method ..modifier
-                 ..name
-                 false (..type :it: arity)
-                 (list)
-                 {.#Some (all _.composite
-                              (_.set_label @begin)
-                              body
-                              (_.when_continuous _.areturn)
-                              )}))
-
-(def .public (call :it: arity)
-  (-> (Type Class) Arity (Bytecode Any))
-  (_.invokestatic :it: ..name (..type :it: arity)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/init.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/init.lux
deleted file mode 100644
index 220755282..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/init.lux
+++ /dev/null
@@ -1,105 +0,0 @@
-(.require
- [library
-  [lux (.except Type Synthesis type)
-   [abstract
-    ["[0]" monad]]
-   [control
-    ["[0]" try]]
-   [data
-    [collection
-     ["[0]" list (.use "[1]#[0]" monoid functor)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" method (.only Method)]
-      [encoding
-       ["[0]" signed]]
-      [constant
-       [pool (.only Resource)]]
-      ["[0]" type (.only Type)
-       ["[0]" category (.only Class Value)]]]]]]]
- ["[0]" // (.only)
-  ["[1][0]" implementation]
-  ["/[1]" //
-   ["[1][0]" abstract]
-   [field
-    [constant
-     ["[1][0]" arity]]
-    [variable
-     ["[1][0]" foreign]
-     ["[1][0]" partial]]]
-   ["/[1]" //
-    ["[1][0]" type]
-    ["[1][0]" reference]
-    [////
-     [analysis (.only Environment)]
-     [synthesis (.only Synthesis)]
-     [///
-      ["[0]" arity (.only Arity)]
-      [reference
-       [variable (.only Register)]]]]]]])
-
-(def .public name "")
-
-(def (partials arity)
-  (-> Arity (List (Type Value)))
-  (list.repeated (-- arity) ////type.value))
-
-(def .public (type environment arity)
-  (-> (Environment Synthesis) Arity (Type category.Method))
-  (type.method [(list)
-                (list#composite (///foreign.closure environment)
-                                (if (arity.multiary? arity)
-                                  (list.partial ///arity.type (..partials arity))
-                                  (list)))
-                type.void
-                (list)]))
-
-(def no_partials
-  (|> +0
-      signed.s1
-      try.trusted
-      _.bipush))
-
-(def .public (super environment_size arity)
-  (-> Nat Arity (Bytecode Any))
-  (let [arity_register (++ environment_size)]
-    (all _.composite
-         (if (arity.unary? arity)
-           ..no_partials
-           (_.iload arity_register))
-         (_.invokespecial ///abstract.class ..name ///abstract.init))))
-
-(def (store_all amount put offset)
-  (-> Nat
-      (-> Register (Bytecode Any) (Bytecode Any))
-      (-> Register Register)
-      (Bytecode Any))
-  (|> (list.indices amount)
-      (list#each (function (_ register)
-                   (put register
-                        (_.aload (offset register)))))
-      (monad.all _.monad)))
-
-(def .public (method class environment arity)
-  (-> (Type Class) (Environment Synthesis) Arity (Resource Method))
-  (let [environment_size (list.size environment)
-        offset_foreign (is (-> Register Register)
-                           (n.+ 1))
-        offset_arity (is (-> Register Register)
-                         (|>> offset_foreign (n.+ environment_size)))
-        offset_partial (is (-> Register Register)
-                           (|>> offset_arity (n.+ 1)))]
-    (method.method //.modifier ..name
-                   false (..type environment arity)
-                   (list)
-                   {.#Some (all _.composite
-                                ////reference.this
-                                (..super environment_size arity)
-                                (store_all environment_size (///foreign.put class) offset_foreign)
-                                (store_all (-- arity) (///partial.put class) offset_partial)
-                                _.return)})))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/new.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/new.lux
deleted file mode 100644
index fc53686f7..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/new.lux
+++ /dev/null
@@ -1,82 +0,0 @@
-(.require
- [library
-  [lux (.except Type Synthesis)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    [collection
-     ["[0]" list]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" field (.only Field)]
-      ["[0]" method (.only Method)]
-      ["[0]" constant (.only)
-       [pool (.only Resource)]]
-      [type (.only Type)
-       ["[0]" category (.only Class Value Return)]]]]
-    [compiler
-     [meta
-      ["[0]" archive (.only Archive)]]]]]]
- ["[0]" // (.only)
-  ["[1][0]" init]
-  ["[1][0]" implementation]
-  ["/[1]" //
-   [field
-    [constant
-     ["[1][0]" arity]]
-    [variable
-     ["[1][0]" foreign]
-     ["[1][0]" partial]]]
-   ["/[1]" //
-    [runtime (.only Operation Phase)]
-    ["[1][0]" value]
-    ["[1][0]" reference]
-    [////
-     [analysis (.only Environment)]
-     [synthesis (.only Synthesis)]
-     [///
-      ["[0]" arity (.only Arity)]
-      ["[0]" phase]]]]]])
-
-(def .public (instance' foreign_setup class environment arity)
-  (-> (List (Bytecode Any)) (Type Class) (Environment Synthesis) Arity (Bytecode Any))
-  (all _.composite
-       (_.new class)
-       _.dup
-       (monad.all _.monad foreign_setup)
-       (///partial.new arity)
-       (_.invokespecial class //init.name (//init.type environment arity))))
-
-(def .public (instance generate archive class environment arity)
-  (-> Phase Archive (Type Class) (Environment Synthesis) Arity (Operation (Bytecode Any)))
-  (do [! phase.monad]
-    [foreign* (monad.each ! (generate archive) environment)]
-    (in (instance' foreign* class environment arity))))
-
-(def .public (method class environment arity)
-  (-> (Type Class) (Environment Synthesis) Arity (Resource Method))
-  (let [after_this (is (-> Nat Nat)
-                       (n.+ 1))
-        environment_size (list.size environment)
-        after_environment (is (-> Nat Nat)
-                              (|>> after_this (n.+ environment_size)))
-        after_arity (is (-> Nat Nat)
-                        (|>> after_environment (n.+ 1)))]
-    (method.method //.modifier //init.name
-                   false (//init.type environment arity)
-                   (list)
-                   {.#Some (all _.composite
-                                ////reference.this
-                                (//init.super environment_size arity)
-                                (monad.each _.monad (function (_ register)
-                                                      (///foreign.put class register (_.aload (after_this register))))
-                                            (list.indices environment_size))
-                                (monad.each _.monad (function (_ register)
-                                                      (///partial.put class register (_.aload (after_arity register))))
-                                            (list.indices (n.- ///arity.minimum arity)))
-                                _.areturn)})))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/reset.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/reset.lux
deleted file mode 100644
index 7f8154ed8..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/function/method/reset.lux
+++ /dev/null
@@ -1,51 +0,0 @@
-(.require
- [library
-  [lux (.except Type Synthesis type)
-   [data
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" method (.only Method)]
-      [constant
-       [pool (.only Resource)]]
-      ["[0]" type (.only Type)
-       ["[0]" category (.only Class)]]]]]]]
- ["[0]" // (.only)
-  ["[1][0]" new]
-  ["/[1]" //
-   [field
-    [variable
-     ["[1][0]" foreign]]]
-   ["/[1]" //
-    ["[1][0]" reference]
-    [////
-     [analysis (.only Environment)]
-     [synthesis (.only Synthesis)]
-     [///
-      ["[0]" arity (.only Arity)]]]]]])
-
-(def .public name "reset")
-
-(def .public (type class)
-  (-> (Type Class) (Type category.Method))
-  (type.method [(list) (list) class (list)]))
-
-(def (current_environment class)
-  (-> (Type Class) (Environment Synthesis) (List (Bytecode Any)))
-  (|>> list.size
-       list.indices
-       (list#each (///foreign.get class))))
-
-(def .public (method class environment arity)
-  (-> (Type Class) (Environment Synthesis) Arity (Resource Method))
-  (method.method //.modifier ..name
-                 false (..type class)
-                 (list)
-                 {.#Some (all _.composite
-                              (if (arity.multiary? arity)
-                                (//new.instance' (..current_environment class environment) class environment arity)
-                                ////reference.this)
-                              _.areturn)}))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/host.lux
deleted file mode 100644
index ea6b16da0..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/host.lux
+++ /dev/null
@@ -1,194 +0,0 @@
-(.require
- [library
-  [lux (.except Definition)
-   ["[0]" ffi (.only import object)]
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" maybe]
-    ["[0]" try (.only Try)]
-    ["[0]" exception (.only Exception)]
-    ["[0]" io (.only IO io)]
-    [concurrency
-     ["[0]" atom (.only Atom atom)]]]
-   [data
-    ["[0]" product]
-    [binary (.only Binary)
-     ["[0]" \\format]]
-    ["[0]" text (.use "[1]#[0]" hash)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" array]
-     ["[0]" dictionary (.only Dictionary)]
-     ["[0]" sequence]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" loader (.only Library)]
-      ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)]
-      ["[0]" field (.only Field)]
-      ["[0]" method (.only Method)]
-      ["[0]" version]
-      ["[0]" class (.only Class)]
-      ["[0]" encoding
-       ["[1]/[0]" name]]
-      ["[0]" type (.only)
-       ["[0]" descriptor]]]]
-    [compiler
-     [meta
-      [io (.only lux_context)]
-      [archive
-       ["[0]" unit]]]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Definition)]
-  ["[1][0]" type]
-  ["[1][0]" value]]
- )
-
-(import java/lang/reflect/Field
-  "[1]::[0]"
-  (get ["?" java/lang/Object] "try" "?" java/lang/Object))
-
-(import (java/lang/Class a)
-  "[1]::[0]"
-  (getField [java/lang/String] "try" java/lang/reflect/Field))
-
-(import java/lang/Object
-  "[1]::[0]"
-  (getClass [] (java/lang/Class java/lang/Object)))
-
-(import java/lang/ClassLoader
-  "[1]::[0]")
-
-(def value::modifier (all modifier#composite field.public field.final field.static))
-
-(def init::type (type.method [(list) (list) type.void (list)]))
-(def init::modifier (all modifier#composite method.public method.static method.strict))
-
-(exception.def .public (cannot_load [class error])
-  (Exception [Text Text])
-  (exception.report
-   (list ["Class" class]
-         ["Error" error])))
-
-(exception.def .public (invalid_field [class field error])
-  (Exception [Text Text Text])
-  (exception.report
-   (list ["Class" class]
-         ["Field" field]
-         ["Error" error])))
-
-(exception.def .public (invalid_value class)
-  (Exception Text)
-  (exception.report
-   (list ["Class" class])))
-
-(def (class_value class_name class)
-  (-> Text (java/lang/Class java/lang/Object) (Try Any))
-  (when (java/lang/Class::getField //value.field class)
-    {try.#Success field}
-    (when (java/lang/reflect/Field::get {.#None} field)
-      {try.#Success ?value}
-      (when ?value
-        {.#Some value}
-        {try.#Success value}
-        
-        {.#None}
-        (exception.except ..invalid_value [class_name]))
-      
-      {try.#Failure error}
-      (exception.except ..cannot_load [class_name error]))
-    
-    {try.#Failure error}
-    (exception.except ..invalid_field [class_name //value.field error])))
-
-(def class_path_separator
-  ".")
-
-(def (evaluate! library loader eval_class [@it valueG])
-  (-> Library java/lang/ClassLoader Text [(Maybe unit.ID) (Bytecode Any)] (Try [Any Definition]))
-  (let [bytecode_name (text.replaced class_path_separator .module_separator eval_class)
-        :value: (when @it
-                  {.#Some @it}
-                  (type.class (//runtime.class_name @it) (list))
-
-                  {.#None}
-                  //type.value)
-        bytecode (class.class version.v6_0
-                   class.public
-                   (encoding/name.internal bytecode_name)
-                   {.#None}
-                   (encoding/name.internal "java.lang.Object") (list)
-                   (list (field.field ..value::modifier //value.field false :value: (sequence.sequence)))
-                   (list (method.method ..init::modifier ""
-                                        false ..init::type
-                                        (list)
-                                        {.#Some
-                                         (all _.composite
-                                              valueG
-                                              (_.putstatic (type.class bytecode_name (list)) //value.field :value:)
-                                              _.return)}))
-                   (list))]
-    (io.run! (do [! (try.with io.monad)]
-               [bytecode (at ! each (\\format.result class.format)
-                             (io.io bytecode))
-                _ (loader.store eval_class bytecode library)
-                class (loader.load eval_class loader)
-                value (at io.monad in (class_value eval_class class))]
-               (in [value
-                    [eval_class bytecode]])))))
-
-(def (execute! library loader [class_name class_bytecode])
-  (-> Library java/lang/ClassLoader Definition (Try Any))
-  (io.run! (do (try.with io.monad)
-             [existing_class? (|> (atom.read! library)
-                                  (at io.monad each (function (_ library)
-                                                      (dictionary.key? library class_name)))
-                                  (try.lifted io.monad)
-                                  (is (IO (Try Bit))))
-              _ (if existing_class?
-                  (in [])
-                  (loader.store class_name class_bytecode library))]
-             (loader.load class_name loader))))
-
-(def (define! library loader context custom @it,valueG)
-  (-> Library java/lang/ClassLoader unit.ID (Maybe Text) [(Maybe unit.ID) (Bytecode Any)] (Try [Text Any Definition]))
-  (let [class_name (maybe.else (//runtime.class_name context)
-                               custom)]
-    (do try.monad
-      [[value definition] (evaluate! library loader class_name @it,valueG)]
-      (in [class_name value definition]))))
-
-(def .public host
-  (IO [java/lang/ClassLoader //runtime.Host])
-  (io (let [library (loader.new_library [])
-            loader (loader.memory library)]
-        [loader
-         (is //runtime.Host
-             (implementation
-              (def (evaluate context @it,valueG)
-                (at try.monad each product.left
-                    (..evaluate! library loader (format "E" (//runtime.class_name context)) @it,valueG)))
-              
-              (def execute
-                (..execute! library loader))
-              
-              (def define
-                (..define! library loader))
-
-              (def (ingest context bytecode)
-                [(//runtime.class_name context) bytecode])
-
-              (def (re_learn context custom [_ bytecode])
-                (io.run! (loader.store (maybe.else (//runtime.class_name context) custom) bytecode library)))
-              
-              (def (re_load context custom [declaration_name bytecode])
-                (io.run!
-                 (do (try.with io.monad)
-                   [.let [class_name (maybe.else (//runtime.class_name context)
-                                                 custom)]
-                    _ (loader.store class_name bytecode library)
-                    class (loader.load class_name loader)]
-                   (at io.monad in (..class_value class_name class)))))
-              ))])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/loop.lux
deleted file mode 100644
index 1a6682f08..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/loop.lux
+++ /dev/null
@@ -1,95 +0,0 @@
-(.require
- [library
-  [lux (.except Synthesis)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)]]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" value]
-  [////
-   ["[0]" synthesis (.only Path Synthesis)]
-   ["[0]" generation]
-   [///
-    ["[0]" phase]
-    [reference
-     [variable (.only Register)]]]]])
-
-(def (invariant? register changeS)
-  (-> Register Synthesis Bit)
-  (when changeS
-    (synthesis.variable/local @ var)
-    (n.= register var)
-
-    _
-    false))
-
-(def no_op
-  (_#in []))
-
-(def .public (again translate archive updatesS)
-  (Generator (List Synthesis))
-  (do [! phase.monad]
-    [[@begin offset] generation.anchor
-     updatesG (|> updatesS
-                  list.enumeration
-                  (list#each (function (_ [index updateS])
-                               [(n.+ offset index) updateS]))
-                  (monad.each ! (function (_ [register updateS])
-                                  (if (invariant? register updateS)
-                                    (in [..no_op
-                                         ..no_op])
-                                    (do !
-                                      [fetchG (translate archive updateS)
-                                       .let [storeG (_.astore register)]]
-                                      (in [fetchG storeG]))))))]
-    (in (all _.composite
-             ... It may look weird that first I fetch all the values separately,
-             ... and then I store them all.
-             ... It must be done that way in order to avoid a potential bug.
-             ... Let's say that you'll recur with 2 expressions: X and Y.
-             ... If Y depends on the value of X, and you don't perform fetches
-             ... and stores separately, then by the time Y is evaluated, it
-             ... will refer to the new value of X, instead of the old value, as
-             ... should be the case.
-             (|> updatesG
-                 (list#each product.left)
-                 (monad.all _.monad))
-             (|> updatesG
-                 list.reversed
-                 (list#each product.right)
-                 (monad.all _.monad))
-             (_.goto @begin)))))
-
-(def .public (scope translate archive [offset initsS+ iterationS])
-  (Generator [Nat (List Synthesis) Synthesis])
-  (do [! phase.monad]
-    [@begin //runtime.forge_label
-     initsI+ (monad.each ! (translate archive) initsS+)
-     iterationG (generation.with_anchor [@begin offset]
-                  (translate archive iterationS))
-     .let [initializationG (list#each (function (_ [index initG])
-                                        [initG (_.astore (n.+ offset index))])
-                                      (list.enumeration initsI+))]]
-    (in (all _.composite
-             (|> initializationG
-                 (list#each product.left)
-                 (monad.all _.monad))
-             (|> initializationG
-                 list.reversed
-                 (list#each product.right)
-                 (monad.all _.monad))
-             (_.set_label @begin)
-             iterationG))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/primitive.lux
deleted file mode 100644
index 5c9677bb7..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/primitive.lux
+++ /dev/null
@@ -1,134 +0,0 @@
-(.require
- [library
-  [lux (.except i64)
-   ["[0]" ffi (.only import)]
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" try]]
-   [math
-    [number
-     ["i" int]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" type]
-      [encoding
-       ["[0]" signed]]]]]]]
- ["[0]" //
-  ["[1][0]" runtime]])
-
-(def $Boolean (type.class "java.lang.Boolean" (list)))
-(def $Long (type.class "java.lang.Long" (list)))
-(def $Double (type.class "java.lang.Double" (list)))
-
-(def .public (bit value)
-  (-> Bit (Bytecode Any))
-  (_.getstatic $Boolean (if value "TRUE" "FALSE") $Boolean))
-
-(def wrap_i64
-  (_.invokestatic $Long "valueOf" (type.method [(list) (list type.long) $Long (list)])))
-
-(def .public (i64 value)
-  (-> (I64 Any) (Bytecode Any))
-  (when (.int value)
-    (^.with_template [ ]
-      [
-       (do _.monad
-         [_ ]
-         ..wrap_i64)])
-    ([+0 _.lconst_0]
-     [+1 _.lconst_1])
-
-    (^.with_template [ ]
-      [
-       (do _.monad
-         [_ 
-          _ _.i2l]
-         ..wrap_i64)])
-    ([-1 _.iconst_m1]
-     ... [+0 _.iconst_0]
-     ... [+1 _.iconst_1]
-     [+2 _.iconst_2]
-     [+3 _.iconst_3]
-     [+4 _.iconst_4]
-     [+5 _.iconst_5])
-
-    value
-    (when (signed.s1 value)
-      {try.#Success value}
-      (do _.monad
-        [_ (_.bipush value)
-         _ _.i2l]
-        ..wrap_i64)
-
-      {try.#Failure _}
-      (when (signed.s2 value)
-        {try.#Success value}
-        (do _.monad
-          [_ (_.sipush value)
-           _ _.i2l]
-          ..wrap_i64)
-
-        {try.#Failure _}
-        (do _.monad
-          [_ (_.long value)]
-          ..wrap_i64)))))
-
-(def wrap_f64
-  (_.invokestatic $Double "valueOf" (type.method [(list) (list type.double) $Double (list)])))
-
-(import java/lang/Double
-  "[1]::[0]"
-  ("static" doubleToRawLongBits "manual" [double] int))
-
-(def d0_bits
-  Int
-  (java/lang/Double::doubleToRawLongBits +0.0))
-
-(def .public (f64 value)
-  (-> Frac (Bytecode Any))
-  (when value
-    (^.with_template [ ]
-      [
-       (do _.monad
-         [_ ]
-         ..wrap_f64)])
-    ([+1.0 _.dconst_1])
-
-    (^.with_template [ ]
-      [
-       (do _.monad
-         [_ 
-          _ _.f2d]
-         ..wrap_f64)])
-    ([+2.0 _.fconst_2])
-
-    (^.with_template [ ]
-      [
-       (do _.monad
-         [_ 
-          _ _.i2d]
-         ..wrap_f64)])
-    ([-1.0 _.iconst_m1]
-     ... [+0.0 _.iconst_0]
-     ... [+1.0 _.iconst_1]
-     ... [+2.0 _.iconst_2]
-     [+3.0 _.iconst_3]
-     [+4.0 _.iconst_4]
-     [+5.0 _.iconst_5])
-    
-    _
-    (let [constantI (if (i.= ..d0_bits
-                             (java/lang/Double::doubleToRawLongBits (as java/lang/Double value)))
-                      _.dconst_0
-                      (_.double value))]
-      (do _.monad
-        [_ constantI]
-        ..wrap_f64))))
-
-(def .public text
-  _.string)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/program.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/program.lux
deleted file mode 100644
index de928bd0b..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/program.lux
+++ /dev/null
@@ -1,168 +0,0 @@
-(.require
- [library
-  [lux (.except Definition)
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" try]]
-   [data
-    [binary
-     ["[0]" \\format]]
-    [collection
-     ["[0]" sequence]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)]
-      ["[0]" method (.only Method)]
-      ["[0]" version]
-      ["[0]" class (.only Class)]
-      [encoding
-       ["[0]" name]]
-      ["[0]" type (.only)
-       ["[0]" reflection]]]]
-    [compiler
-     [language
-      [lux
-       [program (.only Program)]]]
-     [meta
-      [archive
-       ["[0]" unit]]]]]]]
- ["[0]" // (.only)
-  ["[1][0]" runtime (.only Definition)]
-  ["[1][0]" function/abstract]])
-
-(def ^Object
-  (type.class "java.lang.Object" (list)))
-
-(def ^String
-  (type.class "java.lang.String" (list)))
-
-(def ^Args
-  (type.array ^String))
-
-(def main::type
-  (type.method [(list) (list ..^Args) type.void (list)]))
-
-(def main::modifier
-  (Modifier Method)
-  (all modifier#composite
-       method.public
-       method.static
-       method.strict
-       ))
-
-(def program::modifier
-  (Modifier Class)
-  (all modifier#composite
-       class.public
-       class.final
-       ))
-
-(def list:end
-  //runtime.none_injection)
-
-(def amount_of_inputs
-  (Bytecode Any)
-  (all _.composite
-       _.aload_0
-       _.arraylength))
-
-(def decrease
-  (Bytecode Any)
-  (all _.composite
-       _.iconst_1
-       _.isub))
-
-(def head
-  (Bytecode Any)
-  (all _.composite
-       _.dup
-       _.aload_0
-       _.swap
-       _.aaload
-       _.swap
-       _.dup_x2
-       _.pop))
-
-(def pair
-  (Bytecode Any)
-  (let [empty_pair (all _.composite
-                        _.iconst_2
-                        (_.anewarray ^Object)
-                        )
-        set_side! (is (-> (Bytecode Any) (Bytecode Any))
-                      (function (_ index)
-                        (all _.composite
-                             ... ?P
-                             _.dup_x1  ... P?P
-                             _.swap    ... PP?
-                             index     ... PP?I
-                             _.swap    ... PPI?
-                             _.aastore ... P
-                             )))]
-    (all _.composite
-         ... RL
-         empty_pair ... RLP
-         (set_side! _.iconst_0) ... RP
-         (set_side! _.iconst_1) ... P
-         )))
-
-(def list:item //runtime.right_injection)
-
-(def input_list
-  (Bytecode Any)
-  (do _.monad
-    [@loop _.new_label
-     @end _.new_label]
-    (all _.composite
-         ..list:end
-         ..amount_of_inputs
-         (_.set_label @loop)
-         ..decrease
-         _.dup
-         (_.iflt @end)
-         ..head
-         ..pair
-         ..list:item
-         _.swap
-         (_.goto @loop)
-         (_.set_label @end)
-         _.pop)))
-
-(def feed_inputs
-  //runtime.apply)
-
-(def run_io
-  (Bytecode Any)
-  (all _.composite
-       (_.checkcast //function/abstract.class)
-       //runtime.unit
-       //runtime.apply))
-
-(def .public (program artifact_name context program)
-  (-> (-> unit.ID Text) (Program (Bytecode Any) Definition))
-  (let [super_class (|> ..^Object type.reflection reflection.reflection name.internal)
-        main (method.method ..main::modifier "main"
-                            false ..main::type
-                            (list)
-                            {.#Some (all _.composite
-                                         program
-                                         ..input_list
-                                         ..feed_inputs
-                                         ..run_io
-                                         _.return)})
-        class (artifact_name context)]
-    [class
-     (<| (\\format.result class.format)
-         try.trusted
-         (class.class version.v6_0
-           ..program::modifier
-           (name.internal class)
-           {.#None}
-           super_class
-           (list)
-           (list)
-           (list main)
-           (list)))]))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/reference.lux
deleted file mode 100644
index 9f4a1c945..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/reference.lux
+++ /dev/null
@@ -1,74 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    [monad (.only do)]]
-   [data
-    [text
-     ["%" \\format (.only format)]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" type]
-      [encoding
-       ["[0]" unsigned]]]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation)]
-  ["[1][0]" value]
-  ["[1][0]" type]
-  ["//[1]" ///
-   [//
-    ["[0]" generation]
-    [///
-     ["[1]" phase (.use "operation#[0]" monad)]
-     [reference
-      ["[0]" variable (.only Register Variable)]]
-     [meta
-      [archive (.only Archive)]]]]]])
-
-(def .public this
-  (Bytecode Any)
-  _.aload_0)
-
-(with_template [ ]
-  [(def .public 
-     (-> Register Text)
-     (|>> %.nat (format )))]
-
-  [foreign_name "f"]
-  [partial_name "p"]
-  )
-
-(def (foreign archive variable)
-  (-> Archive Register (Operation (Bytecode Any)))
-  (do [! ////.monad]
-    [bytecode_name (at ! each //runtime.class_name
-                       (generation.context archive))]
-    (in (all _.composite
-             ..this
-             (_.getfield (type.class bytecode_name (list))
-                         (..foreign_name variable)
-                         //type.value)))))
-
-(def .public (variable archive variable)
-  (-> Archive Variable (Operation (Bytecode Any)))
-  (when variable
-    {variable.#Local variable}
-    (operation#in (_.aload variable))
-    
-    {variable.#Foreign variable}
-    (..foreign archive variable)))
-
-(def .public (constant archive name)
-  (-> Archive Symbol (Operation (Bytecode Any)))
-  (do ////.monad
-    [[@definition |abstraction|] (generation.definition archive name)
-     .let [:definition: (type.class (//runtime.class_name @definition) (list))]]
-    (in (when |abstraction|
-          {.#Some [_ {.#Some [expected_arity @abstraction]}]}
-          (let [:abstraction: (type.class (//runtime.class_name @abstraction) (list))]
-            (_.getstatic :definition: //value.field :abstraction:))
-          
-          _
-          (_.getstatic :definition: //value.field //type.value)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/runtime.lux
deleted file mode 100644
index 9966acbd6..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/runtime.lux
+++ /dev/null
@@ -1,680 +0,0 @@
-(.require
- [library
-  [lux (.except Type Definition Label Declaration when false true try)
-   [abstract
-    ["[0]" monad (.only do)]
-    ["[0]" enum]]
-   [control
-    ["[0]" try]]
-   [data
-    ["[0]" product]
-    [binary (.only Binary)
-     ["[0]" \\format]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" sequence]]
-    [text
-     ["%" \\format (.only format)]]]
-   [math
-    [number
-     ["n" nat]
-     ["[0]" i32]
-     ["[0]" i64]]]
-   [meta
-    ["[0]" version]
-    [target
-     ["[0]" jvm
-      ["_" bytecode (.only Label Bytecode)]
-      ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)]
-      ["[0]" field (.only Field)]
-      ["[0]" method (.only Method)]
-      ["[1]/[0]" version]
-      ["[0]" class (.only Class)]
-      ["[0]" constant (.only)
-       [pool (.only Resource)]]
-      [encoding
-       ["[0]" name]]
-      ["[0]" type (.only Type)
-       ["[0]" category (.only Return' Value')]
-       ["[0]" reflection]]]]]]]
- ["[0]" //
-  ["[1][0]" type]
-  ["[1][0]" value]
-  ["[1][0]" function
-   ["[1]" abstract]
-   [field
-    [constant
-     ["[1]/[0]" arity]]
-    [variable
-     ["[1]/[0]" count]]]]
-  ["//[1]" ///
-   [//
-    ["[0]" synthesis]
-    ["[0]" generation]
-    [///
-     ["[1]" phase]
-     [arity (.only Arity)]
-     [reference
-      [variable (.only Register)]]
-     [meta
-      [io (.only lux_context)]
-      [archive (.only Output Archive)
-       ["[0]" artifact]
-       ["[0]" registry (.only Registry)]
-       ["[0]" unit]]]]]]])
-
-(type .public Byte_Code
-  Binary)
-
-(type .public Definition
-  [Text Byte_Code])
-
-(type .public Anchor
-  [Label Register])
-
-(type .public Value
-  (Bytecode Any))
-
-(type .public Declaration
-  Definition)
-
-(with_template [ ]
-  [(type .public 
-     ( Anchor Value Declaration))]
-
-  [Operation generation.Operation]
-  [Phase generation.Phase]
-  [Handler generation.Handler]
-  [Bundle generation.Bundle]
-  [Extender generation.Extender]
-  )
-
-(type .public (Generator i)
-  (-> Phase Archive i (Operation (Bytecode Any))))
-
-(type .public Host
-  (generation.Host (Bytecode Any) Definition))
-
-(def .public (class_name [module id])
-  (-> unit.ID Text)
-  (format lux_context
-          "." (%.nat version.latest)
-          "." (%.nat module)
-          "." (%.nat id)))
-
-(def artifact_id
-  0)
-
-(def .public class
-  (type.class (class_name [0 ..artifact_id]) (list)))
-
-(def procedure
-  (-> Text (Type category.Method) (Bytecode Any))
-  (_.invokestatic ..class))
-
-(def modifier
-  (Modifier Method)
-  (all modifier#composite
-       method.public
-       method.static
-       method.strict
-       ))
-
-(def this
-  (Bytecode Any)
-  _.aload_0)
-
-(def .public (get index)
-  (-> (Bytecode Any) (Bytecode Any))
-  (all _.composite
-       index
-       _.aaload))
-
-(def (set! index value)
-  (-> (Bytecode Any) (Bytecode Any) (Bytecode Any))
-  (all _.composite
-       ... A
-       _.dup ... AA
-       index ... AAI
-       value ... AAIV
-       _.aastore ... A
-       ))
-
-(def .public unit (_.string synthesis.unit))
-
-(def variant::name "variant")
-(def variant::type (type.method [(list) (list //type.lefts //type.right? //type.value) //type.variant (list)]))
-(def .public variant (..procedure ..variant::name ..variant::type))
-
-(def variant_lefts _.iconst_0)
-(def variant_right? _.iconst_1)
-(def variant_value _.iconst_2)
-
-(def variant::method
-  (let [new_variant (all _.composite
-                         _.iconst_3
-                         (_.anewarray //type.value))
-        $lefts (all _.composite
-                    _.iload_0
-                    (//value.wrap type.int))
-        $right? _.aload_1
-        $value _.aload_2]
-    (method.method ..modifier ..variant::name
-      .false ..variant::type
-      (list)
-      {.#Some (all _.composite
-                   new_variant                       ... A[3]
-                   (..set! ..variant_lefts $lefts)   ... A[3]
-                   (..set! ..variant_right? $right?) ... A[3]
-                   (..set! ..variant_value $value)   ... A[3]
-                   _.areturn)})))
-
-(def .public left_right? _.aconst_null)
-(def .public right_right? ..unit)
-
-(def .public left_injection
-  (Bytecode Any)
-  (all _.composite
-       _.iconst_0
-       ..left_right?
-       _.dup2_x1
-       _.pop2
-       ..variant))
-
-(def .public right_injection
-  (Bytecode Any)
-  (all _.composite
-       _.iconst_0
-       ..right_right?
-       _.dup2_x1
-       _.pop2
-       ..variant))
-
-(def .public some_injection ..right_injection)
-
-(def .public none_injection
-  (Bytecode Any)
-  (all _.composite
-       _.iconst_0
-       ..left_right?
-       ..unit
-       ..variant))
-
-(def (risky $unsafe)
-  (-> (Bytecode Any) (Bytecode Any))
-  (do _.monad
-    [@try _.new_label
-     @handler _.new_label]
-    (all _.composite
-         (_.try @try @handler @handler //type.error)
-         (_.set_label @try)
-         $unsafe
-         ..some_injection
-         _.areturn
-         (_.set_label @handler)
-         ..none_injection
-         _.areturn
-         )))
-
-(def decode_frac::name "decode_frac")
-(def decode_frac::type (type.method [(list) (list //type.text) //type.variant (list)]))
-(def .public decode_frac (..procedure ..decode_frac::name ..decode_frac::type))
-
-(def decode_frac::method
-  (method.method ..modifier ..decode_frac::name
-    .false ..decode_frac::type
-    (list)
-    {.#Some
-     (..risky
-      (all _.composite
-           _.aload_0
-           (_.invokestatic //type.frac "parseDouble" (type.method [(list) (list //type.text) type.double (list)]))
-           (//value.wrap type.double)
-           ))}))
-
-(def .public log!
-  (Bytecode Any)
-  (let [^PrintStream (type.class "java.io.PrintStream" (list))
-        ^System (type.class "java.lang.System" (list))
-        out (_.getstatic ^System "out" ^PrintStream)
-        print_type (type.method [(list) (list //type.value) type.void (list)])
-        print! (function (_ method) (_.invokevirtual ^PrintStream method print_type))]
-    (all _.composite
-         out (_.string "LUX LOG: ") (print! "print")
-         out _.swap (print! "println"))))
-
-(def exception_constructor (type.method [(list) (list //type.text) type.void (list)]))
-(def (illegal_state_exception message)
-  (-> Text (Bytecode Any))
-  (let [^IllegalStateException (type.class "java.lang.IllegalStateException" (list))]
-    (all _.composite
-         (_.new ^IllegalStateException)
-         _.dup
-         (_.string message)
-         (_.invokespecial ^IllegalStateException "" ..exception_constructor))))
-
-(def failure::type
-  (type.method [(list) (list) type.void (list)]))
-
-(def (failure name message)
-  (-> Text Text (Resource Method))
-  (method.method ..modifier name
-    .false ..failure::type
-    (list)
-    {.#Some
-     (all _.composite
-          (..illegal_state_exception message)
-          _.athrow)}))
-
-(def pm_failure::name "pm_failure")
-(def .public pm_failure (..procedure ..pm_failure::name ..failure::type))
-
-(def pm_failure::method
-  (..failure ..pm_failure::name "Invalid expression for pattern-matching."))
-
-(def .public stack_head _.iconst_0)
-(def .public stack_tail _.iconst_1)
-
-(def push::name "push")
-(def push::type (type.method [(list) (list //type.stack //type.value) //type.stack (list)]))
-(def .public push (..procedure ..push::name ..push::type))
-
-(def push::method
-  (method.method ..modifier ..push::name
-    .false ..push::type
-    (list)
-    {.#Some
-     (let [new_stack_frame! (all _.composite
-                                 _.iconst_2
-                                 (_.anewarray //type.value))
-           $head _.aload_1
-           $tail _.aload_0]
-       (all _.composite
-            new_stack_frame!
-            (..set! ..stack_head $head)
-            (..set! ..stack_tail $tail)
-            _.areturn))}))
-
-(def when::name "when")
-(def when::type (type.method [(list) (list //type.variant //type.lefts //type.right?) //type.value (list)]))
-(def .public when (..procedure ..when::name ..when::type))
-
-(def when::method
-  (method.method ..modifier ..when::name
-    .false ..when::type
-    (list)
-    {.#Some
-     (do _.monad
-       [@loop _.new_label
-        @perfect_match! _.new_label
-        @lefts_match! _.new_label
-        @maybe_nested _.new_label
-        @mismatch! _.new_label
-        .let [$variant _.aload_0
-              $lefts _.iload_1
-              $right? _.aload_2
-
-              ::lefts (all _.composite
-                           (..get ..variant_lefts)
-                           (//value.unwrap type.int))
-              ::right? (..get ..variant_right?)
-              ::value (..get ..variant_value)
-
-              not_found _.aconst_null
-
-              super_nested_lefts (all _.composite
-                                      _.swap
-                                      _.isub
-                                      (_.int (i32.i32 (.i64 +1)))
-                                      _.isub)
-              super_nested (all _.composite
-                                ... lefts, sumT
-                                super_nested_lefts ... super_lefts
-                                $variant ::right? ... super_lefts, super_right
-                                $variant ::value ... super_lefts, super_right, super_value
-                                ..variant)
-
-              update_$variant (all _.composite
-                                   $variant ::value
-                                   (_.checkcast //type.variant)
-                                   _.astore_0)
-              update_$lefts (all _.composite
-                                 _.isub
-                                 (_.int (i32.i32 (.i64 +1)))
-                                 _.isub)
-              again (is (-> Label (Bytecode Any))
-                        (function (_ @)
-                          (all _.composite
-                               ... lefts, sumT
-                               update_$variant ... lefts, sumT
-                               update_$lefts ... sub_lefts
-                               (_.goto @))))]]
-       (all _.composite
-            $lefts
-            (_.set_label @loop)
-            $variant ::lefts
-            _.dup2 (_.if_icmpeq @lefts_match!)
-            _.dup2 (_.if_icmpgt @maybe_nested)
-            $right? (_.ifnull @mismatch!) ... lefts, sumT
-            super_nested                 ... super_variant
-            _.areturn
-            (_.set_label @lefts_match!) ... lefts, sumT
-            $right?            ... lefts, sumT, wants_right?
-            $variant ::right? ... lefts, sumT, wants_right?, is_right?
-            (_.if_acmpeq @perfect_match!) ... lefts, sumT
-            (_.set_label @mismatch!) ... lefts, sumT
-            ... _.pop2
-            not_found
-            _.areturn
-            (_.set_label @maybe_nested)   ... lefts, sumT
-            $variant ::right?       ... lefts, sumT, right?
-            (_.ifnull @mismatch!)  ... lefts, sumT
-            (again @loop)
-            (_.set_label @perfect_match!) ... lefts, sumT
-            ... _.pop2
-            $variant ::value
-            _.areturn
-            ))}))
-
-(def projection_type (type.method [(list) (list //type.tuple //type.offset) //type.value (list)]))
-
-(def left_projection::name "left")
-(def .public left_projection (..procedure ..left_projection::name ..projection_type))
-
-(def right_projection::name "right")
-(def .public right_projection (..procedure ..right_projection::name ..projection_type))
-
-(def projection::method2
-  [(Resource Method) (Resource Method)]
-  (let [$tuple _.aload_0
-        $tuple::size (all _.composite
-                          $tuple
-                          _.arraylength)
-
-        $lefts _.iload_1
-
-        $last_right (all _.composite
-                         $tuple::size
-                         _.iconst_1
-                         _.isub)
-
-        update_$lefts (all _.composite
-                           $lefts $last_right _.isub
-                           _.istore_1)
-        update_$tuple (all _.composite
-                           $tuple $last_right _.aaload (_.checkcast //type.tuple)
-                           _.astore_0)
-        recur (is (-> Label (Bytecode Any))
-                  (function (_ @loop)
-                    (all _.composite
-                         update_$lefts
-                         update_$tuple
-                         (_.goto @loop))))
-
-        left_projection::method
-        (method.method ..modifier ..left_projection::name
-          .false ..projection_type
-          (list)
-          {.#Some
-           (do _.monad
-             [@loop _.new_label
-              @recursive _.new_label
-              .let [::left (all _.composite
-                                $lefts
-                                _.aaload)]]
-             (all _.composite
-                  (_.set_label @loop)
-                  $lefts $last_right (_.if_icmpge @recursive)
-                  $tuple ::left
-                  _.areturn
-                  (_.set_label @recursive)
-                  ... Recursive
-                  (recur @loop)))})
-
-        right_projection::method
-        (method.method ..modifier ..right_projection::name
-          .false ..projection_type
-          (list)
-          {.#Some
-           (do _.monad
-             [@loop _.new_label
-              @not_tail _.new_label
-              @slice _.new_label
-              .let [$right (all _.composite
-                                $lefts
-                                _.iconst_1
-                                _.iadd)
-                    $::nested (all _.composite
-                                   $tuple
-                                   _.swap
-                                   _.aaload)
-                    super_nested (all _.composite
-                                      $tuple
-                                      $right
-                                      $tuple::size
-                                      (_.invokestatic (type.class "java.util.Arrays" (list)) "copyOfRange"
-                                                      (type.method [(list) (list //type.tuple //type.index //type.index) //type.tuple (list)])))]]
-             (all _.composite
-                  (_.set_label @loop)
-                  $last_right $right
-                  _.dup2 (_.if_icmpne @not_tail)
-                  ... _.pop
-                  $::nested
-                  _.areturn
-                  (_.set_label @not_tail)
-                  (_.if_icmpgt @slice)
-                  ... Must recurse
-                  (recur @loop)
-                  (_.set_label @slice)
-                  super_nested
-                  _.areturn))})]
-    [left_projection::method
-     right_projection::method]))
-
-(def .public apply::name "apply")
-
-(def .public (apply::type arity)
-  (-> Arity (Type category.Method))
-  (type.method [(list) (list.repeated arity //type.value) //type.value (list)]))
-
-(def .public apply
-  (_.invokevirtual //function.class ..apply::name (..apply::type 1)))
-
-(def try::name "try")
-(def try::type (type.method [(list) (list //function.class) //type.variant (list)]))
-(def .public try (..procedure ..try::name ..try::type))
-
-(def throw::name "throw")
-(def throw::type (type.method [(list) (list (type.class "java.lang.Throwable" (list))) type.void (list)]))
-(def .public throw (..procedure ..throw::name ..throw::type))
-
-(def false _.iconst_0)
-(def true _.iconst_1)
-
-(def try::method
-  (method.method ..modifier ..try::name
-    .false ..try::type
-    (list)
-    {.#Some
-     (do _.monad
-       [@try _.new_label
-        @handler _.new_label
-        .let [$unsafe ..this
-
-              ^StringWriter (type.class "java.io.StringWriter" (list))
-              string_writer (all _.composite
-                                 (_.new ^StringWriter)
-                                 _.dup
-                                 (_.invokespecial ^StringWriter "" (type.method [(list) (list) type.void (list)])))
-
-              ^PrintWriter (type.class "java.io.PrintWriter" (list))
-              print_writer (all _.composite
-                                ... WTW
-                                (_.new ^PrintWriter) ... WTWP
-                                _.dup_x1 ... WTPWP
-                                _.swap   ... WTPPW
-                                ..true   ... WTPPWZ
-                                (_.invokespecial ^PrintWriter "" (type.method [(list) (list (type.class "java.io.Writer" (list)) type.boolean) type.void (list)]))
-                                ... WTP
-                                )
-              unsafe_application (all _.composite
-                                      $unsafe
-                                      ..unit
-                                      ..apply)
-              stack_trace (all _.composite
-                               ... T
-                               string_writer          ... TW
-                               _.dup_x1               ... WTW
-                               print_writer           ... WTP
-                               (_.invokevirtual //type.error "printStackTrace" (type.method [(list) (list ^PrintWriter) type.void (list)])) ... W
-                               (_.invokevirtual ^StringWriter "toString" (type.method [(list) (list) //type.text (list)])) ... S
-                               )]]
-       (all _.composite
-            (_.try @try @handler @handler //type.error)
-            (_.set_label @try)
-            unsafe_application
-            ..right_injection
-            _.areturn
-            (_.set_label @handler) ... T
-            stack_trace ... S
-            ..left_injection
-            _.areturn
-            ))}))
-
-(def throw::method
-  (method.method ..modifier ..throw::name
-    .false ..throw::type
-    (list)
-    {.#Some
-     (all _.composite
-          _.aload_0
-          _.athrow
-          )}))
-
-(def reflection
-  (All (_ category)
-    (-> (Type (<| Return' Value' category)) Text))
-  (|>> type.reflection reflection.reflection))
-
-(def ^Object (type.class "java.lang.Object" (list)))
-
-(def generate_runtime
-  (Operation [artifact.ID (Maybe Text) Binary])
-  (let [class (..reflection ..class)
-        modifier (is (Modifier Class)
-                     (all modifier#composite
-                          class.public
-                          class.final))
-        bytecode (<| (\\format.result class.format)
-                     try.trusted
-                     (class.class jvm/version.v6_0
-                       modifier
-                       (name.internal class)
-                       {.#None}
-                       (name.internal (..reflection ^Object)) (list)
-                       (list)
-                       (let [[left_projection::method right_projection::method] projection::method2]
-                         (list ..decode_frac::method
-                               ..variant::method
-
-                               ..pm_failure::method
-
-                               ..push::method
-                               ..when::method
-                               left_projection::method
-                               right_projection::method
-
-                               ..try::method
-                               ..throw::method))
-                       (list)))]
-    (do ////.monad
-      [_ (generation.execute! [class bytecode])
-       _ (generation.save! ..artifact_id {.#None} [class bytecode])]
-      (in [..artifact_id {.#None} bytecode]))))
-
-(def generate_function
-  (Operation Any)
-  (let [apply::method+ (|> (enum.range n.enum
-                                       (++ //function/arity.minimum)
-                                       //function/arity.maximum)
-                           (list#each (function (_ arity)
-                                        (method.method method.public ..apply::name
-                                          .false (..apply::type arity)
-                                          (list)
-                                          {.#Some
-                                           (let [previous_inputs (|> arity
-                                                                     list.indices
-                                                                     (monad.each _.monad _.aload))]
-                                             (all _.composite
-                                                  previous_inputs
-                                                  (_.invokevirtual //function.class ..apply::name (..apply::type (-- arity)))
-                                                  (_.checkcast //function.class)
-                                                  (_.aload arity)
-                                                  (_.invokevirtual //function.class ..apply::name (..apply::type //function/arity.minimum))
-                                                  _.areturn))})))
-                           (list.partial (method.method (modifier#composite method.public method.abstract)
-                                           ..apply::name
-                                           .false (..apply::type //function/arity.minimum)
-                                           (list)
-                                           {.#None})))
-        ::method (method.method method.public ""
-                         .false //function.init
-                         (list)
-                         {.#Some
-                          (let [$partials _.iload_1]
-                            (all _.composite
-                                 ..this
-                                 (_.invokespecial ^Object "" (type.method [(list) (list) type.void (list)]))
-                                 ..this
-                                 $partials
-                                 (_.putfield //function.class //function/count.field //function/count.type)
-                                 _.return))})
-        modifier (is (Modifier Class)
-                     (all modifier#composite
-                          class.public
-                          class.abstract))
-        class (..reflection //function.class)
-        partial_count (is (Resource Field)
-                          (field.field (modifier#composite field.public field.final)
-                                       //function/count.field
-                                       .false //function/count.type
-                                       sequence.empty))
-        bytecode (<| (\\format.result class.format)
-                     try.trusted
-                     (class.class jvm/version.v6_0
-                       modifier
-                       (name.internal class)
-                       {.#None}
-                       (name.internal (..reflection ^Object)) (list)
-                       (list partial_count)
-                       (list.partial ::method apply::method+)
-                       (list)))]
-    (do ////.monad
-      [_ (generation.execute! [class bytecode])
-       ... _ (generation.save! //function.artifact_id {.#None} [class bytecode])
-       ]
-      (in []))))
-
-(def .public generate
-  (Operation [Registry Output])
-  (do ////.monad
-    [runtime_payload ..generate_runtime
-     ... _ ..generate_function
-     ]
-    (in [(|> registry.empty
-             (registry.resource .true unit.none)
-             product.right
-             ... (registry.resource .true unit.none)
-             ... product.right
-             )
-         (sequence.sequence runtime_payload
-                            ... function_payload
-                            )])))
-
-(def .public forge_label
-  (Operation Label)
-  (let [shift (n./ 4 i64.width)]
-    ... This shift is done to avoid the possibility of forged labels
-    ... to be in the range of the labels that are generated automatically
-    ... during the evaluation of Bytecode expressions.
-    (at ////.monad each (|>> ++ (i64.left_shifted shift)) generation.next)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/structure.lux
deleted file mode 100644
index a05e38434..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/structure.lux
+++ /dev/null
@@ -1,97 +0,0 @@
-(.require
- [library
-  [lux (.except Variant Tuple Synthesis)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" try]]
-   [data
-    [collection
-     ["[0]" list]]]
-   [math
-    [number
-     ["[0]" i32]]]
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" type]
-      [encoding
-       ["[0]" signed]]]]]]]
- ["[0]" //
-  ["[1][0]" type]
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" primitive]
-  ["///[1]" ////
-   ["[1][0]" synthesis (.only Synthesis)]
-   [analysis
-    [complex (.only Variant Tuple)]]
-   [///
-    ["[0]" phase]]]])
-
-(def .public (tuple phase archive membersS)
-  (Generator (Tuple Synthesis))
-  (when membersS
-    {.#End}
-    (at phase.monad in //runtime.unit)
-
-    {.#Item singletonS {.#End}}
-    (phase archive singletonS)
-
-    _
-    (do [! phase.monad]
-      [membersI (|> membersS
-                    list.enumeration
-                    (monad.each ! (function (_ [idx member])
-                                    (do !
-                                      [memberI (phase archive member)]
-                                      (in (do _.monad
-                                            [_ _.dup
-                                             _ (_.int (.i64 idx))
-                                             _ memberI]
-                                            _.aastore))))))]
-      (in (do [! _.monad]
-            [_ (_.int (.i64 (list.size membersS)))
-             _ (_.anewarray //type.value)]
-            (monad.all ! membersI))))))
-
-(def .public (lefts lefts)
-  (-> Nat (Bytecode Any))
-  (when lefts
-    0 _.iconst_0
-    1 _.iconst_1
-    2 _.iconst_2
-    3 _.iconst_3
-    4 _.iconst_4
-    5 _.iconst_5
-    _ (when (signed.s1 (.int lefts))
-        {try.#Success value}
-        (_.bipush value)
-
-        {try.#Failure _}
-        (when (signed.s2 (.int lefts))
-          {try.#Success value}
-          (_.sipush value)
-
-          {try.#Failure _}
-          (_.int (.i64 lefts))))))
-
-(def .public (right? right?)
-  (-> Bit (Bytecode Any))
-  (if right?
-    //runtime.right_right?
-    //runtime.left_right?))
-
-(def .public (variant phase archive [lefts right? valueS])
-  (Generator (Variant Synthesis))
-  (do phase.monad
-    [valueI (phase archive valueS)]
-    (in (do _.monad
-          [_ (..lefts lefts)
-           _ (..right? right?)
-           _ valueI]
-          (_.invokestatic //runtime.class "variant"
-                          (type.method [(list)
-                                        (list //type.lefts //type.right? //type.value)
-                                        //type.variant
-                                        (list)]))))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/type.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/type.lux
deleted file mode 100644
index c178701b3..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/type.lux
+++ /dev/null
@@ -1,24 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [meta
-    [target
-     [jvm
-      ["[0]" type]]]]]])
-
-(def .public frac (type.class "java.lang.Double" (list)))
-(def .public text (type.class "java.lang.String" (list)))
-
-(def .public value (type.class "java.lang.Object" (list)))
-
-(def .public lefts type.int)
-(def .public right? ..value)
-(def .public variant (type.array ..value))
-
-(def .public offset type.int)
-(def .public index ..offset)
-(def .public tuple (type.array ..value))
-
-(def .public stack (type.array ..value))
-
-(def .public error (type.class "java.lang.Throwable" (list)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/value.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/value.lux
deleted file mode 100644
index 3d914a0e7..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/value.lux
+++ /dev/null
@@ -1,50 +0,0 @@
-(.require
- [library
-  [lux (.except Type Primitive)
-   [meta
-    [target
-     [jvm
-      ["_" bytecode (.only Bytecode)]
-      ["[0]" type (.only Type) (.use "[1]#[0]" equivalence)
-       [category (.only Primitive)]
-       ["[0]" box]]]]]]])
-
-(def .public field "value")
-
-(with_template [        ]
-  [(def ( type)
-     (-> (Type Primitive) Text)
-     (`` (cond (,, (with_template [ ]
-                     [(type#=  type) ]
-                     
-                     [type.boolean ]
-                     [type.byte    ]
-                     [type.short   ]
-                     [type.int     ]
-                     [type.long    ]
-                     [type.float   ]
-                     [type.double  ]
-                     [type.char    ]))
-               ... else
-               (undefined))))]
-
-  [primitive_wrapper
-   box.boolean box.byte box.short box.int
-   box.long box.float box.double box.char]
-  [primitive_unwrap
-   "booleanValue" "byteValue" "shortValue" "intValue"
-   "longValue" "floatValue" "doubleValue" "charValue"]
-  )
-
-(def .public (wrap type)
-  (-> (Type Primitive) (Bytecode Any))
-  (let [wrapper (type.class (primitive_wrapper type) (list))]
-    (_.invokestatic wrapper "valueOf"
-                    (type.method [(list) (list type) wrapper (list)]))))
-
-(def .public (unwrap type)
-  (-> (Type Primitive) (Bytecode Any))
-  (let [wrapper (type.class (primitive_wrapper type) (list))]
-    (all _.composite
-         (_.checkcast wrapper)
-         (_.invokevirtual wrapper (primitive_unwrap type) (type.method [(list) (list) type (list)])))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/when.lux
deleted file mode 100644
index e66312fbd..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/jvm/when.lux
+++ /dev/null
@@ -1,327 +0,0 @@
-(.require
- [library
-  [lux (.except Type Label Synthesis if let exec when int)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" function]]
-   [data
-    [collection
-     ["[0]" list (.use "[1]#[0]" mix)]]
-    ["[0]" text (.use "[1]#[0]" equivalence)
-     ["%" \\format (.only format)]]]
-   [math
-    [number
-     ["n" nat]
-     ["[0]" i32]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     [jvm
-      ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)
-       [environment
-        [limit
-         ["[0]" stack]]]]
-      ["[0]" type (.only Type)
-       [category (.only Method)]]]]]]]
- ["[0]" //
-  ["[1][0]" type]
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" value]
-  ["[1][0]" structure]
-  [////
-   ["[0]" generation]
-   ["[0]" synthesis (.only Path Fork Synthesis)
-    [access
-     ["[0]" member (.only Member)]]]
-   [///
-    ["[0]" phase (.use "operation#[0]" monad)]
-    [reference
-     [variable (.only Register)]]]]])
-
-(def (pop_alt stack_depth)
-  (-> Nat (Bytecode Any))
-  (.when stack_depth
-    0 (_#in [])
-    1 _.pop
-    2 _.pop2
-    _ ... (n.> 2)
-    (all _.composite
-         _.pop2
-         (pop_alt (n.- 2 stack_depth)))))
-
-(def int
-  (-> (I64 Any) (Bytecode Any))
-  (|>> .i64 i32.i32 _.int))
-
-(def long
-  (-> (I64 Any) (Bytecode Any))
-  (|>> .int _.long))
-
-(def peek
-  (Bytecode Any)
-  (all _.composite
-       _.dup
-       (//runtime.get //runtime.stack_head)))
-
-(def pop
-  (Bytecode Any)
-  (all _.composite
-       (//runtime.get //runtime.stack_tail)
-       (_.checkcast //type.stack)))
-
-(def (left_projection lefts)
-  (-> Nat (Bytecode Any))
-  (all _.composite
-       (_.checkcast //type.tuple)
-       (..int lefts)
-       (.when lefts
-         0
-         _.aaload
-         
-         lefts
-         //runtime.left_projection)))
-
-(def (right_projection lefts)
-  (-> Nat (Bytecode Any))
-  (all _.composite
-       (_.checkcast //type.tuple)
-       (..int lefts)
-       //runtime.right_projection))
-
-(def equals@Object
-  (.let [class (type.class "java.lang.Object" (list))
-         method (type.method [(list) (list //type.value) type.boolean (list)])]
-    (_.invokevirtual class "equals" method)))
-
-(def (path|bind register)
-  (-> Register (Operation (Bytecode Any)))
-  (operation#in (all _.composite
-                     ..peek
-                     (_.astore register))))
-
-(def (path|bit_fork again @else [when thenP elseP])
-  (-> (-> Path (Operation (Bytecode Any)))
-      Label [Bit Path (Maybe Path)]
-      (Operation (Bytecode Any)))
-  (do phase.monad
-    [then! (again thenP)
-     else! (.when elseP
-             {.#Some elseP}
-             (again elseP)
-
-             {.#None}
-             (in (_.goto @else)))
-     .let [if! (.if when _.ifeq _.ifne)]]
-    (in (do _.monad
-          [@else _.new_label]
-          (all _.composite
-               ..peek
-               (//value.unwrap type.boolean)
-               (if! @else)
-               then!
-               (_.set_label @else)
-               else!)))))
-
-(with_template [       ]
-  [(def ( again @else cons)
-     (-> (-> Path (Operation (Bytecode Any)))
-         Label (Fork  Path)
-         (Operation (Bytecode Any)))
-     (do [! phase.monad]
-       [fork! (monad.mix ! (function (_ [test thenP] else!)
-                             (do !
-                               [then! (again thenP)]
-                               (in (do _.monad
-                                     [@else _.new_label]
-                                     (all _.composite
-                                          
-                                          ( test)
-                                          
-                                          ( @else)
-                                          
-                                          then!
-                                          (_.set_label @else)
-                                          else!)))))
-                         (all _.composite
-                              
-                              (_.goto @else))
-                         {.#Item cons})]
-       (in (all _.composite
-                ..peek
-                
-                fork!))))]
-
-  [path|i64_fork (I64 Any) (//value.unwrap type.long) _.dup2 _.pop2 ..long _.lcmp _.ifne]
-  [path|f64_fork Frac (//value.unwrap type.double) _.dup2 _.pop2 _.double _.dcmpl _.ifne]
-  [path|text_fork Text (at _.monad in []) _.dup _.pop _.string ..equals@Object _.ifeq]
-  )
-
-(def (path' stack_depth @else @end phase archive)
-  (-> Nat Label Label (Generator Path))
-  (function (again path)
-    (.when path
-      {synthesis.#Pop}
-      (operation#in ..pop)
-      
-      {synthesis.#Bind register}
-      (..path|bind register)
-
-      (^.with_template [ ]
-        [{ it}
-         ( again @else it)])
-      ([synthesis.#Bit_Fork ..path|bit_fork]
-       [synthesis.#I64_Fork ..path|i64_fork]
-       [synthesis.#F64_Fork ..path|f64_fork]
-       [synthesis.#Text_Fork ..path|text_fork])
-
-      {synthesis.#Then bodyS}
-      (do phase.monad
-        [body! (phase archive bodyS)]
-        (in (all _.composite
-                 (..pop_alt stack_depth)
-                 body!
-                 (_.when_continuous (_.goto @end)))))
-      
-      (synthesis.side lefts right?)
-      (operation#in
-       (do _.monad
-         [@success _.new_label]
-         (all _.composite
-              ..peek
-              (_.checkcast //type.variant)
-              (//structure.lefts lefts)
-              (//structure.right? right?)
-              //runtime.when
-              _.dup
-              (_.ifnonnull @success)
-              _.pop
-              (_.goto @else)
-              (_.set_label @success)
-              //runtime.push)))
-
-      (^.with_template [ ]
-        [( lefts)
-         (operation#in (all _.composite
-                            ..peek
-                            ( lefts)
-                            //runtime.push))
-
-         ... Extra optimization
-         (synthesis.path/seq
-          ( lefts)
-          (synthesis.!bind_top register thenP))
-         (do phase.monad
-           [then! (path' stack_depth @else @end phase archive thenP)]
-           (in (all _.composite
-                    ..peek
-                    ( lefts)
-                    (_.astore register)
-                    then!)))])
-      ([synthesis.member/left ..left_projection]
-       [synthesis.member/right ..right_projection])
-      
-      {synthesis.#Seq leftP rightP}
-      (do phase.monad
-        [left! (path' stack_depth @else @end phase archive leftP)
-         right! (path' stack_depth @else @end phase archive rightP)]
-        (in (all _.composite
-                 left!
-                 right!)))
-
-      {synthesis.#Alt leftP rightP}
-      (do phase.monad
-        [@alt_else //runtime.forge_label
-         left! (path' (++ stack_depth) @alt_else @end phase archive leftP)
-         right! (path' stack_depth @else @end phase archive rightP)]
-        (in (all _.composite
-                 _.dup
-                 left!
-                 (_.set_label @alt_else)
-                 _.pop
-                 right!)))
-      )))
-
-(def (path @end phase archive path)
-  (-> Label (Generator Path))
-  (do phase.monad
-    [@else //runtime.forge_label
-     path! (..path' 1 @else @end phase archive path)]
-    (in (all _.composite
-             path!
-             (<| (_.when_acknowledged @else)
-                 (all _.composite
-                      (_.set_label @else)
-                      //runtime.pm_failure
-                      (_.goto @end)
-                      ))
-             ))))
-
-(def .public (if phase archive [testS thenS elseS])
-  (Generator [Synthesis Synthesis Synthesis])
-  (do phase.monad
-    [test! (phase archive testS)
-     then! (phase archive thenS)
-     else! (phase archive elseS)]
-    (in (do _.monad
-          [@else _.new_label
-           @end _.new_label]
-          (all _.composite
-               test!
-               (//value.unwrap type.boolean)
-               (_.ifeq @else)
-               then!
-               (_.when_continuous (_.goto @end))
-               (_.set_label @else)
-               else!
-               (<| (_.when_acknowledged @end)
-                   (_.set_label @end)))))))
-
-(def .public (exec phase archive [this that])
-  (Generator [Synthesis Synthesis])
-  (do phase.monad
-    [this! (phase archive this)
-     that! (phase archive that)]
-    (in (all _.composite
-             this!
-             _.pop
-             that!))))
-
-(def .public (let phase archive [inputS register bodyS])
-  (Generator [Synthesis Register Synthesis])
-  (do phase.monad
-    [input! (phase archive inputS)
-     body! (phase archive bodyS)]
-    (in (all _.composite
-             input!
-             (_.astore register)
-             body!))))
-
-(def .public (get phase archive [path recordS])
-  (Generator [(List Member) Synthesis])
-  (do phase.monad
-    [record! (phase archive recordS)]
-    (in (list#mix (function (_ step so_far!)
-                    (.let [next! (.if (the member.#right? step)
-                                   (..right_projection (the member.#lefts step))
-                                   (..left_projection (the member.#lefts step)))]
-                      (all _.composite
-                           so_far!
-                           next!)))
-                  record!
-                  (list.reversed path)))))
-
-(def .public (when phase archive [valueS path])
-  (Generator [Synthesis Path])
-  (do phase.monad
-    [@end //runtime.forge_label
-     value! (phase archive valueS)
-     path! (..path @end phase archive path)]
-    (in (all _.composite
-             _.aconst_null
-             value!
-             //runtime.push
-             path!
-             (<| (_.when_acknowledged @end)
-                 (_.set_label @end))))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua.lux
deleted file mode 100644
index ef70e5688..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua.lux
+++ /dev/null
@@ -1,90 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" exception]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" lua]]]]]
- ["[0]" /
-  [runtime (.only Phase)]
-  ["[1][0]" primitive]
-  ["[1][0]" structure]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["[1][0]" loop]
-  ["[1][0]" function]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" extension (.only)
-     [generation
-      [lua
-       ["[1]/[0]" common]]]]
-    ["/[1]" //
-     [analysis (.only)]
-     ["[0]" synthesis]
-     ["//[1]" ///
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [reference (.only)
-       [variable (.only)]]]]]]])
-
-(exception.def .public cannot_recur_as_an_expression)
-
-(def (expression archive synthesis)
-  Phase
-  (when synthesis
-    (^.with_template [ ]
-      [( value)
-       (//////phase#in ( value))])
-    ([synthesis.bit  /primitive.bit]
-     [synthesis.i64  /primitive.i64]
-     [synthesis.f64  /primitive.f64]
-     [synthesis.text /primitive.text])
-
-    (synthesis.variant variantS)
-    (/structure.variant expression archive variantS)
-
-    (synthesis.tuple members)
-    (/structure.tuple expression archive members)
-
-    {synthesis.#Reference value}
-    (//reference.reference /reference.system archive value)
-
-    (synthesis.branch/when when)
-    (/when.when ///extension/common.statement expression archive when)
-
-    (synthesis.branch/exec it)
-    (/when.exec expression archive it)
-
-    (synthesis.branch/let let)
-    (/when.let expression archive let)
-
-    (synthesis.branch/if if)
-    (/when.if expression archive if)
-
-    (synthesis.branch/get get)
-    (/when.get expression archive get)
-
-    (synthesis.loop/scope scope)
-    (/loop.scope ///extension/common.statement expression archive scope)
-
-    (synthesis.loop/again updates)
-    (//////phase.except ..cannot_recur_as_an_expression [])
-
-    (synthesis.function/abstraction abstraction)
-    (/function.function ///extension/common.statement expression archive abstraction)
-
-    (synthesis.function/apply application)
-    (/function.apply expression archive application)
-
-    {synthesis.#Extension extension}
-    (///extension.apply archive expression extension)))
-
-(def .public generate
-  Phase
-  ..expression)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/function.lux
deleted file mode 100644
index 0e7b19de8..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/function.lux
+++ /dev/null
@@ -1,144 +0,0 @@
-(.require
- [library
-  [lux (.except Label function)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    [text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [meta
-    [target
-     ["_" lua (.only Var Expression Label Statement)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Phase! Generator)]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["//[1]" ///
-    [analysis (.only Abstraction Reification Analysis)]
-    [synthesis (.only Synthesis)]
-    ["[1][0]" generation]
-    ["//[1]" ///
-     [arity (.only Arity)]
-     ["[1][0]" phase (.use "[1]#[0]" monad)]
-     [meta
-      [archive
-       ["[0]" unit]]
-      ["[0]" cache
-       [dependency
-        ["[1]" artifact]]]]
-     [reference
-      [variable (.only Register Variable)]]]]]])
-
-(def .public (apply expression archive [functionS argsS+])
-  (Generator (Reification Synthesis))
-  (do [! ///////phase.monad]
-    [functionO (expression archive functionS)
-     argsO+ (monad.each ! (expression archive) argsS+)]
-    (in (_.apply argsO+ functionO))))
-
-(def capture
-  (-> Register Var)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def (with_closure inits @self @args body!)
-  (-> (List Expression) Var (List Var) Statement [Statement Expression])
-  (when inits
-    {.#End}
-    [(_.function @self @args body!)
-     @self]
-
-    _
-    (let [@inits (|> (list.enumeration inits)
-                     (list#each (|>> product.left ..capture)))]
-      [(_.function @self @inits
-         (all _.then
-              (_.local_function @self @args body!)
-              (_.return @self)))
-       (_.apply inits @self)])))
-
-(def input
-  (|>> ++ //when.register))
-
-(def (@scope function_name)
-  (-> unit.ID Label)
-  (_.label (format (///reference.artifact function_name) "_scope")))
-
-(def .public (function statement expression archive [environment arity bodyS])
-  (-> Phase! (Generator (Abstraction Synthesis)))
-  (do [! ///////phase.monad]
-    [dependencies (cache.dependencies archive bodyS)
-     [function_name body!] (/////generation.with_new_context archive dependencies
-                             (do !
-                               [@scope (at ! each ..@scope
-                                           (/////generation.context archive))]
-                               (/////generation.with_anchor [1 @scope]
-                                 (statement expression archive bodyS))))
-     closureO+ (monad.each ! (expression archive) environment)
-     .let [@curried (_.var "curried")
-           arityO (|> arity .int _.int)
-           @num_args (_.var "num_args")
-           @scope (..@scope function_name)
-           @self (_.var (///reference.artifact function_name))
-           initialize_self! (_.local/1 (//when.register 0) @self)
-           initialize! (list#mix (.function (_ post pre!)
-                                   (all _.then
-                                        pre!
-                                        (_.local/1 (..input post) (_.item (|> post ++ .int _.int) @curried))))
-                                 initialize_self!
-                                 (list.indices arity))
-           pack (|>> (list) _.array)
-           unpack (is (-> Expression Expression)
-                      (.function (_ it)
-                        (_.apply (list it) (_.var "table.unpack"))))
-           @var_args (_.var "...")]
-     .let [[definition instantiation] (with_closure closureO+ @self (list @var_args)
-                                        (all _.then
-                                             (_.local/1 @curried (pack @var_args))
-                                             (_.local/1 @num_args (_.length @curried))
-                                             (<| (_.if (|> @num_args (_.= arityO))
-                                                   (all _.then
-                                                        initialize!
-                                                        (_.set_label @scope)
-                                                        body!))
-                                                 (_.if (|> @num_args (_.> arityO))
-                                                   (let [arity_inputs (_.apply (list @curried
-                                                                                     (_.int +1)
-                                                                                     arityO
-                                                                                     (_.int +1)
-                                                                                     (_.array (list)))
-                                                                               (_.var "table.move"))
-                                                         extra_inputs (_.apply (list @curried
-                                                                                     (_.+ (_.int +1) arityO)
-                                                                                     @num_args
-                                                                                     (_.int +1)
-                                                                                     (_.array (list)))
-                                                                               (_.var "table.move"))]
-                                                     (_.return (|> @self
-                                                                   (_.apply (list (unpack arity_inputs)))
-                                                                   (_.apply (list (unpack extra_inputs)))))))
-                                                 ... (|> @num_args (_.< arityO))
-                                                 (_.return (_.closure (list @var_args)
-                                                                      (let [@extra_args (_.var "extra_args")]
-                                                                        (all _.then
-                                                                             (_.local/1 @extra_args (pack @var_args))
-                                                                             (_.return (_.apply (list (unpack (_.apply (list @extra_args
-                                                                                                                             (_.int +1)
-                                                                                                                             (_.length @extra_args)
-                                                                                                                             (_.+ (_.int +1) @num_args)
-                                                                                                                             (_.apply (list @curried
-                                                                                                                                            (_.int +1)
-                                                                                                                                            @num_args
-                                                                                                                                            (_.int +1)
-                                                                                                                                            (_.array (list)))
-                                                                                                                                      (_.var "table.move")))
-                                                                                                                       (_.var "table.move"))))
-                                                                                                @self)))))))
-                                             ))]
-     _ (/////generation.execute! definition)
-     _ (/////generation.save! (product.right function_name) {.#None} definition)]
-    (in instantiation)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/loop.lux
deleted file mode 100644
index f3532770a..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/loop.lux
+++ /dev/null
@@ -1,124 +0,0 @@
-(.require
- [library
-  [lux (.except Label Scope)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    [text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" set]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     ["_" lua (.only Var Expression Label Statement)]]]]]
- ["[0]" //
-  [runtime (.only Operation Phase Phase! Generator Generator!)]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["//[1]" ///
-    ["[0]"synthesis (.only Scope Synthesis)]
-    ["[1][0]" generation]
-    ["//[1]" ///
-     ["[1][0]" phase]
-     [meta
-      [archive (.only Archive)]
-      ["[0]" cache
-       [dependency
-        ["[1]" artifact]]]]
-     [reference
-      [variable (.only Register)]]]]]])
-
-(def @scope
-  (-> Nat Label)
-  (|>> %.nat (format "scope") _.label))
-
-(def (setup initial? offset bindings as_expression? body)
-  (-> Bit Register (List Expression) Bit Statement Statement)
-  (let [variables (|> bindings
-                      list.enumeration
-                      (list#each (|>> product.left (n.+ offset) //when.register)))]
-    (if as_expression?
-      body
-      (all _.then
-           (if initial?
-             (_.let variables (_.multi bindings))
-             (_.set variables (_.multi bindings)))
-           body))))
-
-(def .public (scope! statement expression archive as_expression? [start initsS+ bodyS])
-  ... (Generator! (Scope Synthesis))
-  (-> Phase! Phase Archive Bit (Scope Synthesis)
-      (Operation [(List Expression) Statement]))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (|> bodyS
-        (statement expression archive)
-        (at ///////phase.monad each (|>> [(list)])))
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [@scope (at ! each ..@scope /////generation.next)
-       initsO+ (monad.each ! (expression archive) initsS+)
-       body! (/////generation.with_anchor [start @scope]
-               (statement expression archive bodyS))]
-      (in [initsO+
-           (..setup true start initsO+ as_expression?
-                    (all _.then
-                         (_.set_label @scope)
-                         body!))]))))
-
-(def .public (scope statement expression archive [start initsS+ bodyS])
-  (-> Phase! (Generator (Scope Synthesis)))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [dependencies (cache.dependencies archive bodyS)
-       [[artifact_module artifact_id] [initsO+ scope!]] (/////generation.with_new_context archive dependencies
-                                                          (scope! statement expression archive true [start initsS+ bodyS]))
-       .let [@loop (_.var (///reference.artifact [artifact_module artifact_id]))
-             locals (|> initsO+
-                        list.enumeration
-                        (list#each (|>> product.left (n.+ start) //when.register)))
-             [declaration instantiation] (is [Statement Expression]
-                                             (when (|> (synthesis.path/then bodyS)
-                                                       //when.dependencies
-                                                       (set.of_list _.hash)
-                                                       (set.difference (set.of_list _.hash locals))
-                                                       set.list)
-                                               {.#End}
-                                               [(_.function @loop locals
-                                                  scope!)
-                                                @loop]
-
-                                               foreigns
-                                               (let [@context (_.var (format (_.code @loop) "_context"))]
-                                                 [(_.function @context foreigns
-                                                    (all _.then
-                                                         (<| (_.local_function @loop locals)
-                                                             scope!)
-                                                         (_.return @loop)
-                                                         ))
-                                                  (_.apply foreigns @context)])))]
-       _ (/////generation.execute! declaration)
-       _ (/////generation.save! artifact_id {.#None} declaration)]
-      (in (_.apply initsO+ instantiation)))))
-
-(def .public (again! statement expression archive argsS+)
-  (Generator! (List Synthesis))
-  (do [! ///////phase.monad]
-    [[offset @scope] /////generation.anchor
-     argsO+ (monad.each ! (expression archive) argsS+)]
-    (in (..setup false offset argsO+ false (_.go_to @scope)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/primitive.lux
deleted file mode 100644
index 48c05d948..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/primitive.lux
+++ /dev/null
@@ -1,17 +0,0 @@
-(.require
- [library
-  [lux (.except i64)
-   [meta
-    [target
-     ["_" lua (.only Literal)]]]]])
-
-(with_template [  ]
-  [(def .public 
-     (->  Literal)
-     )]
-
-  [bit Bit _.boolean]
-  [i64 (I64 Any) (|>> .int _.int)]
-  [f64 Frac _.float]
-  [text Text _.string]
-  )
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/reference.lux
deleted file mode 100644
index f7309bb8c..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/reference.lux
+++ /dev/null
@@ -1,14 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [meta
-    [target
-     ["_" lua (.only Expression)]]]]]
- [///
-  [reference (.only System)]])
-
-(def .public system
-  (System Expression)
-  (implementation
-   (def constant' _.var)
-   (def variable' _.var)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/runtime.lux
deleted file mode 100644
index c16856732..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/runtime.lux
+++ /dev/null
@@ -1,461 +0,0 @@
-(.require
- [library
-  [lux (.except Label Location Synthesis Declaration left right)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.use "[1]#[0]" hash)
-     ["%" \\format (.only format)]
-     [encoding
-      ["[0]" utf8]]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" sequence]]]
-   [math
-    [number (.only hex)
-     ["[0]" i64]]]
-   ["[0]" meta (.only)
-    ["[0]" code (.only)
-     ["<[1]>" \\parser]]
-    ["[0]" macro (.only)
-     [syntax (.only syntax)]]
-    ["@" target (.only)
-     ["_" lua (.only Expression Location Var Computation Literal Label Statement)]]]]]
- ["[0]" ///
-  ["[1][0]" reference]
-  ["//[1]" ///
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["[1][0]" generation]
-   ["//[1]" /// (.only)
-    ["[1][0]" phase]
-    [reference
-     [variable (.only Register)]]
-    [meta
-     [archive (.only Output Archive)
-      ["[0]" registry (.only Registry)]
-      ["[0]" unit]]]]]])
-
-(type .public Anchor
-  [Register Label])
-
-(type .public Value
-  Expression)
-
-(type .public Declaration
-  Statement)
-
-(with_template [ ]
-  [(type .public 
-     ( Anchor Value Declaration))]
-
-  [Operation /////generation.Operation]
-  [Phase /////generation.Phase]
-  [Handler /////generation.Handler]
-  [Bundle /////generation.Bundle]
-  )
-
-(type .public (Generator i)
-  (-> Phase Archive i (Operation Expression)))
-
-(type .public Phase!
-  (-> Phase Archive Synthesis (Operation Statement)))
-
-(type .public (Generator! i)
-  (-> Phase! Phase Archive i (Operation Statement)))
-
-(def .public unit
-  (_.string /////synthesis.unit))
-
-(def (flag value)
-  (-> Bit Literal)
-  (if value
-    ..unit
-    _.nil))
-
-(def .public variant_tag_field "_lux_tag")
-(def .public variant_flag_field "_lux_flag")
-(def .public variant_value_field "_lux_value")
-
-(def (variant' tag last? value)
-  (-> Expression Expression Expression Literal)
-  (_.table (list [..variant_tag_field tag]
-                 [..variant_flag_field last?]
-                 [..variant_value_field value])))
-
-(def .public (variant tag last? value)
-  (-> Nat Bit Expression Literal)
-  (variant' (_.int (.int tag))
-            (flag last?)
-            value))
-
-(def .public left
-  (-> Expression Literal)
-  (..variant 0 #0))
-
-(def .public right
-  (-> Expression Literal)
-  (..variant 0 #1))
-
-(def .public none
-  Literal
-  (..left ..unit))
-
-(def .public some
-  (-> Expression Literal)
-  ..right)
-
-(def (feature name definition)
-  (-> Var (-> Var Statement) Statement)
-  (definition name))
-
-(def .public with_vars
-  (syntax (_ [vars (.tuple (<>.some .local))
-              body .any])
-    (do [! meta.monad]
-      [ids (monad.all ! (list.repeated (list.size vars) meta.seed))]
-      (in (list (` (let [(,* (|> vars
-                                 (list.zipped_2 ids)
-                                 (list#each (function (_ [id var])
-                                              (list (code.local var)
-                                                    (` (_.var (, (code.text (format "v" (%.nat id)))))))))
-                                 list.together))]
-                     (, body))))))))
-
-(def module_id
-  0)
-
-(def runtime
-  (syntax (_ [declaration (<>.or .local
-                                 (.form (<>.and .local
-                                                      (<>.some .local))))
-              code .any])
-    (do meta.monad
-      [runtime_id meta.seed]
-      (macro.with_symbols [g!_]
-        (let [runtime (code.local (///reference.artifact [..module_id runtime_id]))
-              runtime_name (` (_.var (, (code.text (%.code runtime)))))]
-          (when declaration
-            {.#Left name}
-            (macro.with_symbols [g!_]
-              (let [g!name (code.local name)]
-                (in (list (` (def .public (, g!name)
-                               Var
-                               (, runtime_name)))
-                          
-                          (` (def (, (code.local (format "@" name)))
-                               Statement
-                               (..feature (, runtime_name)
-                                          (function ((, g!_) (, g!name))
-                                            (_.set (, g!name) (, code))))))))))
-            
-            {.#Right [name inputs]}
-            (macro.with_symbols [g!_]
-              (let [g!name (code.local name)
-                    inputsC (list#each code.local inputs)
-                    inputs_typesC (list#each (function.constant (` _.Expression))
-                                             inputs)]
-                (in (list (` (def .public ((, g!name) (,* inputsC))
-                               (-> (,* inputs_typesC) Computation)
-                               (_.apply (list (,* inputsC)) (, runtime_name))))
-                          
-                          (` (def (, (code.local (format "@" name)))
-                               Statement
-                               (..feature (, runtime_name)
-                                          (function ((, g!_) (, g!_))
-                                            (..with_vars [(,* inputsC)]
-                                              (_.function (, g!_) (list (,* inputsC))
-                                                (, code)))))))))))))))))
-
-(def (item index table)
-  (-> Expression Expression Location)
-  (_.item (_.+ (_.int +1) index) table))
-
-(def last_index
-  (|>> _.length (_.- (_.int +1))))
-
-(with_expansions [ (these (all _.then
-                                      (_.set (list lefts) (_.- last_index_right lefts))
-                                      (_.set (list tuple) (..item last_index_right tuple))))]
-  (runtime
-   (tuple//left lefts tuple)
-   (with_vars [last_index_right]
-     (<| (_.while (_.boolean true))
-         (all _.then
-              (_.local/1 last_index_right (..last_index tuple))
-              (_.if (_.> lefts last_index_right)
-                ... No need for recursion
-                (_.return (..item lefts tuple))
-                ... Needs recursion
-                )))))
-
-  (runtime
-   (tuple//right lefts tuple)
-   (with_vars [last_index_right right_index]
-     (<| (_.while (_.boolean true))
-         (all _.then
-              (_.local/1 last_index_right (..last_index tuple))
-              (_.local/1 right_index (_.+ (_.int +1) lefts))
-              (<| (_.if (_.= last_index_right right_index)
-                    (_.return (..item right_index tuple)))
-                  (_.if (_.> last_index_right right_index)
-                    ... Needs recursion.
-                    )
-                  (_.return (_.apply (list tuple
-                                           (_.+ (_.int +1) right_index)
-                                           (_.length tuple)
-                                           (_.int +1)
-                                           (_.array (list)))
-                                     (_.var "table.move"))))
-              )))))
-
-(runtime
- (sum//get sum expected::right? expected::lefts)
- (let [mismatch! (_.return _.nil)
-       actual::lefts (_.the ..variant_tag_field sum)
-       actual::right? (_.the ..variant_flag_field sum)
-       actual::value (_.the ..variant_value_field sum)
-       recur! (all _.then
-                   (_.set (list expected::lefts) (|> expected::lefts
-                                                     (_.- actual::lefts)
-                                                     (_.- (_.int +1))))
-                   (_.set (list sum) actual::value))]
-   (<| (_.while (_.boolean true))
-       (_.if (_.= expected::lefts actual::lefts)
-         (_.if (_.= expected::right? actual::right?)
-           (_.return actual::value)
-           mismatch!))
-       (_.if (_.< expected::lefts actual::lefts)
-         (_.if (_.= ..unit actual::right?)
-           recur!
-           mismatch!))
-       (_.if (_.= ..unit expected::right?)
-         (_.return (variant' (|> actual::lefts
-                                 (_.- expected::lefts)
-                                 (_.- (_.int +1)))
-                             actual::right?
-                             actual::value)))
-       mismatch!)))
-
-(def runtime//adt
-  Statement
-  (all _.then
-       @tuple//left
-       @tuple//right
-       @sum//get
-       ))
-
-(runtime
- (lux//try risky)
- (with_vars [success value]
-   (all _.then
-        (_.let (list success value) (|> risky (_.apply (list ..unit))
-                                        _.return (_.closure (list))
-                                        list _.apply (|> (_.var "pcall"))))
-        (_.if success
-          (_.return (..right value))
-          (_.return (..left value))))))
-
-(runtime
- (lux//program_args raw)
- (with_vars [tail head idx]
-   (all _.then
-        (_.let (list tail) ..none)
-        (<| (_.for_step idx (_.length raw) (_.int +1) (_.int -1))
-            (_.set (list tail) (..some (_.array (list (_.item idx raw)
-                                                      tail)))))
-        (_.return tail))))
-
-(def runtime//lux
-  Statement
-  (all _.then
-       @lux//try
-       @lux//program_args
-       ))
-
-(def cap_shift
-  (_.% (_.int +64)))
-
-(runtime
- (i64//left_shifted param subject)
- (_.return (_.bit_shl (..cap_shift param) subject)))
-
-(runtime
- (i64//right_shifted param subject)
- (let [mask (|> (_.int +1)
-                (_.bit_shl (_.- param (_.int +64)))
-                (_.- (_.int +1)))]
-   (all _.then
-        (_.set (list param) (..cap_shift param))
-        (_.return (|> subject
-                      (_.bit_shr param)
-                      (_.bit_and mask))))))
-
-(runtime
- (i64//division param subject)
- (with_vars [floored]
-   (all _.then
-        (_.local/1 floored (_.// param subject))
-        (let [potentially_floored? (_.< (_.int +0) floored)
-              inexact? (|> subject
-                           (_.% param)
-                           (_.= (_.int +0))
-                           _.not)]
-          (_.if (_.and potentially_floored?
-                       inexact?)
-            (_.return (_.+ (_.int +1) floored))
-            (_.return floored))))))
-
-(runtime
- (i64//remainder param subject)
- (_.return (_.- (|>  subject (..i64//division param) (_.* param))
-                subject)))
-
-(def runtime//i64
-  Statement
-  (all _.then
-       @i64//left_shifted
-       @i64//right_shifted
-       @i64//division
-       @i64//remainder
-       ))
-
-(def (find_byte_index subject param start)
-  (-> Expression Expression Expression Expression)
-  (_.apply (list subject param start (_.boolean #1))
-           (_.var "string.find")))
-
-(def (char_index subject byte_index)
-  (-> Expression Expression Expression)
-  (_.apply (list subject (_.int +1) byte_index)
-           (_.var "utf8.len")))
-
-(def (byte_index subject char_index)
-  (-> Expression Expression Expression)
-  (_.apply (list subject (_.+ (_.int +1) char_index)) (_.var "utf8.offset")))
-
-(def lux_index
-  (-> Expression Expression)
-  (_.- (_.int +1)))
-
-... TODO: Remove this once the Lua compiler becomes self-hosted.
-(def on_rembulan?
-  (_.= (_.string "Lua 5.3")
-       (_.var "_VERSION")))
-
-(runtime
- (text//index subject param start)
- (with_expansions [ (all _.then
-                                   (_.local/1 byte_index (|> start
-                                                             (_.+ (_.int +1))
-                                                             (..find_byte_index subject param)))
-                                   (_.if (_.= _.nil byte_index)
-                                     (_.return ..none)
-                                     (_.return (..some (..lux_index byte_index)))))
-                    (all _.then
-                                 (_.local/1 byte_index (|> start
-                                                           (..byte_index subject)
-                                                           (..find_byte_index subject param)))
-                                 (_.if (_.= _.nil byte_index)
-                                   (_.return ..none)
-                                   (_.return (..some (|> byte_index
-                                                         (..char_index subject)
-                                                         ..lux_index)))))]
-   (with_vars [byte_index]
-     (for @.lua 
-          (_.if ..on_rembulan?
-            
-            )))))
-
-(runtime
- (text//clip text offset length)
- (with_expansions [ (_.return (_.apply (list text (_.+ (_.int +1) offset) (_.+ offset length))
-                                                 (_.var "string.sub")))
-                    (_.return (_.apply (list text
-                                                     (..byte_index text offset)
-                                                     (|> (_.+ offset length)
-                                                         ... (_.+ (_.int +1))
-                                                         (..byte_index text)
-                                                         (_.- (_.int +1))))
-                                               (_.var "string.sub")))]
-   (for @.lua 
-        (_.if ..on_rembulan?
-          
-          ))))
-
-(runtime
- (text//size subject)
- (with_expansions [ (_.return (_.apply (list subject) (_.var "string.len")))
-                    (_.return (_.apply (list subject) (_.var "utf8.len")))]
-   (for @.lua 
-        (_.if ..on_rembulan?
-          
-          ))))
-
-(runtime
- (text//char idx text)
- (with_expansions [ (with_vars [char]
-                                (all _.then
-                                     (_.local/1 char (_.apply (list text idx)
-                                                              (_.var "string.byte")))
-                                     (_.if (_.= _.nil char)
-                                       (_.statement (_.error/1 (_.string "[Lux Error] Cannot get char from text.")))
-                                       (_.return char))))
-                    (with_vars [offset char]
-                              (all _.then
-                                   (_.local/1 offset (_.apply (list text idx) (_.var "utf8.offset")))
-                                   (_.if (_.= _.nil offset)
-                                     (_.statement (_.error/1 (_.string "[Lux Error] Cannot get char from text.")))
-                                     (_.return (_.apply (list text offset) (_.var "utf8.codepoint"))))))]
-   (for @.lua 
-        (_.if ..on_rembulan?
-          
-          ))))
-
-(def runtime//text
-  Statement
-  (all _.then
-       @text//index
-       @text//clip
-       @text//size
-       @text//char
-       ))
-
-(runtime
- (array//write idx value array)
- (all _.then
-      (_.set (list (..item idx array)) value)
-      (_.return array)))
-
-(def runtime//array
-  Statement
-  (all _.then
-       @array//write
-       ))
-
-(def full
-  Statement
-  (all _.then
-       ..runtime//adt
-       ..runtime//lux
-       ..runtime//i64
-       ..runtime//text
-       ..runtime//array
-       ))
-
-(def .public generate
-  (Operation [Registry Output])
-  (do ///////phase.monad
-    [_ (/////generation.execute! ..full)
-     _ (/////generation.save! ..module_id {.#None} ..full)]
-    (in [(|> registry.empty
-             (registry.resource true unit.none)
-             product.right)
-         (sequence.sequence [..module_id
-                             {.#None}
-                             (|> ..full
-                                 _.code
-                                 (at utf8.codec encoded))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/structure.lux
deleted file mode 100644
index c623bd592..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/structure.lux
+++ /dev/null
@@ -1,36 +0,0 @@
-(.require
- [library
-  [lux (.except Tuple Variant)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [meta
-    [target
-     ["_" lua (.only Expression)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" primitive]
-  ["///[1]" ////
-   ["[1][0]" synthesis (.only Synthesis)]
-   [analysis
-    [complex (.only Variant Tuple)]]
-   ["//[1]" ///
-    ["[1][0]" phase (.use "[1]#[0]" monad)]]]])
-
-(def .public (tuple phase archive elemsS+)
-  (Generator (Tuple Synthesis))
-  (when elemsS+
-    {.#End}
-    (///////phase#in (//primitive.text /////synthesis.unit))
-
-    {.#Item singletonS {.#End}}
-    (phase archive singletonS)
-
-    _
-    (|> elemsS+
-        (monad.each ///////phase.monad (phase archive))
-        (///////phase#each _.array))))
-
-(def .public (variant phase archive [lefts right? valueS])
-  (Generator (Variant Synthesis))
-  (///////phase#each (//runtime.variant lefts right?)
-                     (phase archive valueS)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/when.lux
deleted file mode 100644
index 7e9e383ca..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/lua/when.lux
+++ /dev/null
@@ -1,304 +0,0 @@
-(.require
- [library
-  [lux (.except when exec let if)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]
-     ["[0]" set]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" lua (.only Expression Var Statement)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Phase! Generator Generator!)]
-  ["[1][0]" reference]
-  ["[1][0]" primitive]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" synthesis
-     ["[1]/[0]" when]]
-    ["/[1]" //
-     ["[1][0]" synthesis (.only Synthesis Path)
-      [access
-       ["[0]" member (.only Member)]]]
-     ["[1][0]" generation]
-     ["//[1]" ///
-      [reference
-       ["[1][0]" variable (.only Register)]]
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [meta
-       [archive (.only Archive)]]]]]]])
-
-(def .public register
-  (-> Register Var)
-  (|>> (///reference.local //reference.system) as_expected))
-
-(def .public capture
-  (-> Register Var)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def .public (exec expression archive [this that])
-  (Generator [Synthesis Synthesis])
-  (do ///////phase.monad
-    [this (expression archive this)
-     that (expression archive that)]
-    (in (|> (_.array (list this that))
-            (_.item (_.int +2))))))
-
-(def .public (exec! statement expression archive [this that])
-  (Generator! [Synthesis Synthesis])
-  (do [! ///////phase.monad]
-    [this (expression archive this)
-     that (statement expression archive that)
-     $dummy (at ! each _.var (/////generation.symbol "_exec"))]
-    (in (all _.then
-             (_.set (list $dummy) this)
-             that))))
-
-(def .public (let expression archive [valueS register bodyS])
-  (Generator [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)
-     bodyO (expression archive bodyS)]
-    ... TODO: Find some way to do 'let' without paying the price of the closure.
-    (in (|> bodyO
-            _.return
-            (_.closure (list (..register register)))
-            (_.apply (list valueO))))))
-
-(def .public (let! statement expression archive [valueS register bodyS])
-  (Generator! [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)
-     bodyO (statement expression archive bodyS)]
-    (in (all _.then
-             (_.local/1 (..register register) valueO)
-             bodyO))))
-
-(def .public (get expression archive [pathP valueS])
-  (Generator [(List Member) Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)]
-    (in (list#mix (function (_ side source)
-                    (.let [method (.if (the member.#right? side)
-                                    (//runtime.tuple//right (_.int (.int (the member.#lefts side))))
-                                    (//runtime.tuple//left (_.int (.int (the member.#lefts side)))))]
-                      (method source)))
-                  valueO
-                  (list.reversed pathP)))))
-
-(def .public (if expression archive [testS thenS elseS])
-  (Generator [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [testO (expression archive testS)
-     thenO (expression archive thenS)
-     elseO (expression archive elseS)]
-    (in (|> (_.if testO
-              (_.return thenO)
-              (_.return elseO))
-            (_.closure (list))
-            (_.apply (list))))))
-
-(def .public (if! statement expression archive [testS thenS elseS])
-  (Generator! [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [testO (expression archive testS)
-     thenO (statement expression archive thenS)
-     elseO (statement expression archive elseS)]
-    (in (_.if testO
-          thenO
-          elseO))))
-
-(def @savepoint (_.var "lux_pm_savepoint"))
-(def @cursor (_.var "lux_pm_cursor"))
-(def @temp (_.var "lux_pm_temp"))
-
-(def (push! value)
-  (-> Expression Statement)
-  (_.statement (|> (_.var "table.insert") (_.apply (list @cursor value)))))
-
-(def peek_and_pop
-  Expression
-  (|> (_.var "table.remove") (_.apply (list @cursor))))
-
-(def pop!
-  Statement
-  (_.statement ..peek_and_pop))
-
-(def peek
-  Expression
-  (_.item (_.length @cursor) @cursor))
-
-(def save!
-  Statement
-  (_.statement (|> (_.var "table.insert")
-                   (_.apply (list @savepoint
-                                  (_.apply (list @cursor
-                                                 (_.int +1)
-                                                 (_.length @cursor)
-                                                 (_.int +1)
-                                                 (_.table (list)))
-                                           (_.var "table.move")))))))
-
-(def restore!
-  Statement
-  (_.set (list @cursor) (|> (_.var "table.remove") (_.apply (list @savepoint)))))
-
-(def fail! _.break)
-
-(with_template [ ]
-  [(def ( simple? idx)
-     (-> Bit Nat Statement)
-     (all _.then
-          (_.set (list @temp) (//runtime.sum//get ..peek 
-                                                  (|> idx .int _.int)))
-          (.if simple?
-            (_.when (_.= _.nil @temp)
-              fail!)
-            (_.if (_.= _.nil @temp)
-              fail!
-              (..push! @temp)))))]
-
-  [left_choice  _.nil]
-  [right_choice //runtime.unit]
-  )
-
-(def (alternation pre! post!)
-  (-> Statement Statement Statement)
-  (all _.then
-       (_.while (_.boolean true)
-                (all _.then
-                     ..save!
-                     pre!))
-       (all _.then
-            ..restore!
-            post!)))
-
-(def (pattern_matching' statement expression archive)
-  (-> Phase! Phase Archive Path (Operation Statement))
-  (function (again pathP)
-    (.when pathP
-      {/////synthesis.#Then bodyS}
-      (statement expression archive bodyS)
-
-      {/////synthesis.#Pop}
-      (///////phase#in ..pop!)
-
-      {/////synthesis.#Bind register}
-      (///////phase#in (_.local/1 (..register register) ..peek))
-
-      {/////synthesis.#Bit_Fork when thenP elseP}
-      (do [! ///////phase.monad]
-        [then! (again thenP)
-         else! (.when elseP
-                 {.#Some elseP}
-                 (again elseP)
-
-                 {.#None}
-                 (in ..fail!))]
-        (in (.if when
-              (_.if ..peek
-                then!
-                else!)
-              (_.if ..peek
-                else!
-                then!))))
-
-      (^.with_template [ ]
-        [{ item}
-         (do [! ///////phase.monad]
-           [clauses (monad.each ! (function (_ [match then])
-                                    (do !
-                                      [then! (again then)]
-                                      (in [(_.= (|> match )
-                                                ..peek)
-                                           then!])))
-                                {.#Item item})]
-           (in (list#mix (function (_ [when then!] else!)
-                           (_.if when then! else!))
-                         ..fail!
-                         clauses)))])
-      ([/////synthesis.#I64_Fork (<| _.int .int)]
-       [/////synthesis.#F64_Fork _.float]
-       [/////synthesis.#Text_Fork _.string])
-
-      (^.with_template [  ]
-        [( idx)
-         (///////phase#in ( false idx))
-
-         ( idx nextP)
-         (///////phase#each (_.then ( true idx)) (again nextP))])
-      ([/////synthesis.side/left  /////synthesis.simple_left_side  ..left_choice]
-       [/////synthesis.side/right /////synthesis.simple_right_side ..right_choice])
-
-      (/////synthesis.member/left 0)
-      (///////phase#in (|> ..peek (_.item (_.int +1)) ..push!))
-      
-      (^.with_template [ ]
-        [( lefts)
-         (///////phase#in (|> ..peek ( (_.int (.int lefts))) ..push!))])
-      ([/////synthesis.member/left  //runtime.tuple//left]
-       [/////synthesis.member/right //runtime.tuple//right])
-
-      (/////synthesis.!bind_top register thenP)
-      (do ///////phase.monad
-        [then! (again thenP)]
-        (///////phase#in (all _.then
-                              (_.local/1 (..register register) ..peek_and_pop)
-                              then!)))
-
-      (^.with_template [ ]
-        [( preP postP)
-         (do ///////phase.monad
-           [pre! (again preP)
-            post! (again postP)]
-           (in ( pre! post!)))])
-      ([/////synthesis.path/seq _.then]
-       [/////synthesis.path/alt ..alternation]))))
-
-(def (pattern_matching statement expression archive pathP)
-  (-> Phase! Phase Archive Path (Operation Statement))
-  (do ///////phase.monad
-    [pattern_matching! (pattern_matching' statement expression archive pathP)]
-    (in (all _.then
-             (_.while (_.boolean true)
-                      pattern_matching!)
-             (_.statement (|> (_.var "error") (_.apply (list (_.string ////synthesis/when.pattern_matching_error)))))))))
-
-(def .public dependencies
-  (-> Path (List Var))
-  (|>> ////synthesis/when.storage
-       (the ////synthesis/when.#dependencies)
-       set.list
-       (list#each (function (_ variable)
-                    (.when variable
-                      {///////variable.#Local register}
-                      (..register register)
-                      
-                      {///////variable.#Foreign register}
-                      (..capture register))))))
-
-(def .public (when! statement expression archive [valueS pathP])
-  (Generator! [Synthesis Path])
-  (do ///////phase.monad
-    [stack_init (expression archive valueS)
-     pattern_matching! (pattern_matching statement expression archive pathP)]
-    (in (all _.then
-             (_.local (list @temp))
-             (_.local/1 @cursor (_.array (list stack_init)))
-             (_.local/1 @savepoint (_.array (list)))
-             pattern_matching!))))
-
-(def .public (when statement expression archive [valueS pathP])
-  (-> Phase! (Generator [Synthesis Path]))
-  (|> [valueS pathP]
-      (..when! statement expression archive)
-      (at ///////phase.monad each
-          (|>> (_.closure (list))
-               (_.apply (list))))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php.lux
deleted file mode 100644
index b78a425d9..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php.lux
+++ /dev/null
@@ -1,110 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" exception]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" php]]]]]
- ["[0]" /
-  [runtime (.only Phase Phase!)]
-  ["[1][0]" primitive]
-  ["[1][0]" structure]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["[1][0]" loop]
-  ["[1][0]" function]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" extension]
-    ["/[1]" //
-     [analysis (.only)]
-     ["[1][0]" synthesis]
-     ["//[1]" ///
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [reference (.only)
-       [variable (.only)]]]]]]])
-
-(def (statement expression archive synthesis)
-  Phase!
-  (when synthesis
-    (^.with_template []
-      [( value)
-       (//////phase#each _.return (expression archive synthesis))])
-    ([////synthesis.bit]
-     [////synthesis.i64]
-     [////synthesis.f64]
-     [////synthesis.text]
-     [////synthesis.variant]
-     [////synthesis.tuple]
-     [////synthesis.branch/get]
-     [////synthesis.function/apply])
-
-    (^.with_template []
-      [{ value}
-       (//////phase#each _.return (expression archive synthesis))])
-    ([////synthesis.#Reference]
-     [////synthesis.#Extension])
-
-    (////synthesis.branch/when when)
-    (/when.when! statement expression archive when)
-
-    (^.with_template [ ]
-      [( value)
-       ( statement expression archive value)])
-    ([////synthesis.branch/let /when.let!]
-     [////synthesis.branch/if /when.if!]
-     [////synthesis.loop/scope /loop.scope!]
-     [////synthesis.loop/again /loop.again!])
-
-    (////synthesis.function/abstraction abstraction)
-    (//////phase#each _.return (/function.function statement expression archive abstraction))
-    ))
-
-(exception.def .public cannot_recur_as_an_expression)
-
-(def .public (expression archive synthesis)
-  Phase
-  (when synthesis
-    (^.with_template [ ]
-      [( value)
-       (//////phase#in ( value))])
-    ([////synthesis.bit  /primitive.bit]
-     [////synthesis.i64  /primitive.i64]
-     [////synthesis.f64  /primitive.f64]
-     [////synthesis.text /primitive.text])
-
-    {////synthesis.#Reference value}
-    (//reference.reference /reference.system archive value)
-
-    (^.with_template [ ]
-      [( value)
-       ( expression archive value)])
-    ([////synthesis.variant /structure.variant]
-     [////synthesis.tuple /structure.tuple]
-     [////synthesis.branch/let /when.let]
-     [////synthesis.branch/if /when.if]
-     [////synthesis.branch/get /when.get]
-     [////synthesis.function/apply /function.apply])
-
-    (^.with_template [ ]
-      [( value)
-       ( statement expression archive value)])
-    ([////synthesis.branch/when /when.when]
-     [////synthesis.loop/scope /loop.scope]
-     [////synthesis.function/abstraction /function.function])
-
-    (////synthesis.loop/again _)
-    (//////phase.except ..cannot_recur_as_an_expression [])
-
-    {////synthesis.#Extension extension}
-    (///extension.apply archive expression extension)))
-
-(def .public generate
-  Phase
-  ..expression)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/extension.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/extension.lux
deleted file mode 100644
index 1d1c8473f..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/extension.lux
+++ /dev/null
@@ -1,14 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [data
-    [collection
-     ["[0]" dictionary]]]]]
- [//
-  [runtime (.only Bundle)]]
- [/
-  ["[0]" common]])
-
-(def .public bundle
-  Bundle
-  common.bundle)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/extension/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/extension/common.lux
deleted file mode 100644
index 26e582da3..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/extension/common.lux
+++ /dev/null
@@ -1,113 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    ["[0]" text]
-    [number
-     ["f" frac]]
-    [collection
-     ["[0]" dictionary]]]
-   [meta
-    [target
-     ["_" php (.only Expression)]]]]]
- ["[0]" ///
-  ["[1][0]" runtime (.only Operation Phase Handler Bundle)]
-  ["[1][0]" primitive]
-  [//
-   [extension (.only Nullary Unary Binary Trinary
-                     nullary unary binary trinary)]
-   [//
-    [extension
-     ["[0]" bundle]]]]])
-
-(def lux_procs
-  Bundle
-  (|> bundle.empty
-      (bundle.install "is" (binary (product.uncurried _.=)))
-      (bundle.install "try" (unary ///runtime.lux//try))))
-
-(def i64_procs
-  Bundle
-  (<| (bundle.prefix "i64")
-      (|> bundle.empty
-          (bundle.install "and" (binary (product.uncurried _.bit_and)))
-          (bundle.install "or" (binary (product.uncurried _.bit_or)))
-          (bundle.install "xor" (binary (product.uncurried _.bit_xor)))
-          (bundle.install "left-shift" (binary (product.uncurried _.bit_shl)))
-          (bundle.install "logical-right-shift" (binary (product.uncurried ///runtime.i64//logic_right_shift)))
-          (bundle.install "arithmetic-right-shift" (binary (product.uncurried _.bit_shr)))
-          (bundle.install "=" (binary (product.uncurried _.=)))
-          (bundle.install "+" (binary (product.uncurried _.+)))
-          (bundle.install "-" (binary (product.uncurried _.-)))
-          )))
-
-(def int_procs
-  Bundle
-  (<| (bundle.prefix "int")
-      (|> bundle.empty
-          (bundle.install "<" (binary (product.uncurried _.<)))
-          (bundle.install "*" (binary (product.uncurried _.*)))
-          (bundle.install "/" (binary (product.uncurried _./)))
-          (bundle.install "%" (binary (product.uncurried _.%)))
-          (bundle.install "frac" (unary _.floatval/1))
-          (bundle.install "char" (unary _.chr/1)))))
-
-(def frac_procs
-  Bundle
-  (<| (bundle.prefix "frac")
-      (|> bundle.empty
-          (bundle.install "+" (binary (product.uncurried _.+)))
-          (bundle.install "-" (binary (product.uncurried _.-)))
-          (bundle.install "*" (binary (product.uncurried _.*)))
-          (bundle.install "/" (binary (product.uncurried _./)))
-          (bundle.install "%" (binary (product.uncurried _.%)))
-          (bundle.install "=" (binary (product.uncurried _.=)))
-          (bundle.install "<" (binary (product.uncurried _.<)))
-          (bundle.install "int" (unary _.intval/1))
-          (bundle.install "encode" (unary _.strval/1))
-          (bundle.install "decode" (unary (|>> _.floatval/1 ///runtime.some)))
-          )))
-
-(def (text//index [startO partO textO])
-  (Trinary (Expression Any))
-  (///runtime.text//index textO partO startO))
-
-(def text_procs
-  Bundle
-  (<| (bundle.prefix "text")
-      (|> bundle.empty
-          (bundle.install "=" (binary (product.uncurried _.=)))
-          (bundle.install "<" (binary (product.uncurried _.<)))
-          (bundle.install "concat" (binary (product.uncurried _.concat)))
-          (bundle.install "index" (trinary text//index))
-          (bundle.install "size" (unary _.strlen/1))
-          (bundle.install "char" (binary (function (text//char [text idx])
-                                           (|> text (_.item idx) _.ord/1))))
-          (bundle.install "clip" (trinary (function (text//clip [from to text])
-                                            (_.substr/3 [text from (_.- from to)]))))
-          )))
-
-(def io_procs
-  Bundle
-  (<| (bundle.prefix "io")
-      (|> bundle.empty
-          (bundle.install "log" (unary (|>> (_.concat (_.string text.new_line)) _.print/1)))
-          (bundle.install "error" (unary ///runtime.io//throw!))
-          (bundle.install "exit" (unary _.exit/1))
-          (bundle.install "current-time" (nullary (|>> _.time/0 (_.* (_.int +1,000))))))))
-
-(def .public bundle
-  Bundle
-  (<| (bundle.prefix "lux")
-      (|> lux_procs
-          (dictionary.composite i64_procs)
-          (dictionary.composite int_procs)
-          (dictionary.composite frac_procs)
-          (dictionary.composite text_procs)
-          (dictionary.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/function.lux
deleted file mode 100644
index e4195f3d4..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/function.lux
+++ /dev/null
@@ -1,117 +0,0 @@
-(.require
- [library
-  [lux (.except Global function)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    pipe]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [meta
-    [target
-     ["_" php (.only Var Global Expression Argument Label Statement)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Phase! Generator)]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["//[1]" ///
-    [analysis (.only Variant Tuple Abstraction Application Analysis)]
-    [synthesis (.only Synthesis)]
-    ["[1][0]" generation (.only Context)]
-    ["//[1]" ///
-     [arity (.only Arity)]
-     ["[1][0]" phase (.use "[1]#[0]" monad)]
-     [reference
-      [variable (.only Register Variable)]]]]]])
-
-(def .public (apply expression archive [functionS argsS+])
-  (Generator (Application Synthesis))
-  (do [! ///////phase.monad]
-    [functionG (expression archive functionS)
-     argsG+ (monad.each ! (expression archive) argsS+)]
-    (in (_.apply' argsG+ functionG))))
-
-(def capture
-  (-> Register Var)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def input
-  (|>> ++ //when.register))
-
-(def (@scope function_name)
-  (-> Context Label)
-  (_.label (format (///reference.artifact function_name) "_scope")))
-
-(def (with_closure inits @selfG @selfL body!)
-  (-> (List Expression) Global Var Statement [Statement Expression])
-  (when inits
-    {.#End}
-    [(all _.then
-          (_.set! @selfL (_.closure (list (_.reference @selfL)) (list) body!))
-          (_.set! @selfG @selfL))
-     @selfG]
-
-    _
-    (let [@inits (|> (list.enumeration inits)
-                     (list#each (|>> product.left ..capture)))]
-      [(_.set! @selfG (_.closure (list) (list#each _.parameter @inits)
-                                 (all _.then
-                                      (_.set! @selfL (_.closure (list.partial (_.reference @selfL) (list#each _.reference @inits))
-                                                                (list)
-                                                                body!))
-                                      (_.return @selfL))))
-       (_.apply inits @selfG)])))
-
-(def .public (function statement expression archive [environment arity bodyS])
-  (-> Phase! (Generator (Abstraction Synthesis)))
-  (do [! ///////phase.monad]
-    [[function_name body!] (/////generation.with_new_context archive
-                             (do !
-                               [@scope (at ! each ..@scope
-                                           (/////generation.context archive))]
-                               (/////generation.with_anchor [1 @scope]
-                                 (statement expression archive bodyS))))
-     closureG+ (monad.each ! (expression archive) environment)
-     .let [@curried (_.var "curried")
-           arityG (|> arity .int _.int)
-           @num_args (_.var "num_args")
-           @scope (..@scope function_name)
-           @selfG (_.global (///reference.artifact function_name))
-           @selfL (_.var (///reference.artifact function_name))
-           initialize_self! (_.set! (//when.register 0) @selfL)
-           initialize! (list#mix (.function (_ post pre!)
-                                   (all _.then
-                                        pre!
-                                        (_.set! (..input post) (_.item (|> post .int _.int) @curried))))
-                                 initialize_self!
-                                 (list.indices arity))]
-     .let [[definition instantiation] (..with_closure closureG+ @selfG @selfL
-                                        (all _.then
-                                             (_.set! @num_args (_.func_num_args/0 []))
-                                             (_.set! @curried (_.func_get_args/0 []))
-                                             (_.cond (list [(|> @num_args (_.=== arityG))
-                                                            (all _.then
-                                                                 initialize!
-                                                                 (_.set_label @scope)
-                                                                 body!)]
-                                                           [(|> @num_args (_.> arityG))
-                                                            (let [arity_inputs (_.array_slice/3 [@curried (_.int +0) arityG])
-                                                                  extra_inputs (_.array_slice/2 [@curried arityG])
-                                                                  next (_.call_user_func_array/2 [@selfL arity_inputs])]
-                                                              (_.return (_.call_user_func_array/2 [next extra_inputs])))])
-                                                     ... (|> @num_args (_.< arityG))
-                                                     (let [@missing (_.var "missing")]
-                                                       (_.return (<| (_.closure (list (_.reference @selfL) (_.reference @curried)) (list))
-                                                                     (all _.then
-                                                                          (_.set! @missing (_.func_get_args/0 []))
-                                                                          (_.return (_.call_user_func_array/2 [@selfL (_.array_merge/+ @curried (list @missing))])))))))
-                                             ))]
-     _ (/////generation.execute! definition)
-     _ (/////generation.save! (product.right function_name) definition)]
-    (in instantiation)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/loop.lux
deleted file mode 100644
index b4c3804e8..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/loop.lux
+++ /dev/null
@@ -1,125 +0,0 @@
-(.require
- [library
-  [lux (.except Scope)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]
-     ["[0]" set (.only Set)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     ["_" php (.only Var Expression Label Statement)]]]]]
- ["[0]" //
-  [runtime (.only Operation Phase Phase! Generator Generator!)]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    [synthesis
-     ["[0]" when]]
-    ["/[1]" //
-     ["[0]" synthesis (.only Scope Synthesis)]
-     ["[1][0]" generation]
-     ["//[1]" ///
-      ["[1][0]" phase]
-      [meta
-       [archive (.only Archive)]]
-      [reference
-       [variable (.only Register)]]]]]]])
-
-(def @scope
-  (-> Nat Label)
-  (|>> %.nat (format "scope") _.label))
-
-(def (setup offset bindings body)
-  (-> Register (List Expression) Statement Statement)
-  ... TODO: There is a bug in the way the variables are updated. Do it like it's done in either JS or Lua.
-  (|> bindings
-      list.enumeration
-      (list#each (function (_ [register value])
-                   (let [variable (//when.register (n.+ offset register))]
-                     (_.set! variable value))))
-      list.reversed
-      (list#mix _.then body)))
-
-(def .public (scope! statement expression archive [start initsS+ bodyS])
-  (Generator! (Scope Synthesis))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (statement expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [@scope (at ! each ..@scope /////generation.next)
-       initsO+ (monad.each ! (expression archive) initsS+)
-       body! (/////generation.with_anchor [start @scope]
-               (statement expression archive bodyS))]
-      (in (..setup start initsO+
-                   (all _.then
-                        (_.set_label @scope)
-                        body!))))))
-
-(def .public (scope statement expression archive [start initsS+ bodyS])
-  (-> Phase! (Generator (Scope Synthesis)))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [[[loop_module loop_artifact] scope!] (/////generation.with_new_context archive
-                                              (..scope! statement expression archive [start initsS+ bodyS]))
-       .let [locals (|> initsS+
-                        list.enumeration
-                        (list#each (|>> product.left (n.+ start) //when.register _.parameter)))
-             @loop (_.constant (///reference.artifact [loop_module loop_artifact]))
-             loop_variables (set.of_list _.hash (list#each product.right locals))
-             referenced_variables (is (-> Synthesis (Set Var))
-                                      (|>> synthesis.path/then
-                                           //when.dependencies
-                                           (set.of_list _.hash)))
-             [declaration instantiation] (is [Statement Expression]
-                                             (when (|> (list#each referenced_variables initsS+)
-                                                       (list#mix set.union (referenced_variables bodyS))
-                                                       (set.difference loop_variables)
-                                                       set.list)
-                                               {.#End}
-                                               [(_.define_function @loop (list) scope!)
-                                                @loop]
-
-                                               foreigns
-                                               [(<| (_.define_function @loop (list#each _.parameter foreigns))
-                                                    (_.return (_.closure (list#each _.parameter foreigns) (list) scope!)))
-                                                (_.apply foreigns @loop)]))]
-       _ (/////generation.execute! declaration)
-       _ (/////generation.save! loop_artifact declaration)]
-      (in (_.apply (list) instantiation)))))
-
-... TODO: Stop using a constant hard-coded variable. Generate a new one each time.
-(def @temp
-  (_.var "lux_again_values"))
-
-(def .public (again! statement expression archive argsS+)
-  (Generator! (List Synthesis))
-  (do [! ///////phase.monad]
-    [[offset @scope] /////generation.anchor
-     argsO+ (monad.each ! (expression archive) argsS+)]
-    (in (all _.then
-             (_.set! @temp (_.array/* argsO+))
-             (..setup offset
-                      (|> argsO+
-                          list.enumeration
-                          (list#each (function (_ [idx _])
-                                       (_.item (_.int (.int idx)) @temp))))
-                      (_.go_to @scope))))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/primitive.lux
deleted file mode 100644
index eaf53dada..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/primitive.lux
+++ /dev/null
@@ -1,31 +0,0 @@
-(.require
- [library
-  [lux (.except i64)
-   [math
-    [number
-     ["[0]" frac]]]
-   [meta
-    [target
-     ["_" php (.only Literal Expression)]]]]]
- ["[0]" //
-  ["[1][0]" runtime]])
-
-(def .public bit
-  (-> Bit Literal)
-  _.bool)
-
-(def .public (i64 value)
-  (-> (I64 Any) Expression)
-  (let [h32 (|> value //runtime.high .int _.int)
-        l32 (|> value //runtime.low .int _.int)]
-    (|> h32
-        (_.bit_shl (_.int +32))
-        (_.bit_or l32))))
-
-(def .public f64
-  (-> Frac Literal)
-  _.float)
-
-(def .public text
-  (-> Text Literal)
-  _.string)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/reference.lux
deleted file mode 100644
index 2dbdfad8a..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/reference.lux
+++ /dev/null
@@ -1,14 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [meta
-    [target
-     ["_" php (.only Expression)]]]]]
- [///
-  [reference (.only System)]])
-
-(def .public system
-  (System Expression)
-  (implementation
-   (def constant _.global)
-   (def variable _.var)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/runtime.lux
deleted file mode 100644
index b1d1abe87..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/runtime.lux
+++ /dev/null
@@ -1,635 +0,0 @@
-(.require
- [library
-  [lux (.except Location)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.use "[1]#[0]" hash)
-     ["%" \\format (.only format)]
-     [encoding
-      ["[0]" utf8]]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" sequence]]]
-   [math
-    [number (.only hex)
-     ["[0]" i64]]]
-   ["[0]" meta (.only)
-    ["[0]" code (.only)
-     ["<[1]>" \\parser]]
-    ["[0]" macro (.only)
-     [syntax (.only syntax)]]
-    ["@" target (.only)
-     ["_" php (.only Expression Label Constant Var Computation Literal Statement)]]]]]
- ["[0]" ///
-  ["[1][0]" reference]
-  ["//[1]" ///
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["[1][0]" generation]
-   ["//[1]" /// (.only)
-    ["[1][0]" phase]
-    [reference
-     [variable (.only Register)]]
-    [meta
-     [archive (.only Output Archive)
-      ["[0]" artifact (.only Registry)]]]]]])
-
-(with_template [ ]
-  [(type .public 
-     ( [Nat Label] Expression Statement))]
-
-  [Operation /////generation.Operation]
-  [Phase /////generation.Phase]
-  [Handler /////generation.Handler]
-  [Bundle /////generation.Bundle]
-  )
-
-(type .public (Generator i)
-  (-> Phase Archive i (Operation Expression)))
-
-(type .public Phase!
-  (-> Phase Archive Synthesis (Operation Statement)))
-
-(type .public (Generator! i)
-  (-> Phase! Phase Archive i (Operation Statement)))
-
-(def .public unit
-  (_.string /////synthesis.unit))
-
-(def (flag value)
-  (-> Bit Literal)
-  (if value
-    ..unit
-    _.null))
-
-(def (feature name definition)
-  (-> Constant (-> Constant Statement) Statement)
-  (definition name))
-
-(def .public with_vars
-  (syntax (_ [vars (.tuple (<>.some .local))
-              body .any])
-    (do [! meta.monad]
-      [ids (monad.all ! (list.repeated (list.size vars) meta.seed))]
-      (in (list (` (let [(,* (|> vars
-                                 (list.zipped_2 ids)
-                                 (list#each (function (_ [id var])
-                                              (list (code.local var)
-                                                    (` (_.var (, (code.text (format "v" (%.nat id)))))))))
-                                 list.together))]
-                     (, body))))))))
-
-(def module_id
-  0)
-
-(def runtime
-  (syntax (_ [declaration (<>.or .local
-                                 (.form (<>.and .local
-                                                      (<>.some .local))))
-              code .any])
-    (do meta.monad
-      [runtime_id meta.seed]
-      (macro.with_symbols [g!_]
-        (let [runtime (code.local (///reference.artifact [..module_id runtime_id]))
-              runtime_name (` (_.constant (, (code.text (%.code runtime)))))]
-          (when declaration
-            {.#Left name}
-            (macro.with_symbols [g!_]
-              (let [g!name (code.local name)]
-                (in (list (` (def .public (, g!name)
-                               Var
-                               (, runtime_name)))
-                          
-                          (` (def (, (code.local (format "@" name)))
-                               Statement
-                               (..feature (, runtime_name)
-                                          (function ((, g!_) (, g!name))
-                                            (_.define (, g!name) (, code))))))))))
-            
-            {.#Right [name inputs]}
-            (macro.with_symbols [g!_]
-              (let [g!name (code.local name)
-                    inputsC (list#each code.local inputs)
-                    inputs_typesC (list#each (function.constant (` _.Expression))
-                                             inputs)]
-                (in (list (` (def .public ((, g!name) (,* inputsC))
-                               (-> (,* inputs_typesC) Computation)
-                               (_.apply (list (,* inputsC)) (, runtime_name))))
-                          
-                          (` (def (, (code.local (format "@" name)))
-                               Statement
-                               (..feature (, runtime_name)
-                                          (function ((, g!_) (, g!_))
-                                            (..with_vars [(,* inputsC)]
-                                              (_.define_function (, g!_)
-                                                                 (list (,* (list#each (|>> (,) [false] (`)) inputsC)))
-                                                                 (, code)))))))))))))))))
-
-(runtime
- (io//log! message)
- (all _.then
-      (_.echo message)
-      (_.echo (_.string text.new_line))
-      (_.return ..unit)))
-
-(runtime
- (io//throw! message)
- (all _.then
-      (_.throw (_.new (_.constant "Exception") (list message)))
-      (_.return ..unit)))
-
-(def runtime//io
-  Statement
-  (all _.then
-       @io//log!
-       @io//throw!
-       ))
-
-(def .public tuple_size_field
-  "_lux_size")
-
-(def tuple_size
-  (_.item (_.string ..tuple_size_field)))
-
-(def jphp?
-  (_.=== (_.string "5.6.99") (_.phpversion/0 [])))
-
-(runtime
- (array//length array)
- ... TODO: Get rid of this as soon as JPHP is no longer necessary.
- (_.if ..jphp?
-   (_.return (..tuple_size array))
-   (_.return (_.count/1 array))))
-
-(runtime
- (array//write idx value array)
- (all _.then
-      (_.set! (_.item idx array) value)
-      (_.return array)))
-
-(def runtime//array
-  Statement
-  (all _.then
-       @array//length
-       @array//write
-       ))
-
-(def jphp_last_index
-  (|>> ..tuple_size (_.- (_.int +1))))
-
-(def normal_last_index
-  (|>> _.count/1 (_.- (_.int +1))))
-
-(with_expansions [ (these (all _.then
-                                      (_.set! lefts (_.- last_index_right lefts))
-                                      (_.set! tuple (_.item last_index_right tuple))))]
-  (runtime
-   (tuple//make size values)
-   (_.if ..jphp?
-     (all _.then
-          (_.set! (..tuple_size values) size)
-          (_.return values))
-     ... https://www.php.net/manual/en/language.operators.assignment.php
-     ... https://www.php.net/manual/en/language.references.php
-     ... https://www.php.net/manual/en/functions.arguments.php
-     ... https://www.php.net/manual/en/language.oop5.references.php
-     ... https://www.php.net/manual/en/class.arrayobject.php
-     (_.return (_.new (_.constant "ArrayObject") (list values)))))
-
-  (runtime
-   (tuple//left lefts tuple)
-   (with_vars [last_index_right]
-     (<| (_.while (_.bool true))
-         (all _.then
-              (_.if ..jphp?
-                (_.set! last_index_right (..jphp_last_index tuple))
-                (_.set! last_index_right (..normal_last_index tuple)))
-              (_.if (_.> lefts last_index_right)
-                ... No need for recursion
-                (_.return (_.item lefts tuple))
-                ... Needs recursion
-                )))))
-
-  ... TODO: Get rid of this as soon as JPHP is no longer necessary.
-  (runtime
-   (tuple//slice offset input)
-   (with_vars [size index output]
-     (all _.then
-          (_.set! size (..array//length input))
-          (_.set! index (_.int +0))
-          (_.set! output (_.array/* (list)))
-          (<| (_.while (|> index (_.+ offset) (_.< size)))
-              (all _.then
-                   (_.set! (_.item index output) (_.item (_.+ offset index) input))
-                   (_.set! index (_.+ (_.int +1) index))
-                   ))
-          (_.return (..tuple//make (_.- offset size) output))
-          )))
-
-  (runtime
-   (tuple//right lefts tuple)
-   (with_vars [last_index_right right_index]
-     (<| (_.while (_.bool true))
-         (all _.then
-              (_.if ..jphp?
-                (_.set! last_index_right (..jphp_last_index tuple))
-                (_.set! last_index_right (..normal_last_index tuple)))
-              (_.set! right_index (_.+ (_.int +1) lefts))
-              (_.cond (list [(_.=== last_index_right right_index)
-                             (_.return (_.item right_index tuple))]
-                            [(_.> last_index_right right_index)
-                             ... Needs recursion.
-                             ])
-                      (_.if ..jphp?
-                        (_.return (..tuple//make (_.- right_index (..tuple_size tuple))
-                                                 (..tuple//slice right_index tuple)))
-                        (_.return (..tuple//make (_.- right_index (_.count/1 tuple))
-                                                 (_.array_slice/2 [(_.do "getArrayCopy" (list) tuple) right_index])))))
-              )))))
-
-(def .public variant_tag_field "_lux_tag")
-(def .public variant_flag_field "_lux_flag")
-(def .public variant_value_field "_lux_value")
-
-(runtime
- (sum//make tag last? value)
- (_.return (_.array/** (list [(_.string ..variant_tag_field) tag]
-                             [(_.string ..variant_flag_field) last?]
-                             [(_.string ..variant_value_field) value]))))
-
-(def .public (variant tag last? value)
-  (-> Nat Bit Expression Computation)
-  (sum//make (_.int (.int tag))
-             (..flag last?)
-             value))
-
-(def .public none
-  Computation
-  (..variant 0 #0 ..unit))
-
-(def .public some
-  (-> Expression Computation)
-  (..variant 1 #1))
-
-(def .public left
-  (-> Expression Computation)
-  (..variant 0 #0))
-
-(def .public right
-  (-> Expression Computation)
-  (..variant 1 #1))
-
-(runtime
- (sum//get sum wantsLast wantedTag)
- (let [no_match! (_.return _.null)
-       sum_tag (_.item (_.string ..variant_tag_field) sum)
-       ... sum_tag (_.item (_.int +0) sum)
-       sum_flag (_.item (_.string ..variant_flag_field) sum)
-       ... sum_flag (_.item (_.int +1) sum)
-       sum_value (_.item (_.string ..variant_value_field) sum)
-       ... sum_value (_.item (_.int +2) sum)
-       is_last? (_.=== ..unit sum_flag)
-       test_recursion! (_.if is_last?
-                         ... Must recurse.
-                         (all _.then
-                              (_.set! wantedTag (_.- sum_tag wantedTag))
-                              (_.set! sum sum_value))
-                         no_match!)]
-   (<| (_.while (_.bool true))
-       (_.cond (list [(_.=== sum_tag wantedTag)
-                      (_.if (_.=== wantsLast sum_flag)
-                        (_.return sum_value)
-                        test_recursion!)]
-
-                     [(_.< wantedTag sum_tag)
-                      test_recursion!]
-
-                     [(_.=== ..unit wantsLast)
-                      (_.return (sum//make (_.- wantedTag sum_tag) sum_flag sum_value))])
-               no_match!))))
-
-(def runtime//adt
-  Statement
-  (all _.then
-       @tuple//make
-       @tuple//left
-       @tuple//slice
-       @tuple//right
-       @sum//make
-       @sum//get
-       ))
-
-(runtime
- (lux//try op)
- (with_vars [value]
-   (_.try (all _.then
-               (_.set! value (_.apply/1 op [..unit]))
-               (_.return (..right value)))
-          (list (with_vars [error]
-                  [_.#class (_.constant "Exception")
-                   _.#exception error
-                   _.#handler (_.return (..left (_.do "getMessage" (list) error)))])))))
-
-(runtime
- (lux//program_args inputs)
- (with_vars [head tail]
-   (all _.then
-        (_.set! tail ..none)
-        (<| (_.for_each (_.array_reverse/1 inputs) head)
-            (_.set! tail (..some (_.array/* (list head tail)))))
-        (_.return tail))))
-
-(def runtime//lux
-  Statement
-  (all _.then
-       @lux//try
-       @lux//program_args
-       ))
-
-(def .public high
-  (-> (I64 Any) (I64 Any))
-  (i64.right_shifted 32))
-
-(def .public low
-  (-> (I64 Any) (I64 Any))
-  (let [mask (-- (i64.left_shifted 32 1))]
-    (|>> (i64.and mask))))
-
-(runtime
- (i64//right_shifted param subject)
- (let [... The mask has to be calculated this way instead of in a more straightforward way
-       ... because in some languages, 1<<63 = max_negative_value
-       ... and max_negative_value-1 = max_positive_value.
-       ... And bitwise, max_positive_value works out to the mask that is desired when param = 0.
-       ... However, in PHP, max_negative_value-1 underflows and gets cast into a float.
-       ... And this messes up the computation.
-       ... This slightly more convoluted calculation avoids that problem.
-       mask (|> (_.int +1)
-                (_.bit_shl (_.- param (_.int +63)))
-                (_.- (_.int +1))
-                (_.bit_shl (_.int +1))
-                (_.+ (_.int +1)))]
-   (all _.then
-        (_.set! param (_.% (_.int +64) param))
-        (_.if (_.=== (_.int +0) param)
-          (_.return subject)
-          (_.return (|> subject
-                        (_.bit_shr param)
-                        (_.bit_and mask)))))))
-
-(runtime
- (i64//char code)
- (_.if ..jphp?
-   (_.return (_.chr/1 [code]))
-   (_.return (|> code
-                 [(_.string "V")]
-                 _.pack/2
-                 [(_.string "UTF-32LE") (_.string "UTF-8")]
-                 _.iconv/3))))
-
-(runtime
- (i64//+ parameter subject)
- (let [high_16 (..i64//right_shifted (_.int +16))
-       low_16 (_.bit_and (_.int (.int (hex "FFFF"))))
-
-       cap_16 low_16
-       hh (..i64//right_shifted (_.int +48))
-       hl (|>> (..i64//right_shifted (_.int +32)) cap_16)
-       lh (|>> (..i64//right_shifted (_.int +16)) cap_16)
-       ll cap_16
-
-       up_16 (_.bit_shl (_.int +16))]
-   (with_vars [l48 l32 l16 l00
-               r48 r32 r16 r00
-               x48 x32 x16 x00]
-     (all _.then
-          (_.set! l48 (hh subject))
-          (_.set! l32 (hl subject))
-          (_.set! l16 (lh subject))
-          (_.set! l00 (ll subject))
-
-          (_.set! r48 (hh parameter))
-          (_.set! r32 (hl parameter))
-          (_.set! r16 (lh parameter))
-          (_.set! r00 (ll parameter))
-
-          (_.set! x00 (_.+ l00 r00))
-          
-          (_.set! x16 (|> (high_16 x00)
-                          (_.+ l16)
-                          (_.+ r16)))
-          (_.set! x00 (low_16 x00))
-          
-          (_.set! x32 (|> (high_16 x16)
-                          (_.+ l32)
-                          (_.+ r32)))
-          (_.set! x16 (low_16 x16))
-          
-          (_.set! x48 (|> (high_16 x32)
-                          (_.+ l48)
-                          (_.+ r48)
-                          low_16))
-          (_.set! x32 (low_16 x32))
-
-          (let [high32 (_.bit_or (up_16 x48) x32)
-                low32 (_.bit_or (up_16 x16) x00)]
-            (_.return (|> high32
-                          (_.bit_shl (_.int +32))
-                          (_.bit_or low32))))
-          ))))
-
-(runtime
- (i64//negate value)
- (let [i64//min (_.int (.int (hex "80,00,00,00,00,00,00,00")))]
-   (_.if (_.=== i64//min value)
-     (_.return i64//min)
-     (_.return (..i64//+ (_.int +1) (_.bit_not value))))))
-
-(runtime
- (i64//- parameter subject)
- (_.return (..i64//+ (..i64//negate parameter) subject)))
-
-(runtime
- (i64//* parameter subject)
- (let [high_16 (..i64//right_shifted (_.int +16))
-       low_16 (_.bit_and (_.int (.int (hex "FFFF"))))
-       
-       cap_16 low_16
-       hh (..i64//right_shifted (_.int +48))
-       hl (|>> (..i64//right_shifted (_.int +32)) cap_16)
-       lh (|>> (..i64//right_shifted (_.int +16)) cap_16)
-       ll cap_16
-
-       up_16 (_.bit_shl (_.int +16))]
-   (with_vars [l48 l32 l16 l00
-               r48 r32 r16 r00
-               x48 x32 x16 x00]
-     (all _.then
-          (_.set! l48 (hh subject))
-          (_.set! l32 (hl subject))
-          (_.set! l16 (lh subject))
-          (_.set! l00 (ll subject))
-
-          (_.set! r48 (hh parameter))
-          (_.set! r32 (hl parameter))
-          (_.set! r16 (lh parameter))
-          (_.set! r00 (ll parameter))
-
-          (_.set! x00 (_.* l00 r00))
-          (_.set! x16 (high_16 x00))
-          (_.set! x00 (low_16 x00))
-          
-          (_.set! x16 (|> x16 (_.+ (_.* l16 r00))))
-          (_.set! x32 (high_16 x16)) (_.set! x16 (low_16 x16))
-          (_.set! x16 (|> x16 (_.+ (_.* l00 r16))))
-          (_.set! x32 (|> x32 (_.+ (high_16 x16)))) (_.set! x16 (low_16 x16))
-
-          (_.set! x32 (|> x32 (_.+ (_.* l32 r00))))
-          (_.set! x48 (high_16 x32)) (_.set! x32 (low_16 x32))
-          (_.set! x32 (|> x32 (_.+ (_.* l16 r16))))
-          (_.set! x48 (|> x48 (_.+ (high_16 x32)))) (_.set! x32 (low_16 x32))
-          (_.set! x32 (|> x32 (_.+ (_.* l00 r32))))
-          (_.set! x48 (|> x48 (_.+ (high_16 x32)))) (_.set! x32 (low_16 x32))
-          
-          (_.set! x48 (|> x48
-                          (_.+ (_.* l48 r00))
-                          (_.+ (_.* l32 r16))
-                          (_.+ (_.* l16 r32))
-                          (_.+ (_.* l00 r48))
-                          low_16))
-
-          (let [high32 (_.bit_or (up_16 x48) x32)
-                low32 (_.bit_or (up_16 x16) x00)]
-            (_.return (|> high32
-                          (_.bit_shl (_.int +32))
-                          (_.bit_or low32))))
-          ))))
-
-(def runtime//i64
-  Statement
-  (all _.then
-       @i64//right_shifted
-       @i64//char
-       @i64//+
-       @i64//negate
-       @i64//-
-       @i64//*
-       ))
-
-(runtime
- (text//size value)
- (_.if ..jphp?
-   (_.return (_.strlen/1 [value]))
-   (_.return (_.iconv_strlen/1 [value]))))
-
-(runtime
- (text//index subject param start)
- (_.if (_.=== (_.string "") param)
-   (_.return (..some (_.int +0)))
-   (with_vars [idx]
-     (_.if ..jphp?
-       (all _.then
-            (_.set! idx (_.strpos/3 [subject param start]))
-            (_.if (_.=== (_.bool false) idx)
-              (_.return ..none)
-              (_.return (..some idx))))
-       (all _.then
-            (_.set! idx (_.iconv_strpos/3 [subject param start]))
-            (_.if (_.=== (_.bool false) idx)
-              (_.return ..none)
-              (_.return (..some idx))))))))
-
-(def (within? top value)
-  (-> Expression Expression Computation)
-  (_.and (|> value (_.>= (_.int +0)))
-         (|> value (_.< top))))
-
-(runtime
- (text//clip offset length text)
- (_.if ..jphp?
-   (_.return (_.substr/3 [text offset length]))
-   (_.return (_.iconv_substr/3 [text offset length]))))
-
-(runtime
- (text//char idx text)
- (_.if (|> idx (within? (text//size text)))
-   (_.if ..jphp?
-     (_.return (_.ord/1 (_.substr/3 [text idx (_.int +1)])))
-     (_.return (|> (_.iconv_substr/3 [text idx (_.int +1)])
-                   [(_.string "UTF-8") (_.string "UTF-32LE")]
-                   _.iconv/3
-                   [(_.string "V")]
-                   _.unpack/2
-                   (_.item (_.int +1)))))
-   (_.throw (_.new (_.constant "Exception") (list (_.string "[Lux Error] Cannot get char from text."))))))
-
-(def runtime//text
-  Statement
-  (all _.then
-       @text//size
-       @text//index
-       @text//clip
-       @text//char
-       ))
-
-(runtime
- (f64//decode value)
- (with_vars [output]
-   (all _.then
-        (_.set! output (_.floatval/1 value))
-        (_.if (_.=== (_.float +0.0) output)
-          (_.if (all _.or
-                     (_.=== (_.string "0.0") output)
-                     (_.=== (_.string "+0.0") output)
-                     (_.=== (_.string "-0.0") output)
-                     (_.=== (_.string "0") output)
-                     (_.=== (_.string "+0") output)
-                     (_.=== (_.string "-0") output))
-            (_.return (..some output))
-            (_.return ..none))
-          (_.return (..some output)))
-        )))
-
-(def runtime//f64
-  Statement
-  (all _.then
-       @f64//decode
-       ))
-
-(def check_necessary_conditions!
-  Statement
-  (let [i64_support? (_.=== (_.int +8) (_.constant "PHP_INT_SIZE"))
-        i64_error (_.string (format "Cannot run program!" text.new_line
-                                    "Lux/PHP programs require 64-bit PHP builds!"))]
-    (_.when (_.not i64_support?)
-      (_.throw (_.new (_.constant "Exception") (list i64_error))))))
-
-(def runtime
-  Statement
-  (all _.then
-       check_necessary_conditions!
-       runtime//array
-       runtime//adt
-       runtime//lux
-       runtime//i64
-       runtime//f64
-       runtime//text
-       runtime//io
-       ))
-
-(def .public generate
-  (Operation [Registry Output])
-  (do ///////phase.monad
-    [_ (/////generation.execute! ..runtime)
-     _ (/////generation.save! ..module_id ..runtime)]
-    (in [(|> artifact.empty
-             artifact.resource
-             product.right)
-         (sequence.sequence [..module_id
-                             (|> ..runtime
-                                 _.code
-                                 (at utf8.codec encoded))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/structure.lux
deleted file mode 100644
index 239d34609..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/structure.lux
+++ /dev/null
@@ -1,42 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    [collection
-     ["[0]" list]]]
-   [target
-    ["_" php (.only Expression)]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" primitive]
-  ["///[1]" ////
-   [analysis (.only Variant Tuple)]
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["//[1]" ///
-    ["[1][0]" phase (.use "[1]#[0]" monad)]]]])
-
-(def .public (tuple expression archive elemsS+)
-  (Generator (Tuple Synthesis))
-  (when elemsS+
-    {.#End}
-    (///////phase#in (//primitive.text /////synthesis.unit))
-
-    {.#Item singletonS {.#End}}
-    (expression archive singletonS)
-
-    _
-    (let [size (_.int (.int (list.size elemsS+)))]
-      (|> elemsS+
-          (monad.each ///////phase.monad (expression archive))
-          (///////phase#each (|>> _.array/*
-                                  (//runtime.tuple//make size)))))))
-
-(def .public (variant expression archive [lefts right? valueS])
-  (Generator (Variant Synthesis))
-  (let [tag (if right?
-              (++ lefts)
-              lefts)]
-    (///////phase#each (//runtime.variant tag right?)
-                       (expression archive valueS))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/when.lux
deleted file mode 100644
index fc703eb8b..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/php/when.lux
+++ /dev/null
@@ -1,297 +0,0 @@
-(.require
- [library
-  [lux (.except when let if)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]
-     ["[0]" set]]]
-   [math
-    [number
-     ["i" int]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" php (.only Expression Var Statement)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Phase! Generator Generator!)]
-  ["[1][0]" reference]
-  ["[1][0]" primitive]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" synthesis
-     ["[1]/[0]" when]]
-    ["/[1]" //
-     ["[1][0]" synthesis (.only Member Synthesis Path)]
-     ["[1][0]" generation]
-     ["//[1]" ///
-      [reference
-       ["[1][0]" variable (.only Register)]]
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [meta
-       [archive (.only Archive)]]]]]]])
-
-(def .public register
-  (-> Register Var)
-  (|>> (///reference.local //reference.system) as_expected))
-
-(def .public capture
-  (-> Register Var)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def .public (let expression archive [valueS register bodyS])
-  (Generator [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueG (expression archive valueS)
-     bodyG (expression archive bodyS)]
-    (in (|> bodyG
-            (list (_.set (..register register) valueG))
-            _.array/*
-            (_.item (_.int +1))))))
-
-(def .public (let! statement expression archive [valueS register bodyS])
-  (Generator! [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)
-     body! (statement expression archive bodyS)]
-    (in (all _.then
-             (_.set! (..register register) valueO)
-             body!))))
-
-(def .public (if expression archive [testS thenS elseS])
-  (Generator [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [testG (expression archive testS)
-     thenG (expression archive thenS)
-     elseG (expression archive elseS)]
-    (in (_.? testG thenG elseG))))
-
-(def .public (if! statement expression archive [testS thenS elseS])
-  (Generator! [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [test! (expression archive testS)
-     then! (statement expression archive thenS)
-     else! (statement expression archive elseS)]
-    (in (_.if test!
-          then!
-          else!))))
-
-(def .public (get expression archive [pathP valueS])
-  (Generator [(List Member) Synthesis])
-  (do ///////phase.monad
-    [valueG (expression archive valueS)]
-    (in (list#mix (function (_ side source)
-                    (.let [method (.when side
-                                    (^.with_template [ ]
-                                      [( lefts)
-                                       ( (_.int (.int lefts)))])
-                                    ([.#Left //runtime.tuple//left]
-                                     [.#Right //runtime.tuple//right]))]
-                      (method source)))
-                  valueG
-                  (list.reversed pathP)))))
-
-(def @savepoint (_.var "lux_pm_savepoint"))
-(def @cursor (_.var "lux_pm_cursor"))
-(def @temp (_.var "lux_pm_temp"))
-
-(def (push! value)
-  (-> Expression Statement)
-  (_.; (_.array_push/2 [@cursor value])))
-
-(def peek_and_pop
-  Expression
-  (_.array_pop/1 @cursor))
-
-(def pop!
-  Statement
-  (_.; ..peek_and_pop))
-
-(def peek
-  Expression
-  (_.item (|> @cursor _.count/1 (_.- (_.int +1)))
-          @cursor))
-
-(def save!
-  Statement
-  (.let [cursor (_.array_slice/2 [@cursor (_.int +0)])]
-    (_.; (_.array_push/2 [@savepoint cursor]))))
-
-(def restore!
-  Statement
-  (_.set! @cursor (_.array_pop/1 @savepoint)))
-
-(def fail! _.break)
-
-(def (multi_pop! pops)
-  (-> Nat Statement)
-  (_.; (_.array_splice/3 [@cursor
-                          (_.int +0)
-                          (_.int (i.* -1 (.int pops)))])))
-
-(with_template [  ]
-  [(def ( simple? idx)
-     (-> Bit Nat Statement)
-     (all _.then
-          (_.set! @temp (|> idx  .int _.int (//runtime.sum//get ..peek )))
-          (.if simple?
-            (_.when (_.is_null/1 @temp)
-              fail!)
-            (_.if (_.is_null/1 @temp)
-              fail!
-              (..push! @temp)))))]
-
-  [left_choice  _.null        (<|)]
-  [right_choice (_.string "") ++]
-  )
-
-(def (alternation pre! post!)
-  (-> Statement Statement Statement)
-  (all _.then
-       (_.do_while (_.bool false)
-                   (all _.then
-                        ..save!
-                        pre!))
-       (all _.then
-            ..restore!
-            post!)))
-
-(def (pattern_matching' statement expression archive)
-  (Generator! Path)
-  (function (again pathP)
-    (.when pathP
-      {/////synthesis.#Then bodyS}
-      (statement expression archive bodyS)
-
-      {/////synthesis.#Pop}
-      (///////phase#in ..pop!)
-
-      {/////synthesis.#Bind register}
-      (///////phase#in (_.set! (..register register) ..peek))
-
-      {/////synthesis.#Bit_Fork when thenP elseP}
-      (do [! ///////phase.monad]
-        [then! (again thenP)
-         else! (.when elseP
-                 {.#Some elseP}
-                 (again elseP)
-
-                 {.#None}
-                 (in ..fail!))]
-        (in (.if when
-              (_.if ..peek
-                then!
-                else!)
-              (_.if ..peek
-                else!
-                then!))))
-
-      (^.with_template [ ]
-        [{ item}
-         (do [! ///////phase.monad]
-           [clauses (monad.each ! (function (_ [match then])
-                                    (do !
-                                      [then! (again then)]
-                                      (in [(_.=== (|> match )
-                                                  ..peek)
-                                           then!])))
-                                {.#Item item})]
-           (in (_.cond clauses ..fail!)))])
-      ([/////synthesis.#I64_Fork //primitive.i64]
-       [/////synthesis.#F64_Fork //primitive.f64]
-       [/////synthesis.#Text_Fork //primitive.text])
-
-      (^.with_template [  ]
-        [( idx)
-         (///////phase#in ( false idx))
-
-         ( idx nextP)
-         (|> nextP
-             again
-             (at ///////phase.monad each (_.then ( true idx))))])
-      ([/////synthesis.side/left  /////synthesis.simple_left_side  ..left_choice]
-       [/////synthesis.side/right /////synthesis.simple_right_side ..right_choice])
-
-      (/////synthesis.member/left 0)
-      (///////phase#in (|> ..peek (_.item (_.int +0)) ..push!))
-      
-      (^.with_template [ ]
-        [( lefts)
-         (///////phase#in (|> ..peek ( (_.int (.int lefts))) ..push!))])
-      ([/////synthesis.member/left  //runtime.tuple//left]
-       [/////synthesis.member/right //runtime.tuple//right])
-
-      (/////synthesis.!bind_top register thenP)
-      (do ///////phase.monad
-        [then! (again thenP)]
-        (///////phase#in (all _.then
-                              (_.set! (..register register) ..peek_and_pop)
-                              then!)))
-
-      ... (/////synthesis.!multi_pop nextP)
-      ... (.let [[extra_pops nextP'] (////synthesis/when.count_pops nextP)]
-      ...   (do ///////phase.monad
-      ...     [next! (again nextP')]
-      ...     (///////phase#in (all _.then
-      ...                    (..multi_pop! (n.+ 2 extra_pops))
-      ...                    next!))))
-
-      (^.with_template [ ]
-        [( preP postP)
-         (do ///////phase.monad
-           [pre! (again preP)
-            post! (again postP)]
-           (in ( pre! post!)))])
-      ([/////synthesis.path/seq _.then]
-       [/////synthesis.path/alt ..alternation]))))
-
-(def (pattern_matching statement expression archive pathP)
-  (Generator! Path)
-  (do ///////phase.monad
-    [iteration! (pattern_matching' statement expression archive pathP)]
-    (in (all _.then
-             (_.do_while (_.bool false)
-                         iteration!)
-             (_.throw (_.new (_.constant "Exception") (list (_.string ////synthesis/when.pattern_matching_error))))))))
-
-(def .public dependencies
-  (-> Path (List Var))
-  (|>> ////synthesis/when.storage
-       (the ////synthesis/when.#dependencies)
-       set.list
-       (list#each (function (_ variable)
-                    (.when variable
-                      {///////variable.#Local register}
-                      (..register register)
-                      
-                      {///////variable.#Foreign register}
-                      (..capture register))))))
-
-(def .public (when! statement expression archive [valueS pathP])
-  (Generator! [Synthesis Path])
-  (do ///////phase.monad
-    [stack_init (expression archive valueS)
-     pattern_matching! (pattern_matching statement expression archive pathP)]
-    (in (all _.then
-             (_.set! @cursor (_.array/* (list stack_init)))
-             (_.set! @savepoint (_.array/* (list)))
-             pattern_matching!))))
-
-(def .public (when statement expression archive [valueS pathP])
-  (-> Phase! (Generator [Synthesis Path]))
-  (do [! ///////phase.monad]
-    [[[when_module when_artifact] when!] (/////generation.with_new_context archive
-                                           (when! statement expression archive [valueS pathP]))
-     .let [@when (_.constant (///reference.artifact [when_module when_artifact]))
-           @dependencies+ (..dependencies (/////synthesis.path/seq (/////synthesis.path/then valueS)
-                                                                   pathP))
-           declaration (_.define_function @when (list#each _.parameter @dependencies+) when!)]
-     _ (/////generation.execute! declaration)
-     _ (/////generation.save! when_artifact declaration)]
-    (in (_.apply @dependencies+ @when))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python.lux
deleted file mode 100644
index 4f2ead520..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python.lux
+++ /dev/null
@@ -1,80 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    [monad (.only do)]]
-   [control
-    ["[0]" exception]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" python]]]]]
- ["[0]" /
-  [runtime (.only Phase)]
-  ["[1][0]" primitive]
-  ["[1][0]" structure]
-  ["[1][0]" reference]
-  ["[1][0]" function]
-  ["[1][0]" when]
-  ["[1][0]" loop]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" extension (.only)
-     [generation
-      [python
-       ["[1]/[0]" common]]]]
-    ["/[1]" //
-     [analysis (.only)]
-     ["[1][0]" synthesis]
-     ["//[1]" ///
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [reference (.only)
-       [variable (.only)]]]]]]])
-
-(exception.def .public cannot_recur_as_an_expression)
-
-(def .public (expression archive synthesis)
-  Phase
-  (when synthesis
-    (^.with_template [ ]
-      [( value)
-       (//////phase#in ( value))])
-    ([////synthesis.bit  /primitive.bit]
-     [////synthesis.i64  /primitive.i64]
-     [////synthesis.f64  /primitive.f64]
-     [////synthesis.text /primitive.text])
-
-    (^.with_template [ ]
-      [( value)
-       ( expression archive value)])
-    ([////synthesis.variant /structure.variant]
-     [////synthesis.tuple /structure.tuple]
-     
-     [////synthesis.branch/exec /when.exec]
-     [////synthesis.branch/let /when.let]
-     [////synthesis.branch/if /when.if]
-     [////synthesis.branch/get /when.get]
-     
-     [////synthesis.function/apply /function.apply])
-
-    (^.with_template [ ]
-      [( value)
-       ( ///extension/common.statement expression archive value)])
-    ([////synthesis.branch/when /when.when]
-     [////synthesis.loop/scope /loop.scope]
-     [////synthesis.function/abstraction /function.function])
-
-    (////synthesis.loop/again updates)
-    (//////phase.except ..cannot_recur_as_an_expression [])
-
-    {////synthesis.#Reference value}
-    (//reference.reference /reference.system archive value)
-
-    {////synthesis.#Extension extension}
-    (///extension.apply archive expression extension)))
-
-(def .public generate
-  Phase
-  ..expression)
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/function.lux
deleted file mode 100644
index 7afc45ccb..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/function.lux
+++ /dev/null
@@ -1,117 +0,0 @@
-(.require
- [library
-  [lux (.except function)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    [text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [meta
-    [target
-     ["_" python (.only SVar Expression Statement)]]]]]
- ["[0]" //
-  [runtime (.only Operation Phase Generator Phase! Generator!)]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["[1][0]" loop]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["//[1]" ///
-    [analysis (.only Environment Abstraction Reification Analysis)]
-    [synthesis (.only Synthesis)]
-    ["[1][0]" generation]
-    ["//[1]" ///
-     [arity (.only Arity)]
-     ["[1][0]" phase]
-     [reference
-      [variable (.only Register Variable)]]
-     [meta
-      [archive (.only Archive)
-       ["[0]" artifact]]
-      ["[0]" cache
-       [dependency
-        ["[1]" artifact]]]]]]]])
-
-(def .public (apply expression archive [functionS argsS+])
-  (Generator (Reification Synthesis))
-  (do [! ///////phase.monad]
-    [functionO (expression archive functionS)
-     argsO+ (monad.each ! (expression archive) argsS+)]
-    (in (_.apply argsO+ functionO))))
-
-(def .public capture
-  (-> Register SVar)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def (with_closure function_id @function inits function_definition)
-  (-> artifact.ID SVar (List (Expression Any)) (Statement Any) (Operation (Expression Any)))
-  (when inits
-    {.#End}
-    (do ///////phase.monad
-      [_ (/////generation.execute! function_definition)
-       _ (/////generation.save! function_id {.#None} function_definition)]
-      (in @function))
-
-    _
-    (do [! ///////phase.monad]
-      [.let [declaration (_.def @function
-                           (|> (list.enumeration inits)
-                               (list#each (|>> product.left ..capture)))
-                           (all _.then
-                                function_definition
-                                (_.return @function)))]
-       _ (/////generation.execute! declaration)
-       _ (/////generation.save! function_id {.#None} declaration)]
-      (in (_.apply inits @function)))))
-
-(def input
-  (|>> ++ //when.register))
-
-(def .public (function statement expression archive [environment arity bodyS])
-  (-> Phase! (Generator (Abstraction Synthesis)))
-  (do [! ///////phase.monad]
-    [dependencies (cache.dependencies archive bodyS)
-     [[function_module function_artifact] body!] (/////generation.with_new_context archive dependencies
-                                                   (/////generation.with_anchor 1
-                                                     (statement expression archive bodyS)))
-     environment (monad.each ! (expression archive) environment)
-     .let [@curried (_.var "curried")
-           arityO (|> arity .int _.int)
-           @num_args (_.var "num_args")
-           @self (_.var (///reference.artifact [function_module function_artifact]))
-           apply_poly (.function (_ args func)
-                        (_.apply (list (_.splat_poly args)) func))
-           initialize_self! (_.set (list (//when.register 0)) @self)
-           initialize! (list#mix (.function (_ post pre!)
-                                   (all _.then
-                                        pre!
-                                        (_.set (list (..input post)) (_.item (|> post .int _.int) @curried))))
-                                 initialize_self!
-                                 (list.indices arity))]]
-    (with_closure function_artifact @self environment
-      (_.def @self (list (_.poly @curried))
-        (all _.then
-             (_.set (list @num_args) (_.len/1 @curried))
-             (<| (_.if (|> @num_args (_.= arityO))
-                   (<| (_.then initialize!)
-                       //loop.set_scope
-                       body!))
-                 (_.if (|> @num_args (_.> arityO))
-                   (let [arity_inputs (_.slice (_.int +0) arityO @curried)
-                         extra_inputs (_.slice arityO @num_args @curried)]
-                     (_.return (|> @self
-                                   (apply_poly arity_inputs)
-                                   (apply_poly extra_inputs)))))
-                 ... (|> @num_args (_.< arityO))
-                 (let [@next (_.var "next")
-                       @missing (_.var "missing")]
-                   (all _.then
-                        (_.def @next (list (_.poly @missing))
-                          (_.return (|> @self (apply_poly (|> @curried (_.+ @missing))))))
-                        (_.return @next)
-                        )))
-             )))
-    ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/loop.lux
deleted file mode 100644
index 16df5397a..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/loop.lux
+++ /dev/null
@@ -1,127 +0,0 @@
-(.require
- [library
-  [lux (.except Scope)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    [text
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]
-     ["[0]" set]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     ["_" python (.only Expression SVar Statement)]]]]]
- ["[0]" //
-  [runtime (.only Operation Phase Generator Phase! Generator!)]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    [synthesis
-     ["[0]" when]]
-    ["/[1]" //
-     ["[0]" synthesis (.only Scope Synthesis)]
-     ["[1][0]" generation]
-     ["//[1]" ///
-      ["[1][0]" phase]
-      [meta
-       ["[0]" cache
-        [dependency
-         ["[1]" artifact]]]]
-      [reference
-       ["[1][0]" variable (.only Register)]]]]]]])
-
-(def (setup offset bindings body)
-  (-> Register (List (Expression Any)) (Statement Any) (Statement Any))
-  (let [variables (|> bindings
-                      list.enumeration
-                      (list#each (|>> product.left (n.+ offset) //when.register)))]
-    (all _.then
-         (_.set variables (_.multi bindings))
-         body)))
-
-(def .public (set_scope body!)
-  (-> (Statement Any) (Statement Any))
-  (_.while (_.bool true)
-           body!
-           {.#None}))
-
-(def .public (scope! statement expression archive [start initsS+ bodyS])
-  (Generator! (Scope Synthesis))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (statement expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [initsO+ (monad.each ! (expression archive) initsS+)
-       body! (/////generation.with_anchor start
-               (statement expression archive bodyS))]
-      (in (<| (..setup start initsO+)
-              ..set_scope
-              body!)))))
-
-(def .public (scope statement expression archive [start initsS+ bodyS])
-  (-> Phase! (Generator (Scope Synthesis)))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [dependencies (cache.dependencies archive bodyS)
-       initsO+ (monad.each ! (expression archive) initsS+)
-       [[loop_module loop_artifact] body!] (/////generation.with_new_context archive dependencies
-                                             (/////generation.with_anchor start
-                                               (statement expression archive bodyS)))
-       .let [@loop (_.var (///reference.artifact [loop_module loop_artifact]))
-             locals (|> initsS+
-                        list.enumeration
-                        (list#each (|>> product.left (n.+ start) //when.register)))
-             actual_loop (<| (_.def @loop locals)
-                             ..set_scope
-                             body!)
-             [declaration instantiation] (is [(Statement Any) (Expression Any)]
-                                             (when (|> (synthesis.path/then bodyS)
-                                                       //when.dependencies
-                                                       (set.of_list _.hash)
-                                                       (set.difference (set.of_list _.hash locals))
-                                                       set.list)
-                                               {.#End}
-                                               [actual_loop
-                                                @loop]
-
-                                               foreigns
-                                               [(_.def @loop foreigns
-                                                  (all _.then
-                                                       actual_loop
-                                                       (_.return @loop)
-                                                       ))
-                                                (_.apply foreigns @loop)]))]
-       _ (/////generation.execute! declaration)
-       _ (/////generation.save! loop_artifact {.#None} declaration)]
-      (in (_.apply initsO+ instantiation)))))
-
-(def .public (again! statement expression archive argsS+)
-  (Generator! (List Synthesis))
-  (do [! ///////phase.monad]
-    [offset /////generation.anchor
-     @temp (//when.symbol "lux_again_values")
-     argsO+ (monad.each ! (expression archive) argsS+)
-     .let [re_binds (|> argsO+
-                        list.enumeration
-                        (list#each (function (_ [idx _])
-                                     (_.item (_.int (.int idx)) @temp))))]]
-    (in (all _.then
-             (_.set (list @temp) (_.list argsO+))
-             (..setup offset re_binds
-                      _.continue)))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/primitive.lux
deleted file mode 100644
index b50c2c965..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/primitive.lux
+++ /dev/null
@@ -1,19 +0,0 @@
-(.require
- [library
-  [lux (.except i64)
-   [meta
-    [target
-     ["_" python (.only Expression)]]]]]
- ["[0]" //
-  ["[1][0]" runtime]])
-
-(with_template [  ]
-  [(def .public 
-     (->  (Expression Any))
-     )]
-
-  [Bit       bit  _.bool]
-  [(I64 Any) i64  (|>> .int _.int //runtime.i64::64)]
-  [Frac      f64  _.float]
-  [Text      text _.unicode]
-  )
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/reference.lux
deleted file mode 100644
index 9b105605e..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/reference.lux
+++ /dev/null
@@ -1,14 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [meta
-    [target
-     ["_" python (.only Expression)]]]]]
- [///
-  [reference (.only System)]])
-
-(def .public system
-  (System (Expression Any))
-  (implementation
-   (def constant' _.var)
-   (def variable' _.var)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/runtime.lux
deleted file mode 100644
index 2c2ca91fc..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/runtime.lux
+++ /dev/null
@@ -1,495 +0,0 @@
-(.require
- [library
-  [lux (.except Synthesis Declaration ++ left right)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.use "[1]#[0]" hash)
-     ["%" \\format (.only format)]
-     [encoding
-      ["[0]" utf8]]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" sequence]]]
-   [math
-    [number (.only hex)
-     ["f" frac]
-     ["[0]" i64]]]
-   ["[0]" meta (.only)
-    ["[0]" version]
-    ["[0]" code (.only)
-     ["<[1]>" \\parser]]
-    ["[0]" macro (.only)
-     [syntax (.only syntax)]]
-    ["@" target (.only)
-     ["_" python (.only Expression SVar Computation Literal Statement)]]]]]
- ["[0]" ///
-  ["[1][0]" reference]
-  ["//[1]" ///
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["[1][0]" generation]
-   ["//[1]" /// (.only)
-    ["[1][0]" phase]
-    [reference
-     [variable (.only Register)]]
-    [meta
-     [archive (.only Output Archive)
-      ["[0]" registry (.only Registry)]
-      ["[0]" unit]]]]]])
-
-(type .public Anchor
-  Register)
-
-(type .public Value
-  (Expression Any))
-
-(type .public Declaration
-  (Statement Any))
-
-(with_template [ ]
-  [(type .public 
-     ( Anchor Value Declaration))]
-
-  [Operation /////generation.Operation]
-  [Phase /////generation.Phase]
-  [Handler /////generation.Handler]
-  [Bundle /////generation.Bundle]
-  )
-
-(type .public Phase!
-  (-> Phase Archive Synthesis (Operation (Statement Any))))
-
-(type .public (Generator! i)
-  (-> Phase! Phase Archive i (Operation (Statement Any))))
-
-(type .public (Generator i)
-  (-> Phase Archive i (Operation (Expression Any))))
-
-(def prefix
-  "LuxRuntime")
-
-(def .public unit
-  (_.unicode /////synthesis.unit))
-
-(def (flag value)
-  (-> Bit Literal)
-  (if value
-    ..unit
-    _.none))
-
-(def (variant' tag last? value)
-  (-> (Expression Any) (Expression Any) (Expression Any) Literal)
-  (_.tuple (list tag last? value)))
-
-(def .public (variant tag last? value)
-  (-> Nat Bit (Expression Any) Literal)
-  (variant' (_.int (.int tag))
-            (flag last?)
-            value))
-
-(def .public left
-  (-> (Expression Any) Literal)
-  (..variant 0 #0))
-
-(def .public right
-  (-> (Expression Any) Literal)
-  (..variant 0 #1))
-
-(def .public none
-  Literal
-  (..left ..unit))
-
-(def .public some
-  (-> (Expression Any) Literal)
-  ..right)
-
-(def (runtime_name name)
-  (-> Text SVar)
-  (let [symbol (format ..prefix
-                       "_" (%.nat version.latest)
-                       "_" (%.nat (text#hash name)))]
-    (_.var symbol)))
-
-(def (feature name definition)
-  (-> SVar (-> SVar (Statement Any)) (Statement Any))
-  (definition name))
-
-(def .public with_vars
-  (syntax (_ [vars (.tuple (<>.some .local))
-              body .any])
-    (do [! meta.monad]
-      [ids (monad.all ! (list.repeated (list.size vars) meta.seed))]
-      (in (list (` (let [(,* (|> vars
-                                 (list.zipped_2 ids)
-                                 (list#each (function (_ [id var])
-                                              (list (code.local var)
-                                                    (` (_.var (, (code.text (format "v" (%.nat id)))))))))
-                                 list.together))]
-                     (, body))))))))
-
-(def runtime
-  (syntax (_ [declaration (<>.or .local
-                                 (.form (<>.and .local
-                                                      (<>.some .local))))
-              code .any])
-    (when declaration
-      {.#Left name}
-      (macro.with_symbols [g!_]
-        (let [nameC (code.local name)
-              code_nameC (code.local (format "@" name))
-              runtime_nameC (` (runtime_name (, (code.text name))))]
-          (in (list (` (def .public (, nameC) SVar (, runtime_nameC)))
-                    (` (def (, code_nameC)
-                         (Statement Any)
-                         (..feature (, runtime_nameC)
-                                    (function ((, g!_) (, g!_))
-                                      (_.set (list (, g!_)) (, code))))))))))
-      
-      {.#Right [name inputs]}
-      (macro.with_symbols [g!_]
-        (let [nameC (code.local name)
-              code_nameC (code.local (format "@" name))
-              runtime_nameC (` (runtime_name (, (code.text name))))
-              inputsC (list#each code.local inputs)
-              inputs_typesC (list#each (function.constant (` (_.Expression Any)))
-                                       inputs)]
-          (in (list (` (def .public ((, nameC) (,* inputsC))
-                         (-> (,* inputs_typesC) (Computation Any))
-                         (_.apply (list (,* inputsC)) (, runtime_nameC))))
-                    (` (def (, code_nameC)
-                         (Statement Any)
-                         (..feature (, runtime_nameC)
-                                    (function ((, g!_) (, g!_))
-                                      (..with_vars [(,* inputsC)]
-                                        (_.def (, g!_) (list (,* inputsC))
-                                          (, code))))))))))))))
-
-(runtime
- (lux::try op)
- (with_vars [exception]
-   (_.try (_.return (..right (_.apply (list ..unit) op)))
-          (list [(list "Exception") exception
-                 (_.return (..left (_.str/1 exception)))]))))
-
-(runtime
- (lux::program_args program_args)
- (with_vars [inputs value]
-   (all _.then
-        (_.set (list inputs) ..none)
-        (<| (_.for_in value (_.apply (list program_args) (_.var "reversed")))
-            (_.set (list inputs)
-                   (..some (_.list (list value inputs)))))
-        (_.return inputs))))
-
-(runtime
- (lux::exec code globals)
- (all _.then
-      (_.exec {.#Some globals} code)
-      (_.return ..unit)))
-
-(def runtime//lux
-  (Statement Any)
-  (all _.then
-       @lux::try
-       @lux::program_args
-       @lux::exec
-       ))
-
-(runtime
- (io::log! message)
- (all _.then
-      (_.print message)
-      (|> (_.__import__/1 (_.unicode "sys"))
-          (_.the "stdout")
-          (_.do "flush" (list))
-          _.statement)
-      (_.return ..unit)))
-
-(runtime
- (io::throw! message)
- (_.raise (_.Exception/1 message)))
-
-(def runtime//io
-  (Statement Any)
-  (all _.then
-       @io::log!
-       @io::throw!
-       ))
-
-(def last_index
-  (|>> _.len/1 (_.- (_.int +1))))
-
-(with_expansions [ (these (all _.then
-                                      (_.set (list lefts) (_.- last_index_right lefts))
-                                      (_.set (list tuple) (_.item last_index_right tuple))))]
-  (runtime
-   (tuple::left lefts tuple)
-   (with_vars [last_index_right]
-     (_.while (_.bool true)
-              (all _.then
-                   (_.set (list last_index_right) (..last_index tuple))
-                   (_.if (_.> lefts last_index_right)
-                     ... No need for recursion
-                     (_.return (_.item lefts tuple))
-                     ... Needs recursion
-                     ))
-              {.#None})))
-
-  (runtime
-   (tuple::right lefts tuple)
-   (with_vars [last_index_right right_index]
-     (_.while (_.bool true)
-              (all _.then
-                   (_.set (list last_index_right) (..last_index tuple))
-                   (_.set (list right_index) (_.+ (_.int +1) lefts))
-                   (<| (_.if (_.= last_index_right right_index)
-                         (_.return (_.item right_index tuple)))
-                       (_.if (_.> last_index_right right_index)
-                         ... Needs recursion.
-                         )
-                       (_.return (_.slice_from right_index tuple))))
-              {.#None}))))
-
-(runtime
- (sum::get sum expected::right? expected::lefts)
- (let [mismatch! (_.return _.none)
-       actual::lefts (_.item (_.int +0) sum)
-       actual::right? (_.item (_.int +1) sum)
-       actual::value (_.item (_.int +2) sum)
-       recur! (all _.then
-                   (_.set (list expected::lefts) (|> expected::lefts
-                                                     (_.- actual::lefts)
-                                                     (_.- (_.int +1))))
-                   (_.set (list sum) actual::value))]
-   (_.while (_.bool true)
-            (<| (_.if (_.= expected::lefts actual::lefts)
-                  (_.if (_.= expected::right? actual::right?)
-                    (_.return actual::value)
-                    mismatch!))
-                (_.if (_.< expected::lefts actual::lefts)
-                  (_.if (_.= ..unit actual::right?)
-                    recur!
-                    mismatch!))
-                (_.if (_.= ..unit expected::right?)
-                  (_.return (variant' (|> actual::lefts
-                                          (_.- expected::lefts)
-                                          (_.- (_.int +1)))
-                                      actual::right?
-                                      actual::value)))
-                mismatch!)
-            {.#None})))
-
-(def runtime//adt
-  (Statement Any)
-  (all _.then
-       @tuple::left
-       @tuple::right
-       @sum::get
-       ))
-
-(def i64::+limit (_.manual "+0x7FFFFFFFFFFFFFFF"))
-(def i64::-limit (_.manual "-0x8000000000000000"))
-(def i64::+iteration (_.manual "+0x10000000000000000"))
-(def i64::-iteration (_.manual "-0x10000000000000000"))
-(def i64::+cap (_.manual "+0x8000000000000000"))
-(def i64::-cap (_.manual "-0x8000000000000001"))
-
-(runtime
- (i64::64 input)
- (with_vars [temp]
-   (`` (<| (,, (with_template [   ]
-                 [(_.if (|> input )
-                    (all _.then
-                         (_.set (list temp) (_.%  input))
-                         (_.return (_.? (|> temp )
-                                        (|> temp (_.- ) (_.+ ))
-                                        temp))))]
-
-                 [(_.> ..i64::+limit) ..i64::+iteration ..i64::+cap ..i64::-limit]
-                 [(_.< ..i64::-limit) ..i64::-iteration ..i64::-cap ..i64::+limit]
-                 ))
-           (_.return (for @.python input
-                          ... This +- is only necessary to guarantee that values within the limits are always longs in Python 2
-                          (|> input (_.+ ..i64::+limit) (_.- ..i64::+limit))))))))
-
-(def as_nat
-  (_.% ..i64::+iteration))
-
-(runtime
- (i64::left_shifted param subject)
- (_.return (|> subject
-               (_.bit_shl (_.% (_.int +64) param))
-               ..i64::64)))
-
-(runtime
- (i64::right_shifted param subject)
- (all _.then
-      (_.set (list param) (_.% (_.int +64) param))
-      (_.return (_.? (_.= (_.int +0) param)
-                     subject
-                     (|> subject
-                         ..as_nat
-                         (_.bit_shr param))))))
-
-(runtime
- (i64#/ param subject)
- (with_vars [floored]
-   (all _.then
-        (_.set (list floored) (_.// param subject))
-        (_.return (let [potentially_floored? (_.< (_.int +0) floored)
-                        inexact? (|> subject
-                                     (_.% param)
-                                     (_.= (_.int +0))
-                                     _.not)]
-                    (<| (_.? (_.and potentially_floored?
-                                    inexact?)
-                             (_.+ (_.int +1) floored))
-                        (_.? (_.= (_.manual "+9223372036854775808")
-                                  floored)
-                             (_.manual "-9223372036854775808"))
-                        floored))))))
-
-(runtime
- (i64::remainder param subject)
- (_.return (_.- (|>  subject (..i64#/ param) (_.* param))
-                subject)))
-
-(with_template [ ]
-  [(runtime
-    ( left right)
-    (_.return (..i64::64 ( (..as_nat left) (..as_nat right)))))]
-
-  [i64::and _.bit_and]
-  [i64::or _.bit_or]
-  [i64::xor _.bit_xor]
-  )
-
-(def python_version
-  (Expression Any)
-  (|> (_.__import__/1 (_.unicode "sys"))
-      (_.the "version_info")
-      (_.the "major")))
-
-(runtime
- (i64::char value)
- (_.return (_.? (_.= (_.int +3) ..python_version)
-                (_.chr/1 value)
-                (_.unichr/1 value))))
-
-(def runtime//i64
-  (Statement Any)
-  (all _.then
-       @i64::64
-       @i64::left_shifted
-       @i64::right_shifted
-       @i64#/
-       @i64::remainder
-       @i64::and
-       @i64::or
-       @i64::xor
-       @i64::char
-       ))
-
-(runtime
- (f64::/ parameter subject)
- (_.return (_.? (_.= (_.float +0.0) parameter)
-                (<| (_.? (_.> (_.float +0.0) subject)
-                         (_.float f.positive_infinity))
-                    (_.? (_.< (_.float +0.0) subject)
-                         (_.float f.negative_infinity))
-                    (_.float f.not_a_number))
-                (_./ parameter subject))))
-
-(runtime
- (f64::decode input)
- (with_vars [ex]
-   (_.try (_.return (..some (_.float/1 input)))
-          (list [(list "Exception") ex
-                 (_.return ..none)]))))
-
-(def runtime//f64
-  (Statement Any)
-  (all _.then
-       @f64::/
-       @f64::decode
-       ))
-
-(runtime
- (text::index start param subject)
- (with_vars [idx]
-   (all _.then
-        (_.set (list idx) (|> subject (_.do "find" (list param start))))
-        (_.return (_.? (_.= (_.int -1) idx)
-                       ..none
-                       (..some (..i64::64 idx)))))))
-
-(def ++
-  (|>> (_.+ (_.int +1))))
-
-(def (within? top value)
-  (-> (Expression Any) (Expression Any) (Computation Any))
-  (_.and (|> value (_.>= (_.int +0)))
-         (|> value (_.< top))))
-
-(runtime
- (text::clip @offset @length @text)
- (_.return (|> @text (_.slice @offset (_.+ @offset @length)))))
-
-(runtime
- (text::char idx text)
- (_.if (|> idx (within? (_.len/1 text)))
-   (_.return (|> text (_.slice idx (..++ idx)) _.ord/1 ..i64::64))
-   (_.raise (_.Exception/1 (_.unicode "[Lux Error] Cannot get char from text.")))))
-
-(def runtime//text
-  (Statement Any)
-  (all _.then
-       @text::index
-       @text::clip
-       @text::char
-       ))
-
-(runtime
- (array::write idx value array)
- (all _.then
-      (_.set (list (_.item idx array)) value)
-      (_.return array)))
-
-(def runtime//array
-  (Statement Any)
-  (all _.then
-       @array::write
-       ))
-
-(def full_runtime
-  (Statement Any)
-  (all _.then
-       runtime//lux
-       runtime//io
-       runtime//adt
-       runtime//i64
-       runtime//f64
-       runtime//text
-       runtime//array
-       ))
-
-(def module_id
-  0)
-
-(def .public generate
-  (Operation [Registry Output])
-  (do ///////phase.monad
-    [_ (/////generation.execute! ..full_runtime)
-     _ (/////generation.save! ..module_id {.#None} ..full_runtime)]
-    (in [(|> registry.empty
-             (registry.resource true unit.none)
-             product.right)
-         (sequence.sequence [..module_id
-                             {.#None}
-                             (|> ..full_runtime
-                                 _.code
-                                 (at utf8.codec encoded))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/structure.lux
deleted file mode 100644
index f89cf244b..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/structure.lux
+++ /dev/null
@@ -1,36 +0,0 @@
-(.require
- [library
-  [lux (.except Variant Tuple)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [meta
-    [target
-     ["_" python (.only Expression)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" primitive]
-  ["///[1]" ////
-   [analysis
-    [complex (.only Variant Tuple)]]
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["//[1]" ///
-    ["[1][0]" phase (.use "[1]#[0]" monad)]]]])
-
-(def .public (tuple generate archive elemsS+)
-  (Generator (Tuple Synthesis))
-  (when elemsS+
-    {.#End}
-    (///////phase#in (//primitive.text /////synthesis.unit))
-
-    {.#Item singletonS {.#End}}
-    (generate archive singletonS)
-
-    _
-    (|> elemsS+
-        (monad.each ///////phase.monad (generate archive))
-        (///////phase#each _.list))))
-
-(def .public (variant generate archive [lefts right? valueS])
-  (Generator (Variant Synthesis))
-  (///////phase#each (//runtime.variant lefts right?)
-                     (generate archive valueS)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/when.lux
deleted file mode 100644
index 3666dc9fc..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/python/when.lux
+++ /dev/null
@@ -1,362 +0,0 @@
-(.require
- [library
-  [lux (.except when exec let if symbol)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]
-     ["[0]" set]]]
-   [math
-    [number
-     ["n" nat]
-     ["i" int]]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" python (.only Expression SVar Statement)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator Phase! Generator!)]
-  ["[1][0]" reference]
-  ["[1][0]" primitive]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    [synthesis
-     ["[0]" when]]
-    ["/[1]" //
-     ["[1][0]" generation]
-     ["[1][0]" synthesis (.only Synthesis Path)
-      [access
-       ["[0]" member (.only Member)]]]
-     ["//[1]" ///
-      [reference
-       ["[1][0]" variable (.only Register)]]
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [meta
-       [archive (.only Archive)]
-       ["[0]" cache
-        [dependency
-         ["[1]" artifact]]]]]]]]])
-
-(def .public (symbol prefix)
-  (-> Text (Operation SVar))
-  (///////phase#each (|>> %.nat (format prefix) _.var)
-                     /////generation.next))
-
-(def .public register
-  (-> Register SVar)
-  (|>> (///reference.local //reference.system) as_expected))
-
-(def .public capture
-  (-> Register SVar)
-  (|>> (///reference.foreign //reference.system) as_expected)) 
-
-(def .public (let expression archive [valueS register bodyS])
-  (Generator [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)
-     bodyO (expression archive bodyS)]
-    ... TODO: Find some way to do 'let' without paying the price of the closure.
-    (in (_.apply (list valueO)
-                 (_.lambda (list (..register register))
-                           bodyO)))))
-
-(def .public (let! statement expression archive [valueS register bodyS])
-  (Generator! [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)
-     bodyO (statement expression archive bodyS)]
-    (in (all _.then
-             (_.set (list (..register register)) valueO)
-             bodyO))))
-
-(def .public (exec expression archive [pre post])
-  (Generator [Synthesis Synthesis])
-  (do ///////phase.monad
-    [pre (expression archive pre)
-     post (expression archive post)]
-    (in (_.item (_.int +1) (_.tuple (list pre post))))))
-
-(def .public (exec! statement expression archive [pre post])
-  (Generator! [Synthesis Synthesis])
-  (do ///////phase.monad
-    [pre (expression archive pre)
-     post (statement expression archive post)]
-    (in (all _.then
-             (_.statement pre)
-             post))))
-
-(def .public (if expression archive [testS thenS elseS])
-  (Generator [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [testO (expression archive testS)
-     thenO (expression archive thenS)
-     elseO (expression archive elseS)]
-    (in (_.? testO thenO elseO))))
-
-(def .public (if! statement expression archive [testS thenS elseS])
-  (Generator! [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [test! (expression archive testS)
-     then! (statement expression archive thenS)
-     else! (statement expression archive elseS)]
-    (in (_.if test!
-          then!
-          else!))))
-
-(def .public (get expression archive [pathP valueS])
-  (Generator [(List Member) Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)]
-    (in (list#mix (function (_ side source)
-                    (.let [method (.if (the member.#right? side)
-                                    //runtime.tuple::right
-                                    //runtime.tuple::left)]
-                      (method (_.int (.int (the member.#lefts side)))
-                              source)))
-                  valueO
-                  (list.reversed pathP)))))
-
-(def @savepoint (_.var "lux_pm_savepoint"))
-(def @cursor (_.var "lux_pm_cursor"))
-(def @temp (_.var "lux_pm_temp"))
-
-(def (push! value)
-  (-> (Expression Any) (Statement Any))
-  (_.statement (|> @cursor (_.do "append" (list value)))))
-
-(def peek_and_pop
-  (Expression Any)
-  (|> @cursor (_.do "pop" (list))))
-
-(def pop!
-  (Statement Any)
-  (_.statement ..peek_and_pop))
-
-(def peek
-  (Expression Any)
-  (_.item (_.int -1) @cursor))
-
-(def save!
-  (Statement Any)
-  (.let [cursor (_.slice_from (_.int +0) @cursor)]
-    (_.statement (|> @savepoint (_.do "append" (list cursor))))))
-
-(def restore!
-  (Statement Any)
-  (_.set (list @cursor) (|> @savepoint (_.do "pop" (list)))))
-
-(def fail_pm! _.break)
-
-(def (multi_pop! pops)
-  (-> Nat (Statement Any))
-  (_.delete (_.slice_from (_.int (i.* -1 (.int pops))) @cursor)))
-
-(with_template [ ]
-  [(def ( simple? idx)
-     (-> Bit Nat (Statement Any))
-     (all _.then
-          (_.set (list @temp) (//runtime.sum::get ..peek 
-                                                  (|> idx .int _.int)))
-          (.if simple?
-            (_.when (_.= _.none @temp)
-              fail_pm!)
-            (_.if (_.= _.none @temp)
-              fail_pm!
-              (..push! @temp))
-            )))]
-
-  [left_choice  _.none]
-  [right_choice //runtime.unit]
-  )
-
-(def (with_looping in_closure? g!once body!)
-  (-> Bit SVar (Statement Any) (Statement Any))
-  (.if in_closure?
-    (_.while (_.bool true)
-             body!
-             {.#None})
-    (all _.then
-         (_.set (list g!once) (_.bool true))
-         (_.while g!once
-                  (all _.then
-                       (_.set (list g!once) (_.bool false))
-                       body!)
-                  {.#Some _.continue}))))
-
-(def (alternation in_closure? g!once pre! post!)
-  (-> Bit SVar (Statement Any) (Statement Any) (Statement Any))
-  (all _.then
-       (..with_looping in_closure? g!once
-         (all _.then
-              ..save!
-              pre!))
-       ..restore!
-       post!))
-
-(def (primitive_pattern_matching again pathP)
-  (-> (-> Path (Operation (Statement Any)))
-      (-> Path (Operation (Maybe (Statement Any)))))
-  (.when pathP
-    {/////synthesis.#Bit_Fork when thenP elseP}
-    (do [! ///////phase.monad]
-      [then! (again thenP)
-       else! (.when elseP
-               {.#Some elseP}
-               (again elseP)
-
-               {.#None}
-               (in ..fail_pm!))]
-      (in {.#Some (.if when
-                    (_.if ..peek
-                      then!
-                      else!)
-                    (_.if ..peek
-                      else!
-                      then!))}))
-
-    (^.with_template [ ]
-      [{ item}
-       (do [! ///////phase.monad]
-         [clauses (monad.each ! (function (_ [match then])
-                                  (at ! each
-                                      (|>> [(_.= (|> match )
-                                                 ..peek)])
-                                      (again then)))
-                              {.#Item item})]
-         (in {.#Some (list#mix (function (_ [when then] else)
-                                 (_.if when then else))
-                               ..fail_pm!
-                               clauses)}))])
-    ([/////synthesis.#I64_Fork (<| //primitive.i64 .int)]
-     [/////synthesis.#F64_Fork (<| //primitive.f64)]
-     [/////synthesis.#Text_Fork (<| //primitive.text)])
-
-    _
-    (at ///////phase.monad in {.#None})))
-
-(def (pattern_matching' in_closure? statement expression archive)
-  (-> Bit Phase! Phase Archive Path (Operation (Statement Any)))
-  (function (again pathP)
-    (do [! ///////phase.monad]
-      [?output (primitive_pattern_matching again pathP)]
-      (.when ?output
-        {.#Some output}
-        (in output)
-
-        {.#None}
-        (.when pathP
-          {/////synthesis.#Then bodyS}
-          (statement expression archive bodyS)
-
-          {/////synthesis.#Pop}
-          (///////phase#in ..pop!)
-
-          {/////synthesis.#Bind register}
-          (///////phase#in (_.set (list (..register register)) ..peek))
-
-          (^.with_template [  ]
-            [( idx)
-             (///////phase#in ( false idx))
-
-             ( idx nextP)
-             (|> nextP
-                 again
-                 (///////phase#each (_.then ( true idx))))])
-          ([/////synthesis.side/left  /////synthesis.simple_left_side  ..left_choice]
-           [/////synthesis.side/right /////synthesis.simple_right_side ..right_choice])
-
-          (/////synthesis.member/left 0)
-          (///////phase#in (|> ..peek (_.item (_.int +0)) ..push!))
-          
-          (^.with_template [ ]
-            [( lefts)
-             (///////phase#in (|> ..peek ( (_.int (.int lefts))) ..push!))])
-          ([/////synthesis.member/left  //runtime.tuple::left]
-           [/////synthesis.member/right //runtime.tuple::right])
-
-          (/////synthesis.!bind_top register thenP)
-          (do !
-            [then! (again thenP)]
-            (///////phase#in (all _.then
-                                  (_.set (list (..register register)) ..peek_and_pop)
-                                  then!)))
-
-          (/////synthesis.!multi_pop nextP)
-          (.let [[extra_pops nextP'] (when.count_pops nextP)]
-            (do !
-              [next! (again nextP')]
-              (///////phase#in (all _.then
-                                    (..multi_pop! (n.+ 2 extra_pops))
-                                    next!))))
-
-          (/////synthesis.path/seq preP postP)
-          (do !
-            [pre! (again preP)
-             post! (again postP)]
-            (in (_.then pre! post!)))
-
-          (/////synthesis.path/alt preP postP)
-          (do !
-            [pre! (again preP)
-             post! (again postP)
-             g!once (..symbol "once")]
-            (in (..alternation in_closure? g!once pre! post!)))
-
-          _
-          (undefined))))))
-
-(def (pattern_matching in_closure? statement expression archive pathP)
-  (-> Bit Phase! Phase Archive Path (Operation (Statement Any)))
-  (do ///////phase.monad
-    [pattern_matching! (pattern_matching' in_closure? statement expression archive pathP)
-     g!once (..symbol "once")]
-    (in (all _.then
-             (..with_looping in_closure? g!once
-               pattern_matching!)
-             (_.raise (_.Exception/1 (_.string when.pattern_matching_error)))))))
-
-(def .public dependencies
-  (-> Path (List SVar))
-  (|>> when.storage
-       (the when.#dependencies)
-       set.list
-       (list#each (function (_ variable)
-                    (.when variable
-                      {///////variable.#Local register}
-                      (..register register)
-                      
-                      {///////variable.#Foreign register}
-                      (..capture register))))))
-
-(def .public (when! in_closure? statement expression archive [valueS pathP])
-  (-> Bit (Generator! [Synthesis Path]))
-  (do ///////phase.monad
-    [stack_init (expression archive valueS)
-     pattern_matching! (pattern_matching in_closure? statement expression archive pathP)]
-    (in (all _.then
-             (_.set (list @cursor) (_.list (list stack_init)))
-             (_.set (list @savepoint) (_.list (list)))
-             pattern_matching!
-             ))))
-
-(def .public (when statement expression archive [valueS pathP])
-  (-> Phase! (Generator [Synthesis Path]))
-  (do ///////phase.monad
-    [dependencies (cache.path_dependencies archive pathP)
-     [[when_module when_artifact] pattern_matching!] (/////generation.with_new_context
-                                                       archive
-                                                       dependencies
-                                                       (when! true statement expression archive [valueS pathP]))
-     .let [@when (_.var (///reference.artifact [when_module when_artifact]))
-           @dependencies+ (..dependencies (/////synthesis.path/seq (/////synthesis.path/then valueS)
-                                                                   pathP))
-           declaration (_.def @when @dependencies+
-                         pattern_matching!)]
-     _ (/////generation.execute! declaration)
-     _ (/////generation.save! when_artifact {.#None} declaration)]
-    (in (_.apply @dependencies+ @when))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r.lux
deleted file mode 100644
index cf20229d8..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r.lux
+++ /dev/null
@@ -1,62 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    [monad (.only do)]]
-   [meta
-    [macro
-     ["^" pattern]]
-    [target
-     ["_" r]]]]]
- ["[0]" /
-  [runtime (.only Phase)]
-  ["[1][0]" primitive]
-  ["[1][0]" structure]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["[1][0]" loop]
-  ["[1][0]" function]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" extension]
-    ["/[1]" //
-     [analysis (.only)]
-     ["[1][0]" synthesis]
-     ["//[1]" ///
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [reference (.only)
-       [variable (.only)]]]]]]])
-
-(def .public (generate archive synthesis)
-  Phase
-  (when synthesis
-    (^.with_template [ ]
-      [( value)
-       (//////phase#in ( value))])
-    ([////synthesis.bit  /primitive.bit]
-     [////synthesis.i64  /primitive.i64]
-     [////synthesis.f64  /primitive.f64]
-     [////synthesis.text /primitive.text])
-
-    {////synthesis.#Reference value}
-    (//reference.reference /reference.system archive value)
-
-    (^.with_template [ ]
-      [( value)
-       ( generate archive value)])
-    ([////synthesis.variant /structure.variant]
-     [////synthesis.tuple /structure.tuple]
-     [////synthesis.branch/let /when.let]
-     [////synthesis.branch/if /when.if]
-     [////synthesis.branch/get /when.get]
-     [////synthesis.function/apply /function.apply]
-
-     [////synthesis.branch/when /when.when]
-     [////synthesis.loop/scope /loop.scope]
-     [////synthesis.loop/again /loop.again]
-     [////synthesis.function/abstraction /function.function])
-
-    {////synthesis.#Extension extension}
-    (///extension.apply archive generate extension)
-    ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/function.lux
deleted file mode 100644
index bf6d09b19..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/function.lux
+++ /dev/null
@@ -1,118 +0,0 @@
-(.require
- [library
-  [lux (.except function)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    pipe]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]]]
-   [meta
-    [target
-     ["_" r (.only Expression SVar)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" reference]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["//[1]" ///
-    [analysis (.only Variant Tuple Abstraction Application Analysis)]
-    [synthesis (.only Synthesis)]
-    ["[1][0]" generation (.only Context)]
-    ["//[1]" ///
-     [arity (.only Arity)]
-     ["[1][0]" phase (.use "[1]#[0]" monad)]
-     [reference
-      [variable (.only Register Variable)]]
-     [meta
-      [archive
-       ["[0]" artifact]]]]]]])
-
-(def .public (apply expression archive [functionS argsS+])
-  (Generator (Application Synthesis))
-  (do [! ///////phase.monad]
-    [functionO (expression archive functionS)
-     argsO+ (monad.each ! (expression archive) argsS+)]
-    (in (_.apply argsO+ functionO))))
-
-(def (with_closure function_id $function inits function_definition)
-  (-> artifact.ID SVar (List Expression) Expression (Operation Expression))
-  (when inits
-    {.#End}
-    (do ///////phase.monad
-      [_ (/////generation.execute! function_definition)
-       _ (/////generation.save! (%.nat function_id)
-                                function_definition)]
-      (in $function))
-
-    _
-    (do ///////phase.monad
-      [.let [closure_definition (_.set! $function
-                                        (_.function (|> inits
-                                                        list.size
-                                                        list.indices
-                                                        (list#each //when.capture))
-                                          (all _.then
-                                               function_definition
-                                               $function)))]
-       _ (/////generation.execute! closure_definition)
-       _ (/////generation.save! (%.nat function_id) closure_definition)]
-      (in (_.apply inits $function)))))
-
-(def $curried (_.var "curried"))
-(def $missing (_.var "missing"))
-
-(def (input_declaration register)
-  (-> Register Expression)
-  (_.set! (|> register ++ //when.register)
-          (|> $curried (_.item (|> register ++ .int _.int)))))
-
-(def .public (function expression archive [environment arity bodyS])
-  (Generator (Abstraction Synthesis))
-  (do [! ///////phase.monad]
-    [[[function_module function_artifact] bodyO] (/////generation.with_new_context archive
-                                                   (do !
-                                                     [$self (at ! each (|>> ///reference.artifact _.var)
-                                                                (/////generation.context archive))]
-                                                     (/////generation.with_anchor $self
-                                                       (expression archive bodyS))))
-     closureO+ (monad.each ! (expression archive) environment)
-     .let [arityO (|> arity .int _.int)
-           $num_args (_.var "num_args")
-           $self (_.var (///reference.artifact [function_module function_artifact]))
-           apply_poly (.function (_ args func)
-                        (_.apply (list func args) (_.var "do.call")))]]
-    (with_closure function_artifact $self closureO+
-      (_.set! $self (_.function (list _.var_args)
-                      (all _.then
-                           (_.set! $curried (_.list (list _.var_args)))
-                           (_.set! $num_args (_.length $curried))
-                           (_.cond (list [(|> $num_args (_.= arityO))
-                                          (all _.then
-                                               (_.set! (//when.register 0) $self)
-                                               (|> arity
-                                                   list.indices
-                                                   (list#each input_declaration)
-                                                   (list#mix _.then bodyO)))]
-                                         [(|> $num_args (_.> arityO))
-                                          (let [arity_args (_.slice (_.int +1) arityO $curried)
-                                                output_func_args (_.slice (|> arityO (_.+ (_.int +1)))
-                                                                          $num_args
-                                                                          $curried)]
-                                            (|> $self
-                                                (apply_poly arity_args)
-                                                (apply_poly output_func_args)))])
-                                   ... (|> $num_args (_.< arityO))
-                                   (let [$missing (_.var "missing")]
-                                     (_.function (list _.var_args)
-                                       (all _.then
-                                            (_.set! $missing (_.list (list _.var_args)))
-                                            (|> $self
-                                                (apply_poly (_.apply (list $curried $missing)
-                                                                     (_.var "append"))))))))))))
-    ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/loop.lux
deleted file mode 100644
index 7a72081e9..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/loop.lux
+++ /dev/null
@@ -1,66 +0,0 @@
-(.require
- [library
-  [lux (.except Scope)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" set (.only Set)]]]
-   [math
-    [number
-     ["n" nat]]]
-   [meta
-    [target
-     ["_" r]]]]]
- ["[0]" //
-  [runtime (.only Operation Phase Generator)]
-  ["[1][0]" when]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    [synthesis
-     ["[0]" when]]
-    ["/[1]" //
-     ["[0]" synthesis (.only Scope Synthesis)]
-     ["[1][0]" generation]
-     ["//[1]" ///
-      ["[1][0]" phase]
-      [meta
-       [archive (.only Archive)]]
-      [reference
-       [variable (.only Register)]]]]]]])
-
-(def .public (scope expression archive [offset initsS+ bodyS])
-  (Generator (Scope Synthesis))
-  (when initsS+
-    ... function/false/non-independent loop
-    {.#End}
-    (expression archive bodyS)
-
-    ... true loop
-    _
-    (do [! ///////phase.monad]
-      [$scope (at ! each _.var (/////generation.symbol "loop_scope"))
-       initsO+ (monad.each ! (expression archive) initsS+)
-       bodyO (/////generation.with_anchor $scope
-               (expression archive bodyS))]
-      (in (_.block
-           (all _.then
-                (_.set! $scope
-                        (_.function (|> initsS+
-                                        list.size
-                                        list.indices
-                                        (list#each (|>> (n.+ offset) //when.register)))
-                          bodyO))
-                (_.apply initsO+ $scope)))))))
-
-(def .public (again expression archive argsS+)
-  (Generator (List Synthesis))
-  (do [! ///////phase.monad]
-    [$scope /////generation.anchor
-     argsO+ (monad.each ! (expression archive) argsS+)]
-    (in (_.apply argsO+ $scope))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/primitive.lux
deleted file mode 100644
index ffd4625bb..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/primitive.lux
+++ /dev/null
@@ -1,19 +0,0 @@
-(.require
- [library
-  [lux (.except i64)
-   [meta
-    [target
-     ["_" r (.only Expression)]]]]]
- ["[0]" //
-  ["[1][0]" runtime]])
-
-(with_template [  ]
-  [(def .public 
-     (->  Expression)
-     )]
-
-  [bit  Bit       _.bool]
-  [i64  (I64 Any) (|>> .int //runtime.i64)]
-  [f64  Frac      _.float]
-  [text Text      _.string]
-  )
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/procedure/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/procedure/common.lux
deleted file mode 100644
index f1ce04dee..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/procedure/common.lux
+++ /dev/null
@@ -1,292 +0,0 @@
-(.require
- lux
- (lux (control [library
-                [monad (.only do)]]
-               ["ex" exception]
-               ["p" parser])
-      (data ["e" error]
-            [text]
-            text/format
-            [number]
-            (coll [list "list/" Functor]
-                  (dictionary ["dict" unordered (.only Dict)])))
-      [macro (.only with_symbols)]
-      (macro [code]
-        ["s" syntax (.only syntax)])
-      [host])
- (luxc ["&" lang]
-       (lang ["la" analysis]
-             ["ls" synthesis]
-             (host [r (.only Expression)])))
- [///]
- (/// ["[0]T" runtime]
-      ["[0]T" when]
-      ["[0]T" function]
-      ["[0]T" loop]))
-
-... [Types]
-(type .public Translator
-  (-> ls.Synthesis (Meta Expression)))
-
-(type .public Proc
-  (-> Translator (List ls.Synthesis) (Meta Expression)))
-
-(type .public Bundle
-  (Dict Text Proc))
-
-... [Utils]
-(def .public (install name unnamed)
-  (-> Text (-> Text Proc)
-      (-> Bundle Bundle))
-  (dict.has name (unnamed name)))
-
-(def .public (prefix prefix bundle)
-  (-> Text Bundle Bundle)
-  (|> bundle
-      dict.entries
-      (list/each (function (_ [key val]) [(format prefix " " key) val]))
-      (dict.from_list text.Hash)))
-
-... [Procedures]
-... [[Lux]]
-(def (lux//is [leftO rightO])
-  Binary
-  (r.apply (list leftO rightO)
-           (r.global "identical")))
-
-(def (lux//if [testO thenO elseO])
-  Trinary
-  (whenT.translate_if testO thenO elseO))
-
-(def (lux//try riskyO)
-  Unary
-  (runtimeT.lux//try riskyO))
-
-(exception.def .public (Wrong_Syntax message)
-  (Exception Text)
-  message)
-
-(def .public (wrong_syntax procedure args)
-  (-> Text (List ls.Synthesis) Text)
-  (format "Procedure: " procedure "\n"
-          "Arguments: " (%code (code.tuple args))))
-
-(def lux//loop
-  (-> Text Proc)
-  (function (_ proc_name)
-    (function (_ translate inputsS)
-      (when (s.result inputsS (all p.and s.nat (s.tuple (p.many s.any)) s.any))
-        {e.#Success [offset initsS+ bodyS]}
-        (loopT.translate_loop translate offset initsS+ bodyS)
-
-        {e.#Error error}
-        (&.throw Wrong_Syntax (wrong_syntax proc_name inputsS)))
-      )))
-
-(def lux//again
-  (-> Text Proc)
-  (function (_ proc_name)
-    (function (_ translate inputsS)
-      (loopT.translate_again translate inputsS))))
-
-(def lux_procs
-  Bundle
-  (|> (dict.empty text.Hash)
-      (install "is" (binary lux//is))
-      (install "try" (unary lux//try))
-      (install "if" (trinary lux//if))
-      (install "loop" lux//loop)
-      (install "again" lux//again)
-      ))
-
-... [[Bits]]
-(with_template [ ]
-  [(def ( [subjectO paramO])
-     Binary
-     ( paramO subjectO))]
-  
-  [bit//and runtimeT.bit//and]
-  [bit//or  runtimeT.bit//or]
-  [bit//xor runtimeT.bit//xor]
-  )
-
-(with_template [ ]
-  [(def ( [subjectO paramO])
-     Binary
-     ( (runtimeT.int64_low paramO) subjectO))]
-
-  [bit//left_shifted             runtimeT.bit//left_shifted]
-  [bit//arithmetic_right_shifted runtimeT.bit//arithmetic_right_shifted]
-  [bit//logical_right_shifted    runtimeT.bit//logical_right_shifted]
-  )
-
-(def bit_procs
-  Bundle
-  (<| (prefix "bit")
-      (|> (dict.empty text.Hash)
-          (install "and" (binary bit//and))
-          (install "or" (binary bit//or))
-          (install "xor" (binary bit//xor))
-          (install "left-shift" (binary bit//left_shifted))
-          (install "logical-right-shift" (binary bit//logical_right_shifted))
-          (install "arithmetic-right-shift" (binary bit//arithmetic_right_shifted))
-          )))
-
-... [[Numbers]]
-(host.import java/lang/Double
-  ("static" MIN_VALUE Double)
-  ("static" MAX_VALUE Double))
-
-(with_template [  ]
-  [(def ( _)
-     Nullary
-     ( ))]
-
-  [frac//smallest Double::MIN_VALUE            r.float]
-  [frac//min      (f/* -1.0 Double::MAX_VALUE) r.float]
-  [frac//max      Double::MAX_VALUE            r.float]
-  )
-
-(with_template [ ]
-  [(def ( [subjectO paramO])
-     Binary
-     (|> subjectO ( paramO)))]
-
-  [int//add        runtimeT.int//+]
-  [int//sub        runtimeT.int//-]
-  [int//mul        runtimeT.int//*]
-  [int//div        runtimeT.int///]
-  [int//rem        runtimeT.int//%]
-  )
-
-(with_template [ ]
-  [(def ( [subjectO paramO])
-     Binary
-     ( paramO subjectO))]
-
-  [frac//add r.+]
-  [frac//sub r.-]
-  [frac//mul r.*]
-  [frac//div r./]
-  [frac//rem r.%%]
-  [frac//=   r.=]
-  [frac//<   r.<]
-
-  [text//=   r.=]
-  [text//<   r.<]
-  )
-
-(with_template [ ]
-  [(def ( [subjectO paramO])
-     Binary
-     ( paramO subjectO))]
-
-  [int//= runtimeT.int//=]
-  [int//< runtimeT.int//<]
-  )
-
-(def (apply1 func)
-  (-> Expression (-> Expression Expression))
-  (function (_ value)
-    (r.apply (list value) func)))
-
-(def int//char (|>> runtimeT.int64_low (apply1 (r.global "intToUtf8"))))
-
-(def int_procs
-  Bundle
-  (<| (prefix "int")
-      (|> (dict.empty text.Hash)
-          (install "+" (binary int//add))
-          (install "-" (binary int//sub))
-          (install "*" (binary int//mul))
-          (install "/" (binary int//div))
-          (install "%" (binary int//rem))
-          (install "=" (binary int//=))
-          (install "<" (binary int//<))
-          (install "to-frac" (unary runtimeT.int//float))
-          (install "char" (unary int//char)))))
-
-(def (frac//encode value)
-  (-> Expression Expression)
-  (r.apply (list (r.string "%f") value) (r.global "sprintf")))
-
-(def frac_procs
-  Bundle
-  (<| (prefix "frac")
-      (|> (dict.empty text.Hash)
-          (install "+" (binary frac//add))
-          (install "-" (binary frac//sub))
-          (install "*" (binary frac//mul))
-          (install "/" (binary frac//div))
-          (install "%" (binary frac//rem))
-          (install "=" (binary frac//=))
-          (install "<" (binary frac//<))
-          (install "smallest" (nullary frac//smallest))
-          (install "min" (nullary frac//min))
-          (install "max" (nullary frac//max))
-          (install "to-int" (unary (apply1 (r.global "as.integer"))))
-          (install "encode" (unary frac//encode))
-          (install "decode" (unary runtimeT.frac//decode)))))
-
-... [[Text]]
-(def (text//concat [subjectO paramO])
-  Binary
-  (r.apply (list subjectO paramO) (r.global "paste0")))
-
-(def (text//char [subjectO paramO])
-  Binary
-  (runtimeT.text//char subjectO paramO))
-
-(def (text//clip [subjectO paramO extraO])
-  Trinary
-  (runtimeT.text//clip subjectO paramO extraO))
-
-(def (text//index [textO partO startO])
-  Trinary
-  (runtimeT.text//index textO partO startO))
-
-(def text_procs
-  Bundle
-  (<| (prefix "text")
-      (|> (dict.empty text.Hash)
-          (install "=" (binary text//=))
-          (install "<" (binary text//<))
-          (install "concat" (binary text//concat))
-          (install "index" (trinary text//index))
-          (install "size" (unary (|>> (apply1 (r.global "nchar")) runtimeT.int//from_float)))
-          (install "char" (binary text//char))
-          (install "clip" (trinary text//clip))
-          )))
-
-... [[IO]]
-(def (io//exit input)
-  Unary
-  (r.apply_kw (list)
-              (list ["status" (runtimeT.int//float input)])
-              (r.global "quit")))
-
-(def (void code)
-  (-> Expression Expression)
-  (r.block (r.then code runtimeT.unit)))
-
-(def io_procs
-  Bundle
-  (<| (prefix "io")
-      (|> (dict.empty text.Hash)
-          (install "log" (unary (|>> r.print ..void)))
-          (install "error" (unary r.stop))
-          (install "exit" (unary io//exit))
-          (install "current-time" (nullary (function (_ _)
-                                             (runtimeT.io//current_time! runtimeT.unit)))))))
-
-... [Bundles]
-(def .public procedures
-  Bundle
-  (<| (prefix "lux")
-      (|> lux_procs
-          (dict.composite bit_procs)
-          (dict.composite int_procs)
-          (dict.composite frac_procs)
-          (dict.composite text_procs)
-          (dict.composite io_procs)
-          )))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/procedure/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/procedure/host.lux
deleted file mode 100644
index 1b588bc61..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/procedure/host.lux
+++ /dev/null
@@ -1,90 +0,0 @@
-(.require
- lux
- (lux (control [library
-                [monad (.only do)]])
-      (data [text]
-            text/format
-            (coll [list "list/" Functor]
-                  (dictionary ["dict" unordered (.only Dict)])))
-      [macro "macro/" Monad])
- (luxc ["&" lang]
-       (lang ["la" analysis]
-             ["ls" synthesis]
-             (host [ruby (.only Ruby Expression Statement)])))
- [///]
- (/// ["[0]T" runtime])
- (// ["@" common]))
-
-... (with_template [ ]
-...   [(def ( _) @.Nullary )]
-
-...   [lua//nil      "nil"]
-...   [lua//table    "{}"]
-...   )
-
-... (def (lua//global proc translate inputs)
-...   (-> Text @.Proc)
-...   (when inputs
-...     (list [_ {.#Text name}])
-...     (do macro.Monad
-...       []
-...       (in name))
-
-...     _
-...     (&.throw @.Wrong_Syntax (@.wrong_syntax proc inputs))))
-
-... (def (lua//call proc translate inputs)
-...   (-> Text @.Proc)
-...   (when inputs
-...     (list.partial functionS argsS+)
-...     (do [@ macro.Monad]
-...       [functionO (translate functionS)
-...        argsO+ (monad.each @ translate argsS+)]
-...       (in (lua.apply functionO argsO+)))
-
-...     _
-...     (&.throw @.Wrong_Syntax (@.wrong_syntax proc inputs))))
-
-... (def lua_procs
-...   @.Bundle
-...   (|> (dict.empty text.Hash)
-...       (@.install "nil" (@.nullary lua//nil))
-...       (@.install "table" (@.nullary lua//table))
-...       (@.install "global" lua//global)
-...       (@.install "call" lua//call)))
-
-... (def (table//call proc translate inputs)
-...   (-> Text @.Proc)
-...   (when inputs
-...     (list.partial tableS [_ {.#Text field}] argsS+)
-...     (do [@ macro.Monad]
-...       [tableO (translate tableS)
-...        argsO+ (monad.each @ translate argsS+)]
-...       (in (lua.method field tableO argsO+)))
-
-...     _
-...     (&.throw @.Wrong_Syntax (@.wrong_syntax proc inputs))))
-
-... (def (table//get [fieldO tableO])
-...   @.Binary
-...   (runtimeT.lua//get tableO fieldO))
-
-... (def (table//set [fieldO valueO tableO])
-...   @.Trinary
-...   (runtimeT.lua//set tableO fieldO valueO))
-
-... (def table_procs
-...   @.Bundle
-...   (<| (@.prefix "table")
-...       (|> (dict.empty text.Hash)
-...           (@.install "call" table//call)
-...           (@.install "get" (@.binary table//get))
-...           (@.install "set" (@.trinary table//set)))))
-
-(def .public procedures
-  @.Bundle
-  (<| (@.prefix "lua")
-      (dict.empty text.Hash)
-      ... (|> lua_procs
-      ...     (dict.composite table_procs))
-      ))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/reference.lux
deleted file mode 100644
index b80350acf..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/reference.lux
+++ /dev/null
@@ -1,14 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [meta
-    [target
-     ["_" r (.only Expression)]]]]]
- [///
-  [reference (.only System)]])
-
-(def .public system
-  (System Expression)
-  (implementation
-   (def constant _.var)
-   (def variable _.var)))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/runtime.lux
deleted file mode 100644
index 261cba579..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/runtime.lux
+++ /dev/null
@@ -1,882 +0,0 @@
-(.require
- [library
-  [lux (.except Location ++ i64)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [control
-    ["<>" parser]
-    ["[0]" function]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.use "[1]#[0]" hash)
-     ["%" \\format (.only format)]
-     [encoding
-      ["[0]" utf8]]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor)]
-     ["[0]" sequence]]]
-   [math
-    [number (.only hex)
-     ["n" nat]
-     ["i" int (.use "[1]#[0]" interval)]
-     ["[0]" i64]]]
-   ["[0]" meta (.only)
-    ["[0]" code (.only)
-     ["<[1]>" \\parser]]
-    ["[0]" macro (.only)
-     [syntax (.only syntax)]]
-    ["@" target (.only)
-     ["_" r (.only SVar Expression)]]]]]
- ["[0]" ///
-  ["[1][0]" reference]
-  ["//[1]" ///
-   [analysis (.only Variant)]
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["[1][0]" generation]
-   ["//[1]" /// (.only)
-    ["[1][0]" phase]
-    [reference
-     [variable (.only Register)]]
-    [meta
-     [archive (.only Output Archive)
-      ["[0]" artifact (.only Registry)]]]]]])
-
-(def module_id
-  0)
-
-(with_template [ ]
-  [(type .public 
-     ( _.SVar _.Expression _.Expression))]
-
-  [Operation /////generation.Operation]
-  [Phase /////generation.Phase]
-  [Handler /////generation.Handler]
-  [Bundle /////generation.Bundle]
-  )
-
-(type .public (Generator i)
-  (-> Phase Archive i (Operation Expression)))
-
-(def .public unit
-  Expression
-  (_.string /////synthesis.unit))
-
-(def full_32 (hex "FFFFFFFF"))
-(def half_32 (hex "7FFFFFFF"))
-(def post_32 (hex "100000000"))
-
-(def (cap_32 input)
-  (-> Nat Int)
-  (cond (n.> full_32 input)
-        (|> input (i64.and full_32) cap_32)
-        
-        (n.> half_32 input)
-        (|> post_32 (n.- input) .int (i.* -1))
-        
-        ... else
-        (.int input)))
-
-(def .public with_vars
-  (syntax (_ [vars (.tuple (<>.some .local))
-              body .any])
-    (do [! meta.monad]
-      [ids (monad.all ! (list.repeated (list.size vars) meta.seed))]
-      (in (list (` (let [(,* (|> vars
-                                 (list.zipped_2 ids)
-                                 (list#each (function (_ [id var])
-                                              (list (code.local var)
-                                                    (` (_.var (, (code.text (format "v" (%.nat id)))))))))
-                                 list.together))]
-                     (, body))))))))
-
-(def runtime
-  (syntax (_ [declaration (<>.or .local
-                                 (.form (<>.and .local
-                                                      (<>.some .local))))
-              code .any])
-    (do meta.monad
-      [runtime_id meta.seed]
-      (macro.with_symbols [g!_]
-        (let [runtime (code.local (///reference.artifact [..module_id runtime_id]))
-              runtime_name (` (_.var (, (code.text (%.code runtime)))))]
-          (when declaration
-            {.#Left name}
-            (let [g!name (code.local name)]
-              (in (list (` (def .public (, g!name)
-                             _.SVar
-                             (, runtime_name)))
-                        
-                        (` (def (, (code.local (format "@" name)))
-                             _.Expression
-                             (_.set! (, runtime_name) (, code)))))))
-            
-            {.#Right [name inputs]}
-            (let [g!name (code.local name)
-                  inputsC (list#each code.local inputs)
-                  inputs_typesC (list#each (function.constant (` _.Expression))
-                                           inputs)]
-              (in (list (` (def .public ((, g!name) (,* inputsC))
-                             (-> (,* inputs_typesC) _.Expression)
-                             (_.apply (list (,* inputsC)) (, runtime_name))))
-
-                        (` (def (, (code.local (format "@" name)))
-                             _.Expression
-                             (..with_vars [(,* inputsC)]
-                               (_.set! (, runtime_name)
-                                       (_.function (list (,* inputsC))
-                                         (, code)))))))))))))))
-
-(def .public variant_tag_field "luxVT")
-(def .public variant_flag_field "luxVF")
-(def .public variant_value_field "luxVV")
-
-(def .public (flag value)
-  (-> Bit Expression)
-  (if value
-    (_.string "")
-    _.null))
-
-(runtime
- (adt::variant tag last? value)
- (_.named_list (list [..variant_tag_field (_.as::integer tag)]
-                     [..variant_flag_field last?]
-                     [..variant_value_field value])))
-
-(def .public (variant tag last? value)
-  (-> Nat Bit Expression Expression)
-  (adt::variant (_.int (.int tag))
-                (flag last?)
-                value))
-
-(def .public none
-  Expression
-  (variant 0 #0 ..unit))
-
-(def .public some
-  (-> Expression Expression)
-  (variant 1 #1))
-
-(def .public left
-  (-> Expression Expression)
-  (variant 0 #0))
-
-(def .public right
-  (-> Expression Expression)
-  (variant 1 #1))
-
-(def high_shift (_.bit_shl (_.int +32)))
-
-(with_template [ ]
-  [(runtime
-     (|> (_.as::integer (_.int +2)) (_.** (_.as::integer (_.int )))))]
-
-  [f2^32 +32]
-  [f2^63 +63]
-  )
-
-(def (as_double value)
-  (-> Expression Expression)
-  (_.apply (list value) (_.var "as.double")))
-
-(def .public i64_high_field "luxIH")
-(def .public i64_low_field "luxIL")
-
-(runtime
- (i64::unsigned_low input)
- (with_vars [low]
-   (all _.then
-        (_.set! low (_.item (_.string ..i64_low_field) input))
-        (_.if (_.< (_.int +0) low)
-          (_.+ f2^32 low)
-          low))))
-
-(runtime
- (i64::float input)
- (let [high (|> input
-                (_.item (_.string ..i64_high_field))
-                high_shift)
-       low (|> input
-               i64::unsigned_low)]
-   (|> high (_.+ low) as_double)))
-
-(runtime
- (i64::new high low)
- (_.named_list (list [..i64_high_field (_.as::integer high)]
-                     [..i64_low_field (_.as::integer low)])))
-
-(def high_32
-  (-> Nat Nat)
-  (i64.right_shifted 32))
-
-(def low_32
-  (-> Nat Nat)
-  (|>> (i64.and (hex "FFFFFFFF"))))
-
-(def .public (i64 value)
-  (-> Int Expression)
-  (let [value (.nat value)]
-    (i64::new (|> value ..high_32 ..cap_32 _.int)
-              (|> value ..low_32 ..cap_32 _.int))))
-
-(def .public (lux_i64 high low)
-  (-> Int Int Int)
-  (|> high
-      (i64.left_shifted 32)
-      (i64.or low)))
-
-(with_template [ ]
-  [(runtime
-    
-    (..i64 ))]
-
-  [i64::zero +0]
-  [i64::one +1]
-  [i64::min i#bottom]
-  [i64::max i#top]
-  )
-
-(def .public i64_high (_.item (_.string ..i64_high_field)))
-(def .public i64_low (_.item (_.string ..i64_low_field)))
-
-(runtime
- (i64::not input)
- (i64::new (|> input i64_high _.bit_not)
-           (|> input i64_low _.bit_not)))
-
-(runtime
- (i64::+ param subject)
- (with_vars [sH sL pH pL
-             x00 x16 x32 x48]
-   (all _.then
-        (_.set! sH (|> subject i64_high))
-        (_.set! sL (|> subject i64_low))
-        (_.set! pH (|> param i64_high))
-        (_.set! pL (|> param i64_low))
-        (let [bits16 (_.manual "0xFFFF")
-              move_top_16 (_.bit_shl (_.int +16))
-              top_16 (_.bit_ushr (_.int +16))
-              bottom_16 (_.bit_and bits16)
-              split_16 (function (_ source)
-                         [(|> source top_16)
-                          (|> source bottom_16)])
-              split_int (function (_ high low)
-                          [(split_16 high)
-                           (split_16 low)])
-              
-              [[s48 s32] [s16 s00]] (split_int sH sL)
-              [[p48 p32] [p16 p00]] (split_int pH pL)
-              new_half (function (_ top bottom)
-                         (|> top bottom_16 move_top_16
-                             (_.bit_or (bottom_16 bottom))))]
-          (all _.then
-               (_.set! x00 (|> s00 (_.+ p00)))
-               (_.set! x16 (|> x00 top_16 (_.+ s16) (_.+ p16)))
-               (_.set! x32 (|> x16 top_16 (_.+ s32) (_.+ p32)))
-               (_.set! x48 (|> x32 top_16 (_.+ s48) (_.+ p48)))
-               (i64::new (new_half x48 x32)
-                         (new_half x16 x00)))))))
-
-(runtime
- (i64::= reference sample)
- (let [n/a? (function (_ value)
-              (_.apply (list value) (_.var "is.na")))
-       isTRUE? (function (_ value)
-                 (_.apply (list value) (_.var "isTRUE")))
-       comparison (is (-> (-> Expression Expression) Expression)
-                      (function (_ field)
-                        (|> (|> (field sample) (_.= (field reference)))
-                            (_.or (|> (n/a? (field sample))
-                                      (_.and (n/a? (field reference))))))))]
-   (|> (comparison i64_high)
-       (_.and (comparison i64_low))
-       isTRUE?)))
-
-(runtime
- (i64::opposite input)
- (_.if (|> input (i64::= i64::min))
-   i64::min
-   (|> input i64::not (i64::+ i64::one))))
-
-(runtime
- i64::-one
- (i64::opposite i64::one))
-
-(runtime
- (i64::- param subject)
- (i64::+ (i64::opposite param) subject))
-
-(runtime
- (i64::< reference sample)
- (with_vars [r_? s_?]
-   (all _.then
-        (_.set! s_? (|> sample ..i64_high (_.< (_.int +0))))
-        (_.set! r_? (|> reference ..i64_high (_.< (_.int +0))))
-        (|> (|> s_? (_.and (_.not r_?)))
-            (_.or (|> (_.not s_?) (_.and r_?) _.not))
-            (_.or (|> sample
-                      (i64::- reference)
-                      ..i64_high
-                      (_.< (_.int +0))))))))
-
-(runtime
- (i64::of_float input)
- (_.cond (list [(_.apply (list input) (_.var "is.nan"))
-                i64::zero]
-               [(|> input (_.<= (_.opposite f2^63)))
-                i64::min]
-               [(|> input (_.+ (_.float +1.0)) (_.>= f2^63))
-                i64::max]
-               [(|> input (_.< (_.float +0.0)))
-                (|> input _.opposite i64::of_float i64::opposite)])
-         (i64::new (|> input (_./ f2^32))
-                   (|> input (_.%% f2^32)))))
-
-(runtime
- (i64::* param subject)
- (with_vars [sH sL pH pL
-             x00 x16 x32 x48]
-   (all _.then
-        (_.set! sH (|> subject i64_high))
-        (_.set! pH (|> param i64_high))
-        (let [negative_subject? (|> sH (_.< (_.int +0)))
-              negative_param? (|> pH (_.< (_.int +0)))]
-          (_.cond (list [negative_subject?
-                         (_.if negative_param?
-                           (i64::* (i64::opposite param)
-                                   (i64::opposite subject))
-                           (i64::opposite (i64::* param
-                                                  (i64::opposite subject))))]
-
-                        [negative_param?
-                         (i64::opposite (i64::* (i64::opposite param)
-                                                subject))])
-                  (all _.then
-                       (_.set! sL (|> subject i64_low))
-                       (_.set! pL (|> param i64_low))
-                       (let [bits16 (_.manual "0xFFFF")
-                             move_top_16 (_.bit_shl (_.int +16))
-                             top_16 (_.bit_ushr (_.int +16))
-                             bottom_16 (_.bit_and bits16)
-                             split_16 (function (_ source)
-                                        [(|> source top_16)
-                                         (|> source bottom_16)])
-                             split_int (function (_ high low)
-                                         [(split_16 high)
-                                          (split_16 low)])
-                             new_half (function (_ top bottom)
-                                        (|> top bottom_16 move_top_16
-                                            (_.bit_or (bottom_16 bottom))))
-                             x16_top (|> x16 top_16)
-                             x32_top (|> x32 top_16)]
-                         (with_vars [s48 s32 s16 s00
-                                     p48 p32 p16 p00]
-                           (let [[[_s48 _s32] [_s16 _s00]] (split_int sH sL)
-                                 [[_p48 _p32] [_p16 _p00]] (split_int pH pL)
-                                 set_subject_chunks! (all _.then (_.set! s48 _s48) (_.set! s32 _s32) (_.set! s16 _s16) (_.set! s00 _s00))
-                                 set_param_chunks! (all _.then (_.set! p48 _p48) (_.set! p32 _p32) (_.set! p16 _p16) (_.set! p00 _p00))]
-                             (all _.then
-                                  set_subject_chunks!
-                                  set_param_chunks!
-                                  (_.set! x00 (|> s00 (_.* p00)))
-                                  (_.set! x16 (|> x00 top_16 (_.+ (|> s16 (_.* p00)))))
-                                  (_.set! x32 x16_top)
-                                  (_.set! x16 (|> x16 bottom_16 (_.+ (|> s00 (_.* p16)))))
-                                  (_.set! x32 (|> x32 (_.+ x16_top) (_.+ (|> s32 (_.* p00)))))
-                                  (_.set! x48 x32_top)
-                                  (_.set! x32 (|> x32 bottom_16 (_.+ (|> s16 (_.* p16)))))
-                                  (_.set! x48 (|> x48 (_.+ x32_top)))
-                                  (_.set! x32 (|> x32 bottom_16 (_.+ (|> s00 (_.* p32)))))
-                                  (_.set! x48 (|> x48 (_.+ x32_top)
-                                                  (_.+ (|> s48 (_.* p00)))
-                                                  (_.+ (|> s32 (_.* p16)))
-                                                  (_.+ (|> s16 (_.* p32)))
-                                                  (_.+ (|> s00 (_.* p48)))))
-                                  (i64::new (new_half x48 x32)
-                                            (new_half x16 x00)))))
-                         )))))))
-
-(def (limit_shift! shift)
-  (-> SVar Expression)
-  (_.set! shift (|> shift (_.bit_and (_.as::integer (_.int +63))))))
-
-(def (no_shift_clause shift input)
-  (-> SVar SVar [Expression Expression])
-  [(|> shift (_.= (_.int +0)))
-   input])
-
-(runtime
- (i64::left_shifted shift input)
- (all _.then
-      (limit_shift! shift)
-      (_.cond (list (no_shift_clause shift input)
-                    [(|> shift (_.< (_.int +32)))
-                     (let [mid (|> (i64_low input) (_.bit_ushr (|> (_.int +32) (_.- shift))))
-                           high (|> (i64_high input)
-                                    (_.bit_shl shift)
-                                    (_.bit_or mid))
-                           low (|> (i64_low input)
-                                   (_.bit_shl shift))]
-                       (i64::new high low))])
-              (let [high (|> (i64_high input)
-                             (_.bit_shl (|> shift (_.- (_.int +32)))))]
-                (i64::new high (_.int +0))))))
-
-(runtime
- (i64::arithmetic_right_shifted_32 shift input)
- (let [top_bit (|> input (_.bit_and (_.as::integer (_.int (hex "+80000000")))))]
-   (|> input
-       (_.bit_ushr shift)
-       (_.bit_or top_bit))))
-
-(runtime
- (i64::arithmetic_right_shifted shift input)
- (all _.then
-      (limit_shift! shift)
-      (_.cond (list (no_shift_clause shift input)
-                    [(|> shift (_.< (_.int +32)))
-                     (let [mid (|> (i64_high input) (_.bit_shl (|> (_.int +32) (_.- shift))))
-                           high (|> (i64_high input)
-                                    (i64::arithmetic_right_shifted_32 shift))
-                           low (|> (i64_low input)
-                                   (_.bit_ushr shift)
-                                   (_.bit_or mid))]
-                       (i64::new high low))])
-              (let [low (|> (i64_high input)
-                            (i64::arithmetic_right_shifted_32 (|> shift (_.- (_.int +32)))))
-                    high (_.if (_.< (_.int +0)
-                                    (i64_high input))
-                           (_.int -1)
-                           (_.int +0))]
-                (i64::new high low)))))
-
-(runtime
- (i64::/ param subject)
- (let [negative? (|>> (i64::< i64::zero))
-       valid_division_check [(|> param (i64::= i64::zero))
-                             (_.stop (_.string "Cannot divide by zero!"))]
-       short_circuit_check [(|> subject (i64::= i64::zero))
-                            i64::zero]]
-   (_.cond (list valid_division_check
-                 short_circuit_check
-
-                 [(|> subject (i64::= i64::min))
-                  (_.cond (list [(|> (|> param (i64::= i64::one))
-                                     (_.or (|> param (i64::= i64::-one))))
-                                 i64::min]
-                                [(|> param (i64::= i64::min))
-                                 i64::one])
-                          (with_vars [approximation]
-                            (all _.then
-                                 (_.set! approximation
-                                         (|> subject
-                                             (i64::arithmetic_right_shifted (_.int +1))
-                                             (i64::/ param)
-                                             (i64::left_shifted (_.int +1))))
-                                 (_.if (|> approximation (i64::= i64::zero))
-                                   (_.if (negative? param)
-                                     i64::one
-                                     i64::-one)
-                                   (let [remainder (i64::- (i64::* param approximation)
-                                                           subject)]
-                                     (|> remainder
-                                         (i64::/ param)
-                                         (i64::+ approximation)))))))]
-                 [(|> param (i64::= i64::min))
-                  i64::zero]
-
-                 [(negative? subject)
-                  (_.if (negative? param)
-                    (|> (i64::opposite subject)
-                        (i64::/ (i64::opposite param)))
-                    (|> (i64::opposite subject)
-                        (i64::/ param)
-                        i64::opposite))]
-
-                 [(negative? param)
-                  (|> param
-                      i64::opposite
-                      (i64::/ subject)
-                      i64::opposite)])
-           (with_vars [result remainder approximate approximate_result log2 approximate_remainder]
-             (all _.then
-                  (_.set! result i64::zero)
-                  (_.set! remainder subject)
-                  (_.while (|> (|> remainder (i64::< param))
-                               (_.or (|> remainder (i64::= param))))
-                           (let [calc_rough_estimate (_.apply (list (|> (i64::float remainder) (_./ (i64::float param))))
-                                                              (_.var "floor"))
-                                 calc_approximate_result (i64::of_float approximate)
-                                 calc_approximate_remainder (|> approximate_result (i64::* param))
-                                 delta (_.if (_.> log2 (_.float +48.0))
-                                         (_.** (|> log2 (_.- (_.float +48.0)))
-                                               (_.float +2.0))
-                                         (_.float +1.0))]
-                             (all _.then
-                                  (_.set! approximate (_.apply (list (_.float +1.0) calc_rough_estimate)
-                                                               (_.var "max")))
-                                  (_.set! log2 (let [log (function (_ input)
-                                                           (_.apply (list input) (_.var "log")))]
-                                                 (_.apply (list (|> (log (_.int +2))
-                                                                    (_./ (log approximate))))
-                                                          (_.var "ceil"))))
-                                  (_.set! approximate_result calc_approximate_result)
-                                  (_.set! approximate_remainder calc_approximate_remainder)
-                                  (_.while (|> (negative? approximate_remainder)
-                                               (_.or (|> approximate_remainder (i64::< remainder))))
-                                           (all _.then
-                                                (_.set! approximate (|> delta (_.- approximate)))
-                                                (_.set! approximate_result calc_approximate_result)
-                                                (_.set! approximate_remainder calc_approximate_remainder)))
-                                  (_.set! result (|> (_.if (|> approximate_result (i64::= i64::zero))
-                                                       i64::one
-                                                       approximate_result)
-                                                     (i64::+ result)))
-                                  (_.set! remainder (|> remainder (i64::- approximate_remainder))))))
-                  result))
-           )))
-
-(runtime
- (i64::% param subject)
- (let [flat (|> subject (i64::/ param) (i64::* param))]
-   (|> subject (i64::- flat))))
-
-(runtime
- (lux::try op)
- (with_vars [error value]
-   (_.try (all _.then
-               (_.set! value (_.apply (list ..unit) op))
-               (..right value))
-          {.#None}
-          {.#Some (_.function (list error)
-                    (..left (_.item (_.string "message")
-                                    error)))}
-          {.#None})))
-
-(runtime
- (lux::program_args program_args)
- (with_vars [inputs value]
-   (all _.then
-        (_.set! inputs ..none)
-        (<| (_.for_in value program_args)
-            (_.set! inputs (..some (_.list (list value inputs)))))
-        inputs)))
-
-(def runtime//lux
-  Expression
-  (all _.then
-       @lux::try
-       @lux::program_args
-       ))
-
-(def current_time_float
-  Expression
-  (let [raw_time (_.apply (list) (_.var "Sys.time"))]
-    (_.apply (list raw_time) (_.var "as.numeric"))))
-
-(runtime
- (io::current_time! _)
- (|> current_time_float
-     (_.* (_.float +1,000.0))
-     i64::of_float))
-
-(def runtime//io
-  Expression
-  (all _.then
-       @io::current_time!
-       ))
-
-(def minimum_index_length
-  (-> SVar Expression)
-  (|>> (_.+ (_.int +1))))
-
-(def (product_element product index)
-  (-> Expression Expression Expression)
-  (|> product (_.item (|> index (_.+ (_.int +1))))))
-
-(def (product_tail product)
-  (-> SVar Expression)
-  (|> product (_.item (_.length product))))
-
-(def (updated_index min_length product)
-  (-> Expression Expression Expression)
-  (|> min_length (_.- (_.length product))))
-
-(runtime
- (tuple::left index product)
- (let [$index_min_length (_.var "index_min_length")]
-   (all _.then
-        (_.set! $index_min_length (minimum_index_length index))
-        (_.if (|> (_.length product) (_.> $index_min_length))
-          ... No need for recursion
-          (product_element product index)
-          ... Needs recursion
-          (tuple::left (updated_index $index_min_length product)
-                       (product_tail product))))))
-
-(runtime
- (tuple::right index product)
- (let [$index_min_length (_.var "index_min_length")]
-   (all _.then
-        (_.set! $index_min_length (minimum_index_length index))
-        (_.cond (list [... Last element.
-                       (|> (_.length product) (_.= $index_min_length))
-                       (product_element product index)]
-                      [... Needs recursion
-                       (|> (_.length product) (_.< $index_min_length))
-                       (tuple::right (updated_index $index_min_length product)
-                                     (product_tail product))])
-                ... Must slice
-                (|> product (_.slice_from index))))))
-
-(runtime
- (sum::get sum wants_last? wanted_tag)
- (let [no_match _.null
-       sum_tag (|> sum (_.item (_.string ..variant_tag_field)))
-       sum_flag (|> sum (_.item (_.string ..variant_flag_field)))
-       sum_value (|> sum (_.item (_.string ..variant_value_field)))
-       is_last? (|> sum_flag (_.= (_.string "")))
-       test_recursion (_.if is_last?
-                        ... Must recurse.
-                        (|> wanted_tag
-                            (_.- sum_tag)
-                            (sum::get sum_value wants_last?))
-                        no_match)]
-   (_.cond (list [(_.= sum_tag wanted_tag)
-                  (_.if (_.= wants_last? sum_flag)
-                    sum_value
-                    test_recursion)]
-
-                 [(|> wanted_tag (_.> sum_tag))
-                  test_recursion]
-
-                 [(|> (|> wants_last? (_.= (_.string "")))
-                      (_.and (|> wanted_tag (_.< sum_tag))))
-                  (adt::variant (|> sum_tag (_.- wanted_tag)) sum_flag sum_value)])
-
-           no_match)))
-
-(def runtime//adt
-  Expression
-  (all _.then
-       @tuple::left
-       @tuple::right
-       @sum::get
-       @adt::variant
-       ))
-
-(with_template [ ]
-  [(runtime
-    ( mask input)
-    (i64::new ( (i64_high mask)
-                    (i64_high input))
-              ( (i64_low mask)
-                    (i64_low input))))]
-
-  [i64::and _.bit_and]
-  [i64::or  _.bit_or]
-  [i64::xor _.bit_xor]
-  )
-
-(runtime
- (i64::right_shifted shift input)
- (all _.then
-      (limit_shift! shift)
-      (_.cond (list (no_shift_clause shift input)
-                    [(|> shift (_.< (_.int +32)))
-                     (with_vars [$mid]
-                       (let [mid (|> (i64_high input) (_.bit_shl (|> (_.int +32) (_.- shift))))
-                             high (|> (i64_high input) (_.bit_ushr shift))
-                             low (|> (i64_low input)
-                                     (_.bit_ushr shift)
-                                     (_.bit_or (_.if (_.apply (list $mid) (_.var "is.na"))
-                                                 (_.as::integer (_.int +0))
-                                                 $mid)))]
-                         (all _.then
-                              (_.set! $mid mid)
-                              (i64::new high low))))]
-                    [(|> shift (_.= (_.int +32)))
-                     (let [high (i64_high input)]
-                       (i64::new (_.int +0) high))])
-              (let [low (|> (i64_high input) (_.bit_ushr (|> shift (_.- (_.int +32)))))]
-                (i64::new (_.int +0) low)))))
-
-(def runtime//i64
-  Expression
-  (all _.then
-       @f2^32
-       @f2^63
-       
-       @i64::new
-       @i64::of_float
-       
-       @i64::and
-       @i64::or
-       @i64::xor
-       @i64::not
-       @i64::left_shifted
-       @i64::arithmetic_right_shifted_32
-       @i64::arithmetic_right_shifted
-       @i64::right_shifted
-
-       @i64::zero
-       @i64::one
-       @i64::min
-       @i64::max
-       @i64::=
-       @i64::<
-       @i64::+
-       @i64::-
-       @i64::opposite
-       @i64::-one
-       @i64::unsigned_low
-       @i64::float
-       @i64::*
-       @i64::/
-       @i64::%
-       ))
-
-(runtime
- (frac::decode input)
- (with_vars [output]
-   (all _.then
-        (_.set! output (_.apply (list input) (_.var "as.numeric")))
-        (_.if (|> output (_.= _.n/a))
-          ..none
-          (..some output)))))
-
-(def runtime//frac
-  Expression
-  (all _.then
-       @frac::decode
-       ))
-
-(def ++
-  (-> Expression Expression)
-  (|>> (_.+ (_.int +1))))
-
-(def (text_clip start end text)
-  (-> Expression Expression Expression Expression)
-  (_.apply (list text start end)
-           (_.var "substr")))
-
-(def (text_length text)
-  (-> Expression Expression)
-  (_.apply (list text) (_.var "nchar")))
-
-(runtime
- (text::index subject param start)
- (with_vars [idx startF subjectL]
-   (all _.then
-        (_.set! startF (i64::float start))
-        (_.set! subjectL (text_length subject))
-        (_.if (_.< subjectL startF)
-          (all _.then
-               (_.set! idx (|> (_.apply_kw (list param (_.if (|> startF (_.= (_.int +0)))
-                                                         subject
-                                                         (text_clip (++ startF)
-                                                                    (++ subjectL)
-                                                                    subject)))
-                                           (list ["fixed" (_.bool #1)])
-                                           (_.var "regexpr"))
-                               (_.item (_.int +1))))
-               (_.if (|> idx (_.= (_.int -1)))
-                 ..none
-                 (..some (i64::of_float (|> idx (_.+ startF))))))
-          ..none))))
-
-(runtime
- (text::clip text minimum additional)
- (with_vars [length]
-   (all _.then
-        (_.set! length (_.length text))
-        (_.set! to (_.+ additional minimum))
-        (_.if (_.< length to)
-          (..some (text_clip (++ minimum) (++ to) text))
-          ..none))))
-
-(def (char_at idx text)
-  (-> Expression Expression Expression)
-  (_.apply (list (text_clip idx idx text))
-           (_.var "utf8ToInt")))
-
-(runtime
- (text::char text idx)
- (_.if (_.< (_.length text) idx)
-   (all _.then
-        (_.set! idx (++ idx))
-        (..some (i64::of_float (char_at idx text))))
-   ..none))
-
-(def runtime//text
-  Expression
-  (all _.then
-       @text::index
-       @text::clip
-       @text::char
-       ))
-
-(def (check_index_out_of_bounds array idx body)
-  (-> Expression Expression Expression Expression)
-  (_.if (_.> (_.length array) idx)
-    (_.stop (_.string "Array index out of bounds!"))
-    body))
-
-(runtime
- (array::new size)
- (with_vars [output]
-   (all _.then
-        (_.set! output (_.list (list)))
-        (_.set_item! (|> size (_.+ (_.int +1)))
-                     _.null
-                     output)
-        output)))
-
-(runtime
- (array::get array idx)
- (with_vars [temp]
-   (<| (check_index_out_of_bounds array idx)
-       (all _.then
-            (_.set! temp (|> array (_.item (_.+ (_.int +1) idx))))
-            (_.if (|> temp (_.= _.null))
-              ..none
-              (..some temp))))))
-
-(runtime
- (array::put array idx value)
- (<| (check_index_out_of_bounds array idx)
-     (all _.then
-          (_.set_item! (_.+ (_.int +1) idx) value array)
-          array)))
-
-(def runtime//array
-  Expression
-  (all _.then
-       @array::new
-       @array::get
-       @array::put
-       ))
-
-(def full_runtime
-  Expression
-  (all _.then
-       runtime//lux
-       runtime//i64
-       runtime//adt
-       runtime//frac
-       runtime//text
-       runtime//array
-       runtime//io
-       ))
-
-(def .public generate
-  (Operation [Registry Output])
-  (do ///////phase.monad
-    [_ (/////generation.execute! ..full_runtime)
-     _ (/////generation.save! (%.nat ..module_id) ..full_runtime)]
-    (in [(|> artifact.empty
-             artifact.resource
-             product.right)
-         (sequence.sequence [(%.nat ..module_id)
-                             (|> ..full_runtime
-                                 _.code
-                                 (at utf8.codec encoded))])])))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/structure.lux
deleted file mode 100644
index 77b7a3f62..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/structure.lux
+++ /dev/null
@@ -1,41 +0,0 @@
-(.require
- [library
-  [lux (.except)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    [collection
-     ["[0]" list]]]
-   [meta
-    [target
-     ["_" r (.only Expression)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" primitive]
-  ["///[1]" ////
-   [analysis (.only Variant Tuple)]
-   ["[1][0]" synthesis (.only Synthesis)]
-   ["//[1]" ///
-    ["[1][0]" phase (.use "[1]#[0]" monad)]]]])
-
-(def .public (tuple expression archive elemsS+)
-  (Generator (Tuple Synthesis))
-  (when elemsS+
-    {.#End}
-    (///////phase#in (//primitive.text /////synthesis.unit))
-
-    {.#Item singletonS {.#End}}
-    (expression archive singletonS)
-
-    _
-    (|> elemsS+
-        (monad.each ///////phase.monad (expression archive))
-        (///////phase#each _.list))))
-
-(def .public (variant expression archive [lefts right? valueS])
-  (Generator (Variant Synthesis))
-  (let [tag (if right?
-              (++ lefts)
-              lefts)]
-    (///////phase#each (|>> (//runtime.variant tag right?))
-                       (expression archive valueS))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/when.lux
deleted file mode 100644
index 0f2a0954c..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/r/when.lux
+++ /dev/null
@@ -1,242 +0,0 @@
-(.require
- [library
-  [lux (.except when let if)
-   [abstract
-    ["[0]" monad (.only do)]]
-   [data
-    ["[0]" product]
-    ["[0]" text (.only)
-     ["%" \\format (.only format)]]
-    [collection
-     ["[0]" list (.use "[1]#[0]" functor mix)]
-     ["[0]" set]]]
-   [math
-    [number
-     ["i" int]]]
-   [meta
-    [macro
-     ["^" pattern]
-     ["[0]" template]]
-    [target
-     ["_" r (.only Expression SVar)]]]]]
- ["[0]" //
-  ["[1][0]" runtime (.only Operation Phase Generator)]
-  ["[1][0]" reference]
-  ["[1][0]" primitive]
-  ["/[1]" //
-   ["[1][0]" reference]
-   ["/[1]" //
-    ["[1][0]" synthesis
-     ["[1]/[0]" when]]
-    ["/[1]" //
-     ["[1][0]" synthesis (.only Member Synthesis Path)]
-     ["[1][0]" generation]
-     ["//[1]" ///
-      [reference
-       ["[1][0]" variable (.only Register)]]
-      ["[1][0]" phase (.use "[1]#[0]" monad)]
-      [meta
-       [archive (.only Archive)]]]]]]])
-
-(def .public register
-  (-> Register SVar)
-  (|>> (///reference.local //reference.system) as_expected))
-
-(def .public capture
-  (-> Register SVar)
-  (|>> (///reference.foreign //reference.system) as_expected))
-
-(def .public (let expression archive [valueS register bodyS])
-  (Generator [Synthesis Register Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)
-     bodyO (expression archive bodyS)]
-    (in (_.block
-         (all _.then
-              (_.set! (..register register) valueO)
-              bodyO)))))
-
-(def .public (if expression archive [testS thenS elseS])
-  (Generator [Synthesis Synthesis Synthesis])
-  (do ///////phase.monad
-    [testO (expression archive testS)
-     thenO (expression archive thenS)
-     elseO (expression archive elseS)]
-    (in (_.if testO thenO elseO))))
-
-(def .public (get expression archive [pathP valueS])
-  (Generator [(List Member) Synthesis])
-  (do ///////phase.monad
-    [valueO (expression archive valueS)]
-    (in (list#mix (function (_ side source)
-                    (.let [method (.when side
-                                    (^.with_template [ ]
-                                      [( lefts)
-                                       ( (_.int (.int lefts)))])
-                                    ([.#Left  //runtime.tuple::left]
-                                     [.#Right //runtime.tuple::right]))]
-                      (method source)))
-                  valueO
-                  (list.reversed pathP)))))
-
-(def $savepoint (_.var "lux_pm_cursor_savepoint"))
-(def $cursor (_.var "lux_pm_cursor"))
-(def $temp (_.var "lux_pm_temp"))
-(def $alt_error (_.var "alt_error"))
-
-(def top
-  _.length)
-
-(def next
-  (|>> _.length (_.+ (_.int +1))))
-
-(def (push! value var)
-  (-> Expression SVar Expression)
-  (_.set_item! (next var) value var))
-
-(def (pop! var)
-  (-> SVar Expression)
-  (_.set_item! (top var) _.null var))
-
-(def (push_cursor! value)
-  (-> Expression Expression)
-  (push! value $cursor))
-
-(def save_cursor!
-  Expression
-  (push! (_.slice (_.float +1.0) (_.length $cursor) $cursor)
-         $savepoint))
-
-(def restore_cursor!
-  Expression
-  (_.set! $cursor (_.item (top $savepoint) $savepoint)))
-
-(def peek
-  Expression
-  (|> $cursor (_.item (top $cursor))))
-
-(def pop_cursor!
-  Expression
-  (pop! $cursor))
-
-(def error
-  (_.string (template.with_locals [error]
-              (template.text [error]))))
-
-(def fail!
-  (_.stop ..error))
-
-(def (catch handler)
-  (-> Expression Expression)
-  (_.function (list $alt_error)
-    (_.if (|> $alt_error (_.= ..error))
-      handler
-      (_.stop $alt_error))))
-
-(def (pattern_matching' expression archive)
-  (Generator Path)
-  (function (again pathP)
-    (.when pathP
-      {/////synthesis.#Then bodyS}
-      (expression archive bodyS)
-
-      {/////synthesis.#Pop}
-      (///////phase#in ..pop_cursor!)
-
-      {/////synthesis.#Bind register}
-      (///////phase#in (_.set! (..register register) ..peek))
-
-      {/////synthesis.#Bit_Fork when thenP elseP}
-      (do [! ///////phase.monad]
-        [then! (again thenP)
-         else! (.when elseP
-                 {.#Some elseP}
-                 (again elseP)
-
-                 {.#None}
-                 (in ..fail!))]
-        (in (.if when
-              (_.if ..peek
-                then!
-                else!)
-              (_.if ..peek
-                else!
-                then!))))
-
-      (^.with_template [  <=>]
-        [{ item}
-         (do [! ///////phase.monad]
-           [clauses (monad.each ! (function (_ [match then])
-                                    (do !
-                                      [then! (again then)]
-                                      (in [(<=> (|> match )
-                                                ..peek)
-                                           then!])))
-                                {.#Item item})]
-           (in (list#mix (function (_ [when then] else)
-                           (_.if when then else))
-                         ..fail!
-                         clauses)))])
-      ([/////synthesis.#I64_Fork //primitive.i64 //runtime.i64::=]
-       [/////synthesis.#F64_Fork //primitive.f64 _.=]
-       [/////synthesis.#Text_Fork //primitive.text _.=])
-
-      (^.with_template [  ]
-        [( idx)
-         (///////phase#in (all _.then
-                               (_.set! $temp (|> idx  .int _.int (//runtime.sum::get ..peek (//runtime.flag ))))
-                               (_.if (_.= _.null $temp)
-                                 ..fail!
-                                 (..push_cursor! $temp))))])
-      ([/////synthesis.side/left  false (<|)]
-       [/////synthesis.side/right true  ++])
-
-      (/////synthesis.member/left 0)
-      (///////phase#in (_.item (_.int +1) ..peek))
-
-      (^.with_template [ ]
-        [( lefts)
-         (///////phase#in (|> ..peek ( (_.int (.int lefts))) ..push_cursor!))])
-      ([/////synthesis.member/left  //runtime.tuple::left]
-       [/////synthesis.member/right //runtime.tuple::right])
-
-      (/////synthesis.path/seq leftP rightP)
-      (do ///////phase.monad
-        [leftO (again leftP)
-         rightO (again rightP)]
-        (in (all _.then
-                 leftO
-                 rightO)))
-
-      (/////synthesis.path/alt leftP rightP)
-      (do [! ///////phase.monad]
-        [leftO (again leftP)
-         rightO (again rightP)]
-        (in (_.try (all _.then
-                        ..save_cursor!
-                        leftO)
-                   {.#None}
-                   {.#Some (..catch (all _.then
-                                         ..restore_cursor!
-                                         rightO))}
-                   {.#None})))
-      )))
-
-(def (pattern_matching expression archive pathP)
-  (Generator Path)
-  (do ///////phase.monad
-    [pattern_matching! (pattern_matching' expression archive pathP)]
-    (in (_.try pattern_matching!
-               {.#None}
-               {.#Some (..catch (_.stop (_.string "Invalid expression for pattern-matching.")))}
-               {.#None}))))
-
-(def .public (when expression archive [valueS pathP])
-  (Generator [Synthesis Path])
-  (do [! ///////phase.monad]
-    [valueO (expression archive valueS)]
-    (<| (at ! each (|>> (all _.then
-                             (_.set! $cursor (_.list (list valueO)))
-                             (_.set! $savepoint (_.list (list))))
-                        _.block))
-        (pattern_matching expression archive pathP))))
diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/reference.lux
deleted file mode 100644
index 2ec80b679..000000000
--- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/generation/reference.lux
+++ /dev/null
@@ -1,101 +0,0 @@
-(.require
- [library
-  [lux (.except local)
-   [data
-    [text
-     ["%" \\format (.only format)]]]
-   [meta
-    ["@" target]
-    ["[0]" version]]]]
- ["[0]" ////
-  ["[1][0]" generation]
-  ["//[1]" ///
-   ["[0]" phase (.use "[1]#[0]" monad)]
-   ["[0]" reference (.only Reference)
-    ["[0]" variable (.only Register Variable)]]
-   [meta
-    [archive (.only Archive)
-     ["[0]" unit]]]]])
-
-... This universe constant is for languages where one can't just turn all compiled definitions
-... into the local variables of some scoping function.
-(def .public universe
-  (for @.lua
-       ... In the case of Lua, there is a limit of 200 locals in a function's scope.
-       (not ("lua script universe"))
-
-       @.ruby
-       ... Cannot make all definitions be local variables because of limitations with JRuby.
-       (not ("ruby script universe"))
-
-       @.php
-       ... Cannot make all definitions be local variables because of limitations with PHP itself.
-       (not ("php script universe"))
-
-       @.scheme
-       ... Cannot make all definitions be local variables because of limitations with Kawa.
-       (not ("scheme script universe"))
-
-       ... Otherwise...
-       false))
-
-(def universe_label
-  Text
-  (with_expansions [