OCaml backend: better handling of polymorphism