При портировании parsec3 на Scala, я, наверное, понимаю ваш вопрос.
оказано ниже, в Haskell можно хранить в списке значения с разнородными типами с определенными контекстными границами на них:
data ShowBox = forall s. Show s => ShowBox s
heteroList :: [ShowBox]
heteroList = [ShowBox (), ShowBox 5, ShowBox True]
Как я могу добиться того же в Scala, желательно без подтипов?