   ///
   /// - Requires: `position` is a valid position in `self` and
   ///   `position != endIndex`.
-  public subscript(position: Base.Index) -> T {
+  public subscript(position: Base.Index) -> Element {
     return _transform(_base[position])
   }
 
+  /// Returns `true` iff `self` is empty.
+  public var isEmpty: Bool { return _base.isEmpty }
+
+  public var first: Element? { return _base.first.map(_transform) }
+  
+
   /// Returns a *generator* over the elements of this *sequence*.
   ///
   /// - Complexity: O(1).
-  public func generate() -> _prext_MapGenerator<Base.Generator, T> {
+  public func generate() -> _prext_MapGenerator<Base.Generator, Element> {
     return _prext_MapGenerator(_base: _base.generate(), _transform: _transform)
   }
 

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

extension SequenceType {

  }
}

extension _prext_LazyCollectionType {
  public var _prext_lazy: Self { // Don't re-wrap already-lazy collections
    return self
  }
}

//===--- LazyCollection tests ---------------------------------------------===//

tests.test("LazyCollection/CollectionType") {
