type números inteiros em ocaml
Alguém poderia me dar sugestões / conselhos sobre como criar números inteiros no OCaml (3.12) para apoiar operações de adição e subtração nele
Por exemplo, se eu tiver números representados assim:
type zero
type 'a succ
type pos1 = zero succ
type pos2 = zero succ succ
...
Preciso de uma maneira de definir funções em tipos como este:
val add: pos2 -> pos1 -> pos3
Little background: Estou tentando portar algum código haskell para operações em dimensões físicas e preciso da capacidade de definir operações em tipos de dimensão (registro de 7 ints de nível de tipo representando expoentes de 7 unidades básicas de SI). Preciso fazer isso desta maneira para evitar a ligação dinâmica (ao usar objetos) e permitir que o compilador avalie e verifique todas essas expressões estaticament
Meu entendimento atual é que eu deveria criar um GADT que implemente operações como construtores de tipo, mas ainda estou lutando com a ideia, e qualquer dica seria muito apreciad