Minor code cleanup
We now automatically add ^::opaque to (sub)patterns that do not contain free variables.