From 6c5a33ea07732fdd415712af49784653266682b3 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Fri, 17 May 2019 01:56:16 -0400 Subject: Refactored boxes and reflections. --- .../luxc/lang/translation/jvm/procedure/host.lux | 144 ++++++++------- stdlib/source/lux/host.jvm.lux | 168 ++++++++--------- stdlib/source/lux/target/jvm/type.lux | 58 ------ stdlib/source/lux/target/jvm/type/box.lux | 15 ++ stdlib/source/lux/target/jvm/type/reflection.lux | 48 +++++ .../tool/compiler/phase/extension/analysis/jvm.lux | 204 +++++++++++---------- 6 files changed, 324 insertions(+), 313 deletions(-) create mode 100644 stdlib/source/lux/target/jvm/type/box.lux create mode 100644 stdlib/source/lux/target/jvm/type/reflection.lux diff --git a/new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux b/new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux index e1e6b3c47..cf68663a5 100644 --- a/new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux +++ b/new-luxc/source/luxc/lang/translation/jvm/procedure/host.lux @@ -21,7 +21,9 @@ ["." set]]] [target ["." jvm #_ - ["#" type (#+ Primitive Bound Generic Class Type Method Var Typed Argument Return)]]] + ["#" type (#+ Primitive Bound Generic Class Type Method Var Typed Argument Return) + ["." box] + ["." reflection]]]] [tool [compiler [analysis (#+ Environment)] @@ -181,7 +183,7 @@ [double::% _.DREM] ) -(def: boolean-class (jvm.class jvm.boolean-box (list))) +(def: boolean-class (jvm.class box.boolean (list))) (def: falseI (_.GETSTATIC "java.lang.Boolean" "FALSE" boolean-class)) (def: trueI (_.GETSTATIC "java.lang.Boolean" "TRUE" boolean-class)) @@ -234,7 +236,7 @@ (def: int Bundle - (<| (bundle.prefix jvm.int-reflection) + (<| (bundle.prefix reflection.int) (|> (: Bundle bundle.empty) (bundle.install "+" (binary int::+)) (bundle.install "-" (binary int::-)) @@ -253,7 +255,7 @@ (def: long Bundle - (<| (bundle.prefix jvm.long-reflection) + (<| (bundle.prefix reflection.long) (|> (: Bundle bundle.empty) (bundle.install "+" (binary long::+)) (bundle.install "-" (binary long::-)) @@ -272,7 +274,7 @@ (def: float Bundle - (<| (bundle.prefix jvm.float-reflection) + (<| (bundle.prefix reflection.float) (|> (: Bundle bundle.empty) (bundle.install "+" (binary float::+)) (bundle.install "-" (binary float::-)) @@ -285,7 +287,7 @@ (def: double Bundle - (<| (bundle.prefix jvm.double-reflection) + (<| (bundle.prefix reflection.double) (|> (: Bundle bundle.empty) (bundle.install "+" (binary double::+)) (bundle.install "-" (binary double::-)) @@ -298,7 +300,7 @@ (def: char Bundle - (<| (bundle.prefix jvm.char-reflection) + (<| (bundle.prefix reflection.char) (|> (: Bundle bundle.empty) (bundle.install "=" (binary char::=)) (bundle.install "<" (binary char::<)) @@ -308,14 +310,14 @@ (-> Nat Text Type) (jvm.array nesting (case elem-class - (^ (static jvm.boolean-reflection)) jvm.boolean - (^ (static jvm.byte-reflection)) jvm.byte - (^ (static jvm.short-reflection)) jvm.short - (^ (static jvm.int-reflection)) jvm.int - (^ (static jvm.long-reflection)) jvm.long - (^ (static jvm.float-reflection)) jvm.float - (^ (static jvm.double-reflection)) jvm.double - (^ (static jvm.char-reflection)) jvm.char + (^ (static reflection.boolean)) jvm.boolean + (^ (static reflection.byte)) jvm.byte + (^ (static reflection.short)) jvm.short + (^ (static reflection.int)) jvm.int + (^ (static reflection.long)) jvm.long + (^ (static reflection.float)) jvm.float + (^ (static reflection.double)) jvm.double + (^ (static reflection.char)) jvm.char _ (jvm.class elem-class (list))))) (def: (primitive-array-length-handler jvm-primitive) @@ -451,47 +453,47 @@ (|> bundle.empty (dictionary.merge (<| (bundle.prefix "length") (|> bundle.empty - (bundle.install jvm.boolean-reflection (primitive-array-length-handler jvm.boolean)) - (bundle.install jvm.byte-reflection (primitive-array-length-handler jvm.byte)) - (bundle.install jvm.short-reflection (primitive-array-length-handler jvm.short)) - (bundle.install jvm.int-reflection (primitive-array-length-handler jvm.int)) - (bundle.install jvm.long-reflection (primitive-array-length-handler jvm.long)) - (bundle.install jvm.float-reflection (primitive-array-length-handler jvm.float)) - (bundle.install jvm.double-reflection (primitive-array-length-handler jvm.double)) - (bundle.install jvm.char-reflection (primitive-array-length-handler jvm.char)) + (bundle.install reflection.boolean (primitive-array-length-handler jvm.boolean)) + (bundle.install reflection.byte (primitive-array-length-handler jvm.byte)) + (bundle.install reflection.short (primitive-array-length-handler jvm.short)) + (bundle.install reflection.int (primitive-array-length-handler jvm.int)) + (bundle.install reflection.long (primitive-array-length-handler jvm.long)) + (bundle.install reflection.float (primitive-array-length-handler jvm.float)) + (bundle.install reflection.double (primitive-array-length-handler jvm.double)) + (bundle.install reflection.char (primitive-array-length-handler jvm.char)) (bundle.install "object" array::length::object)))) (dictionary.merge (<| (bundle.prefix "new") (|> bundle.empty - (bundle.install jvm.boolean-reflection (new-primitive-array-handler jvm.boolean)) - (bundle.install jvm.byte-reflection (new-primitive-array-handler jvm.byte)) - (bundle.install jvm.short-reflection (new-primitive-array-handler jvm.short)) - (bundle.install jvm.int-reflection (new-primitive-array-handler jvm.int)) - (bundle.install jvm.long-reflection (new-primitive-array-handler jvm.long)) - (bundle.install jvm.float-reflection (new-primitive-array-handler jvm.float)) - (bundle.install jvm.double-reflection (new-primitive-array-handler jvm.double)) - (bundle.install jvm.char-reflection (new-primitive-array-handler jvm.char)) + (bundle.install reflection.boolean (new-primitive-array-handler jvm.boolean)) + (bundle.install reflection.byte (new-primitive-array-handler jvm.byte)) + (bundle.install reflection.short (new-primitive-array-handler jvm.short)) + (bundle.install reflection.int (new-primitive-array-handler jvm.int)) + (bundle.install reflection.long (new-primitive-array-handler jvm.long)) + (bundle.install reflection.float (new-primitive-array-handler jvm.float)) + (bundle.install reflection.double (new-primitive-array-handler jvm.double)) + (bundle.install reflection.char (new-primitive-array-handler jvm.char)) (bundle.install "object" array::new::object)))) (dictionary.merge (<| (bundle.prefix "read") (|> bundle.empty - (bundle.install jvm.boolean-reflection (read-primitive-array-handler jvm.boolean _.BALOAD)) - (bundle.install jvm.byte-reflection (read-primitive-array-handler jvm.byte _.BALOAD)) - (bundle.install jvm.short-reflection (read-primitive-array-handler jvm.short _.SALOAD)) - (bundle.install jvm.int-reflection (read-primitive-array-handler jvm.int _.IALOAD)) - (bundle.install jvm.long-reflection (read-primitive-array-handler jvm.long _.LALOAD)) - (bundle.install jvm.float-reflection (read-primitive-array-handler jvm.float _.FALOAD)) - (bundle.install jvm.double-reflection (read-primitive-array-handler jvm.double _.DALOAD)) - (bundle.install jvm.char-reflection (read-primitive-array-handler jvm.char _.CALOAD)) + (bundle.install reflection.boolean (read-primitive-array-handler jvm.boolean _.BALOAD)) + (bundle.install reflection.byte (read-primitive-array-handler jvm.byte _.BALOAD)) + (bundle.install reflection.short (read-primitive-array-handler jvm.short _.SALOAD)) + (bundle.install reflection.int (read-primitive-array-handler jvm.int _.IALOAD)) + (bundle.install reflection.long (read-primitive-array-handler jvm.long _.LALOAD)) + (bundle.install reflection.float (read-primitive-array-handler jvm.float _.FALOAD)) + (bundle.install reflection.double (read-primitive-array-handler jvm.double _.DALOAD)) + (bundle.install reflection.char (read-primitive-array-handler jvm.char _.CALOAD)) (bundle.install "object" array::read::object)))) (dictionary.merge (<| (bundle.prefix "write") (|> bundle.empty - (bundle.install jvm.boolean-reflection (write-primitive-array-handler jvm.boolean _.BASTORE)) - (bundle.install jvm.byte-reflection (write-primitive-array-handler jvm.byte _.BASTORE)) - (bundle.install jvm.short-reflection (write-primitive-array-handler jvm.short _.SASTORE)) - (bundle.install jvm.int-reflection (write-primitive-array-handler jvm.int _.IASTORE)) - (bundle.install jvm.long-reflection (write-primitive-array-handler jvm.long _.LASTORE)) - (bundle.install jvm.float-reflection (write-primitive-array-handler jvm.float _.FASTORE)) - (bundle.install jvm.double-reflection (write-primitive-array-handler jvm.double _.DASTORE)) - (bundle.install jvm.char-reflection (write-primitive-array-handler jvm.char _.CASTORE)) + (bundle.install reflection.boolean (write-primitive-array-handler jvm.boolean _.BASTORE)) + (bundle.install reflection.byte (write-primitive-array-handler jvm.byte _.BASTORE)) + (bundle.install reflection.short (write-primitive-array-handler jvm.short _.SASTORE)) + (bundle.install reflection.int (write-primitive-array-handler jvm.int _.IASTORE)) + (bundle.install reflection.long (write-primitive-array-handler jvm.long _.LASTORE)) + (bundle.install reflection.float (write-primitive-array-handler jvm.float _.FASTORE)) + (bundle.install reflection.double (write-primitive-array-handler jvm.double _.DASTORE)) + (bundle.install reflection.char (write-primitive-array-handler jvm.char _.CASTORE)) (bundle.install "object" array::write::object)))) ))) @@ -568,14 +570,14 @@ (^ [(static ) (static )]) (wrap (|>> valueI (_.unwrap )))) - ([jvm.boolean-reflection jvm.boolean-box #jvm.Boolean] - [jvm.byte-reflection jvm.byte-box #jvm.Byte] - [jvm.short-reflection jvm.short-box #jvm.Short] - [jvm.int-reflection jvm.int-box #jvm.Int] - [jvm.long-reflection jvm.long-box #jvm.Long] - [jvm.float-reflection jvm.float-box #jvm.Float] - [jvm.double-reflection jvm.double-box #jvm.Double] - [jvm.char-reflection jvm.char-box #jvm.Char]) + ([reflection.boolean box.boolean #jvm.Boolean] + [reflection.byte box.byte #jvm.Byte] + [reflection.short box.short #jvm.Short] + [reflection.int box.int #jvm.Int] + [reflection.long box.long #jvm.Long] + [reflection.float box.float #jvm.Float] + [reflection.double box.double #jvm.Double] + [reflection.char box.char #jvm.Char]) _ (wrap valueI))) @@ -598,14 +600,14 @@ (def: primitives (Dictionary Text Primitive) - (|> (list [jvm.boolean-reflection #jvm.Boolean] - [jvm.byte-reflection #jvm.Byte] - [jvm.short-reflection #jvm.Short] - [jvm.int-reflection #jvm.Int] - [jvm.long-reflection #jvm.Long] - [jvm.float-reflection #jvm.Float] - [jvm.double-reflection #jvm.Double] - [jvm.char-reflection #jvm.Char]) + (|> (list [reflection.boolean #jvm.Boolean] + [reflection.byte #jvm.Byte] + [reflection.short #jvm.Short] + [reflection.int #jvm.Int] + [reflection.long #jvm.Long] + [reflection.float #jvm.Float] + [reflection.double #jvm.Double] + [reflection.char #jvm.Char]) (dictionary.from-list text.hash))) (def: (static::get extension-name generate inputs) @@ -841,14 +843,14 @@ (def: primitive (.Parser Primitive) ($_ <>.or - (.constant! ["" jvm.boolean-reflection]) - (.constant! ["" jvm.byte-reflection]) - (.constant! ["" jvm.short-reflection]) - (.constant! ["" jvm.int-reflection]) - (.constant! ["" jvm.long-reflection]) - (.constant! ["" jvm.float-reflection]) - (.constant! ["" jvm.double-reflection]) - (.constant! ["" jvm.char-reflection]) + (.constant! ["" reflection.boolean]) + (.constant! ["" reflection.byte]) + (.constant! ["" reflection.short]) + (.constant! ["" reflection.int]) + (.constant! ["" reflection.long]) + (.constant! ["" reflection.float]) + (.constant! ["" reflection.double]) + (.constant! ["" reflection.char]) )) (def: jvm-type diff --git a/stdlib/source/lux/host.jvm.lux b/stdlib/source/lux/host.jvm.lux index 9410972f8..e1735cf8e 100644 --- a/stdlib/source/lux/host.jvm.lux +++ b/stdlib/source/lux/host.jvm.lux @@ -27,30 +27,32 @@ ["." template]] [target ["." jvm #_ - ["#" type (#+ Primitive Var Bound Class Generic Type Argument Return Typed)]]]]) + ["#" type (#+ Primitive Var Bound Class Generic Type Argument Return Typed) + ["." box] + ["." reflection]]]]]) (template [ ] [(def: #export .Type (#.Primitive #.Nil))] ## Boxes - [Boolean jvm.boolean-box] - [Byte jvm.byte-box] - [Short jvm.short-box] - [Integer jvm.int-box] - [Long jvm.long-box] - [Float jvm.float-box] - [Double jvm.double-box] - [Character jvm.char-box] + [Boolean box.boolean] + [Byte box.byte] + [Short box.short] + [Integer box.int] + [Long box.long] + [Float box.float] + [Double box.double] + [Character box.char] ## Primitives - [boolean jvm.boolean-reflection] - [byte jvm.byte-reflection] - [short jvm.short-reflection] - [int jvm.int-reflection] - [long jvm.long-reflection] - [float jvm.float-reflection] - [double jvm.double-reflection] - [char jvm.char-reflection] + [boolean reflection.boolean] + [byte reflection.byte] + [short reflection.short] + [int reflection.int] + [long reflection.long] + [float reflection.float] + [double reflection.double] + [char reflection.char] ) (def: (get-static-field class field) @@ -68,26 +70,26 @@ (def: boxes (Dictionary Text Text) - (|> (list [jvm.boolean-descriptor jvm.boolean-box] - [jvm.byte-descriptor jvm.byte-box] - [jvm.short-descriptor jvm.short-box] - [jvm.int-descriptor jvm.int-box] - [jvm.long-descriptor jvm.long-box] - [jvm.float-descriptor jvm.float-box] - [jvm.double-descriptor jvm.double-box] - [jvm.char-descriptor jvm.char-box]) + (|> (list [jvm.boolean-descriptor box.boolean] + [jvm.byte-descriptor box.byte] + [jvm.short-descriptor box.short] + [jvm.int-descriptor box.int] + [jvm.long-descriptor box.long] + [jvm.float-descriptor box.float] + [jvm.double-descriptor box.double] + [jvm.char-descriptor box.char]) (dictionary.from-list text.hash))) (def: reflections (Dictionary Text Text) - (|> (list [jvm.boolean-descriptor jvm.boolean-reflection] - [jvm.byte-descriptor jvm.byte-reflection] - [jvm.short-descriptor jvm.short-reflection] - [jvm.int-descriptor jvm.int-reflection] - [jvm.long-descriptor jvm.long-reflection] - [jvm.float-descriptor jvm.float-reflection] - [jvm.double-descriptor jvm.double-reflection] - [jvm.char-descriptor jvm.char-reflection]) + (|> (list [jvm.boolean-descriptor reflection.boolean] + [jvm.byte-descriptor reflection.byte] + [jvm.short-descriptor reflection.short] + [jvm.int-descriptor reflection.int] + [jvm.long-descriptor reflection.long] + [jvm.float-descriptor reflection.float] + [jvm.double-descriptor reflection.double] + [jvm.char-descriptor reflection.char]) (dictionary.from-list text.hash))) (template [
 ]
@@ -608,14 +610,14 @@
 (def: primitive^
   (Parser Primitive)
   ($_ p.or
-      (s.identifier! ["" jvm.boolean-reflection])
-      (s.identifier! ["" jvm.byte-reflection])
-      (s.identifier! ["" jvm.short-reflection])
-      (s.identifier! ["" jvm.int-reflection])
-      (s.identifier! ["" jvm.long-reflection])
-      (s.identifier! ["" jvm.float-reflection])
-      (s.identifier! ["" jvm.double-reflection])
-      (s.identifier! ["" jvm.char-reflection])
+      (s.identifier! ["" reflection.boolean])
+      (s.identifier! ["" reflection.byte])
+      (s.identifier! ["" reflection.short])
+      (s.identifier! ["" reflection.int])
+      (s.identifier! ["" reflection.long])
+      (s.identifier! ["" reflection.float])
+      (s.identifier! ["" reflection.double])
+      (s.identifier! ["" reflection.char])
       ))
 
 (def: (type^ imports type-vars)
@@ -1012,14 +1014,14 @@
   (case type
     (#jvm.Primitive primitive)
     (case primitive
-      #jvm.Boolean (code.local-identifier jvm.boolean-reflection)
-      #jvm.Byte (code.local-identifier jvm.byte-reflection)
-      #jvm.Short (code.local-identifier jvm.short-reflection)
-      #jvm.Int (code.local-identifier jvm.int-reflection)
-      #jvm.Long (code.local-identifier jvm.long-reflection)
-      #jvm.Float (code.local-identifier jvm.float-reflection)
-      #jvm.Double (code.local-identifier jvm.double-reflection)
-      #jvm.Char (code.local-identifier jvm.char-reflection))
+      #jvm.Boolean (code.local-identifier reflection.boolean)
+      #jvm.Byte (code.local-identifier reflection.byte)
+      #jvm.Short (code.local-identifier reflection.short)
+      #jvm.Int (code.local-identifier reflection.int)
+      #jvm.Long (code.local-identifier reflection.long)
+      #jvm.Float (code.local-identifier reflection.float)
+      #jvm.Double (code.local-identifier reflection.double)
+      #jvm.Char (code.local-identifier reflection.char))
     
     (#jvm.Generic generic)
     (generic$ generic)
@@ -1534,22 +1536,22 @@
          (` (.|> (~ unboxed/boxed) (~+ post))))))]
 
   [#1 auto-convert-input ..unbox
-   [[jvm.boolean-descriptor jvm.boolean-descriptor (list (` (.: .Bit)) (` (.:coerce (.primitive (~ (code.text jvm.boolean-box)))))) []]
-    [jvm.byte-descriptor jvm.byte-descriptor (list (` (.: .Int)) (` (.:coerce (.primitive (~ (code.text jvm.long-box))))) (` ..long-to-byte)) []]
-    [jvm.short-descriptor jvm.short-descriptor (list (` (.: .Int)) (` (.:coerce (.primitive (~ (code.text jvm.long-box))))) (` ..long-to-short)) []]
-    [jvm.int-descriptor jvm.int-descriptor (list (` (.: .Int)) (` (.:coerce (.primitive (~ (code.text jvm.long-box))))) (` ..long-to-int)) []]
-    [jvm.long-descriptor jvm.long-descriptor (list (` (.: .Int)) (` (.:coerce (.primitive (~ (code.text jvm.long-box)))))) []]
-    [jvm.float-descriptor jvm.float-descriptor (list (` (.: .Frac)) (` (.:coerce (.primitive (~ (code.text jvm.double-box))))) (` ..double-to-float)) []]
-    [jvm.double-descriptor jvm.double-descriptor (list (` (.: .Frac)) (` (.:coerce (.primitive (~ (code.text jvm.double-box)))))) []]
+   [[jvm.boolean-descriptor jvm.boolean-descriptor (list (` (.: .Bit)) (` (.:coerce (.primitive (~ (code.text box.boolean)))))) []]
+    [jvm.byte-descriptor jvm.byte-descriptor (list (` (.: .Int)) (` (.:coerce (.primitive (~ (code.text box.long))))) (` ..long-to-byte)) []]
+    [jvm.short-descriptor jvm.short-descriptor (list (` (.: .Int)) (` (.:coerce (.primitive (~ (code.text box.long))))) (` ..long-to-short)) []]
+    [jvm.int-descriptor jvm.int-descriptor (list (` (.: .Int)) (` (.:coerce (.primitive (~ (code.text box.long))))) (` ..long-to-int)) []]
+    [jvm.long-descriptor jvm.long-descriptor (list (` (.: .Int)) (` (.:coerce (.primitive (~ (code.text box.long)))))) []]
+    [jvm.float-descriptor jvm.float-descriptor (list (` (.: .Frac)) (` (.:coerce (.primitive (~ (code.text box.double))))) (` ..double-to-float)) []]
+    [jvm.double-descriptor jvm.double-descriptor (list (` (.: .Frac)) (` (.:coerce (.primitive (~ (code.text box.double)))))) []]
     [..string-descriptor ..string-descriptor (list (` (.: .Text)) (` (.:coerce (.primitive (~ (code.text ..string-class)))))) []]]]
   [#0 auto-convert-output ..box
-   [[jvm.boolean-descriptor jvm.boolean-descriptor (list) [(` (.: (.primitive (~ (code.text jvm.boolean-box))))) (` (.:coerce .Bit))]]
-    [jvm.byte-descriptor jvm.long-descriptor (list (` "jvm conversion byte-to-long")) [(` (.: (.primitive (~ (code.text jvm.long-box))))) (` (.:coerce .Int))]]
-    [jvm.short-descriptor jvm.long-descriptor (list (` "jvm conversion short-to-long")) [(` (.: (.primitive (~ (code.text jvm.long-box))))) (` (.:coerce .Int))]]
-    [jvm.int-descriptor jvm.long-descriptor (list (` "jvm conversion int-to-long")) [(` (.: (.primitive (~ (code.text jvm.long-box))))) (` (.:coerce .Int))]]
-    [jvm.long-descriptor jvm.long-descriptor (list) [(` (.: (.primitive (~ (code.text jvm.long-box))))) (` (.:coerce .Int))]]
-    [jvm.float-descriptor jvm.double-descriptor (list (` "jvm conversion float-to-double")) [(` (.: (.primitive (~ (code.text jvm.double-box))))) (` (.:coerce .Frac))]]
-    [jvm.double-descriptor jvm.double-descriptor (list) [(` (.: (.primitive (~ (code.text jvm.double-box))))) (` (.:coerce .Frac))]]
+   [[jvm.boolean-descriptor jvm.boolean-descriptor (list) [(` (.: (.primitive (~ (code.text box.boolean))))) (` (.:coerce .Bit))]]
+    [jvm.byte-descriptor jvm.long-descriptor (list (` "jvm conversion byte-to-long")) [(` (.: (.primitive (~ (code.text box.long))))) (` (.:coerce .Int))]]
+    [jvm.short-descriptor jvm.long-descriptor (list (` "jvm conversion short-to-long")) [(` (.: (.primitive (~ (code.text box.long))))) (` (.:coerce .Int))]]
+    [jvm.int-descriptor jvm.long-descriptor (list (` "jvm conversion int-to-long")) [(` (.: (.primitive (~ (code.text box.long))))) (` (.:coerce .Int))]]
+    [jvm.long-descriptor jvm.long-descriptor (list) [(` (.: (.primitive (~ (code.text box.long))))) (` (.:coerce .Int))]]
+    [jvm.float-descriptor jvm.double-descriptor (list (` "jvm conversion float-to-double")) [(` (.: (.primitive (~ (code.text box.double))))) (` (.:coerce .Frac))]]
+    [jvm.double-descriptor jvm.double-descriptor (list) [(` (.: (.primitive (~ (code.text box.double))))) (` (.:coerce .Frac))]]
     [..string-descriptor ..string-descriptor (list) [(` (.: (.primitive (~ (code.text ..string-class))))) (` (.:coerce .Text))]]]]
   )
 
@@ -1810,7 +1812,7 @@
               (array java/lang/Object 10))}
   (let [g!size (` (|>  (~ size)
                        (.: .Nat)
-                       (.:coerce (.primitive (~ (code.text jvm.long-box))))
+                       (.:coerce (.primitive (~ (code.text box.long))))
                        "jvm object cast"
                        "jvm conversion long-to-int"))]
     (case type
@@ -1872,7 +1874,7 @@
       (wrap (list (` (.|> ((~ g!extension) (~ array))
                           "jvm conversion int-to-long"
                           "jvm object cast"
-                          (.: (.primitive (~ (code.text jvm.long-box))))
+                          (.: (.primitive (~ (code.text box.long))))
                           (.:coerce .Nat))))))
 
     _
@@ -1890,7 +1892,7 @@
        array-jvm-type (type->class-name array-type)
        #let [g!idx (` (.|> (~ idx)
                            (.: .Nat)
-                           (.:coerce (.primitive (~ (code.text jvm.long-box))))
+                           (.:coerce (.primitive (~ (code.text box.long))))
                            "jvm object cast"
                            "jvm conversion long-to-int"))]]
       (case array-jvm-type
@@ -1899,14 +1901,14 @@
           (wrap (list (` (.|> ( (~ g!idx) (~ array))
                               "jvm object cast"
                               (.: (.primitive (~ (code.text )))))))))
-        (["[Z" "jvm array read boolean" jvm.boolean-box]
-         ["[B" "jvm array read byte" jvm.byte-box]
-         ["[S" "jvm array read short" jvm.short-box]
-         ["[I" "jvm array read int" jvm.int-box]
-         ["[J" "jvm array read long" jvm.long-box]
-         ["[F" "jvm array read float" jvm.float-box]
-         ["[D" "jvm array read double" jvm.double-box]
-         ["[C" "jvm array read char" jvm.char-box])
+        (["[Z" "jvm array read boolean" box.boolean]
+         ["[B" "jvm array read byte" box.byte]
+         ["[S" "jvm array read short" box.short]
+         ["[I" "jvm array read int" box.int]
+         ["[J" "jvm array read long" box.long]
+         ["[F" "jvm array read float" box.float]
+         ["[D" "jvm array read double" box.double]
+         ["[C" "jvm array read char" box.char])
 
         _
         (wrap (list (` ("jvm array read object" (~ g!idx) (~ array)))))))
@@ -1926,7 +1928,7 @@
        array-jvm-type (type->class-name array-type)
        #let [g!idx (` (.|> (~ idx)
                            (.: .Nat)
-                           (.:coerce (.primitive (~ (code.text jvm.long-box))))
+                           (.:coerce (.primitive (~ (code.text box.long))))
                            "jvm object cast"
                            "jvm conversion long-to-int"))]]
       (case array-jvm-type
@@ -1936,14 +1938,14 @@
                                 (.:coerce (.primitive (~ (code.text ))))
                                 "jvm object cast"))]
             (wrap (list (` ( (~ g!idx) (~ g!value) (~ array)))))))
-        (["[Z" "jvm array write boolean" jvm.boolean-box]
-         ["[B" "jvm array write byte" jvm.byte-box]
-         ["[S" "jvm array write short" jvm.short-box]
-         ["[I" "jvm array write int" jvm.int-box]
-         ["[J" "jvm array write long" jvm.long-box]
-         ["[F" "jvm array write float" jvm.float-box]
-         ["[D" "jvm array write double" jvm.double-box]
-         ["[C" "jvm array write char" jvm.char-box])
+        (["[Z" "jvm array write boolean" box.boolean]
+         ["[B" "jvm array write byte" box.byte]
+         ["[S" "jvm array write short" box.short]
+         ["[I" "jvm array write int" box.int]
+         ["[J" "jvm array write long" box.long]
+         ["[F" "jvm array write float" box.float]
+         ["[D" "jvm array write double" box.double]
+         ["[C" "jvm array write char" box.char])
 
         _
         (wrap (list (` ("jvm array write object" (~ g!idx) (~ value) (~ array)))))))
diff --git a/stdlib/source/lux/target/jvm/type.lux b/stdlib/source/lux/target/jvm/type.lux
index c6af8ffc5..4b62f33a7 100644
--- a/stdlib/source/lux/target/jvm/type.lux
+++ b/stdlib/source/lux/target/jvm/type.lux
@@ -25,33 +25,6 @@
   ["C" char-descriptor]
   )
 
-(template [ ]
-  [(def: #export  )]
-
-  [void-reflection "void"]
-  [boolean-reflection "boolean"]
-  [byte-reflection "byte"]
-  [short-reflection "short"]
-  [int-reflection "int"]
-  [long-reflection "long"]
-  [float-reflection "float"]
-  [double-reflection "double"]
-  [char-reflection "char"]
-  )
-
-(template [ ]
-  [(def: #export  )]
-
-  [boolean-box "java.lang.Boolean"]
-  [byte-box    "java.lang.Byte"]
-  [short-box   "java.lang.Short"]
-  [int-box     "java.lang.Integer"]
-  [long-box    "java.lang.Long"]
-  [float-box   "java.lang.Float"]
-  [double-box  "java.lang.Double"]
-  [char-box    "java.lang.Character"]
-  )
-
 (def: #export array-prefix "[")
 (def: object-prefix "L")
 (def: var-prefix "T")
@@ -340,34 +313,3 @@
           (|> (get@ #exceptions method)
               (list@map (|>> #Generic signature (format "^")))
               (text.join-with ""))))
-
-(def: #export (reflection-class type)
-  (-> Type Text)
-  (case type
-    (#Primitive prim)
-    (case prim
-      #Boolean ..boolean-reflection
-      #Byte    ..byte-reflection
-      #Short   ..short-reflection
-      #Int     ..int-reflection
-      #Long    ..long-reflection
-      #Float   ..float-reflection
-      #Double  ..double-reflection
-      #Char    ..char-reflection)
-
-    (#Array sub)
-    (syntax-name (descriptor type))
-
-    (#Generic generic)
-    (case generic
-      (#Class class params)
-      (syntax-name class)
-
-      (^or (#Var name)
-           (#Wildcard #.None)
-           (#Wildcard (#.Some [#Lower bound])))
-      ..object-class
-
-      (#Wildcard (#.Some [#Upper bound]))
-      (reflection-class (#Generic bound)))
-    ))
diff --git a/stdlib/source/lux/target/jvm/type/box.lux b/stdlib/source/lux/target/jvm/type/box.lux
new file mode 100644
index 000000000..37f160458
--- /dev/null
+++ b/stdlib/source/lux/target/jvm/type/box.lux
@@ -0,0 +1,15 @@
+(.module:
+  [lux (#- int char)])
+
+(template [ ]
+  [(def: #export  )]
+
+  [boolean "java.lang.Boolean"]
+  [byte    "java.lang.Byte"]
+  [short   "java.lang.Short"]
+  [int     "java.lang.Integer"]
+  [long    "java.lang.Long"]
+  [float   "java.lang.Float"]
+  [double  "java.lang.Double"]
+  [char    "java.lang.Character"]
+  )
diff --git a/stdlib/source/lux/target/jvm/type/reflection.lux b/stdlib/source/lux/target/jvm/type/reflection.lux
new file mode 100644
index 000000000..6526256b7
--- /dev/null
+++ b/stdlib/source/lux/target/jvm/type/reflection.lux
@@ -0,0 +1,48 @@
+(.module:
+  [lux (#- int char)]
+  ["." //])
+
+(template [ ]
+  [(def: #export  )]
+
+  [void "void"]
+  [boolean "boolean"]
+  [byte "byte"]
+  [short "short"]
+  [int "int"]
+  [long "long"]
+  [float "float"]
+  [double "double"]
+  [char "char"]
+  )
+
+(def: #export (class type)
+  (-> //.Type Text)
+  (case type
+    (#//.Primitive prim)
+    (case prim
+      #//.Boolean ..boolean
+      #//.Byte    ..byte
+      #//.Short   ..short
+      #//.Int     ..int
+      #//.Long    ..long
+      #//.Float   ..float
+      #//.Double  ..double
+      #//.Char    ..char)
+
+    (#//.Array sub)
+    (//.syntax-name (//.descriptor type))
+
+    (#//.Generic generic)
+    (case generic
+      (#//.Class class params)
+      (//.syntax-name class)
+
+      (^or (#//.Var name)
+           (#//.Wildcard #.None)
+           (#//.Wildcard (#.Some [#//.Lower bound])))
+      //.object-class
+
+      (#//.Wildcard (#.Some [#//.Upper bound]))
+      (class (#//.Generic bound)))
+    ))
diff --git a/stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux b/stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux
index 358c666c7..01265c29a 100644
--- a/stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux
+++ b/stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux
@@ -24,7 +24,9 @@
     ["." check (#+ Check) ("#@." monad)]]
    [target
     ["." jvm #_
-     ["#" type (#+ Var Bound Primitive Generic Class Type Argument Return Typed)]]]]
+     ["#" type (#+ Var Bound Primitive Generic Class Type Argument Return Typed)
+      ["." box]
+      ["." reflection]]]]]
   ["." // #_
    ["#." common]
    ["/#" //
@@ -60,25 +62,25 @@
   [(def: #export  .Type (#.Primitive  #.Nil))]
 
   ## Boxes
-  [Boolean   jvm.boolean-box]
-  [Byte      jvm.byte-box]
-  [Short     jvm.short-box]
-  [Integer   jvm.int-box]
-  [Long      jvm.long-box]
-  [Float     jvm.float-box]
-  [Double    jvm.double-box]
-  [Character jvm.char-box]
+  [Boolean   box.boolean]
+  [Byte      box.byte]
+  [Short     box.short]
+  [Integer   box.int]
+  [Long      box.long]
+  [Float     box.float]
+  [Double    box.double]
+  [Character box.char]
   [String    "java.lang.String"]
 
   ## Primitives
-  [boolean   jvm.boolean-reflection]
-  [byte      jvm.byte-reflection]
-  [short     jvm.short-reflection]
-  [int       jvm.int-reflection]
-  [long      jvm.long-reflection]
-  [float     jvm.float-reflection]
-  [double    jvm.double-reflection]
-  [char      jvm.char-reflection]
+  [boolean   reflection.boolean]
+  [byte      reflection.byte]
+  [short     reflection.short]
+  [int       reflection.int]
+  [long      reflection.long]
+  [float     reflection.float]
+  [double    reflection.double]
+  [char      reflection.char]
   )
 
 (type: Mapping
@@ -322,8 +324,8 @@
              (///bundle.install "ushr" (//common.binary  Integer ))
              )))]
 
-  [bundle::int  jvm.int-reflection  ..long]
-  [bundle::long jvm.long-reflection ..long]
+  [bundle::int  reflection.int  ..long]
+  [bundle::long reflection.long ..long]
   )
 
 (template [  ]
@@ -340,13 +342,13 @@
              (///bundle.install "<" (//common.binary   Bit))
              )))]
 
-  [bundle::float  jvm.float-reflection  ..float]
-  [bundle::double jvm.double-reflection ..double]
+  [bundle::float  reflection.float  ..float]
+  [bundle::double reflection.double ..double]
   )
 
 (def: bundle::char
   Bundle
-  (<| (///bundle.prefix jvm.char-reflection)
+  (<| (///bundle.prefix reflection.char)
       (|> ///bundle.empty
           (///bundle.install "=" (//common.binary ..char ..char Bit))
           (///bundle.install "<" (//common.binary ..char ..char Bit))
@@ -354,14 +356,14 @@
 
 (def: #export boxes
   (Dictionary Text Text)
-  (|> (list [jvm.boolean-reflection jvm.boolean-box]
-            [jvm.byte-reflection    jvm.byte-box]
-            [jvm.short-reflection   jvm.short-box]
-            [jvm.int-reflection     jvm.int-box]
-            [jvm.long-reflection    jvm.long-box]
-            [jvm.float-reflection   jvm.float-box]
-            [jvm.double-reflection  jvm.double-box]
-            [jvm.char-reflection    jvm.char-box])
+  (|> (list [reflection.boolean box.boolean]
+            [reflection.byte    box.byte]
+            [reflection.short   box.short]
+            [reflection.int     box.int]
+            [reflection.long    box.long]
+            [reflection.float   box.float]
+            [reflection.double  box.double]
+            [reflection.char    box.char])
       (dictionary.from-list text.hash)))
 
 (def: (array-type-info allow-primitives? arrayT)
@@ -466,14 +468,14 @@
   (case objectT
     (#.Primitive name #.Nil)
     (case name
-      (^ (static jvm.boolean-reflection)) (////@wrap jvm.boolean)
-      (^ (static jvm.byte-reflection)) (////@wrap jvm.byte)
-      (^ (static jvm.short-reflection)) (////@wrap jvm.short)
-      (^ (static jvm.int-reflection)) (////@wrap jvm.int)
-      (^ (static jvm.long-reflection)) (////@wrap jvm.long)
-      (^ (static jvm.float-reflection)) (////@wrap jvm.float)
-      (^ (static jvm.double-reflection)) (////@wrap jvm.double)
-      (^ (static jvm.char-reflection)) (////@wrap jvm.char)
+      (^ (static reflection.boolean)) (////@wrap jvm.boolean)
+      (^ (static reflection.byte)) (////@wrap jvm.byte)
+      (^ (static reflection.short)) (////@wrap jvm.short)
+      (^ (static reflection.int)) (////@wrap jvm.int)
+      (^ (static reflection.long)) (////@wrap jvm.long)
+      (^ (static reflection.float)) (////@wrap jvm.float)
+      (^ (static reflection.double)) (////@wrap jvm.double)
+      (^ (static reflection.char)) (////@wrap jvm.char)
       _ (if (text.starts-with? jvm.array-prefix name)
           (////.lift (.run jvm.parse-signature name))
           (////@wrap (jvm.class name (list)))))
@@ -526,7 +528,7 @@
 (def: (check-object objectT)
   (-> .Type (Operation Text))
   (do ////.monad
-    [name (:: @ map jvm.reflection-class (check-jvm objectT))]
+    [name (:: @ map reflection.class (check-jvm objectT))]
     (if (dictionary.contains? name ..boxes)
       (/////analysis.throw ..primitives-are-not-objects [name])
       (////@wrap name))))
@@ -629,47 +631,47 @@
       (|> ///bundle.empty
           (dictionary.merge (<| (///bundle.prefix "length")
                                 (|> ///bundle.empty
-                                    (///bundle.install jvm.boolean-reflection (primitive-array-length-handler jvm.boolean))
-                                    (///bundle.install jvm.byte-reflection (primitive-array-length-handler jvm.byte))
-                                    (///bundle.install jvm.short-reflection (primitive-array-length-handler jvm.short))
-                                    (///bundle.install jvm.int-reflection (primitive-array-length-handler jvm.int))
-                                    (///bundle.install jvm.long-reflection (primitive-array-length-handler jvm.long))
-                                    (///bundle.install jvm.float-reflection (primitive-array-length-handler jvm.float))
-                                    (///bundle.install jvm.double-reflection (primitive-array-length-handler jvm.double))
-                                    (///bundle.install jvm.char-reflection (primitive-array-length-handler jvm.char))
+                                    (///bundle.install reflection.boolean (primitive-array-length-handler jvm.boolean))
+                                    (///bundle.install reflection.byte (primitive-array-length-handler jvm.byte))
+                                    (///bundle.install reflection.short (primitive-array-length-handler jvm.short))
+                                    (///bundle.install reflection.int (primitive-array-length-handler jvm.int))
+                                    (///bundle.install reflection.long (primitive-array-length-handler jvm.long))
+                                    (///bundle.install reflection.float (primitive-array-length-handler jvm.float))
+                                    (///bundle.install reflection.double (primitive-array-length-handler jvm.double))
+                                    (///bundle.install reflection.char (primitive-array-length-handler jvm.char))
                                     (///bundle.install "object" array::length::object))))
           (dictionary.merge (<| (///bundle.prefix "new")
                                 (|> ///bundle.empty
-                                    (///bundle.install jvm.boolean-reflection (new-primitive-array-handler jvm.boolean))
-                                    (///bundle.install jvm.byte-reflection (new-primitive-array-handler jvm.byte))
-                                    (///bundle.install jvm.short-reflection (new-primitive-array-handler jvm.short))
-                                    (///bundle.install jvm.int-reflection (new-primitive-array-handler jvm.int))
-                                    (///bundle.install jvm.long-reflection (new-primitive-array-handler jvm.long))
-                                    (///bundle.install jvm.float-reflection (new-primitive-array-handler jvm.float))
-                                    (///bundle.install jvm.double-reflection (new-primitive-array-handler jvm.double))
-                                    (///bundle.install jvm.char-reflection (new-primitive-array-handler jvm.char))
+                                    (///bundle.install reflection.boolean (new-primitive-array-handler jvm.boolean))
+                                    (///bundle.install reflection.byte (new-primitive-array-handler jvm.byte))
+                                    (///bundle.install reflection.short (new-primitive-array-handler jvm.short))
+                                    (///bundle.install reflection.int (new-primitive-array-handler jvm.int))
+                                    (///bundle.install reflection.long (new-primitive-array-handler jvm.long))
+                                    (///bundle.install reflection.float (new-primitive-array-handler jvm.float))
+                                    (///bundle.install reflection.double (new-primitive-array-handler jvm.double))
+                                    (///bundle.install reflection.char (new-primitive-array-handler jvm.char))
                                     (///bundle.install "object" array::new::object))))
           (dictionary.merge (<| (///bundle.prefix "read")
                                 (|> ///bundle.empty
-                                    (///bundle.install jvm.boolean-reflection (read-primitive-array-handler ..boolean jvm.boolean))
-                                    (///bundle.install jvm.byte-reflection (read-primitive-array-handler ..byte jvm.byte))
-                                    (///bundle.install jvm.short-reflection (read-primitive-array-handler ..short jvm.short))
-                                    (///bundle.install jvm.int-reflection (read-primitive-array-handler ..int jvm.int))
-                                    (///bundle.install jvm.long-reflection (read-primitive-array-handler ..long jvm.long))
-                                    (///bundle.install jvm.float-reflection (read-primitive-array-handler ..float jvm.float))
-                                    (///bundle.install jvm.double-reflection (read-primitive-array-handler ..double jvm.double))
-                                    (///bundle.install jvm.char-reflection (read-primitive-array-handler ..char jvm.char))
+                                    (///bundle.install reflection.boolean (read-primitive-array-handler ..boolean jvm.boolean))
+                                    (///bundle.install reflection.byte (read-primitive-array-handler ..byte jvm.byte))
+                                    (///bundle.install reflection.short (read-primitive-array-handler ..short jvm.short))
+                                    (///bundle.install reflection.int (read-primitive-array-handler ..int jvm.int))
+                                    (///bundle.install reflection.long (read-primitive-array-handler ..long jvm.long))
+                                    (///bundle.install reflection.float (read-primitive-array-handler ..float jvm.float))
+                                    (///bundle.install reflection.double (read-primitive-array-handler ..double jvm.double))
+                                    (///bundle.install reflection.char (read-primitive-array-handler ..char jvm.char))
                                     (///bundle.install "object" array::read::object))))
           (dictionary.merge (<| (///bundle.prefix "write")
                                 (|> ///bundle.empty
-                                    (///bundle.install jvm.boolean-reflection (write-primitive-array-handler ..boolean jvm.boolean))
-                                    (///bundle.install jvm.byte-reflection (write-primitive-array-handler ..byte jvm.byte))
-                                    (///bundle.install jvm.short-reflection (write-primitive-array-handler ..short jvm.short))
-                                    (///bundle.install jvm.int-reflection (write-primitive-array-handler ..int jvm.int))
-                                    (///bundle.install jvm.long-reflection (write-primitive-array-handler ..long jvm.long))
-                                    (///bundle.install jvm.float-reflection (write-primitive-array-handler ..float jvm.float))
-                                    (///bundle.install jvm.double-reflection (write-primitive-array-handler ..double jvm.double))
-                                    (///bundle.install jvm.char-reflection (write-primitive-array-handler ..char jvm.char))
+                                    (///bundle.install reflection.boolean (write-primitive-array-handler ..boolean jvm.boolean))
+                                    (///bundle.install reflection.byte (write-primitive-array-handler ..byte jvm.byte))
+                                    (///bundle.install reflection.short (write-primitive-array-handler ..short jvm.short))
+                                    (///bundle.install reflection.int (write-primitive-array-handler ..int jvm.int))
+                                    (///bundle.install reflection.long (write-primitive-array-handler ..long jvm.long))
+                                    (///bundle.install reflection.float (write-primitive-array-handler ..float jvm.float))
+                                    (///bundle.install reflection.double (write-primitive-array-handler ..double jvm.double))
+                                    (///bundle.install reflection.char (write-primitive-array-handler ..char jvm.char))
                                     (///bundle.install "object" array::write::object))))
           )))
 
@@ -900,7 +902,7 @@
           (case (array.size (java/lang/Class::getTypeParameters java-type))
             0
             (case class-name
-              (^ (static jvm.void-reflection))
+              (^ (static reflection.void))
               (////@wrap Any)
 
               _
@@ -1009,7 +1011,7 @@
     (monad.map ////.monad
                (function (_ superT)
                  (do ////.monad
-                   [super-name (:: @ map jvm.reflection-class (check-jvm superT))
+                   [super-name (:: @ map reflection.class (check-jvm superT))
                     super-class (load-class super-name)]
                    (wrap [[super-name superT]
                           (java/lang/Class::isAssignableFrom super-class to-class)])))
@@ -1025,10 +1027,10 @@
       (^ (list fromC))
       (do ////.monad
         [toT (///.lift macro.expected-type)
-         to-name (:: @ map jvm.reflection-class (check-jvm toT))
+         to-name (:: @ map reflection.class (check-jvm toT))
          [fromT fromA] (typeA.with-inference
                          (analyse fromC))
-         from-name (:: @ map jvm.reflection-class (check-jvm fromT))
+         from-name (:: @ map reflection.class (check-jvm fromT))
          can-cast? (: (Operation Bit)
                       (case [from-name to-name]
                         (^template [ ]
@@ -1036,14 +1038,14 @@
                                (^ [(static ) (static )])
                                (^ [(static ) (static )]))
                           (wrap #1))
-                        ([jvm.boolean-reflection jvm.boolean-box]
-                         [jvm.byte-reflection    jvm.byte-box]
-                         [jvm.short-reflection   jvm.short-box]
-                         [jvm.int-reflection     jvm.int-box]
-                         [jvm.long-reflection    jvm.long-box]
-                         [jvm.float-reflection   jvm.float-box]
-                         [jvm.double-reflection  jvm.double-box]
-                         [jvm.char-reflection    jvm.char-box])
+                        ([reflection.boolean box.boolean]
+                         [reflection.byte    box.byte]
+                         [reflection.short   box.short]
+                         [reflection.int     box.int]
+                         [reflection.long    box.long]
+                         [reflection.float   box.float]
+                         [reflection.double  box.double]
+                         [reflection.char    box.char])
 
                         _
                         (do @
@@ -1281,7 +1283,7 @@
 (def: reflection-arguments
   (-> (List Text) (Operation (List Text)))
   (|>> (monad.map error.monad (.run jvm.parse-signature))
-       (:: error.monad map (list@map jvm.reflection-class))
+       (:: error.monad map (list@map reflection.class))
        ////.lift))
 
 (def: (check-method class method-name method-style arg-classes method)
@@ -1629,14 +1631,14 @@
 (def: primitive
   (Parser Primitive)
   ($_ p.or
-      (s.identifier! ["" jvm.boolean-reflection])
-      (s.identifier! ["" jvm.byte-reflection])
-      (s.identifier! ["" jvm.short-reflection])
-      (s.identifier! ["" jvm.int-reflection])
-      (s.identifier! ["" jvm.long-reflection])
-      (s.identifier! ["" jvm.float-reflection])
-      (s.identifier! ["" jvm.double-reflection])
-      (s.identifier! ["" jvm.char-reflection])
+      (s.identifier! ["" reflection.boolean])
+      (s.identifier! ["" reflection.byte])
+      (s.identifier! ["" reflection.short])
+      (s.identifier! ["" reflection.int])
+      (s.identifier! ["" reflection.long])
+      (s.identifier! ["" reflection.float])
+      (s.identifier! ["" reflection.double])
+      (s.identifier! ["" reflection.char])
       ))
 
 (def: type
@@ -1672,7 +1674,7 @@
 
 (def: return
   (Parser Return)
-  (p.or (s.identifier! ["" jvm.void-reflection])
+  (p.or (s.identifier! ["" reflection.void])
         ..type))
 
 (type: #export (Overriden-Method a)
@@ -1754,14 +1756,14 @@
   (case type
     (#jvm.Primitive primitive)
     (case primitive
-      #jvm.Boolean (/////analysis.constant ["" jvm.boolean-reflection])
-      #jvm.Byte (/////analysis.constant ["" jvm.byte-reflection])
-      #jvm.Short (/////analysis.constant ["" jvm.short-reflection])
-      #jvm.Int (/////analysis.constant ["" jvm.int-reflection])
-      #jvm.Long (/////analysis.constant ["" jvm.long-reflection])
-      #jvm.Float (/////analysis.constant ["" jvm.float-reflection])
-      #jvm.Double (/////analysis.constant ["" jvm.double-reflection])
-      #jvm.Char (/////analysis.constant ["" jvm.char-reflection]))
+      #jvm.Boolean (/////analysis.constant ["" reflection.boolean])
+      #jvm.Byte (/////analysis.constant ["" reflection.byte])
+      #jvm.Short (/////analysis.constant ["" reflection.short])
+      #jvm.Int (/////analysis.constant ["" reflection.int])
+      #jvm.Long (/////analysis.constant ["" reflection.long])
+      #jvm.Float (/////analysis.constant ["" reflection.float])
+      #jvm.Double (/////analysis.constant ["" reflection.double])
+      #jvm.Char (/////analysis.constant ["" reflection.char]))
     
     (#jvm.Generic generic)
     (generic-analysis generic)
-- 
cgit v1.2.3