         return startIndex.advancedBy(offset)
     }
 
+    /// - Complexity: O(1).
     public var startIndex: Index {
         return head ?? endIndex
     }
 
+    /// - Complexity: O(1).
     public var endIndex = Index(value: nil)
 
+    /// If this is the *first* modification to the list since creation or copying, invalidates all indices with respect to `self`.
+    ///
     /// - Complexity: O(1).
     public subscript(index: Index) -> Element {
         get {

        return index.value
    }

    public mutating func append(newElement: Element) {
        insert(newElement, atIndex: endIndex)
    }

    public mutating func removeLast() -> Element {
        return removeAtIndex(endIndex.predecessor())
    }

    /// Create an empty list.
    public init() { }

    /// - Complexity: O(n), where n is the length of `sequence`.
    public init<S : SequenceType where S.Generator.Element == Element>(_ sequence: S) {
        for v in sequence {
            append(v)
