It could also be possible, with some more camlp4 sweetness, to allow for local, explicit shadowing. You'd write something like | rebind x::xs -> , and it would suppress the warning. The problem is that it would make the extension invasive.