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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions