Map 如何在OCaml中定义GADT的映射函数?

Map 如何在OCaml中定义GADT的映射函数?,map,functional-programming,ocaml,generic-programming,gadt,Map,Functional Programming,Ocaml,Generic Programming,Gadt,我试图研究OCaml语言中GADT的可能性,并尽可能强地定义映射函数应该如何处理这些类型。不幸的是,在下面的示例中,我没有完成类型映射函数的定义。可以找到此示例的全文。在这件事上如有任何帮助,我将不胜感激。谢谢大家 type('a,uu)expr= |常数:'a->('a,'a)表达式 |加:('a,'a)expr*('a,'a)expr->('a,'a)expr |减:('a,'a)expr*('a,'a)expr->('a,bool)expr |不:('a,bool)expr->('a,bo

我试图研究OCaml语言中GADT的可能性,并尽可能强地定义映射函数应该如何处理这些类型。不幸的是,在下面的示例中,我没有完成类型映射函数的定义。可以找到此示例的全文。在这件事上如有任何帮助,我将不胜感激。谢谢大家

type('a,uu)expr=
|常数:'a->('a,'a)表达式
|加:('a,'a)expr*('a,'a)expr->('a,'a)expr
|减:('a,'a)expr*('a,'a)expr->('a,bool)expr
|不:('a,bool)expr->('a,bool)expr
|如果:('a,bool)expr*('a,'a)expr*('a,'a)expr->('a,'a)expr