Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In GADT's, _ type variables are replaced with 'a, 'b, etc #5449

vicuna opened this Issue Dec 23, 2011 · 2 comments


None yet
2 participants
Copy link

commented Dec 23, 2011

Original bug ID: 5449
Reporter: pilki
Assigned to: @garrigue
Status: closed (set by @garrigue on 2011-12-28T02:24:01Z)
Resolution: fixed
Severity: feature
Fixed in version: 3.13.0+dev
Category: ~DO NOT USE (was: OCaml general)
Child of: #5444
Monitored by: @protz

Bug description

When you define the gadt:
type 'int eq_int = EqInt : int eq_int

ocamlc -i produces the correct interface
type 'int eq_int = EqInt : int eq_int

But if you define
type (_, _) eq = Eq: ('a, 'a) eq

you obtain
type ('a, 'b) eq = Eq : ('a, 'a) eq

where the _s have been replaced by type variables. The _ should be kept


This comment has been minimized.

Copy link
Collaborator Author

commented Dec 24, 2011

Comment author: @garrigue

I see the point.
Having new variables appear in type definitions may be confusing.
However "_" is not a real variable name, so this requires some thinking.
Maybe we could have just a special behavior only for type definitions,
as one cannot add a constraint to an unnamed type parameter inside the


This comment has been minimized.

Copy link
Collaborator Author

commented Dec 28, 2011

Comment author: @garrigue

Fixed in Printtyp and Oprint, revision 11964.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.