I'm a little confused by some code that I'm trying to compile some code with "-w Ae -warn-error Ae".

Below is an examle:

class foo = object
  method bar ~(snoo : string) = ()
end;;

let biff = new foo;;
biff#bar ~snoo:"hi";;

When I compile it (ocamlc -c -w Ae -warn-error Ae foo.ml), as expected, I get:
File "foo.ml", line 2, characters 15-19:
Warning Z: unused variable snoo.

With labeled functions, I usually do something like ~snoo:_, but it does not work in this exampled with methods:
---
class foo = object
  method bar ~(snoo : string):_ = ()
end;;

let biff = new foo;;
biff#bar ~snoo:"hi";;
--
ocamlc -c -w Ae -warn-error Ae foo.ml
File "foo.ml", line 2, characters 15-19:
Warning Z: unused variable snoo.

On a whim, I did the following, which surprisingly worked:

class foo = object
  method bar ~(_snoo : string) = ()
end;;

let biff = new foo;;
biff#bar ~_snoo:"hi";;

And that compiles, which confused me.  But I have to put the underbar into the method call, which seems wrong.
Is there a solution to this?

I'm running 3.10.1, from godi.

Thanks!

--
Ralph