Я не про разные типы в одном месте, а про методы, которые могут быть уместны для любого sealed класса, представляющего успешный результат или ошибку. Например подобие recover из Result.
Ну можно конечно обобщить и это удобно. Например берем и говорим что компаньон - это функтор для своего типа, надо предоставить только map и остальные функции получаем на халяву. Тоже самое с любым классом типов: монады, traversable и т.д.