fix operation semantics to deal with typing changes