Option ++: ++

[https://www.scala-lang.org/api/current/scala/Option.html#++:B%3E:A:CC[B]] そもそも++ ++:の違いもあんまわからんかったのでこの機会にメモ
どうやら2.13.0からCanBuildFromがいなくなることに関係している?そこ起因かわからんが、、、
関係はありそうなので、CanBuildFromについては別で

2.12.8

def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[collection.Iterable[A], B, That]): That
// Returns a new iterable collection containing the elements from the left hand operand followed by the elements from the right hand operand.
def ++:[B >: A, That](that: collection.Traversable[B])(implicit bf: CanBuildFrom[collection.Iterable[A], B, That]): That
// As with ++, returns a new collection containing the elements from the left operand followed by the elements from the right operand.

2.13.1

final def ++[B >: A](suffix: collection.IterableOnce[B]): collection.Iterable[B]
// Alias for concat

def concat[B >: A](suffix: collection.IterableOnce[B]): collection.Iterable[B]

Returns a new iterable collection containing the elements from the left hand operand followed by the elements from the right hand operand. The element type of the iterable collection is the most specific superclass encompassing the element types of the two operands.

B the element type of the returned collection.

suffix the traversable to append.

returns a new iterable collection which contains all elements of this iterable collection followed by all elements of suffix.

Implicit This member is added by an implicit conversion from Option[A] toIterable[A] performed by method option2Iterable in scala.Option. Definition Classes IterableOps

def ++:[B >: A](that: collection.IterableOnce[B]): collection.Iterable[B]
//Deprecated (Since version 2.13.0) Use ++ instead of ++: for collections of type Iterable