You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// c.gr
module C
provide record T {
x: Number
}
// b.gr
module B
include "./c"
from C use { type T }
let a = { x: 1 }
provide { type T, a }
// a.gr
module A
include "./b"
from B use { type T, a }
print(a == { x: 1 })
The above code fails to compile with the error
Error: This expression has type B.T but an expression was expected of type
C.T
C::T is abstract because no corresponding cmi file was found in path.
The text was updated successfully, but these errors were encountered:
I have not come up with a fix yet, but a preliminary look says that the root cause here is the type_manifest field not getting set on B.T at import time (see Env.use_partial_signature). This field is used in the unification engine to handle type T = T0-type declarations in OCaml, so hopefully getting it wired up fixes the issue.
The above code fails to compile with the error
The text was updated successfully, but these errors were encountered: