タイプ セーフを提供するような方法で、シールされたトレイトのエイリアスを作成する方法はありますか? ケースクラスを作成したり、型クラスに頼ることができることはわかっていますが、これらのソリューションはやり過ぎです。
それを説明する簡単な例:
type Lon = Double
type Lat = Double
def lonLatPair(lon:Lon, lat:Lat):(Lon, Lat) = (lon, lat)
val someLon:Lon = 1.2
val someLat:Lat = 3.4
lonLatPair(someLon, someLat) // Success!
lonLatPair(someLat, someLon) // Dismal failure in the form of a type error