monte-language / typhon

A virtual machine for Monte.
Other
67 stars 10 forks source link

Diamond imports break guards, Transparent, etc. #213

Closed MostAwesomeDude closed 3 years ago

MostAwesomeDude commented 4 years ago

Set up a diamond dependency: Let A be a module, let B and C both import A, and let D import both B and C. Let A export some DeepFrozen value, and let D import that same value twice from both B and C. Then D witnesses that this value is not equal to itself.

The underlying cause is module instantiation. We should figure out exactly how we want to handle this once and for all, because it keeps biting me.

MostAwesomeDude commented 3 years ago

I fixed this for loader.mt in 6485aed00617a98294b1e9b9b5d34d376d86668e and for muffins in 07ec36d847d6f06d34f4c2ba1942cf1a491689db.