I have two collections - `spells` and `charms`.  

`charms` might be empty

I need to do `Magic` of the combinations of `spells` and `charms` and if `charms` is empty I need `Magic` of `spells` alone

For non-empty `charms` this works:

```scala
def hocusPocus(spells: Seq[String], charms: Seq[String]): Seq[Magic] = {
  for {
    spell <- spells
    charm <- charms
  } yield {
    new Magic(spell, Some(charm))
  }
}

```

This snippet is simple and clean, but for empty `charms` it makes no `Magic`

Is there any possibility to do some `Magic` from `spells` only in such a clear way, if one is out of `charms`?