I've distilled my file down to the following snippet:
module M1 = {
include X({
let r = x => {z: s => s};
});
let f = (m, x) => x;
let f_z = (m, x) => x;
let g = {z: s => s};
let u = s => {z: s => s};
};
module M6 = {
include X({
let r = x => {z: s => s};
});
let f = (m, x) => x;
let f_z = (m, x) => x;
let g = {z: s => s};
let u = s => {z: s => s};
};
module M5 = {
include X({
let r = x => {z: s => s};
});
let f = (m, x) => x;
let f_z = (m, x) => x;
let g = {z: s => s};
let u = s => {z: s => s};
};
module M4 = {
include X({
let r = x => {z: s => s};
});
let f = (m, x) => x;
let f_z = (m, x) => x;
let g = {z: s => s};
let u = s => {z: s => s};
};
module M3 = {
include X({
let r = x => {z: s => s};
});
let f = (m, x) => x;
let f_z = (m, x) => x;
let g = {z: s => s};
let u = s => {z: s => s};
};
module M2 = {
include X({
let r = x => {z: s => s};
});
let f = (m, x) => x;
let f_z = (m, x) => x;
let g = {z: s => s};
let u = s => {z: s => s};
};
Which still demonstrates the problem:
$ time refmt --print=binary refmt-repro.re > /dev/null
Stack overflow
real 0m17.570s
user 0m17.173s
sys 0m0.395s
Environment info:
Linux buster 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux
Reason 3.6.0 @ 59339f6
OCaml 4.08.1
There is similar issue #2190 but looks like it's caused by different pattern of code.
I've distilled my file down to the following snippet:
Which still demonstrates the problem:
Environment info:
There is similar issue #2190 but looks like it's caused by different pattern of code.