type T = ...
module Order =
type T = (* тут ты юзаешь Company.T *)
module Price =
type T = (* тут ты юзаешь Order.T *)
module Customer =
type T = (* тут ты юзаешь Order.T и Price.T *)
Чем глубже в иерархию типов, тем больше у тебя будет T...ехал гитлер через гитлер...Зачем излишняя вербозность? Когда можно сконцентрироваться просто на типах без модулей.
ты забыл маааленькую тонкость... (все ф-ции в модуле, работающие с данным типом)
Без разницы, как только у тебя появляется иерархия из этих типов, они у тебя бай дизайн протекают в другие.
F# умеет склеивать типы и модули с одинаковым именем, не нужно даже изгаляться какими-то T
это какое-то анрил условие) обычно модули как-то да друг с другом взаимодействуют) и в коде что ты приводил не типы эти приватные, а только их конструкторы, так что типы и вовне протекают
просто Илья забыл и этот косяк компилятора упомянуть 😁😁😁 (работа с приватными типами заменяется на приватные конструкторы как раз из-за этого)
Обсуждают сегодня