Context BoundΒΆ
A context bound describes an implicit value. It is used to declare that for some type A, there is an implicit value of type B[A] available. The syntax goes like this:
def f[A : B](a: A) = g(a) // where g requires an implicit value of type B[A]
How can B[A] implicit parameter be reached?
def f[A : B](a: A) = {
val ev = implicitly[B[A]]
g(a)
}
De-sugared version of Context Bound:
def g[A](a: A)(implicit ev: B[A]) = g(a)