joined(by:)
Returns the concatenation of the elements in this collection of collections, inserting the separator produced by the closure between each sequence.
func joined<Separator>(by separator: @escaping (Element, Element) -> Separator) -> JoinedByClosureCollection<Elements, Separator> where Separator : Collection, Separator.Element == Self.Element.Element