Создаётся universe тип (общее представление для любого значения "динамического типа"), которое отличается тегом. В haskell тег это просто номер конструктора
про Data.Dynamic знаю, но там надо to/from касты делать, неудобно
Ну это совсем другой подход, ты там должен знать с чем ты работаешь и можешь проверить является ли тип ожидаемым. В общем-то это GHC.Any + словарик Typeable
Туда можно "сложить" любой тип, но работать обобщенно с такими типами и автоматически кастовать один в другой не выйдет, для этого нужно закрытая вселенная типов и правила отображения
Много, "динамический" тип в любом динамическом языке реализован как тегированный тип с ограниченными вариантами
Почему с огриничеными вариантами? В питоне например можно в рантайме в петле for классы создавать, и вообще незнаю в каком динамически типированом языке нельзя
Почему с огриничеными вариантами? В питоне например можно в рантайме в петле for классы создавать, и вообще незнаю в каком динамически типированом языке нельзя