Aliasing types cuts down on boilerplate and enhances readability, but it is no more type-safe than the aliased type itself is. Consider the following:
type alias Email = String
type alias Name = String
someEmail = "
[email protected]"
someName = "Benedict"
sendEmail ...