Извините, мои навыки программирования типов высшего порядка не так велики. Я, вероятно, вернусь к ОО, создаю классы, которые представляют различные виды вещей, которые вам нужны.

ли кто-нибудь дать мне предложения / советы по созданию целых чисел уровня типа в OCaml (3.12), поддерживающих операции сложения и вычитания над ними?

Например, если у меня есть числа, представленные так:

type zero
type 'a succ
type pos1 = zero succ
type pos2 =  zero succ succ
...

Мне нужен способ определить функцию на типах, как это:

val add: pos2 -> pos1 -> pos3

Немного предыстории: я пытаюсь перенести некоторый код на haskell для операций над физическими измерениями, и мне нужна возможность определять операции над типами измерений (запись 7-ти целочисленных уровней типа, представляющих показатели 7 основных единиц СИ). Мне нужно сделать это таким образом, чтобы избежать динамического связывания (при использовании объектов) и дать возможность компилятору статически оценивать и проверять все такие выражения.

В настоящее время я понимаю, что я должен создать GADT, который реализует операции как конструкторы типов, но все же я борюсь с этой идеей, и любая подсказка будет принята с благодарностью.

Ответы на вопрос(3)

Ваш ответ на вопрос