``` ``` morph_i64_as_twos_complement_to_zigzag () ℤ ~ native.Int64 --> ℤ ~ ZigZagInt ~ ℕ ~ native.UInt64 ``` if( *src >= 0 ) { *dst = (2 * (uint64_t)*src) } else { *dst = (2 * (uint64_t)(- *src)) - 1; } return 0; ``` morph_i64_as_zigzag_to_twos_complement () ℤ ~ ZigZagInt ~ ℕ ~ native.UInt64 --> ℤ ~ native.Int64 ``` if( *src % 2 == 0 ) { *dst = *src / 2; } else { *dst = - ((*src+1) / 2); } ```