     >(sequence: S) -> Bool {
       return Trie(sequence).isSupersetOf(self)
   }
-
+  
   public mutating func unionInPlace(with: Trie<Element>) {
     endHere = endHere || with.endHere
     for (head, child) in with.children {

  private func contains
    <G : GeneratorType where G.Element == Element>
    (var gen: G) -> Bool {
      return gen.next().map{self.children[$0]?.contains(gen) ?? false} ?? endHere
  }
  public func contains
    <S : SequenceType where S.Generator.Element == Element>

  public var contents: [[Element]] {
    return children.flatMap {
      (head: Element, child: Trie<Element>) -> [[Element]] in
      child.contents.map { [head] + $0 } + (child.endHere ? [[head]] : [])
    }
  }
}
