Skip to content

Instantly share code, notes, and snippets.

@retronym
Created March 23, 2010 18:05
Show Gist options
  • Save retronym/341475 to your computer and use it in GitHub Desktop.
Save retronym/341475 to your computer and use it in GitHub Desktop.
Calculate the Least Upper Bound of two types.
object test {
case class L[A, B]() {
def ToLub[AA >: A <: L, BB >: B <: L, L] = new { type LUB = L }
}
val intBoolLub = L[Int, Boolean].ToLub
(1: AnyVal) : intBoolLub.LUB
1: intBoolLub.LUB
true: intBoolLub.LUB
0L: intBoolLub.LUB
//
// "": intBoolLub.LUB
}
@ortizfabio
Copy link

Same problem as here
akka/akka#19418

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment