我正在使用OCaml构建两个库,它们包含相同的变量类型。除了它非常庞大,手动编写转换函数会很麻烦外,其细节并不太重要。(实际上,它是使用ocamlidl从C转换而来的bfd_architecture枚举)。
现在我正在编写一个程序,使用这两个库。特别地,我调用A.f,它返回A.variant_type的值,并且我需要在调用B.g时使用该值,B.g以B.variant_type的值作为输入。
有没有办法告诉OCaml,A.variant_type和B.variant_type实际上是相同的类型,因此将一个值从一个类型转换为另一个类型是可以的?这些库是独立的,所以它们不应该相互引用。现在我正在使用Obj.magic进行转换,但这只是一种hack方法。
现在我正在编写一个程序,使用这两个库。特别地,我调用A.f,它返回A.variant_type的值,并且我需要在调用B.g时使用该值,B.g以B.variant_type的值作为输入。
有没有办法告诉OCaml,A.variant_type和B.variant_type实际上是相同的类型,因此将一个值从一个类型转换为另一个类型是可以的?这些库是独立的,所以它们不应该相互引用。现在我正在使用Obj.magic进行转换,但这只是一种hack方法。
open
该模块以使命名更轻便。 - Jeffrey Scofield