     }
     
     internal init<S: Sequence>(_ vertices: S) where S.Iterator.Element == Vertex {
-        self.vertices = OrderedSet(sequence: vertices.sorted())
+        self.vertices = OrderedSet(vertices.sorted())
     }
     
     public func face(_ index: Int) -> Simplex {

}

public struct SimplicialComplex {
    public let simplices: Set<Simplex>
    
    public init<S: Sequence>(_ simplices: S, generate: Bool = false) where S.Iterator.Element == Simplex {
        self.simplices = generate ?
            simplices.reduce(Set()) { $0.union($1.allSubsimplices()) }
            : Set(simplices)
    }
    
    public func chainComplex<R: Ring>() -> ChainComplex<Simplex, R> {

        return Homology(chainComplex())
    }
}

fileprivate extension OrderedSet {
    convenience init<S: Sequence>(_ s: S) where S.Iterator.Element == T {
        self.init(sequence: s)
    }
}
