I’ve been trying to compile an OCaml library from 2000 recently and I came up against a strange OCamlYacc error; OCamlYacc doesn’t compile the parser file because parser function has a polymorphic type(with a type variable
At first I tried to understand with which concrete type
'a type variable is being equated, so that I could replace it with the concrete type and the program would be compiled.
After several hours wasted, I decided to follow some different path. I replaced type variables in
.mly with some dummy type like
my_epic_dummy_type and compiled it with OCamlYacc. Then I replaced
my_epic_dummy_type types with the type variable
'a in compiled
And the library worked as expected.
Now the question naturally arises: Why does OCamlYacc refuse to compile parser function with polymorphic type ? I have no idea.