      - Parameter predicate: This Element?
      - Returns: Index or .None
     */
-    public func indexOf(predicate: Element -> Bool) -> Int? {
+    public func indexOf(predicate: Generator.Element -> Bool) -> Int? {
         for (idx, element) in self.enumerate() {
             if predicate(element) {
                 return idx

     - Parameter e: The element to search for
     - Returns: Index or .None
     */
    public func indexOf(e: Element) -> Int? {
        for (idx, element) in self.enumerate() {
            if element == e {
                return idx

     - Parameter e: The element to search for
     - Returns: `true` or `false`
     */
    public mutating func remove(e: Generator.Element) -> Bool {
        if let idx = self.indexOf(e) {
            self.removeAtIndex(idx)
            return true
