Prima di mandare bug alle persone sulla mailing list di OCaml, ho pensato che avrei potuto postare la mia domanda qui. Ho appena scoperto questo beauty (link al sito web di Concoqtion). Concoqtion è un'estensione di MetaOCaml che consente tipi indicizzati (e forse molto di più). Con esso, è facile creare elenchi quale tipo includono anche la lunghezza della lista:Concoqtion (Coq + MetaOCaml) - perché abbandonato?
type ('n:'(nat),'a) listl =
| Nil : ('(0),'a) listl
| Cons of let 'm:'(nat) in 'a * ('(m),'a) listl : ('(m+1),'a) listl
Questo (m+1)
viene fatto a livello tipo. Molto pulito.
Tuttavia, l'ultima versione è del 2007 (OCaml 3.08). Qualcuno ha idea del perché questo progetto è stato cancellato, o se c'è qualcosa di simile per OCaml oggi?
Poiché MetaOCaml non è stato convertito in versioni successive di OCaml fino al BER MetaOCaml basato su OCaml 4.00.1. Ho dimenticato i dettagli ma MetaOCaml ha richiesto alcune modifiche interne di OCaml per una manutenzione più semplice. – camlspotter