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

Structural types forming non-regular trees can be defined through recursive modules. #3935

Open
vicuna opened this issue Dec 29, 2005 · 6 comments

Comments

@vicuna
Copy link

vicuna commented Dec 29, 2005

Original bug ID: 3935
Reporter: anonymous
Status: acknowledged (set by @damiendoligez on 2006-01-05T13:21:33Z)
Resolution: open
Priority: normal
Severity: minor
Version: 3.09.0
Target version: later
Category: typing
Tags: recmod, typing
Related to: #3674 #7726
Monitored by: "Keiko NAKATA"

Bug description

I think this problem is related to the issue 0003674.

Using recursive modules,
I can define structural types forming non-regular trees.
These types can cause non-termination of the core language type checker
when they are used.

File attachments

@vicuna
Copy link
Author

vicuna commented Mar 15, 2017

Comment author: @garrigue

It seems that the problem could be avoided by re-checking regularity.
Is it really worth it, as long as we do not have an example of unsoundness?

@github-actions
Copy link

This issue has been open one year with no activity. Consequently, it is being marked with the "stale" label. What this means is that the issue will be automatically closed in 30 days unless more comments are added or the "stale" label is removed. Comments that provide new information on the issue are especially welcome: is it still reproducible? did it appear in other contexts? how critical is it? etc.

@github-actions github-actions bot added the Stale label May 18, 2020
@garrigue
Copy link
Contributor

While the impact is not clear, this is an important concern.

@github-actions github-actions bot removed the Stale label Jun 29, 2020
@github-actions
Copy link

This issue has been open one year with no activity. Consequently, it is being marked with the "stale" label. What this means is that the issue will be automatically closed in 30 days unless more comments are added or the "stale" label is removed. Comments that provide new information on the issue are especially welcome: is it still reproducible? did it appear in other contexts? how critical is it? etc.

@github-actions github-actions bot added the Stale label Jul 21, 2021
@yallop
Copy link
Member

yallop commented Jul 21, 2021

Here's a somewhat cut-down program that also causes the type-checker to loop in 4.12.0:

module rec F : functor (X:sig type t end) ->
               sig type t = X.t * X.t type u = [`C of F(F(X)).u] end = F
module X = F(struct type t = int end)

@github-actions github-actions bot removed the Stale label Jul 23, 2021
@github-actions
Copy link

This issue has been open one year with no activity. Consequently, it is being marked with the "stale" label. What this means is that the issue will be automatically closed in 30 days unless more comments are added or the "stale" label is removed. Comments that provide new information on the issue are especially welcome: is it still reproducible? did it appear in other contexts? how critical is it? etc.

@github-actions github-actions bot added the Stale label Aug 10, 2022
@garrigue garrigue removed the Stale label Aug 10, 2022
@garrigue garrigue self-assigned this Aug 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants