You'd need to look at the Core to be absolutely sure, but in general:
newtype
has no runtime cost compared to the underlying type. However something likemap getIntey
will still traverse the list doing nothing.Types and type parameters themselves are erased during compilation so should also have no runtime cost - this is one of the advantages of static typing. It's only if you use a type class that a runtime value might be passed around.
So in most cases you can expect the same performance, but you may need to be a little careful about operations on containers like lists.
If you restrict yourself to GHC 7.8, then the new coerce function can help with that too.