```
```

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);
    }
```