Использование полиморфной функции для извлечения объекта из Options

Бесформенная документация объясняет, как использовать полиморфные функции для создания функции, которая отображает объекты в одном типе контейнера в другой, но что делать, когда вы хотите распаковать вещи из их контейнера?

У меня есть список вариантов

val options = Some(1) :: Some("A") :: Some(3.5) :: HNil

Мне нужна полиморфная функция, которая может извлекать содержимое каждого из параметров.

// This is incorrect:
object uuu extends (Option ~> Any) {
  def apply[T](l:Option[T]):T = {
    l.get
  }
}

Если бы эта функция была правильной, я хотел бы следующее поведение:

options.map(uuu) // I want: 1 :: "A" :: 3.5 :: HNil

Как я могу исправить это так, чтобы моя полиморфная функция действительно работала?

Ответы на вопрос(1)

Ваш ответ на вопрос