Signed and unsigned should both go, there should only be wordN types (word8, word16, etc) with two's complement semantics.
Then you can have explicit functions for the operation you want: signed_mul(), signed_less_than(), unsigned_greater_than(), add_assume_no_overflow(), etc.
(add your favorite syntactic sugar/operator symbols for these).
Assembly is more explicit and clearer to understand in this regard.
Then you can have explicit functions for the operation you want: signed_mul(), signed_less_than(), unsigned_greater_than(), add_assume_no_overflow(), etc. (add your favorite syntactic sugar/operator symbols for these).
Assembly is more explicit and clearer to understand in this regard.