```d
synchronized class SyncTable(KEY, VAL) {
private VAL[KEY] table;
auto require(KEY key) {
return table.require(key);
}
}
auto table = new shared SyncTable!(string, string);
table.require("abc");
```
Fails to compile:
```
// Error: none of the overloads of template `object.require` are
callable using argument types `!()(shared(string[string]),
string)`
```Tried casting away shared as a workaround but I assume that will cause some kind of TLS catastrophe.
