An error `type int x should be 'a x` in presense of `-rectypes`

I seen errors like this when I tried non-regular polymorphic variants but here it is not the case.

# #rectypes;;
# type ('a,'b,'c) x_ = X of 'a ;;
type ('a, 'b, 'c) x_ = X of 'a
# type 'a y_ = 'a;;
type 'a y_ = 'a
# type 'a z_ = 'a ;;
type 'a z_ = 'a
# type 'a x = ('a,y,z) x_
  and y = (int x) y_
  and z = (float x) z_
Error: In the definition of y, type int x should be 'a x