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
```