blob: 48c5302f7fb3d7843084cee8b352e1b6475f2cfb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
object Test {
trait Number
trait Zero extends Number
trait Succ[N <: Number](n: N) extends Number
implicit def succ[N <: Number](implicit n: N): Succ[N] = new Succ[N](n) {}
implicit def zero: Zero = new Zero{}
implicitly[Zero]
implicitly[Succ[Zero]]
implicitly[Succ[Succ[Zero]]]
implicitly[Succ[Succ[Succ[Zero]]]]
}
|