ppx_import icon indicating copy to clipboard operation
ppx_import copied to clipboard

Changing type of record type's field.

Open aidmandorky opened this issue 2 years ago • 0 comments

Hello there, and many thanks for this wonderful extension. I am using ppx_import version 1.10.0. I just had a question about using the [@with] directive. My use case is that I have a module with a record type:

module A = struct
  type foo1 = Z.t

  type foo2 = { bla: Z.t }
end

And I want to convert both the Z.t types into int. in this situation, the following works:

module B = struct
  type bar = [%import: (A.foo1[@with Z.t := int])]
end

while this doesn't:

module C = struct
  type bar = [%import: (A.foo2[@with Z.t := int])]
end

raising the error:

Error: This variant or record definition does not match that of type
         A.foo2
       Fields do not match:
         bla : Z.t;
       is not the same as:
         bla : int;
       The type A.foo1 is not equal to the type int

Is this intended behaviour or am I doing something wrong?

aidmandorky avatar Feb 16 '23 00:02 aidmandorky