What is the difference in
trait MyTrait[T] {
  def doSomething() : T
}
and
trait MyTrait {
  type T
  def doSomething() : T
}
when you're implementing or mixing them in, it's looks almost the same. What are use-cases for using abstract type then?
 
    