diff --git a/morphisms/angle.morphism-base b/morphisms/angle.morphism-base
index 71aba96..5fa3baf 100644
--- a/morphisms/angle.morphism-base
+++ b/morphisms/angle.morphism-base
@@ -3,16 +3,16 @@
 ```
 
 morph_angle_as_degrees_to_turns_float ()
-    Angle ~ Degrees ~ ℝ ~ native.Float
---> Angle ~ Turns ~ ℝ ~ native.Float
+    Angle ~ Degrees ~ ℝ ~ native.Float32
+--> Angle ~ Turns ~ ℝ ~ native.Float32
 ```
     *dst = *src / 360.0;
     return 0;
 ```
 
 morph_angle_as_degrees_to_turns_double ()
-    Angle ~ Degrees ~ ℝ ~ native.Double
---> Angle ~ Turns ~ ℝ ~ native.Double
+    Angle ~ Degrees ~ ℝ ~ native.Float64
+--> Angle ~ Turns ~ ℝ ~ native.Float64
 ```
     *dst = *src / 360.0;
     return 0;
@@ -20,16 +20,16 @@ morph_angle_as_degrees_to_turns_double ()
 
 
 morph_angle_as_turns_to_degrees_float ()
-    Angle ~ Turns ~ ℝ ~ native.Float
---> Angle ~ Degrees ~ ℝ ~ native.Float
+    Angle ~ Turns ~ ℝ ~ native.Float32
+--> Angle ~ Degrees ~ ℝ ~ native.Float32
 ```
     *dst = *src * 360.0;
     return 0;
 ```
 
 morph_angle_as_turns_to_degrees_double ()
-    Angle ~ Turns ~ ℝ ~ native.Double
---> Angle ~ Degrees ~ ℝ ~ native.Double
+    Angle ~ Turns ~ ℝ ~ native.Float64
+--> Angle ~ Degrees ~ ℝ ~ native.Float64
 ```
     *dst = *src * 360.0;
     return 0;
@@ -39,16 +39,16 @@ morph_angle_as_turns_to_degrees_double ()
 
 
 morph_angle_as_radians_to_turns_float ()
-    Angle ~ Radians ~ ℝ ~ native.Float
---> Angle ~ Turns ~ ℝ ~ native.Float
+    Angle ~ Radians ~ ℝ ~ native.Float32
+--> Angle ~ Turns ~ ℝ ~ native.Float32
 ```
     *dst = *src / PHI;
     return 0;
 ```
 
 morph_angle_as_radians_to_turns_double ()
-    Angle ~ Radians ~ ℝ ~ native.Double
---> Angle ~ Turns ~ ℝ ~ native.Double
+    Angle ~ Radians ~ ℝ ~ native.Float64
+--> Angle ~ Turns ~ ℝ ~ native.Float64
 ```
     *dst = *src / PHI;
     return 0;
@@ -56,16 +56,16 @@ morph_angle_as_radians_to_turns_double ()
 
 
 morph_angle_as_turns_to_radians_float ()
-    Angle ~ Turns ~ ℝ ~ native.Float
---> Angle ~ Radians ~ ℝ ~ native.Float
+    Angle ~ Turns ~ ℝ ~ native.Float32
+--> Angle ~ Radians ~ ℝ ~ native.Float32
 ```
     *dst = *src * PHI;
     return 0;
 ```
 
 morph_angle_as_degrees_to_radians_double ()
-    Angle ~ Turns ~ ℝ ~ native.Double
---> Angle ~ Radians ~ ℝ ~ native.Double
+    Angle ~ Turns ~ ℝ ~ native.Float64
+--> Angle ~ Radians ~ ℝ ~ native.Float64
 ```
     *dst = *src * PHI;
     return 0;
diff --git a/morphisms/real.morphism-base b/morphisms/real.morphism-base
index 3302f80..4add278 100644
--- a/morphisms/real.morphism-base
+++ b/morphisms/real.morphism-base
@@ -4,7 +4,7 @@
 
 morph_real_as_decimalstr_to_float ()
     ℝ ~ <PosInt 10 BigEndian> ~ <Seq~<ValueTerminated 0> <Digit 10>~Char~Ascii~native.UInt8>
---> ℝ ~ native.Float
+--> ℝ ~ native.Float32
 ```
     sscanf(src, "%f", dst);
     return 0;
@@ -12,14 +12,14 @@ morph_real_as_decimalstr_to_float ()
 
 morph_real_as_decimalstr_to_double ()
     ℝ ~ <PosInt 10 BigEndian> ~ <Seq~<ValueTerminated 0> <Digit 10>~Char~Ascii~native.UInt8>
---> ℝ ~ native.Double
+--> ℝ ~ native.Float64
 ```
     sscanf(src, "%lf", dst);
     return 0;
 ```
 
 morph_real_as_float_to_decimalstr ()
-    ℝ ~ native.Float
+    ℝ ~ native.Float32
 --> ℝ ~ <PosInt 10 BigEndian> ~ <Seq~<ValueTerminated 0> <Digit 10>~Char~Ascii~native.UInt8>
 ```
     sprintf(dst, "%f", *src);
@@ -27,7 +27,7 @@ morph_real_as_float_to_decimalstr ()
 ```
 
 morph_real_as_double_to_decimalstr ()
-    ℝ ~ native.Double
+    ℝ ~ native.Float64
 --> ℝ ~ <PosInt 10 BigEndian> ~ <Seq~<ValueTerminated 0> <Digit 10>~Char~Ascii~native.UInt8>
 ```
     sprintf(dst, "%f", *src);
@@ -36,16 +36,16 @@ morph_real_as_double_to_decimalstr ()
 
 
 morph_real_as_float_to_double ()
-    ℝ ~ native.Float
---> ℝ ~ native.Double
+    ℝ ~ native.Float32
+--> ℝ ~ native.Float64
 ```
     *dst = *src;
     return 0;
 ```
 
 morph_real_as_double_to_float ()
-    ℝ ~ native.Double
---> ℝ ~ native.Float
+    ℝ ~ native.Float64
+--> ℝ ~ native.Float32
 ```
     fprintf(stderr, "Warning: morphin Double -> Float. Precision loss!");
     *dst = *src;
@@ -54,7 +54,7 @@ morph_real_as_double_to_float ()
 
 morph_real_as_u64_to_float ()
     ℝ ~ ℕ ~ native.UInt64
---> ℝ ~ native.Float
+--> ℝ ~ native.Float32
 ```
     fprintf(stderr, "Warning: morphin UInt64 -> Float. Precision loss!");
     *dst = *src;
@@ -63,7 +63,7 @@ morph_real_as_u64_to_float ()
 
 morph_real_as_u64_to_double ()
     ℝ ~ ℕ ~ native.UInt64
---> ℝ ~ native.Double
+--> ℝ ~ native.Float64
 ```
     fprintf(stderr, "Warning: morphin UInt64 -> Double. Precision loss!");
     *dst = *src;
@@ -72,14 +72,14 @@ morph_real_as_u64_to_double ()
 
 morph_real_as_quantized_linear_to_float (Begin: ℝ, End: ℝ, Steps: ℤ)
     ℝ ~ <QuantizedLinear Begin End Steps> ~ ℕ ~ native.UInt64
---> ℝ ~ native.Float
+--> ℝ ~ native.Float32
 ```
     *dst = (float)Begin  +  ( *src * ((float)End - (float)Begin) ) / (float)Steps;
     return 0;
 ```
 
 morph_real_as_float_to_quantized_linear (Begin: ℝ, End: ℝ, Steps: ℤ)
-    ℝ ~ native.Float
+    ℝ ~ native.Float32
 --> ℝ ~ <QuantizedLinear Begin End Steps> ~ ℕ ~ native.UInt64
 ```
     *dst = ((*src - (float)Begin) * (float)Steps) / ((float)End - (float)Begin);
@@ -90,14 +90,14 @@ morph_real_as_float_to_quantized_linear (Begin: ℝ, End: ℝ, Steps: ℤ)
 
 morph_real_as_quantized_linear_to_double (Begin: ℝ, End: ℝ, Steps: ℤ)
     ℝ ~ <QuantizedLinear Begin End Steps> ~ ℕ ~ native.UInt64
---> ℝ ~ native.Double
+--> ℝ ~ native.Float64
 ```
     *dst = (double)Begin  +  ( *src * ((double)End - (double)Begin) ) / (double)Steps;
     return 0;
 ```
 
 morph_real_as_double_to_quantized_linear (Begin: ℝ, End: ℝ, Steps: ℤ)
-    ℝ ~ native.Double
+    ℝ ~ native.Float64
 --> ℝ ~ <QuantizedLinear Begin End Steps> ~ ℕ ~ native.UInt64
 ```
     *dst = ((*src - (double)Begin) * (double)Steps) / ((double)End - (double)Begin);
diff --git a/morphisms/temperature.morphism-base b/morphisms/temperature.morphism-base
index 7831292..6c682bc 100644
--- a/morphisms/temperature.morphism-base
+++ b/morphisms/temperature.morphism-base
@@ -2,32 +2,32 @@
 ```
 
 morph_celsius_to_kelvin ()
-      Temperature ~ Celsius ~ ℝ ~ native.Float
--->   Temperature ~ Kelvin ~ ℝ ~ native.Float
+      Temperature ~ Celsius ~ ℝ ~ native.Float32
+-->   Temperature ~ Kelvin ~ ℝ ~ native.Float32
 ```
     *dst = *src + 273.15;
     return 0;
 ```
 
 morph_kelvin_to_celsius ()
-      Temperature ~ Kelvin ~ ℝ ~ native.Float
--->   Temperature ~ Celsius ~ ℝ ~ native.Float
+      Temperature ~ Kelvin ~ ℝ ~ native.Float32
+-->   Temperature ~ Celsius ~ ℝ ~ native.Float32
 ```
     *dst = *src - 273.15;
     return 0;
 ```
 
 morph_celsius_to_fahrenheit ()
-      Temperature ~ Celsius ~ ℝ ~ native.Float
--->   Temperature ~ Fahrenheit ~ ℝ ~ native.Float
+      Temperature ~ Celsius ~ ℝ ~ native.Float32
+-->   Temperature ~ Fahrenheit ~ ℝ ~ native.Float32
 ```
     *dst = (*src * 9.0 / 5.0) + 32.0;
     return 0;
 ```
 
 morph_fahrenheit_to_celsius ()
-      Temperature ~ Fahrenheit ~ ℝ ~ native.Float
--->   Temperature ~ Celsius ~ ℝ ~ native.Float
+      Temperature ~ Fahrenheit ~ ℝ ~ native.Float32
+-->   Temperature ~ Celsius ~ ℝ ~ native.Float32
 ```
     *dst = (*src - 32.0) * 5.0 / 9.0;
     return 0;