Programming languages typically support two different features for abbreviating complex types - type aliases and newtypes. However, type aliases lead to poor error messages and slow compile times, which is why I chose not to support them in my recently released language, PolySubML. In this post, I will explain the problems with type aliases and provacatively suggest that new languages should only support newtypes and stop supporting type aliases.