I think it is one case where you should use newtype instead of type, so that it is not just a simple type synonym, but an actual "other" type.

With type, you're just making an alias, but Haskell sees the same type. A newtype wrapper will hide this, at the price of having to define a (unique) constructor... So yes, you'll have to change some code.