title: What are the differences between asInstanceOf[T] and (o: T) in Scala?
body: <p>I saw that there are two methods to cast an object in Scala:</p>
  
  <pre><code>foo.asInstanceOf[Bar]
  (foo: Bar)
  </code></pre>
  
  <p>When I tried, I found that <code>asInstanceOf</code> doesn't use implicit conversion whereas the other one does. </p>
  
  <p>What are the differences of behavior between these two methods? And where is it recommended to use one over the other?</p>