title: Isn't there a circular dependency problem with the Element example in "Programming in Scala" chapter 10?
body: <p>In chapter 10, on page 198 of "Programming in Scala", the definition of Element defines a function/method "above" that returns a new ArrayElement. But ArrayElement extends Element. </p>
  
  <p>In trying type in the examples, I actually get what I expected... a complaint about the circular dependency of these definitions. </p>
  
  <p>What am I missing? </p>