How do I setup multiple type bounds in Scala?

Solution 1:

Use Compound Type:

trait Narrowable[A] extends Iterable[A] {
  def narrow[B <: A with AnyRef] : Iterable[B]
}