   }
 }
 
+extension _prext_LazyCollectionType {
+  public var _prext_lazy: Self { // Don't re-wrap already-lazy collections
+    return self
+  }
+}
+
 //===--- LazyCollection tests ---------------------------------------------===//
 
 tests.test("LazyCollection/CollectionType") {

  ///
  /// - Requires: `position` is a valid position in `self` and
  ///   `position != endIndex`.
  public subscript(position: Base.Index) -> T {
    return _transform(_base[position])
  }

  /// Returns a *generator* over the elements of this *sequence*.
  ///
  /// - Complexity: O(1).
  public func generate() -> _prext_MapGenerator<Base.Generator, T> {
    return _prext_MapGenerator(_base: _base.generate(), _transform: _transform)
  }


public struct _prext_LazySequence<Base_ : SequenceType>
  : _prext_LazySequenceType, _SequenceWrapperType {
  public var _base: Base_
  public var elements: Base_ { return _base }
}

extension SequenceType {
