17.3 Differences between Coq and ML type systems

Due to differences between Coq and ML type systems, some extracted programs are not typable in ML. For example, Here are two kinds of problem that can occur:

It is still possible to run the programs by switching off the type-checker during compilation. Unless you misused the semantical attachment facilities you should never get any message like ``segmentation fault'' for which the extracted code would be to blame. For example, to bypass the Ocaml type-checker, we can use the function Obj.magic which gives the type 'a to any object. Work is underway to generate those Obj.magic automatically.

We have to say, though, that in most ``realistic'' programs, these problems do not occur. For example all the programs of the library are accepted by Caml type-checker (see examples below).