кроме того, джулия это максимум полу-решётка, так как нет полноценных типов-пересечений — только объединения. Вот проблема, когда мы думали, что для непротиворечивого подтипирования нужны полноценные типы-пересечения, но Джефф придумал как выкрутиться: он ввёл функцию, которая вычисляет пересеченеи двух типов для простых случаев, и оказалось, что этого (вроде бы :)) достаточно:
https://github.com/JuliaLang/julia/issues/26131