diff --git a/morphisms/angle.morphism-base b/morphisms/angle.morphism-base
index 5fa3baf..e678dde 100644
--- a/morphisms/angle.morphism-base
+++ b/morphisms/angle.morphism-base
@@ -5,68 +5,42 @@
 morph_angle_as_degrees_to_turns_float ()
     Angle ~ Degrees ~ ℝ ~ native.Float32
 --> Angle ~ Turns ~ ℝ ~ native.Float32
-```
-    *dst = *src / 360.0;
-    return 0;
-```
+```*dst = *src / 360.0;```
 
 morph_angle_as_degrees_to_turns_double ()
     Angle ~ Degrees ~ ℝ ~ native.Float64
 --> Angle ~ Turns ~ ℝ ~ native.Float64
-```
-    *dst = *src / 360.0;
-    return 0;
-```
+```*dst = *src / 360.0;```
 
 
 morph_angle_as_turns_to_degrees_float ()
     Angle ~ Turns ~ ℝ ~ native.Float32
 --> Angle ~ Degrees ~ ℝ ~ native.Float32
-```
-    *dst = *src * 360.0;
-    return 0;
-```
+```*dst = *src * 360.0;```
 
 morph_angle_as_turns_to_degrees_double ()
     Angle ~ Turns ~ ℝ ~ native.Float64
 --> Angle ~ Degrees ~ ℝ ~ native.Float64
-```
-    *dst = *src * 360.0;
-    return 0;
-```
-
-
+```*dst = *src * 360.0;```
 
 
 morph_angle_as_radians_to_turns_float ()
     Angle ~ Radians ~ ℝ ~ native.Float32
 --> Angle ~ Turns ~ ℝ ~ native.Float32
-```
-    *dst = *src / PHI;
-    return 0;
-```
+```*dst = *src / PHI;```
 
 morph_angle_as_radians_to_turns_double ()
     Angle ~ Radians ~ ℝ ~ native.Float64
 --> Angle ~ Turns ~ ℝ ~ native.Float64
-```
-    *dst = *src / PHI;
-    return 0;
-```
+```*dst = *src / PHI;```
 
 
 morph_angle_as_turns_to_radians_float ()
     Angle ~ Turns ~ ℝ ~ native.Float32
 --> Angle ~ Radians ~ ℝ ~ native.Float32
-```
-    *dst = *src * PHI;
-    return 0;
-```
+```*dst = *src * PHI;```
 
 morph_angle_as_degrees_to_radians_double ()
     Angle ~ Turns ~ ℝ ~ native.Float64
 --> Angle ~ Radians ~ ℝ ~ native.Float64
-```
-    *dst = *src * PHI;
-    return 0;
-```
+```*dst = *src * PHI;```
diff --git a/morphisms/digit.morphism-base b/morphisms/digit.morphism-base
index a92fe61..f037823 100644
--- a/morphisms/digit.morphism-base
+++ b/morphisms/digit.morphism-base
@@ -60,8 +60,6 @@ morph_digit_as_uint8_to_char (Radix:ℤ_16)
         fprintf(stderr, "digit %u is out of rage for char\n", *dst);
         return -1;
     }
-
-    return 0;
 ```
 
 morph_digit_as_uint64_to_char (Radix:ℤ_16)
@@ -76,6 +74,4 @@ morph_digit_as_uint64_to_char (Radix:ℤ_16)
         fprintf(stderr, "digit %u is out of rage for char\n", *dst);
         return -1;
     }
-
-    return 0;
 ```
diff --git a/morphisms/length_prefix.morphism-base b/morphisms/length_prefix.morphism-base
index 6718c16..1a1b7f5 100644
--- a/morphisms/length_prefix.morphism-base
+++ b/morphisms/length_prefix.morphism-base
@@ -10,8 +10,6 @@ morph_array_as_valterm_to_lenpfx (Terminator:native.UInt8)
     length_prefix_uint64_t_array_uint8_t_clear(dst);
     while( *src != Terminator )
         length_prefix_uint64_t_array_uint8_t_push(dst, *src++);
-
-    return 0;
 ```
 
 
@@ -23,8 +21,6 @@ morph_array_as_lenpfx_to_valterm (Terminator:native.UInt8)
         *dst++ = src->items[i];
 
     *dst = Terminator;
-
-    return 0;
 ```
 
 morph_array_as_lenpfx_to_continuation_bit (T:Type)
@@ -42,6 +38,4 @@ morph_array_as_lenpfx_to_continuation_bit (T:Type)
         if( i+1 < src->len )
             dst[i] |= (1<<(n_bits-1));
     }
-
-    return 0;
 ```
diff --git a/morphisms/posint.morphism-base b/morphisms/posint.morphism-base
index 194399b..01248eb 100644
--- a/morphisms/posint.morphism-base
+++ b/morphisms/posint.morphism-base
@@ -11,7 +11,6 @@ morph_nat_as_u64_to_pos ()
 ```
     dst->len = 1;
     dst->items[0] = *src;
-    return 0;
 ```
 
 morph_nat_as_pos_to_u64 (Endianness:Type)
@@ -22,7 +21,6 @@ morph_nat_as_pos_to_u64 (Endianness:Type)
     ~ native.UInt64
 ```
     *dst = src->items[0];
-    return 0;
 ```
 
 morph_posint_radix_le (SrcRadix:ℤ, DstRadix:ℤ)
@@ -52,8 +50,6 @@ morph_posint_radix_le (SrcRadix:ℤ, DstRadix:ℤ)
             value /= DstRadix;
         }
     #endif
-
-    return 0;
 ```
 
 morph_posint_radix_be (SrcRadix:ℤ, DstRadix:ℤ)
@@ -91,8 +87,6 @@ morph_posint_radix_be (SrcRadix:ℤ, DstRadix:ℤ)
             value /= DstRadix;
         }
     #endif
-
-    return 0;
 ```
 
 morph_posint_endianness (Radix:ℤ)
diff --git a/morphisms/real.morphism-base b/morphisms/real.morphism-base
index 4add278..5b5b2f7 100644
--- a/morphisms/real.morphism-base
+++ b/morphisms/real.morphism-base
@@ -5,43 +5,27 @@
 morph_real_as_decimalstr_to_float ()
     ℝ ~ <PosInt 10 BigEndian> ~ <Seq~<ValueTerminated 0> <Digit 10>~Char~Ascii~native.UInt8>
 --> ℝ ~ native.Float32
-```
-    sscanf(src, "%f", dst);
-    return 0;
-```
+```sscanf(src, "%f", dst);```
 
 morph_real_as_decimalstr_to_double ()
     ℝ ~ <PosInt 10 BigEndian> ~ <Seq~<ValueTerminated 0> <Digit 10>~Char~Ascii~native.UInt8>
 --> ℝ ~ native.Float64
-```
-    sscanf(src, "%lf", dst);
-    return 0;
-```
+```sscanf(src, "%lf", dst);```
 
 morph_real_as_float_to_decimalstr ()
     ℝ ~ native.Float32
 --> ℝ ~ <PosInt 10 BigEndian> ~ <Seq~<ValueTerminated 0> <Digit 10>~Char~Ascii~native.UInt8>
-```
-    sprintf(dst, "%f", *src);
-    return 0;
-```
+```sprintf(dst, "%f", *src);```
 
 morph_real_as_double_to_decimalstr ()
     ℝ ~ native.Float64
 --> ℝ ~ <PosInt 10 BigEndian> ~ <Seq~<ValueTerminated 0> <Digit 10>~Char~Ascii~native.UInt8>
-```
-    sprintf(dst, "%f", *src);
-    return 0;
-```
-
+```sprintf(dst, "%f", *src);```
 
 morph_real_as_float_to_double ()
     ℝ ~ native.Float32
 --> ℝ ~ native.Float64
-```
-    *dst = *src;
-    return 0;
-```
+```*dst = *src;```
 
 morph_real_as_double_to_float ()
     ℝ ~ native.Float64
@@ -49,7 +33,6 @@ morph_real_as_double_to_float ()
 ```
     fprintf(stderr, "Warning: morphin Double -> Float. Precision loss!");
     *dst = *src;
-    return 0;
 ```
 
 morph_real_as_u64_to_float ()
@@ -58,7 +41,6 @@ morph_real_as_u64_to_float ()
 ```
     fprintf(stderr, "Warning: morphin UInt64 -> Float. Precision loss!");
     *dst = *src;
-    return 0;
 ```
 
 morph_real_as_u64_to_double ()
@@ -67,7 +49,14 @@ morph_real_as_u64_to_double ()
 ```
     fprintf(stderr, "Warning: morphin UInt64 -> Double. Precision loss!");
     *dst = *src;
-    return 0;
+```
+
+
+morph_real_as_nat_to_quantized_linear ()
+     ℝ ~ ℕ ~ native.UInt64
+-->  ℝ ~ <QuantizedLinear 0 1 1> ~ ℕ ~ native.UInt64
+```
+    *dst = *src;
 ```
 
 morph_real_as_quantized_linear_to_float (Begin: ℝ, End: ℝ, Steps: ℤ)
@@ -75,7 +64,6 @@ morph_real_as_quantized_linear_to_float (Begin: ℝ, End: ℝ, Steps: ℤ)
 --> ℝ ~ native.Float32
 ```
     *dst = (float)Begin  +  ( *src * ((float)End - (float)Begin) ) / (float)Steps;
-    return 0;
 ```
 
 morph_real_as_float_to_quantized_linear (Begin: ℝ, End: ℝ, Steps: ℤ)
@@ -83,7 +71,6 @@ morph_real_as_float_to_quantized_linear (Begin: ℝ, End: ℝ, Steps: ℤ)
 --> ℝ ~ <QuantizedLinear Begin End Steps> ~ ℕ ~ native.UInt64
 ```
     *dst = ((*src - (float)Begin) * (float)Steps) / ((float)End - (float)Begin);
-    return 0;
 ```
 
 
@@ -93,7 +80,6 @@ morph_real_as_quantized_linear_to_double (Begin: ℝ, End: ℝ, Steps: ℤ)
 --> ℝ ~ native.Float64
 ```
     *dst = (double)Begin  +  ( *src * ((double)End - (double)Begin) ) / (double)Steps;
-    return 0;
 ```
 
 morph_real_as_double_to_quantized_linear (Begin: ℝ, End: ℝ, Steps: ℤ)
@@ -101,5 +87,4 @@ morph_real_as_double_to_quantized_linear (Begin: ℝ, End: ℝ, Steps: ℤ)
 --> ℝ ~ <QuantizedLinear Begin End Steps> ~ ℕ ~ native.UInt64
 ```
     *dst = ((*src - (double)Begin) * (double)Steps) / ((double)End - (double)Begin);
-    return 0;
 ```
diff --git a/morphisms/temperature.morphism-base b/morphisms/temperature.morphism-base
index 6c682bc..329a6b0 100644
--- a/morphisms/temperature.morphism-base
+++ b/morphisms/temperature.morphism-base
@@ -4,31 +4,19 @@
 morph_celsius_to_kelvin ()
       Temperature ~ Celsius ~ ℝ ~ native.Float32
 -->   Temperature ~ Kelvin ~ ℝ ~ native.Float32
-```
-    *dst = *src + 273.15;
-    return 0;
-```
+```*dst = *src + 273.15;```
 
 morph_kelvin_to_celsius ()
       Temperature ~ Kelvin ~ ℝ ~ native.Float32
 -->   Temperature ~ Celsius ~ ℝ ~ native.Float32
-```
-    *dst = *src - 273.15;
-    return 0;
-```
+```*dst = *src - 273.15;```
 
 morph_celsius_to_fahrenheit ()
       Temperature ~ Celsius ~ ℝ ~ native.Float32
 -->   Temperature ~ Fahrenheit ~ ℝ ~ native.Float32
-```
-    *dst = (*src * 9.0 / 5.0) + 32.0;
-    return 0;
-```
+```*dst = (*src * 9.0 / 5.0) + 32.0;```
 
 morph_fahrenheit_to_celsius ()
       Temperature ~ Fahrenheit ~ ℝ ~ native.Float32
 -->   Temperature ~ Celsius ~ ℝ ~ native.Float32
-```
-    *dst = (*src - 32.0) * 5.0 / 9.0;
-    return 0;
-```
+```*dst = (*src - 32.0) * 5.0 / 9.0;```
diff --git a/morphisms/timepoint.morphism-base b/morphisms/timepoint.morphism-base
index bb66aec..505ed37 100644
--- a/morphisms/timepoint.morphism-base
+++ b/morphisms/timepoint.morphism-base
@@ -11,5 +11,4 @@ morph_unixtime_to_iso ()
     if (!timeinfo) return -1;
 
     strftime((char*)dst, 20, "%Y-%m-%dT%H:%M:%SZ", timeinfo);
-    return 0;
 ```
diff --git a/morphisms/uint.morphism-base b/morphisms/uint.morphism-base
new file mode 100644
index 0000000..89f8f79
--- /dev/null
+++ b/morphisms/uint.morphism-base
@@ -0,0 +1,17 @@
+```
+```
+
+morph_nat_as_u8_to_u16 ()
+      ℕ ~ native.UInt8
+-->   ℕ ~ native.UInt16
+```*dst = *src;```
+
+morph_nat_as_u16_to_u32 ()
+      ℕ ~ native.UInt16
+-->   ℕ ~ native.UInt32
+```*dst = *src;```
+
+morph_nat_as_u32_to_u64 ()
+      ℕ ~ native.UInt32
+-->   ℕ ~ native.UInt64
+```*dst = *src;```
diff --git a/morphisms/unicode.morphism-base b/morphisms/unicode.morphism-base
index c2854e5..659357b 100644
--- a/morphisms/unicode.morphism-base
+++ b/morphisms/unicode.morphism-base
@@ -28,7 +28,6 @@ morph_string_as_utf8_to_ascii ()
         }
     }
     *dst = 0;
-    return 0;
 ```
 
 morph_string_as_ascii_to_utf32 ()
@@ -39,7 +38,6 @@ morph_string_as_ascii_to_utf32 ()
 ```
     while( *src ) { *dst++ = *src++; }
     *dst = 0;
-    return 0;
 ```
 
 morph_string_as_utf8_to_utf32 ()
@@ -89,6 +87,4 @@ morph_string_as_utf8_to_utf32 ()
         *dst++ = val;
 
     *dst++ = 0;
-
-    return 0;
 ```
diff --git a/morphisms/value_delim.morphism-base b/morphisms/value_delim.morphism-base
index a370682..ab66310 100644
--- a/morphisms/value_delim.morphism-base
+++ b/morphisms/value_delim.morphism-base
@@ -27,8 +27,6 @@ morph_seqseq_valsep_uint8 (T: Type, SrcDelim: T, DstDelim: T)
             length_prefix_uint64_t_array_uint8_t_push( dst, src->items[i] );
         }
     }
-
-    return 0;
 ```
 
 
@@ -66,8 +64,6 @@ morph_seqseq_as_valsep_to_lenpfx (T: Type, Delim: T, EscKey: T)
             cur++;
         }
     }
-
-    return 0;
 ```
 
 morph_seqeq_as_lenpfx_to_valsep (T: Type, Delim: T, EscKey: T)
@@ -94,6 +90,4 @@ morph_seqeq_as_lenpfx_to_valsep (T: Type, Delim: T, EscKey: T)
             length_prefix_uint64_t_array_uint8_t_push( Delim );
         }
     }
-
-    return 0;
 ```
diff --git a/morphisms/zigzag.morphism-base b/morphisms/zigzag.morphism-base
index 5a293e2..4196e72 100644
--- a/morphisms/zigzag.morphism-base
+++ b/morphisms/zigzag.morphism-base
@@ -10,8 +10,6 @@ morph_i64_as_twos_complement_to_zigzag ()
     } else {
         *dst = (2 * (uint64_t)(- *src)) - 1;
     }
-
-    return 0;
 ```
 
 morph_i64_as_zigzag_to_twos_complement ()