Гибридные ООП+ФП ЯП достаточно схожи, но опять же, при условии схожести системы типов.
В Java/Kotlin используется типизация с простыми обобщениями (generics) без родов типов, основанная на system F.
В Scala и Haskell есть роды типов, их системы типов основаны на system Fω, что даёт больше возможностей.
Шаблоны в C++, насколько я помню, обладают ещё большими возможностями, чем system Fω, но я могу ошибаться, так как с плюсами последний раз сталкивался лет 15 назад.