Index: tests/.expect/KRfunctions.nast.arm64.txt
===================================================================
--- tests/.expect/KRfunctions.nast.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/.expect/KRfunctions.nast.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -104,6 +104,6 @@
     signed int _X1bi_2;
     {
-        signed int *(*_tmp_cp_ret4)(signed int __param_0, signed int __param_1);
-        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret4=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret4)));
+        signed int *(*_tmp_cp_ret6)(signed int __param_0, signed int __param_1);
+        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret6=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret6)));
     }
 
Index: tests/.expect/declarationSpecifier.arm64.txt
===================================================================
--- tests/.expect/declarationSpecifier.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/.expect/declarationSpecifier.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -1147,6 +1147,6 @@
 
     {
-        signed int _tmp_cp_ret4;
-        ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */);
+        signed int _tmp_cp_ret6;
+        ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret6=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret6)) /* ?{} */);
     }
 
Index: tests/.expect/extension.arm64.txt
===================================================================
--- tests/.expect/extension.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/.expect/extension.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -457,6 +457,6 @@
 
     {
-        signed int _tmp_cp_ret4;
-        ((void)(((void)(_tmp_cp_ret4=__extension__ _X4fredFi_i__1(3))) , _tmp_cp_ret4));
+        signed int _tmp_cp_ret6;
+        ((void)(((void)(_tmp_cp_ret6=__extension__ _X4fredFi_i__1(3))) , _tmp_cp_ret6));
     }
 
Index: tests/.expect/gccExtensions.arm64.txt
===================================================================
--- tests/.expect/gccExtensions.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/.expect/gccExtensions.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -339,6 +339,6 @@
 
     {
-        signed int _tmp_cp_ret4;
-        ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */);
+        signed int _tmp_cp_ret6;
+        ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret6=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret6)) /* ?{} */);
     }
 
Index: tests/.expect/math.nast.arm64.txt
===================================================================
--- tests/.expect/math.nast.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/.expect/math.nast.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -17,4 +17,8 @@
 4 16
 log:0. 0. 0. 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972654708616060729088+0.785398163397448309615660845819876i
+log2:10 17 23
+log2:10 17 23
+log2:10 17 23
+log2:10. 17. 23.
 log2:3. 3. 3.
 log10:2. 2. 2.
Index: tests/errors/.expect/completeType.nast.arm64.txt
===================================================================
--- tests/errors/.expect/completeType.nast.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/errors/.expect/completeType.nast.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -12,5 +12,5 @@
       Application of
         Variable Expression: *?: forall
-          DT: data type
+          instance of type DT (not function type)
           function
         ... with parameters
@@ -21,5 +21,40 @@
         ... with resolved type:
           pointer to forall
-            [unbound]:data type
+            instance of type [unbound] (not function type)
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct A without body
+        ... with resolved type:
+          pointer to instance of struct A without body
+
+      ... with resolved type:
+        reference to instance of struct A without body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]DT) -> instance of struct A without body (no widening)
+
+
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          instance of type DT (not function type)
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            instance of type [unbound] (not function type)
             function
           ... with parameters
@@ -41,40 +76,5 @@
     void
   )
-  Environment:([unbound]) -> instance of struct B with body (no widening)
-
-
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          DT: data type
-          function
-        ... with parameters
-          pointer to instance of type DT (not function type)
-        ... returning
-          reference to instance of type DT (not function type)
-
-        ... with resolved type:
-          pointer to forall
-            [unbound]:data type
-            function
-          ... with parameters
-            pointer to instance of type [unbound] (not function type)
-          ... returning
-            reference to instance of type [unbound] (not function type)
-
-        ... to arguments
-        Variable Expression: x: pointer to instance of struct A without body
-        ... with resolved type:
-          pointer to instance of struct A without body
-
-      ... with resolved type:
-        reference to instance of struct A without body
-    ... to: nothing
-    ... with resolved type:
-      void
-  (types:
-    void
-  )
-  Environment:([unbound]) -> instance of struct A without body (no widening)
+  Environment:([unbound]DT) -> instance of struct B with body (no widening)
 
 
@@ -113,7 +113,15 @@
 Cost ( 0, 1, 0, 0, 1, -5, 0 ): Application of
             Variable Expression: baz: forall
-              T: sized data type
-              ... with assertions
-                ?=?: pointer to function
+              instance of type T (not function type)
+              with assertions
+              Variable Expression: ?=?: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+                instance of type T (not function type)
+              ... returning
+                instance of type T (not function type)
+
+              ... with resolved type:
+                pointer to function
                 ... with parameters
                   reference to instance of type T (not function type)
@@ -122,20 +130,38 @@
                   instance of type T (not function type)
 
-                ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-                ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning nothing
-
-                ^?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
+              Variable Expression: ?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+              Variable Expression: ?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+                instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+              Variable Expression: ^?{}: pointer to function
+              ... with parameters
+                reference to instance of type T (not function type)
+              ... returning nothing
+
+              ... with resolved type:
+                pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
 
               function
@@ -146,7 +172,15 @@
             ... with resolved type:
               pointer to forall
-                [unbound]:sized data type
-                ... with assertions
-                  ?=?: pointer to function
+                instance of type [unbound] (not function type)
+                with assertions
+                Variable Expression: ?=?: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  instance of type T (not function type)
+
+                ... with resolved type:
+                  pointer to function
                   ... with parameters
                     reference to instance of type [unbound] (not function type)
@@ -155,10 +189,23 @@
                     instance of type [unbound] (not function type)
 
-                  ?{}: pointer to function
+                Variable Expression: ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
                   ... with parameters
                     reference to instance of type [unbound] (not function type)
                   ... returning nothing
 
-                  ?{}: pointer to function
+                Variable Expression: ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
                   ... with parameters
                     reference to instance of type [unbound] (not function type)
@@ -166,9 +213,14 @@
                   ... returning nothing
 
-                  ^?{}: pointer to function
+                Variable Expression: ^?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ... with resolved type:
+                  pointer to function
                   ... with parameters
                     reference to instance of type [unbound] (not function type)
                   ... returning nothing
-
 
                 function
@@ -188,12 +240,20 @@
           void
         )
-        Environment:([unbound]) -> instance of type T (not function type) (no widening)
+        Environment:([unbound]T) -> instance of type T (not function type) (no widening)
 
       Could not satisfy assertion:
-?=?: pointer to function
+Variable Expression: ?=?: pointer to function
         ... with parameters
-          reference to instance of type [unbound] (not function type)
-          instance of type [unbound] (not function type)
+          reference to instance of type T (not function type)
+          instance of type T (not function type)
         ... returning
-          instance of type [unbound] (not function type)
-
+          instance of type T (not function type)
+
+        ... with resolved type:
+          pointer to function
+          ... with parameters
+            reference to instance of type [unbound] (not function type)
+            instance of type [unbound] (not function type)
+          ... returning
+            instance of type [unbound] (not function type)
+
Index: tests/io/.expect/manipulatorsOutput1.arm64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput1.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/io/.expect/manipulatorsOutput1.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -29,11 +29,11 @@
 float
 0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.000000 3.537 3.537000        4        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0.       3.        3 3.537    3.537       4.        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
 double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.537 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0.       3.        3 3.537    3.537       4.        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
 long double
-0  3.000000 3.537 3.537000       4.        4     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
-0. 3.000000 3.53699999999999992184029906638898 3.537000        4       4.     3.54 3.54     +3.54    00003.54 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0         3  3.00000 3.537    3.537        4       4.      3.5      3.5 3        3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
+0.       3.        3 3.53699999999999992184029906638898    3.537       4.        4      3.5      3.5 3.       3.5      3.5      +3.5     +3.5     000003.5 3.54E+00 0x1.c5p+1 0X1.C5P+1 3.54e+00
 
 char
Index: tests/io/.expect/manipulatorsOutput2.arm64.txt
===================================================================
--- tests/io/.expect/manipulatorsOutput2.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/io/.expect/manipulatorsOutput2.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -9,13 +9,14 @@
 -0x1.b8p+4 -0x1.b8p+4 -0x1.b8p+4
 0.000000e+00 2.750000e+01 -2.750000e+01
+0e0 27.5e0 -27.5e0
 0B11011 0X1B 2.75E-09 0X1.B8P+4
 11011 33 1b
 0. 0 27. 27 27.5
-+27 -27 +27 -27 +27.5 -27.5
++27 -27 +27. -27. +27.5 -27.5
   34  34 34
-  4.000000  4.000000 4.000000
+        4.        4.       4.
   ab  ab ab
 34567 34567 34567
-3456.000000 3456.000000 3456.000000
+3456. 3456. 3456.
 abcde abcde abcde
  034     0034 0000000034
@@ -24,5 +25,5 @@
 27.500     27.5      28. 27.50000000
 27.000 27.500     27.5      28. 27.50000000
-27   27.000000  27.500000  027  27.500    
+27   27.        27.5       027  27.500    
 234.567 234.57  234.6   235.
 234567. 2.3457e+05 2.346e+05 2.35e+05
Index: tests/meta/.expect/archVast.nast.arm64.txt
===================================================================
--- tests/meta/.expect/archVast.nast.arm64.txt	(revision 37477efd33fe989784adac29a9a716aa3f298db5)
+++ tests/meta/.expect/archVast.nast.arm64.txt	(revision ea1c97b4e5baa525f60cdfec3341f60ee012044f)
@@ -7,7 +7,7 @@
   char Alternatives are:
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FA64: signed int
+      Variable Expression: FA64: double
       ... with resolved type:
-        signed int
+        double
     ... to:
       char
@@ -39,7 +39,7 @@
 
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
-      Variable Expression: FA64: double
+      Variable Expression: FA64: signed int
       ... with resolved type:
-        double
+        signed int
     ... to:
       char
