Minoru кстати, про ФП: вот вам про связь между visitor pattern и типами-суммами (enum): https://www.haskellforall.com/2021/01/the-visitor-pattern-is-essentially-same.html С одной стороны это было очевидно (визитор это такой паттерн-матчинг в профиль), с другой — мне никогда не приходил в голову вывод, что типы-суммы можно построить из функций