Dopasowywanie wzorca w typie ogólnym w Scali

Mam funkcję scala, która wygląda tak:

Teraz, w zależności od typu T (w moim przypadku może tak byćDouble, Boolean iLocalDate), Muszę zastosować funkcjeob. Coś w tym stylu (wiem, że kod nie ma sensu, ale próbuję przekazać, co mam zamiar zrobić):

def X[T](ob: Observable[T]): Observable[T] = {
    //code  
    T match {
    case Double => DoSomething1(ob:Observable[Double]):Observable[Double]
    case Boolean => DoSomething2(ob:Observable[Boolean]):Observable[Boolean]
    case LocalDate => DoSomething3(ob:Observable[LocalDate]):Observable[LocalDate]
    }
}

Biorąc pod uwagę właściwość Erasure firmy Scala, czy można jakoś wykorzystać odbicie do wykonania zadania? Czy to możliwe?

questionAnswers(1)

yourAnswerToTheQuestion