   private init(front: List<Element>, back: List<Element>) {
     (self.front, self.back) = (front, back)
   }
-  private init(front: [Element], noReverseBack: [Element]) {
-    (self.front, back) = (List(seq: front), List(seq: noReverseBack))
-    check()
-  }
+//  private init(front: [Element], noReverseBack: [Element]) {
+//    (self.front, back) = (List(seq: front), List(seq: noReverseBack))
+//    check()
+//  }
 }
 
 extension Deque {


extension Deque {
  public func filter(@noescape includeElement: Element -> Bool) -> Deque<Element> {
    var ret = Deque(front: front.filter(includeElement), back: back.filter(includeElement))
    ret.check()
    return ret
  }


extension Deque {
  public func flatMap<S : SequenceType>(@noescape transform: Element -> S) -> Deque<S.Generator.Element> {
    var ret = Deque<S.Generator.Element>(
      front: front.flatMap(transform),
      back : back .flatMap(transform)
    )
    ret.check()
    return ret
  }
  public func flatMap<T>(@noescape transform: Element -> T?) -> Deque<T> {
    var ret = Deque<T>(
      front: front.flatMap(transform),
      back : back .flatMap(transform)
    )
    ret.check()
    return ret
  }
}
