anchor.diff:  Number.metaClass.multiply = { Amount amount -> amount.times(delegate) }
   Number.metaClass.div =      { Amount amount -> amount.inverse().times(delegate) }
   
  -
   Amount.metaClass.div =      { Number factor -> delegate.divide(factor) }
   Amount.metaClass.div =      { Amount factor -> delegate.divide(factor) }
   Amount.metaClass.multiply = { Number factor -> delegate.times(factor) }
  
positive.code:     Tree(Object... elements) { this.elements = elements as List }
  }
  
  
  class Leaf {
      def value
      Leaf(value) { this.value = value }
  }
  
  
  def buildTree() {
      new Tree(new Tree(new Leaf(1), new Leaf(2)), new Leaf(3))
  }
  
  
  buildTree()
  -----------------------------------------------------------------
  
negative.code: -----------------------------------------------------
  import java.util.concurrent.locks.*
  
  class LockableList {
      @Delegate private List list = []
      @Delegate private Lock lock = new ReentrantLock()
  }
  
  def list = new LockableList()
  
  list.lock()
  try {
  