With ocaml 3.06 we are now able to replace method with_foo : foo -> unit = ... with method with_foo : 'a. (#foo as 'a) -> unit = ... and get implicit subtyping when calling with_foo. But I can't make it work when "foo" is a parametric variable: method with_foo : 'foo -> unit = ... works whereas method with_foo : 'a. (#'foo as 'a) -> unit = ... gives "Syntax error", and method with_foo : 'a. ('foo as 'a) -> unit = ... gives "This type has no row variable" Is there a solution? thanks. Full example: