#include monitor Empty {}; struct Test {}; // Should work: void ?{}(Test & this, Empty & mutex mon) {} // Should not work: void ?{}(Empty & mutex this) {} int main(void) { printf("done\n"); }