Типы в Julia - это просто runtime-значения, считайте, специальные константы, которыми отмечены аргументы функций, они нужны, чтобы выбрать реализацию функции. Комбинации этих меток могут быть совершенно разными. Они не фиксируются в момент определения функции, и их структура тоже не фиксируется.