Skip to content

Changing type of record type's field. #86

@aidmandorky

Description

@aidmandorky

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions