title: Groovy cast behaves inconsistently
body: <p>I ran into a bad chunk of code today that equates to this:</p>
  
  <pre><code>[["asdf"]].each {String str -&gt; println str}
  
  println (["asdf"] as String)
  </code></pre>
  
  <p>Put this into groovy console (<code>groovysh</code>) and you'll see this come out:</p>
  
  <pre><code>asdf
  
  [asdf]
  </code></pre>
  
  <p>Can anyone explain why there's a difference in the outputs?</p>