An opaque member of module M2 cannot refer to a member of module M1. This may be because ResolveProgram tries to clone an already resolved/postResolved module and then resolve it again.
```
module M1
{
predicate X(i:int)
}
module M2
{
import opened M1
predicate P(i:int) requires X(i) { true } // ok
predicate{:opaque} O(i:int) requires X(i) { true } // resolution/type error: X does not exist
}
```
stdin.dfy(10,39): Error: member X does not exist in class _default
1 resolution/type errors detected in stdin.dfy
```
module M1
{
predicate X(i:int)
}
module M2
{
import opened M1
predicate P(i:int) requires X(i) { true } // ok
predicate{:opaque} O(i:int) requires X(i) { true } // resolution/type error: X does not exist
}
```
stdin.dfy(10,39): Error: member X does not exist in class _default
1 resolution/type errors detected in stdin.dfy