f по сути имеет тип f :: forall t a. C t => t a -> a то есть если как-то явно передать неявный аргумент C t, то это может работать, но в пурсе это возможно?
какой-нибудь TypeApplication типа
t = MkT "1" "2" f @_ @_ @tC1 t == "1" f @_ @_ @tC2 t == "2"