code: public static <T> List<T> getAt(ListWithDefault<T> self, EmptyRange range) {
          return ListWithDefault.newInstance(new ArrayList<T>(), self.isLazyDefaultValues(), self.getInitClosure());
      }
docs: Support the range subscript operator for an eager or lazy List.
  <pre class="groovyTestCase">
  def list = [true, 1, 3.4].withDefault{ 42 }
  {@code assert list[0..<0] == []}
  </pre>
  
  @param self  a ListWithDefault
  @param range a Range indicating the items to get
  
  @return a new list instance based on range borders