code: def switchmap(source, func, *more_sources):
      
      return switch.raw(combine.smap.raw(source, func, *more_sources))
docs: Apply a given function that creates a sequence from the elements of one
      or several asynchronous sequences and generate the elements of the most
      recently created sequence.
  
      The function is applied as described in `map`, and must return an
      asynchronous sequence. Errors raised in a source or output sequence (that
      was not already closed) are propagated.