Подскажите, а как в сабже идиоматично сделать такой тип данных: мап с иерархией ключей? Т.е. то, что в Хаскеле делается
data T a = T String a [T a]
Мне бы в идеале получить дерево, чтобы у каждой ноды спрашивать: ее имя (ключ), ее значение (любое, у нас же динамика :)) и список (или вектор или что там еще бывает) дочерних нод. Если список дочерних нод пустой, то это лист.
Или как Сассман завещал, реализовать интерфейс абстрактного типа данных, а потом подменять разные реализации? Например, навскидку приходит в голову дерево (список списков) ключей, и отдельно мапа с этими ключами.
Или мапу, у которой значения будут тоже мапы с 2 полями - собственно вэлью и список таких же мап, пустой на листьях. Наверное это лучше будет смотреться