add abstract new types and new datatypes

git-svn-id: http://caml.inria.fr/svn/ocaml/branches/non-vanishing@13593 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02