Skip to content

Instantly share code, notes, and snippets.

@piotrga
piotrga / gist:1517036
Created December 24, 2011 09:59
Type aliasing
case class FunnyPair[A,B](a:A, b:B)
val x = FunnyPair // apparently it's equivalent to: type x = FunnyPair.type
x(2,"9")
scala> case class FunnyPair[A,B](a:A, b:B)
defined class FunnyPair
scala> val x = FunnyPair
x: FunnyPair.type = FunnyPair
@piotrga
piotrga / gist:1517022
Created December 24, 2011 09:49
:: type alias
case class FunnyPair[A,B](a:A, b:B)
type ::[A,B] = FunnyPair[A, B]
def add(x: Int :: Int) = x.a + x.b
scala> case class FunnyPair[A,B](a:A, b:B)
defined class FunnyPair
scala> type ::[A,B] = FunnyPair[A, B]
defined type alias $colon$colon