Usando uma função polimórfica para extrair um objeto de Opções

A documentação disforme explica como usar funções polimórficas para criar uma função que mapeia objetos de um tipo de contêiner para outro, mas e quando você deseja descompactar as coisas do contêiner?

Eu tenho uma lista de opções

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

Eu quero uma função polimórfica que pode extrair o conteúdo de cada uma das opções.

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

Se essa função estivesse correta, eu desejaria o seguinte comportamento:

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

Como posso corrigir isso para que minha função polimórfica realmente funcione?

questionAnswers(1)

yourAnswerToTheQuestion