Итоги голосования для комментария:
Zmaj
Я как раз и хочу в самых общих рамках функциональные типы рассмотреть, да их можно дробить на подтипы, но сейчас мне это не нужно. Попробуй, пожалуйста, привести пример, который покажет, что список не полный. Воспользуемся доказательством от противного.