 	private let separator: Base.Generator.Element
 	private let allowEmptySlices: Bool
 
-	public init (base: Base, separator: Base.Generator.Element, allowEmptySlices: Bool = false) {
+	public init (_ base: Base, separator: Base.Generator.Element, allowEmptySlices: Bool = false) {
 		self.separator = separator
 		self.remaining = base[base.startIndex..<base.endIndex]
 		self.allowEmptySlices = allowEmptySlices

	Elements.SubSequence.Generator.Element==Elements.Generator.Element, Elements.SubSequence==Elements.SubSequence.SubSequence {

	public func split (separator: Self.Elements.Generator.Element, allowEmptySlices: Bool = false) -> LazySplitSequence<Self.Elements> {
		return LazySplitSequence(base: self.elements, separator: separator, allowEmptySlices: allowEmptySlices)
	}
}


	private var g: LazySplitSequence<Base>?

	public init (bases: ()->Base?, separator: Base.Generator.Element) {
		gs = anyGenerator(bases).lazy.map {LazySplitSequence($0, separator: separator, allowEmptySlices: true).generate()} .generate()
	}

	public mutating func next() -> Base.SubSequence? {
