trait Foo
[T
] { def doStuff
(t
: T
) : Unit
} object Foo
{ def doStuff
[T
: Foo
](t
: T
) = implicitly
[Foo
[T
]].
doStuff(t
) }
Foo.doStuff(10)
Foo.doStuff("test")
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJCgl0cmFpdCBGb29bVF0geyBkZWYgZG9TdHVmZih0IDogVCkgOiBVbml0IH0KCW9iamVjdCBGb28geyBkZWYgZG9TdHVmZltUIDogRm9vXSh0IDogVCkgPSBpbXBsaWNpdGx5W0Zvb1tUXV0uZG9TdHVmZih0KSB9CgkKCWltcGxpY2l0IG9iamVjdCBJbnRGb28gZXh0ZW5kcyBGb29bSW50XSB7IGRlZiBkb1N0dWZmKHggOiBJbnQpID0gcHJpbnRsbih4ICogMTApIH0KCWltcGxpY2l0IG9iamVjdCBTdHJpbmdGb28gZXh0ZW5kcyBGb29bU3RyaW5nXSB7IGRlZiBkb1N0dWZmKHMgOiBTdHJpbmcpID0gcHJpbnRsbihzIkluY29taW5nIHN0cmluZzogJHMiKSB9CgkKCUZvby5kb1N0dWZmKDEwKQoJRm9vLmRvU3R1ZmYoInRlc3QiKQoJCn0=