Version 4.0

  Once this version of camlp5 installed, if your files do not compile, it
  be due to the new type 'location' which is now abstract. In particular,
  you can see it as first parameter of the exception 'Exc_located' raised
  by the function 'Stdpp.raise_with_loc'. If you handled that exception
  and looked at the 'location' by considering it is a couple of source
  positions ('int' or 'Lexing.position' depending on the version of camlp5
  you had before), it does not work any more.

    Look at the functions defined in 'stdpp.mli'.

    To get the first and last positions of a location, use the functions
  'Stdpp.first_pos' and 'Stdpp.last_pos'. They return integers, which are
  positions in characters from the beginning of the file. But you can
  also get the line number by the function 'Stdpp.line_nb'. Consider also
  using the function 'Stdpp.encl_loc'. See the other functions.

    With this version of camlp5, when loading 'pa_macro.cmo', you get the
  identifier 'CAMLP5' defined. If you want to make your sources compatible
  with several versions of camlp5, you can add, in <expressions>, <patterns>,
  or toplevel definition (<structure items>), things like :

      IFDEF CAMLP5 THEN
        <source compatible with this version of camlp5>
      ELSE
        <source compatible with other versions of camlp5>
      END
