Extension Functions on Type Aliases Should only Be Accessable From Similar Types

A type alias does not create a new type, it just assigns an alternative name to an existing type. A feature to create new types has been proposed, but if it ever gets implemented (which may not be easy to do due to Java interop requirements), it will use a different keyword, because it will have different semantics.