In #292 I quickly hacked around a problem where we morally have a test program made up of multiple modules (but this is before modules were a thing), but there are ID clashes between them, leading to some global definitions being discarded. I want to revisit this and fix it properly, once modules are implemented.
My current plan is that we only require uniqueness of identifiers within one module, as all references will be namespaced to a module. We will also require global uniqueness of module identifiers. This means that such clashes will not be a problem, and we can expose such pre-defined modules with baked-out ids (i.e. as plain Module, not MonadFresh m => m Module)
I imagine that whatever we happen to do here will essentially be the same as providing a standard library (modulo actually putting it into the DB etc)
In #292 I quickly hacked around a problem where we morally have a test program made up of multiple modules (but this is before modules were a thing), but there are ID clashes between them, leading to some global definitions being discarded. I want to revisit this and fix it properly, once modules are implemented.
My current plan is that we only require uniqueness of identifiers within one module, as all references will be namespaced to a module. We will also require global uniqueness of module identifiers. This means that such clashes will not be a problem, and we can expose such pre-defined modules with baked-out ids (i.e. as plain
Module, notMonadFresh m => m Module)I imagine that whatever we happen to do here will essentially be the same as providing a standard library (modulo actually putting it into the DB etc)