New Upstream Snapshot - ocaml-stdcompat

Ready changes

Summary

Merged new upstream version: 19+git20221104.1.a8df7ec (was: 19).

Resulting package

Built on 2023-01-23T10:52 (took 45m21s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots libstdcompat-ocaml-dbgsymapt install -t fresh-snapshots libstdcompat-ocaml-devapt install -t fresh-snapshots libstdcompat-ocaml

Diff

diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index fdb3331..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-ci/*.sh -text
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 64ec27b..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,36 +0,0 @@
-_build/
-*.install
-.merlin
-*~
-*.[ao]
-*.cm[aiotx]
-*.cmti
-*.cmx[as]
-/Makefile
-/aclocal.m4
-/autom4te.cache
-/doc/
-/tests.bytecode
-/tests.native
-/META
-/stdcompat.ml_byte
-/stdcompat.ml_native
-/.depend
-/stdcompat_*.ml
-/stdcompat_*.mli
-!/stdcompat__native.mli
-/interface_generator/interface_dumper
-/interface_generator/interface_generator
-/interface_generator/.depend
-/stdcompat.ml
-/stdcompat.mli
-/config.guess
-/config.log
-/config.status
-/config.sub
-/config.h
-*.so
-/stdcompat__stubs.c
-/stdcompat__native.ml_native
-/stdcompat__native.ml_byte
-/stdcompat.h
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 544050a..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,261 +0,0 @@
-* Version 19, 2022-07-08
-
-- Compatibility with OCaml 5.0
-
-- Add String.{hash, seeded_hash}
-
-- Restore compatibility with OCaml 3.07, and fix order execution for
-  Set and Map.{iter, fold, filter_map} on OCaml 3.07
-
-- Updated port to `dune`
-  (Marek Kubica, https://github.com/thierry-martinez/stdcompat/pull/16,
-   https://github.com/thierry-martinez/stdcompat/pull/19
-   with contribution from Kate,
-   https://github.com/thierry-martinez/stdcompat/pull/21)
-
-- Add support for `flambda2`
-  (Guillaume Bury, https://github.com/thierry-martinez/stdcompat/pull/14)
-
-- Prevent replacing `/dev/null/ by a regular file when `./configure` is
-  run as root
-  (reported by Marc Chevalier, https://github.com/ocaml/ocaml/issues/11302)
-
-* Version 18, 2022-02-09
-
-- Support for OCaml 4.14 with
-  - Lot of new functions in Seq
-  - Uchar.utf_decode and co
-  - In_channel and Out_channel modules
-  - Sys.{development_version, ocaml_release}
-
-- Add Stdlib.{acosh,asinh,atanh} missing from 4.13 and
-  Stdlib.__FUNCTION__ missing from 4.12
-
-- Add module Unit missing from 4.08
-
-- Add module Random, with new functions introduced from 4.13
-
-- Filename.chop_suffix checks that suffixes match and fails otherwise
-  (behavior introduced in 4.14)
-
-- Buffer.add_channel adds data read from the channel even if End_of_file has
-  been reached
-  (behavior introduced in 4.03)
-
-- Add dependency for generating .cmt files
-  (reported by Sabyrzhan Tasbolatov)
-
-* Version 17, 2021-09-28
-
-- Fix: missing prototype for caml_alloc_initialized_string in stdcompat.h
-
-- Fix: linking with stdcompat__stubs in bytecode
-
-* Version 16, 2021-07-09
-
-- Support for OCaml 4.13.0 with
-  - Seq.{concat, concat_map}
-  - {Int{32, 64}, Nativeint}.{min, max}
-  - Array.{fold_left_map, find_opt, find_map, split, combine}
-  - Bytes.{fold_left, fold_right, for_all, exists, starts_with, ends_with,
-      split_on_char}
-  - String.{fold_left, fold_right, for_all, exists, starts_with, ends_with,
-      get_{u,}int8, get_{{u,}int16,int32,int64}{_ne,_be,_le}}
-  - Format.{pp_print_either, pp_print_bytes, print_bytes}
-
-- Add module Atomic
-
-- Fix {Array,Bytes,List,More,String}Labels modules
-
-- Fix: equality between Stdcompat.Lexing.lexbuf and Lexing.lexbuf types
-  even for OCaml <4.02 (the equality was not preserved since the type of
-  lex_buffer was syntactically different, string instead of bytes)
-
-* Version 15, 2021-02-17
-
-- Support for OCaml 4.12.0 with
-  - Sys.{mkdir, rmdir}
-  - {Set,Map}.to_rev_seq
-  - Either module
-  - List.{partition_map, compare, equal}
-  - Hashtbl.rebuild
-  - Format.pp_print_seq
-
-- VERSION file was missing in distributed archive
-
-* Version 14, 2020-05-10
-
-- Support for OCaml 4.11.0 with
-  - Array.{for_all2, exists2}
-  - Lexing.{set_position, set_filename}
-  - List.{filteri, fold_left_map}
-  - Printexc.{default_uncaught_exception_handler, Slot.name}
-  - Seq.{cons, append, unfold}
-  - {Set,Map}.filter_map
-  - Printf.{ibprintf, ikbprintf}
-
-- More efficient implementation of Set functions
-
-- Support for version mismatch between ocamlc and ocamlfind packages
-
-* Version 13, 2020-02-22
-
-- Add: stdcompat.h, provides prototype for caml_alloc_initialized_string
-  for OCaml <4.06.0 (already defined in a C library linked with
-  stdcompat.{cma,cmxa}).
-
-- Fix: module Format was not exported
-
-- Fix: remove reference to suppressed module Sort
-
-- Fix: reference to the native plugin (.cmxs) in META
-
-* Version 12, 2020-02-08
-
-- Support for OCaml 4.10.0
-
-- Support for Windows
-
-- Add Bytes.unsafe_blit_string, Filename.quote_command, List.concat_map,
-  List.find_map, Sys.Immediate64
-
-- Equality Lexing.lexbuf = Stdcompat.Lexing.lexbuf is available even for
-  OCaml <4.02.0 (before the introduction of bytes)
-
-* Version 11, 2019-09-30
-
-- caml_alloc_initialized_string is now available for OCaml 4.05.0
-
-- Add Printexc.to_string_default and Printexc.use_printers
-
-* Version 10, 2019-06-26
-
-- New C stub with definition of caml_alloc_initialized_string for OCaml <4.05.0
-
-- Fix: Printexc is no longer opaque
-
-- Generate -bin-annot .cmt files for OCaml >=4.00.0
-
-* Version 9, 2019-03-12
-
-- [compatibility break] Pervasives.protect has been moved to Fun.protect
-  since its introduction in OCaml trunk
-
-- Support for OCaml 4.08.0: additions to modules Float, Format (mostly
-  unimplemented), Fun, List (filter_map), Sys (max_floatarray_length)
-
-- ocamlfind has been added as depopt since its presence changes the behvior
-  of configure script
-
-- Printexc has been added: substitution functions are mostly unimplemented,
-  except for get_raw_backtrace (which returns ()) and raise_with_backtrace
-  (which calls raise)
-
-- Fix: equality between aliases of Seq.t
-
-* Version 8, 2018-12-10
-
-- Fix: module Fun was not exported
-
-- Fix: value Stdlib.protect was not exported
-
-- Fix: equality between aliases of Stdlib.result and of Seq.t
-
-- Fix: Stdlib.result redefined before 4.03 (instead of 4.06)
-
-* Version 7, 2018-11-28
-
-- OCaml 4.08.0 additions: Bool, Fun, Array.t, List.t, Bytes and Buffer
-  operations on u?int(8|16|32|64), operations on Float, Filename.chop_suffix_opt
-
-- Modules Format and Printf added to the set of redefined modules
-
-* Version 6, 2018-09-10
-
-- Support for OCaml 4.08.0
-
-- Support VPATH build, i.e. when configure is executed in a build directory
-  distinct from the source directory
-
-- Lexing.new_line
-
-- Bigarray: only available from 4.02.0. From 4.02.0 and before 4.07.0,
-  --no-alias-deps is used to allow the alias to appear in Stdcompat without
-  requiring the library to be linked. Bigarray library should be linked if it is
-  effectively used.
-
-- Fix implementations with --disable-magic
-
-- Fix license conflict: The project was intended to be under BSD license
-  since the beginning, and a LICENSE file was provided accordingly.
-  However, automake generated a COPYING file with the GPLv3 by default. The
-  COPYING file now contains the BSD license, and the LICENSE file is removed.
-  (reported by Török Edwin,
-   https://github.com/thierry-martinez/stdcompat/issues/5)
-
-- Fix auto-generated interfaces for Hashtbl.MakeSeeded
-
-- Exceptions are reexported again. They were missing in auto-generated
-  interfaces.
-
-- min_binding_opt and max_binding_opt are not redefined if OCaml >=4.05.
-
-- Array.of_seq is redefined in OCaml 4.07.0 to circumvent a bug in the
-  implementation of the standard library. See:
-    - https://caml.inria.fr/mantis/view.php?id=7820
-    - https://github.com/ocaml/ocaml/pull/1897
-
-* Version 5, 2018-07-11
-- Interfaces are auto-generated.
-
-- stdcompat is now free from any required dependency. There are still
-  optional dependencies with respect to the packages result, seq and
-  uchar: stdcompat takes care of providing types compatible with
-  these packages if they are installed.
-
-- Preprocessing is performed by "./configure" script (generated by
-  autoconf). cppo and the C preprocessor are no longer used.
-
-- Makefile is generated by automake. ocamlfind is no longer required
-  for installation.
-
-- Split implementation into one module for each standard library module
-  (suggested by Yotam Barnoy:
-   https://github.com/thierry-martinez/stdcompat/issues/4)
-
-- All modules are now exported as sub-modules of Stdlib module
-  (as in OCaml 4.07) -- Bigarray is not exported to allow programs not
-  to be compiled with this module, this may change in the future.
-  (suggested by Yotam Barnoy:
-   https://github.com/thierry-martinez/stdcompat/issues/4)
-
-- Compatibility with uchar package
-
-* Version 4, 2018-05-30
-- Fix link problems with hypot, copy_sign, ldexp and classify_float
-
-* Version 3, 2018-04-25
-- Missing List.of_seq/List.to_seq
-- Remove spurious Float.seeded_hash_param
-  (suggested by Hezekiah M. Carty:
-   https://github.com/thierry-martinez/stdcompat/pull/2)
-- Compatibility with seq and result packages
-  (suggested by Hezekiah M. Carty:
-   https://github.com/thierry-martinez/stdcompat/issues/1)
-- Magic implementations of {Set,Map,Hashtbl,Queue,Stack}.to_seq*,
-  Hashtbl.filter_map_inplace, Hashtbl.stats, Stack.fold,
-  Set.find*, Set.map.
-  Pure implementations are available by building with
-  "make USE_MAGIC=false"
-- jbuild script (Hezekiah M. Carty)
-
-* Version 2, 2018-04-19
-- Redefinitions for Pervasives are now in Stdcompat.Pervasives (they were
-  previously defined at the root of Stdcompat), and the module
-  Stdcompat.Pervasives is included in Stdcompat, so that opening Stdcompat
-  makes the redefinitions visible in the scope.
-- Float module (OCaml 4.07.0)
-- Seq module and of_seq/to_seq/...
-
-* Version 1, 2017-11-14
-- Initial release
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 7878f83..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,39 +0,0 @@
-FROM ubuntu
-ARG UID=1000
-RUN apt-get update && apt-get install --yes autoconf automake unzip aspcud rsync \
-    git mercurial darcs wget build-essential sudo vim curl
-RUN useradd -m -s /bin/bash ci --uid=${UID}
-RUN echo ci ALL=\(ALL\) NOPASSWD:ALL >/etc/sudoers
-USER ci
-RUN wget -O ~/opam https://github.com/ocaml/opam/releases/download/2.1.2/opam-2.1.2-x86_64-linux
-RUN chmod +x ~/opam
-RUN sudo mv ~/opam /usr/local/bin/opam
-RUN opam init --disable-sandboxing --auto-setup --dot-profile=/home/ci/.bash_env
-SHELL ["/bin/bash", "-c"]
-ENV BASH_ENV /home/ci/.bash_env
-RUN opam update && opam switch create 3.07
-RUN opam update && opam switch create 3.08.4
-RUN opam update && opam switch create 3.09.3
-RUN opam update && opam switch create 3.10.2
-RUN opam update && opam switch create 3.11.2
-RUN opam update && opam switch create 3.12.1
-RUN opam update && opam switch create 4.00.1
-RUN opam update && opam switch create 4.01.0
-RUN opam update && opam switch create 4.02.3
-RUN opam update && opam switch create 4.03.0
-RUN opam update && opam switch create 4.04.2
-RUN opam update && opam switch create 4.05.0
-RUN opam update && opam switch create 4.06.1
-RUN opam update && opam switch create 4.07.0
-RUN opam update && opam switch create 4.07.1
-RUN opam update && opam switch create 4.08.1
-RUN opam update && opam switch create 4.09.1
-RUN opam update && opam switch create 4.10.2
-RUN opam update && opam switch create 4.11.2
-RUN opam update && opam switch create 4.12.1
-RUN opam update && opam switch create 4.13.1
-RUN opam update && opam switch create 4.14.0
-RUN opam update && opam switch create 5.0.0~alpha0
-RUN opam update && \
-    opam switch create 5.0.0+trunk \
-        --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
diff --git a/Jenkinsfile b/Jenkinsfile
deleted file mode 100644
index d2c7b0d..0000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,110 +0,0 @@
-properties([
-  [
-    $class: 'ThrottleJobProperty',
-    categories: ['category'],
-    limitOneJobWithMatchingParams: false,
-    maxConcurrentPerNode: 4,
-    maxConcurrentTotal: 0,
-    paramsToUseForLimit: '',
-    throttleEnabled: true,
-    throttleOption: 'category'
-  ],
-])
-
-pipeline {
-    agent none
-
-    stages {
-        stage('Prepare') {
-            agent {
-                label 'linux'
-            }
-            steps {
-                sh 'docker build -t stdcompat . --build-arg UID=$(id -u)'
-            }
-        }
-        stage('Bootstrap') {
-            agent {
-                label 'linux'
-            }
-            steps {
-                sh 'docker run --rm --volume $PWD:/workspace stdcompat bash -c \'cd /workspace && make -f Makefile.bootstrap\''
-                stash name: 'bootstrap'
-            }
-        }
-        stage('Configure') {
-            agent {
-                label 'linux'
-            }
-            steps {
-                unstash 'bootstrap'
-                sh 'docker run --rm --volume $PWD:/workspace stdcompat bash -c \'cd /workspace && mkdir build && cd build && ../configure\''
-                stash name: 'configure'
-            }
-        }
-        stage('Build') {
-            agent {
-                label 'linux'
-            }
-            steps {
-                unstash 'configure'
-                sh 'docker run --rm --volume $PWD:/workspace stdcompat bash -c \'cd /workspace/build && make\''
-            }
-        }
-        stage('Tests') {
-            agent {
-                label 'linux'
-            }
-            steps {
-                script {
-                    def switches = sh (
-                        script: 'docker run --rm stdcompat opam switch -s',
-                        returnStdout: true
-                    ).split('\n')
-                    def branches = [:]
-                    for (i in switches) {
-                        def switch_name = i
-                        branches["OCaml " + switch_name + " on Linux"] = {
-                            node('linux') {
-                                sh "rm -rf build"
-                                unstash 'bootstrap'
-                                sh "docker run --rm --volume \$PWD:/workspace stdcompat sh -c 'cd /workspace && unset BASH_ENV && opam config exec --switch $switch_name -- sh -c '\\''mkdir build && cd build && ../configure && make && make test && ../configure --disable-magic && make && make test'\\'"
-                            }
-                        }
-                    }
-                    def versions = ["4.03.0", "4.04.2", "4.05.0", "4.06.1", "4.07.1", "4.08.1", "4.09.1", "4.10.2", "4.11.2", "4.12.1", "4.13.1", "4.14.0"]
-                    for (i in versions) {
-                        def version = i
-                        branches["OCaml " + version + " on Windows"] = {
-                            node('windows') {
-                                checkout scm
-                                bat """
-call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat"
-set PATH=C:\\tools\\cygwin\\bin;%PATH%
-bash -c "ci/cygwin-compile-ocaml.sh \\"$version\\""
-if not errorlevel 0 exit /b
-set PATH=C:\\ocaml\\$version\\bin;%PATH%
-set FLEXDIR=C:\\ocaml\\$version\\lib
-bash -c "eval \$(~/ocaml-4.09.0/tools/msvs-promote-path) && make -f Makefile.bootstrap && ./configure && make && make test"
-                                """
-                            }
-                        }
-                    }
-                    throttle(['category']) {
-                        parallel branches
-                    }
-                }
-            }
-        }
-        stage('Deploy') {
-            agent {
-                label 'linux'
-            }
-            steps {
-                unstash 'configure'
-                sh 'docker run --rm --volume $PWD:/workspace stdcompat bash -c \'cd /workspace/build && make dist\''
-                archiveArtifacts artifacts: 'build/*.tar.gz', fingerprint: true
-            }
-        }
-    }
-}
diff --git a/Makefile.am b/Makefile.am
index 1a71efb..acdcf06 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -80,10 +80,17 @@ MODULES = stdcompat__init.ml stdcompat__root.ml \
 	stdcompat__unit.ml \
 	stdcompat__stdlib.ml stdcompat.ml
 
+# From https://github.com/fdopen/opam-repository-mingw/commit/3b4c52e17cfae96cfbf5120b60b8c2bbf5aad252
+# We prefer DLLEXT to conform with EXEEXT and OBJEXT
+DLLEXT := $(shell ocamlc -config | awk -F '[\t\r ]+' '/^ext_dll:/ {print $$2}')
+
+# Fix install on Windows (https://github.com/thierry-martinez/pyml/issues/88)
+LIBEXT := $(shell ocamlc -config | awk -F '[\t\r ]+' '/^ext_lib:/ {print $$2}')
+
 MODULES_native = stdcompat__native.ml $(MODULES)
 
 mypkg_SCRIPTS = META $(MODULES_native) $(MODULES_native:.ml=.cmi) \
-	libstdcompat__stubs.a stdcompat.h
+	libstdcompat__stubs$(LIBEXT) stdcompat.h
 
 if OCAML_SUPPORTS_BYTECODE
 mypkg_SCRIPTS += stdcompat.cma
@@ -91,7 +98,7 @@ BEST_SUFFIX := .cmo
 endif
 
 if OCAML_SUPPORTS_NATIVE
-mypkg_SCRIPTS += stdcompat.cmxa stdcompat.a $(MODULES_native:.ml=.cmx)
+mypkg_SCRIPTS += stdcompat.cmxa stdcompat$(LIBEXT) $(MODULES_native:.ml=.cmx)
 BEST_SUFFIX := .cmx
 endif
 
@@ -138,21 +145,21 @@ $(BEST_SUFFIX).cmt : ;
 stdcompat__stubs.$(OBJEXT) : stdcompat__stubs.c
 	$(OCAMLC) -c $<
 
-libstdcompat__stubs.a : stdcompat__stubs.$(OBJEXT)
+libstdcompat__stubs$(LIBEXT) : stdcompat__stubs.$(OBJEXT)
 	$(OCAMLMKLIB) -o stdcompat__stubs $<
 
-dllstdcompat__stubs.so : libstdcompat__stubs.a
+dllstdcompat__stubs$(DLLEXT) : libstdcompat__stubs$(LIBEXT)
 
-stdcompat.cma : $(MODULES_native:.ml=.cmo) libstdcompat__stubs.a
+stdcompat.cma : $(MODULES_native:.ml=.cmo) libstdcompat__stubs$(LIBEXT)
 	$(OCAMLC) $(OCAMLLDFLAGS) -a $(MODULES_native:.ml=.cmo) \
 	  $(OCAMLLIBFLAGS) -dllib -lstdcompat__stubs -o $@
 
-stdcompat.cmxa : $(MODULES_native:.ml=.cmx) libstdcompat__stubs.a
+stdcompat.cmxa : $(MODULES_native:.ml=.cmx) libstdcompat__stubs$(LIBEXT)
 	$(OCAMLOPT) $(OCAMLLDFLAGS) -a $(MODULES_native:.ml=.cmx) $(OCAMLLIBFLAGS) -o $@
 
-stdcompat.a : stdcompat.cmxa
+stdcompat$(LIBEXT) : stdcompat.cmxa
 
-stdcompat.cmxs : $(MODULES_native:.ml=.cmx) libstdcompat__stubs.a
+stdcompat.cmxs : $(MODULES_native:.ml=.cmx) libstdcompat__stubs$(LIBEXT)
 	$(OCAMLOPT) $(OCAMLLDFLAGS) -shared $(MODULES_native:.ml=.cmx) $(OCAMLLIBFLAGS) -o $@
 
 # Fake dependency to rebuild stdcompat__native.cmi on compiler change
@@ -180,11 +187,11 @@ $(STDCOMPAT_TESTS_EXE): stdcompat.$(CMAX) stdcompat_tests.ml
 
 @INCLUDE_DEPEND@
 
-CLEANFILES = *.cmi *.cmo *.cmx *.cmt *.cmti *.o *.a stdcompat.cma \
-	stdcompat.cmxa stdcompat__native.ml dllstdcompat__stubs.so \
+CLEANFILES = *.cmi *.cmo *.cmx *.cmt *.cmti *.$(OBJEXT) *$(LIBEXT) stdcompat.cma \
+	stdcompat.cmxa stdcompat__native.ml dllstdcompat__stubs$(DLLEXT) \
 	stdcompat.cmxs $(STDCOMPAT_TESTS_EXE) $(bin_SCRIPTS) .depend
 
 install-exec-hook :
 	$(MKDIR_P) $(DESTDIR)$(libdir)/stublibs
-	$(INSTALL_PROGRAM) dllstdcompat__stubs.so $(DESTDIR)$(libdir)/stublibs
-	echo stdcompat >$(DESTDIR)$(libdir)/stublibs/dllstdcompat__stubs.so.owner
+	$(INSTALL_PROGRAM) dllstdcompat__stubs$(DLLEXT) $(DESTDIR)$(libdir)/stublibs
+	echo stdcompat >$(DESTDIR)$(libdir)/stublibs/dllstdcompat__stubs$(DLLEXT).owner
diff --git a/Makefile.config.in b/Makefile.config.in
deleted file mode 100644
index 4ccc03d..0000000
--- a/Makefile.config.in
+++ /dev/null
@@ -1,8 +0,0 @@
-OCAMLFIND := @OCAMLFIND@
-OCAMLOPT := @OCAMLOPT@
-OCAMLC := @OCAMLC@
-OCAMLDOC := @OCAMLDOC@
-OCAMLBEST := @OCAMLBEST@
-RESULT_PKG := @RESULT_PKG@
-SEQ_PKG := @SEQ_PKG@
-UCHAR_PKG := @UCHAR_PKG@
\ No newline at end of file
diff --git a/Makefile.in b/Makefile.in
index 2145e1c..9730e20 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -87,7 +87,7 @@ NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
 @OCAML_SUPPORTS_BYTECODE_TRUE@am__append_1 = stdcompat.cma
-@OCAML_SUPPORTS_NATIVE_TRUE@am__append_2 = stdcompat.cmxa stdcompat.a $(MODULES_native:.ml=.cmx)
+@OCAML_SUPPORTS_NATIVE_TRUE@am__append_2 = stdcompat.cmxa stdcompat$(LIBEXT) $(MODULES_native:.ml=.cmx)
 @OCAML_SUPPORTS_SHARED_TRUE@am__append_3 = stdcompat.cmxs
 @OCAML_SUPPORTS_BIN_ANNOT_TRUE@am__append_4 = -bin-annot
 @OCAML_SUPPORTS_BIN_ANNOT_TRUE@am__append_5 = $(MODULES_native:.ml=.cmt)
@@ -407,9 +407,8 @@ am__DIST_COMMON = $(srcdir)/META.in $(srcdir)/Makefile.in \
 	$(srcdir)/stdcompat__weak.ml.in \
 	$(srcdir)/stdcompat__weak.mli.in \
 	$(srcdir)/stdcompat__weak_s.mli.in \
-	$(srcdir)/stdcompat_tests.ml.in $(top_srcdir)/../../compile \
-	$(top_srcdir)/../../install-sh $(top_srcdir)/../../missing \
-	AUTHORS COPYING ChangeLog INSTALL NEWS README compile missing
+	$(srcdir)/stdcompat_tests.ml.in AUTHORS COPYING INSTALL NEWS \
+	README compile install-sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -710,6 +709,7 @@ LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 OBJEXT = @OBJEXT@
@@ -873,9 +873,16 @@ MODULES = stdcompat__init.ml stdcompat__root.ml \
 	stdcompat__unit.ml \
 	stdcompat__stdlib.ml stdcompat.ml
 
+
+# From https://github.com/fdopen/opam-repository-mingw/commit/3b4c52e17cfae96cfbf5120b60b8c2bbf5aad252
+# We prefer DLLEXT to conform with EXEEXT and OBJEXT
+DLLEXT := $(shell ocamlc -config | awk -F '[\t\r ]+' '/^ext_dll:/ {print $$2}')
+
+# Fix install on Windows (https://github.com/thierry-martinez/pyml/issues/88)
+LIBEXT := $(shell ocamlc -config | awk -F '[\t\r ]+' '/^ext_lib:/ {print $$2}')
 MODULES_native = stdcompat__native.ml $(MODULES)
 mypkg_SCRIPTS = META $(MODULES_native) $(MODULES_native:.ml=.cmi) \
-	libstdcompat__stubs.a stdcompat.h $(am__append_1) \
+	libstdcompat__stubs$(LIBEXT) stdcompat.h $(am__append_1) \
 	$(am__append_2) $(am__append_3) $(am__append_5)
 @OCAML_SUPPORTS_BYTECODE_TRUE@BEST_SUFFIX := .cmo
 @OCAML_SUPPORTS_NATIVE_TRUE@BEST_SUFFIX := .cmx
@@ -887,8 +894,8 @@ OCAMLLIBFLAGS = -cclib "-L. -lstdcompat__stubs"
 STDCOMPAT_TESTS_EXE = stdcompat_tests$(EXEEXT)
 SUFFIXES = .ml .mli .cmi .cmo .cmx .cmxa .cmxs .cmt
 .DEFAULT_GOAL = all
-CLEANFILES = *.cmi *.cmo *.cmx *.cmt *.cmti *.o *.a stdcompat.cma \
-	stdcompat.cmxa stdcompat__native.ml dllstdcompat__stubs.so \
+CLEANFILES = *.cmi *.cmo *.cmx *.cmt *.cmti *.$(OBJEXT) *$(LIBEXT) stdcompat.cma \
+	stdcompat.cmxa stdcompat__native.ml dllstdcompat__stubs$(DLLEXT) \
 	stdcompat.cmxs $(STDCOMPAT_TESTS_EXE) $(bin_SCRIPTS) .depend
 
 all: config.h
@@ -898,7 +905,7 @@ all: config.h
 .SUFFIXES: .ml .mli .cmi .cmo .cmx .cmxa .cmxs .cmt
 am--refresh: Makefile
 	@:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -924,9 +931,9 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
 
-$(top_srcdir)/configure:  $(am__configure_deps)
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	$(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 $(am__aclocal_m4_deps):
 
@@ -937,7 +944,7 @@ config.h: stamp-h1
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
 	@rm -f stamp-h1
 	cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.h.in:  $(am__configure_deps) 
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
 	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
 	rm -f stamp-h1
 	touch $@
@@ -1753,21 +1760,21 @@ $(BEST_SUFFIX).cmt : ;
 stdcompat__stubs.$(OBJEXT) : stdcompat__stubs.c
 	$(OCAMLC) -c $<
 
-libstdcompat__stubs.a : stdcompat__stubs.$(OBJEXT)
+libstdcompat__stubs$(LIBEXT) : stdcompat__stubs.$(OBJEXT)
 	$(OCAMLMKLIB) -o stdcompat__stubs $<
 
-dllstdcompat__stubs.so : libstdcompat__stubs.a
+dllstdcompat__stubs$(DLLEXT) : libstdcompat__stubs$(LIBEXT)
 
-stdcompat.cma : $(MODULES_native:.ml=.cmo) libstdcompat__stubs.a
+stdcompat.cma : $(MODULES_native:.ml=.cmo) libstdcompat__stubs$(LIBEXT)
 	$(OCAMLC) $(OCAMLLDFLAGS) -a $(MODULES_native:.ml=.cmo) \
 	  $(OCAMLLIBFLAGS) -dllib -lstdcompat__stubs -o $@
 
-stdcompat.cmxa : $(MODULES_native:.ml=.cmx) libstdcompat__stubs.a
+stdcompat.cmxa : $(MODULES_native:.ml=.cmx) libstdcompat__stubs$(LIBEXT)
 	$(OCAMLOPT) $(OCAMLLDFLAGS) -a $(MODULES_native:.ml=.cmx) $(OCAMLLIBFLAGS) -o $@
 
-stdcompat.a : stdcompat.cmxa
+stdcompat$(LIBEXT) : stdcompat.cmxa
 
-stdcompat.cmxs : $(MODULES_native:.ml=.cmx) libstdcompat__stubs.a
+stdcompat.cmxs : $(MODULES_native:.ml=.cmx) libstdcompat__stubs$(LIBEXT)
 	$(OCAMLOPT) $(OCAMLLDFLAGS) -shared $(MODULES_native:.ml=.cmx) $(OCAMLLIBFLAGS) -o $@
 
 # Fake dependency to rebuild stdcompat__native.cmi on compiler change
@@ -1797,8 +1804,8 @@ $(STDCOMPAT_TESTS_EXE): stdcompat.$(CMAX) stdcompat_tests.ml
 
 install-exec-hook :
 	$(MKDIR_P) $(DESTDIR)$(libdir)/stublibs
-	$(INSTALL_PROGRAM) dllstdcompat__stubs.so $(DESTDIR)$(libdir)/stublibs
-	echo stdcompat >$(DESTDIR)$(libdir)/stublibs/dllstdcompat__stubs.so.owner
+	$(INSTALL_PROGRAM) dllstdcompat__stubs$(DLLEXT) $(DESTDIR)$(libdir)/stublibs
+	echo stdcompat >$(DESTDIR)$(libdir)/stublibs/dllstdcompat__stubs$(DLLEXT).owner
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/README b/README
deleted file mode 120000
index 42061c0..0000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-README.md
\ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000..b578e75
--- /dev/null
+++ b/README
@@ -0,0 +1,95 @@
+``Stdcompat``: compatibility module for OCaml standard library
+==============================================================
+
+``Stdcompat`` is a compatibility layer allowing programs to use some
+recent additions to the OCaml standard library while preserving the
+ability to be compiled on former versions of OCaml.
+
+The ``Stdcompat`` API is not intended to be stable, but there will be
+efforts to allow future versions of ``Stdcompat`` to be compiled on a
+large range of versions of OCaml: ``Stdcompat`` should compile (at least)
+on every version of OCaml from 3.08 (included).
+
+The module ``Stdcompat`` provides some definitions for values and
+types introduced in recent versions of the standard library. These
+definitions are just aliases to the matching definition of the standard
+library if the latter is recent enough. Otherwise, the module
+``Stdcompat`` provides an alternative implementation.
+
+The signature of ``Stdcompat`` follows the signature of the standard library.
+All the modules are defined as sub-modules of ``Stdcompat.Stdlib``, such as
+``Stdcompat.Stdlib.Pervasives``, ``Stdcompat.Stdlib.List``, etc. The module
+``Stdcompat.Stdlib.Pervasives`` is included in ``Stdcompat.Stdlib``, and
+the module ``Stdcompat.Stdlib`` is included in ``Stdcompat`` itself.
+For instance, the function
+``Stdcompat.really_input_string`` is an alias for
+``Stdcompat.Pervasives.really_input_string``,
+which is an alias for ``Stdcompat.Stdlib.Pervasives.really_input_string``,
+which is itself an alias for
+``Pervasives.really_input_string`` when the version of the OCaml
+compiler is above 4.02.0, or an alternative definition otherwise.
+
+The types ``Stdcompat.bytes`` and ``Stdcompat.floatarray`` are aliases
+to the built-in ones is the latter are available (above 4.02.0 for
+``bytes`` and above 4.06.0 for ``floatarray``), and are aliases to
+``string`` and ``float array`` respectively otherwise.
+
+Sub-modules match the names of the standard library modules.  For
+instance, ``Stdcompat.List.find_opt`` is an alias for
+``List.find_opt`` on 4.05.0 and above, or an alternative definition
+otherwise. Definitions from the standard library are reexported so that
+``Stdcompat`` can be open without hiding unchanged definitions.
+
+Functors ``Set.Make``, ``Map.Make``, ``Hashtbl.Make``, ``Weak.Make``
+are redefined to provide the additional definitions appeared on recent
+OCaml releases.
+
+If ``Pervasives.result``, ``Uchar.t`` and/or ``Seq.t`` are not
+provided by the standard library and if the compatibility packages
+``result``, ``uchar``, and/or ``seq`` are available via ``ocamlfind``,
+then the types ``Stdcompat.Pervasives.result``, ``Stdcompat.Uchar.t``
+and ``Stdcompat.Seq.t`` are defined as alias to the types defined in
+those packages (these packages should then appear before ``Stdcompat``
+in the linking chain).
+
+Some redefinitions access to the internal representation of
+the data structures when they are abstracted: it is the case for
+``{Set,Map,Hashtbl,Queue,Stack}.to_seq*``,
+``Hashtbl.filter_map_inplace``, ``Hashtbl.stats``, ``Stack.fold``,
+``Set.find*``, ``Set.map``.
+Pure (but less efficient) implementations are available by configuring
+``Stdcompat`` with ``./configure --disable-magic``.
+
+Redefinitions cannot even guarantee some security fixes: for instance,
+seeds and randomization are ignored with ``Hashtbl`` prior to 4.00.0.
+
+See the generated documentation (in ``doc/``) for available
+definitions.
+
+Configure and install
+---------------------
+
+Execute `make -f Makefile.bootstrap` first, to generate the files
+`configure`, `Makefile.in` and others.
+
+Then execute `./configure` (or `./configure --disable-magic` to use
+the pure and less efficient implementation).
+
+Then execute `make` and `make install`.
+
+Windows support
+---------------
+
+`stdcompat` can be used on Windows, both with Cygwin and with
+Microsoft Visual Studio port.
+
+The build system relies on `autoconf`, `automake` and `make`,
+therefore the easiest way to compile `stdcompat` is to use Cygwin
+for compiling, with the same environment as for compiling OCaml:
+- `cl.exe` should be in `PATH`: for instance, with Microsoft
+  Visual Studio 2017 Community, the `PATH` can be initialized with
+  "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat";
+- `eval $(<ocaml-source-tree>/tools/msvs-promote-path)"`
+  should have been executed, so that the command `link.exe` points
+  to the right tool;
+- moreover, `ocaml.exe`, `ocamlc.exe`, etc., should be in `PATH`.
diff --git a/README.md b/README.md
deleted file mode 100644
index b578e75..0000000
--- a/README.md
+++ /dev/null
@@ -1,95 +0,0 @@
-``Stdcompat``: compatibility module for OCaml standard library
-==============================================================
-
-``Stdcompat`` is a compatibility layer allowing programs to use some
-recent additions to the OCaml standard library while preserving the
-ability to be compiled on former versions of OCaml.
-
-The ``Stdcompat`` API is not intended to be stable, but there will be
-efforts to allow future versions of ``Stdcompat`` to be compiled on a
-large range of versions of OCaml: ``Stdcompat`` should compile (at least)
-on every version of OCaml from 3.08 (included).
-
-The module ``Stdcompat`` provides some definitions for values and
-types introduced in recent versions of the standard library. These
-definitions are just aliases to the matching definition of the standard
-library if the latter is recent enough. Otherwise, the module
-``Stdcompat`` provides an alternative implementation.
-
-The signature of ``Stdcompat`` follows the signature of the standard library.
-All the modules are defined as sub-modules of ``Stdcompat.Stdlib``, such as
-``Stdcompat.Stdlib.Pervasives``, ``Stdcompat.Stdlib.List``, etc. The module
-``Stdcompat.Stdlib.Pervasives`` is included in ``Stdcompat.Stdlib``, and
-the module ``Stdcompat.Stdlib`` is included in ``Stdcompat`` itself.
-For instance, the function
-``Stdcompat.really_input_string`` is an alias for
-``Stdcompat.Pervasives.really_input_string``,
-which is an alias for ``Stdcompat.Stdlib.Pervasives.really_input_string``,
-which is itself an alias for
-``Pervasives.really_input_string`` when the version of the OCaml
-compiler is above 4.02.0, or an alternative definition otherwise.
-
-The types ``Stdcompat.bytes`` and ``Stdcompat.floatarray`` are aliases
-to the built-in ones is the latter are available (above 4.02.0 for
-``bytes`` and above 4.06.0 for ``floatarray``), and are aliases to
-``string`` and ``float array`` respectively otherwise.
-
-Sub-modules match the names of the standard library modules.  For
-instance, ``Stdcompat.List.find_opt`` is an alias for
-``List.find_opt`` on 4.05.0 and above, or an alternative definition
-otherwise. Definitions from the standard library are reexported so that
-``Stdcompat`` can be open without hiding unchanged definitions.
-
-Functors ``Set.Make``, ``Map.Make``, ``Hashtbl.Make``, ``Weak.Make``
-are redefined to provide the additional definitions appeared on recent
-OCaml releases.
-
-If ``Pervasives.result``, ``Uchar.t`` and/or ``Seq.t`` are not
-provided by the standard library and if the compatibility packages
-``result``, ``uchar``, and/or ``seq`` are available via ``ocamlfind``,
-then the types ``Stdcompat.Pervasives.result``, ``Stdcompat.Uchar.t``
-and ``Stdcompat.Seq.t`` are defined as alias to the types defined in
-those packages (these packages should then appear before ``Stdcompat``
-in the linking chain).
-
-Some redefinitions access to the internal representation of
-the data structures when they are abstracted: it is the case for
-``{Set,Map,Hashtbl,Queue,Stack}.to_seq*``,
-``Hashtbl.filter_map_inplace``, ``Hashtbl.stats``, ``Stack.fold``,
-``Set.find*``, ``Set.map``.
-Pure (but less efficient) implementations are available by configuring
-``Stdcompat`` with ``./configure --disable-magic``.
-
-Redefinitions cannot even guarantee some security fixes: for instance,
-seeds and randomization are ignored with ``Hashtbl`` prior to 4.00.0.
-
-See the generated documentation (in ``doc/``) for available
-definitions.
-
-Configure and install
----------------------
-
-Execute `make -f Makefile.bootstrap` first, to generate the files
-`configure`, `Makefile.in` and others.
-
-Then execute `./configure` (or `./configure --disable-magic` to use
-the pure and less efficient implementation).
-
-Then execute `make` and `make install`.
-
-Windows support
----------------
-
-`stdcompat` can be used on Windows, both with Cygwin and with
-Microsoft Visual Studio port.
-
-The build system relies on `autoconf`, `automake` and `make`,
-therefore the easiest way to compile `stdcompat` is to use Cygwin
-for compiling, with the same environment as for compiling OCaml:
-- `cl.exe` should be in `PATH`: for instance, with Microsoft
-  Visual Studio 2017 Community, the `PATH` can be initialized with
-  "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat";
-- `eval $(<ocaml-source-tree>/tools/msvs-promote-path)"`
-  should have been executed, so that the command `link.exe` points
-  to the right tool;
-- moreover, `ocaml.exe`, `ocamlc.exe`, etc., should be in `PATH`.
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..cd0bf0c
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,1186 @@
+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
+
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.16'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.16.5], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.16.5])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  # TODO: see whether this extra hack can be removed once we start
+  # requiring Autoconf 2.70 or later.
+  AS_CASE([$CONFIG_FILES],
+          [*\'*], [eval set x "$CONFIG_FILES"],
+          [*], [set x $CONFIG_FILES])
+  shift
+  # Used to flag and report bootstrapping failures.
+  am_rc=0
+  for am_mf
+  do
+    # Strip MF so we end up with the name of the file.
+    am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile which includes
+    # dependency-tracking related rules and includes.
+    # Grep'ing the whole file directly is not great: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+      || continue
+    am_dirpart=`AS_DIRNAME(["$am_mf"])`
+    am_filepart=`AS_BASENAME(["$am_mf"])`
+    AM_RUN_LOG([cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles]) || am_rc=$?
+  done
+  if test $am_rc -ne 0; then
+    AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+    for automatic dependency tracking.  If GNU make was not used, consider
+    re-running the configure script with MAKE="gmake" (or whatever is
+    necessary).  You can also try re-running configure with the
+    '--disable-dependency-tracking' option to at least be able to build
+    the package (albeit without support for automatic dependency tracking).])
+  fi
+  AS_UNSET([am_dirpart])
+  AS_UNSET([am_filepart])
+  AS_UNSET([am_mf])
+  AS_UNSET([am_rc])
+  rm -f conftest-deps.mk
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+m4_ifdef([_$0_ALREADY_INIT],
+  [m4_fatal([$0 expanded multiple times
+]m4_defn([_$0_ALREADY_INIT]))],
+  [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+  m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+# Variables for tags utilities; see am/tags.am
+if test -z "$CTAGS"; then
+  CTAGS=ctags
+fi
+AC_SUBST([CTAGS])
+if test -z "$ETAGS"; then
+  ETAGS=etags
+fi
+AC_SUBST([ETAGS])
+if test -z "$CSCOPE"; then
+  CSCOPE=cscope
+fi
+AC_SUBST([CSCOPE])
+
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+	@echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+  AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+  AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+      ['0:this is the am__doit target'],
+      [AS_CASE([$s],
+          [BSD], [am__include='.include' am__quote='"'],
+          [am__include='include' am__quote=''])])
+  if test "$am__include" != "#"; then
+    _am_result="yes ($s style)"
+    break
+  fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  MISSING="\${SHELL} '$am_aux_dir/missing'"
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
+
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
diff --git a/ci/cygwin-compile-ocaml.sh b/ci/cygwin-compile-ocaml.sh
deleted file mode 100755
index 3f80cf8..0000000
--- a/ci/cygwin-compile-ocaml.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-set -ex
-OCAMLVERSION="$1"
-URL="http://caml.inria.fr/pub/distrib/ocaml-${OCAMLVERSION:0:4}/ocaml-$OCAMLVERSION.tar.gz"
-if [ ! -d "/cygdrive/c/ocaml/$OCAMLVERSION/" ]; then
-    PREFIX="C:/ocaml/$OCAMLVERSION"
-    SOURCEDIR="ocaml-$OCAMLVERSION"
-    if [ ! -d "$SOURCEDIR" ]; then
-      TARBALL="ocaml-$OCAMLVERSION.tar.gz"
-      if [ ! -f "$TARBALL" ]; then
-        wget "$URL"
-      fi
-      tar --extract --file=$TARBALL
-    fi
-    cd "ocaml-$OCAMLVERSION"
-    if [ `printf "$OCAMLVERSION\n4.03.0" | sort | head -n1` = 4.03.0 ]; then
-        eval $(tools/msvs-promote-path)
-        pushd flexdll
-            wget https://github.com/alainfrisch/flexdll/archive/0.37.tar.gz
-            tar --strip-components=1 --extract --file=0.37.tar.gz
-            popd
-    else
-        eval $(~/ocaml-4.09.0/tools/msvs-promote-path)
-        export PATH="$HOME/ocaml-4.09.0/flexdll:$PATH"
-        export INCLUDE="$INCLUDE;C:/Users/ci/ocaml-4.09.0/flexdll"
-        export OCAMLBUILD_FIND=/usr/bin/find
-    fi
-    if [ `printf "$OCAMLVERSION\n4.08.0" | sort | head -n1` = 4.08.0 ]; then
-        ./configure --build=x86_64-unknown-cygwin --host=x86_64-pc-windows \
-            --prefix="$PREFIX"
-    else
-        if [ `printf "$OCAMLVERSION\n4.06.0" | sort | head -n1` = 4.06.0 ]; then
-            cp config/m-nt.h byterun/caml/m.h
-            cp config/s-nt.h byterun/caml/s.h
-        else
-            cp config/m-nt.h config/m.h
-            cp config/s-nt.h config/s.h
-        fi
-        cp config/Makefile.msvc64 config/Makefile
-        sed -i -e "s|^PREFIX=.*\$|PREFIX=$PREFIX|" config/Makefile
-    fi
-    if [ `printf "$OCAMLVERSION\n4.05.0" | sort | head -n1` = 4.05.0 ]; then
-        make flexdll
-        make world.opt
-        make flexlink.opt
-        make install
-    elif [ `printf "$OCAMLVERSION\n4.03.0" | sort | head -n1` = 4.03.0 ]; then
-        make -f Makefile.nt flexdll world bootstrap opt opt.opt install
-    else
-        make -f Makefile.nt world bootstrap opt opt.opt install
-    fi
-fi
diff --git a/configure b/configure
index c66443f..9381db8 100755
--- a/configure
+++ b/configure
@@ -954,6 +954,9 @@ OCAML_VERSION_MAJOR
 OCAMLVERSION
 OCAMLC
 OCAML
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
 AM_DEFAULT_V
@@ -1028,6 +1031,7 @@ ac_subst_files=''
 ac_user_opts='
 enable_option_checking
 enable_silent_rules
+enable_maintainer_mode
 enable_dependency_tracking
 enable_magic
 '
@@ -1664,6 +1668,9 @@ Optional Features:
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-silent-rules   less verbose build output (undo: "make V=1")
   --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-maintainer-mode
+                          enable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
   --enable-dependency-tracking
                           do not reject slow dependency extractors
   --disable-dependency-tracking
@@ -3274,6 +3281,30 @@ END
 fi
 
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+    # Check whether --enable-maintainer-mode was given.
+if test ${enable_maintainer_mode+y}
+then :
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else $as_nop
+  USE_MAINTAINER_MODE=no
+fi
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+printf "%s\n" "$USE_MAINTAINER_MODE" >&6; }
+   if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+
+  MAINT=$MAINTAINER_MODE_TRUE
+
+
+
 
 
 if test -n "$ac_tool_prefix"; then
@@ -7752,6 +7783,10 @@ else
   am__EXEEXT_FALSE=
 fi
 
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
   as_fn_error $? "conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/configure.ac b/configure.ac
index c23d44d..b7b4ee9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,6 +2,7 @@ AC_INIT([[stdcompat]], m4_esyscmd([tr -d '\n' <VERSION]),
   [[Thierry.Martinez@inria.fr]], [[stdcompat]],
   [[https://github.com/thierry.martinez/stdcompat/]])
 AM_INIT_AUTOMAKE([foreign])
+AM_MAINTAINER_MODE
 
 AC_DEFUN([AC_OCAMLFIND_PKG],
   [AC_MSG_CHECKING([for ocamlfind package $2])
diff --git a/debian/changelog b/debian/changelog
index 4eed61c..050c2df 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ocaml-stdcompat (19+git20221104.1.a8df7ec-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Mon, 23 Jan 2023 10:10:45 -0000
+
 ocaml-stdcompat (19-1) unstable; urgency=medium
 
   * New upstream release
diff --git a/dune b/dune
index ac1c03f..a9ee269 100644
--- a/dune
+++ b/dune
@@ -121,7 +121,6 @@
 (rule
  (targets
    configure
-   install-sh
    Makefile.in)
  (mode promote)
  (deps
@@ -491,4 +490,4 @@
   stdcompat__weak.mli.in
   stdcompat__weak_s.mli.in
   stdcompat_tests.ml.in)
-  (action (run %{configure})))
+  (action (run sh %{configure})))
diff --git a/generate_interfaces.sh b/generate_interfaces.sh
deleted file mode 100755
index 3783cd9..0000000
--- a/generate_interfaces.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-opam config exec --switch=4.07.0+rc1 -- \
-  ocamlfind ocamlc -g -package unix,compiler-libs.common -linkpkg \
-    interface_generator.ml -o interface_generator
-
-for module in \
-    Pervasives Arg Array ArrayLabels Buffer Bytes BytesLabels Callback Char \
-    Complex Digest Ephemeron Filename Float Format Gc Genlex Hashtbl Int32 \
-    Int64 Lazy Lexing List ListLabels Map Marshal MoreLabels Nativeint Obj Oo \
-    Option Parsing Printexc Printf Queue Random Result Scanf Seq Set Sort \
-    Spacetime Stack StdLabels Stream String StringLabels Sys Uchar Weak; do
-    target=stdcompat__`echo $module | tr A-Z a-z`.mli.in
-    echo $module
-    ./interface_generator $module \
-        ~/.opam/4.07.0+rc1/bin/ocaml \
-        ~/.opam/4.06.1/bin/ocaml \
-        ~/.opam/4.05.0/bin/ocaml \
-        ~/.opam/4.04.2/bin/ocaml \
-        ~/.opam/4.03.0/bin/ocaml \
-        ~/.opam/4.02.3/bin/ocaml \
-        ~/.opam/4.01.0/bin/ocaml \
-        ~/.opam/4.00.1/bin/ocaml \
-        ~/.opam/3.12.1/bin/ocaml \
-        ~/.opam/3.11.2/bin/ocaml >$target
-done
diff --git a/interface_generator/Makefile b/interface_generator/Makefile
deleted file mode 100644
index 93c4203..0000000
--- a/interface_generator/Makefile
+++ /dev/null
@@ -1,96 +0,0 @@
-OCAMLFIND := ocamlfind
-
-OCAMLFIND_AVAILABLE := $(shell \
-	if $(OCAMLFIND) query -help >/dev/null 2>&1; then \
-		echo true; \
-	else \
-		echo false; \
-	fi \
-)
-
-ifeq ($(OCAMLFIND_AVAILABLE),true)
-	OCAMLOPT := $(OCAMLFIND) ocamlopt
-	OCAMLC := $(OCAMLFIND) ocamlc
-	OCAMLDOC := $(OCAMLFIND) ocamldoc
-	OCAMLDEP := $(OCAMLFIND) ocamldep
-	OCAMLFLAGS := -package unix,compiler-libs.common
-	OCAMLLDFLAGS := -linkpkg
-else
-	OCAMLOPT := $(shell \
-		if ocamlopt.opt -version >/dev/null 2>&1; then \
-			echo ocamlopt.opt; \
-		elif ocamlopt -version >/dev/null 2>&1; then \
-			echo ocamlopt; \
-		fi \
-	)
-
-	OCAMLC := $(shell \
-		if ocamlc.opt -version >/dev/null 2>&1; then \
-			echo ocamlc.opt; \
-		elif ocamlc -version >/dev/null 2>&1; then \
-			echo ocamlc; \
-		fi \
-	)
-
-	OCAMLDOC := ocamldoc
-
-	OCAMLDEP := ocamldep
-endif
-
-OCAMLFLAGS += -g
-OCAMLCFLAGS += $(OCAMLFLAGS)
-OCAMLLDFLAGS += $(OCAMLFLAGS)
-
-ifeq ($(OCAMLC),)
-$(error There is no OCaml compiler available in PATH)
-endif
-
-ifeq ($(OCAMLOPT),)
-	OCAMLOPT_AVAILABLE := false
-else
-	OCAMLOPT_AVAILABLE := $(shell \
-		if $(OCAMLOPT) -version >/dev/null 2>&1; then \
-			echo true; \
-		else \
-			echo false; \
-		fi \
-	)
-endif
-
-ifeq ($(OCAMLOPT_AVAILABLE),true)
-	OCAMLBEST := $(OCAMLOPT)
-	CMOX := cmx
-else
-	OCAMLBEST := $(OCAMLC)
-	CMOX := cmo
-endif
-
-MODULES := interface_tools.ml interface_dumper.ml interface_generator.ml
-
-all : interface_dumper interface_generator
-
-clean :
-	- rm -f $(MODULES:.ml=.cmo) $(MODULES:.ml=.cmx) $(MODULES:.ml=.cmi) \
-		$(MODULES:.ml=.o) .depend
-
-.depend : $(MODULES) $(MODULES:.ml=.mli)
-	$(OCAMLDEP) $^ >$@
-
-ifneq ($(MAKECMDGOALS),clean)
--include .depend
-endif
-
-interface_dumper : interface_tools.$(CMOX) interface_dumper.$(CMOX)
-	$(OCAMLBEST) $(OCAMLLDFLAGS) $^ -o $@
-
-interface_generator : interface_tools.$(CMOX) interface_generator.$(CMOX)
-	$(OCAMLBEST) $(OCAMLLDFLAGS) $^ -o $@
-
-%.cmi : %.mli
-	$(OCAMLC) $(OCAMLCFLAGS) -c $< -o $@
-
-%.cmo : %.ml
-	$(OCAMLC) $(OCAMLCFLAGS) -c $< -o $@
-
-%.cmx : %.ml
-	$(OCAMLOPT) $(OCAMLCFLAGS) -c $< -o $@
diff --git a/interface_generator/dump_interfaces.sh b/interface_generator/dump_interfaces.sh
deleted file mode 100755
index a0d6528..0000000
--- a/interface_generator/dump_interfaces.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-# 3.11.2 3.12.1 4.00.1
-#   4.01.0 4.02.3 4.03.0 4.04.2 4.05.0 4.06.1 \
-#   4.07.0 \
-#   4.08 4.09 4.10 4.11 4.12 4.13 4.14 
-
-for ocaml_version in 5.0; do
-  target_dir=../interfaces/${ocaml_version:0:4}
-#  ocaml_version=ocaml-variants.4.10.0+beta2
-#  target_dir=../interfaces/4.10.0
-  mkdir -p $target_dir
-  for module in \
-       Stdlib Atomic Arg Array ArrayLabels Bool Buffer Bytes BytesLabels Callback Char \
-       Complex Digest Either Ephemeron Filename Float Format Fun Gc Hashtbl Int32 \
-       Int64 Lazy Lexing List ListLabels Map Marshal MoreLabels Nativeint Obj \
-       Oo Option Parsing Printexc Printf Queue Random Result Scanf Seq Set \
-       Stack StdLabels String StringLabels Sys Uchar Weak In_channel Out_channel \
-       Unit ; do
-    target=$target_dir/`echo ${module:0:1} | tr A-Z a-z`${module:1}.mli
-    opam config exec --switch=$ocaml_version -- \
-         ./interface_dumper $module ocaml >$target
-    [ `stat --format="%s" $target` -gt 1 ] || rm $target
-#    [ `stat -f%z $target` -gt 1 ] || rm $target
-  done
-done
diff --git a/interface_generator/generate_interfaces.sh b/interface_generator/generate_interfaces.sh
deleted file mode 100755
index 4c3693d..0000000
--- a/interface_generator/generate_interfaces.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-set -e
-for module in \
-    Atomic \
-    Arg Array ArrayLabels Bool Buffer Bytes BytesLabels Callback Char \
-    Complex Digest Either Ephemeron Filename Float Format Fun Gc Hashtbl Int32 \
-    Int64 Lazy Lexing List ListLabels Map Marshal MoreLabels Nativeint Obj Oo \
-    Option Parsing Printexc Printf Queue Random Result Scanf Seq Set \
-    Stack StdLabels String StringLabels Sys Uchar Weak In_channel Out_channel \
-    Unit
- do
-    echo $module
-    target=../stdcompat__${module,}_s.mli.in
-    echo $target
-    ./interface_generator $module 5.0 4.14 4.13 4.12 4.11 4.10 4.09 4.08 4.07 4.06 4.05 4.04 4.03 4.02 4.01 4.00 3.12 \
-       3.11 3.10 3.09 3.08 3.07 >$target
-done
diff --git a/interface_generator/interface_dumper.ml b/interface_generator/interface_dumper.ml
deleted file mode 100644
index 34ab184..0000000
--- a/interface_generator/interface_dumper.ml
+++ /dev/null
@@ -1,228 +0,0 @@
-let run_interpreter ?(buffer_size = 4096)
-    ~command_line ~module_name commander =
-  let channels = Unix.open_process_full command_line (Unix.environment ()) in
-  Fun.protect
-    ~finally:(fun () ->
-      assert (channels |> Unix.close_process_full = Unix.WEXITED 0))
-    (fun () ->
-      let in_channel, out_channel, err_channel = channels in
-      let buffer = Buffer.create buffer_size in
-      let rec wait_for_prompt () =
-        let _ : int =
-          Interface_tools.Buffer.add_channel_no_wait buffer in_channel
-            buffer_size in
-        if not (Interface_tools.Buffer.has_suffix buffer "# ") then
-          wait_for_prompt () in
-      wait_for_prompt ();
-      let prolog = Buffer.contents buffer in
-      let linefeed_index = String.index prolog '\n' in
-      let version_line = String.sub prolog 0 linefeed_index in
-      let version = Interface_tools.Version.of_string version_line in
-      commander version (fun phrase ->
-        let str =
-          String.trim (Format.asprintf "%a@." Pprintast.top_phrase phrase) in
-        let str =
-          if Interface_tools.String.has_prefix ~prefix:";;" str then
-            Interface_tools.String.suffix_from str 2
-          else
-            str in
-        Printf.fprintf out_channel "\n%s\n\n" str;
-        flush out_channel;
-        Buffer.clear buffer;
-        Interface_tools.Buffer.add_channel_to_the_end buffer in_channel
-          ~continue:(fun () ->
-            not (Interface_tools.Buffer.has_suffix buffer "#   "));
-        if Buffer.length buffer > 4 then
-          Buffer.truncate buffer (Buffer.length buffer - 4);
-        Buffer.contents buffer))
-
-let module_type_of_string ~module_name s =
-  match
-    let lexbuf = s |> Lexing.from_string in
-    Lexing.set_filename lexbuf module_name;
-    match Parse.interface lexbuf with
-    | [{ psig_desc =
-         Psig_module
-           { pmd_type = module_type } }] ->
-             module_type
-    | [{ psig_desc =
-         Psig_modtype
-           { pmtd_type = Some module_type }}] ->
-             module_type
-    | _ -> failwith "Unexpected result"
-  with
-  | s ->
-      s
-  | exception ((Syntaxerr.Error _) as exn) ->
-      prerr_endline s;
-      (* Syntaxerr.report_error is deprecated *)
-      begin match Location.error_of_exn exn with
-      | Some (`Ok err) -> Location.print_report Format.err_formatter err
-      | _ -> ()
-      end;
-      { pmty_desc = Pmty_signature []; pmty_loc = Location.none;
-        pmty_attributes = [] }
-  | exception e ->
-      prerr_endline s;
-      prerr_endline (Printexc.to_string e);
-      { pmty_desc = Pmty_signature []; pmty_loc = Location.none;
-        pmty_attributes = [] }
-
-let refine_signature_item ~module_name
-    (interpret : Parsetree.toplevel_phrase -> string)
-    (signature_item : Parsetree.signature_item) =
-  match signature_item.psig_desc with
-  | Psig_value value_description ->
-      let pstr_desc : Parsetree.structure_item_desc =
-        Pstr_eval (Ast_helper.Exp.ident (Location.mkloc (Longident.Ldot (
-          Lident module_name, value_description.pval_name.txt))
-          !Ast_helper.default_loc), []) in
-      let s = interpret (Ptop_def [{ pstr_desc; pstr_loc = Location.none }]) in
-      let lines = String.split_on_char '\n' s in
-      let rec chop_warning lines =
-        match lines with
-        | s :: s' :: _ when
-            Interface_tools.String.has_prefix ~prefix:"Warning 3:" s
-        || Interface_tools.String.has_prefix ~prefix:"Warning 3:" s ->
-            Some s'
-        | _ :: tl -> chop_warning tl
-        | [] -> None in
-      let warning = chop_warning lines in
-      let signature_item =
-        match warning with
-        | None -> signature_item
-        | Some warning ->
-            let value_description = { value_description with
-              pval_attributes = Ast_helper.Attr.mk
-                (Location.mkloc "ocaml.deprecated" !Ast_helper.default_loc)
-                (PStr [Ast_helper.Str.eval
-                   (Ast_helper.Exp.constant (Ast_helper.Const.string warning))])
-                :: value_description.pval_attributes } in
-            { signature_item with psig_desc = Psig_value value_description } in
-      signature_item
-  | _ -> signature_item
-
-let refine_module_type ~module_name interpret
-    (module_type : Parsetree.module_type) =
-  match module_type.pmty_desc with
-  | Pmty_signature s ->
-      let s = List.map (refine_signature_item ~module_name interpret) s in
-      { module_type with pmty_desc = Pmty_signature s }
-  | _ -> module_type
-
-let self_name ~(module_name : Longident.t) (type_declaration : Parsetree.type_declaration)
-    : Longident.t =
-  if module_name = Lident "Pervasives" then
-    Lident type_declaration.ptype_name.txt
-  else
-    Ldot (module_name, type_declaration.ptype_name.txt)
-
-let rec remove_self_aliases_of_type_declaration ~module_name
-    (type_declaration : Parsetree.type_declaration) =
-  match type_declaration.ptype_manifest with
-  | Some { ptyp_desc = Ptyp_constr ({ txt = ident }, _args) }
-      when ident = self_name ~module_name type_declaration ->
-        { type_declaration with ptype_manifest = None }
-  | _ -> type_declaration
-
-let rec remove_self_aliases_of_module_type ~module_name
-    (module_type : Parsetree.module_type) =
-  match module_type.pmty_desc with
-  | Pmty_functor (Named (var, arg), body) ->
-      let module_name : Longident.t =
-        Lapply (module_name, Lident (Option.get var.txt)) in
-      let body = remove_self_aliases_of_module_type ~module_name body in
-      { module_type with pmty_desc = Pmty_functor (Named (var, arg), body) }
-  | Pmty_signature s ->
-      let s =
-        s |> List.map @@ remove_self_aliases_of_signature_item ~module_name in
-      { module_type with pmty_desc = Pmty_signature s }
-  | _ -> module_type
-
-and remove_self_aliases_of_signature_item ~module_name
-    (item : Parsetree.signature_item) =
-  match item.psig_desc with
-  | Psig_type (rec_flag, list) ->
-      let list = list |>
-        List.map @@ remove_self_aliases_of_type_declaration ~module_name in
-      { item with psig_desc = Psig_type (rec_flag, list) }
-  | Psig_module module_declaration ->
-      let module_name : Longident.t =
-        Ldot (module_name, Option.get module_declaration.pmd_name.txt) in
-      let pmd_type = remove_self_aliases_of_module_type ~module_name
-          module_declaration.pmd_type in
-      { item with psig_desc = Psig_module { module_declaration with pmd_type }}
-  | _ -> item
-
-let module_type_of_name ~command_line ~module_name =
-  run_interpreter ~command_line ~module_name (fun version interpret ->
-    let pstr_desc : Parsetree.structure_item_desc =
-        let stdlib_module_name =
-          if Interface_tools.Version.compare version
-              { major = 4; minor = 7; patch = 0 } >= 0
-              && module_name <> "Pervasives" && module_name <> "Stdlib" then
-            if Interface_tools.Version.compare version
-              { major = 4; minor = 13; patch = 0 } >= 0 then
-              Printf.sprintf "Stdlib__%s" module_name
-            else
-              Printf.sprintf "Stdlib__%s" (String.uncapitalize_ascii module_name)
-          else
-            module_name in
-      let module_expr : Parsetree.module_expr = {
-        pmod_desc = Pmod_ident {
-          txt = Lident stdlib_module_name; loc = Location.none };
-        pmod_loc = Location.none;
-        pmod_attributes = [] } in
-      if Interface_tools.Version.compare version
-          { major = 4; minor = 2; patch = 0 } >= 0 then
-        Pstr_modtype {
-          pmtd_name = { txt = module_name; loc = Location.none };
-          pmtd_type = Some ({
-            pmty_desc = Pmty_typeof module_expr;
-            pmty_loc = Location.none;
-            pmty_attributes = [] });
-          pmtd_attributes = [Ast_helper.Attr.mk
-            { Location.txt = "ocaml.warning"; loc = Location.none }
-            (Parsetree.PStr [Ast_helper.Str.eval (
-              Ast_helper.Exp.constant (Ast_helper.Const.string "-3"))])
-      ];
-          pmtd_loc = Location.none; }
-      else
-        Pstr_module {
-          pmb_name = { txt = Some module_name; loc = Location.none };
-          pmb_expr = module_expr;
-          pmb_attributes = [];
-          pmb_loc = Location.none; } in
-    let s = interpret (Ptop_def [{ pstr_desc; pstr_loc = Location.none }]) in
-    let module_type = module_type_of_string ~module_name s in
-    let module_type =
-      if Interface_tools.Version.compare version
-          { major = 4; minor = 2; patch = 0 } >= 0 then
-        module_type
-      else
-        remove_self_aliases_of_module_type ~module_name:(Lident module_name)
-          module_type in
-    let module_type = refine_module_type ~module_name interpret module_type in
-    let _ : string = interpret (Ptop_def [Ast_helper.Str.eval (
-          Ast_helper.Exp.apply
-            (Ast_helper.Exp.ident
-              (Location.mkloc (Longident.Lident "exit") !Ast_helper.default_loc))
-            [Nolabel, Ast_helper.Exp.constant (Pconst_integer ("0", None))])]) in
-    module_type)
-
-let main () =
-  let module_name, command_line =
-    match Sys.argv with
-    | [| _; module_name; command_line |] -> module_name, command_line
-    | _ -> failwith "Bad usage" in
-  let module_type = module_type_of_name ~command_line ~module_name in
-  let signature =
-    match module_type.pmty_desc with
-    | Pmty_signature signature -> signature
-    | _ -> failwith "Unexpected module type" in
-  Format.fprintf Format.std_formatter "%a@."
-    Pprintast.signature signature
-
-let () =
-  if not !Sys.interactive then
-    main ()
diff --git a/interface_generator/interface_dumper.mli b/interface_generator/interface_dumper.mli
deleted file mode 100644
index e69de29..0000000
diff --git a/interface_generator/interface_generator.ml b/interface_generator/interface_generator.ml
deleted file mode 100644
index 858c4b9..0000000
--- a/interface_generator/interface_generator.ml
+++ /dev/null
@@ -1,1624 +0,0 @@
-module String = struct
-  include String
-
-  let hash = Hashtbl.hash
-
-  module Map = Map.Make (String)
-end
-
-module List = struct
-  include List
-
-  let equal p l l' =
-    List.compare_lengths l l' = 0 && List.for_all2 p l l'
-
-  let rec last l =
-    match l with
-    | [] -> failwith "last"
-    | [item] -> item
-    | _ :: tl -> last tl
-
-  let rec filter_map f l =
-    match l with
-    | [] -> []
-    | hd :: tl ->
-        match f hd with
-        | None -> filter_map f tl
-        | Some hd' -> hd' :: filter_map f tl
-end
-
-module Name = struct
-  type t = string Location.loc
-
-  let equal (n : t) (n' : t) =
-    n.txt = n'.txt
-end
-
-module Pair = struct
-  type ('a, 'b) t = 'a * 'b
-
-  let map_snd f (x, y) =
-    (x, f y)
-
-  let with_snd f (_x, y) =
-    f y
-
-  module Hashed (X : Hashtbl.HashedType) (Y : Hashtbl.HashedType) = struct
-    type t = X.t * Y.t
-
-    let equal (x, y) (x', y') =
-      X.equal x x' && Y.equal y y'
-
-    let hash (x, y) =
-      Hashtbl.hash (X.hash x, Y.hash y)
-  end
-end
-
-type isomorphism_kind = Ignore_attributes | Attributes_equal
-
-let is_attribute_isomorphic kind (a : Parsetree.attribute)
-    (b : Parsetree.attribute) =
-  Name.equal a.attr_name b.attr_name
-
-let is_attributes_isomorphic kind (a : Parsetree.attributes)
-    (a' : Parsetree.attributes) =
-  match kind with
-  | Ignore_attributes -> true
-  | Attributes_equal ->
-      List.equal (is_attribute_isomorphic kind) a a'
-
-let rec is_core_type_isomorphic kind (t : Parsetree.core_type)
-    (t' : Parsetree.core_type) =
-  is_attributes_isomorphic kind t.ptyp_attributes t'.ptyp_attributes &&
-  match t.ptyp_desc, t'.ptyp_desc with
-  | Ptyp_any, Ptyp_any -> true
-  | Ptyp_var v, Ptyp_var v' -> kind = Ignore_attributes || v = v'
-  | Ptyp_arrow (l, u, v), Ptyp_arrow (l', u', v') ->
-      l = l' &&
-      is_core_type_isomorphic kind u u' &&
-      is_core_type_isomorphic kind v v'
-  | Ptyp_tuple l, Ptyp_tuple l' ->
-      List.equal (is_core_type_isomorphic kind) l l'
-  | Ptyp_constr (c, args), Ptyp_constr (c', args') ->
-      let eq_c, args, args' =
-        match kind, (c.txt, args), (c'.txt, args') with
-        | Ignore_attributes,
-          (Lident "format6", [a; b; c; _; _; f] |
-           Lident "format4", [a; b; c; f]),
-          (Lident "format6", [a'; b'; c'; _; _; f'] |
-           Lident "format4", [a'; b'; c'; f']) ->
-          true, [a; b; c; f], [a'; b'; c'; f']
-        | _ -> c.txt = c'.txt, args, args' in
-      eq_c && List.equal (is_core_type_isomorphic kind) args args'
-  | Ptyp_alias (c, v), Ptyp_alias (c', v') ->
-      is_core_type_isomorphic kind c c' && v = v'
-  | Ptyp_object (l, flag), Ptyp_object (l', flag') ->
-      List.equal (is_object_field_isomorphic kind) l l' && flag = flag'
-  | Ptyp_poly (l, t), Ptyp_poly (l', t') ->
-      List.equal Name.equal l l' && is_core_type_isomorphic kind t t'
-  | Ptyp_variant _, _ ->
-      Format.fprintf Format.err_formatter "Unknown isomorphism variant: %a@." Pprintast.core_type t;
-      false
-  | _ ->
-      Format.fprintf Format.err_formatter "Unknown isomorphism: %a@." Pprintast.core_type t;
-      false
-
-and is_object_field_isomorphic kind (f : Parsetree.object_field)
-    (f' : Parsetree.object_field) =
-  is_attributes_isomorphic kind f.pof_attributes f'.pof_attributes &&
-  match f.pof_desc, f'.pof_desc with
-  | Otag (l, t), Otag (l', t') ->
-      l.txt = l'.txt &&
-      is_core_type_isomorphic kind t t'
-  | Oinherit t, Oinherit t' ->
-      is_core_type_isomorphic kind t t'
-  | _ -> false
-
-let is_label_declaration_isomorphic kind (l : Parsetree.label_declaration)
-    (l' : Parsetree.label_declaration) =
-  Name.equal l.pld_name l'.pld_name &&
-  l.pld_mutable = l'.pld_mutable &&
-  is_core_type_isomorphic kind l.pld_type l'.pld_type
-
-let is_constructor_arguments_isomorphic kind
-    (a : Parsetree.constructor_arguments)
-    (a' : Parsetree.constructor_arguments) =
-  match a, a' with
-  | Pcstr_tuple l, Pcstr_tuple l' ->
-      List.equal (is_core_type_isomorphic kind) l l'
-  | Pcstr_record l, Pcstr_record l' ->
-      List.equal (is_label_declaration_isomorphic kind) l l'
-  | _ -> false
-
-let is_constructor_declaration_isomorphic kind
-    (c : Parsetree.constructor_declaration)
-    (c' : Parsetree.constructor_declaration) =
-  Name.equal c.pcd_name c'.pcd_name &&
-  is_attributes_isomorphic kind c.pcd_attributes c'.pcd_attributes &&
-  is_constructor_arguments_isomorphic kind c.pcd_args c'.pcd_args &&
-  Interface_tools.Option.equal (is_core_type_isomorphic kind)
-    c.pcd_res c'.pcd_res
-
-let no_self_manifest (d : Parsetree.type_declaration) =
-  match d.ptype_manifest with
-  | Some ({ ptyp_desc = Ptyp_constr ({ txt = Lident self }, _args)})
-    when self = d.ptype_name.txt -> None
-  | manifest -> manifest
-
-let is_type_param_isomorphic kind (ty, (v, i)) (ty', (v', i')) =
-  is_core_type_isomorphic kind ty ty' &&
-  v = v' (*&&
-  i = i'*)
-
-let is_type_params_isomorphic kind params params' =
-  List.equal (is_type_param_isomorphic kind) params params'
-
-let is_type_declaration_isomorphic kind (d : Parsetree.type_declaration)
-    (d' : Parsetree.type_declaration) =
-  Name.equal d.ptype_name d'.ptype_name &&
-  is_attributes_isomorphic kind d.ptype_attributes d'.ptype_attributes &&
-  is_type_params_isomorphic kind d.ptype_params d'.ptype_params &&
-  Interface_tools.Option.equal (is_core_type_isomorphic kind)
-    (no_self_manifest d) (no_self_manifest d') &&
-  match d.ptype_kind, d'.ptype_kind with
-  | Ptype_abstract, Ptype_abstract
-  | Ptype_open, Ptype_open ->
-      true
-  | Ptype_variant c, Ptype_variant c' ->
-      List.equal (is_constructor_declaration_isomorphic kind) c c'
-  | Ptype_record r, Ptype_record r' ->
-      List.equal (is_label_declaration_isomorphic kind) r r'
-  | _ -> false
-
-module Type_declaration_block = struct
-  type t = {
-      rec_flag : Asttypes.rec_flag;
-      type_decl : Parsetree.type_declaration list;
-    }
-
-  let get_first_type_name b =
-    match b.type_decl with
-    | [] -> failwith "empty type decl"
-    | type_decl :: _ -> type_decl.ptype_name.txt
-
-  let is_isomorphic kind b b' =
-    (kind == Ignore_attributes || b.rec_flag = b'.rec_flag) &&
-    List.equal (is_type_declaration_isomorphic kind) b.type_decl b'.type_decl
-end
-
-module Signature = struct
-  type t = {
-      values : Parsetree.value_description String.Map.t;
-      types : Type_declaration_block.t String.Map.t;
-      module_types : Parsetree.module_type_declaration String.Map.t;
-      modules : Parsetree.module_declaration String.Map.t;
-    }
-
-  let empty = {
-    values = String.Map.empty;
-    types = String.Map.empty;
-    module_types = String.Map.empty;
-    modules = String.Map.empty;
-  }
-
-  let add_value (value_desc : Parsetree.value_description) s =
-    let values = String.Map.add value_desc.pval_name.txt value_desc s.values in
-    { s with values }
-
-  let add_type_declaration (type_decl : Parsetree.type_declaration) block s =
-    let types = String.Map.add type_decl.ptype_name.txt block s.types in
-    { s with types }
-
-  let add_type_declaration_block (block : Type_declaration_block.t) s =
-    block.type_decl |>
-      List.fold_left (fun s decl -> add_type_declaration decl block s) s
-
-  let add_module_type_declaration
-      (module_type_declaration : Parsetree.module_type_declaration)
-      s =
-    let module_types =
-      String.Map.add module_type_declaration.pmtd_name.txt
-        module_type_declaration s.module_types in
-    { s with module_types }
-
-  let add_module_declaration (module_declaration : Parsetree.module_declaration)
-      s =
-    let modules =
-      String.Map.add (Option.get module_declaration.pmd_name.txt)
-        module_declaration
-        s.modules in
-    { s with modules }
-
-  let add_item (item : Parsetree.signature_item) s =
-    match item.psig_desc with
-    | Psig_value value_desc -> add_value value_desc s
-    | Psig_type (_rec_flag, type_decl) ->
-        add_type_declaration_block { rec_flag = Recursive; type_decl } s
-    | Psig_modtype module_type_declaration ->
-        add_module_type_declaration module_type_declaration s
-    | Psig_module module_declaration ->
-        add_module_declaration module_declaration s
-    | _ -> s
-
-  let of_parsetree s =
-    s |> List.fold_left (fun s item -> add_item item s) empty
-end
-
-let lex_file filename parser =
-  let in_channel = filename |> open_in in
-  Fun.protect
-    ~finally:(fun () -> in_channel |> close_in)
-    (fun () ->
-      let buf = in_channel |> Lexing.from_channel in
-      Lexing.set_filename buf filename;
-      buf |> parser)
-
-module type Type = sig
-  type t
-end
-
-module SignaturesTable =
-  Hashtbl.Make (Pair.Hashed (Interface_tools.Version) (String))
-
-let signatures = SignaturesTable.create 17
-
-let loc_of_txt txt : 'a Location.loc =
-  { txt; loc = Location.none }
-
-let core_type_of_desc ptyp_desc : Parsetree.core_type =
-  Ast_helper.Typ.mk ptyp_desc
-
-let module_type_of_desc pmty_desc : Parsetree.module_type =
-  { pmty_desc; pmty_loc = Location.none; pmty_attributes = [] }
-
-let module_type_of_signature signature =
-  module_type_of_desc (Pmty_signature signature)
-
-let signature_of_module_type (modtype : Parsetree.module_type) =
-  match modtype.pmty_desc with
-  | Pmty_signature s -> s
-  | _ -> failwith "signature_of_module_type"
-
-let module_type_of_name version module_name =
-  let root_module, submodule_path =
-    match Longident.flatten module_name with
-    | root_module :: submodule_path -> root_module, submodule_path
-    | [] -> assert false in
-  let root_signature =
-    try
-      prerr_endline "in cache";
-      SignaturesTable.find signatures (version, root_module)
-    with Not_found ->
-      let root_module_mli =
-        Printf.sprintf "../interfaces/%s/%s.mli"
-          (Interface_tools.Version.to_string ~include_patch:false version)
-          (String.uncapitalize_ascii root_module) in
-      prerr_endline root_module_mli;
-      let root_signature =
-        match lex_file root_module_mli Parse.interface with
-        | root_signature -> root_signature
-        | exception (Sys_error _) -> [] in
-      if root_signature = [] then
-        prerr_endline "Parsed an empty signature!";
-      SignaturesTable.add signatures (version, root_module) root_signature;
-      root_signature in
-  let rec lookup_submodule signature hd tl =
-    Format.eprintf "Looking for submodule %s@." hd;
-    if signature = [] then
-      prerr_endline "Empty signature!";
-    let module_type = Option.get (
-      signature |> List.find_map (
-      fun (signature_item : Parsetree.signature_item) ->
-        match signature_item.psig_desc with
-        | Psig_module module_declaration
-          when Option.get module_declaration.pmd_name.txt = hd ->
-            Some module_declaration.pmd_type
-        | Psig_module module_declaration ->
-            prerr_endline (Option.get module_declaration.pmd_name.txt);
-            None
-        | _ ->
-            Format.eprintf "%a@."
-              Pprintast.signature [signature_item];
-            None)) in
-    match tl with
-    | [] -> module_type
-    | hd :: tl ->
-        let signature = signature_of_module_type module_type in
-        lookup_submodule signature hd tl in
-  match submodule_path with
-  | [] -> module_type_of_signature root_signature
-  | hd :: tl ->
-      lookup_submodule root_signature hd tl
-
-module PolymorphicHash (T : Type) = struct
-  type t = T.t
-
-  let equal = ( = )
-
-  let hash = Hashtbl.hash
-end
-
-module ExternalsTable =
-  Hashtbl.Make
-    (Pair.Hashed (PolymorphicHash (Longident)) (Interface_tools.Version))
-
-let externals_table = ExternalsTable.create 17
-
-module StringHashtbl = Hashtbl.Make (String)
-
-let normalize_prim version prim =
-  if
-    Interface_tools.Version.compare version
-      { major = 3; minor = 8; patch = 0 } >= 0
-  then
-    prim
-  else
-    match prim with
-    | "sys_file_exists" -> "caml_sys_file_exists"
-    | "sys_is_directory" -> "caml_sys_is_directory"
-    | "sys_remove" -> "caml_sys_remove"
-    | "sys_rename" -> "caml_sys_rename"
-    | "sys_getenv" -> "caml_sys_getenv"
-    | "sys_system_command" -> "caml_sys_system_command"
-    | "sys_time_unboxed" -> "caml_sys_time_unboxed"
-    | "sys_chdir" -> "caml_sys_chdir"
-    | "sys_getcwd" -> "caml_sys_getcwd"
-    | "sys_read_directory" -> "caml_sys_read_directory"
-    | "runtime_variant" -> "caml_runtime_variant"
-    | "runtime_parameters" -> "caml_runtime_parameters"
-    | "install_signal_handler" -> "caml_install_signal_handler"
-    | "output_value_to_bytes" -> "caml_output_value_to_bytes"
-    | "output_value_to_string" -> "caml_output_value_to_string"
-    | "power_float" -> "caml_power_float"
-    | "sqrt_float" -> "caml_sqrt_float"
-    | "exp_float" -> "caml_exp_float"
-    | "log_float" -> "caml_log_float"
-    | "log10_float" -> "caml_log10_float"
-    | "expm1" -> "caml_expm1"
-    | "log1p" -> "caml_log1p"
-    | "cos_float" -> "caml_cos_float"
-    | "sin_float" -> "caml_sin_float"
-    | "tan_float" -> "caml_tan_float"
-    | "acos_float" -> "caml_acos_float"
-    | "asin_float" -> "caml_asin_float"
-    | "atan_float" -> "caml_atan_float"
-    | "atan2_float" -> "caml_atan2_float"
-    | "hypot" -> "caml_hypot"
-    | "cosh_float" -> "caml_cosh_float"
-    | "sinh_float" -> "caml_sinh_float"
-    | "tanh_float" -> "caml_tanh_float"
-    | "ceil_float" -> "caml_ceil_float"
-    | "floor_float" -> "caml_floor_float"
-    | "copysign" -> "caml_copysign"
-    | "fmod_float" -> "caml_fmod_float"
-    | "frexp_float" -> "caml_frexp_float"
-    | "ldexp_float_unboxed" -> "caml_ldexp_float_unboxed"
-    | "modf_float" -> "caml_modf_float"
-    | "classify_float" -> "caml_classify_float"
-    | "classify_float_unboxed" -> "caml_classify_float_unboxed"
-    | "int_of_string" -> "caml_int_of_string"
-    | "float_of_string" -> "caml_float_of_string"
-    | "create_bytes" -> "caml_create_bytes"
-    | "blit_bytes" -> "caml_blit_bytes"
-    | "fill_bytes" -> "caml_fill_bytes"
-    | "nativeint_of_float" -> "caml_nativeint_of_float"
-    | "nativeint_of_float_unboxed" -> "caml_nativeint_of_float_unboxed"
-    | "nativeint_to_float" -> "caml_nativeint_to_float"
-    | "nativeint_to_float_unboxed" -> "caml_nativeint_to_float_unboxed"
-    | "nativeint_of_string" -> "caml_nativeint_of_string"
-    | "nativeint_format" -> "caml_nativeint_format"
-    | "int32_of_float_unboxed" -> "caml_int32_of_float_unboxed"
-    | "int32_to_float_unboxed" -> "caml_int32_to_float_unboxed"
-    | "int32_of_string" -> "caml_int32_of_string"
-    | "int32_bits_of_float" -> "caml_int32_bits_of_float"
-    | "int32_bits_of_float_unboxed" -> "caml_int32_bits_of_float_unboxed"
-    | "int32_float_of_bits" -> "caml_int32_float_of_bits"
-    | "int32_float_of_bits_unboxed" -> "caml_int32_float_of_bits_unboxed"
-    | "int32_format" -> "caml_int32_format"
-    | "make_vect" -> "caml_make_vect"
-    | "make_float_vect" -> "caml_make_float_vect"
-    | "floatarray_create" -> "caml_floatarray_create"
-    | "obj_tag" -> "caml_obj_tag"
-    | "obj_reachable_words" -> "caml_obj_reachable_words"
-    | "obj_set_tag" -> "caml_obj_set_tag"
-    | "obj_block" -> "caml_obj_block"
-    | "obj_dup" -> "caml_obj_dup"
-    | "obj_truncate" -> "caml_obj_truncate"
-    | "obj_add_offset" -> "caml_obj_add_offset"
-    | "gc_stat" -> "caml_gc_stat"
-    | "gc_quick_stat" -> "caml_gc_quick_stat"
-    | "gc_counters" -> "caml_gc_counters"
-    | "gc_minor_words" -> "caml_gc_minor_words"
-    | "gc_minor_words_unboxed" -> "caml_gc_minor_words_unboxed"
-    | "gc_get" -> "caml_gc_get"
-    | "gc_set" -> "caml_gc_set"
-    | "gc_minor" -> "caml_gc_minor"
-    | "gc_major_slice" -> "caml_gc_major_slice"
-    | "gc_major" -> "caml_gc_major"
-    | "gc_full_major" -> "caml_gc_full_major"
-    | "gc_compaction" -> "caml_gc_compaction"
-    | "get_minor_free" -> "caml_get_minor_free"
-    | "get_major_bucket" -> "caml_get_major_bucket"
-    | "get_major_credit" -> "caml_get_major_credit"
-    | "gc_huge_fallback_count" -> "caml_gc_huge_fallback_count"
-    | "create_string" -> "caml_create_string"
-    | "blit_string" -> "caml_blit_string"
-    | "fill_string" -> "caml_fill_string"
-    | "int64_of_float_unboxed" -> "caml_int64_of_float_unboxed"
-    | "int64_to_float_unboxed" -> "caml_int64_to_float_unboxed"
-    | "int64_of_string" -> "caml_int64_of_string"
-    | "int64_bits_of_float" -> "caml_int64_bits_of_float"
-    | "int64_bits_of_float_unboxed" -> "caml_int64_bits_of_float_unboxed"
-    | "int64_float_of_bits" -> "caml_int64_float_of_bits"
-    | "int64_float_of_bits_unboxed" -> "caml_int64_float_of_bits_unboxed"
-    | "int64_format" -> "caml_int64_format"
-    | "md5_chan" -> "caml_md5_chan"
-    | prim -> prim
-
-
-
-let get_externals module_name version =
-  try
-    ExternalsTable.find externals_table (module_name, version)
-  with Not_found ->
-    let modtype = module_type_of_name version module_name in
-    let externals = StringHashtbl.create 17 in
-    let add_external (item : Parsetree.signature_item) =
-      match item.psig_desc with
-      | Psig_value ({ pval_prim = prim :: _ } as value_description) ->
-          StringHashtbl.add externals (normalize_prim version prim)
-            value_description
-      | _ -> () in
-    modtype |> signature_of_module_type |> List.iter add_external;
-    ExternalsTable.add externals_table (module_name, version) externals;
-    externals
-
-let string_of_longident longident =
-  String.concat "." (Longident.flatten longident)
-
-let qualify_type_decl ~module_name (type_decl : Parsetree.type_declaration) =
-  match type_decl.ptype_private with
-  | Private ->
-      { type_decl with ptype_private = Public; ptype_manifest =
-        Some (Ast_helper.Typ.constr
-          { txt = Longident.Ldot (module_name, type_decl.ptype_name.txt);
-            loc = type_decl.ptype_name.loc }
-          (List.map fst type_decl.ptype_params)) }
-  | Public ->
-      let ptype_manifest =
-        type_decl.ptype_manifest |>
-        Option.map @@ fun (ty : Parsetree.core_type) ->
-          match ty.ptyp_desc with
-          | Ptyp_constr ({ txt = Lident "fpclass"; loc }, []) ->
-              let txt = Longident.Ldot (Lident "Pervasives", "fpclass") in
-              let ptyp_desc =
-                Parsetree.Ptyp_constr ({ Location.txt; loc }, []) in
-              { ty with ptyp_desc }
-          | Ptyp_constr ({ txt = Lident ident; loc }, args)
-            when ident <> "char" && ident <> "string" && ident <> "lazy_t"
-                && ident <> "nativeint" && ident <> "int32" && ident <> "int64"
-                && ident <> "format6" && ident <> "format4" && ident <> "bytes"
-                && ident <> "float" && ident <> "result" && ident <> "option"
-                 && ident <> "list" && ident <> "bool" && ident <> "array"
-            && ident <> "exn" && ident <> "int" && ident <> "unit"
-            && ident <> "in_channel" && ident <> "out_channel" ->
-              let txt = Longident.Ldot (module_name, ident) in
-              let ptyp_desc =
-                Parsetree.Ptyp_constr ({ Location.txt; loc }, args) in
-              { ty with ptyp_desc }
-          | _ -> ty in
-      { type_decl with ptype_manifest }
-
-let format_signature_item ~module_name ~signatures formatter
-    (item : Parsetree.signature_item) =
-  match item.psig_desc with
-  | Psig_type (rec_flag, type_decl) ->
-      let item =
-        { item with psig_desc = Parsetree.Psig_type (rec_flag, type_decl) } in
-      Format.fprintf formatter "%a@." Pprintast.signature [item]
-  | Psig_value value_desc ->
-      ()
-  | _ ->
-      ()
-
-let rec compat_core_type ~module_name (core_type : Parsetree.core_type) =
-  let core_type = { core_type with ptyp_attributes = [] } in
-  match core_type.ptyp_desc with
-  | Ptyp_arrow (label, left, right) ->
-      let ptyp_desc =
-        Parsetree.Ptyp_arrow
-          (label, compat_core_type ~module_name left,
-           compat_core_type ~module_name right) in
-      { core_type with ptyp_desc }
-  | Ptyp_tuple args ->
-      let args = List.map (compat_core_type ~module_name) args in
-      let ptyp_desc =
-        Parsetree.Ptyp_tuple args in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Ldot (Lident "CamlinternalLazy", "t") }, [arg]) ->
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__init", "lazy_t") }, [arg]) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Lident "bytes" }, []) ->
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__init", "bytes") }, []) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Lident "floatarray" }, []) ->
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__init", "floatarray") }, []) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Lident "result" }, [v; e]) ->
-      let v = compat_core_type ~module_name v in
-      let e = compat_core_type ~module_name e in
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__pervasives", "result") },
-           [v; e]) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Ldot (Lident "Seq", "t") }, [arg]) ->
-      let arg = compat_core_type ~module_name arg in
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__seq", "t") },
-           [compat_core_type ~module_name arg]) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Ldot (Lident "Stdlib", t) }, args) ->
-      let args = List.map (compat_core_type ~module_name) args in
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__stdlib", t) },
-           args) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Ldot (Lident "Uchar", t) }, []) ->
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__uchar", t) }, []) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Ldot (Lident "Hashtbl", "statistics") }, []) ->
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__hashtbl_ext", "statistics") },
-           []) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt =
-      Ldot (Lapply (Ldot (Lident "Hashtbl", "MakeSeeded"),
-        Lident "H"), "t") }, args) ->
-      let args = List.map (compat_core_type ~module_name) args in
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt =
-             Ldot (Lapply (Ldot (Lident "Stdcompat__hashtbl_ext",
-               "MakeSeeded"), Lident "H"), "t") },
-           args) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr ({ loc; txt = Ldot (Lident "Either", "t") }, [a; b]) ->
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          ({ loc; txt = Ldot (Lident "Stdcompat__either", "t") }, [a; b]) in
-      { core_type with ptyp_desc }
-  | Ptyp_constr (constr, args) ->
-      let rec remove_module_name (constr : Longident.t) : Longident.t =
-        match constr with
-        | Ldot (module_name', x) ->
-            if module_name = module_name' then
-              Lident x
-            else
-              Ldot (remove_module_name module_name', x)
-        | _ -> constr in
-      let constr = { constr with txt = remove_module_name constr.txt } in
-      let ptyp_desc =
-        Parsetree.Ptyp_constr
-          (constr,
-           List.map (compat_core_type ~module_name) args) in
-      { core_type with ptyp_desc }
-  | _ -> core_type
-
-let compat_label_declaration ~module_name
-    (label_declaration : Parsetree.label_declaration) =
-  { label_declaration with
-    pld_type = compat_core_type ~module_name label_declaration.pld_type }
-
-let compat_constructor_arguments ~module_name
-    (constructor_arguments : Parsetree.constructor_arguments) :
-    Parsetree.constructor_arguments =
-  match constructor_arguments with
-  | Pcstr_tuple args ->
-      Pcstr_tuple (args |> List.map (compat_core_type ~module_name))
-  | Pcstr_record label_declarations ->
-      Pcstr_record (label_declarations |>
-      List.map (compat_label_declaration ~module_name))
-
-let compat_constructor_declaration ~module_name
-    (constructor_declaration : Parsetree.constructor_declaration) =
-  { constructor_declaration with
-    pcd_args =
-    compat_constructor_arguments ~module_name constructor_declaration.pcd_args;
-    pcd_res = constructor_declaration.pcd_res |>
-    Interface_tools.Option.map (compat_core_type ~module_name);
-  }
-
-let compat_type_kind ~module_name
-    (type_kind : Parsetree.type_kind) : Parsetree.type_kind =
-  match type_kind with
-  | Ptype_variant constructor_declarations ->
-      Ptype_variant
-        (constructor_declarations |>
-        List.map (compat_constructor_declaration ~module_name))
-  | Ptype_record label_declarations ->
-      Ptype_record
-        (label_declarations |> List.map (compat_label_declaration ~module_name))
-  | _ -> type_kind
-
-let remove_injectivity ptype_params =
-  List.map (fun (ty, (v, _)) -> (ty, (v, Asttypes.NoInjectivity))) ptype_params
-
-let compat_type_declaration ~module_name
-    (type_decl : Parsetree.type_declaration) =
-  match Longident.Ldot (module_name, type_decl.ptype_name.txt) with
-  | Ldot (Lident "Pervasives", "format6") ->
-    let ptype_manifest =
-      match type_decl.ptype_manifest with
-      |  Some (
-        { ptyp_desc = Parsetree.Ptyp_constr ({ loc }, args) } as core_type) ->
-          let ptyp_desc =
-            Parsetree.Ptyp_constr
-            ({ loc;
-               txt = Ldot (Lident "Stdcompat__init", "format6") }, args) in
-          Some { core_type with ptyp_desc }
-      | _ -> assert false in
-    { type_decl with ptype_manifest }
-  | Lident "result" ->
-    { type_decl with ptype_manifest =
-      Some (core_type_of_desc
-        (Ptyp_constr
-           (loc_of_txt
-              (Longident.Ldot
-                 (Lident "Stdcompat__pervasives", "result")), []))) }
-  | Ldot (Lident "Hashtbl", "statistics") ->
-    { type_decl with ptype_manifest =
-      Some (core_type_of_desc
-        (Ptyp_constr
-           (loc_of_txt
-              (Longident.Ldot
-                 (Lident "Stdcompat__hashtbl_ext", "statistics")), []))) }
-  | Ldot (Lapply (Ldot (Lident "Hashtbl", "MakeSeeded"), Lident "H"), "t") ->
-    { type_decl with ptype_manifest =
-      Some (core_type_of_desc
-        (Ptyp_constr
-           (loc_of_txt
-              (Longident.Ldot
-                 (Lapply
-                    (Ldot
-                       (Lident "Stdcompat__hashtbl_ext", "MakeSeeded"),
-                     Lident "H"), "t")),
-            type_decl.ptype_params |> List.map fst))) }
-  | _ ->
-(*
-    match type_decl.ptype_manifest with
-    |  Some (
-      { ptyp_desc =
-        Parsetree.Ptyp_constr ({ loc; txt = Lident "bytes" }, args) }
-        as core_type) ->
-          let ptyp_desc =
-            Parsetree.Ptyp_constr
-            ({ loc;
-               txt = Ldot (Lident "Stdcompat__init", "bytes") }, args) in
-          let ptype_manifest = Some { core_type with ptyp_desc } in
-          { type_decl with ptype_manifest }
-    | _ ->*)
-    let ptype_params = remove_injectivity type_decl.ptype_params in
-    let ptype_manifest =
-      match type_decl.ptype_manifest with
-      | None -> None
-      | Some { ptyp_desc = Parsetree.Ptyp_constr ({ txt = Lident name }, _) }
-        when name = type_decl.ptype_name.txt -> None
-      | Some { ptyp_desc =
-          Parsetree.Ptyp_constr
-            ({ txt = Ldot (module_name', name) }, _) }
-        when name = type_decl.ptype_name.txt && module_name = module_name' ->
-          None
-      |  Some (
-        { ptyp_desc =
-          Parsetree.Ptyp_constr ({ loc; txt = Lident "bytes" }, args) }
-        as core_type) ->
-          let ptyp_desc =
-            Parsetree.Ptyp_constr
-            ({ loc;
-               txt = Ldot (Lident "Stdcompat__init", "bytes") }, args) in
-          Some { core_type with ptyp_desc }
-      | Some ptype_manifest ->
-          Some (compat_core_type ~module_name ptype_manifest) in
-    { type_decl with
-      ptype_params;
-      ptype_manifest;
-      ptype_kind = compat_type_kind ~module_name type_decl.ptype_kind
-    }
-
-let compat_prim ~version prim =
-  match prim with
-  | ["caml_create_string"] ->
-      if
-        Interface_tools.Version.compare version
-          { major = 3; minor = 8; patch = 0 } >= 0 then
-        ["caml_create_string"]
-      else
-        ["create_string"]
-  | ["%string_safe_set"]
-  | ["%string_unsafe_set"]
-  | ["%identity"] -> prim
-  | ["caml_blit_string"]
-  | ["caml_fill_string"] ->
-      if
-        Interface_tools.Version.compare version
-          { major = 3; minor = 8; patch = 0 } >= 0 then
-        prim @ ["noalloc"]
-      else
-        if prim = ["caml_blit_string"] then ["blit_string"; "noalloc"]
-        else ["fill_string"; "noalloc"]
-  | ["%raise_notrace"] -> ["%raise"]
-  | _ -> []
-
-let compat_value_description ~module_name ~version
-    (value_description : Parsetree.value_description) =
-  { value_description with
-    pval_prim = compat_prim ~version value_description.pval_prim;
-    pval_type = compat_core_type ~module_name value_description.pval_type;
-    pval_attributes = [];
-  }
-
-let rec compat_signature_item ~module_name ~reference_version ~version
-    (item : Parsetree.signature_item) =
-  match item.psig_desc with
-  | Psig_type (rec_flag, type_decl) ->
-      let type_decl =
-        type_decl |> List.map (compat_type_declaration ~module_name) in
-      let item =
-        { item with psig_desc = Parsetree.Psig_type (rec_flag, type_decl) } in
-      item
-  | Psig_value value_desc ->
-      let value_desc = compat_value_description ~module_name ~version value_desc in
-      { item with psig_desc = Psig_value value_desc}
-  | Psig_module module_declaration ->
-      let module_name =
-        Longident.Ldot (module_name, Option.get module_declaration.pmd_name.txt) in
-      let pmd_type =
-        module_declaration.pmd_type |>
-        compat_module_type ~module_name ~reference_version ~version in
-      { item with psig_desc = Psig_module { module_declaration with pmd_type }}
-  | Psig_modtype module_type_declaration ->
-      let pmtd_type =
-        module_type_declaration.pmtd_type |> Interface_tools.Option.map @@
-        compat_module_type ~module_name ~reference_version ~version in
-      { item with psig_desc =
-        Psig_modtype { module_type_declaration with pmtd_type }}
-  | _ ->
-      item
-
-and compat_module_type ~module_name ~reference_version ~version
-    (module_type : Parsetree.module_type) =
-  match module_type.pmty_desc with
-  | Pmty_ident
-      ({ txt = Ldot (Lident "Hashtbl", "SeededHashedType") } as longident) ->
-        let longident =
-          { longident with txt =
-            if module_name = Ldot (Lident "Hashtbl", "MakeSeeded") then
-              Longident.Lident "SeededHashedType"
-            else
-              Longident.Ldot
-                (Lident "Stdcompat__hashtbl", "SeededHashedType") } in
-        { module_type with pmty_desc = Pmty_ident longident }
-  | Pmty_signature signature ->
-      let signature =
-        List.map
-          (compat_signature_item ~module_name ~reference_version ~version)
-          signature in
-      { module_type with pmty_desc = Pmty_signature signature }
-  | Pmty_functor (Named (var, arg), body) ->
-      let arg =
-        Interface_tools.Option.map
-          (compat_module_type ~module_name ~reference_version ~version)
-          (Some arg) in
-      let module_name =
-        Longident.Lapply (module_name, Lident (Option.get var.txt)) in
-      let body =
-        compat_module_type ~module_name ~reference_version ~version body in
-      { module_type with pmty_desc = Pmty_functor (Named (var, Option.get arg), body) }
-  | Pmty_alias ident ->
-      compat_module_type ~module_name ~reference_version ~version
-        (module_type_of_name reference_version ident.txt)
-  | _ -> module_type
-
-(*
-      Pprintast.signature formatter [item]
-*)
-
-let rec make_version_range is_equal versions =
-  match versions with
-  | [] -> []
-  | (real, version, item) :: tail ->
-      match make_version_range is_equal tail with
-      | (real', version', item') :: tail
-        when real == real' && is_equal ~version item ~version' item' ->
-          (real', version', item') :: tail
-      | tail ->
-          (real, version, item) :: tail
-
-let is_prim_isomorphic kind p p' =
-  match kind with
-  | Ignore_attributes -> true
-  | Attributes_equal -> List.equal String.equal p p'
-
-let is_value_description_isomorphic kind
-    (value_desc : Parsetree.value_description)
-    (value_desc' : Parsetree.value_description) =
-  Name.equal value_desc.pval_name value_desc'.pval_name &&
-  is_core_type_isomorphic kind value_desc.pval_type value_desc'.pval_type &&
-  is_prim_isomorphic kind value_desc.pval_prim value_desc'.pval_prim &&
-  is_attributes_isomorphic kind value_desc.pval_attributes
-    value_desc'.pval_attributes
-
-let rec is_module_type_desc_isomorphic kind
-    ~version (module_type_desc : Parsetree.module_type_desc)
-    ~version' (module_type_desc' : Parsetree.module_type_desc) =
-  match module_type_desc, module_type_desc' with
-  | Pmty_ident ident, Pmty_ident ident' ->
-      ident.txt = ident'.txt
-  | Pmty_signature s, Pmty_signature s' ->
-      List.equal (is_signature_item_isomorphic kind ~version ~version') s s'
-  | Pmty_alias ident, Pmty_alias ident' ->
-      (kind = Ignore_attributes || ident.txt = ident'.txt) &&
-      is_module_type_isomorphic kind
-        ~version (module_type_of_name version ident.txt)
-        ~version' (module_type_of_name version ident'.txt)
-  | (Pmty_alias _, _ | _, Pmty_alias _) when kind = Attributes_equal ->
-      false
-  | Pmty_alias ident, _ ->
-      is_module_type_isomorphic kind
-        ~version (module_type_of_name version ident.txt)
-        ~version' (module_type_of_desc module_type_desc')
-  | _, Pmty_alias ident' ->
-      is_module_type_isomorphic kind
-        ~version (module_type_of_desc module_type_desc)
-        ~version' (module_type_of_name version ident'.txt)
-  | Pmty_functor (Named (x, arg), body), Pmty_functor (Named (x', arg'), body') ->
-      Option.get x.txt = Option.get x'.txt &&
-      Interface_tools.Option.equal
-        (is_module_type_isomorphic kind ~version ~version')
-        (Some arg) (Some arg') &&
-      is_module_type_isomorphic kind ~version body ~version' body'
-  | Pmty_with _, Pmty_with _ -> true
-  | Pmty_typeof _, Pmty_typeof _ -> true
-  | _ -> false
-
-and is_module_type_isomorphic kind
-    ~version (module_type : Parsetree.module_type)
-    ~version' (module_type' : Parsetree.module_type) =
-  is_module_type_desc_isomorphic kind ~version module_type.pmty_desc
-    ~version' module_type'.pmty_desc &&
-  is_attributes_isomorphic kind module_type.pmty_attributes
-    module_type'.pmty_attributes
-
-and is_module_declaration_isomorphic kind
-    ~version (module_declaration : Parsetree.module_declaration)
-    ~version' (module_declaration' : Parsetree.module_declaration) =
-  Option.get module_declaration.pmd_name.txt =
-  Option.get module_declaration'.pmd_name.txt &&
-  is_module_type_isomorphic kind ~version module_declaration.pmd_type
-    ~version' module_declaration'.pmd_type &&
-  is_attributes_isomorphic kind module_declaration.pmd_attributes
-    module_declaration'.pmd_attributes
-
-and is_module_type_declaration_isomorphic kind
-    ~version (module_type_declaration : Parsetree.module_type_declaration)
-    ~version'
-    (module_type_declaration' : Parsetree.module_type_declaration) =
-  Name.equal module_type_declaration.pmtd_name
-    module_type_declaration'.pmtd_name &&
-  Interface_tools.Option.equal
-    (is_module_type_isomorphic kind ~version ~version')
-    module_type_declaration.pmtd_type
-    module_type_declaration'.pmtd_type &&
-  is_attributes_isomorphic kind module_type_declaration.pmtd_attributes
-    module_type_declaration'.pmtd_attributes
-
-and is_extension_constructor_isomorphic kind ~version
-    (extension_constructor : Parsetree.extension_constructor)
-    ~version' (extension_constructor' : Parsetree.extension_constructor) =
-  extension_constructor.pext_name.txt = extension_constructor'.pext_name.txt
-
-and is_type_exception_isomorphic kind ~version
-    (type_exception : Parsetree.type_exception)
-    ~version' (type_exception' : Parsetree.type_exception) =
-  is_extension_constructor_isomorphic kind ~version
-    type_exception.ptyexn_constructor
-    ~version' type_exception'.ptyexn_constructor
-
-and is_signature_item_isomorphic kind
-    ~version (item : Parsetree.signature_item)
-    ~version' (item' : Parsetree.signature_item) =
-  match item.psig_desc, item'.psig_desc with
-  | Psig_type (rec_flag, type_decl), Psig_type (rec_flag', type_decl') ->
-      let block = { Type_declaration_block.rec_flag; type_decl } in
-      let block' =
-        { Type_declaration_block.rec_flag = rec_flag';
-          type_decl = type_decl' } in
-      Type_declaration_block.is_isomorphic kind block block'
-  | Psig_value value_desc, Psig_value value_desc' ->
-      is_value_description_isomorphic kind value_desc value_desc'
-  | Psig_module module_declaration, Psig_module module_declaration' ->
-      is_module_declaration_isomorphic kind
-        ~version module_declaration
-        ~version' module_declaration'
-  | Psig_modtype module_type_declaration,
-      Psig_modtype module_type_declaration' ->
-      is_module_type_declaration_isomorphic kind ~version
-          module_type_declaration
-        ~version' module_type_declaration'
-  | Psig_exception extension_constructor,
-        Psig_exception extension_constructor' ->
-      is_type_exception_isomorphic kind ~version
-            extension_constructor
-            ~version' extension_constructor'
-  | Psig_typext type_extension,
-          Psig_typext type_extension' ->
-            true
-  | _ ->
-      failwith "is_signature_item_isomorphic"
-
-let find_prim_opt version pval_name prim =
-  let modules : Longident.t list = [Lident "Pervasives"] in
-  let modules : Longident.t list =
-    if Interface_tools.Version.compare version
-        { major = 4; minor = 6; patch = 0 } >= 0 then
-      Ldot (Lident "Array", "Floatarray") :: modules
-    else
-      modules in
-  modules |> List.find_map @@
-  fun module_name ->
-    let externals = get_externals module_name version in
-    match StringHashtbl.find_opt externals prim with
-    | None -> None
-    | Some value_desc' ->
-        Some { value_desc' with pval_name }
-
-let rec fake_module_type ~module_name ~reference_version ~version
-    (module_type : Parsetree.module_type) =
-  match module_type.pmty_desc with
-  | Pmty_signature s ->
-      let s = s |> List.map @@
-        fake_signature_item ~module_name ~reference_version ~version in
-      { module_type with pmty_desc = Pmty_signature s }
-  | Pmty_functor (Named (var, arg), body) ->
-      let arg =
-        fake_module_type ~module_name ~reference_version ~version arg in
-      let body =
-        fake_module_type ~module_name ~reference_version ~version body in
-      { module_type with pmty_desc = Pmty_functor (Named (var, arg), body) }
-  | _ -> module_type
-
-and fake_signature_item ~module_name ~reference_version ~version
-    (item : Parsetree.signature_item) =
-  match item.psig_desc with
-  | Psig_value ({ pval_prim = prim :: _ } as value_desc) ->
-      begin
-        match find_prim_opt version value_desc.pval_name prim with
-        | None ->
-            compat_signature_item ~module_name ~reference_version ~version
-              { item with psig_desc =
-                Psig_value { value_desc with pval_prim = [] }}
-        | Some value_desc -> { item with psig_desc = Psig_value value_desc }
-      end
-  | _ -> compat_signature_item ~module_name ~reference_version ~version item
-
-let version_signature_item ~reference_version ~module_name ~signatures
-    (item : Parsetree.signature_item) =
-  match item.psig_desc with
-  | Psig_type (_rec_flag, type_decl) ->
-      let block = { Type_declaration_block.rec_flag = Recursive; type_decl } in
-      let first_type_name = Type_declaration_block.get_first_type_name block in
-      Some (signatures |>
-        List.map (fun (version, (s : Signature.t)) ->
-          let real, type_decl =
-            let block' = String.Map.find_opt first_type_name s.types in
-            match
-              if first_type_name = "lexbuf" then
-                block'
-              else
-              Interface_tools.Option.filter
-                (Type_declaration_block.is_isomorphic Ignore_attributes block)
-                block'
-            with
-            | None ->
-                false,
-                type_decl |> List.map @@ compat_type_declaration ~module_name
-            | Some block' ->
-                true,
-                block'.type_decl |>
-                List.map @@ qualify_type_decl ~module_name in
-              (real, version,
-               { item with psig_desc = Psig_type (Recursive, type_decl) })))
-  | Psig_value value_desc ->
-      Some (signatures |>
-        List.map (fun (version, (s : Signature.t)) ->
-          let real, value_desc' =
-            match
-              Interface_tools.Option.filter
-                (fun (real, value_desc') ->
-                  is_value_description_isomorphic Ignore_attributes value_desc
-                      value_desc') @@
-                match String.Map.find_opt value_desc.pval_name.txt s.values with
-                | None ->
-                    begin
-                      match value_desc.pval_prim with
-                      | [] -> None
-                      | prim :: _ ->
-                          match
-                            find_prim_opt version value_desc.pval_name prim
-                          with
-                          | None -> None
-                          | Some value_desc' -> Some (false, value_desc')
-                    end
-                | Some value_desc' -> Some (true, value_desc')
-            with
-            | Some (real, value_desc') -> real, value_desc'
-            | None ->
-                false,
-                compat_value_description ~module_name ~version value_desc in
-          real, version, { item with psig_desc = Psig_value value_desc' }))
-  | Psig_module module_declaration ->
-      Some (signatures |>
-        List.map (fun (version, (s : Signature.t)) ->
-          let real, module_declaration' =
-            match
-              match
-                String.Map.find_opt (Option.get module_declaration.pmd_name.txt) s.modules
-              with
-              | None -> None
-              | Some module_declaration' ->
-                  if is_module_declaration_isomorphic Ignore_attributes
-                      ~version:reference_version module_declaration
-                      ~version':version module_declaration' then
-                    let module_declaration' =
-                      if
-                        Interface_tools.Version.compare version
-                          { major = 4; minor = 2; patch = 0 } >= 0
-                      then
-                        { module_declaration with pmd_type = {
-                          pmty_desc =
-                          Pmty_alias
-                            { loc = Location.none; txt =
-                              Ldot
-                                (module_name,
-                                 (Option.get module_declaration.pmd_name.txt)) };
-                          pmty_loc = Location.none;
-                          pmty_attributes = [] }}
-                      else
-                        module_declaration' in
-                    Some (true, module_declaration')
-                  else
-                    None
-            with
-            | None ->
-                let pmd_type = fake_module_type
-                    ~module_name ~reference_version ~version
-                    module_declaration.pmd_type in
-                false, { module_declaration with pmd_type }
-            | Some (real, module_declaration')  -> real, module_declaration' in
-          real, version,
-          { item with psig_desc = Psig_module module_declaration' }))
-  | Psig_modtype module_type_declaration ->
-      Some (signatures |>
-        List.map (fun (version, (s : Signature.t)) ->
-          let real, module_type_declaration' =
-            match
-              String.Map.find_opt
-                module_type_declaration.pmtd_name.txt s.module_types with
-            | Some module_type_declaration' when
-                is_module_type_declaration_isomorphic Ignore_attributes
-                  ~version:reference_version module_type_declaration
-                  ~version':version module_type_declaration' ->
-                    true, module_type_declaration'
-            | _ ->
-                let pmtd_type = module_type_declaration.pmtd_type |>
-                  Interface_tools.Option.map @@ compat_module_type ~module_name
-                    ~reference_version ~version in
-                let module_type_declaration' =
-                  { module_type_declaration with pmtd_type } in
-                false, module_type_declaration' in
-          real, version,
-          { item with psig_desc = Psig_modtype module_type_declaration' }))
-  | Psig_exception extension_constructor ->
-      Some ([true, reference_version, item])
-  | _ ->
-      None
-
-let rec last_real_version versions =
-  match versions with
-  | [] | [None, _, _] -> assert false
-  | [Some version, _, item]
-  | (Some version, _, item) :: (None, _, _) :: _ -> version, item
-  | _ :: tail -> last_real_version tail
-
-let compare_versioned_signature versions versions' =
-  try
-    let version, (item : Parsetree.signature_item) =
-      last_real_version versions in
-    let version', (item' : Parsetree.signature_item) =
-      last_real_version versions' in
-    match item.psig_desc, item'.psig_desc with
-    | Psig_value _, Psig_value _ ->
-        - Interface_tools.Version.compare version version'
-    | _, Psig_value _ -> -1
-    | Psig_value _, _ -> 1
-    | _ -> 0
-  with _ ->
-    prerr_endline "EMPTY!";
-    0
-
-let value_item (item : Parsetree.signature_item) =
-  match item.psig_desc with
-  | Psig_value _ -> true
-  | _ -> false
-
-let rec consume_similar_versions last_real_version version item versions =
-  match versions with
-  | (real', version', item') :: tail when
-        is_signature_item_isomorphic Attributes_equal
-          ~version item ~version' item'
-        && ((last_real_version <> None) = real' || value_item item) ->
-      let last_real_version =
-        if real' then Some version'
-        else last_real_version in
-      consume_similar_versions last_real_version version' item tail
-  | tail -> (last_real_version, version, item), tail
-
-let rec gather_similar_versions versions =
-  match versions with
-  | [] -> []
-  | (real, version, item) :: tail ->
-      let last_real_version =
-        if real then Some version
-        else None in
-      let head', tail' =
-        consume_similar_versions last_real_version version item tail in
-      head' :: (gather_similar_versions tail')
-
-let type_of_desc ptyp_desc : Parsetree.core_type =
-  Ast_helper.Typ.mk ptyp_desc
-
-let format_block block sub formatter item =
-  Format.fprintf formatter "\
-    @@BEGIN_%s@@@.\
-    %a@.\
-    @@END_%s@@@.\
-  " block sub item block
-
-let format_block_prefix prefix block sub formatter item =
-  format_block (prefix ^ "_" ^ block) sub formatter item
-
-let format_with block = format_block_prefix "WITH" block
-
-let format_without block = format_block_prefix "WITHOUT" block
-
-let format_ver prefix ver =
-  format_block_prefix prefix (Interface_tools.Version.to_string ~sep:"_" ver)
-
-let format_before ver = format_ver "BEFORE" ver
-
-let format_from ver = format_ver "FROM" ver
-
-let format_without block sub formatter item =
-  format_block ("WITHOUT_" ^ block) sub formatter item
-
-let format_with_without block sub formatter item_with item_without =
-  format_with block sub formatter item_with;
-  format_without block sub formatter item_without
-
-let format_from_before ver formatter sub_from item_from sub_before item_before =
-  format_from ver sub_from formatter item_from;
-  format_before ver sub_before formatter item_before
-
-let attributed_decl (decl : Parsetree.type_declaration) =
-  decl.ptype_attributes <> []
-
-let gadt_decl (decl : Parsetree.type_declaration) =
-  match decl.ptype_kind with
-  | Ptype_variant constructors ->
-      List.exists (fun (constructor : Parsetree.constructor_declaration) ->
-        constructor.pcd_res <> None) constructors
-  | _ -> false
-
-let remove_gadt (decl : Parsetree.type_declaration) =
-  match decl.ptype_kind with
-  | Ptype_variant constructors ->
-      let constructors =
-        List.map (fun (constructor : Parsetree.constructor_declaration) ->
-          { constructor with pcd_res = None }) constructors in
-      { decl with ptype_kind = Ptype_variant constructors }
-  | _ -> decl
-
-(*
-let make_rebind ~module_name (constructor : Parsetree.extension_constructor) =
-  { constructor with pext_kind =
-    Pext_rebind { loc = Location.none;
-      txt = Longident.Ldot (module_name, constructor.pext_name.txt)}}
-*)
-
-let has_injective_param (decl : Parsetree.type_declaration) =
-  List.exists (fun (_, (_, i)) -> i = Asttypes.Injective) decl.ptype_params
-
-let remove_injective_param (decl : Parsetree.type_declaration) =
-  { decl with ptype_params = remove_injectivity decl.ptype_params }
-
-let remove_attributes (decl : Parsetree.type_declaration) =
-  { decl with ptype_attributes = [] }
-
-let is_private (decl : Parsetree.type_declaration) =
-  decl.ptype_private = Private
-
-let make_public (decl : Parsetree.type_declaration) =
-  { decl with ptype_private = Public }
-
-let rec format_sig_type formatter
-      ((recursive : Asttypes.rec_flag),
-        (decls : Parsetree.type_declaration list)) =
-  if List.exists has_injective_param decls then
-    begin
-      let decls' = List.map remove_injective_param decls in
-      format_from_before (Interface_tools.Version.mk 4 12 0) formatter
-        Pprintast.signature [Ast_helper.Sig.type_ recursive decls]
-        format_sig_type (recursive, decls')
-    end
-  else if List.exists attributed_decl decls then
-    begin
-      let decls' = List.map remove_attributes decls in
-      format_from_before (Interface_tools.Version.mk 4 02 0) formatter
-        Pprintast.signature [Ast_helper.Sig.type_ recursive decls]
-        format_sig_type (recursive, decls')
-    end
-  else if List.exists gadt_decl decls then
-    begin
-      let decls' = List.map remove_gadt decls in
-      format_from_before (Interface_tools.Version.mk 4 00 0) formatter
-        Pprintast.signature [Ast_helper.Sig.type_ recursive decls]
-        format_sig_type (recursive, decls')
-    end
-  else if List.exists is_private decls then
-    begin
-      let decls' = List.map make_public decls in
-      format_from_before (Interface_tools.Version.mk 3 11 0) formatter
-        Pprintast.signature [Ast_helper.Sig.type_ recursive decls]
-        format_sig_type (recursive, decls')
-    end
-  else
-    Pprintast.signature formatter [Ast_helper.Sig.type_ recursive decls]
-
-let rec format_default_item ~module_name formatter
-    (item : Parsetree.signature_item) =
-  match item.psig_desc with
-  | Psig_type (rec_flag, [{ ptype_name = { txt = "result" }} as type_decl]) ->
-      let ptyp_desc = Parsetree.Ptyp_constr (
-        { txt = Ldot (Lident "Result", "result"); loc = Location.none },
-        [type_of_desc (Ptyp_var "a"); type_of_desc (Ptyp_var "b")]) in
-      let manifest = type_of_desc ptyp_desc in
-      let type_decl' = { type_decl with ptype_manifest = Some manifest } in
-      format_with_without "UCHAR_PKG" format_sig_type formatter
-        (rec_flag, [type_decl']) (rec_flag, [type_decl])
-  | Psig_type (rec_flag, [{ ptype_name = { txt = "t" }} as type_decl])
-      when module_name = Longident.Lident "Uchar" ->
-      let ptyp_desc = Parsetree.Ptyp_constr (
-        { txt = Ldot (Lident "Uchar", "t"); loc = Location.none },
-        []) in
-      let manifest = type_of_desc ptyp_desc in
-      let type_decl' = { type_decl with ptype_manifest = Some manifest } in
-      format_with_without "UCHAR_PKG" format_sig_type formatter
-        (rec_flag, [type_decl']) (rec_flag, [type_decl])
-  | Psig_type (rec_flag, [{ ptype_name = { txt = "t" }} as type_decl])
-      when module_name = Longident.Lident "Either" ->
-      let ptyp_desc = Parsetree.Ptyp_constr (
-        { txt = Ldot (Lident "Stdcompat__init", "either"); loc = Location.none },
-        List.map fst type_decl.ptype_params) in
-      let manifest = type_of_desc ptyp_desc in
-      let type_decl = { type_decl with ptype_manifest = Some manifest } in
-      let psig_desc = Parsetree.Psig_type (rec_flag, [type_decl]) in
-      let result_item = { item with psig_desc } in
-      Pprintast.signature formatter [result_item]
-  | Psig_type (_, _)
-      when module_name = Longident.Lident "List" || module_name = Longident.Lident "ListLabels" ->
-      Format.fprintf formatter "\
-@@BEGIN_FROM_4_03_0@@
-type 'a t = 'a list =
-  | []
-  | (::) of 'a * 'a list
-@@END_FROM_4_03_0@@
-@@BEGIN_BEFORE_4_03_0@@
-type 'a t = 'a list
-@@END_BEFORE_4_03_0@@"
-  | Psig_type (_, _)
-      when module_name = Longident.Lident "Seq" ->
-      Format.fprintf formatter "\
-type 'a t = unit -> 'a node
-and 'a node = 'a Stdcompat__init.seq_node =
-  | Nil
-  | Cons of 'a * 'a t"
-  | Psig_type (_, [{ ptype_name = { txt }; ptype_manifest = Some t; ptype_kind = Ptype_open }]) ->
-      Format.fprintf formatter "\
-@@BEGIN_FROM_4_02_0@@
-type %s = %a = ..
-@@END_FROM_4_02_0@@
-@@BEGIN_BEFORE_4_02_0@@
-type %s = %a
-@@END_BEFORE_4_02_0@@" txt Pprintast.core_type t txt Pprintast.core_type t
-  | Psig_type (_, [{ ptype_name = { txt }; ptype_kind = Ptype_open }]) ->
-      Format.fprintf formatter "\
-@@BEGIN_FROM_4_02_0@@
-type %s = ..
-@@END_FROM_4_02_0@@
-@@BEGIN_BEFORE_4_02_0@@
-type %s
-@@END_BEFORE_4_02_0@@" txt txt
-  | Psig_type (recursive, decls) ->
-      format_sig_type formatter (recursive, decls)
-  | Psig_value { pval_name = { txt = "ifprintf"; _ }; _ } when module_name = Lident "Printf" ->
-      Format.fprintf formatter "\
-@@BEGIN_FROM_4_03_0@@
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-(** @@since 4.03.0: val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a *)
-@@END_FROM_4_03_0@@
-@@BEGIN_BEFORE_4_03_0@@
-@@BEGIN_FROM_3_10_0@@
-val ifprintf : 'b -> ('a, 'b, unit) format -> 'a
-@@END_FROM_3_10_0@@
-@@BEGIN_BEFORE_3_10_0@@
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-@@END_BEFORE_3_10_0@@
-@@END_BEFORE_4_03_0@@"
-  | Psig_value { pval_name = { txt = "ikfprintf"; _ }; _ } when module_name = Lident "Printf" ->
-      Format.fprintf formatter "\
-@@BEGIN_FROM_4_03_0@@
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-(** @@since 4.03.0: val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a *)
-@@END_FROM_4_03_0@@
-@@BEGIN_BEFORE_4_03_0@@
-@@BEGIN_FROM_4_01_0@@
-val ikfprintf :
-    (out_channel -> 'a) ->
-      out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-@@END_FROM_4_01_0@@
-@@BEGIN_BEFORE_4_01_0@@
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-@@END_BEFORE_4_01_0@@
-@@END_BEFORE_4_03_0@@"
-  | Psig_module module_declaration when match module_declaration.pmd_type.pmty_desc with Pmty_alias _ -> false | _ -> true ->
-      Format.fprintf formatter "@[module %s :@ @[%a@]@]"
-        (Option.get module_declaration.pmd_name.txt)
-        (format_default_module_type ~module_name) module_declaration.pmd_type
-  | Psig_modtype module_type_declaration ->
-      Format.fprintf formatter "@[module type %s =@ @[%a@]@]"
-        module_type_declaration.pmtd_name.txt
-        (format_default_module_type ~module_name)
-        (Option.get module_type_declaration.pmtd_type)
-(*
-  | Psig_typext type_extension ->
-      let type_extension = { type_extension with
-        ptyext_constructors =
-          List.map (make_rebind ~module_name)
-            type_extension.ptyext_constructors } in
-      Format.fprintf formatter "%a" Pprintast.signature
-        [{ item with psig_desc = Psig_typext type_extension }]
-  | Psig_exception type_exception ->
-      let type_exception = { type_exception with
-        ptyexn_constructor = make_rebind ~module_name
-            type_exception.ptyexn_constructor } in
-      Format.fprintf formatter "%a" Pprintast.signature
-        [{ item with psig_desc = Psig_exception type_exception }]
-*)
-  | _ ->
-      Format.fprintf formatter "%a" Pprintast.signature [item]
-
-and format_default_module_type ~module_name formatter
-      (module_type : Parsetree.module_type) =
-  match module_type.pmty_desc with
-  | Pmty_ident ident ->
-      Format.fprintf formatter "%s" (string_of_longident ident.txt)
-  | Pmty_signature signature ->
-      Format.fprintf formatter "@[sig@ %a@ end@]"
-        (Format.pp_print_list ~pp_sep:Format.pp_print_space
-           (format_default_item ~module_name)) signature
-  | Pmty_functor (Named (var, arg), body) ->
-      Format.fprintf formatter "@[functor (%s : %a) ->@ %a@]"
-        (Option.get var.txt) (format_default_module_type ~module_name) arg
-        (format_default_module_type ~module_name) body
-  | _ ->
-      failwith "Not implemented"
-
-let item_name module_name (item : Parsetree.signature_item) =
-  let name =
-    match item.psig_desc with
-    | Psig_type (rec_flag, type_decl :: _) ->
-        type_decl.ptype_name.txt
-    | Psig_value value_desc ->
-        value_desc.pval_name.txt
-    | Psig_module module_declaration ->
-        Option.get module_declaration.pmd_name.txt
-    | Psig_modtype module_type_declaration ->
-        module_type_declaration.pmtd_name.txt
-    | Psig_exception extension_constructor ->
-        extension_constructor.ptyexn_constructor.pext_name.txt
-    | _ -> assert false in
-  Printf.sprintf "%s.%s" (string_of_longident module_name) name
-
-let add_self_type_manifest_to_type_decl ~(module_name : Longident.t)
-    (type_decl : Parsetree.type_declaration) =
-  match type_decl.ptype_manifest with
-  | None ->
-      let module_name : Longident.t =
-        match module_name with
-        | Lapply (Ldot (Lident "Hashtbl", "MakeSeeded"), Lident "H") ->
-            Lapply (Ldot (Lident "Stdcompat__hashtbl_ext", "MakeSeeded"),
-              Lident "H")
-        | _ -> module_name in
-      { type_decl with ptype_manifest =
-        let params = type_decl.ptype_params |> List.map fst in
-        Some (Ast_helper.Typ.constr
-          ({ loc = Location.none; txt =
-            Ldot (module_name, type_decl.ptype_name.txt) }) params)}
-  | Some manifest -> type_decl
-
-let rec add_self_type_manifest ~module_name (item : Parsetree.signature_item) =
-  match item.psig_desc with
-  | Psig_type (rec_flag, type_decl_list) ->
-      let type_decl_list = type_decl_list |>
-        List.map (add_self_type_manifest_to_type_decl ~module_name) in
-      { item with psig_desc = Psig_type (rec_flag, type_decl_list) }
-  | Psig_value _ | Psig_modtype _ | Psig_exception _ -> item
-  | Psig_module module_declaration ->
-      let module_name : Longident.t =
-        Ldot (module_name, Option.get module_declaration.pmd_name.txt) in
-      { item with psig_desc = Psig_module { module_declaration with
-        pmd_type = module_declaration.pmd_type |>
-          (add_self_type_manifest_to_module_type ~module_name) }}
-(*  | Psig_modtype module_type_declaration ->
-      { item with psig_desc = Psig_modtype { module_type_declaration with
-        pmtd_type = module_type_declaration.pmtd_type |>
-          Option.map (add_self_type_manifest_to_module_type ~module_name) }} *)
-  | _ -> assert false
-
-and add_self_type_manifest_to_module_type ~module_name
-    (module_type : Parsetree.module_type) =
-  match module_type.pmty_desc with
-  | Pmty_signature signature ->
-      let signature = signature |>
-        List.map (add_self_type_manifest ~module_name) in
-      { module_type with pmty_desc = Pmty_signature signature }
-  | Pmty_functor (Named (var, arg), body) ->
-(*
-      let arg = arg |> Option.map
-        (add_self_type_manifest_to_module_type ~module_name) in
-*)
-      let module_name : Longident.t =
-        Lapply (module_name, Lident (Option.get var.txt)) in
-      let body = body |> add_self_type_manifest_to_module_type ~module_name in
-      { module_type with pmty_desc = Pmty_functor (Named (var, arg), body) }
-  | Pmty_with (ty, cstr) ->
-      { module_type with pmty_desc =
-        Pmty_with
-          (add_self_type_manifest_to_module_type ~module_name ty, cstr) }
-  | _ -> module_type
-
-let print_signature_item ~(module_name : Longident.t) real formatter
-    (item : Parsetree.signature_item) =
-  if real <> None || module_name = Lident "Hashtbl"
-   || module_name = Lident "Set"
-   || module_name = Lident "Map"
-   || module_name = Lident "Weak" then
-    let self_item = add_self_type_manifest ~module_name item in
-    format_default_item ~module_name formatter self_item
-  else
-    format_default_item ~module_name formatter item
-
-let format_versioned_signature ~module_name ~version_high ~version_low
-    ~reference_version formatter versions =
-  match versions with
-  | [] ->
-      assert false
-  | [real, last_version, item] ->
-      Format.fprintf formatter "%a@." (print_signature_item ~module_name real)
-        item;
-      let item_name = item_name module_name item in
-      begin
-        match real with
-        | None -> ()
-        | Some real_version ->
-            if Interface_tools.Version.equal real_version last_version then
-              Format.fprintf formatter "(** Alias for {!%s} *)@.@." item_name
-            else
-              Format.fprintf formatter "(** @[@since %s:@ %a@] *)@.@."
-                (Interface_tools.Version.to_string real_version)
-                Pprintast.signature [item]
-      end
-  | (real, last_version, item) :: next :: tail ->
-      format_from last_version (print_signature_item ~module_name real)
-        formatter item;
-      let rec format_tail version next tail =
-        let format formatter tail =
-          let (real, last_version, item) = next in
-          match tail with
-          | [] ->
-              Format.fprintf formatter "%a"
-                (print_signature_item ~module_name real) item
-          | next :: tail ->
-              format_from last_version
-                (print_signature_item ~module_name real) formatter item;
-              format_tail last_version next tail in
-        format_before version format formatter tail in
-      format_tail last_version next tail;
-      let format_doc formatter versions =
-        let format_doc_version (real, _version, item) =
-          match real with
-          | None -> ()
-          | Some real_version ->
-            Format.fprintf formatter "@[@since %s:@ %a@]@."
-              (Interface_tools.Version.to_string real_version)
-              Pprintast.signature [item] in
-        List.iter format_doc_version versions in
-      Format.fprintf formatter "(** @[<v>%a@] *)@.@." format_doc versions
-
-let main argv =
-  let arg_list = Array.to_list Sys.argv in
-  let module_name, versions =
-    match arg_list with
-    | _ :: module_name :: versions ->
-        module_name, versions
-    | [] | [_] -> failwith "No argument given" in
-  let module_name = Longident.Lident module_name in
-  let signatures =
-    versions |> List.map @@ fun version ->
-      let version = Interface_tools.Version.of_string version in
-      let signature = module_type_of_name version module_name |>
-        signature_of_module_type in
-      version, signature in
-  let reference_version, reference_signature =
-    match signatures with
-    | first :: _ -> first
-    | _ -> failwith "No reference version" in
-  let signatures = signatures |> List.map @@ fun (version, s) ->
-    version, Signature.of_parsetree s in
-  let versioned_signature =
-    reference_signature |> List.filter_map @@
-      version_signature_item ~reference_version
-        ~module_name ~signatures in
-  let version_high, _ = List.hd signatures in
-  let version_low, _ = List.last signatures in
-  print_endline "module type S = sig";
-  versioned_signature |>
-    List.map gather_similar_versions |>
-    List.sort compare_versioned_signature |>
-    List.iter @@
-      format_versioned_signature ~module_name
-      ~version_high ~version_low
-      ~reference_version
-      Format.std_formatter;
-  print_endline "end"
-(*
-  let mli_filenames = argv |> Array.to_list |> List.tl in
-  let signatures = mli_filenames |> List.map read_interface in
-  let main_signature, other_signatures =
-    match signatures with
-    | [] -> failwith "No mli file given"
-    | main_signature :: other_signatures ->
-        main_signature, other_signatures in
-  main_signature |> List.iter @@ format_signature_item Format.std_formatter
-*)
-
-let () =
-  if not !Sys.interactive then
-    try
-      Sys.argv |> main
-    with e ->
-      prerr_endline (Printexc.to_string e);
-      Printexc.print_backtrace stderr;
-      exit 1
diff --git a/interface_generator/interface_generator.mli b/interface_generator/interface_generator.mli
deleted file mode 100644
index e69de29..0000000
diff --git a/interface_generator/interface_tools.ml b/interface_generator/interface_tools.ml
deleted file mode 100644
index 49ca303..0000000
--- a/interface_generator/interface_tools.ml
+++ /dev/null
@@ -1,148 +0,0 @@
-module Option = struct
-  type 'a t = 'a option
-
-  let map f o =
-    match o with
-    | None -> None
-    | Some x -> Some (f x)
-
-  let equal p o o' =
-    match o, o' with
-    | None, None -> true
-    | Some x, Some y -> p x y
-    | Some _, None
-    | None, Some _ -> false
-
-  let exists p o =
-    match o with
-    | None -> false
-    | Some x -> p x
-
-  let some x = Some x
-
-  let iter f o =
-    match o with
-    | None -> ()
-    | Some x -> f x
-
-  let filter p o =
-    match o with
-    | Some x when p x -> o
-    | None | Some _ -> None
-end
-
-module Version = struct
-  type t = {
-      major : int;
-      minor : int;
-      patch : int;
-    }
-
-  let mk major minor patch =
-    { major; minor; patch }
-
-  let compare (v : t) (v' : t) =
-    compare v v'
-
-  let equal (v : t) (v' : t) =
-    v = v'
-
-  let hash (v : t) =
-    Hashtbl.hash v
-
-  let of_string version_line =
-    let index =
-      match String.rindex version_line ' ' with
-      | space_index -> space_index + 1
-      | exception Not_found -> 0 in
-    let version =
-      String.sub version_line index (String.length version_line - index) in
-    let major, minor =
-      match String.split_on_char '.' version with
-      | [major; minor; _patch] -> major, minor
-      | _ -> assert false in
-    { major = int_of_string major;
-      minor = int_of_string minor;
-      patch = 0; }
-
-(*
-  let of_command_line command_line =
-    let version_command_line = Printf.sprintf "%s -version" command_line in
-    let in_channel = Unix.open_process_in version_command_line in
-    let version_line =
-      try_close
-        ~close:(fun () ->
-          assert (in_channel |> Unix.close_process_in = Unix.WEXITED 0))
-      @@ fun () -> input_line in_channel in
-    of_version_line version_line
-*)
-
-  let to_string ?(sep = ".") ?(include_patch = true) { major; minor; patch } =
-    if include_patch then
-      Printf.sprintf "%d%s%.2d%s%d" major sep minor sep patch
-    else
-      Printf.sprintf "%d%s%.2d" major sep minor
-end
-
-let signature_of_in_channel ?filename in_channel =
-  let lexbuf = in_channel |> Lexing.from_channel in
-  filename |> Option.iter (Lexing.set_filename lexbuf);
-  lexbuf |> Parse.interface
-
-(*
-module Interpreter = struct
-  type t = {
-      command_line : string;
-      version : Version.t;
-    }
-
-  let of_command_line command_line =
-    let version = Version.of_command_line command_line in
-    { command_line; version }
-end
-*)
-
-module Buffer = struct
-  include Buffer
-
-  let add_channel_no_wait buffer in_channel size =
-    let bytes = Bytes.create size in
-    let read = input in_channel bytes 0 size in
-    Buffer.add_subbytes buffer bytes 0 read;
-    read
-
-  let add_channel_to_the_end ?(chunk_size = 4096) ?(continue = fun () -> true)
-      buffer in_channel =
-    while
-      add_channel_no_wait buffer in_channel chunk_size <> 0 && continue () do
-      ()
-    done
-
-  let suffix_of_length buffer len =
-    sub buffer (length buffer - len) len
-
-  let has_suffix buffer suffix =
-    length buffer >= String.length suffix &&
-    suffix_of_length buffer (String.length suffix) = suffix
-end
-
-module String = struct
-  include String
-
-  let suffix_of_length s len =
-    sub s (length s - len) len
-
-  let has_suffix s ~suffix =
-    length s >= length suffix &&
-    suffix_of_length s (length suffix) = suffix
-
-  let prefix_of_length s len =
-    sub s 0 len
-
-  let has_prefix s ~prefix =
-    length s >= length prefix &&
-    prefix_of_length s (length prefix) = prefix
-
-  let suffix_from s pos =
-    sub s pos (length s - pos)
-end
diff --git a/interface_generator/interface_tools.mli b/interface_generator/interface_tools.mli
deleted file mode 100644
index 4d87f31..0000000
--- a/interface_generator/interface_tools.mli
+++ /dev/null
@@ -1,80 +0,0 @@
-module Option : sig
-  type 'a t = 'a option
-
-  val map : ('a -> 'b) -> 'a option -> 'b option
-
-  val equal : ('a -> 'b -> bool) -> 'a option -> 'b option -> bool
-
-  val exists : ('a -> bool) -> 'a option -> bool
-
-  val some : 'a -> 'a option
-
-  val iter : ('a -> unit) -> 'a option -> unit
-
-  val filter : ('a -> bool) -> 'a option -> 'a option
-end
-
-module Version : sig
-  type t = {
-      major : int;
-      minor : int;
-      patch : int;
-    }
-
-  val mk : int -> int -> int -> t
-
-  val compare : t -> t -> int
-
-  val equal : t -> t -> bool
-
-  val hash : t -> int
-
-  val of_string : string -> t
-
-(*
-  val of_command_line : string -> t
-*)
-
-  val to_string : ?sep:string -> ?include_patch:bool -> t -> string
-end
-
-val signature_of_in_channel :
-    ?filename:string -> in_channel -> Parsetree.signature
-
-(*
-module Interpreter : sig
-  type t = {
-      command_line : string;
-      version : Version.t;
-    }
-
-  val of_command_line : string -> t
-end
-*)
-
-module Buffer : sig
-  include module type of (struct include Buffer end)
-
-  val add_channel_no_wait : Buffer.t -> in_channel -> int -> int
-
-  val add_channel_to_the_end : ?chunk_size:int -> ?continue:(unit -> bool) ->
-    Buffer.t -> in_channel -> unit
-
-  val suffix_of_length : Buffer.t -> int -> string
-
-  val has_suffix : Buffer.t -> string -> bool
-end
-
-module String : sig
-  include module type of (struct include String end)
-
-  val suffix_of_length : string -> int -> string
-
-  val has_suffix : string -> suffix:string -> bool
-
-  val prefix_of_length : string -> int -> string
-
-  val has_prefix : string -> prefix:string -> bool
-
-  val suffix_from : string -> int -> string
-end
diff --git a/interfaces/3.07/arg.mli b/interfaces/3.07/arg.mli
deleted file mode 100644
index 41de511..0000000
--- a/interfaces/3.07/arg.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-and key = string
-and doc = string
-and usage_msg = string
-and anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val current : int ref
diff --git a/interfaces/3.07/array.mli b/interfaces/3.07/array.mli
deleted file mode 100644
index 7c3bfd6..0000000
--- a/interfaces/3.07/array.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "make_vect"
-external create : int -> 'a -> 'a array = "make_vect"
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a array -> 'b -> 'b
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.07/arrayLabels.mli b/interfaces/3.07/arrayLabels.mli
deleted file mode 100644
index 48db6f1..0000000
--- a/interfaces/3.07/arrayLabels.mli
+++ /dev/null
@@ -1,29 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "make_vect"
-external create : int -> 'a -> 'a array = "make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.07/buffer.mli b/interfaces/3.07/buffer.mli
deleted file mode 100644
index 3bd506c..0000000
--- a/interfaces/3.07/buffer.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/3.07/callback.mli b/interfaces/3.07/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/3.07/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/3.07/char.mli b/interfaces/3.07/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/3.07/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/3.07/complex.mli b/interfaces/3.07/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/3.07/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/3.07/digest.mli b/interfaces/3.07/digest.mli
deleted file mode 100644
index 718ef0f..0000000
--- a/interfaces/3.07/digest.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type t = string
-val string : string -> t
-val substring : string -> int -> int -> t
-external channel : in_channel -> int -> t = "md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
diff --git a/interfaces/3.07/filename.mli b/interfaces/3.07/filename.mli
deleted file mode 100644
index 4ef0198..0000000
--- a/interfaces/3.07/filename.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list -> string -> string -> (string * out_channel)
-val quote : string -> string
diff --git a/interfaces/3.07/format.mli b/interfaces/3.07/format.mli
deleted file mode 100644
index d1e2b3b..0000000
--- a/interfaces/3.07/format.mli
+++ /dev/null
@@ -1,137 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
diff --git a/interfaces/3.07/gc.mli b/interfaces/3.07/gc.mli
deleted file mode 100644
index 67741f6..0000000
--- a/interfaces/3.07/gc.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int }
-and control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int }
-external stat : unit -> stat = "gc_stat"
-external counters : unit -> (float * float * float) = "gc_counters"
-external get : unit -> control = "gc_get"
-external set : control -> unit = "gc_set"
-external minor : unit -> unit = "gc_minor"
-external major_slice : int -> int = "gc_major_slice"
-external major : unit -> unit = "gc_major"
-external full_major : unit -> unit = "gc_full_major"
-external compact : unit -> unit = "gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/3.07/genlex.mli b/interfaces/3.07/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/3.07/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/3.07/hashtbl.mli b/interfaces/3.07/hashtbl.mli
deleted file mode 100644
index 848dc0c..0000000
--- a/interfaces/3.07/hashtbl.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-type ('a, 'b) t
-val create : int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    and 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    and 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-  end
-val hash : 'a -> int
-external hash_param : int -> int -> 'a -> int = "hash_univ_param" "noalloc"
diff --git a/interfaces/3.07/int32.mli b/interfaces/3.07/int32.mli
deleted file mode 100644
index 3b0cb63..0000000
--- a/interfaces/3.07/int32.mli
+++ /dev/null
@@ -1,30 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "int32_of_float"
-external to_float : int32 -> float = "int32_to_float"
-external of_string : string -> int32 = "int32_of_string"
-val to_string : int32 -> string
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "int32_format"
diff --git a/interfaces/3.07/int64.mli b/interfaces/3.07/int64.mli
deleted file mode 100644
index 96b92cd..0000000
--- a/interfaces/3.07/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "int64_of_float"
-external to_float : int64 -> float = "int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "int64_bits_of_float"
-external float_of_bits : int64 -> float = "int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "int64_format"
diff --git a/interfaces/3.07/lazy.mli b/interfaces/3.07/lazy.mli
deleted file mode 100644
index a6e4008..0000000
--- a/interfaces/3.07/lazy.mli
+++ /dev/null
@@ -1,7 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-val force : 'a t -> 'a
-val force_val : 'a t -> 'a
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/3.07/lexing.mli b/interfaces/3.07/lexing.mli
deleted file mode 100644
index f625043..0000000
--- a/interfaces/3.07/lexing.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: string ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (string -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/3.07/list.mli b/interfaces/3.07/list.mli
deleted file mode 100644
index d5492a1..0000000
--- a/interfaces/3.07/list.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.07/listLabels.mli b/interfaces/3.07/listLabels.mli
deleted file mode 100644
index 675ffcd..0000000
--- a/interfaces/3.07/listLabels.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.07/map.mli b/interfaces/3.07/map.mli
deleted file mode 100644
index 2404235..0000000
--- a/interfaces/3.07/map.mli
+++ /dev/null
@@ -1,30 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    and +'a t
-    val empty : 'a t
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    and 'a t
-    val empty : 'a t
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-  end
diff --git a/interfaces/3.07/marshal.mli b/interfaces/3.07/marshal.mli
deleted file mode 100644
index e680ed9..0000000
--- a/interfaces/3.07/marshal.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_string :
-  'a -> extern_flags list -> string = "output_value_to_string"
-val to_buffer : string -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : string -> int -> int
-val total_size : string -> int -> int
diff --git a/interfaces/3.07/moreLabels.mli b/interfaces/3.07/moreLabels.mli
deleted file mode 100644
index 824095e..0000000
--- a/interfaces/3.07/moreLabels.mli
+++ /dev/null
@@ -1,145 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  module type HashedType  = Hashtbl.HashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-    end
-  val hash : 'a -> int
-  external hash_param : int -> int -> 'a -> int = "hash_univ_param" "noalloc"
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t
-      val empty : 'a t
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-    end
-end
diff --git a/interfaces/3.07/nativeint.mli b/interfaces/3.07/nativeint.mli
deleted file mode 100644
index 737d6f5..0000000
--- a/interfaces/3.07/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "nativeint_of_float"
-external to_float : nativeint -> float = "nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "nativeint_format"
diff --git a/interfaces/3.07/obj.mli b/interfaces/3.07/obj.mli
deleted file mode 100644
index 9b2efbf..0000000
--- a/interfaces/3.07/obj.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "obj_tag"
-external set_tag : t -> int -> unit = "obj_set_tag"
-external size : t -> int = "%obj_size"
-external truncate : t -> int -> unit = "obj_truncate"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external new_block : int -> int -> t = "obj_block"
-external dup : t -> t = "obj_dup"
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val marshal : t -> string
-val unmarshal : string -> int -> (t * int)
diff --git a/interfaces/3.07/oo.mli b/interfaces/3.07/oo.mli
deleted file mode 100644
index 75fb715..0000000
--- a/interfaces/3.07/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.label
-val public_method_label : string -> CamlinternalOO.label
diff --git a/interfaces/3.07/parsing.mli b/interfaces/3.07/parsing.mli
deleted file mode 100644
index 723f906..0000000
--- a/interfaces/3.07/parsing.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-type parser_env
-and parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/3.07/pervasives.mli b/interfaces/3.07/pervasives.mli
deleted file mode 100644
index ca7b172..0000000
--- a/interfaces/3.07/pervasives.mli
+++ /dev/null
@@ -1,186 +0,0 @@
-external raise : exn -> 'a = "%raise"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external (~-) : int -> int = "%negint"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "power_float" "pow" "float"
-external sqrt : float -> float = "sqrt_float" "sqrt" "float"
-external exp : float -> float = "exp_float" "exp" "float"
-external log : float -> float = "log_float" "log" "float"
-external log10 : float -> float = "log10_float" "log10" "float"
-external cos : float -> float = "cos_float" "cos" "float"
-external sin : float -> float = "sin_float" "sin" "float"
-external tan : float -> float = "tan_float" "tan" "float"
-external acos : float -> float = "acos_float" "acos" "float"
-external asin : float -> float = "asin_float" "asin" "float"
-external atan : float -> float = "atan_float" "atan" "float"
-external atan2 : float -> float -> float = "atan2_float" "atan2" "float"
-external cosh : float -> float = "cosh_float" "cosh" "float"
-external sinh : float -> float = "sinh_float" "sinh" "float"
-external tanh : float -> float = "tanh_float" "tanh" "float"
-external ceil : float -> float = "ceil_float" "ceil" "float"
-external floor : float -> float = "floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external mod_float : float -> float -> float = "fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "frexp_float"
-external ldexp : float -> int -> float = "ldexp_float"
-external modf : float -> (float * float) = "modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-and out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> string -> int -> int -> int
-val really_input : in_channel -> string -> int -> int -> unit
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-external string_of_format : ('a, 'b, 'c, 'd) format4 -> string = "%identity"
-external format_of_string :
-  ('a, 'b, 'c, 'd) format4 -> ('a, 'b, 'c, 'd) format4 = "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd) format4 ->
-    ('d, 'b, 'c, 'e) format4 -> ('a, 'b, 'c, 'e) format4
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> string -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/3.07/printexc.mli b/interfaces/3.07/printexc.mli
deleted file mode 100644
index 05c012b..0000000
--- a/interfaces/3.07/printexc.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
diff --git a/interfaces/3.07/printf.mli b/interfaces/3.07/printf.mli
deleted file mode 100644
index 95105dd..0000000
--- a/interfaces/3.07/printf.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val scan_format :
-  string ->
-    int ->
-      (string -> int -> 'a) ->
-        ('b -> 'c -> int -> 'a) -> ('d -> int -> 'a) -> (int -> 'a) -> 'a
diff --git a/interfaces/3.07/queue.mli b/interfaces/3.07/queue.mli
deleted file mode 100644
index c475a78..0000000
--- a/interfaces/3.07/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/3.07/random.mli b/interfaces/3.07/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/3.07/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/3.07/scanf.mli b/interfaces/3.07/scanf.mli
deleted file mode 100644
index 0a38126..0000000
--- a/interfaces/3.07/scanf.mli
+++ /dev/null
@@ -1,22 +0,0 @@
-module Scanning :
-sig
-  type scanbuf
-  val stdib : scanbuf
-  val from_string : string -> scanbuf
-  val from_file : string -> scanbuf
-  val from_file_bin : string -> scanbuf
-  val from_function : (unit -> char) -> scanbuf
-  val from_channel : in_channel -> scanbuf
-  val end_of_input : scanbuf -> bool
-  val beginning_of_input : scanbuf -> bool
-end
-exception Scan_failure of string 
-val bscanf :
-  Scanning.scanbuf -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val fscanf : in_channel -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val sscanf : string -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val scanf : ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val kscanf :
-  Scanning.scanbuf ->
-    (Scanning.scanbuf -> exn -> 'a) ->
-      ('b, Scanning.scanbuf, 'a) format -> 'b -> 'a
diff --git a/interfaces/3.07/set.mli b/interfaces/3.07/set.mli
deleted file mode 100644
index 9d9e7e1..0000000
--- a/interfaces/3.07/set.mli
+++ /dev/null
@@ -1,58 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    and t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    and t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-  end
diff --git a/interfaces/3.07/sort.mli b/interfaces/3.07/sort.mli
deleted file mode 100644
index 336c5ac..0000000
--- a/interfaces/3.07/sort.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list
-val array : ('a -> 'a -> bool) -> 'a array -> unit
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.07/stack.mli b/interfaces/3.07/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/3.07/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.07/stdLabels.mli b/interfaces/3.07/stdLabels.mli
deleted file mode 100644
index bfa0899..0000000
--- a/interfaces/3.07/stdLabels.mli
+++ /dev/null
@@ -1,109 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "make_vect"
-  external create : int -> 'a -> 'a array = "make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : string -> int -> char -> unit = "%string_safe_set"
-  external create : int -> string = "create_string"
-  val make : int -> char -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : string -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-      = "blit_string" "noalloc"
-  external unsafe_fill :
-    string -> pos:int -> len:int -> char -> unit = "fill_string" "noalloc"
-end
diff --git a/interfaces/3.07/stream.mli b/interfaces/3.07/stream.mli
deleted file mode 100644
index 0d11d4b..0000000
--- a/interfaces/3.07/stream.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.07/string.mli b/interfaces/3.07/string.mli
deleted file mode 100644
index 50de5d6..0000000
--- a/interfaces/3.07/string.mli
+++ /dev/null
@@ -1,31 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : string -> int -> int -> char -> unit
-val blit : string -> int -> string -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> string -> int -> int -> unit = "blit_string" "noalloc"
-external unsafe_fill :
-  string -> int -> int -> char -> unit = "fill_string" "noalloc"
diff --git a/interfaces/3.07/stringLabels.mli b/interfaces/3.07/stringLabels.mli
deleted file mode 100644
index e39f1b2..0000000
--- a/interfaces/3.07/stringLabels.mli
+++ /dev/null
@@ -1,31 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : string -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit =
-    "blit_string" "noalloc"
-external unsafe_fill :
-  string -> pos:int -> len:int -> char -> unit = "fill_string" "noalloc"
diff --git a/interfaces/3.07/sys.mli b/interfaces/3.07/sys.mli
deleted file mode 100644
index 7cf5a75..0000000
--- a/interfaces/3.07/sys.mli
+++ /dev/null
@@ -1,47 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "sys_file_exists"
-external remove : string -> unit = "sys_remove"
-external rename : string -> string -> unit = "sys_rename"
-external getenv : string -> string = "sys_getenv"
-external command : string -> int = "sys_system_command"
-external time : unit -> float = "sys_time"
-external chdir : string -> unit = "sys_chdir"
-external getcwd : unit -> string = "sys_getcwd"
-external readdir : string -> string array = "sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val word_size : int
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/3.07/weak.mli b/interfaces/3.07/weak.mli
deleted file mode 100644
index 37dc4be..0000000
--- a/interfaces/3.07/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    and t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    and t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/3.08/arg.mli b/interfaces/3.08/arg.mli
deleted file mode 100644
index 769d245..0000000
--- a/interfaces/3.08/arg.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val align : (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/3.08/array.mli b/interfaces/3.08/array.mli
deleted file mode 100644
index ab3a07e..0000000
--- a/interfaces/3.08/array.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a array -> 'b -> 'b
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.08/arrayLabels.mli b/interfaces/3.08/arrayLabels.mli
deleted file mode 100644
index a6483b4..0000000
--- a/interfaces/3.08/arrayLabels.mli
+++ /dev/null
@@ -1,29 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.08/buffer.mli b/interfaces/3.08/buffer.mli
deleted file mode 100644
index 8b5824d..0000000
--- a/interfaces/3.08/buffer.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val sub : t -> int -> int -> string
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/3.08/callback.mli b/interfaces/3.08/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/3.08/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/3.08/char.mli b/interfaces/3.08/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/3.08/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/3.08/complex.mli b/interfaces/3.08/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/3.08/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/3.08/digest.mli b/interfaces/3.08/digest.mli
deleted file mode 100644
index 8c313d5..0000000
--- a/interfaces/3.08/digest.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type t = string
-val string : string -> t
-val substring : string -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
diff --git a/interfaces/3.08/filename.mli b/interfaces/3.08/filename.mli
deleted file mode 100644
index 4ef0198..0000000
--- a/interfaces/3.08/filename.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list -> string -> string -> (string * out_channel)
-val quote : string -> string
diff --git a/interfaces/3.08/format.mli b/interfaces/3.08/format.mli
deleted file mode 100644
index 1055c31..0000000
--- a/interfaces/3.08/format.mli
+++ /dev/null
@@ -1,140 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
diff --git a/interfaces/3.08/gc.mli b/interfaces/3.08/gc.mli
deleted file mode 100644
index 8a37a33..0000000
--- a/interfaces/3.08/gc.mli
+++ /dev/null
@@ -1,42 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/3.08/genlex.mli b/interfaces/3.08/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/3.08/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/3.08/hashtbl.mli b/interfaces/3.08/hashtbl.mli
deleted file mode 100644
index 00b39b2..0000000
--- a/interfaces/3.08/hashtbl.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type ('a, 'b) t
-val create : int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-val hash : 'a -> int
-external hash_param :
-  int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
diff --git a/interfaces/3.08/int32.mli b/interfaces/3.08/int32.mli
deleted file mode 100644
index 447d5e2..0000000
--- a/interfaces/3.08/int32.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "caml_int32_of_float"
-external to_float : int32 -> float = "caml_int32_to_float"
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
-external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/3.08/int64.mli b/interfaces/3.08/int64.mli
deleted file mode 100644
index 0165961..0000000
--- a/interfaces/3.08/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "caml_int64_of_float"
-external to_float : int64 -> float = "caml_int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "caml_int64_bits_of_float"
-external float_of_bits : int64 -> float = "caml_int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/3.08/lazy.mli b/interfaces/3.08/lazy.mli
deleted file mode 100644
index a6e4008..0000000
--- a/interfaces/3.08/lazy.mli
+++ /dev/null
@@ -1,7 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-val force : 'a t -> 'a
-val force_val : 'a t -> 'a
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/3.08/lexing.mli b/interfaces/3.08/lexing.mli
deleted file mode 100644
index f625043..0000000
--- a/interfaces/3.08/lexing.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: string ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (string -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/3.08/list.mli b/interfaces/3.08/list.mli
deleted file mode 100644
index d5492a1..0000000
--- a/interfaces/3.08/list.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.08/listLabels.mli b/interfaces/3.08/listLabels.mli
deleted file mode 100644
index 675ffcd..0000000
--- a/interfaces/3.08/listLabels.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.08/map.mli b/interfaces/3.08/map.mli
deleted file mode 100644
index aab00a5..0000000
--- a/interfaces/3.08/map.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type 'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-  end
diff --git a/interfaces/3.08/marshal.mli b/interfaces/3.08/marshal.mli
deleted file mode 100644
index 279f355..0000000
--- a/interfaces/3.08/marshal.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : string -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : string -> int -> int
-val total_size : string -> int -> int
diff --git a/interfaces/3.08/moreLabels.mli b/interfaces/3.08/moreLabels.mli
deleted file mode 100644
index 95d485f..0000000
--- a/interfaces/3.08/moreLabels.mli
+++ /dev/null
@@ -1,157 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  module type HashedType  = Hashtbl.HashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  val hash : 'a -> int
-  external hash_param :
-    int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-end
diff --git a/interfaces/3.08/nativeint.mli b/interfaces/3.08/nativeint.mli
deleted file mode 100644
index 1ee93a8..0000000
--- a/interfaces/3.08/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "caml_nativeint_of_float"
-external to_float : nativeint -> float = "caml_nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/3.08/obj.mli b/interfaces/3.08/obj.mli
deleted file mode 100644
index 216f53d..0000000
--- a/interfaces/3.08/obj.mli
+++ /dev/null
@@ -1,30 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-external size : t -> int = "%obj_size"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val marshal : t -> string
-val unmarshal : string -> int -> (t * int)
diff --git a/interfaces/3.08/oo.mli b/interfaces/3.08/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/3.08/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/3.08/parsing.mli b/interfaces/3.08/parsing.mli
deleted file mode 100644
index aa784bd..0000000
--- a/interfaces/3.08/parsing.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/3.08/pervasives.mli b/interfaces/3.08/pervasives.mli
deleted file mode 100644
index ed75118..0000000
--- a/interfaces/3.08/pervasives.mli
+++ /dev/null
@@ -1,187 +0,0 @@
-external raise : exn -> 'a = "%raise"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external (~-) : int -> int = "%negint"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-external exp : float -> float = "caml_exp_float" "exp" "float"
-external log : float -> float = "caml_log_float" "log" "float"
-external log10 : float -> float = "caml_log10_float" "log10" "float"
-external cos : float -> float = "caml_cos_float" "cos" "float"
-external sin : float -> float = "caml_sin_float" "sin" "float"
-external tan : float -> float = "caml_tan_float" "tan" "float"
-external acos : float -> float = "caml_acos_float" "acos" "float"
-external asin : float -> float = "caml_asin_float" "asin" "float"
-external atan : float -> float = "caml_atan_float" "atan" "float"
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-external floor : float -> float = "caml_floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external mod_float :
-  float -> float -> float = "caml_fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp : float -> int -> float = "caml_ldexp_float"
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "caml_classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> string -> int -> int -> int
-val really_input : in_channel -> string -> int -> int -> unit
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd) format4 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd) format4 -> ('a, 'b, 'c, 'd) format4 = "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd) format4 ->
-    ('d, 'b, 'c, 'e) format4 -> ('a, 'b, 'c, 'e) format4
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> string -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/3.08/printexc.mli b/interfaces/3.08/printexc.mli
deleted file mode 100644
index 05c012b..0000000
--- a/interfaces/3.08/printexc.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
diff --git a/interfaces/3.08/printf.mli b/interfaces/3.08/printf.mli
deleted file mode 100644
index 95105dd..0000000
--- a/interfaces/3.08/printf.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val scan_format :
-  string ->
-    int ->
-      (string -> int -> 'a) ->
-        ('b -> 'c -> int -> 'a) -> ('d -> int -> 'a) -> (int -> 'a) -> 'a
diff --git a/interfaces/3.08/queue.mli b/interfaces/3.08/queue.mli
deleted file mode 100644
index c475a78..0000000
--- a/interfaces/3.08/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/3.08/random.mli b/interfaces/3.08/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/3.08/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/3.08/scanf.mli b/interfaces/3.08/scanf.mli
deleted file mode 100644
index 0a38126..0000000
--- a/interfaces/3.08/scanf.mli
+++ /dev/null
@@ -1,22 +0,0 @@
-module Scanning :
-sig
-  type scanbuf
-  val stdib : scanbuf
-  val from_string : string -> scanbuf
-  val from_file : string -> scanbuf
-  val from_file_bin : string -> scanbuf
-  val from_function : (unit -> char) -> scanbuf
-  val from_channel : in_channel -> scanbuf
-  val end_of_input : scanbuf -> bool
-  val beginning_of_input : scanbuf -> bool
-end
-exception Scan_failure of string 
-val bscanf :
-  Scanning.scanbuf -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val fscanf : in_channel -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val sscanf : string -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val scanf : ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val kscanf :
-  Scanning.scanbuf ->
-    (Scanning.scanbuf -> exn -> 'a) ->
-      ('b, Scanning.scanbuf, 'a) format -> 'b -> 'a
diff --git a/interfaces/3.08/set.mli b/interfaces/3.08/set.mli
deleted file mode 100644
index 3541f34..0000000
--- a/interfaces/3.08/set.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
diff --git a/interfaces/3.08/sort.mli b/interfaces/3.08/sort.mli
deleted file mode 100644
index 336c5ac..0000000
--- a/interfaces/3.08/sort.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list
-val array : ('a -> 'a -> bool) -> 'a array -> unit
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.08/stack.mli b/interfaces/3.08/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/3.08/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.08/stdLabels.mli b/interfaces/3.08/stdLabels.mli
deleted file mode 100644
index efedfe1..0000000
--- a/interfaces/3.08/stdLabels.mli
+++ /dev/null
@@ -1,115 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : string -> int -> char -> unit = "%string_safe_set"
-  external create : int -> string = "caml_create_string"
-  val make : int -> char -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : string -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    string -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-end
diff --git a/interfaces/3.08/stream.mli b/interfaces/3.08/stream.mli
deleted file mode 100644
index 0d11d4b..0000000
--- a/interfaces/3.08/stream.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.08/string.mli b/interfaces/3.08/string.mli
deleted file mode 100644
index 1cbb55b..0000000
--- a/interfaces/3.08/string.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : string -> int -> int -> char -> unit
-val blit : string -> int -> string -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> string -> int -> int -> unit = "caml_blit_string"
-    "noalloc"
-external unsafe_fill :
-  string -> int -> int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.08/stringLabels.mli b/interfaces/3.08/stringLabels.mli
deleted file mode 100644
index e4f4ecd..0000000
--- a/interfaces/3.08/stringLabels.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : string -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  string -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.08/sys.mli b/interfaces/3.08/sys.mli
deleted file mode 100644
index 49c1d28..0000000
--- a/interfaces/3.08/sys.mli
+++ /dev/null
@@ -1,47 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time : unit -> float = "caml_sys_time"
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val word_size : int
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/3.08/weak.mli b/interfaces/3.08/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/3.08/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/3.09/arg.mli b/interfaces/3.09/arg.mli
deleted file mode 100644
index 769d245..0000000
--- a/interfaces/3.09/arg.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val align : (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/3.09/array.mli b/interfaces/3.09/array.mli
deleted file mode 100644
index ab3a07e..0000000
--- a/interfaces/3.09/array.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a array -> 'b -> 'b
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.09/arrayLabels.mli b/interfaces/3.09/arrayLabels.mli
deleted file mode 100644
index a6483b4..0000000
--- a/interfaces/3.09/arrayLabels.mli
+++ /dev/null
@@ -1,29 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.09/buffer.mli b/interfaces/3.09/buffer.mli
deleted file mode 100644
index 8b5824d..0000000
--- a/interfaces/3.09/buffer.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val sub : t -> int -> int -> string
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/3.09/callback.mli b/interfaces/3.09/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/3.09/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/3.09/char.mli b/interfaces/3.09/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/3.09/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/3.09/complex.mli b/interfaces/3.09/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/3.09/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/3.09/digest.mli b/interfaces/3.09/digest.mli
deleted file mode 100644
index 8c313d5..0000000
--- a/interfaces/3.09/digest.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type t = string
-val string : string -> t
-val substring : string -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
diff --git a/interfaces/3.09/filename.mli b/interfaces/3.09/filename.mli
deleted file mode 100644
index 50b56b4..0000000
--- a/interfaces/3.09/filename.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list -> string -> string -> (string * out_channel)
-val temp_dir_name : string
-val quote : string -> string
diff --git a/interfaces/3.09/format.mli b/interfaces/3.09/format.mli
deleted file mode 100644
index 1055c31..0000000
--- a/interfaces/3.09/format.mli
+++ /dev/null
@@ -1,140 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
diff --git a/interfaces/3.09/gc.mli b/interfaces/3.09/gc.mli
deleted file mode 100644
index 8a37a33..0000000
--- a/interfaces/3.09/gc.mli
+++ /dev/null
@@ -1,42 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/3.09/genlex.mli b/interfaces/3.09/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/3.09/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/3.09/hashtbl.mli b/interfaces/3.09/hashtbl.mli
deleted file mode 100644
index 00b39b2..0000000
--- a/interfaces/3.09/hashtbl.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type ('a, 'b) t
-val create : int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-val hash : 'a -> int
-external hash_param :
-  int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
diff --git a/interfaces/3.09/int32.mli b/interfaces/3.09/int32.mli
deleted file mode 100644
index 447d5e2..0000000
--- a/interfaces/3.09/int32.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "caml_int32_of_float"
-external to_float : int32 -> float = "caml_int32_to_float"
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
-external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/3.09/int64.mli b/interfaces/3.09/int64.mli
deleted file mode 100644
index 0165961..0000000
--- a/interfaces/3.09/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "caml_int64_of_float"
-external to_float : int64 -> float = "caml_int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "caml_int64_bits_of_float"
-external float_of_bits : int64 -> float = "caml_int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/3.09/lazy.mli b/interfaces/3.09/lazy.mli
deleted file mode 100644
index a6e4008..0000000
--- a/interfaces/3.09/lazy.mli
+++ /dev/null
@@ -1,7 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-val force : 'a t -> 'a
-val force_val : 'a t -> 'a
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/3.09/lexing.mli b/interfaces/3.09/lexing.mli
deleted file mode 100644
index f625043..0000000
--- a/interfaces/3.09/lexing.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: string ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (string -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/3.09/list.mli b/interfaces/3.09/list.mli
deleted file mode 100644
index d5492a1..0000000
--- a/interfaces/3.09/list.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.09/listLabels.mli b/interfaces/3.09/listLabels.mli
deleted file mode 100644
index 675ffcd..0000000
--- a/interfaces/3.09/listLabels.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.09/map.mli b/interfaces/3.09/map.mli
deleted file mode 100644
index aab00a5..0000000
--- a/interfaces/3.09/map.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type 'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-  end
diff --git a/interfaces/3.09/marshal.mli b/interfaces/3.09/marshal.mli
deleted file mode 100644
index 279f355..0000000
--- a/interfaces/3.09/marshal.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : string -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : string -> int -> int
-val total_size : string -> int -> int
diff --git a/interfaces/3.09/moreLabels.mli b/interfaces/3.09/moreLabels.mli
deleted file mode 100644
index 95d485f..0000000
--- a/interfaces/3.09/moreLabels.mli
+++ /dev/null
@@ -1,157 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  module type HashedType  = Hashtbl.HashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  val hash : 'a -> int
-  external hash_param :
-    int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-end
diff --git a/interfaces/3.09/nativeint.mli b/interfaces/3.09/nativeint.mli
deleted file mode 100644
index 1ee93a8..0000000
--- a/interfaces/3.09/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "caml_nativeint_of_float"
-external to_float : nativeint -> float = "caml_nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/3.09/obj.mli b/interfaces/3.09/obj.mli
deleted file mode 100644
index 216f53d..0000000
--- a/interfaces/3.09/obj.mli
+++ /dev/null
@@ -1,30 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-external size : t -> int = "%obj_size"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val marshal : t -> string
-val unmarshal : string -> int -> (t * int)
diff --git a/interfaces/3.09/oo.mli b/interfaces/3.09/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/3.09/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/3.09/parsing.mli b/interfaces/3.09/parsing.mli
deleted file mode 100644
index aa784bd..0000000
--- a/interfaces/3.09/parsing.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/3.09/pervasives.mli b/interfaces/3.09/pervasives.mli
deleted file mode 100644
index ed75118..0000000
--- a/interfaces/3.09/pervasives.mli
+++ /dev/null
@@ -1,187 +0,0 @@
-external raise : exn -> 'a = "%raise"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external (~-) : int -> int = "%negint"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-external exp : float -> float = "caml_exp_float" "exp" "float"
-external log : float -> float = "caml_log_float" "log" "float"
-external log10 : float -> float = "caml_log10_float" "log10" "float"
-external cos : float -> float = "caml_cos_float" "cos" "float"
-external sin : float -> float = "caml_sin_float" "sin" "float"
-external tan : float -> float = "caml_tan_float" "tan" "float"
-external acos : float -> float = "caml_acos_float" "acos" "float"
-external asin : float -> float = "caml_asin_float" "asin" "float"
-external atan : float -> float = "caml_atan_float" "atan" "float"
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-external floor : float -> float = "caml_floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external mod_float :
-  float -> float -> float = "caml_fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp : float -> int -> float = "caml_ldexp_float"
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "caml_classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> string -> int -> int -> int
-val really_input : in_channel -> string -> int -> int -> unit
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd) format4 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd) format4 -> ('a, 'b, 'c, 'd) format4 = "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd) format4 ->
-    ('d, 'b, 'c, 'e) format4 -> ('a, 'b, 'c, 'e) format4
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> string -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/3.09/printexc.mli b/interfaces/3.09/printexc.mli
deleted file mode 100644
index 05c012b..0000000
--- a/interfaces/3.09/printexc.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
diff --git a/interfaces/3.09/printf.mli b/interfaces/3.09/printf.mli
deleted file mode 100644
index ece897d..0000000
--- a/interfaces/3.09/printf.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-type index
-external index_of_int : int -> index = "%identity"
-val scan_format :
-  string ->
-    'a array ->
-      index ->
-        int ->
-          (index -> string -> int -> 'b) ->
-            (index -> 'c -> 'd -> int -> 'b) ->
-              (index -> 'e -> int -> 'b) ->
-                (index -> int -> 'b) ->
-                  (index -> ('f, 'g, 'h, 'i) format4 -> int -> 'b) -> 'b
-val sub_format :
-  (string -> int) ->
-    (string -> int -> char -> int) -> char -> string -> int -> int
-val summarize_format_type : string -> string
-val kapr : (string -> Obj.t array -> 'a) -> string -> 'a
diff --git a/interfaces/3.09/queue.mli b/interfaces/3.09/queue.mli
deleted file mode 100644
index c475a78..0000000
--- a/interfaces/3.09/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/3.09/random.mli b/interfaces/3.09/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/3.09/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/3.09/scanf.mli b/interfaces/3.09/scanf.mli
deleted file mode 100644
index ccff912..0000000
--- a/interfaces/3.09/scanf.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-module Scanning :
-sig
-  type scanbuf
-  val stdib : scanbuf
-  val from_string : string -> scanbuf
-  val from_file : string -> scanbuf
-  val from_file_bin : string -> scanbuf
-  val from_function : (unit -> char) -> scanbuf
-  val from_channel : in_channel -> scanbuf
-  val end_of_input : scanbuf -> bool
-  val beginning_of_input : scanbuf -> bool
-  val name_of_input : scanbuf -> string
-end
-exception Scan_failure of string 
-val bscanf :
-  Scanning.scanbuf -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val fscanf : in_channel -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val sscanf : string -> ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val scanf : ('a, Scanning.scanbuf, 'b) format -> 'a -> 'b
-val kscanf :
-  Scanning.scanbuf ->
-    (Scanning.scanbuf -> exn -> 'a) ->
-      ('b, Scanning.scanbuf, 'a) format -> 'b -> 'a
-val bscanf_format :
-  Scanning.scanbuf ->
-    ('a, 'b, 'c, 'd) format4 -> (('a, 'b, 'c, 'd) format4 -> 'e) -> 'e
-val sscanf_format :
-  string -> ('a, 'b, 'c, 'd) format4 -> ('a, 'b, 'c, 'd) format4
diff --git a/interfaces/3.09/set.mli b/interfaces/3.09/set.mli
deleted file mode 100644
index 3541f34..0000000
--- a/interfaces/3.09/set.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
diff --git a/interfaces/3.09/sort.mli b/interfaces/3.09/sort.mli
deleted file mode 100644
index 336c5ac..0000000
--- a/interfaces/3.09/sort.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list
-val array : ('a -> 'a -> bool) -> 'a array -> unit
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.09/stack.mli b/interfaces/3.09/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/3.09/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.09/stdLabels.mli b/interfaces/3.09/stdLabels.mli
deleted file mode 100644
index efedfe1..0000000
--- a/interfaces/3.09/stdLabels.mli
+++ /dev/null
@@ -1,115 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : string -> int -> char -> unit = "%string_safe_set"
-  external create : int -> string = "caml_create_string"
-  val make : int -> char -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : string -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    string -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-end
diff --git a/interfaces/3.09/stream.mli b/interfaces/3.09/stream.mli
deleted file mode 100644
index 0d11d4b..0000000
--- a/interfaces/3.09/stream.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.09/string.mli b/interfaces/3.09/string.mli
deleted file mode 100644
index 1cbb55b..0000000
--- a/interfaces/3.09/string.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : string -> int -> int -> char -> unit
-val blit : string -> int -> string -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> string -> int -> int -> unit = "caml_blit_string"
-    "noalloc"
-external unsafe_fill :
-  string -> int -> int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.09/stringLabels.mli b/interfaces/3.09/stringLabels.mli
deleted file mode 100644
index e4f4ecd..0000000
--- a/interfaces/3.09/stringLabels.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : string -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  string -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.09/sys.mli b/interfaces/3.09/sys.mli
deleted file mode 100644
index 49c1d28..0000000
--- a/interfaces/3.09/sys.mli
+++ /dev/null
@@ -1,47 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time : unit -> float = "caml_sys_time"
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val word_size : int
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/3.09/weak.mli b/interfaces/3.09/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/3.09/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/3.10/arg.mli b/interfaces/3.10/arg.mli
deleted file mode 100644
index 769d245..0000000
--- a/interfaces/3.10/arg.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val align : (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/3.10/array.mli b/interfaces/3.10/array.mli
deleted file mode 100644
index ab3a07e..0000000
--- a/interfaces/3.10/array.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a array -> 'b -> 'b
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.10/arrayLabels.mli b/interfaces/3.10/arrayLabels.mli
deleted file mode 100644
index a6483b4..0000000
--- a/interfaces/3.10/arrayLabels.mli
+++ /dev/null
@@ -1,29 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.10/buffer.mli b/interfaces/3.10/buffer.mli
deleted file mode 100644
index 8b5824d..0000000
--- a/interfaces/3.10/buffer.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val sub : t -> int -> int -> string
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/3.10/callback.mli b/interfaces/3.10/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/3.10/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/3.10/char.mli b/interfaces/3.10/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/3.10/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/3.10/complex.mli b/interfaces/3.10/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/3.10/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/3.10/digest.mli b/interfaces/3.10/digest.mli
deleted file mode 100644
index 8c313d5..0000000
--- a/interfaces/3.10/digest.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type t = string
-val string : string -> t
-val substring : string -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
diff --git a/interfaces/3.10/filename.mli b/interfaces/3.10/filename.mli
deleted file mode 100644
index 50b56b4..0000000
--- a/interfaces/3.10/filename.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list -> string -> string -> (string * out_channel)
-val temp_dir_name : string
-val quote : string -> string
diff --git a/interfaces/3.10/format.mli b/interfaces/3.10/format.mli
deleted file mode 100644
index 9f2c151..0000000
--- a/interfaces/3.10/format.mli
+++ /dev/null
@@ -1,141 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
diff --git a/interfaces/3.10/gc.mli b/interfaces/3.10/gc.mli
deleted file mode 100644
index 8a37a33..0000000
--- a/interfaces/3.10/gc.mli
+++ /dev/null
@@ -1,42 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/3.10/genlex.mli b/interfaces/3.10/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/3.10/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/3.10/hashtbl.mli b/interfaces/3.10/hashtbl.mli
deleted file mode 100644
index 00b39b2..0000000
--- a/interfaces/3.10/hashtbl.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type ('a, 'b) t
-val create : int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-val hash : 'a -> int
-external hash_param :
-  int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
diff --git a/interfaces/3.10/int32.mli b/interfaces/3.10/int32.mli
deleted file mode 100644
index 447d5e2..0000000
--- a/interfaces/3.10/int32.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "caml_int32_of_float"
-external to_float : int32 -> float = "caml_int32_to_float"
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
-external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/3.10/int64.mli b/interfaces/3.10/int64.mli
deleted file mode 100644
index 0165961..0000000
--- a/interfaces/3.10/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "caml_int64_of_float"
-external to_float : int64 -> float = "caml_int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "caml_int64_bits_of_float"
-external float_of_bits : int64 -> float = "caml_int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/3.10/lazy.mli b/interfaces/3.10/lazy.mli
deleted file mode 100644
index a6e4008..0000000
--- a/interfaces/3.10/lazy.mli
+++ /dev/null
@@ -1,7 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-val force : 'a t -> 'a
-val force_val : 'a t -> 'a
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/3.10/lexing.mli b/interfaces/3.10/lexing.mli
deleted file mode 100644
index f625043..0000000
--- a/interfaces/3.10/lexing.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: string ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (string -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/3.10/list.mli b/interfaces/3.10/list.mli
deleted file mode 100644
index d5492a1..0000000
--- a/interfaces/3.10/list.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.10/listLabels.mli b/interfaces/3.10/listLabels.mli
deleted file mode 100644
index 675ffcd..0000000
--- a/interfaces/3.10/listLabels.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.10/map.mli b/interfaces/3.10/map.mli
deleted file mode 100644
index aab00a5..0000000
--- a/interfaces/3.10/map.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type 'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-  end
diff --git a/interfaces/3.10/marshal.mli b/interfaces/3.10/marshal.mli
deleted file mode 100644
index 279f355..0000000
--- a/interfaces/3.10/marshal.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : string -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : string -> int -> int
-val total_size : string -> int -> int
diff --git a/interfaces/3.10/moreLabels.mli b/interfaces/3.10/moreLabels.mli
deleted file mode 100644
index 95d485f..0000000
--- a/interfaces/3.10/moreLabels.mli
+++ /dev/null
@@ -1,157 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  module type HashedType  = Hashtbl.HashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  val hash : 'a -> int
-  external hash_param :
-    int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-end
diff --git a/interfaces/3.10/nativeint.mli b/interfaces/3.10/nativeint.mli
deleted file mode 100644
index 1ee93a8..0000000
--- a/interfaces/3.10/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "caml_nativeint_of_float"
-external to_float : nativeint -> float = "caml_nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/3.10/obj.mli b/interfaces/3.10/obj.mli
deleted file mode 100644
index 216f53d..0000000
--- a/interfaces/3.10/obj.mli
+++ /dev/null
@@ -1,30 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-external size : t -> int = "%obj_size"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val marshal : t -> string
-val unmarshal : string -> int -> (t * int)
diff --git a/interfaces/3.10/oo.mli b/interfaces/3.10/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/3.10/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/3.10/parsing.mli b/interfaces/3.10/parsing.mli
deleted file mode 100644
index aa784bd..0000000
--- a/interfaces/3.10/parsing.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/3.10/pervasives.mli b/interfaces/3.10/pervasives.mli
deleted file mode 100644
index 68b8e2f..0000000
--- a/interfaces/3.10/pervasives.mli
+++ /dev/null
@@ -1,189 +0,0 @@
-external raise : exn -> 'a = "%raise"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external (~-) : int -> int = "%negint"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-external exp : float -> float = "caml_exp_float" "exp" "float"
-external log : float -> float = "caml_log_float" "log" "float"
-external log10 : float -> float = "caml_log10_float" "log10" "float"
-external cos : float -> float = "caml_cos_float" "cos" "float"
-external sin : float -> float = "caml_sin_float" "sin" "float"
-external tan : float -> float = "caml_tan_float" "tan" "float"
-external acos : float -> float = "caml_acos_float" "acos" "float"
-external asin : float -> float = "caml_asin_float" "asin" "float"
-external atan : float -> float = "caml_atan_float" "atan" "float"
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-external floor : float -> float = "caml_floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external mod_float :
-  float -> float -> float = "caml_fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp : float -> int -> float = "caml_ldexp_float"
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "caml_classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> string -> int -> int -> int
-val really_input : in_channel -> string -> int -> int -> unit
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> string -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/3.10/printexc.mli b/interfaces/3.10/printexc.mli
deleted file mode 100644
index 05c012b..0000000
--- a/interfaces/3.10/printexc.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
diff --git a/interfaces/3.10/printf.mli b/interfaces/3.10/printf.mli
deleted file mode 100644
index d255fb8..0000000
--- a/interfaces/3.10/printf.mli
+++ /dev/null
@@ -1,63 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val ifprintf : 'a -> ('b, 'a, unit) format -> 'b
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kbprintf :
-  (Buffer.t -> 'a) -> Buffer.t -> ('b, Buffer.t, unit, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-module CamlinternalPr :
-sig
-  module Sformat :
-  sig
-    type index
-    val index_of_int : int -> index
-    external int_of_index : index -> int = "%identity"
-    external unsafe_index_of_int : int -> index = "%identity"
-    val succ_index : index -> index
-    val sub : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> index -> int -> string
-    val to_string : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    external length :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int = "%string_length"
-    external get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_safe_get"
-    external unsafe_to_string :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string = "%identity"
-    external unsafe_get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_unsafe_get"
-  end
-  module Tformat :
-  sig
-    type ac =
-      {
-      mutable ac_rglr: int ;
-      mutable ac_skip: int ;
-      mutable ac_rdrs: int }
-    val ac_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ac
-    val sub_format :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int) ->
-        (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char -> int) ->
-          char -> ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> int
-    val summarize_format_type : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    val scan_format :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-        'g array ->
-          Sformat.index ->
-            int ->
-              (Sformat.index -> string -> int -> 'h) ->
-                (Sformat.index -> 'i -> 'j -> int -> 'h) ->
-                  (Sformat.index -> 'k -> int -> 'h) ->
-                    (Sformat.index -> int -> 'h) ->
-                      (Sformat.index ->
-                         ('l, 'm, 'n, 'o, 'p, 'q) format6 -> int -> 'h)
-                        -> 'h
-    val kapr :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> Obj.t array -> 'g) ->
-        ('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g
-  end
-end
diff --git a/interfaces/3.10/queue.mli b/interfaces/3.10/queue.mli
deleted file mode 100644
index c475a78..0000000
--- a/interfaces/3.10/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/3.10/random.mli b/interfaces/3.10/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/3.10/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/3.10/scanf.mli b/interfaces/3.10/scanf.mli
deleted file mode 100644
index 4c54214..0000000
--- a/interfaces/3.10/scanf.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-module Scanning :
-sig
-  type scanbuf
-  val stdib : scanbuf
-  val from_string : string -> scanbuf
-  val from_file : string -> scanbuf
-  val from_file_bin : string -> scanbuf
-  val from_function : (unit -> char) -> scanbuf
-  val from_channel : in_channel -> scanbuf
-  val end_of_input : scanbuf -> bool
-  val beginning_of_input : scanbuf -> bool
-  val name_of_input : scanbuf -> string
-end
-exception Scan_failure of string 
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.scanbuf, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-val bscanf : Scanning.scanbuf -> ('a, 'b, 'c, 'd) scanner
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.scanbuf ->
-    (Scanning.scanbuf -> exn -> 'a) -> ('b, 'c, 'd, 'a) scanner
-val bscanf_format :
-  Scanning.scanbuf ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
diff --git a/interfaces/3.10/set.mli b/interfaces/3.10/set.mli
deleted file mode 100644
index 3541f34..0000000
--- a/interfaces/3.10/set.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
diff --git a/interfaces/3.10/sort.mli b/interfaces/3.10/sort.mli
deleted file mode 100644
index 336c5ac..0000000
--- a/interfaces/3.10/sort.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list
-val array : ('a -> 'a -> bool) -> 'a array -> unit
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.10/stack.mli b/interfaces/3.10/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/3.10/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.10/stdLabels.mli b/interfaces/3.10/stdLabels.mli
deleted file mode 100644
index efedfe1..0000000
--- a/interfaces/3.10/stdLabels.mli
+++ /dev/null
@@ -1,115 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : string -> int -> char -> unit = "%string_safe_set"
-  external create : int -> string = "caml_create_string"
-  val make : int -> char -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : string -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    string -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-end
diff --git a/interfaces/3.10/stream.mli b/interfaces/3.10/stream.mli
deleted file mode 100644
index 0d11d4b..0000000
--- a/interfaces/3.10/stream.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.10/string.mli b/interfaces/3.10/string.mli
deleted file mode 100644
index 1cbb55b..0000000
--- a/interfaces/3.10/string.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : string -> int -> int -> char -> unit
-val blit : string -> int -> string -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> string -> int -> int -> unit = "caml_blit_string"
-    "noalloc"
-external unsafe_fill :
-  string -> int -> int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.10/stringLabels.mli b/interfaces/3.10/stringLabels.mli
deleted file mode 100644
index e4f4ecd..0000000
--- a/interfaces/3.10/stringLabels.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : string -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  string -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.10/sys.mli b/interfaces/3.10/sys.mli
deleted file mode 100644
index 9eace15..0000000
--- a/interfaces/3.10/sys.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time : unit -> float = "caml_sys_time"
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val word_size : int
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/3.10/weak.mli b/interfaces/3.10/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/3.10/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/3.11/arg.mli b/interfaces/3.11/arg.mli
deleted file mode 100644
index 769d245..0000000
--- a/interfaces/3.11/arg.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val align : (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/3.11/array.mli b/interfaces/3.11/array.mli
deleted file mode 100644
index ab3a07e..0000000
--- a/interfaces/3.11/array.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a array -> 'b -> 'b
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.11/arrayLabels.mli b/interfaces/3.11/arrayLabels.mli
deleted file mode 100644
index a6483b4..0000000
--- a/interfaces/3.11/arrayLabels.mli
+++ /dev/null
@@ -1,29 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.11/buffer.mli b/interfaces/3.11/buffer.mli
deleted file mode 100644
index a7c771d..0000000
--- a/interfaces/3.11/buffer.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val sub : t -> int -> int -> string
-val blit : t -> int -> string -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/3.11/callback.mli b/interfaces/3.11/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/3.11/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/3.11/char.mli b/interfaces/3.11/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/3.11/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/3.11/complex.mli b/interfaces/3.11/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/3.11/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/3.11/digest.mli b/interfaces/3.11/digest.mli
deleted file mode 100644
index 8c313d5..0000000
--- a/interfaces/3.11/digest.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type t = string
-val string : string -> t
-val substring : string -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
diff --git a/interfaces/3.11/filename.mli b/interfaces/3.11/filename.mli
deleted file mode 100644
index 6d23b8f..0000000
--- a/interfaces/3.11/filename.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?temp_dir:string -> string -> string -> (string * out_channel)
-val temp_dir_name : string
-val quote : string -> string
diff --git a/interfaces/3.11/format.mli b/interfaces/3.11/format.mli
deleted file mode 100644
index 23543f9..0000000
--- a/interfaces/3.11/format.mli
+++ /dev/null
@@ -1,141 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
diff --git a/interfaces/3.11/gc.mli b/interfaces/3.11/gc.mli
deleted file mode 100644
index 8eb4d5d..0000000
--- a/interfaces/3.11/gc.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/3.11/genlex.mli b/interfaces/3.11/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/3.11/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/3.11/hashtbl.mli b/interfaces/3.11/hashtbl.mli
deleted file mode 100644
index 00b39b2..0000000
--- a/interfaces/3.11/hashtbl.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type ('a, 'b) t
-val create : int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-val hash : 'a -> int
-external hash_param :
-  int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
diff --git a/interfaces/3.11/int32.mli b/interfaces/3.11/int32.mli
deleted file mode 100644
index 447d5e2..0000000
--- a/interfaces/3.11/int32.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "caml_int32_of_float"
-external to_float : int32 -> float = "caml_int32_to_float"
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
-external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/3.11/int64.mli b/interfaces/3.11/int64.mli
deleted file mode 100644
index 0165961..0000000
--- a/interfaces/3.11/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "caml_int64_of_float"
-external to_float : int64 -> float = "caml_int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "caml_int64_bits_of_float"
-external float_of_bits : int64 -> float = "caml_int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/3.11/lazy.mli b/interfaces/3.11/lazy.mli
deleted file mode 100644
index 7b0df25..0000000
--- a/interfaces/3.11/lazy.mli
+++ /dev/null
@@ -1,7 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/3.11/lexing.mli b/interfaces/3.11/lexing.mli
deleted file mode 100644
index 7e6a229..0000000
--- a/interfaces/3.11/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: string ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (string -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/3.11/list.mli b/interfaces/3.11/list.mli
deleted file mode 100644
index d5492a1..0000000
--- a/interfaces/3.11/list.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.11/listLabels.mli b/interfaces/3.11/listLabels.mli
deleted file mode 100644
index 675ffcd..0000000
--- a/interfaces/3.11/listLabels.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.11/map.mli b/interfaces/3.11/map.mli
deleted file mode 100644
index aab00a5..0000000
--- a/interfaces/3.11/map.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type 'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val find : key -> 'a t -> 'a
-    val remove : key -> 'a t -> 'a t
-    val mem : key -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-  end
diff --git a/interfaces/3.11/marshal.mli b/interfaces/3.11/marshal.mli
deleted file mode 100644
index 279f355..0000000
--- a/interfaces/3.11/marshal.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : string -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : string -> int -> int
-val total_size : string -> int -> int
diff --git a/interfaces/3.11/moreLabels.mli b/interfaces/3.11/moreLabels.mli
deleted file mode 100644
index 95d485f..0000000
--- a/interfaces/3.11/moreLabels.mli
+++ /dev/null
@@ -1,157 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  module type HashedType  = Hashtbl.HashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  val hash : 'a -> int
-  external hash_param :
-    int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val find : key -> 'a t -> 'a
-      val remove : key -> 'a t -> 'a t
-      val mem : key -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-end
diff --git a/interfaces/3.11/nativeint.mli b/interfaces/3.11/nativeint.mli
deleted file mode 100644
index 1ee93a8..0000000
--- a/interfaces/3.11/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "caml_nativeint_of_float"
-external to_float : nativeint -> float = "caml_nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/3.11/obj.mli b/interfaces/3.11/obj.mli
deleted file mode 100644
index 58e5afb..0000000
--- a/interfaces/3.11/obj.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-external size : t -> int = "%obj_size"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> int -> t = "caml_obj_add_offset"
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val marshal : t -> string
-val unmarshal : string -> int -> (t * int)
diff --git a/interfaces/3.11/oo.mli b/interfaces/3.11/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/3.11/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/3.11/parsing.mli b/interfaces/3.11/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/3.11/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/3.11/pervasives.mli b/interfaces/3.11/pervasives.mli
deleted file mode 100644
index 68b8e2f..0000000
--- a/interfaces/3.11/pervasives.mli
+++ /dev/null
@@ -1,189 +0,0 @@
-external raise : exn -> 'a = "%raise"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external (~-) : int -> int = "%negint"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-external exp : float -> float = "caml_exp_float" "exp" "float"
-external log : float -> float = "caml_log_float" "log" "float"
-external log10 : float -> float = "caml_log10_float" "log10" "float"
-external cos : float -> float = "caml_cos_float" "cos" "float"
-external sin : float -> float = "caml_sin_float" "sin" "float"
-external tan : float -> float = "caml_tan_float" "tan" "float"
-external acos : float -> float = "caml_acos_float" "acos" "float"
-external asin : float -> float = "caml_asin_float" "asin" "float"
-external atan : float -> float = "caml_atan_float" "atan" "float"
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-external floor : float -> float = "caml_floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external mod_float :
-  float -> float -> float = "caml_fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp : float -> int -> float = "caml_ldexp_float"
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "caml_classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> string -> int -> int -> int
-val really_input : in_channel -> string -> int -> int -> unit
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> string -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/3.11/printexc.mli b/interfaces/3.11/printexc.mli
deleted file mode 100644
index 8428729..0000000
--- a/interfaces/3.11/printexc.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
diff --git a/interfaces/3.11/printf.mli b/interfaces/3.11/printf.mli
deleted file mode 100644
index d255fb8..0000000
--- a/interfaces/3.11/printf.mli
+++ /dev/null
@@ -1,63 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val ifprintf : 'a -> ('b, 'a, unit) format -> 'b
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kbprintf :
-  (Buffer.t -> 'a) -> Buffer.t -> ('b, Buffer.t, unit, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-module CamlinternalPr :
-sig
-  module Sformat :
-  sig
-    type index
-    val index_of_int : int -> index
-    external int_of_index : index -> int = "%identity"
-    external unsafe_index_of_int : int -> index = "%identity"
-    val succ_index : index -> index
-    val sub : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> index -> int -> string
-    val to_string : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    external length :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int = "%string_length"
-    external get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_safe_get"
-    external unsafe_to_string :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string = "%identity"
-    external unsafe_get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_unsafe_get"
-  end
-  module Tformat :
-  sig
-    type ac =
-      {
-      mutable ac_rglr: int ;
-      mutable ac_skip: int ;
-      mutable ac_rdrs: int }
-    val ac_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ac
-    val sub_format :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int) ->
-        (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char -> int) ->
-          char -> ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> int
-    val summarize_format_type : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    val scan_format :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-        'g array ->
-          Sformat.index ->
-            int ->
-              (Sformat.index -> string -> int -> 'h) ->
-                (Sformat.index -> 'i -> 'j -> int -> 'h) ->
-                  (Sformat.index -> 'k -> int -> 'h) ->
-                    (Sformat.index -> int -> 'h) ->
-                      (Sformat.index ->
-                         ('l, 'm, 'n, 'o, 'p, 'q) format6 -> int -> 'h)
-                        -> 'h
-    val kapr :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> Obj.t array -> 'g) ->
-        ('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g
-  end
-end
diff --git a/interfaces/3.11/queue.mli b/interfaces/3.11/queue.mli
deleted file mode 100644
index c475a78..0000000
--- a/interfaces/3.11/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/3.11/random.mli b/interfaces/3.11/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/3.11/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/3.11/scanf.mli b/interfaces/3.11/scanf.mli
deleted file mode 100644
index 8306d50..0000000
--- a/interfaces/3.11/scanf.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-module Scanning :
-sig
-  type scanbuf
-  val stdib : scanbuf
-  val from_string : string -> scanbuf
-  val from_file : string -> scanbuf
-  val from_file_bin : string -> scanbuf
-  val from_function : (unit -> char) -> scanbuf
-  val from_channel : in_channel -> scanbuf
-  val end_of_input : scanbuf -> bool
-  val beginning_of_input : scanbuf -> bool
-  val name_of_input : scanbuf -> string
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.scanbuf, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.scanbuf -> ('a, 'b, 'c, 'd) scanner
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.scanbuf ->
-    (Scanning.scanbuf -> exn -> 'a) -> ('b, 'c, 'd, 'a) scanner
-val bscanf_format :
-  Scanning.scanbuf ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
diff --git a/interfaces/3.11/set.mli b/interfaces/3.11/set.mli
deleted file mode 100644
index 3541f34..0000000
--- a/interfaces/3.11/set.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
diff --git a/interfaces/3.11/sort.mli b/interfaces/3.11/sort.mli
deleted file mode 100644
index 336c5ac..0000000
--- a/interfaces/3.11/sort.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list
-val array : ('a -> 'a -> bool) -> 'a array -> unit
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.11/stack.mli b/interfaces/3.11/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/3.11/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.11/stdLabels.mli b/interfaces/3.11/stdLabels.mli
deleted file mode 100644
index efedfe1..0000000
--- a/interfaces/3.11/stdLabels.mli
+++ /dev/null
@@ -1,115 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : string -> int -> char -> unit = "%string_safe_set"
-  external create : int -> string = "caml_create_string"
-  val make : int -> char -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : string -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    string -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-end
diff --git a/interfaces/3.11/stream.mli b/interfaces/3.11/stream.mli
deleted file mode 100644
index 0d11d4b..0000000
--- a/interfaces/3.11/stream.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.11/string.mli b/interfaces/3.11/string.mli
deleted file mode 100644
index 1cbb55b..0000000
--- a/interfaces/3.11/string.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : string -> int -> int -> char -> unit
-val blit : string -> int -> string -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> string -> int -> int -> unit = "caml_blit_string"
-    "noalloc"
-external unsafe_fill :
-  string -> int -> int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.11/stringLabels.mli b/interfaces/3.11/stringLabels.mli
deleted file mode 100644
index e4f4ecd..0000000
--- a/interfaces/3.11/stringLabels.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : string -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  string -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.11/sys.mli b/interfaces/3.11/sys.mli
deleted file mode 100644
index 9eace15..0000000
--- a/interfaces/3.11/sys.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time : unit -> float = "caml_sys_time"
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val word_size : int
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/3.11/weak.mli b/interfaces/3.11/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/3.11/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/3.12/arg.mli b/interfaces/3.12/arg.mli
deleted file mode 100644
index 826b071..0000000
--- a/interfaces/3.12/arg.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/3.12/array.mli b/interfaces/3.12/array.mli
deleted file mode 100644
index ab3a07e..0000000
--- a/interfaces/3.12/array.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a array -> 'b -> 'b
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.12/arrayLabels.mli b/interfaces/3.12/arrayLabels.mli
deleted file mode 100644
index a6483b4..0000000
--- a/interfaces/3.12/arrayLabels.mli
+++ /dev/null
@@ -1,29 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/3.12/buffer.mli b/interfaces/3.12/buffer.mli
deleted file mode 100644
index a7c771d..0000000
--- a/interfaces/3.12/buffer.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val sub : t -> int -> int -> string
-val blit : t -> int -> string -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/3.12/callback.mli b/interfaces/3.12/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/3.12/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/3.12/char.mli b/interfaces/3.12/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/3.12/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/3.12/complex.mli b/interfaces/3.12/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/3.12/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/3.12/digest.mli b/interfaces/3.12/digest.mli
deleted file mode 100644
index 8c313d5..0000000
--- a/interfaces/3.12/digest.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type t = string
-val string : string -> t
-val substring : string -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
diff --git a/interfaces/3.12/filename.mli b/interfaces/3.12/filename.mli
deleted file mode 100644
index 6d23b8f..0000000
--- a/interfaces/3.12/filename.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?temp_dir:string -> string -> string -> (string * out_channel)
-val temp_dir_name : string
-val quote : string -> string
diff --git a/interfaces/3.12/format.mli b/interfaces/3.12/format.mli
deleted file mode 100644
index b33edf8..0000000
--- a/interfaces/3.12/format.mli
+++ /dev/null
@@ -1,143 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
diff --git a/interfaces/3.12/gc.mli b/interfaces/3.12/gc.mli
deleted file mode 100644
index aa68624..0000000
--- a/interfaces/3.12/gc.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/3.12/genlex.mli b/interfaces/3.12/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/3.12/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/3.12/hashtbl.mli b/interfaces/3.12/hashtbl.mli
deleted file mode 100644
index 00b39b2..0000000
--- a/interfaces/3.12/hashtbl.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type ('a, 'b) t
-val create : int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-  end
-val hash : 'a -> int
-external hash_param :
-  int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
diff --git a/interfaces/3.12/int32.mli b/interfaces/3.12/int32.mli
deleted file mode 100644
index 447d5e2..0000000
--- a/interfaces/3.12/int32.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "caml_int32_of_float"
-external to_float : int32 -> float = "caml_int32_to_float"
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
-external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/3.12/int64.mli b/interfaces/3.12/int64.mli
deleted file mode 100644
index 0165961..0000000
--- a/interfaces/3.12/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "caml_int64_of_float"
-external to_float : int64 -> float = "caml_int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "caml_int64_bits_of_float"
-external float_of_bits : int64 -> float = "caml_int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/3.12/lazy.mli b/interfaces/3.12/lazy.mli
deleted file mode 100644
index 7b0df25..0000000
--- a/interfaces/3.12/lazy.mli
+++ /dev/null
@@ -1,7 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/3.12/lexing.mli b/interfaces/3.12/lexing.mli
deleted file mode 100644
index 7e6a229..0000000
--- a/interfaces/3.12/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: string ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (string -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/3.12/list.mli b/interfaces/3.12/list.mli
deleted file mode 100644
index d5492a1..0000000
--- a/interfaces/3.12/list.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.12/listLabels.mli b/interfaces/3.12/listLabels.mli
deleted file mode 100644
index 675ffcd..0000000
--- a/interfaces/3.12/listLabels.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.12/map.mli b/interfaces/3.12/map.mli
deleted file mode 100644
index 871eec3..0000000
--- a/interfaces/3.12/map.mli
+++ /dev/null
@@ -1,62 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type 'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
diff --git a/interfaces/3.12/marshal.mli b/interfaces/3.12/marshal.mli
deleted file mode 100644
index 279f355..0000000
--- a/interfaces/3.12/marshal.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : string -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : string -> int -> int
-val total_size : string -> int -> int
diff --git a/interfaces/3.12/moreLabels.mli b/interfaces/3.12/moreLabels.mli
deleted file mode 100644
index 55f0823..0000000
--- a/interfaces/3.12/moreLabels.mli
+++ /dev/null
@@ -1,185 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  module type HashedType  = Hashtbl.HashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-    end
-  val hash : 'a -> int
-  external hash_param :
-    int -> int -> 'a -> int = "caml_hash_univ_param" "noalloc"
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-end
diff --git a/interfaces/3.12/nativeint.mli b/interfaces/3.12/nativeint.mli
deleted file mode 100644
index 1ee93a8..0000000
--- a/interfaces/3.12/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "caml_nativeint_of_float"
-external to_float : nativeint -> float = "caml_nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/3.12/obj.mli b/interfaces/3.12/obj.mli
deleted file mode 100644
index af11aab..0000000
--- a/interfaces/3.12/obj.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-external size : t -> int = "%obj_size"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val marshal : t -> string
-val unmarshal : string -> int -> (t * int)
diff --git a/interfaces/3.12/oo.mli b/interfaces/3.12/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/3.12/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/3.12/parsing.mli b/interfaces/3.12/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/3.12/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/3.12/pervasives.mli b/interfaces/3.12/pervasives.mli
deleted file mode 100644
index d382351..0000000
--- a/interfaces/3.12/pervasives.mli
+++ /dev/null
@@ -1,193 +0,0 @@
-external raise : exn -> 'a = "%raise"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-external exp : float -> float = "caml_exp_float" "exp" "float"
-external log : float -> float = "caml_log_float" "log" "float"
-external log10 : float -> float = "caml_log10_float" "log10" "float"
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
-external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
-external cos : float -> float = "caml_cos_float" "cos" "float"
-external sin : float -> float = "caml_sin_float" "sin" "float"
-external tan : float -> float = "caml_tan_float" "tan" "float"
-external acos : float -> float = "caml_acos_float" "acos" "float"
-external asin : float -> float = "caml_asin_float" "asin" "float"
-external atan : float -> float = "caml_atan_float" "atan" "float"
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-external floor : float -> float = "caml_floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external mod_float :
-  float -> float -> float = "caml_fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp : float -> int -> float = "caml_ldexp_float"
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "caml_classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> string -> int -> int -> int
-val really_input : in_channel -> string -> int -> int -> unit
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> string -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/3.12/printexc.mli b/interfaces/3.12/printexc.mli
deleted file mode 100644
index 8428729..0000000
--- a/interfaces/3.12/printexc.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
diff --git a/interfaces/3.12/printf.mli b/interfaces/3.12/printf.mli
deleted file mode 100644
index d255fb8..0000000
--- a/interfaces/3.12/printf.mli
+++ /dev/null
@@ -1,63 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val ifprintf : 'a -> ('b, 'a, unit) format -> 'b
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kbprintf :
-  (Buffer.t -> 'a) -> Buffer.t -> ('b, Buffer.t, unit, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-module CamlinternalPr :
-sig
-  module Sformat :
-  sig
-    type index
-    val index_of_int : int -> index
-    external int_of_index : index -> int = "%identity"
-    external unsafe_index_of_int : int -> index = "%identity"
-    val succ_index : index -> index
-    val sub : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> index -> int -> string
-    val to_string : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    external length :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int = "%string_length"
-    external get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_safe_get"
-    external unsafe_to_string :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string = "%identity"
-    external unsafe_get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_unsafe_get"
-  end
-  module Tformat :
-  sig
-    type ac =
-      {
-      mutable ac_rglr: int ;
-      mutable ac_skip: int ;
-      mutable ac_rdrs: int }
-    val ac_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ac
-    val sub_format :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int) ->
-        (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char -> int) ->
-          char -> ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> int
-    val summarize_format_type : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    val scan_format :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-        'g array ->
-          Sformat.index ->
-            int ->
-              (Sformat.index -> string -> int -> 'h) ->
-                (Sformat.index -> 'i -> 'j -> int -> 'h) ->
-                  (Sformat.index -> 'k -> int -> 'h) ->
-                    (Sformat.index -> int -> 'h) ->
-                      (Sformat.index ->
-                         ('l, 'm, 'n, 'o, 'p, 'q) format6 -> int -> 'h)
-                        -> 'h
-    val kapr :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> Obj.t array -> 'g) ->
-        ('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g
-  end
-end
diff --git a/interfaces/3.12/queue.mli b/interfaces/3.12/queue.mli
deleted file mode 100644
index c475a78..0000000
--- a/interfaces/3.12/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/3.12/random.mli b/interfaces/3.12/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/3.12/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/3.12/scanf.mli b/interfaces/3.12/scanf.mli
deleted file mode 100644
index 91070c8..0000000
--- a/interfaces/3.12/scanf.mli
+++ /dev/null
@@ -1,39 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  val open_in : string -> in_channel
-  val open_in_bin : string -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : string -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'a) -> ('b, 'c, 'd, 'a) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
diff --git a/interfaces/3.12/set.mli b/interfaces/3.12/set.mli
deleted file mode 100644
index 3541f34..0000000
--- a/interfaces/3.12/set.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
diff --git a/interfaces/3.12/sort.mli b/interfaces/3.12/sort.mli
deleted file mode 100644
index 336c5ac..0000000
--- a/interfaces/3.12/sort.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list
-val array : ('a -> 'a -> bool) -> 'a array -> unit
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/3.12/stack.mli b/interfaces/3.12/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/3.12/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.12/stdLabels.mli b/interfaces/3.12/stdLabels.mli
deleted file mode 100644
index efedfe1..0000000
--- a/interfaces/3.12/stdLabels.mli
+++ /dev/null
@@ -1,115 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : string -> int -> char -> unit = "%string_safe_set"
-  external create : int -> string = "caml_create_string"
-  val make : int -> char -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : string -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    string -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-end
diff --git a/interfaces/3.12/stream.mli b/interfaces/3.12/stream.mli
deleted file mode 100644
index 0d11d4b..0000000
--- a/interfaces/3.12/stream.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/3.12/string.mli b/interfaces/3.12/string.mli
deleted file mode 100644
index 1cbb55b..0000000
--- a/interfaces/3.12/string.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : string -> int -> int -> char -> unit
-val blit : string -> int -> string -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> string -> int -> int -> unit = "caml_blit_string"
-    "noalloc"
-external unsafe_fill :
-  string -> int -> int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.12/stringLabels.mli b/interfaces/3.12/stringLabels.mli
deleted file mode 100644
index e4f4ecd..0000000
--- a/interfaces/3.12/stringLabels.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : string -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  string -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/3.12/sys.mli b/interfaces/3.12/sys.mli
deleted file mode 100644
index 9eace15..0000000
--- a/interfaces/3.12/sys.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time : unit -> float = "caml_sys_time"
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val word_size : int
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/3.12/weak.mli b/interfaces/3.12/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/3.12/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.00/arg.mli b/interfaces/4.00/arg.mli
deleted file mode 100644
index 826b071..0000000
--- a/interfaces/4.00/arg.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/4.00/array.mli b/interfaces/4.00/array.mli
deleted file mode 100644
index 310168d..0000000
--- a/interfaces/4.00/array.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.00/arrayLabels.mli b/interfaces/4.00/arrayLabels.mli
deleted file mode 100644
index d780dcc..0000000
--- a/interfaces/4.00/arrayLabels.mli
+++ /dev/null
@@ -1,29 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.00/buffer.mli b/interfaces/4.00/buffer.mli
deleted file mode 100644
index a7c771d..0000000
--- a/interfaces/4.00/buffer.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val sub : t -> int -> int -> string
-val blit : t -> int -> string -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/4.00/callback.mli b/interfaces/4.00/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.00/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.00/char.mli b/interfaces/4.00/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/4.00/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.00/complex.mli b/interfaces/4.00/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.00/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.00/digest.mli b/interfaces/4.00/digest.mli
deleted file mode 100644
index 682252b..0000000
--- a/interfaces/4.00/digest.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val string : string -> t
-val substring : string -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.00/filename.mli b/interfaces/4.00/filename.mli
deleted file mode 100644
index 206a77b..0000000
--- a/interfaces/4.00/filename.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
diff --git a/interfaces/4.00/format.mli b/interfaces/4.00/format.mli
deleted file mode 100644
index b33edf8..0000000
--- a/interfaces/4.00/format.mli
+++ /dev/null
@@ -1,143 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
diff --git a/interfaces/4.00/gc.mli b/interfaces/4.00/gc.mli
deleted file mode 100644
index aa68624..0000000
--- a/interfaces/4.00/gc.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.00/genlex.mli b/interfaces/4.00/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.00/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.00/hashtbl.mli b/interfaces/4.00/hashtbl.mli
deleted file mode 100644
index a3dfbf3..0000000
--- a/interfaces/4.00/hashtbl.mli
+++ /dev/null
@@ -1,108 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.00/int32.mli b/interfaces/4.00/int32.mli
deleted file mode 100644
index 447d5e2..0000000
--- a/interfaces/4.00/int32.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "caml_int32_of_float"
-external to_float : int32 -> float = "caml_int32_to_float"
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
-external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.00/int64.mli b/interfaces/4.00/int64.mli
deleted file mode 100644
index 0165961..0000000
--- a/interfaces/4.00/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "caml_int64_of_float"
-external to_float : int64 -> float = "caml_int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "caml_int64_bits_of_float"
-external float_of_bits : int64 -> float = "caml_int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.00/lazy.mli b/interfaces/4.00/lazy.mli
deleted file mode 100644
index 4430c16..0000000
--- a/interfaces/4.00/lazy.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.00/lexing.mli b/interfaces/4.00/lexing.mli
deleted file mode 100644
index 7e6a229..0000000
--- a/interfaces/4.00/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: string ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (string -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.00/list.mli b/interfaces/4.00/list.mli
deleted file mode 100644
index 286e5ba..0000000
--- a/interfaces/4.00/list.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.00/listLabels.mli b/interfaces/4.00/listLabels.mli
deleted file mode 100644
index d1d0ac1..0000000
--- a/interfaces/4.00/listLabels.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.00/map.mli b/interfaces/4.00/map.mli
deleted file mode 100644
index 871eec3..0000000
--- a/interfaces/4.00/map.mli
+++ /dev/null
@@ -1,62 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type 'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
diff --git a/interfaces/4.00/marshal.mli b/interfaces/4.00/marshal.mli
deleted file mode 100644
index 279f355..0000000
--- a/interfaces/4.00/marshal.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : string -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : string -> int -> int
-val total_size : string -> int -> int
diff --git a/interfaces/4.00/moreLabels.mli b/interfaces/4.00/moreLabels.mli
deleted file mode 100644
index 076a621..0000000
--- a/interfaces/4.00/moreLabels.mli
+++ /dev/null
@@ -1,234 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-    end
-end
diff --git a/interfaces/4.00/nativeint.mli b/interfaces/4.00/nativeint.mli
deleted file mode 100644
index 1ee93a8..0000000
--- a/interfaces/4.00/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "caml_nativeint_of_float"
-external to_float : nativeint -> float = "caml_nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.00/obj.mli b/interfaces/4.00/obj.mli
deleted file mode 100644
index af11aab..0000000
--- a/interfaces/4.00/obj.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-external size : t -> int = "%obj_size"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val marshal : t -> string
-val unmarshal : string -> int -> (t * int)
diff --git a/interfaces/4.00/oo.mli b/interfaces/4.00/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.00/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.00/parsing.mli b/interfaces/4.00/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.00/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.00/pervasives.mli b/interfaces/4.00/pervasives.mli
deleted file mode 100644
index 80a0f4f..0000000
--- a/interfaces/4.00/pervasives.mli
+++ /dev/null
@@ -1,197 +0,0 @@
-external raise : exn -> 'a = "%raise"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-external exp : float -> float = "caml_exp_float" "exp" "float"
-external log : float -> float = "caml_log_float" "log" "float"
-external log10 : float -> float = "caml_log10_float" "log10" "float"
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
-external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
-external cos : float -> float = "caml_cos_float" "cos" "float"
-external sin : float -> float = "caml_sin_float" "sin" "float"
-external tan : float -> float = "caml_tan_float" "tan" "float"
-external acos : float -> float = "caml_acos_float" "acos" "float"
-external asin : float -> float = "caml_asin_float" "asin" "float"
-external atan : float -> float = "caml_atan_float" "atan" "float"
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-external hypot :
-  float -> float -> float = "caml_hypot_float" "caml_hypot" "float"
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-external floor : float -> float = "caml_floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign" "float"
-external mod_float :
-  float -> float -> float = "caml_fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp : float -> int -> float = "caml_ldexp_float"
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "caml_classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> string -> int -> int -> int
-val really_input : in_channel -> string -> int -> int -> unit
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> string -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.00/printexc.mli b/interfaces/4.00/printexc.mli
deleted file mode 100644
index 8428729..0000000
--- a/interfaces/4.00/printexc.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
diff --git a/interfaces/4.00/printf.mli b/interfaces/4.00/printf.mli
deleted file mode 100644
index d255fb8..0000000
--- a/interfaces/4.00/printf.mli
+++ /dev/null
@@ -1,63 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val ifprintf : 'a -> ('b, 'a, unit) format -> 'b
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kbprintf :
-  (Buffer.t -> 'a) -> Buffer.t -> ('b, Buffer.t, unit, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-module CamlinternalPr :
-sig
-  module Sformat :
-  sig
-    type index
-    val index_of_int : int -> index
-    external int_of_index : index -> int = "%identity"
-    external unsafe_index_of_int : int -> index = "%identity"
-    val succ_index : index -> index
-    val sub : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> index -> int -> string
-    val to_string : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    external length :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int = "%string_length"
-    external get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_safe_get"
-    external unsafe_to_string :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string = "%identity"
-    external unsafe_get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_unsafe_get"
-  end
-  module Tformat :
-  sig
-    type ac =
-      {
-      mutable ac_rglr: int ;
-      mutable ac_skip: int ;
-      mutable ac_rdrs: int }
-    val ac_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ac
-    val sub_format :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int) ->
-        (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char -> int) ->
-          char -> ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> int
-    val summarize_format_type : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    val scan_format :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-        'g array ->
-          Sformat.index ->
-            int ->
-              (Sformat.index -> string -> int -> 'h) ->
-                (Sformat.index -> 'i -> 'j -> int -> 'h) ->
-                  (Sformat.index -> 'k -> int -> 'h) ->
-                    (Sformat.index -> int -> 'h) ->
-                      (Sformat.index ->
-                         ('l, 'm, 'n, 'o, 'p, 'q) format6 -> int -> 'h)
-                        -> 'h
-    val kapr :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> Obj.t array -> 'g) ->
-        ('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g
-  end
-end
diff --git a/interfaces/4.00/queue.mli b/interfaces/4.00/queue.mli
deleted file mode 100644
index baf669d..0000000
--- a/interfaces/4.00/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/4.00/random.mli b/interfaces/4.00/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.00/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.00/scanf.mli b/interfaces/4.00/scanf.mli
deleted file mode 100644
index d0800eb..0000000
--- a/interfaces/4.00/scanf.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
diff --git a/interfaces/4.00/set.mli b/interfaces/4.00/set.mli
deleted file mode 100644
index 3541f34..0000000
--- a/interfaces/4.00/set.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-  end
diff --git a/interfaces/4.00/sort.mli b/interfaces/4.00/sort.mli
deleted file mode 100644
index 336c5ac..0000000
--- a/interfaces/4.00/sort.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list
-val array : ('a -> 'a -> bool) -> 'a array -> unit
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.00/stack.mli b/interfaces/4.00/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/4.00/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.00/stdLabels.mli b/interfaces/4.00/stdLabels.mli
deleted file mode 100644
index e0e75b6..0000000
--- a/interfaces/4.00/stdLabels.mli
+++ /dev/null
@@ -1,118 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : string -> int -> char -> unit = "%string_safe_set"
-  external create : int -> string = "caml_create_string"
-  val make : int -> char -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : string -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val iteri : f:(int -> char -> unit) -> string -> unit
-  val map : f:(char -> char) -> string -> string
-  val trim : string -> string
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    string -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-end
diff --git a/interfaces/4.00/stream.mli b/interfaces/4.00/stream.mli
deleted file mode 100644
index 0d11d4b..0000000
--- a/interfaces/4.00/stream.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.00/string.mli b/interfaces/4.00/string.mli
deleted file mode 100644
index 8e6cb2e..0000000
--- a/interfaces/4.00/string.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : string -> int -> int -> char -> unit
-val blit : string -> int -> string -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> string -> int -> int -> unit = "caml_blit_string"
-    "noalloc"
-external unsafe_fill :
-  string -> int -> int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/4.00/stringLabels.mli b/interfaces/4.00/stringLabels.mli
deleted file mode 100644
index 59cecc5..0000000
--- a/interfaces/4.00/stringLabels.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : string -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  string -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/4.00/sys.mli b/interfaces/4.00/sys.mli
deleted file mode 100644
index 2b2c369..0000000
--- a/interfaces/4.00/sys.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time : unit -> float = "caml_sys_time"
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val word_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/4.00/weak.mli b/interfaces/4.00/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/4.00/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.01/arg.mli b/interfaces/4.01/arg.mli
deleted file mode 100644
index b865515..0000000
--- a/interfaces/4.01/arg.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (string * spec * string) list ref -> anon_fun -> string -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array ->
-      (string * spec * string) list ref -> anon_fun -> string -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/4.01/array.mli b/interfaces/4.01/array.mli
deleted file mode 100644
index 310168d..0000000
--- a/interfaces/4.01/array.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.01/arrayLabels.mli b/interfaces/4.01/arrayLabels.mli
deleted file mode 100644
index d780dcc..0000000
--- a/interfaces/4.01/arrayLabels.mli
+++ /dev/null
@@ -1,29 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.01/buffer.mli b/interfaces/4.01/buffer.mli
deleted file mode 100644
index a7c771d..0000000
--- a/interfaces/4.01/buffer.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val sub : t -> int -> int -> string
-val blit : t -> int -> string -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/4.01/callback.mli b/interfaces/4.01/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.01/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.01/char.mli b/interfaces/4.01/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/4.01/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.01/complex.mli b/interfaces/4.01/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.01/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.01/digest.mli b/interfaces/4.01/digest.mli
deleted file mode 100644
index 682252b..0000000
--- a/interfaces/4.01/digest.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val string : string -> t
-val substring : string -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.01/filename.mli b/interfaces/4.01/filename.mli
deleted file mode 100644
index 206a77b..0000000
--- a/interfaces/4.01/filename.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
diff --git a/interfaces/4.01/format.mli b/interfaces/4.01/format.mli
deleted file mode 100644
index 4e1310b..0000000
--- a/interfaces/4.01/format.mli
+++ /dev/null
@@ -1,156 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit }
-val set_formatter_out_functions : formatter_out_functions -> unit
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
diff --git a/interfaces/4.01/gc.mli b/interfaces/4.01/gc.mli
deleted file mode 100644
index aa68624..0000000
--- a/interfaces/4.01/gc.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.01/genlex.mli b/interfaces/4.01/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.01/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.01/hashtbl.mli b/interfaces/4.01/hashtbl.mli
deleted file mode 100644
index a3dfbf3..0000000
--- a/interfaces/4.01/hashtbl.mli
+++ /dev/null
@@ -1,108 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.01/int32.mli b/interfaces/4.01/int32.mli
deleted file mode 100644
index 447d5e2..0000000
--- a/interfaces/4.01/int32.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "caml_int32_of_float"
-external to_float : int32 -> float = "caml_int32_to_float"
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
-external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.01/int64.mli b/interfaces/4.01/int64.mli
deleted file mode 100644
index 0165961..0000000
--- a/interfaces/4.01/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "caml_int64_of_float"
-external to_float : int64 -> float = "caml_int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "caml_int64_bits_of_float"
-external float_of_bits : int64 -> float = "caml_int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.01/lazy.mli b/interfaces/4.01/lazy.mli
deleted file mode 100644
index 4430c16..0000000
--- a/interfaces/4.01/lazy.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.01/lexing.mli b/interfaces/4.01/lexing.mli
deleted file mode 100644
index 7e6a229..0000000
--- a/interfaces/4.01/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: string ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (string -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.01/list.mli b/interfaces/4.01/list.mli
deleted file mode 100644
index 286e5ba..0000000
--- a/interfaces/4.01/list.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.01/listLabels.mli b/interfaces/4.01/listLabels.mli
deleted file mode 100644
index d1d0ac1..0000000
--- a/interfaces/4.01/listLabels.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.01/map.mli b/interfaces/4.01/map.mli
deleted file mode 100644
index 871eec3..0000000
--- a/interfaces/4.01/map.mli
+++ /dev/null
@@ -1,62 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type 'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
diff --git a/interfaces/4.01/marshal.mli b/interfaces/4.01/marshal.mli
deleted file mode 100644
index b5d6c8e..0000000
--- a/interfaces/4.01/marshal.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : string -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : string -> int -> int
-val total_size : string -> int -> int
diff --git a/interfaces/4.01/moreLabels.mli b/interfaces/4.01/moreLabels.mli
deleted file mode 100644
index 3999663..0000000
--- a/interfaces/4.01/moreLabels.mli
+++ /dev/null
@@ -1,236 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-    end
-end
diff --git a/interfaces/4.01/nativeint.mli b/interfaces/4.01/nativeint.mli
deleted file mode 100644
index 1ee93a8..0000000
--- a/interfaces/4.01/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "caml_nativeint_of_float"
-external to_float : nativeint -> float = "caml_nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.01/obj.mli b/interfaces/4.01/obj.mli
deleted file mode 100644
index af11aab..0000000
--- a/interfaces/4.01/obj.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-external size : t -> int = "%obj_size"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val marshal : t -> string
-val unmarshal : string -> int -> (t * int)
diff --git a/interfaces/4.01/oo.mli b/interfaces/4.01/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.01/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.01/parsing.mli b/interfaces/4.01/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.01/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.01/pervasives.mli b/interfaces/4.01/pervasives.mli
deleted file mode 100644
index 7d873f4..0000000
--- a/interfaces/4.01/pervasives.mli
+++ /dev/null
@@ -1,199 +0,0 @@
-external raise : exn -> 'a = "%raise"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-external exp : float -> float = "caml_exp_float" "exp" "float"
-external log : float -> float = "caml_log_float" "log" "float"
-external log10 : float -> float = "caml_log10_float" "log10" "float"
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
-external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
-external cos : float -> float = "caml_cos_float" "cos" "float"
-external sin : float -> float = "caml_sin_float" "sin" "float"
-external tan : float -> float = "caml_tan_float" "tan" "float"
-external acos : float -> float = "caml_acos_float" "acos" "float"
-external asin : float -> float = "caml_asin_float" "asin" "float"
-external atan : float -> float = "caml_atan_float" "atan" "float"
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-external hypot :
-  float -> float -> float = "caml_hypot_float" "caml_hypot" "float"
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-external floor : float -> float = "caml_floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign" "float"
-external mod_float :
-  float -> float -> float = "caml_fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp : float -> int -> float = "caml_ldexp_float"
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "caml_classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> string -> int -> int -> int
-val really_input : in_channel -> string -> int -> int -> unit
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> string -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.01/printexc.mli b/interfaces/4.01/printexc.mli
deleted file mode 100644
index 9812032..0000000
--- a/interfaces/4.01/printexc.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-val get_callstack : int -> raw_backtrace
diff --git a/interfaces/4.01/printf.mli b/interfaces/4.01/printf.mli
deleted file mode 100644
index 6abf4c8..0000000
--- a/interfaces/4.01/printf.mli
+++ /dev/null
@@ -1,69 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'a -> ('b, 'a, unit) format -> 'b
-val kfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kbprintf :
-  (Buffer.t -> 'a) -> Buffer.t -> ('b, Buffer.t, unit, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-module CamlinternalPr :
-sig
-  module Sformat :
-  sig
-    type index
-    val index_of_int : int -> index
-    external int_of_index : index -> int = "%identity"
-    external unsafe_index_of_int : int -> index = "%identity"
-    val succ_index : index -> index
-    val add_int_index : int -> index -> index
-    val sub : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> index -> int -> string
-    val to_string : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    external length :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int = "%string_length"
-    external get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_safe_get"
-    external unsafe_to_string :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string = "%identity"
-    external unsafe_get :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char = "%string_unsafe_get"
-  end
-  module Tformat :
-  sig
-    type ac =
-      {
-      mutable ac_rglr: int ;
-      mutable ac_skip: int ;
-      mutable ac_rdrs: int }
-    val ac_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ac
-    val count_printing_arguments_of_format :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int
-    val sub_format :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int) ->
-        (('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> char -> int) ->
-          char -> ('a, 'b, 'c, 'd, 'e, 'f) format6 -> int -> int
-    val summarize_format_type : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-    val scan_format :
-      ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-        'g array ->
-          Sformat.index ->
-            int ->
-              (Sformat.index -> string -> int -> 'h) ->
-                (Sformat.index -> 'i -> 'j -> int -> 'h) ->
-                  (Sformat.index -> 'k -> int -> 'h) ->
-                    (Sformat.index -> int -> 'h) ->
-                      (Sformat.index ->
-                         ('l, 'm, 'n, 'o, 'p, 'q) format6 -> int -> 'h)
-                        -> 'h
-    val kapr :
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> Obj.t array -> 'g) ->
-        ('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g
-  end
-end
diff --git a/interfaces/4.01/queue.mli b/interfaces/4.01/queue.mli
deleted file mode 100644
index baf669d..0000000
--- a/interfaces/4.01/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/4.01/random.mli b/interfaces/4.01/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.01/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.01/scanf.mli b/interfaces/4.01/scanf.mli
deleted file mode 100644
index d0800eb..0000000
--- a/interfaces/4.01/scanf.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
diff --git a/interfaces/4.01/set.mli b/interfaces/4.01/set.mli
deleted file mode 100644
index 316bd0b..0000000
--- a/interfaces/4.01/set.mli
+++ /dev/null
@@ -1,62 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-  end
diff --git a/interfaces/4.01/sort.mli b/interfaces/4.01/sort.mli
deleted file mode 100644
index 336c5ac..0000000
--- a/interfaces/4.01/sort.mli
+++ /dev/null
@@ -1,3 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list
-val array : ('a -> 'a -> bool) -> 'a array -> unit
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.01/stack.mli b/interfaces/4.01/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/4.01/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.01/stdLabels.mli b/interfaces/4.01/stdLabels.mli
deleted file mode 100644
index e0e75b6..0000000
--- a/interfaces/4.01/stdLabels.mli
+++ /dev/null
@@ -1,118 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : string -> int -> char -> unit = "%string_safe_set"
-  external create : int -> string = "caml_create_string"
-  val make : int -> char -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : string -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val iteri : f:(int -> char -> unit) -> string -> unit
-  val map : f:(char -> char) -> string -> string
-  val trim : string -> string
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    string -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-end
diff --git a/interfaces/4.01/stream.mli b/interfaces/4.01/stream.mli
deleted file mode 100644
index 0d11d4b..0000000
--- a/interfaces/4.01/stream.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.01/string.mli b/interfaces/4.01/string.mli
deleted file mode 100644
index 8e6cb2e..0000000
--- a/interfaces/4.01/string.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : string -> int -> int -> char -> unit
-val blit : string -> int -> string -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> string -> int -> int -> unit = "caml_blit_string"
-    "noalloc"
-external unsafe_fill :
-  string -> int -> int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/4.01/stringLabels.mli b/interfaces/4.01/stringLabels.mli
deleted file mode 100644
index 59cecc5..0000000
--- a/interfaces/4.01/stringLabels.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : string -> int -> char -> unit = "%string_safe_set"
-external create : int -> string = "caml_create_string"
-val make : int -> char -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : string -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  string -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/4.01/sys.mli b/interfaces/4.01/sys.mli
deleted file mode 100644
index eb72d15..0000000
--- a/interfaces/4.01/sys.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time : unit -> float = "caml_sys_time"
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/4.01/weak.mli b/interfaces/4.01/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/4.01/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.02/arg.mli b/interfaces/4.02/arg.mli
deleted file mode 100644
index 03497b6..0000000
--- a/interfaces/4.02/arg.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/4.02/array.mli b/interfaces/4.02/array.mli
deleted file mode 100644
index 17ba985..0000000
--- a/interfaces/4.02/array.mli
+++ /dev/null
@@ -1,30 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                        "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-external make_float : int -> float array = "caml_make_float_vect"
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.02/arrayLabels.mli b/interfaces/4.02/arrayLabels.mli
deleted file mode 100644
index a84c3c9..0000000
--- a/interfaces/4.02/arrayLabels.mli
+++ /dev/null
@@ -1,31 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use ArrayLabels.make instead."]
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                                  "Use ArrayLabels.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.02/buffer.mli b/interfaces/4.02/buffer.mli
deleted file mode 100644
index 3f05547..0000000
--- a/interfaces/4.02/buffer.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/4.02/bytes.mli b/interfaces/4.02/bytes.mli
deleted file mode 100644
index 894dd94..0000000
--- a/interfaces/4.02/bytes.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-external length : bytes -> int = "%string_length"
-external get : bytes -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val rindex : bytes -> char -> int
-val index_from : bytes -> int -> char -> int
-val rindex_from : bytes -> int -> char -> int
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-external unsafe_get : bytes -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_string" "noalloc"
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string" "noalloc"
diff --git a/interfaces/4.02/bytesLabels.mli b/interfaces/4.02/bytesLabels.mli
deleted file mode 100644
index 1673a23..0000000
--- a/interfaces/4.02/bytesLabels.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-external length : bytes -> int = "%string_length"
-external get : bytes -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> int -> int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val rindex : bytes -> char -> int
-val index_from : bytes -> int -> char -> int
-val rindex_from : bytes -> int -> char -> int
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-external unsafe_get : bytes -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.02/callback.mli b/interfaces/4.02/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.02/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.02/char.mli b/interfaces/4.02/char.mli
deleted file mode 100644
index 0bbe756..0000000
--- a/interfaces/4.02/char.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-type t = char
-val compare : t -> t -> int
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.02/complex.mli b/interfaces/4.02/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.02/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.02/digest.mli b/interfaces/4.02/digest.mli
deleted file mode 100644
index d018fb0..0000000
--- a/interfaces/4.02/digest.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.02/filename.mli b/interfaces/4.02/filename.mli
deleted file mode 100644
index 0ac37a7..0000000
--- a/interfaces/4.02/filename.mli
+++ /dev/null
@@ -1,20 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string[@@ocaml.deprecated
-                            "Use Filename.get_temp_dir_name instead"]
-val quote : string -> string
diff --git a/interfaces/4.02/format.mli b/interfaces/4.02/format.mli
deleted file mode 100644
index 744aa3c..0000000
--- a/interfaces/4.02/format.mli
+++ /dev/null
@@ -1,166 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val open_tbox : unit -> unit
-val close_tbox : unit -> unit
-val print_tbreak : int -> int -> unit
-val set_tab : unit -> unit
-val print_tab : unit -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit }
-val set_formatter_out_functions : formatter_out_functions -> unit
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_open_tbox : formatter -> unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val pp_set_tab : formatter -> unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a[@@ocaml.deprecated
-                                                              "- : Buffer.t -> ('a, Format.formatter, unit) format -> 'a = <fun>"]
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b[@@ocaml.deprecated
-                                                                    "Use Format.ksprintf instead."]
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                              "Use Format.set_formatter_out_functions instead."]
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))[@@ocaml.deprecated
-                      "Use Format.get_formatter_out_functions instead."]
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                                "Use Format.pp_set_formatter_out_functions instead."]
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))[@@ocaml.deprecated
-                        "Use Format.pp_get_formatter_out_functions instead."]
diff --git a/interfaces/4.02/gc.mli b/interfaces/4.02/gc.mli
deleted file mode 100644
index aa68624..0000000
--- a/interfaces/4.02/gc.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.02/genlex.mli b/interfaces/4.02/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.02/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.02/hashtbl.mli b/interfaces/4.02/hashtbl.mli
deleted file mode 100644
index a3dfbf3..0000000
--- a/interfaces/4.02/hashtbl.mli
+++ /dev/null
@@ -1,108 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.02/int32.mli b/interfaces/4.02/int32.mli
deleted file mode 100644
index 447d5e2..0000000
--- a/interfaces/4.02/int32.mli
+++ /dev/null
@@ -1,32 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float : float -> int32 = "caml_int32_of_float"
-external to_float : int32 -> float = "caml_int32_to_float"
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float : float -> int32 = "caml_int32_bits_of_float"
-external float_of_bits : int32 -> float = "caml_int32_float_of_bits"
-type t = int32
-val compare : t -> t -> int
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.02/int64.mli b/interfaces/4.02/int64.mli
deleted file mode 100644
index 0165961..0000000
--- a/interfaces/4.02/int64.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float : float -> int64 = "caml_int64_of_float"
-external to_float : int64 -> float = "caml_int64_to_float"
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float : float -> int64 = "caml_int64_bits_of_float"
-external float_of_bits : int64 -> float = "caml_int64_float_of_bits"
-type t = int64
-val compare : t -> t -> int
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.02/lazy.mli b/interfaces/4.02/lazy.mli
deleted file mode 100644
index 0db00dd..0000000
--- a/interfaces/4.02/lazy.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t[@@ocaml.deprecated
-                                          "Use Lazy.from_fun instead."]
-val lazy_from_val : 'a -> 'a t[@@ocaml.deprecated
-                                "Use Lazy.from_val instead."]
-val lazy_is_val : 'a t -> bool[@@ocaml.deprecated "Use Lazy.is_val instead."]
diff --git a/interfaces/4.02/lexing.mli b/interfaces/4.02/lexing.mli
deleted file mode 100644
index 99b0fa8..0000000
--- a/interfaces/4.02/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (bytes -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.02/list.mli b/interfaces/4.02/list.mli
deleted file mode 100644
index f6adc15..0000000
--- a/interfaces/4.02/list.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.02/listLabels.mli b/interfaces/4.02/listLabels.mli
deleted file mode 100644
index d1d0ac1..0000000
--- a/interfaces/4.02/listLabels.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.02/map.mli b/interfaces/4.02/map.mli
deleted file mode 100644
index 328beae..0000000
--- a/interfaces/4.02/map.mli
+++ /dev/null
@@ -1,62 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
diff --git a/interfaces/4.02/marshal.mli b/interfaces/4.02/marshal.mli
deleted file mode 100644
index b4a905b..0000000
--- a/interfaces/4.02/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_string"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.02/moreLabels.mli b/interfaces/4.02/moreLabels.mli
deleted file mode 100644
index fe31598..0000000
--- a/interfaces/4.02/moreLabels.mli
+++ /dev/null
@@ -1,238 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val of_list : elt list -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val of_list : elt list -> t
-    end
-end
diff --git a/interfaces/4.02/nativeint.mli b/interfaces/4.02/nativeint.mli
deleted file mode 100644
index 1ee93a8..0000000
--- a/interfaces/4.02/nativeint.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float : float -> nativeint = "caml_nativeint_of_float"
-external to_float : nativeint -> float = "caml_nativeint_to_float"
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.02/obj.mli b/interfaces/4.02/obj.mli
deleted file mode 100644
index 0e81c4c..0000000
--- a/interfaces/4.02/obj.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-external size : t -> int = "%obj_size"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int[@@ocaml.deprecated "Replaced by custom_tag."]
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val extension_name : 'a -> string
-val extension_id : 'a -> int
-val extension_slot : 'a -> t
-val marshal : t -> bytes[@@ocaml.deprecated "Use Marshal.to_bytes instead."]
-val unmarshal : bytes -> int -> (t * int)[@@ocaml.deprecated
-                                           "Use Marshal.from_bytes and Marshal.total_size instead."]
diff --git a/interfaces/4.02/oo.mli b/interfaces/4.02/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.02/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.02/parsing.mli b/interfaces/4.02/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.02/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.02/pervasives.mli b/interfaces/4.02/pervasives.mli
deleted file mode 100644
index 0bb076b..0000000
--- a/interfaces/4.02/pervasives.mli
+++ /dev/null
@@ -1,217 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"[@@ocaml.deprecated
-                                                  "Use (&&) instead."]
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"[@@ocaml.deprecated
-                                                  "Use (||) instead."]
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float"
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
-external exp : float -> float = "caml_exp_float" "exp" "float"
-external log : float -> float = "caml_log_float" "log" "float"
-external log10 : float -> float = "caml_log10_float" "log10" "float"
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
-external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
-external cos : float -> float = "caml_cos_float" "cos" "float"
-external sin : float -> float = "caml_sin_float" "sin" "float"
-external tan : float -> float = "caml_tan_float" "tan" "float"
-external acos : float -> float = "caml_acos_float" "acos" "float"
-external asin : float -> float = "caml_asin_float" "asin" "float"
-external atan : float -> float = "caml_atan_float" "atan" "float"
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
-external hypot :
-  float -> float -> float = "caml_hypot_float" "caml_hypot" "float"
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
-external floor : float -> float = "caml_floor_float" "floor" "float"
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign" "float"
-external mod_float :
-  float -> float -> float = "caml_fmod_float" "fmod" "float"
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp : float -> int -> float = "caml_ldexp_float"
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float : float -> fpclass = "caml_classify_float"
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.02/printexc.mli b/interfaces/4.02/printexc.mli
deleted file mode 100644
index 321c4c9..0000000
--- a/interfaces/4.02/printexc.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-val get_callstack : int -> raw_backtrace
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.02/printf.mli b/interfaces/4.02/printf.mli
deleted file mode 100644
index 4817b89..0000000
--- a/interfaces/4.02/printf.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'a -> ('b, 'a, unit) format -> 'b
-val kfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (out_channel -> 'a) ->
-    out_channel -> ('b, out_channel, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kbprintf :
-  (Buffer.t -> 'a) -> Buffer.t -> ('b, Buffer.t, unit, 'a) format4 -> 'b
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
diff --git a/interfaces/4.02/queue.mli b/interfaces/4.02/queue.mli
deleted file mode 100644
index baf669d..0000000
--- a/interfaces/4.02/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/4.02/random.mli b/interfaces/4.02/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.02/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.02/scanf.mli b/interfaces/4.02/scanf.mli
deleted file mode 100644
index 8f79401..0000000
--- a/interfaces/4.02/scanf.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
diff --git a/interfaces/4.02/set.mli b/interfaces/4.02/set.mli
deleted file mode 100644
index d1567aa..0000000
--- a/interfaces/4.02/set.mli
+++ /dev/null
@@ -1,64 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val of_list : elt list -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val of_list : elt list -> t
-  end
diff --git a/interfaces/4.02/sort.mli b/interfaces/4.02/sort.mli
deleted file mode 100644
index 81820f2..0000000
--- a/interfaces/4.02/sort.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list[@@ocaml.deprecated
-                                                     "Use List.sort instead."]
-val array : ('a -> 'a -> bool) -> 'a array -> unit[@@ocaml.deprecated
-                                                    "Use Array.sort instead."]
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list[@@ocaml.deprecated
-                                                                 "Use List.merge instead."]
diff --git a/interfaces/4.02/stack.mli b/interfaces/4.02/stack.mli
deleted file mode 100644
index aa296ed..0000000
--- a/interfaces/4.02/stack.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.02/stdLabels.mli b/interfaces/4.02/stdLabels.mli
deleted file mode 100644
index 8b51637..0000000
--- a/interfaces/4.02/stdLabels.mli
+++ /dev/null
@@ -1,170 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module Bytes :
-sig
-  external length : bytes -> int = "%string_length"
-  external get : bytes -> int -> char = "%string_safe_get"
-  external set : bytes -> int -> char -> unit = "%string_safe_set"
-  external create : int -> bytes = "caml_create_string"
-  val make : int -> char -> bytes
-  val init : int -> f:(int -> char) -> bytes
-  val empty : bytes
-  val copy : bytes -> bytes
-  val of_string : string -> bytes
-  val to_string : bytes -> string
-  val sub : bytes -> pos:int -> len:int -> bytes
-  val sub_string : bytes -> int -> int -> string
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:bytes -> bytes list -> bytes
-  val iter : f:(char -> unit) -> bytes -> unit
-  val iteri : f:(int -> char -> unit) -> bytes -> unit
-  val map : f:(char -> char) -> bytes -> bytes
-  val mapi : f:(int -> char -> char) -> bytes -> bytes
-  val trim : bytes -> bytes
-  val escaped : bytes -> bytes
-  val index : bytes -> char -> int
-  val rindex : bytes -> char -> int
-  val index_from : bytes -> int -> char -> int
-  val rindex_from : bytes -> int -> char -> int
-  val contains : bytes -> char -> bool
-  val contains_from : bytes -> int -> char -> bool
-  val rcontains_from : bytes -> int -> char -> bool
-  val uppercase : bytes -> bytes
-  val lowercase : bytes -> bytes
-  val capitalize : bytes -> bytes
-  val uncapitalize : bytes -> bytes
-  type t = bytes
-  val compare : t -> t -> int
-  external unsafe_get : bytes -> int -> char = "%string_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-      "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-  val unsafe_to_string : bytes -> string
-  val unsafe_of_string : string -> bytes
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : bytes -> int -> char -> unit = "%string_safe_set"
-  external create : int -> bytes = "caml_create_string"
-  val make : int -> char -> string
-  val init : int -> f:(int -> char) -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val iteri : f:(int -> char -> unit) -> string -> unit
-  val map : f:(char -> char) -> string -> string
-  val mapi : f:(int -> char -> char) -> string -> string
-  val trim : string -> string
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string" "noalloc"
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"
-      "noalloc"
-end
diff --git a/interfaces/4.02/stream.mli b/interfaces/4.02/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.02/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.02/string.mli b/interfaces/4.02/string.mli
deleted file mode 100644
index 36f1c63..0000000
--- a/interfaces/4.02/string.mli
+++ /dev/null
@@ -1,42 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use Bytes.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use Bytes.create instead."]
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string[@@ocaml.deprecated
-                             "- : string -> string = <fun>"]
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit[@@ocaml.deprecated
-                                                "Use Bytes.fill instead."]
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string" "noalloc"
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string" "noalloc"[@@ocaml.deprecated
-                                                                    "- : bytes -> int -> int -> char -> unit = <fun>"]
diff --git a/interfaces/4.02/stringLabels.mli b/interfaces/4.02/stringLabels.mli
deleted file mode 100644
index c005134..0000000
--- a/interfaces/4.02/stringLabels.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use BytesLabels.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use BytesLabels.create instead."]
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit[@@ocaml.deprecated
-                                                        "Use BytesLabels.fill instead."]
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string" "noalloc"
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string" "noalloc"
-[@@ocaml.deprecated
-  "- : bytes -> pos:int -> len:int -> char -> unit = <fun>"]
diff --git a/interfaces/4.02/sys.mli b/interfaces/4.02/sys.mli
deleted file mode 100644
index eb72d15..0000000
--- a/interfaces/4.02/sys.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time : unit -> float = "caml_sys_time"
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
diff --git a/interfaces/4.02/weak.mli b/interfaces/4.02/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/4.02/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.03/arg.mli b/interfaces/4.03/arg.mli
deleted file mode 100644
index 03497b6..0000000
--- a/interfaces/4.03/arg.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/4.03/array.mli b/interfaces/4.03/array.mli
deleted file mode 100644
index 3c70c25..0000000
--- a/interfaces/4.03/array.mli
+++ /dev/null
@@ -1,38 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use Array.create_float instead."]
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                        "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.03/arrayLabels.mli b/interfaces/4.03/arrayLabels.mli
deleted file mode 100644
index 0dee1b6..0000000
--- a/interfaces/4.03/arrayLabels.mli
+++ /dev/null
@@ -1,38 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use ArrayLabels.make instead."]
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                                  "Use ArrayLabels.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use ArrayLabels.create_float instead."]
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.03/buffer.mli b/interfaces/4.03/buffer.mli
deleted file mode 100644
index 3f05547..0000000
--- a/interfaces/4.03/buffer.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/4.03/bytes.mli b/interfaces/4.03/bytes.mli
deleted file mode 100644
index a65ee2e..0000000
--- a/interfaces/4.03/bytes.mli
+++ /dev/null
@@ -1,55 +0,0 @@
-external length : bytes -> int = "%string_length"
-external get : bytes -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val rindex : bytes -> char -> int
-val index_from : bytes -> int -> char -> int
-val rindex_from : bytes -> int -> char -> int
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.uppercase_ascii instead."]
-val lowercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.lowercase_ascii instead."]
-val capitalize : bytes -> bytes[@@ocaml.deprecated
-                                 "Use Bytes.capitalize_ascii instead."]
-val uncapitalize : bytes -> bytes[@@ocaml.deprecated
-                                   "Use Bytes.uncapitalize_ascii instead."]
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-external unsafe_get : bytes -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@noalloc ]
diff --git a/interfaces/4.03/bytesLabels.mli b/interfaces/4.03/bytesLabels.mli
deleted file mode 100644
index fc933e5..0000000
--- a/interfaces/4.03/bytesLabels.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-external length : bytes -> int = "%string_length"
-external get : bytes -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> int -> int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val rindex : bytes -> char -> int
-val index_from : bytes -> int -> char -> int
-val rindex_from : bytes -> int -> char -> int
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-external unsafe_get : bytes -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.03/callback.mli b/interfaces/4.03/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.03/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.03/char.mli b/interfaces/4.03/char.mli
deleted file mode 100644
index 5e6a33a..0000000
--- a/interfaces/4.03/char.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char[@@ocaml.deprecated
-                              "Use Char.lowercase_ascii instead."]
-val uppercase : char -> char[@@ocaml.deprecated
-                              "Use Char.uppercase_ascii instead."]
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.03/complex.mli b/interfaces/4.03/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.03/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.03/digest.mli b/interfaces/4.03/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.03/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.03/ephemeron.mli b/interfaces/4.03/ephemeron.mli
deleted file mode 100644
index fbd26c1..0000000
--- a/interfaces/4.03/ephemeron.mli
+++ /dev/null
@@ -1,283 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.03/filename.mli b/interfaces/4.03/filename.mli
deleted file mode 100644
index c0531a8..0000000
--- a/interfaces/4.03/filename.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string[@@ocaml.deprecated
-                            "Use Filename.get_temp_dir_name instead"]
-val quote : string -> string
diff --git a/interfaces/4.03/format.mli b/interfaces/4.03/format.mli
deleted file mode 100644
index a727c98..0000000
--- a/interfaces/4.03/format.mli
+++ /dev/null
@@ -1,177 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit }
-val set_formatter_out_functions : formatter_out_functions -> unit
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a[@@ocaml.deprecated
-                                                              "- : Buffer.t -> ('a, Format.formatter, unit) format -> 'a = <fun>"]
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b[@@ocaml.deprecated
-                                                                    "Use Format.ksprintf instead."]
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                              "Use Format.set_formatter_out_functions instead."]
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))[@@ocaml.deprecated
-                      "Use Format.get_formatter_out_functions instead."]
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                                "Use Format.pp_set_formatter_out_functions instead."]
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))[@@ocaml.deprecated
-                        "Use Format.pp_get_formatter_out_functions instead."]
-val pp_open_tbox : formatter -> unit -> unit[@@ocaml.deprecated
-                                              "Tabulation boxes are not supported any more."]
-val pp_close_tbox : formatter -> unit -> unit[@@ocaml.deprecated
-                                               "Tabulation boxes are not supported any more."]
-val pp_print_tbreak : formatter -> int -> int -> unit[@@ocaml.deprecated
-                                                       "Tabulation boxes are not supported any more."]
-val pp_set_tab : formatter -> unit -> unit[@@ocaml.deprecated
-                                            "Tabulation boxes are not supported any more."]
-val pp_print_tab : formatter -> unit -> unit[@@ocaml.deprecated
-                                              "Tabulation boxes are not supported any more."]
-val open_tbox : unit -> unit[@@ocaml.deprecated
-                              "Tabulation boxes are not supported any more."]
-val close_tbox : unit -> unit[@@ocaml.deprecated
-                               "Tabulation boxes are not supported any more."]
-val print_tbreak : int -> int -> unit[@@ocaml.deprecated
-                                       "Tabulation boxes are not supported any more."]
-val set_tab : unit -> unit[@@ocaml.deprecated
-                            "Tabulation boxes are not supported any more."]
-val print_tab : unit -> unit[@@ocaml.deprecated
-                              "Tabulation boxes are not supported any more."]
diff --git a/interfaces/4.03/gc.mli b/interfaces/4.03/gc.mli
deleted file mode 100644
index 0fcd413..0000000
--- a/interfaces/4.03/gc.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"[@@noalloc ]
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.03/genlex.mli b/interfaces/4.03/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.03/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.03/hashtbl.mli b/interfaces/4.03/hashtbl.mli
deleted file mode 100644
index 0bbff49..0000000
--- a/interfaces/4.03/hashtbl.mli
+++ /dev/null
@@ -1,114 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.03/int32.mli b/interfaces/4.03/int32.mli
deleted file mode 100644
index 56d3c52..0000000
--- a/interfaces/4.03/int32.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.03/int64.mli b/interfaces/4.03/int64.mli
deleted file mode 100644
index 84f5c64..0000000
--- a/interfaces/4.03/int64.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.03/lazy.mli b/interfaces/4.03/lazy.mli
deleted file mode 100644
index 0db00dd..0000000
--- a/interfaces/4.03/lazy.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t[@@ocaml.deprecated
-                                          "Use Lazy.from_fun instead."]
-val lazy_from_val : 'a -> 'a t[@@ocaml.deprecated
-                                "Use Lazy.from_val instead."]
-val lazy_is_val : 'a t -> bool[@@ocaml.deprecated "Use Lazy.is_val instead."]
diff --git a/interfaces/4.03/lexing.mli b/interfaces/4.03/lexing.mli
deleted file mode 100644
index 99b0fa8..0000000
--- a/interfaces/4.03/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (bytes -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.03/list.mli b/interfaces/4.03/list.mli
deleted file mode 100644
index 880fc11..0000000
--- a/interfaces/4.03/list.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-val length : 'a list -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.03/listLabels.mli b/interfaces/4.03/listLabels.mli
deleted file mode 100644
index f60e934..0000000
--- a/interfaces/4.03/listLabels.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.03/map.mli b/interfaces/4.03/map.mli
deleted file mode 100644
index 7c97963..0000000
--- a/interfaces/4.03/map.mli
+++ /dev/null
@@ -1,64 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
diff --git a/interfaces/4.03/marshal.mli b/interfaces/4.03/marshal.mli
deleted file mode 100644
index b4a905b..0000000
--- a/interfaces/4.03/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_string"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.03/moreLabels.mli b/interfaces/4.03/moreLabels.mli
deleted file mode 100644
index 21cefd2..0000000
--- a/interfaces/4.03/moreLabels.mli
+++ /dev/null
@@ -1,250 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val of_list : elt list -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val of_list : elt list -> t
-    end
-end
diff --git a/interfaces/4.03/nativeint.mli b/interfaces/4.03/nativeint.mli
deleted file mode 100644
index 0f6c05a..0000000
--- a/interfaces/4.03/nativeint.mli
+++ /dev/null
@@ -1,39 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.03/obj.mli b/interfaces/4.03/obj.mli
deleted file mode 100644
index 7db3e15..0000000
--- a/interfaces/4.03/obj.mli
+++ /dev/null
@@ -1,59 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-external is_block : t -> bool = "caml_obj_is_block"
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int[@@ocaml.deprecated "Replaced by custom_tag."]
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes[@@ocaml.deprecated "Use Marshal.to_bytes instead."]
-val unmarshal : bytes -> int -> (t * int)[@@ocaml.deprecated
-                                           "Use Marshal.from_bytes and Marshal.total_size instead."]
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-end
diff --git a/interfaces/4.03/oo.mli b/interfaces/4.03/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.03/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.03/parsing.mli b/interfaces/4.03/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.03/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.03/pervasives.mli b/interfaces/4.03/pervasives.mli
deleted file mode 100644
index ce71ba2..0000000
--- a/interfaces/4.03/pervasives.mli
+++ /dev/null
@@ -1,245 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"[@@ocaml.deprecated
-                                                  "Use (&&) instead."]
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"[@@ocaml.deprecated
-                                                  "Use (||) instead."]
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.03/printexc.mli b/interfaces/4.03/printexc.mli
deleted file mode 100644
index 321c4c9..0000000
--- a/interfaces/4.03/printexc.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-val get_callstack : int -> raw_backtrace
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.03/printf.mli b/interfaces/4.03/printf.mli
deleted file mode 100644
index 5580624..0000000
--- a/interfaces/4.03/printf.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.03/queue.mli b/interfaces/4.03/queue.mli
deleted file mode 100644
index baf669d..0000000
--- a/interfaces/4.03/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/4.03/random.mli b/interfaces/4.03/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.03/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.03/scanf.mli b/interfaces/4.03/scanf.mli
deleted file mode 100644
index 97a65fe..0000000
--- a/interfaces/4.03/scanf.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                     "Use Scanning.from_channel then Scanf.bscanf."]
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                                    "Use Scanning.from_channel then Scanf.kscanf."]
diff --git a/interfaces/4.03/set.mli b/interfaces/4.03/set.mli
deleted file mode 100644
index d1567aa..0000000
--- a/interfaces/4.03/set.mli
+++ /dev/null
@@ -1,64 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val of_list : elt list -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val of_list : elt list -> t
-  end
diff --git a/interfaces/4.03/sort.mli b/interfaces/4.03/sort.mli
deleted file mode 100644
index 81820f2..0000000
--- a/interfaces/4.03/sort.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list[@@ocaml.deprecated
-                                                     "Use List.sort instead."]
-val array : ('a -> 'a -> bool) -> 'a array -> unit[@@ocaml.deprecated
-                                                    "Use Array.sort instead."]
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list[@@ocaml.deprecated
-                                                                 "Use List.merge instead."]
diff --git a/interfaces/4.03/stack.mli b/interfaces/4.03/stack.mli
deleted file mode 100644
index 998573e..0000000
--- a/interfaces/4.03/stack.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
diff --git a/interfaces/4.03/stdLabels.mli b/interfaces/4.03/stdLabels.mli
deleted file mode 100644
index 290a187..0000000
--- a/interfaces/4.03/stdLabels.mli
+++ /dev/null
@@ -1,177 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-  val exists : f:('a -> bool) -> 'a array -> bool
-  val for_all : f:('a -> bool) -> 'a array -> bool
-  val mem : 'a -> set:'a array -> bool
-  val memq : 'a -> set:'a array -> bool
-  external create_float : int -> float array = "caml_make_float_vect"
-  val make_float : int -> float array
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module Bytes :
-sig
-  external length : bytes -> int = "%string_length"
-  external get : bytes -> int -> char = "%string_safe_get"
-  external set : bytes -> int -> char -> unit = "%string_safe_set"
-  external create : int -> bytes = "caml_create_string"
-  val make : int -> char -> bytes
-  val init : int -> f:(int -> char) -> bytes
-  val empty : bytes
-  val copy : bytes -> bytes
-  val of_string : string -> bytes
-  val to_string : bytes -> string
-  val sub : bytes -> pos:int -> len:int -> bytes
-  val sub_string : bytes -> int -> int -> string
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:bytes -> bytes list -> bytes
-  val iter : f:(char -> unit) -> bytes -> unit
-  val iteri : f:(int -> char -> unit) -> bytes -> unit
-  val map : f:(char -> char) -> bytes -> bytes
-  val mapi : f:(int -> char -> char) -> bytes -> bytes
-  val trim : bytes -> bytes
-  val escaped : bytes -> bytes
-  val index : bytes -> char -> int
-  val rindex : bytes -> char -> int
-  val index_from : bytes -> int -> char -> int
-  val rindex_from : bytes -> int -> char -> int
-  val contains : bytes -> char -> bool
-  val contains_from : bytes -> int -> char -> bool
-  val rcontains_from : bytes -> int -> char -> bool
-  val uppercase : bytes -> bytes
-  val lowercase : bytes -> bytes
-  val capitalize : bytes -> bytes
-  val uncapitalize : bytes -> bytes
-  type t = bytes
-  val compare : t -> t -> int
-  external unsafe_get : bytes -> int -> char = "%string_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-      "caml_blit_string"[@@noalloc ]
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
-  val unsafe_to_string : bytes -> string
-  val unsafe_of_string : string -> bytes
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : bytes -> int -> char -> unit = "%string_safe_set"
-  external create : int -> bytes = "caml_create_string"
-  val make : int -> char -> string
-  val init : int -> f:(int -> char) -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val iteri : f:(int -> char -> unit) -> string -> unit
-  val map : f:(char -> char) -> string -> string
-  val mapi : f:(int -> char -> char) -> string -> string
-  val trim : string -> string
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string"[@@noalloc ]
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
-end
diff --git a/interfaces/4.03/stream.mli b/interfaces/4.03/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.03/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.03/string.mli b/interfaces/4.03/string.mli
deleted file mode 100644
index 8b41ef1..0000000
--- a/interfaces/4.03/string.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use Bytes.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use Bytes.create instead."]
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string[@@ocaml.deprecated
-                             "- : string -> string = <fun>"]
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit[@@ocaml.deprecated
-                                                "Use Bytes.fill instead."]
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string[@@ocaml.deprecated
-                                  "Use String.uppercase_ascii instead."]
-val lowercase : string -> string[@@ocaml.deprecated
-                                  "Use String.lowercase_ascii instead."]
-val capitalize : string -> string[@@ocaml.deprecated
-                                   "Use String.capitalize_ascii instead."]
-val uncapitalize : string -> string[@@ocaml.deprecated
-                                     "Use String.uncapitalize_ascii instead."]
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                            "- : bytes -> int -> int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.03/stringLabels.mli b/interfaces/4.03/stringLabels.mli
deleted file mode 100644
index eccc51e..0000000
--- a/interfaces/4.03/stringLabels.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use BytesLabels.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use BytesLabels.create instead."]
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit[@@ocaml.deprecated
-                                                        "Use BytesLabels.fill instead."]
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                                    "- : bytes -> pos:int -> len:int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.03/sys.mli b/interfaces/4.03/sys.mli
deleted file mode 100644
index c581990..0000000
--- a/interfaces/4.03/sys.mli
+++ /dev/null
@@ -1,67 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
diff --git a/interfaces/4.03/uchar.mli b/interfaces/4.03/uchar.mli
deleted file mode 100644
index da7ce3c..0000000
--- a/interfaces/4.03/uchar.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type t
-val min : t
-val max : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
-val dump : Format.formatter -> t -> unit
diff --git a/interfaces/4.03/weak.mli b/interfaces/4.03/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/4.03/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.04/arg.mli b/interfaces/4.04/arg.mli
deleted file mode 100644
index 03497b6..0000000
--- a/interfaces/4.04/arg.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
diff --git a/interfaces/4.04/array.mli b/interfaces/4.04/array.mli
deleted file mode 100644
index 3c70c25..0000000
--- a/interfaces/4.04/array.mli
+++ /dev/null
@@ -1,38 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use Array.create_float instead."]
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                        "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.04/arrayLabels.mli b/interfaces/4.04/arrayLabels.mli
deleted file mode 100644
index 0dee1b6..0000000
--- a/interfaces/4.04/arrayLabels.mli
+++ /dev/null
@@ -1,38 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use ArrayLabels.make instead."]
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                                  "Use ArrayLabels.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use ArrayLabels.create_float instead."]
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.04/buffer.mli b/interfaces/4.04/buffer.mli
deleted file mode 100644
index 3f05547..0000000
--- a/interfaces/4.04/buffer.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
diff --git a/interfaces/4.04/bytes.mli b/interfaces/4.04/bytes.mli
deleted file mode 100644
index 0180e59..0000000
--- a/interfaces/4.04/bytes.mli
+++ /dev/null
@@ -1,54 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val rindex : bytes -> char -> int
-val index_from : bytes -> int -> char -> int
-val rindex_from : bytes -> int -> char -> int
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.uppercase_ascii instead."]
-val lowercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.lowercase_ascii instead."]
-val capitalize : bytes -> bytes[@@ocaml.deprecated
-                                 "Use Bytes.capitalize_ascii instead."]
-val uncapitalize : bytes -> bytes[@@ocaml.deprecated
-                                   "Use Bytes.uncapitalize_ascii instead."]
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.04/bytesLabels.mli b/interfaces/4.04/bytesLabels.mli
deleted file mode 100644
index a47c3fb..0000000
--- a/interfaces/4.04/bytesLabels.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> int -> int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val rindex : bytes -> char -> int
-val index_from : bytes -> int -> char -> int
-val rindex_from : bytes -> int -> char -> int
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.04/callback.mli b/interfaces/4.04/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.04/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.04/char.mli b/interfaces/4.04/char.mli
deleted file mode 100644
index 5e6a33a..0000000
--- a/interfaces/4.04/char.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char[@@ocaml.deprecated
-                              "Use Char.lowercase_ascii instead."]
-val uppercase : char -> char[@@ocaml.deprecated
-                              "Use Char.uppercase_ascii instead."]
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.04/complex.mli b/interfaces/4.04/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.04/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.04/digest.mli b/interfaces/4.04/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.04/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.04/ephemeron.mli b/interfaces/4.04/ephemeron.mli
deleted file mode 100644
index fbd26c1..0000000
--- a/interfaces/4.04/ephemeron.mli
+++ /dev/null
@@ -1,283 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.04/filename.mli b/interfaces/4.04/filename.mli
deleted file mode 100644
index 6b17c75..0000000
--- a/interfaces/4.04/filename.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string[@@ocaml.deprecated
-                            "Use Filename.get_temp_dir_name instead"]
-val quote : string -> string
diff --git a/interfaces/4.04/format.mli b/interfaces/4.04/format.mli
deleted file mode 100644
index 806772d..0000000
--- a/interfaces/4.04/format.mli
+++ /dev/null
@@ -1,178 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit }
-val set_formatter_out_functions : formatter_out_functions -> unit
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val pp_flush_formatter : formatter -> unit
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a[@@ocaml.deprecated
-                                                              "- : Buffer.t -> ('a, Format.formatter, unit) format -> 'a = <fun>"]
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b[@@ocaml.deprecated
-                                                                    "Use Format.ksprintf instead."]
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                              "Use Format.set_formatter_out_functions instead."]
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))[@@ocaml.deprecated
-                      "Use Format.get_formatter_out_functions instead."]
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                                "Use Format.pp_set_formatter_out_functions instead."]
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))[@@ocaml.deprecated
-                        "Use Format.pp_get_formatter_out_functions instead."]
-val pp_open_tbox : formatter -> unit -> unit[@@ocaml.deprecated
-                                              "Tabulation boxes are not supported any more."]
-val pp_close_tbox : formatter -> unit -> unit[@@ocaml.deprecated
-                                               "Tabulation boxes are not supported any more."]
-val pp_print_tbreak : formatter -> int -> int -> unit[@@ocaml.deprecated
-                                                       "Tabulation boxes are not supported any more."]
-val pp_set_tab : formatter -> unit -> unit[@@ocaml.deprecated
-                                            "Tabulation boxes are not supported any more."]
-val pp_print_tab : formatter -> unit -> unit[@@ocaml.deprecated
-                                              "Tabulation boxes are not supported any more."]
-val open_tbox : unit -> unit[@@ocaml.deprecated
-                              "Tabulation boxes are not supported any more."]
-val close_tbox : unit -> unit[@@ocaml.deprecated
-                               "Tabulation boxes are not supported any more."]
-val print_tbreak : int -> int -> unit[@@ocaml.deprecated
-                                       "Tabulation boxes are not supported any more."]
-val set_tab : unit -> unit[@@ocaml.deprecated
-                            "Tabulation boxes are not supported any more."]
-val print_tab : unit -> unit[@@ocaml.deprecated
-                              "Tabulation boxes are not supported any more."]
diff --git a/interfaces/4.04/gc.mli b/interfaces/4.04/gc.mli
deleted file mode 100644
index 9925273..0000000
--- a/interfaces/4.04/gc.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"[@@noalloc ]
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"[@@noalloc ]
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.04/genlex.mli b/interfaces/4.04/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.04/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.04/hashtbl.mli b/interfaces/4.04/hashtbl.mli
deleted file mode 100644
index 0bbff49..0000000
--- a/interfaces/4.04/hashtbl.mli
+++ /dev/null
@@ -1,114 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.04/int32.mli b/interfaces/4.04/int32.mli
deleted file mode 100644
index 56d3c52..0000000
--- a/interfaces/4.04/int32.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.04/int64.mli b/interfaces/4.04/int64.mli
deleted file mode 100644
index 84f5c64..0000000
--- a/interfaces/4.04/int64.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.04/lazy.mli b/interfaces/4.04/lazy.mli
deleted file mode 100644
index 0db00dd..0000000
--- a/interfaces/4.04/lazy.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t[@@ocaml.deprecated
-                                          "Use Lazy.from_fun instead."]
-val lazy_from_val : 'a -> 'a t[@@ocaml.deprecated
-                                "Use Lazy.from_val instead."]
-val lazy_is_val : 'a t -> bool[@@ocaml.deprecated "Use Lazy.is_val instead."]
diff --git a/interfaces/4.04/lexing.mli b/interfaces/4.04/lexing.mli
deleted file mode 100644
index 99b0fa8..0000000
--- a/interfaces/4.04/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (bytes -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.04/list.mli b/interfaces/4.04/list.mli
deleted file mode 100644
index 880fc11..0000000
--- a/interfaces/4.04/list.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-val length : 'a list -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.04/listLabels.mli b/interfaces/4.04/listLabels.mli
deleted file mode 100644
index f60e934..0000000
--- a/interfaces/4.04/listLabels.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assq : 'a -> ('a * 'b) list -> 'b
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.04/map.mli b/interfaces/4.04/map.mli
deleted file mode 100644
index 7c97963..0000000
--- a/interfaces/4.04/map.mli
+++ /dev/null
@@ -1,64 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val max_binding : 'a t -> (key * 'a)
-    val choose : 'a t -> (key * 'a)
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
diff --git a/interfaces/4.04/marshal.mli b/interfaces/4.04/marshal.mli
deleted file mode 100644
index b4a905b..0000000
--- a/interfaces/4.04/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_string"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.04/moreLabels.mli b/interfaces/4.04/moreLabels.mli
deleted file mode 100644
index 74ddfc1..0000000
--- a/interfaces/4.04/moreLabels.mli
+++ /dev/null
@@ -1,252 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val max_binding : 'a t -> (key * 'a)
-      val choose : 'a t -> (key * 'a)
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val of_list : elt list -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val max_elt : t -> elt
-      val choose : t -> elt
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val of_list : elt list -> t
-    end
-end
diff --git a/interfaces/4.04/nativeint.mli b/interfaces/4.04/nativeint.mli
deleted file mode 100644
index 0f6c05a..0000000
--- a/interfaces/4.04/nativeint.mli
+++ /dev/null
@@ -1,39 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.04/obj.mli b/interfaces/4.04/obj.mli
deleted file mode 100644
index 7559102..0000000
--- a/interfaces/4.04/obj.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int[@@ocaml.deprecated "Replaced by custom_tag."]
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes[@@ocaml.deprecated "Use Marshal.to_bytes instead."]
-val unmarshal : bytes -> int -> (t * int)[@@ocaml.deprecated
-                                           "Use Marshal.from_bytes and Marshal.total_size instead."]
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-end
diff --git a/interfaces/4.04/oo.mli b/interfaces/4.04/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.04/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.04/parsing.mli b/interfaces/4.04/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.04/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.04/pervasives.mli b/interfaces/4.04/pervasives.mli
deleted file mode 100644
index ce71ba2..0000000
--- a/interfaces/4.04/pervasives.mli
+++ /dev/null
@@ -1,245 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"[@@ocaml.deprecated
-                                                  "Use (&&) instead."]
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"[@@ocaml.deprecated
-                                                  "Use (||) instead."]
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.04/printexc.mli b/interfaces/4.04/printexc.mli
deleted file mode 100644
index dc1116d..0000000
--- a/interfaces/4.04/printexc.mli
+++ /dev/null
@@ -1,38 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-val get_callstack : int -> raw_backtrace
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.04/printf.mli b/interfaces/4.04/printf.mli
deleted file mode 100644
index 5580624..0000000
--- a/interfaces/4.04/printf.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.04/queue.mli b/interfaces/4.04/queue.mli
deleted file mode 100644
index baf669d..0000000
--- a/interfaces/4.04/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/4.04/random.mli b/interfaces/4.04/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.04/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.04/scanf.mli b/interfaces/4.04/scanf.mli
deleted file mode 100644
index 97a65fe..0000000
--- a/interfaces/4.04/scanf.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                     "Use Scanning.from_channel then Scanf.bscanf."]
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                                    "Use Scanning.from_channel then Scanf.kscanf."]
diff --git a/interfaces/4.04/set.mli b/interfaces/4.04/set.mli
deleted file mode 100644
index b655a17..0000000
--- a/interfaces/4.04/set.mli
+++ /dev/null
@@ -1,66 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val of_list : elt list -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val max_elt : t -> elt
-    val choose : t -> elt
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val of_list : elt list -> t
-  end
diff --git a/interfaces/4.04/sort.mli b/interfaces/4.04/sort.mli
deleted file mode 100644
index 81820f2..0000000
--- a/interfaces/4.04/sort.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list[@@ocaml.deprecated
-                                                     "Use List.sort instead."]
-val array : ('a -> 'a -> bool) -> 'a array -> unit[@@ocaml.deprecated
-                                                    "Use Array.sort instead."]
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list[@@ocaml.deprecated
-                                                                 "Use List.merge instead."]
diff --git a/interfaces/4.04/spacetime.mli b/interfaces/4.04/spacetime.mli
deleted file mode 100644
index c79a87a..0000000
--- a/interfaces/4.04/spacetime.mli
+++ /dev/null
@@ -1,9 +0,0 @@
-module Series :
-sig
-  type t
-  val create : path:string -> t
-  val save_event : ?time:float -> t -> event_name:string -> unit
-  val save_and_close : ?time:float -> t -> unit
-end
-module Snapshot : sig val take : ?time:float -> Series.t -> unit end
-val save_event_for_automatic_snapshots : event_name:string -> unit
diff --git a/interfaces/4.04/stack.mli b/interfaces/4.04/stack.mli
deleted file mode 100644
index 998573e..0000000
--- a/interfaces/4.04/stack.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
diff --git a/interfaces/4.04/stdLabels.mli b/interfaces/4.04/stdLabels.mli
deleted file mode 100644
index ce8d5bf..0000000
--- a/interfaces/4.04/stdLabels.mli
+++ /dev/null
@@ -1,177 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-  val exists : f:('a -> bool) -> 'a array -> bool
-  val for_all : f:('a -> bool) -> 'a array -> bool
-  val mem : 'a -> set:'a array -> bool
-  val memq : 'a -> set:'a array -> bool
-  external create_float : int -> float array = "caml_make_float_vect"
-  val make_float : int -> float array
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module Bytes :
-sig
-  external length : bytes -> int = "%bytes_length"
-  external get : bytes -> int -> char = "%bytes_safe_get"
-  external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-  external create : int -> bytes = "caml_create_bytes"
-  val make : int -> char -> bytes
-  val init : int -> f:(int -> char) -> bytes
-  val empty : bytes
-  val copy : bytes -> bytes
-  val of_string : string -> bytes
-  val to_string : bytes -> string
-  val sub : bytes -> pos:int -> len:int -> bytes
-  val sub_string : bytes -> int -> int -> string
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:bytes -> bytes list -> bytes
-  val iter : f:(char -> unit) -> bytes -> unit
-  val iteri : f:(int -> char -> unit) -> bytes -> unit
-  val map : f:(char -> char) -> bytes -> bytes
-  val mapi : f:(int -> char -> char) -> bytes -> bytes
-  val trim : bytes -> bytes
-  val escaped : bytes -> bytes
-  val index : bytes -> char -> int
-  val rindex : bytes -> char -> int
-  val index_from : bytes -> int -> char -> int
-  val rindex_from : bytes -> int -> char -> int
-  val contains : bytes -> char -> bool
-  val contains_from : bytes -> int -> char -> bool
-  val rcontains_from : bytes -> int -> char -> bool
-  val uppercase : bytes -> bytes
-  val lowercase : bytes -> bytes
-  val capitalize : bytes -> bytes
-  val uncapitalize : bytes -> bytes
-  type t = bytes
-  val compare : t -> t -> int
-  external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-  external unsafe_blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-      "caml_blit_bytes"[@@noalloc ]
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc
-                                                                    ]
-  val unsafe_to_string : bytes -> string
-  val unsafe_of_string : string -> bytes
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : bytes -> int -> char -> unit = "%string_safe_set"
-  external create : int -> bytes = "caml_create_string"
-  val make : int -> char -> string
-  val init : int -> f:(int -> char) -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val iteri : f:(int -> char -> unit) -> string -> unit
-  val map : f:(char -> char) -> string -> string
-  val mapi : f:(int -> char -> char) -> string -> string
-  val trim : string -> string
-  val escaped : string -> string
-  val index : string -> char -> int
-  val rindex : string -> char -> int
-  val index_from : string -> int -> char -> int
-  val rindex_from : string -> int -> char -> int
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  type t = string
-  val compare : t -> t -> int
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string"[@@noalloc ]
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
-end
diff --git a/interfaces/4.04/stream.mli b/interfaces/4.04/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.04/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.04/string.mli b/interfaces/4.04/string.mli
deleted file mode 100644
index e8c5f11..0000000
--- a/interfaces/4.04/string.mli
+++ /dev/null
@@ -1,54 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use Bytes.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use Bytes.create instead."]
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string[@@ocaml.deprecated
-                             "- : string -> string = <fun>"]
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit[@@ocaml.deprecated
-                                                "Use Bytes.fill instead."]
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string[@@ocaml.deprecated
-                                  "Use String.uppercase_ascii instead."]
-val lowercase : string -> string[@@ocaml.deprecated
-                                  "Use String.lowercase_ascii instead."]
-val capitalize : string -> string[@@ocaml.deprecated
-                                   "Use String.capitalize_ascii instead."]
-val uncapitalize : string -> string[@@ocaml.deprecated
-                                     "Use String.uncapitalize_ascii instead."]
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : char -> string -> string list
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                            "- : bytes -> int -> int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.04/stringLabels.mli b/interfaces/4.04/stringLabels.mli
deleted file mode 100644
index eccc51e..0000000
--- a/interfaces/4.04/stringLabels.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use BytesLabels.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use BytesLabels.create instead."]
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit[@@ocaml.deprecated
-                                                        "Use BytesLabels.fill instead."]
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val rindex : string -> char -> int
-val index_from : string -> int -> char -> int
-val rindex_from : string -> int -> char -> int
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-type t = string
-val compare : t -> t -> int
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                                    "- : bytes -> pos:int -> len:int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.04/sys.mli b/interfaces/4.04/sys.mli
deleted file mode 100644
index 71be250..0000000
--- a/interfaces/4.04/sys.mli
+++ /dev/null
@@ -1,72 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
diff --git a/interfaces/4.04/uchar.mli b/interfaces/4.04/uchar.mli
deleted file mode 100644
index da7ce3c..0000000
--- a/interfaces/4.04/uchar.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type t
-val min : t
-val max : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
-val dump : Format.formatter -> t -> unit
diff --git a/interfaces/4.04/weak.mli b/interfaces/4.04/weak.mli
deleted file mode 100644
index 585c8f6..0000000
--- a/interfaces/4.04/weak.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.05/arg.mli b/interfaces/4.05/arg.mli
deleted file mode 100644
index d27634a..0000000
--- a/interfaces/4.05/arg.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.05/array.mli b/interfaces/4.05/array.mli
deleted file mode 100644
index 3c70c25..0000000
--- a/interfaces/4.05/array.mli
+++ /dev/null
@@ -1,38 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use Array.create_float instead."]
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                        "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.05/arrayLabels.mli b/interfaces/4.05/arrayLabels.mli
deleted file mode 100644
index 220ec38..0000000
--- a/interfaces/4.05/arrayLabels.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                                  "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use Array.create_float instead."]
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
diff --git a/interfaces/4.05/buffer.mli b/interfaces/4.05/buffer.mli
deleted file mode 100644
index 6fb1623..0000000
--- a/interfaces/4.05/buffer.mli
+++ /dev/null
@@ -1,20 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
diff --git a/interfaces/4.05/bytes.mli b/interfaces/4.05/bytes.mli
deleted file mode 100644
index 972f13d..0000000
--- a/interfaces/4.05/bytes.mli
+++ /dev/null
@@ -1,58 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.uppercase_ascii instead."]
-val lowercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.lowercase_ascii instead."]
-val capitalize : bytes -> bytes[@@ocaml.deprecated
-                                 "Use Bytes.capitalize_ascii instead."]
-val uncapitalize : bytes -> bytes[@@ocaml.deprecated
-                                   "Use Bytes.uncapitalize_ascii instead."]
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.05/bytesLabels.mli b/interfaces/4.05/bytesLabels.mli
deleted file mode 100644
index 1d2a9bc..0000000
--- a/interfaces/4.05/bytesLabels.mli
+++ /dev/null
@@ -1,61 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.uppercase_ascii instead."]
-val lowercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.lowercase_ascii instead."]
-val capitalize : bytes -> bytes[@@ocaml.deprecated
-                                 "Use Bytes.capitalize_ascii instead."]
-val uncapitalize : bytes -> bytes[@@ocaml.deprecated
-                                   "Use Bytes.uncapitalize_ascii instead."]
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.05/callback.mli b/interfaces/4.05/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.05/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.05/char.mli b/interfaces/4.05/char.mli
deleted file mode 100644
index 5e6a33a..0000000
--- a/interfaces/4.05/char.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char[@@ocaml.deprecated
-                              "Use Char.lowercase_ascii instead."]
-val uppercase : char -> char[@@ocaml.deprecated
-                              "Use Char.uppercase_ascii instead."]
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.05/complex.mli b/interfaces/4.05/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.05/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.05/digest.mli b/interfaces/4.05/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.05/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.05/ephemeron.mli b/interfaces/4.05/ephemeron.mli
deleted file mode 100644
index f89cba1..0000000
--- a/interfaces/4.05/ephemeron.mli
+++ /dev/null
@@ -1,292 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.05/filename.mli b/interfaces/4.05/filename.mli
deleted file mode 100644
index 6b17c75..0000000
--- a/interfaces/4.05/filename.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string[@@ocaml.deprecated
-                            "Use Filename.get_temp_dir_name instead"]
-val quote : string -> string
diff --git a/interfaces/4.05/format.mli b/interfaces/4.05/format.mli
deleted file mode 100644
index 806772d..0000000
--- a/interfaces/4.05/format.mli
+++ /dev/null
@@ -1,178 +0,0 @@
-val open_box : int -> unit
-val close_box : unit -> unit
-val print_string : string -> unit
-val print_as : int -> string -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_char : char -> unit
-val print_bool : bool -> unit
-val print_space : unit -> unit
-val print_cut : unit -> unit
-val print_break : int -> int -> unit
-val print_flush : unit -> unit
-val print_newline : unit -> unit
-val force_newline : unit -> unit
-val print_if_newline : unit -> unit
-val set_margin : int -> unit
-val get_margin : unit -> int
-val set_max_indent : int -> unit
-val get_max_indent : unit -> int
-val set_max_boxes : int -> unit
-val get_max_boxes : unit -> int
-val over_max_boxes : unit -> bool
-val open_hbox : unit -> unit
-val open_vbox : int -> unit
-val open_hvbox : int -> unit
-val open_hovbox : int -> unit
-val set_ellipsis_text : string -> unit
-val get_ellipsis_text : unit -> string
-type tag = string
-val open_tag : tag -> unit
-val close_tag : unit -> unit
-val set_tags : bool -> unit
-val set_print_tags : bool -> unit
-val set_mark_tags : bool -> unit
-val get_print_tags : unit -> bool
-val get_mark_tags : unit -> bool
-val set_formatter_out_channel : out_channel -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit }
-val set_formatter_out_functions : formatter_out_functions -> unit
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-type formatter
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val pp_open_hbox : formatter -> unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val pp_open_box : formatter -> int -> unit
-val pp_close_box : formatter -> unit -> unit
-val pp_open_tag : formatter -> string -> unit
-val pp_close_tag : formatter -> unit -> unit
-val pp_print_string : formatter -> string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val pp_print_float : formatter -> float -> unit
-val pp_print_char : formatter -> char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val pp_print_cut : formatter -> unit -> unit
-val pp_print_space : formatter -> unit -> unit
-val pp_force_newline : formatter -> unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val pp_set_margin : formatter -> int -> unit
-val pp_get_margin : formatter -> unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val pp_set_ellipsis_text : formatter -> string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val pp_flush_formatter : formatter -> unit
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a[@@ocaml.deprecated
-                                                              "- : Buffer.t -> ('a, Format.formatter, unit) format -> 'a = <fun>"]
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b[@@ocaml.deprecated
-                                                                    "Use Format.ksprintf instead."]
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                              "Use Format.set_formatter_out_functions instead."]
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))[@@ocaml.deprecated
-                      "Use Format.get_formatter_out_functions instead."]
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                                "Use Format.pp_set_formatter_out_functions instead."]
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))[@@ocaml.deprecated
-                        "Use Format.pp_get_formatter_out_functions instead."]
-val pp_open_tbox : formatter -> unit -> unit[@@ocaml.deprecated
-                                              "Tabulation boxes are not supported any more."]
-val pp_close_tbox : formatter -> unit -> unit[@@ocaml.deprecated
-                                               "Tabulation boxes are not supported any more."]
-val pp_print_tbreak : formatter -> int -> int -> unit[@@ocaml.deprecated
-                                                       "Tabulation boxes are not supported any more."]
-val pp_set_tab : formatter -> unit -> unit[@@ocaml.deprecated
-                                            "Tabulation boxes are not supported any more."]
-val pp_print_tab : formatter -> unit -> unit[@@ocaml.deprecated
-                                              "Tabulation boxes are not supported any more."]
-val open_tbox : unit -> unit[@@ocaml.deprecated
-                              "Tabulation boxes are not supported any more."]
-val close_tbox : unit -> unit[@@ocaml.deprecated
-                               "Tabulation boxes are not supported any more."]
-val print_tbreak : int -> int -> unit[@@ocaml.deprecated
-                                       "Tabulation boxes are not supported any more."]
-val set_tab : unit -> unit[@@ocaml.deprecated
-                            "Tabulation boxes are not supported any more."]
-val print_tab : unit -> unit[@@ocaml.deprecated
-                              "Tabulation boxes are not supported any more."]
diff --git a/interfaces/4.05/gc.mli b/interfaces/4.05/gc.mli
deleted file mode 100644
index 21250af..0000000
--- a/interfaces/4.05/gc.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.05/genlex.mli b/interfaces/4.05/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.05/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.05/hashtbl.mli b/interfaces/4.05/hashtbl.mli
deleted file mode 100644
index 9934765..0000000
--- a/interfaces/4.05/hashtbl.mli
+++ /dev/null
@@ -1,119 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.05/int32.mli b/interfaces/4.05/int32.mli
deleted file mode 100644
index a3678c0..0000000
--- a/interfaces/4.05/int32.mli
+++ /dev/null
@@ -1,42 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.05/int64.mli b/interfaces/4.05/int64.mli
deleted file mode 100644
index a93f4d1..0000000
--- a/interfaces/4.05/int64.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.05/lazy.mli b/interfaces/4.05/lazy.mli
deleted file mode 100644
index 0db00dd..0000000
--- a/interfaces/4.05/lazy.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t[@@ocaml.deprecated
-                                          "Use Lazy.from_fun instead."]
-val lazy_from_val : 'a -> 'a t[@@ocaml.deprecated
-                                "Use Lazy.from_val instead."]
-val lazy_is_val : 'a t -> bool[@@ocaml.deprecated "Use Lazy.is_val instead."]
diff --git a/interfaces/4.05/lexing.mli b/interfaces/4.05/lexing.mli
deleted file mode 100644
index 99b0fa8..0000000
--- a/interfaces/4.05/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (bytes -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.05/list.mli b/interfaces/4.05/list.mli
deleted file mode 100644
index 86dda88..0000000
--- a/interfaces/4.05/list.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.05/listLabels.mli b/interfaces/4.05/listLabels.mli
deleted file mode 100644
index 40a45a4..0000000
--- a/interfaces/4.05/listLabels.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.05/map.mli b/interfaces/4.05/map.mli
deleted file mode 100644
index bb3dd94..0000000
--- a/interfaces/4.05/map.mli
+++ /dev/null
@@ -1,80 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
diff --git a/interfaces/4.05/marshal.mli b/interfaces/4.05/marshal.mli
deleted file mode 100644
index b4a905b..0000000
--- a/interfaces/4.05/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_string"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.05/moreLabels.mli b/interfaces/4.05/moreLabels.mli
deleted file mode 100644
index 8066915..0000000
--- a/interfaces/4.05/moreLabels.mli
+++ /dev/null
@@ -1,290 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-    end
-end
diff --git a/interfaces/4.05/nativeint.mli b/interfaces/4.05/nativeint.mli
deleted file mode 100644
index 9bb6c3b..0000000
--- a/interfaces/4.05/nativeint.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.05/obj.mli b/interfaces/4.05/obj.mli
deleted file mode 100644
index 7559102..0000000
--- a/interfaces/4.05/obj.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int[@@ocaml.deprecated "Replaced by custom_tag."]
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes[@@ocaml.deprecated "Use Marshal.to_bytes instead."]
-val unmarshal : bytes -> int -> (t * int)[@@ocaml.deprecated
-                                           "Use Marshal.from_bytes and Marshal.total_size instead."]
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-end
diff --git a/interfaces/4.05/oo.mli b/interfaces/4.05/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.05/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.05/parsing.mli b/interfaces/4.05/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.05/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.05/pervasives.mli b/interfaces/4.05/pervasives.mli
deleted file mode 100644
index eb790f1..0000000
--- a/interfaces/4.05/pervasives.mli
+++ /dev/null
@@ -1,250 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"[@@ocaml.deprecated
-                                                  "Use (&&) instead."]
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"[@@ocaml.deprecated
-                                                  "Use (||) instead."]
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.05/printexc.mli b/interfaces/4.05/printexc.mli
deleted file mode 100644
index 04e3a29..0000000
--- a/interfaces/4.05/printexc.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-val get_callstack : int -> raw_backtrace
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.05/printf.mli b/interfaces/4.05/printf.mli
deleted file mode 100644
index 5580624..0000000
--- a/interfaces/4.05/printf.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.05/queue.mli b/interfaces/4.05/queue.mli
deleted file mode 100644
index baf669d..0000000
--- a/interfaces/4.05/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/4.05/random.mli b/interfaces/4.05/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.05/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.05/scanf.mli b/interfaces/4.05/scanf.mli
deleted file mode 100644
index 97a65fe..0000000
--- a/interfaces/4.05/scanf.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                     "Use Scanning.from_channel then Scanf.bscanf."]
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                                    "Use Scanning.from_channel then Scanf.kscanf."]
diff --git a/interfaces/4.05/set.mli b/interfaces/4.05/set.mli
deleted file mode 100644
index 8f60a38..0000000
--- a/interfaces/4.05/set.mli
+++ /dev/null
@@ -1,82 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-  end
diff --git a/interfaces/4.05/sort.mli b/interfaces/4.05/sort.mli
deleted file mode 100644
index 81820f2..0000000
--- a/interfaces/4.05/sort.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list[@@ocaml.deprecated
-                                                     "Use List.sort instead."]
-val array : ('a -> 'a -> bool) -> 'a array -> unit[@@ocaml.deprecated
-                                                    "Use Array.sort instead."]
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list[@@ocaml.deprecated
-                                                                 "Use List.merge instead."]
diff --git a/interfaces/4.05/spacetime.mli b/interfaces/4.05/spacetime.mli
deleted file mode 100644
index 0dabf48..0000000
--- a/interfaces/4.05/spacetime.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-val enabled : bool
-module Series :
-sig
-  type t
-  val create : path:string -> t
-  val save_event : ?time:float -> t -> event_name:string -> unit
-  val save_and_close : ?time:float -> t -> unit
-end
-module Snapshot : sig val take : ?time:float -> Series.t -> unit end
-val save_event_for_automatic_snapshots : event_name:string -> unit
diff --git a/interfaces/4.05/stack.mli b/interfaces/4.05/stack.mli
deleted file mode 100644
index 998573e..0000000
--- a/interfaces/4.05/stack.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
diff --git a/interfaces/4.05/stdLabels.mli b/interfaces/4.05/stdLabels.mli
deleted file mode 100644
index 04aef76..0000000
--- a/interfaces/4.05/stdLabels.mli
+++ /dev/null
@@ -1,209 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-  val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-  val exists : f:('a -> bool) -> 'a array -> bool
-  val for_all : f:('a -> bool) -> 'a array -> bool
-  val mem : 'a -> set:'a array -> bool
-  val memq : 'a -> set:'a array -> bool
-  external create_float : int -> float array = "caml_make_float_vect"
-  val make_float : int -> float array
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-end
-module Bytes :
-sig
-  external length : bytes -> int = "%bytes_length"
-  external get : bytes -> int -> char = "%bytes_safe_get"
-  external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-  external create : int -> bytes = "caml_create_bytes"
-  val make : int -> char -> bytes
-  val init : int -> f:(int -> char) -> bytes
-  val empty : bytes
-  val copy : bytes -> bytes
-  val of_string : string -> bytes
-  val to_string : bytes -> string
-  val sub : bytes -> pos:int -> len:int -> bytes
-  val sub_string : bytes -> int -> int -> string
-  val extend : bytes -> left:int -> right:int -> bytes
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val blit_string :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:bytes -> bytes list -> bytes
-  val cat : bytes -> bytes -> bytes
-  val iter : f:(char -> unit) -> bytes -> unit
-  val iteri : f:(int -> char -> unit) -> bytes -> unit
-  val map : f:(char -> char) -> bytes -> bytes
-  val mapi : f:(int -> char -> char) -> bytes -> bytes
-  val trim : bytes -> bytes
-  val escaped : bytes -> bytes
-  val index : bytes -> char -> int
-  val index_opt : bytes -> char -> int option
-  val rindex : bytes -> char -> int
-  val rindex_opt : bytes -> char -> int option
-  val index_from : bytes -> int -> char -> int
-  val index_from_opt : bytes -> int -> char -> int option
-  val rindex_from : bytes -> int -> char -> int
-  val rindex_from_opt : bytes -> int -> char -> int option
-  val contains : bytes -> char -> bool
-  val contains_from : bytes -> int -> char -> bool
-  val rcontains_from : bytes -> int -> char -> bool
-  val uppercase : bytes -> bytes
-  val lowercase : bytes -> bytes
-  val capitalize : bytes -> bytes
-  val uncapitalize : bytes -> bytes
-  val uppercase_ascii : bytes -> bytes
-  val lowercase_ascii : bytes -> bytes
-  val capitalize_ascii : bytes -> bytes
-  val uncapitalize_ascii : bytes -> bytes
-  type t = bytes
-  val compare : t -> t -> int
-  val equal : t -> t -> bool
-  external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-  external unsafe_blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-      "caml_blit_bytes"[@@noalloc ]
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc
-                                                                    ]
-  val unsafe_to_string : bytes -> string
-  val unsafe_of_string : string -> bytes
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val compare_lengths : 'a list -> 'b list -> int
-  val compare_length_with : 'a list -> len:int -> int
-  val cons : 'a -> 'a list -> 'a list
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val nth_opt : 'a list -> int -> 'a option
-  val rev : 'a list -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val find_opt : f:('a -> bool) -> 'a list -> 'a option
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val assq_opt : 'a -> ('a * 'b) list -> 'b option
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : bytes -> int -> char -> unit = "%string_safe_set"
-  external create : int -> bytes = "caml_create_string"
-  val make : int -> char -> string
-  val init : int -> f:(int -> char) -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val iteri : f:(int -> char -> unit) -> string -> unit
-  val map : f:(char -> char) -> string -> string
-  val mapi : f:(int -> char -> char) -> string -> string
-  val trim : string -> string
-  val escaped : string -> string
-  val index : string -> char -> int
-  val index_opt : string -> char -> int option
-  val rindex : string -> char -> int
-  val rindex_opt : string -> char -> int option
-  val index_from : string -> int -> char -> int
-  val index_from_opt : string -> int -> char -> int option
-  val rindex_from : string -> int -> char -> int
-  val rindex_from_opt : string -> int -> char -> int option
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  val uppercase_ascii : string -> string
-  val lowercase_ascii : string -> string
-  val capitalize_ascii : string -> string
-  val uncapitalize_ascii : string -> string
-  type t = string
-  val compare : t -> t -> int
-  val equal : t -> t -> bool
-  val split_on_char : sep:char -> string -> string list
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string"[@@noalloc ]
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
-end
diff --git a/interfaces/4.05/stream.mli b/interfaces/4.05/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.05/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.05/string.mli b/interfaces/4.05/string.mli
deleted file mode 100644
index 082e678..0000000
--- a/interfaces/4.05/string.mli
+++ /dev/null
@@ -1,58 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use Bytes.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use Bytes.create instead."]
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string[@@ocaml.deprecated
-                             "- : string -> string = <fun>"]
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit[@@ocaml.deprecated
-                                                "Use Bytes.fill instead."]
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string[@@ocaml.deprecated
-                                  "Use String.uppercase_ascii instead."]
-val lowercase : string -> string[@@ocaml.deprecated
-                                  "Use String.lowercase_ascii instead."]
-val capitalize : string -> string[@@ocaml.deprecated
-                                   "Use String.capitalize_ascii instead."]
-val uncapitalize : string -> string[@@ocaml.deprecated
-                                     "Use String.uncapitalize_ascii instead."]
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : char -> string -> string list
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                            "- : bytes -> int -> int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.05/stringLabels.mli b/interfaces/4.05/stringLabels.mli
deleted file mode 100644
index 654c9d9..0000000
--- a/interfaces/4.05/stringLabels.mli
+++ /dev/null
@@ -1,58 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use BytesLabels.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use BytesLabels.create instead."]
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit[@@ocaml.deprecated
-                                                        "Use BytesLabels.fill instead."]
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string[@@ocaml.deprecated
-                                  "Use String.uppercase_ascii instead."]
-val lowercase : string -> string[@@ocaml.deprecated
-                                  "Use String.lowercase_ascii instead."]
-val capitalize : string -> string[@@ocaml.deprecated
-                                   "Use String.capitalize_ascii instead."]
-val uncapitalize : string -> string[@@ocaml.deprecated
-                                     "Use String.uncapitalize_ascii instead."]
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : sep:char -> string -> string list
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                                    "- : bytes -> pos:int -> len:int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.05/sys.mli b/interfaces/4.05/sys.mli
deleted file mode 100644
index 8a3e536..0000000
--- a/interfaces/4.05/sys.mli
+++ /dev/null
@@ -1,73 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
diff --git a/interfaces/4.05/uchar.mli b/interfaces/4.05/uchar.mli
deleted file mode 100644
index f18d830..0000000
--- a/interfaces/4.05/uchar.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type t
-val min : t
-val max : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.05/weak.mli b/interfaces/4.05/weak.mli
deleted file mode 100644
index 3be35a0..0000000
--- a/interfaces/4.05/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.06/arg.mli b/interfaces/4.06/arg.mli
deleted file mode 100644
index d27634a..0000000
--- a/interfaces/4.06/arg.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.06/array.mli b/interfaces/4.06/array.mli
deleted file mode 100644
index f35c441..0000000
--- a/interfaces/4.06/array.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use Array.create_float instead."]
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                        "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.06/arrayLabels.mli b/interfaces/4.06/arrayLabels.mli
deleted file mode 100644
index 4066623..0000000
--- a/interfaces/4.06/arrayLabels.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                                  "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use Array.create_float instead."]
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.06/buffer.mli b/interfaces/4.06/buffer.mli
deleted file mode 100644
index e304151..0000000
--- a/interfaces/4.06/buffer.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
diff --git a/interfaces/4.06/bytes.mli b/interfaces/4.06/bytes.mli
deleted file mode 100644
index 972f13d..0000000
--- a/interfaces/4.06/bytes.mli
+++ /dev/null
@@ -1,58 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.uppercase_ascii instead."]
-val lowercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.lowercase_ascii instead."]
-val capitalize : bytes -> bytes[@@ocaml.deprecated
-                                 "Use Bytes.capitalize_ascii instead."]
-val uncapitalize : bytes -> bytes[@@ocaml.deprecated
-                                   "Use Bytes.uncapitalize_ascii instead."]
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.06/bytesLabels.mli b/interfaces/4.06/bytesLabels.mli
deleted file mode 100644
index e3250b7..0000000
--- a/interfaces/4.06/bytesLabels.mli
+++ /dev/null
@@ -1,61 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.uppercase_ascii instead."]
-val lowercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.lowercase_ascii instead."]
-val capitalize : bytes -> bytes[@@ocaml.deprecated
-                                 "Use Bytes.capitalize_ascii instead."]
-val uncapitalize : bytes -> bytes[@@ocaml.deprecated
-                                   "Use Bytes.uncapitalize_ascii instead."]
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.06/callback.mli b/interfaces/4.06/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.06/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.06/char.mli b/interfaces/4.06/char.mli
deleted file mode 100644
index 5e6a33a..0000000
--- a/interfaces/4.06/char.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char[@@ocaml.deprecated
-                              "Use Char.lowercase_ascii instead."]
-val uppercase : char -> char[@@ocaml.deprecated
-                              "Use Char.uppercase_ascii instead."]
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.06/complex.mli b/interfaces/4.06/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.06/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.06/digest.mli b/interfaces/4.06/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.06/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.06/ephemeron.mli b/interfaces/4.06/ephemeron.mli
deleted file mode 100644
index f89cba1..0000000
--- a/interfaces/4.06/ephemeron.mli
+++ /dev/null
@@ -1,292 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.06/filename.mli b/interfaces/4.06/filename.mli
deleted file mode 100644
index 6b17c75..0000000
--- a/interfaces/4.06/filename.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string[@@ocaml.deprecated
-                            "Use Filename.get_temp_dir_name instead"]
-val quote : string -> string
diff --git a/interfaces/4.06/format.mli b/interfaces/4.06/format.mli
deleted file mode 100644
index 1caab58..0000000
--- a/interfaces/4.06/format.mli
+++ /dev/null
@@ -1,185 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type tag = string
-val pp_open_tag : formatter -> string -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a[@@ocaml.deprecated
-                                                              "- : Buffer.t -> ('a, Format.formatter, unit) format -> 'a = <fun>"]
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b[@@ocaml.deprecated
-                                                                    "Use Format.ksprintf instead."]
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                              "Use Format.set_formatter_out_functions instead."]
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))[@@ocaml.deprecated
-                      "Use Format.get_formatter_out_functions instead."]
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                                "Use Format.pp_set_formatter_out_functions instead."]
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))[@@ocaml.deprecated
-                        "Use Format.pp_get_formatter_out_functions instead."]
diff --git a/interfaces/4.06/gc.mli b/interfaces/4.06/gc.mli
deleted file mode 100644
index 21250af..0000000
--- a/interfaces/4.06/gc.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.06/genlex.mli b/interfaces/4.06/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.06/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.06/hashtbl.mli b/interfaces/4.06/hashtbl.mli
deleted file mode 100644
index 9934765..0000000
--- a/interfaces/4.06/hashtbl.mli
+++ /dev/null
@@ -1,119 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.06/int32.mli b/interfaces/4.06/int32.mli
deleted file mode 100644
index a3678c0..0000000
--- a/interfaces/4.06/int32.mli
+++ /dev/null
@@ -1,42 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.06/int64.mli b/interfaces/4.06/int64.mli
deleted file mode 100644
index a93f4d1..0000000
--- a/interfaces/4.06/int64.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.06/lazy.mli b/interfaces/4.06/lazy.mli
deleted file mode 100644
index 0db00dd..0000000
--- a/interfaces/4.06/lazy.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t[@@ocaml.deprecated
-                                          "Use Lazy.from_fun instead."]
-val lazy_from_val : 'a -> 'a t[@@ocaml.deprecated
-                                "Use Lazy.from_val instead."]
-val lazy_is_val : 'a t -> bool[@@ocaml.deprecated "Use Lazy.is_val instead."]
diff --git a/interfaces/4.06/lexing.mli b/interfaces/4.06/lexing.mli
deleted file mode 100644
index 99b0fa8..0000000
--- a/interfaces/4.06/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (bytes -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.06/list.mli b/interfaces/4.06/list.mli
deleted file mode 100644
index 2d62f6d..0000000
--- a/interfaces/4.06/list.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.06/listLabels.mli b/interfaces/4.06/listLabels.mli
deleted file mode 100644
index 942f6b7..0000000
--- a/interfaces/4.06/listLabels.mli
+++ /dev/null
@@ -1,54 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
diff --git a/interfaces/4.06/map.mli b/interfaces/4.06/map.mli
deleted file mode 100644
index 3316050..0000000
--- a/interfaces/4.06/map.mli
+++ /dev/null
@@ -1,82 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-  end
diff --git a/interfaces/4.06/marshal.mli b/interfaces/4.06/marshal.mli
deleted file mode 100644
index b4a905b..0000000
--- a/interfaces/4.06/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_string"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.06/moreLabels.mli b/interfaces/4.06/moreLabels.mli
deleted file mode 100644
index 7c5f945..0000000
--- a/interfaces/4.06/moreLabels.mli
+++ /dev/null
@@ -1,292 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-    end
-end
diff --git a/interfaces/4.06/nativeint.mli b/interfaces/4.06/nativeint.mli
deleted file mode 100644
index 9bb6c3b..0000000
--- a/interfaces/4.06/nativeint.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.06/obj.mli b/interfaces/4.06/obj.mli
deleted file mode 100644
index 7559102..0000000
--- a/interfaces/4.06/obj.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int[@@ocaml.deprecated "Replaced by custom_tag."]
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes[@@ocaml.deprecated "Use Marshal.to_bytes instead."]
-val unmarshal : bytes -> int -> (t * int)[@@ocaml.deprecated
-                                           "Use Marshal.from_bytes and Marshal.total_size instead."]
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-end
diff --git a/interfaces/4.06/oo.mli b/interfaces/4.06/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.06/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.06/parsing.mli b/interfaces/4.06/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.06/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.06/pervasives.mli b/interfaces/4.06/pervasives.mli
deleted file mode 100644
index eb790f1..0000000
--- a/interfaces/4.06/pervasives.mli
+++ /dev/null
@@ -1,250 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"[@@ocaml.deprecated
-                                                  "Use (&&) instead."]
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"[@@ocaml.deprecated
-                                                  "Use (||) instead."]
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.06/printexc.mli b/interfaces/4.06/printexc.mli
deleted file mode 100644
index 04e3a29..0000000
--- a/interfaces/4.06/printexc.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-val get_callstack : int -> raw_backtrace
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.06/printf.mli b/interfaces/4.06/printf.mli
deleted file mode 100644
index 5580624..0000000
--- a/interfaces/4.06/printf.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.06/queue.mli b/interfaces/4.06/queue.mli
deleted file mode 100644
index baf669d..0000000
--- a/interfaces/4.06/queue.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
diff --git a/interfaces/4.06/random.mli b/interfaces/4.06/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.06/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.06/scanf.mli b/interfaces/4.06/scanf.mli
deleted file mode 100644
index ed5075e..0000000
--- a/interfaces/4.06/scanf.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Pervasives.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                     "Use Scanning.from_channel then Scanf.bscanf."]
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                                    "Use Scanning.from_channel then Scanf.kscanf."]
diff --git a/interfaces/4.06/set.mli b/interfaces/4.06/set.mli
deleted file mode 100644
index 8f60a38..0000000
--- a/interfaces/4.06/set.mli
+++ /dev/null
@@ -1,82 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-  end
diff --git a/interfaces/4.06/sort.mli b/interfaces/4.06/sort.mli
deleted file mode 100644
index 81820f2..0000000
--- a/interfaces/4.06/sort.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list[@@ocaml.deprecated
-                                                     "Use List.sort instead."]
-val array : ('a -> 'a -> bool) -> 'a array -> unit[@@ocaml.deprecated
-                                                    "Use Array.sort instead."]
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list[@@ocaml.deprecated
-                                                                 "Use List.merge instead."]
diff --git a/interfaces/4.06/spacetime.mli b/interfaces/4.06/spacetime.mli
deleted file mode 100644
index 0dabf48..0000000
--- a/interfaces/4.06/spacetime.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-val enabled : bool
-module Series :
-sig
-  type t
-  val create : path:string -> t
-  val save_event : ?time:float -> t -> event_name:string -> unit
-  val save_and_close : ?time:float -> t -> unit
-end
-module Snapshot : sig val take : ?time:float -> Series.t -> unit end
-val save_event_for_automatic_snapshots : event_name:string -> unit
diff --git a/interfaces/4.06/stack.mli b/interfaces/4.06/stack.mli
deleted file mode 100644
index 998573e..0000000
--- a/interfaces/4.06/stack.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
diff --git a/interfaces/4.06/stdLabels.mli b/interfaces/4.06/stdLabels.mli
deleted file mode 100644
index aac1e15..0000000
--- a/interfaces/4.06/stdLabels.mli
+++ /dev/null
@@ -1,222 +0,0 @@
-module Array :
-sig
-  external length : 'a array -> int = "%array_length"
-  external get : 'a array -> int -> 'a = "%array_safe_get"
-  external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-  external make : int -> 'a -> 'a array = "caml_make_vect"
-  external create : int -> 'a -> 'a array = "caml_make_vect"
-  val init : int -> f:(int -> 'a) -> 'a array
-  val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-  val append : 'a array -> 'a array -> 'a array
-  val concat : 'a array list -> 'a array
-  val sub : 'a array -> pos:int -> len:int -> 'a array
-  val copy : 'a array -> 'a array
-  val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-  val blit :
-    src:'a array ->
-      src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-  val to_list : 'a array -> 'a list
-  val of_list : 'a list -> 'a array
-  val iter : f:('a -> unit) -> 'a array -> unit
-  val map : f:('a -> 'b) -> 'a array -> 'b array
-  val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-  val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-  val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-  val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-  val exists : f:('a -> bool) -> 'a array -> bool
-  val for_all : f:('a -> bool) -> 'a array -> bool
-  val mem : 'a -> set:'a array -> bool
-  val memq : 'a -> set:'a array -> bool
-  external create_float : int -> float array = "caml_make_float_vect"
-  val make_float : int -> float array
-  val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-  external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-  external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-  module Floatarray :
-  sig
-    external create : int -> floatarray = "caml_floatarray_create"
-    external length : floatarray -> int = "%floatarray_length"
-    external get : floatarray -> int -> float = "%floatarray_safe_get"
-    external set :
-      floatarray -> int -> float -> unit = "%floatarray_safe_set"
-    external unsafe_get :
-      floatarray -> int -> float = "%floatarray_unsafe_get"
-    external unsafe_set :
-      floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-  end
-end
-module Bytes :
-sig
-  external length : bytes -> int = "%bytes_length"
-  external get : bytes -> int -> char = "%bytes_safe_get"
-  external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-  external create : int -> bytes = "caml_create_bytes"
-  val make : int -> char -> bytes
-  val init : int -> f:(int -> char) -> bytes
-  val empty : bytes
-  val copy : bytes -> bytes
-  val of_string : string -> bytes
-  val to_string : bytes -> string
-  val sub : bytes -> pos:int -> len:int -> bytes
-  val sub_string : bytes -> pos:int -> len:int -> string
-  val extend : bytes -> left:int -> right:int -> bytes
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val blit_string :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:bytes -> bytes list -> bytes
-  val cat : bytes -> bytes -> bytes
-  val iter : f:(char -> unit) -> bytes -> unit
-  val iteri : f:(int -> char -> unit) -> bytes -> unit
-  val map : f:(char -> char) -> bytes -> bytes
-  val mapi : f:(int -> char -> char) -> bytes -> bytes
-  val trim : bytes -> bytes
-  val escaped : bytes -> bytes
-  val index : bytes -> char -> int
-  val index_opt : bytes -> char -> int option
-  val rindex : bytes -> char -> int
-  val rindex_opt : bytes -> char -> int option
-  val index_from : bytes -> int -> char -> int
-  val index_from_opt : bytes -> int -> char -> int option
-  val rindex_from : bytes -> int -> char -> int
-  val rindex_from_opt : bytes -> int -> char -> int option
-  val contains : bytes -> char -> bool
-  val contains_from : bytes -> int -> char -> bool
-  val rcontains_from : bytes -> int -> char -> bool
-  val uppercase : bytes -> bytes
-  val lowercase : bytes -> bytes
-  val capitalize : bytes -> bytes
-  val uncapitalize : bytes -> bytes
-  val uppercase_ascii : bytes -> bytes
-  val lowercase_ascii : bytes -> bytes
-  val capitalize_ascii : bytes -> bytes
-  val uncapitalize_ascii : bytes -> bytes
-  type t = bytes
-  val compare : t -> t -> int
-  val equal : t -> t -> bool
-  external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-  external unsafe_blit :
-    src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-      "caml_blit_bytes"[@@noalloc ]
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc
-                                                                    ]
-  val unsafe_to_string : bytes -> string
-  val unsafe_of_string : string -> bytes
-end
-module List :
-sig
-  val length : 'a list -> int
-  val hd : 'a list -> 'a
-  val compare_lengths : 'a list -> 'b list -> int
-  val compare_length_with : 'a list -> len:int -> int
-  val cons : 'a -> 'a list -> 'a list
-  val tl : 'a list -> 'a list
-  val nth : 'a list -> int -> 'a
-  val nth_opt : 'a list -> int -> 'a option
-  val rev : 'a list -> 'a list
-  val init : len:int -> f:(int -> 'a) -> 'a list
-  val append : 'a list -> 'a list -> 'a list
-  val rev_append : 'a list -> 'a list -> 'a list
-  val concat : 'a list list -> 'a list
-  val flatten : 'a list list -> 'a list
-  val iter : f:('a -> unit) -> 'a list -> unit
-  val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-  val map : f:('a -> 'b) -> 'a list -> 'b list
-  val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-  val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-  val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-  val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-  val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-  val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-  val fold_left2 :
-    f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-  val fold_right2 :
-    f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-  val for_all : f:('a -> bool) -> 'a list -> bool
-  val exists : f:('a -> bool) -> 'a list -> bool
-  val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-  val mem : 'a -> set:'a list -> bool
-  val memq : 'a -> set:'a list -> bool
-  val find : f:('a -> bool) -> 'a list -> 'a
-  val find_opt : f:('a -> bool) -> 'a list -> 'a option
-  val filter : f:('a -> bool) -> 'a list -> 'a list
-  val find_all : f:('a -> bool) -> 'a list -> 'a list
-  val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-  val assoc : 'a -> ('a * 'b) list -> 'b
-  val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-  val assq : 'a -> ('a * 'b) list -> 'b
-  val assq_opt : 'a -> ('a * 'b) list -> 'b option
-  val mem_assoc : 'a -> map:('a * 'b) list -> bool
-  val mem_assq : 'a -> map:('a * 'b) list -> bool
-  val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-  val split : ('a * 'b) list -> ('a list * 'b list)
-  val combine : 'a list -> 'b list -> ('a * 'b) list
-  val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-  val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-end
-module String :
-sig
-  external length : string -> int = "%string_length"
-  external get : string -> int -> char = "%string_safe_get"
-  external set : bytes -> int -> char -> unit = "%string_safe_set"
-  external create : int -> bytes = "caml_create_string"
-  val make : int -> char -> string
-  val init : int -> f:(int -> char) -> string
-  val copy : string -> string
-  val sub : string -> pos:int -> len:int -> string
-  val fill : bytes -> pos:int -> len:int -> char -> unit
-  val blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-  val concat : sep:string -> string list -> string
-  val iter : f:(char -> unit) -> string -> unit
-  val iteri : f:(int -> char -> unit) -> string -> unit
-  val map : f:(char -> char) -> string -> string
-  val mapi : f:(int -> char -> char) -> string -> string
-  val trim : string -> string
-  val escaped : string -> string
-  val index : string -> char -> int
-  val index_opt : string -> char -> int option
-  val rindex : string -> char -> int
-  val rindex_opt : string -> char -> int option
-  val index_from : string -> int -> char -> int
-  val index_from_opt : string -> int -> char -> int option
-  val rindex_from : string -> int -> char -> int
-  val rindex_from_opt : string -> int -> char -> int option
-  val contains : string -> char -> bool
-  val contains_from : string -> int -> char -> bool
-  val rcontains_from : string -> int -> char -> bool
-  val uppercase : string -> string
-  val lowercase : string -> string
-  val capitalize : string -> string
-  val uncapitalize : string -> string
-  val uppercase_ascii : string -> string
-  val lowercase_ascii : string -> string
-  val capitalize_ascii : string -> string
-  val uncapitalize_ascii : string -> string
-  type t = string
-  val compare : t -> t -> int
-  val equal : t -> t -> bool
-  val split_on_char : sep:char -> string -> string list
-  external unsafe_get : string -> int -> char = "%string_unsafe_get"
-  external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-  external unsafe_blit :
-    src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-      = "caml_blit_string"[@@noalloc ]
-  external unsafe_fill :
-    bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
-end
diff --git a/interfaces/4.06/stream.mli b/interfaces/4.06/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.06/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.06/string.mli b/interfaces/4.06/string.mli
deleted file mode 100644
index 082e678..0000000
--- a/interfaces/4.06/string.mli
+++ /dev/null
@@ -1,58 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use Bytes.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use Bytes.create instead."]
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string[@@ocaml.deprecated
-                             "- : string -> string = <fun>"]
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit[@@ocaml.deprecated
-                                                "Use Bytes.fill instead."]
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string[@@ocaml.deprecated
-                                  "Use String.uppercase_ascii instead."]
-val lowercase : string -> string[@@ocaml.deprecated
-                                  "Use String.lowercase_ascii instead."]
-val capitalize : string -> string[@@ocaml.deprecated
-                                   "Use String.capitalize_ascii instead."]
-val uncapitalize : string -> string[@@ocaml.deprecated
-                                     "Use String.uncapitalize_ascii instead."]
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : char -> string -> string list
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                            "- : bytes -> int -> int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.06/stringLabels.mli b/interfaces/4.06/stringLabels.mli
deleted file mode 100644
index 21ee2b2..0000000
--- a/interfaces/4.06/stringLabels.mli
+++ /dev/null
@@ -1,59 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use BytesLabels.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use BytesLabels.create instead."]
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string[@@ocaml.deprecated
-                             "- : string -> string = <fun>"]
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit[@@ocaml.deprecated
-                                                        "Use BytesLabels.fill instead."]
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string[@@ocaml.deprecated
-                                  "Use String.uppercase_ascii instead."]
-val lowercase : string -> string[@@ocaml.deprecated
-                                  "Use String.lowercase_ascii instead."]
-val capitalize : string -> string[@@ocaml.deprecated
-                                   "Use String.capitalize_ascii instead."]
-val uncapitalize : string -> string[@@ocaml.deprecated
-                                     "Use String.uncapitalize_ascii instead."]
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : sep:char -> string -> string list
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                                    "- : bytes -> pos:int -> len:int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.06/sys.mli b/interfaces/4.06/sys.mli
deleted file mode 100644
index 8a3e536..0000000
--- a/interfaces/4.06/sys.mli
+++ /dev/null
@@ -1,73 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
diff --git a/interfaces/4.06/uchar.mli b/interfaces/4.06/uchar.mli
deleted file mode 100644
index 8a0c6b4..0000000
--- a/interfaces/4.06/uchar.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-type t
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.06/weak.mli b/interfaces/4.06/weak.mli
deleted file mode 100644
index 3be35a0..0000000
--- a/interfaces/4.06/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.07/arg.mli b/interfaces/4.07/arg.mli
deleted file mode 100644
index d27634a..0000000
--- a/interfaces/4.07/arg.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.07/array.mli b/interfaces/4.07/array.mli
deleted file mode 100644
index 4180626..0000000
--- a/interfaces/4.07/array.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use Array.create_float instead."]
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                        "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.07/arrayLabels.mli b/interfaces/4.07/arrayLabels.mli
deleted file mode 100644
index 6430c06..0000000
--- a/interfaces/4.07/arrayLabels.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"[@@ocaml.deprecated
-                                                            "Use Array.make instead."]
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array[@@ocaml.deprecated
-                                                                  "Use Array.make_matrix instead."]
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array[@@ocaml.deprecated
-                                     "Use Array.create_float instead."]
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.07/buffer.mli b/interfaces/4.07/buffer.mli
deleted file mode 100644
index 6f1b9d2..0000000
--- a/interfaces/4.07/buffer.mli
+++ /dev/null
@@ -1,27 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val add_seq : t -> char Seq.t -> unit
-val of_seq : char Seq.t -> t
diff --git a/interfaces/4.07/bytes.mli b/interfaces/4.07/bytes.mli
deleted file mode 100644
index 3fa2808..0000000
--- a/interfaces/4.07/bytes.mli
+++ /dev/null
@@ -1,61 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.uppercase_ascii instead."]
-val lowercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.lowercase_ascii instead."]
-val capitalize : bytes -> bytes[@@ocaml.deprecated
-                                 "Use Bytes.capitalize_ascii instead."]
-val uncapitalize : bytes -> bytes[@@ocaml.deprecated
-                                   "Use Bytes.uncapitalize_ascii instead."]
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.07/bytesLabels.mli b/interfaces/4.07/bytesLabels.mli
deleted file mode 100644
index f112200..0000000
--- a/interfaces/4.07/bytesLabels.mli
+++ /dev/null
@@ -1,64 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.uppercase_ascii instead."]
-val lowercase : bytes -> bytes[@@ocaml.deprecated
-                                "Use Bytes.lowercase_ascii instead."]
-val capitalize : bytes -> bytes[@@ocaml.deprecated
-                                 "Use Bytes.capitalize_ascii instead."]
-val uncapitalize : bytes -> bytes[@@ocaml.deprecated
-                                   "Use Bytes.uncapitalize_ascii instead."]
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.07/callback.mli b/interfaces/4.07/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.07/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.07/char.mli b/interfaces/4.07/char.mli
deleted file mode 100644
index 5e6a33a..0000000
--- a/interfaces/4.07/char.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char[@@ocaml.deprecated
-                              "Use Char.lowercase_ascii instead."]
-val uppercase : char -> char[@@ocaml.deprecated
-                              "Use Char.uppercase_ascii instead."]
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.07/complex.mli b/interfaces/4.07/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.07/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.07/digest.mli b/interfaces/4.07/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.07/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.07/ephemeron.mli b/interfaces/4.07/ephemeron.mli
deleted file mode 100644
index 584e708..0000000
--- a/interfaces/4.07/ephemeron.mli
+++ /dev/null
@@ -1,346 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.07/filename.mli b/interfaces/4.07/filename.mli
deleted file mode 100644
index 6b17c75..0000000
--- a/interfaces/4.07/filename.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string[@@ocaml.deprecated
-                            "Use Filename.get_temp_dir_name instead"]
-val quote : string -> string
diff --git a/interfaces/4.07/float.mli b/interfaces/4.07/float.mli
deleted file mode 100644
index 2915410..0000000
--- a/interfaces/4.07/float.mli
+++ /dev/null
@@ -1,91 +0,0 @@
-external neg : float -> float = "%negfloat"
-external add : float -> float -> float = "%addfloat"
-external sub : float -> float -> float = "%subfloat"
-external mul : float -> float -> float = "%mulfloat"
-external div : float -> float -> float = "%divfloat"
-external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
-[@@noalloc ]
-external abs : float -> float = "%absfloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val pi : float
-val max_float : float
-val min_float : float
-val epsilon : float
-external of_int : int -> float = "%floatofint"
-external to_int : float -> int = "%intoffloat"
-external of_string : string -> float = "caml_float_of_string"
-val of_string_opt : string -> float option
-val to_string : float -> string
-type fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-type t = float
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val hash : t -> int
-module Array :
-sig
-  type t = floatarray
-  external create : int -> t = "caml_floatarray_create"
-  external length : t -> int = "%floatarray_length"
-  external get : t -> int -> float = "%floatarray_safe_get"
-  external set : t -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.07/format.mli b/interfaces/4.07/format.mli
deleted file mode 100644
index 1caab58..0000000
--- a/interfaces/4.07/format.mli
+++ /dev/null
@@ -1,185 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type tag = string
-val pp_open_tag : formatter -> string -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a[@@ocaml.deprecated
-                                                              "- : Buffer.t -> ('a, Format.formatter, unit) format -> 'a = <fun>"]
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b[@@ocaml.deprecated
-                                                                    "Use Format.ksprintf instead."]
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                              "Use Format.set_formatter_out_functions instead."]
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))[@@ocaml.deprecated
-                      "Use Format.get_formatter_out_functions instead."]
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit[@@ocaml.deprecated
-                                                                "Use Format.pp_set_formatter_out_functions instead."]
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))[@@ocaml.deprecated
-                        "Use Format.pp_get_formatter_out_functions instead."]
diff --git a/interfaces/4.07/gc.mli b/interfaces/4.07/gc.mli
deleted file mode 100644
index 21250af..0000000
--- a/interfaces/4.07/gc.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.07/genlex.mli b/interfaces/4.07/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.07/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.07/hashtbl.mli b/interfaces/4.07/hashtbl.mli
deleted file mode 100644
index 7b80782..0000000
--- a/interfaces/4.07/hashtbl.mli
+++ /dev/null
@@ -1,149 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-val to_seq_values : ('a, 'b) t -> 'b Seq.t
-val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.07/int32.mli b/interfaces/4.07/int32.mli
deleted file mode 100644
index a3678c0..0000000
--- a/interfaces/4.07/int32.mli
+++ /dev/null
@@ -1,42 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.07/int64.mli b/interfaces/4.07/int64.mli
deleted file mode 100644
index a93f4d1..0000000
--- a/interfaces/4.07/int64.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.07/lazy.mli b/interfaces/4.07/lazy.mli
deleted file mode 100644
index 0db00dd..0000000
--- a/interfaces/4.07/lazy.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = 'a lazy_t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t[@@ocaml.deprecated
-                                          "Use Lazy.from_fun instead."]
-val lazy_from_val : 'a -> 'a t[@@ocaml.deprecated
-                                "Use Lazy.from_val instead."]
-val lazy_is_val : 'a t -> bool[@@ocaml.deprecated "Use Lazy.is_val instead."]
diff --git a/interfaces/4.07/lexing.mli b/interfaces/4.07/lexing.mli
deleted file mode 100644
index 99b0fa8..0000000
--- a/interfaces/4.07/lexing.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : in_channel -> lexbuf
-val from_string : string -> lexbuf
-val from_function : (bytes -> int -> int) -> lexbuf
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.07/list.mli b/interfaces/4.07/list.mli
deleted file mode 100644
index 5c25aac..0000000
--- a/interfaces/4.07/list.mli
+++ /dev/null
@@ -1,54 +0,0 @@
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.07/listLabels.mli b/interfaces/4.07/listLabels.mli
deleted file mode 100644
index b2da744..0000000
--- a/interfaces/4.07/listLabels.mli
+++ /dev/null
@@ -1,56 +0,0 @@
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.07/map.mli b/interfaces/4.07/map.mli
deleted file mode 100644
index 1cc8ee4..0000000
--- a/interfaces/4.07/map.mli
+++ /dev/null
@@ -1,90 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
diff --git a/interfaces/4.07/marshal.mli b/interfaces/4.07/marshal.mli
deleted file mode 100644
index 2902fd4..0000000
--- a/interfaces/4.07/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_bytes"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.07/moreLabels.mli b/interfaces/4.07/moreLabels.mli
deleted file mode 100644
index 2ddc337..0000000
--- a/interfaces/4.07/moreLabels.mli
+++ /dev/null
@@ -1,338 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-  val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-  val to_seq_values : ('a, 'b) t -> 'b Seq.t
-  val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.Make(H).t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.MakeSeeded(H).t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t = 'a Map.Make(Ord).t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t = Set.Make(Ord).t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-end
diff --git a/interfaces/4.07/nativeint.mli b/interfaces/4.07/nativeint.mli
deleted file mode 100644
index 9bb6c3b..0000000
--- a/interfaces/4.07/nativeint.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.07/obj.mli b/interfaces/4.07/obj.mli
deleted file mode 100644
index 7559102..0000000
--- a/interfaces/4.07/obj.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int[@@ocaml.deprecated "Replaced by custom_tag."]
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes[@@ocaml.deprecated "Use Marshal.to_bytes instead."]
-val unmarshal : bytes -> int -> (t * int)[@@ocaml.deprecated
-                                           "Use Marshal.from_bytes and Marshal.total_size instead."]
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-end
diff --git a/interfaces/4.07/oo.mli b/interfaces/4.07/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.07/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.07/parsing.mli b/interfaces/4.07/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.07/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.07/pervasives.mli b/interfaces/4.07/pervasives.mli
deleted file mode 100644
index eb790f1..0000000
--- a/interfaces/4.07/pervasives.mli
+++ /dev/null
@@ -1,250 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"[@@ocaml.deprecated
-                                                  "Use (&&) instead."]
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"[@@ocaml.deprecated
-                                                  "Use (||) instead."]
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.07/printexc.mli b/interfaces/4.07/printexc.mli
deleted file mode 100644
index 04e3a29..0000000
--- a/interfaces/4.07/printexc.mli
+++ /dev/null
@@ -1,40 +0,0 @@
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-val get_callstack : int -> raw_backtrace
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.07/printf.mli b/interfaces/4.07/printf.mli
deleted file mode 100644
index 5580624..0000000
--- a/interfaces/4.07/printf.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.07/queue.mli b/interfaces/4.07/queue.mli
deleted file mode 100644
index c2beacf..0000000
--- a/interfaces/4.07/queue.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.07/random.mli b/interfaces/4.07/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.07/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.07/scanf.mli b/interfaces/4.07/scanf.mli
deleted file mode 100644
index ed5075e..0000000
--- a/interfaces/4.07/scanf.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Pervasives.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                     "Use Scanning.from_channel then Scanf.bscanf."]
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner[@@ocaml.deprecated
-                                                                    "Use Scanning.from_channel then Scanf.kscanf."]
diff --git a/interfaces/4.07/seq.mli b/interfaces/4.07/seq.mli
deleted file mode 100644
index 4f5280b..0000000
--- a/interfaces/4.07/seq.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = unit -> 'a node
-and 'a node =
-  | Nil 
-  | Cons of 'a * 'a t 
-val empty : 'a t
-val return : 'a -> 'a t
-val map : ('a -> 'b) -> 'a t -> 'b t
-val filter : ('a -> bool) -> 'a t -> 'a t
-val filter_map : ('a -> 'b option) -> 'a t -> 'b t
-val flat_map : ('a -> 'b t) -> 'a t -> 'b t
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.07/set.mli b/interfaces/4.07/set.mli
deleted file mode 100644
index 5b173e4..0000000
--- a/interfaces/4.07/set.mli
+++ /dev/null
@@ -1,90 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
diff --git a/interfaces/4.07/sort.mli b/interfaces/4.07/sort.mli
deleted file mode 100644
index 81820f2..0000000
--- a/interfaces/4.07/sort.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-val list : ('a -> 'a -> bool) -> 'a list -> 'a list[@@ocaml.deprecated
-                                                     "Use List.sort instead."]
-val array : ('a -> 'a -> bool) -> 'a array -> unit[@@ocaml.deprecated
-                                                    "Use Array.sort instead."]
-val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list[@@ocaml.deprecated
-                                                                 "Use List.merge instead."]
diff --git a/interfaces/4.07/spacetime.mli b/interfaces/4.07/spacetime.mli
deleted file mode 100644
index 0dabf48..0000000
--- a/interfaces/4.07/spacetime.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-val enabled : bool
-module Series :
-sig
-  type t
-  val create : path:string -> t
-  val save_event : ?time:float -> t -> event_name:string -> unit
-  val save_and_close : ?time:float -> t -> unit
-end
-module Snapshot : sig val take : ?time:float -> Series.t -> unit end
-val save_event_for_automatic_snapshots : event_name:string -> unit
diff --git a/interfaces/4.07/stack.mli b/interfaces/4.07/stack.mli
deleted file mode 100644
index eae188e..0000000
--- a/interfaces/4.07/stack.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.07/stdLabels.mli b/interfaces/4.07/stdLabels.mli
deleted file mode 100644
index d86b996..0000000
--- a/interfaces/4.07/stdLabels.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-module Array = ArrayLabels
-module Bytes = BytesLabels
-module List = ListLabels
-module String = StringLabels
diff --git a/interfaces/4.07/stream.mli b/interfaces/4.07/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.07/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.07/string.mli b/interfaces/4.07/string.mli
deleted file mode 100644
index 879a92a..0000000
--- a/interfaces/4.07/string.mli
+++ /dev/null
@@ -1,61 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use Bytes.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use Bytes.create instead."]
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string[@@ocaml.deprecated
-                             "- : string -> string = <fun>"]
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit[@@ocaml.deprecated
-                                                "Use Bytes.fill instead."]
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string[@@ocaml.deprecated
-                                  "Use String.uppercase_ascii instead."]
-val lowercase : string -> string[@@ocaml.deprecated
-                                  "Use String.lowercase_ascii instead."]
-val capitalize : string -> string[@@ocaml.deprecated
-                                   "Use String.capitalize_ascii instead."]
-val uncapitalize : string -> string[@@ocaml.deprecated
-                                     "Use String.uncapitalize_ascii instead."]
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                            "- : bytes -> int -> int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.07/stringLabels.mli b/interfaces/4.07/stringLabels.mli
deleted file mode 100644
index c72bc6c..0000000
--- a/interfaces/4.07/stringLabels.mli
+++ /dev/null
@@ -1,62 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"[@@ocaml.deprecated
-                                                                  "Use BytesLabels.set instead."]
-external create : int -> bytes = "caml_create_string"[@@ocaml.deprecated
-                                                       "Use BytesLabels.create instead."]
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string[@@ocaml.deprecated
-                             "- : string -> string = <fun>"]
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit[@@ocaml.deprecated
-                                                        "Use BytesLabels.fill instead."]
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string[@@ocaml.deprecated
-                                  "Use String.uppercase_ascii instead."]
-val lowercase : string -> string[@@ocaml.deprecated
-                                  "Use String.lowercase_ascii instead."]
-val capitalize : string -> string[@@ocaml.deprecated
-                                   "Use String.capitalize_ascii instead."]
-val uncapitalize : string -> string[@@ocaml.deprecated
-                                     "Use String.uncapitalize_ascii instead."]
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : sep:char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-[@@ocaml.deprecated "- : bytes -> int -> char -> unit = <fun>"]
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@ocaml.deprecated
-                                                                    "- : bytes -> pos:int -> len:int -> char -> unit = <fun>"]
-[@@noalloc ]
diff --git a/interfaces/4.07/sys.mli b/interfaces/4.07/sys.mli
deleted file mode 100644
index 8a3e536..0000000
--- a/interfaces/4.07/sys.mli
+++ /dev/null
@@ -1,73 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
diff --git a/interfaces/4.07/uchar.mli b/interfaces/4.07/uchar.mli
deleted file mode 100644
index 8a0c6b4..0000000
--- a/interfaces/4.07/uchar.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-type t
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.07/weak.mli b/interfaces/4.07/weak.mli
deleted file mode 100644
index 3be35a0..0000000
--- a/interfaces/4.07/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.08/arg.mli b/interfaces/4.08/arg.mli
deleted file mode 100644
index d27634a..0000000
--- a/interfaces/4.08/arg.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.08/array.mli b/interfaces/4.08/array.mli
deleted file mode 100644
index 09829a6..0000000
--- a/interfaces/4.08/array.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.08/arrayLabels.mli b/interfaces/4.08/arrayLabels.mli
deleted file mode 100644
index 2d4c766..0000000
--- a/interfaces/4.08/arrayLabels.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.08/bool.mli b/interfaces/4.08/bool.mli
deleted file mode 100644
index a9131fb..0000000
--- a/interfaces/4.08/bool.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type t = bool =
-  | false 
-  | true 
-val not : bool -> bool
-external (&&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-val equal : bool -> bool -> bool
-val compare : bool -> bool -> int
-val to_int : bool -> int
-val to_float : bool -> float
-val to_string : bool -> string
diff --git a/interfaces/4.08/buffer.mli b/interfaces/4.08/buffer.mli
deleted file mode 100644
index 52aac6c..0000000
--- a/interfaces/4.08/buffer.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val add_seq : t -> char Seq.t -> unit
-val of_seq : char Seq.t -> t
-val add_uint8 : t -> int -> unit
-val add_int8 : t -> int -> unit
-val add_uint16_ne : t -> int -> unit
-val add_uint16_be : t -> int -> unit
-val add_uint16_le : t -> int -> unit
-val add_int16_ne : t -> int -> unit
-val add_int16_be : t -> int -> unit
-val add_int16_le : t -> int -> unit
-val add_int32_ne : t -> int32 -> unit
-val add_int32_be : t -> int32 -> unit
-val add_int32_le : t -> int32 -> unit
-val add_int64_ne : t -> int64 -> unit
-val add_int64_be : t -> int64 -> unit
-val add_int64_le : t -> int64 -> unit
diff --git a/interfaces/4.08/bytes.mli b/interfaces/4.08/bytes.mli
deleted file mode 100644
index 8eddfef..0000000
--- a/interfaces/4.08/bytes.mli
+++ /dev/null
@@ -1,85 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.08/bytesLabels.mli b/interfaces/4.08/bytesLabels.mli
deleted file mode 100644
index 8fdcf16..0000000
--- a/interfaces/4.08/bytesLabels.mli
+++ /dev/null
@@ -1,88 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.08/callback.mli b/interfaces/4.08/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.08/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.08/char.mli b/interfaces/4.08/char.mli
deleted file mode 100644
index 57b360f..0000000
--- a/interfaces/4.08/char.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.08/complex.mli b/interfaces/4.08/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.08/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.08/digest.mli b/interfaces/4.08/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.08/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.08/ephemeron.mli b/interfaces/4.08/ephemeron.mli
deleted file mode 100644
index 584e708..0000000
--- a/interfaces/4.08/ephemeron.mli
+++ /dev/null
@@ -1,346 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.08/filename.mli b/interfaces/4.08/filename.mli
deleted file mode 100644
index 23aa1ca..0000000
--- a/interfaces/4.08/filename.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_suffix_opt : suffix:string -> string -> string option
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
diff --git a/interfaces/4.08/float.mli b/interfaces/4.08/float.mli
deleted file mode 100644
index 0d13a90..0000000
--- a/interfaces/4.08/float.mli
+++ /dev/null
@@ -1,189 +0,0 @@
-val zero : float
-val one : float
-val minus_one : float
-external neg : float -> float = "%negfloat"
-external add : float -> float -> float = "%addfloat"
-external sub : float -> float -> float = "%subfloat"
-external mul : float -> float -> float = "%mulfloat"
-external div : float -> float -> float = "%divfloat"
-external fma : float -> float -> float -> float = "caml_fma_float" "caml_fma"
-[@@unboxed ][@@noalloc ]
-external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
-[@@noalloc ]
-val succ : float -> float
-val pred : float -> float
-external abs : float -> float = "%absfloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val pi : float
-val max_float : float
-val min_float : float
-val epsilon : float
-val is_finite : float -> bool
-val is_infinite : float -> bool
-val is_nan : float -> bool
-val is_integer : float -> bool
-external of_int : int -> float = "%floatofint"
-external to_int : float -> int = "%intoffloat"
-external of_string : string -> float = "caml_float_of_string"
-val of_string_opt : string -> float option
-val to_string : float -> string
-type fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external trunc : float -> float = "caml_trunc_float" "caml_trunc"[@@unboxed ]
-[@@noalloc ]
-external round : float -> float = "caml_round_float" "caml_round"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external next_after :
-  float -> float -> float = "caml_nextafter_float" "caml_nextafter"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external copy_sign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external sign_bit :
-  ((float)[@unboxed ]) -> bool = "caml_signbit_float" "caml_signbit"[@@noalloc
-                                                                    ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-type t = float
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : float -> float -> float
-val min_max : float -> float -> (float * float)
-val min_num : t -> t -> t
-val max_num : t -> t -> t
-val min_max_num : float -> float -> (float * float)
-val hash : t -> int
-module Array :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> (int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> int -> int -> t
-  val copy : t -> t
-  val fill : t -> int -> int -> float -> unit
-  val blit : t -> int -> t -> int -> int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : (float -> unit) -> t -> unit
-  val iteri : (int -> float -> unit) -> t -> unit
-  val map : (float -> float) -> t -> t
-  val mapi : (int -> float -> float) -> t -> t
-  val fold_left : ('a -> float -> 'a) -> 'a -> t -> 'a
-  val fold_right : (float -> 'a -> 'a) -> t -> 'a -> 'a
-  val iter2 : (float -> float -> unit) -> t -> t -> unit
-  val map2 : (float -> float -> float) -> t -> t -> t
-  val for_all : (float -> bool) -> t -> bool
-  val exists : (float -> bool) -> t -> bool
-  val mem : float -> t -> bool
-  val mem_ieee : float -> t -> bool
-  val sort : (float -> float -> int) -> t -> unit
-  val stable_sort : (float -> float -> int) -> t -> unit
-  val fast_sort : (float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : (float -> 'a) -> t -> 'a array
-  val map_from_array : ('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
-module ArrayLabels :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> f:(int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> pos:int -> len:int -> t
-  val copy : t -> t
-  val fill : t -> pos:int -> len:int -> float -> unit
-  val blit : src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : f:(float -> unit) -> t -> unit
-  val iteri : f:(int -> float -> unit) -> t -> unit
-  val map : f:(float -> float) -> t -> t
-  val mapi : f:(int -> float -> float) -> t -> t
-  val fold_left : f:('a -> float -> 'a) -> init:'a -> t -> 'a
-  val fold_right : f:(float -> 'a -> 'a) -> t -> init:'a -> 'a
-  val iter2 : f:(float -> float -> unit) -> t -> t -> unit
-  val map2 : f:(float -> float -> float) -> t -> t -> t
-  val for_all : f:(float -> bool) -> t -> bool
-  val exists : f:(float -> bool) -> t -> bool
-  val mem : float -> set:t -> bool
-  val mem_ieee : float -> set:t -> bool
-  val sort : cmp:(float -> float -> int) -> t -> unit
-  val stable_sort : cmp:(float -> float -> int) -> t -> unit
-  val fast_sort : cmp:(float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : f:(float -> 'a) -> t -> 'a array
-  val map_from_array : f:('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.08/format.mli b/interfaces/4.08/format.mli
deleted file mode 100644
index 9eee4be..0000000
--- a/interfaces/4.08/format.mli
+++ /dev/null
@@ -1,220 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_print_custom_break :
-  formatter ->
-    fits:(string * int * string) -> breaks:(string * int * string) -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-type geometry = {
-  max_indent: int ;
-  margin: int }
-val check_geometry : geometry -> bool
-val pp_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val set_geometry : max_indent:int -> margin:int -> unit
-val pp_safe_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val safe_set_geometry : max_indent:int -> margin:int -> unit
-val pp_get_geometry : formatter -> unit -> geometry
-val get_geometry : unit -> geometry
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type stag = ..
-type tag = string
-type stag +=  
-  | String_tag of tag 
-val pp_open_stag : formatter -> stag -> unit
-val open_stag : stag -> unit
-val pp_close_stag : formatter -> unit -> unit
-val close_stag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_stag_functions =
-  {
-  mark_open_stag: stag -> string ;
-  mark_close_stag: stag -> string ;
-  print_open_stag: stag -> unit ;
-  print_close_stag: stag -> unit }
-val pp_set_formatter_stag_functions :
-  formatter -> formatter_stag_functions -> unit
-val set_formatter_stag_functions : formatter_stag_functions -> unit
-val pp_get_formatter_stag_functions :
-  formatter -> unit -> formatter_stag_functions
-val get_formatter_stag_functions : unit -> formatter_stag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val pp_print_option :
-  ?none:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a option -> unit
-val pp_print_result :
-  ok:(formatter -> 'a -> unit) ->
-    error:(formatter -> 'e -> unit) -> formatter -> ('a, 'e) result -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val dprintf : ('a, formatter, unit, formatter -> unit) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val kdprintf :
-  ((formatter -> unit) -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_open_tag : formatter -> tag -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
diff --git a/interfaces/4.08/fun.mli b/interfaces/4.08/fun.mli
deleted file mode 100644
index f274db4..0000000
--- a/interfaces/4.08/fun.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-external id : 'a -> 'a = "%identity"
-val const : 'a -> 'b -> 'a
-val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
-val negate : ('a -> bool) -> 'a -> bool
-val protect : finally:(unit -> unit) -> (unit -> 'a) -> 'a
-exception Finally_raised of exn 
diff --git a/interfaces/4.08/gc.mli b/interfaces/4.08/gc.mli
deleted file mode 100644
index 53b825c..0000000
--- a/interfaces/4.08/gc.mli
+++ /dev/null
@@ -1,56 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int ;
-  custom_major_ratio: int ;
-  custom_minor_ratio: int ;
-  custom_minor_max_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.08/genlex.mli b/interfaces/4.08/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.08/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.08/hashtbl.mli b/interfaces/4.08/hashtbl.mli
deleted file mode 100644
index 7b80782..0000000
--- a/interfaces/4.08/hashtbl.mli
+++ /dev/null
@@ -1,149 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-val to_seq_values : ('a, 'b) t -> 'b Seq.t
-val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.08/int32.mli b/interfaces/4.08/int32.mli
deleted file mode 100644
index 96aa3b3..0000000
--- a/interfaces/4.08/int32.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-val unsigned_div : int32 -> int32 -> int32
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val unsigned_rem : int32 -> int32 -> int32
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-val unsigned_to_int : int32 -> int option
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.08/int64.mli b/interfaces/4.08/int64.mli
deleted file mode 100644
index be055f0..0000000
--- a/interfaces/4.08/int64.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-val unsigned_div : int64 -> int64 -> int64
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val unsigned_rem : int64 -> int64 -> int64
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-val unsigned_to_int : int64 -> int option
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.08/lazy.mli b/interfaces/4.08/lazy.mli
deleted file mode 100644
index 064802a..0000000
--- a/interfaces/4.08/lazy.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type 'a t = 'a CamlinternalLazy.t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.08/lexing.mli b/interfaces/4.08/lexing.mli
deleted file mode 100644
index 03f3b3d..0000000
--- a/interfaces/4.08/lexing.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : ?with_positions:bool -> in_channel -> lexbuf
-val from_string : ?with_positions:bool -> string -> lexbuf
-val from_function : ?with_positions:bool -> (bytes -> int -> int) -> lexbuf
-val with_positions : lexbuf -> bool
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.08/list.mli b/interfaces/4.08/list.mli
deleted file mode 100644
index 45ffcfd..0000000
--- a/interfaces/4.08/list.mli
+++ /dev/null
@@ -1,58 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val filter_map : ('a -> 'b option) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.08/listLabels.mli b/interfaces/4.08/listLabels.mli
deleted file mode 100644
index 5074d60..0000000
--- a/interfaces/4.08/listLabels.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val filter_map : f:('a -> 'b option) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.08/map.mli b/interfaces/4.08/map.mli
deleted file mode 100644
index 1cc8ee4..0000000
--- a/interfaces/4.08/map.mli
+++ /dev/null
@@ -1,90 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
diff --git a/interfaces/4.08/marshal.mli b/interfaces/4.08/marshal.mli
deleted file mode 100644
index 2902fd4..0000000
--- a/interfaces/4.08/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_bytes"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.08/moreLabels.mli b/interfaces/4.08/moreLabels.mli
deleted file mode 100644
index fa75524..0000000
--- a/interfaces/4.08/moreLabels.mli
+++ /dev/null
@@ -1,340 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-  val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-  val to_seq_values : ('a, 'b) t -> 'b Seq.t
-  val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.Make(H).t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.MakeSeeded(H).t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t = 'a Map.Make(Ord).t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t = Set.Make(Ord).t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-end
diff --git a/interfaces/4.08/nativeint.mli b/interfaces/4.08/nativeint.mli
deleted file mode 100644
index 6107382..0000000
--- a/interfaces/4.08/nativeint.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-val unsigned_div : nativeint -> nativeint -> nativeint
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val unsigned_rem : nativeint -> nativeint -> nativeint
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-val unsigned_to_int : nativeint -> int option
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.08/obj.mli b/interfaces/4.08/obj.mli
deleted file mode 100644
index 6da8bd7..0000000
--- a/interfaces/4.08/obj.mli
+++ /dev/null
@@ -1,67 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-module Extension_constructor :
-sig
-  type t = extension_constructor
-  val of_val : 'a -> t
-  val name : t -> string
-  val id : t -> int
-end
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes
-val unmarshal : bytes -> int -> (t * int)
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-  val max_ephe_length : int
-end
diff --git a/interfaces/4.08/oo.mli b/interfaces/4.08/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.08/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.08/option.mli b/interfaces/4.08/option.mli
deleted file mode 100644
index 9d309eb..0000000
--- a/interfaces/4.08/option.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type 'a t = 'a option =
-  | None 
-  | Some of 'a 
-val none : 'a option
-val some : 'a -> 'a option
-val value : 'a option -> default:'a -> 'a
-val get : 'a option -> 'a
-val bind : 'a option -> ('a -> 'b option) -> 'b option
-val join : 'a option option -> 'a option
-val map : ('a -> 'b) -> 'a option -> 'b option
-val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
-val iter : ('a -> unit) -> 'a option -> unit
-val is_none : 'a option -> bool
-val is_some : 'a option -> bool
-val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
-val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
-val to_result : none:'e -> 'a option -> ('a, 'e) result
-val to_list : 'a option -> 'a list
-val to_seq : 'a option -> 'a Seq.t
diff --git a/interfaces/4.08/parsing.mli b/interfaces/4.08/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.08/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.08/pervasives.mli b/interfaces/4.08/pervasives.mli
deleted file mode 100644
index fd024d1..0000000
--- a/interfaces/4.08/pervasives.mli
+++ /dev/null
@@ -1,241 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type nonrec fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type nonrec in_channel = in_channel
-type nonrec out_channel = out_channel
-val stdin : Stdlib.in_channel
-val stdout : Stdlib.out_channel
-val stderr : Stdlib.out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type nonrec open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> Stdlib.out_channel
-val open_out_bin : string -> Stdlib.out_channel
-val open_out_gen :
-  Stdlib.open_flag list -> int -> string -> Stdlib.out_channel
-val flush : Stdlib.out_channel -> unit
-val flush_all : unit -> unit
-val output_char : Stdlib.out_channel -> char -> unit
-val output_string : Stdlib.out_channel -> string -> unit
-val output_bytes : Stdlib.out_channel -> bytes -> unit
-val output : Stdlib.out_channel -> bytes -> int -> int -> unit
-val output_substring : Stdlib.out_channel -> string -> int -> int -> unit
-val output_byte : Stdlib.out_channel -> int -> unit
-val output_binary_int : Stdlib.out_channel -> int -> unit
-val output_value : Stdlib.out_channel -> 'a -> unit
-val seek_out : Stdlib.out_channel -> int -> unit
-val pos_out : Stdlib.out_channel -> int
-val out_channel_length : Stdlib.out_channel -> int
-val close_out : Stdlib.out_channel -> unit
-val close_out_noerr : Stdlib.out_channel -> unit
-val set_binary_mode_out : Stdlib.out_channel -> bool -> unit
-val open_in : string -> Stdlib.in_channel
-val open_in_bin : string -> Stdlib.in_channel
-val open_in_gen : Stdlib.open_flag list -> int -> string -> Stdlib.in_channel
-val input_char : Stdlib.in_channel -> char
-val input_line : Stdlib.in_channel -> string
-val input : Stdlib.in_channel -> bytes -> int -> int -> int
-val really_input : Stdlib.in_channel -> bytes -> int -> int -> unit
-val really_input_string : Stdlib.in_channel -> int -> string
-val input_byte : Stdlib.in_channel -> int
-val input_binary_int : Stdlib.in_channel -> int
-val input_value : Stdlib.in_channel -> 'a
-val seek_in : Stdlib.in_channel -> int -> unit
-val pos_in : Stdlib.in_channel -> int
-val in_channel_length : Stdlib.in_channel -> int
-val close_in : Stdlib.in_channel -> unit
-val close_in_noerr : Stdlib.in_channel -> unit
-val set_binary_mode_in : Stdlib.in_channel -> bool -> unit
-module LargeFile = LargeFile
-type nonrec 'a ref = 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type nonrec ('a, 'b) result = ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) Stdlib.format6 ->
-      ('a, 'b, 'c, 'd, 'g, 'h) Stdlib.format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.08/printexc.mli b/interfaces/4.08/printexc.mli
deleted file mode 100644
index 335093a..0000000
--- a/interfaces/4.08/printexc.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-type t = exn = ..
-val to_string : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-val get_callstack : int -> raw_backtrace
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.08/printf.mli b/interfaces/4.08/printf.mli
deleted file mode 100644
index 5580624..0000000
--- a/interfaces/4.08/printf.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.08/queue.mli b/interfaces/4.08/queue.mli
deleted file mode 100644
index e52fe1a..0000000
--- a/interfaces/4.08/queue.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val take_opt : 'a t -> 'a option
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val peek_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.08/random.mli b/interfaces/4.08/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.08/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.08/result.mli b/interfaces/4.08/result.mli
deleted file mode 100644
index 06f96e6..0000000
--- a/interfaces/4.08/result.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type ('a, 'e) t = ('a, 'e) result =
-  | Ok of 'a 
-  | Error of 'e 
-val ok : 'a -> ('a, 'e) result
-val error : 'e -> ('a, 'e) result
-val value : ('a, 'e) result -> default:'a -> 'a
-val get_ok : ('a, 'e) result -> 'a
-val get_error : ('a, 'e) result -> 'e
-val bind : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
-val join : (('a, 'e) result, 'e) result -> ('a, 'e) result
-val map : ('a -> 'b) -> ('a, 'e) result -> ('b, 'e) result
-val map_error : ('e -> 'f) -> ('a, 'e) result -> ('a, 'f) result
-val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'c
-val iter : ('a -> unit) -> ('a, 'e) result -> unit
-val iter_error : ('e -> unit) -> ('a, 'e) result -> unit
-val is_ok : ('a, 'e) result -> bool
-val is_error : ('a, 'e) result -> bool
-val equal :
-  ok:('a -> 'a -> bool) ->
-    error:('e -> 'e -> bool) -> ('a, 'e) result -> ('a, 'e) result -> bool
-val compare :
-  ok:('a -> 'a -> int) ->
-    error:('e -> 'e -> int) -> ('a, 'e) result -> ('a, 'e) result -> int
-val to_option : ('a, 'e) result -> 'a option
-val to_list : ('a, 'e) result -> 'a list
-val to_seq : ('a, 'e) result -> 'a Seq.t
diff --git a/interfaces/4.08/scanf.mli b/interfaces/4.08/scanf.mli
deleted file mode 100644
index b3bc615..0000000
--- a/interfaces/4.08/scanf.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Stdlib.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
diff --git a/interfaces/4.08/seq.mli b/interfaces/4.08/seq.mli
deleted file mode 100644
index 4f5280b..0000000
--- a/interfaces/4.08/seq.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = unit -> 'a node
-and 'a node =
-  | Nil 
-  | Cons of 'a * 'a t 
-val empty : 'a t
-val return : 'a -> 'a t
-val map : ('a -> 'b) -> 'a t -> 'b t
-val filter : ('a -> bool) -> 'a t -> 'a t
-val filter_map : ('a -> 'b option) -> 'a t -> 'b t
-val flat_map : ('a -> 'b t) -> 'a t -> 'b t
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.08/set.mli b/interfaces/4.08/set.mli
deleted file mode 100644
index 134c22d..0000000
--- a/interfaces/4.08/set.mli
+++ /dev/null
@@ -1,92 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
diff --git a/interfaces/4.08/spacetime.mli b/interfaces/4.08/spacetime.mli
deleted file mode 100644
index 0dabf48..0000000
--- a/interfaces/4.08/spacetime.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-val enabled : bool
-module Series :
-sig
-  type t
-  val create : path:string -> t
-  val save_event : ?time:float -> t -> event_name:string -> unit
-  val save_and_close : ?time:float -> t -> unit
-end
-module Snapshot : sig val take : ?time:float -> Series.t -> unit end
-val save_event_for_automatic_snapshots : event_name:string -> unit
diff --git a/interfaces/4.08/stack.mli b/interfaces/4.08/stack.mli
deleted file mode 100644
index 6ef0c38..0000000
--- a/interfaces/4.08/stack.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val pop_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val top_opt : 'a t -> 'a option
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.08/stdLabels.mli b/interfaces/4.08/stdLabels.mli
deleted file mode 100644
index d86b996..0000000
--- a/interfaces/4.08/stdLabels.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-module Array = ArrayLabels
-module Bytes = BytesLabels
-module List = ListLabels
-module String = StringLabels
diff --git a/interfaces/4.08/stdlib.mli b/interfaces/4.08/stdlib.mli
deleted file mode 100644
index da0a2e6..0000000
--- a/interfaces/4.08/stdlib.mli
+++ /dev/null
@@ -1,313 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-exception Match_failure of (string * int * int) 
-exception Assert_failure of (string * int * int) 
-exception Invalid_argument of string 
-exception Failure of string 
-exception Not_found 
-exception Out_of_memory 
-exception Stack_overflow 
-exception Sys_error of string 
-exception End_of_file 
-exception Division_by_zero 
-exception Sys_blocked_io 
-exception Undefined_recursive_module of (string * int * int) 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string_opt : string -> bool option
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-val int_of_string_opt : string -> int option
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-val float_of_string_opt : string -> float option
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int_opt : unit -> int option
-val read_int : unit -> int
-val read_float_opt : unit -> float option
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
-module Arg = Arg
-module Array = Array
-module ArrayLabels = ArrayLabels
-module Bigarray = Bigarray
-module Bool = Bool
-module Buffer = Buffer
-module Bytes = Bytes
-module BytesLabels = BytesLabels
-module Callback = Callback
-module Char = Char
-module Complex = Complex
-module Digest = Digest
-module Ephemeron = Ephemeron
-module Filename = Filename
-module Float = Float
-module Format = Format
-module Fun = Fun
-module Gc = Gc
-module Genlex = Genlex
-module Hashtbl = Hashtbl
-module Int = Int
-module Int32 = Int32
-module Int64 = Int64
-module Lazy = Lazy
-module Lexing = Lexing
-module List = List
-module ListLabels = ListLabels
-module Map = Map
-module Marshal = Marshal
-module MoreLabels = MoreLabels
-module Nativeint = Nativeint
-module Obj = Obj
-module Oo = Oo
-module Option = Option
-module Parsing = Parsing
-module Pervasives = Pervasives
-module Printexc = Printexc
-module Printf = Printf
-module Queue = Queue
-module Random = Random
-module Result = Result
-module Scanf = Scanf
-module Seq = Seq
-module Set = Set
-module Spacetime = Spacetime
-module Stack = Stack
-module StdLabels = StdLabels
-module Stream = Stream
-module String = String
-module StringLabels = StringLabels
-module Sys = Sys
-module Uchar = Uchar
-module Weak = Weak
diff --git a/interfaces/4.08/stream.mli b/interfaces/4.08/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.08/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.08/string.mli b/interfaces/4.08/string.mli
deleted file mode 100644
index 0449717..0000000
--- a/interfaces/4.08/string.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@noalloc ]
diff --git a/interfaces/4.08/stringLabels.mli b/interfaces/4.08/stringLabels.mli
deleted file mode 100644
index 5c12f4d..0000000
--- a/interfaces/4.08/stringLabels.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : sep:char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
diff --git a/interfaces/4.08/sys.mli b/interfaces/4.08/sys.mli
deleted file mode 100644
index 0f580ee..0000000
--- a/interfaces/4.08/sys.mli
+++ /dev/null
@@ -1,74 +0,0 @@
-val argv : string array
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-val max_floatarray_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
diff --git a/interfaces/4.08/uchar.mli b/interfaces/4.08/uchar.mli
deleted file mode 100644
index 8a0c6b4..0000000
--- a/interfaces/4.08/uchar.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-type t
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.08/unit.mli b/interfaces/4.08/unit.mli
deleted file mode 100644
index 1efbc15..0000000
--- a/interfaces/4.08/unit.mli
+++ /dev/null
@@ -1,5 +0,0 @@
-type t = unit =
-  | () 
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val to_string : t -> string
diff --git a/interfaces/4.08/weak.mli b/interfaces/4.08/weak.mli
deleted file mode 100644
index 3be35a0..0000000
--- a/interfaces/4.08/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.09/arg.mli b/interfaces/4.09/arg.mli
deleted file mode 100644
index d27634a..0000000
--- a/interfaces/4.09/arg.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.09/array.mli b/interfaces/4.09/array.mli
deleted file mode 100644
index 09829a6..0000000
--- a/interfaces/4.09/array.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.09/arrayLabels.mli b/interfaces/4.09/arrayLabels.mli
deleted file mode 100644
index 2d4c766..0000000
--- a/interfaces/4.09/arrayLabels.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.09/bool.mli b/interfaces/4.09/bool.mli
deleted file mode 100644
index a9131fb..0000000
--- a/interfaces/4.09/bool.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type t = bool =
-  | false 
-  | true 
-val not : bool -> bool
-external (&&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-val equal : bool -> bool -> bool
-val compare : bool -> bool -> int
-val to_int : bool -> int
-val to_float : bool -> float
-val to_string : bool -> string
diff --git a/interfaces/4.09/buffer.mli b/interfaces/4.09/buffer.mli
deleted file mode 100644
index 52aac6c..0000000
--- a/interfaces/4.09/buffer.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val add_seq : t -> char Seq.t -> unit
-val of_seq : char Seq.t -> t
-val add_uint8 : t -> int -> unit
-val add_int8 : t -> int -> unit
-val add_uint16_ne : t -> int -> unit
-val add_uint16_be : t -> int -> unit
-val add_uint16_le : t -> int -> unit
-val add_int16_ne : t -> int -> unit
-val add_int16_be : t -> int -> unit
-val add_int16_le : t -> int -> unit
-val add_int32_ne : t -> int32 -> unit
-val add_int32_be : t -> int32 -> unit
-val add_int32_le : t -> int32 -> unit
-val add_int64_ne : t -> int64 -> unit
-val add_int64_be : t -> int64 -> unit
-val add_int64_le : t -> int64 -> unit
diff --git a/interfaces/4.09/bytes.mli b/interfaces/4.09/bytes.mli
deleted file mode 100644
index 7f0ce2a..0000000
--- a/interfaces/4.09/bytes.mli
+++ /dev/null
@@ -1,88 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.09/bytesLabels.mli b/interfaces/4.09/bytesLabels.mli
deleted file mode 100644
index ded4d1c..0000000
--- a/interfaces/4.09/bytesLabels.mli
+++ /dev/null
@@ -1,91 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.09/callback.mli b/interfaces/4.09/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.09/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.09/char.mli b/interfaces/4.09/char.mli
deleted file mode 100644
index 57b360f..0000000
--- a/interfaces/4.09/char.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.09/complex.mli b/interfaces/4.09/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.09/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.09/digest.mli b/interfaces/4.09/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.09/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.09/ephemeron.mli b/interfaces/4.09/ephemeron.mli
deleted file mode 100644
index 584e708..0000000
--- a/interfaces/4.09/ephemeron.mli
+++ /dev/null
@@ -1,346 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.09/filename.mli b/interfaces/4.09/filename.mli
deleted file mode 100644
index 23aa1ca..0000000
--- a/interfaces/4.09/filename.mli
+++ /dev/null
@@ -1,23 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_suffix_opt : suffix:string -> string -> string option
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
diff --git a/interfaces/4.09/float.mli b/interfaces/4.09/float.mli
deleted file mode 100644
index 0d13a90..0000000
--- a/interfaces/4.09/float.mli
+++ /dev/null
@@ -1,189 +0,0 @@
-val zero : float
-val one : float
-val minus_one : float
-external neg : float -> float = "%negfloat"
-external add : float -> float -> float = "%addfloat"
-external sub : float -> float -> float = "%subfloat"
-external mul : float -> float -> float = "%mulfloat"
-external div : float -> float -> float = "%divfloat"
-external fma : float -> float -> float -> float = "caml_fma_float" "caml_fma"
-[@@unboxed ][@@noalloc ]
-external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
-[@@noalloc ]
-val succ : float -> float
-val pred : float -> float
-external abs : float -> float = "%absfloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val pi : float
-val max_float : float
-val min_float : float
-val epsilon : float
-val is_finite : float -> bool
-val is_infinite : float -> bool
-val is_nan : float -> bool
-val is_integer : float -> bool
-external of_int : int -> float = "%floatofint"
-external to_int : float -> int = "%intoffloat"
-external of_string : string -> float = "caml_float_of_string"
-val of_string_opt : string -> float option
-val to_string : float -> string
-type fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external trunc : float -> float = "caml_trunc_float" "caml_trunc"[@@unboxed ]
-[@@noalloc ]
-external round : float -> float = "caml_round_float" "caml_round"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external next_after :
-  float -> float -> float = "caml_nextafter_float" "caml_nextafter"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external copy_sign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external sign_bit :
-  ((float)[@unboxed ]) -> bool = "caml_signbit_float" "caml_signbit"[@@noalloc
-                                                                    ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-type t = float
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : float -> float -> float
-val min_max : float -> float -> (float * float)
-val min_num : t -> t -> t
-val max_num : t -> t -> t
-val min_max_num : float -> float -> (float * float)
-val hash : t -> int
-module Array :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> (int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> int -> int -> t
-  val copy : t -> t
-  val fill : t -> int -> int -> float -> unit
-  val blit : t -> int -> t -> int -> int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : (float -> unit) -> t -> unit
-  val iteri : (int -> float -> unit) -> t -> unit
-  val map : (float -> float) -> t -> t
-  val mapi : (int -> float -> float) -> t -> t
-  val fold_left : ('a -> float -> 'a) -> 'a -> t -> 'a
-  val fold_right : (float -> 'a -> 'a) -> t -> 'a -> 'a
-  val iter2 : (float -> float -> unit) -> t -> t -> unit
-  val map2 : (float -> float -> float) -> t -> t -> t
-  val for_all : (float -> bool) -> t -> bool
-  val exists : (float -> bool) -> t -> bool
-  val mem : float -> t -> bool
-  val mem_ieee : float -> t -> bool
-  val sort : (float -> float -> int) -> t -> unit
-  val stable_sort : (float -> float -> int) -> t -> unit
-  val fast_sort : (float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : (float -> 'a) -> t -> 'a array
-  val map_from_array : ('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
-module ArrayLabels :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> f:(int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> pos:int -> len:int -> t
-  val copy : t -> t
-  val fill : t -> pos:int -> len:int -> float -> unit
-  val blit : src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : f:(float -> unit) -> t -> unit
-  val iteri : f:(int -> float -> unit) -> t -> unit
-  val map : f:(float -> float) -> t -> t
-  val mapi : f:(int -> float -> float) -> t -> t
-  val fold_left : f:('a -> float -> 'a) -> init:'a -> t -> 'a
-  val fold_right : f:(float -> 'a -> 'a) -> t -> init:'a -> 'a
-  val iter2 : f:(float -> float -> unit) -> t -> t -> unit
-  val map2 : f:(float -> float -> float) -> t -> t -> t
-  val for_all : f:(float -> bool) -> t -> bool
-  val exists : f:(float -> bool) -> t -> bool
-  val mem : float -> set:t -> bool
-  val mem_ieee : float -> set:t -> bool
-  val sort : cmp:(float -> float -> int) -> t -> unit
-  val stable_sort : cmp:(float -> float -> int) -> t -> unit
-  val fast_sort : cmp:(float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : f:(float -> 'a) -> t -> 'a array
-  val map_from_array : f:('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.09/format.mli b/interfaces/4.09/format.mli
deleted file mode 100644
index 9eee4be..0000000
--- a/interfaces/4.09/format.mli
+++ /dev/null
@@ -1,220 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_print_custom_break :
-  formatter ->
-    fits:(string * int * string) -> breaks:(string * int * string) -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-type geometry = {
-  max_indent: int ;
-  margin: int }
-val check_geometry : geometry -> bool
-val pp_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val set_geometry : max_indent:int -> margin:int -> unit
-val pp_safe_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val safe_set_geometry : max_indent:int -> margin:int -> unit
-val pp_get_geometry : formatter -> unit -> geometry
-val get_geometry : unit -> geometry
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type stag = ..
-type tag = string
-type stag +=  
-  | String_tag of tag 
-val pp_open_stag : formatter -> stag -> unit
-val open_stag : stag -> unit
-val pp_close_stag : formatter -> unit -> unit
-val close_stag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_stag_functions =
-  {
-  mark_open_stag: stag -> string ;
-  mark_close_stag: stag -> string ;
-  print_open_stag: stag -> unit ;
-  print_close_stag: stag -> unit }
-val pp_set_formatter_stag_functions :
-  formatter -> formatter_stag_functions -> unit
-val set_formatter_stag_functions : formatter_stag_functions -> unit
-val pp_get_formatter_stag_functions :
-  formatter -> unit -> formatter_stag_functions
-val get_formatter_stag_functions : unit -> formatter_stag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val pp_print_option :
-  ?none:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a option -> unit
-val pp_print_result :
-  ok:(formatter -> 'a -> unit) ->
-    error:(formatter -> 'e -> unit) -> formatter -> ('a, 'e) result -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val dprintf : ('a, formatter, unit, formatter -> unit) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val kdprintf :
-  ((formatter -> unit) -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_open_tag : formatter -> tag -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
diff --git a/interfaces/4.09/fun.mli b/interfaces/4.09/fun.mli
deleted file mode 100644
index f274db4..0000000
--- a/interfaces/4.09/fun.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-external id : 'a -> 'a = "%identity"
-val const : 'a -> 'b -> 'a
-val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
-val negate : ('a -> bool) -> 'a -> bool
-val protect : finally:(unit -> unit) -> (unit -> 'a) -> 'a
-exception Finally_raised of exn 
diff --git a/interfaces/4.09/gc.mli b/interfaces/4.09/gc.mli
deleted file mode 100644
index 53b825c..0000000
--- a/interfaces/4.09/gc.mli
+++ /dev/null
@@ -1,56 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int ;
-  custom_major_ratio: int ;
-  custom_minor_ratio: int ;
-  custom_minor_max_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.09/genlex.mli b/interfaces/4.09/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.09/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.09/hashtbl.mli b/interfaces/4.09/hashtbl.mli
deleted file mode 100644
index 7b80782..0000000
--- a/interfaces/4.09/hashtbl.mli
+++ /dev/null
@@ -1,149 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-val to_seq_values : ('a, 'b) t -> 'b Seq.t
-val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.09/int32.mli b/interfaces/4.09/int32.mli
deleted file mode 100644
index 96aa3b3..0000000
--- a/interfaces/4.09/int32.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-val unsigned_div : int32 -> int32 -> int32
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val unsigned_rem : int32 -> int32 -> int32
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-val unsigned_to_int : int32 -> int option
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.09/int64.mli b/interfaces/4.09/int64.mli
deleted file mode 100644
index be055f0..0000000
--- a/interfaces/4.09/int64.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-val unsigned_div : int64 -> int64 -> int64
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val unsigned_rem : int64 -> int64 -> int64
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-val unsigned_to_int : int64 -> int option
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.09/lazy.mli b/interfaces/4.09/lazy.mli
deleted file mode 100644
index 064802a..0000000
--- a/interfaces/4.09/lazy.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type 'a t = 'a CamlinternalLazy.t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.09/lexing.mli b/interfaces/4.09/lexing.mli
deleted file mode 100644
index 03f3b3d..0000000
--- a/interfaces/4.09/lexing.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : ?with_positions:bool -> in_channel -> lexbuf
-val from_string : ?with_positions:bool -> string -> lexbuf
-val from_function : ?with_positions:bool -> (bytes -> int -> int) -> lexbuf
-val with_positions : lexbuf -> bool
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.09/list.mli b/interfaces/4.09/list.mli
deleted file mode 100644
index 45ffcfd..0000000
--- a/interfaces/4.09/list.mli
+++ /dev/null
@@ -1,58 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val filter_map : ('a -> 'b option) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.09/listLabels.mli b/interfaces/4.09/listLabels.mli
deleted file mode 100644
index 5074d60..0000000
--- a/interfaces/4.09/listLabels.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val filter_map : f:('a -> 'b option) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.09/map.mli b/interfaces/4.09/map.mli
deleted file mode 100644
index 1cc8ee4..0000000
--- a/interfaces/4.09/map.mli
+++ /dev/null
@@ -1,90 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
diff --git a/interfaces/4.09/marshal.mli b/interfaces/4.09/marshal.mli
deleted file mode 100644
index 2902fd4..0000000
--- a/interfaces/4.09/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_bytes"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.09/moreLabels.mli b/interfaces/4.09/moreLabels.mli
deleted file mode 100644
index fa75524..0000000
--- a/interfaces/4.09/moreLabels.mli
+++ /dev/null
@@ -1,340 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-  val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-  val to_seq_values : ('a, 'b) t -> 'b Seq.t
-  val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.Make(H).t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.MakeSeeded(H).t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t = 'a Map.Make(Ord).t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t = Set.Make(Ord).t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-end
diff --git a/interfaces/4.09/nativeint.mli b/interfaces/4.09/nativeint.mli
deleted file mode 100644
index 6107382..0000000
--- a/interfaces/4.09/nativeint.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-val unsigned_div : nativeint -> nativeint -> nativeint
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val unsigned_rem : nativeint -> nativeint -> nativeint
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-val unsigned_to_int : nativeint -> int option
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.09/obj.mli b/interfaces/4.09/obj.mli
deleted file mode 100644
index a23c2fb..0000000
--- a/interfaces/4.09/obj.mli
+++ /dev/null
@@ -1,68 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-external with_tag : int -> t -> t = "caml_obj_with_tag"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-module Extension_constructor :
-sig
-  type t = extension_constructor
-  val of_val : 'a -> t
-  val name : t -> string
-  val id : t -> int
-end
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes
-val unmarshal : bytes -> int -> (t * int)
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-  val max_ephe_length : int
-end
diff --git a/interfaces/4.09/oo.mli b/interfaces/4.09/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.09/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.09/option.mli b/interfaces/4.09/option.mli
deleted file mode 100644
index 9d309eb..0000000
--- a/interfaces/4.09/option.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type 'a t = 'a option =
-  | None 
-  | Some of 'a 
-val none : 'a option
-val some : 'a -> 'a option
-val value : 'a option -> default:'a -> 'a
-val get : 'a option -> 'a
-val bind : 'a option -> ('a -> 'b option) -> 'b option
-val join : 'a option option -> 'a option
-val map : ('a -> 'b) -> 'a option -> 'b option
-val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
-val iter : ('a -> unit) -> 'a option -> unit
-val is_none : 'a option -> bool
-val is_some : 'a option -> bool
-val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
-val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
-val to_result : none:'e -> 'a option -> ('a, 'e) result
-val to_list : 'a option -> 'a list
-val to_seq : 'a option -> 'a Seq.t
diff --git a/interfaces/4.09/parsing.mli b/interfaces/4.09/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.09/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.09/pervasives.mli b/interfaces/4.09/pervasives.mli
deleted file mode 100644
index fd024d1..0000000
--- a/interfaces/4.09/pervasives.mli
+++ /dev/null
@@ -1,241 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type nonrec fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type nonrec in_channel = in_channel
-type nonrec out_channel = out_channel
-val stdin : Stdlib.in_channel
-val stdout : Stdlib.out_channel
-val stderr : Stdlib.out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type nonrec open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> Stdlib.out_channel
-val open_out_bin : string -> Stdlib.out_channel
-val open_out_gen :
-  Stdlib.open_flag list -> int -> string -> Stdlib.out_channel
-val flush : Stdlib.out_channel -> unit
-val flush_all : unit -> unit
-val output_char : Stdlib.out_channel -> char -> unit
-val output_string : Stdlib.out_channel -> string -> unit
-val output_bytes : Stdlib.out_channel -> bytes -> unit
-val output : Stdlib.out_channel -> bytes -> int -> int -> unit
-val output_substring : Stdlib.out_channel -> string -> int -> int -> unit
-val output_byte : Stdlib.out_channel -> int -> unit
-val output_binary_int : Stdlib.out_channel -> int -> unit
-val output_value : Stdlib.out_channel -> 'a -> unit
-val seek_out : Stdlib.out_channel -> int -> unit
-val pos_out : Stdlib.out_channel -> int
-val out_channel_length : Stdlib.out_channel -> int
-val close_out : Stdlib.out_channel -> unit
-val close_out_noerr : Stdlib.out_channel -> unit
-val set_binary_mode_out : Stdlib.out_channel -> bool -> unit
-val open_in : string -> Stdlib.in_channel
-val open_in_bin : string -> Stdlib.in_channel
-val open_in_gen : Stdlib.open_flag list -> int -> string -> Stdlib.in_channel
-val input_char : Stdlib.in_channel -> char
-val input_line : Stdlib.in_channel -> string
-val input : Stdlib.in_channel -> bytes -> int -> int -> int
-val really_input : Stdlib.in_channel -> bytes -> int -> int -> unit
-val really_input_string : Stdlib.in_channel -> int -> string
-val input_byte : Stdlib.in_channel -> int
-val input_binary_int : Stdlib.in_channel -> int
-val input_value : Stdlib.in_channel -> 'a
-val seek_in : Stdlib.in_channel -> int -> unit
-val pos_in : Stdlib.in_channel -> int
-val in_channel_length : Stdlib.in_channel -> int
-val close_in : Stdlib.in_channel -> unit
-val close_in_noerr : Stdlib.in_channel -> unit
-val set_binary_mode_in : Stdlib.in_channel -> bool -> unit
-module LargeFile = LargeFile
-type nonrec 'a ref = 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type nonrec ('a, 'b) result = ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) Stdlib.format6 ->
-      ('a, 'b, 'c, 'd, 'g, 'h) Stdlib.format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.09/printexc.mli b/interfaces/4.09/printexc.mli
deleted file mode 100644
index a6f3441..0000000
--- a/interfaces/4.09/printexc.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type t = exn = ..
-val to_string : exn -> string
-val to_string_default : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-val use_printers : exn -> string option
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-val get_callstack : int -> raw_backtrace
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.09/printf.mli b/interfaces/4.09/printf.mli
deleted file mode 100644
index 5580624..0000000
--- a/interfaces/4.09/printf.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.09/queue.mli b/interfaces/4.09/queue.mli
deleted file mode 100644
index e52fe1a..0000000
--- a/interfaces/4.09/queue.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val take_opt : 'a t -> 'a option
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val peek_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.09/random.mli b/interfaces/4.09/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.09/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.09/result.mli b/interfaces/4.09/result.mli
deleted file mode 100644
index 06f96e6..0000000
--- a/interfaces/4.09/result.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type ('a, 'e) t = ('a, 'e) result =
-  | Ok of 'a 
-  | Error of 'e 
-val ok : 'a -> ('a, 'e) result
-val error : 'e -> ('a, 'e) result
-val value : ('a, 'e) result -> default:'a -> 'a
-val get_ok : ('a, 'e) result -> 'a
-val get_error : ('a, 'e) result -> 'e
-val bind : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
-val join : (('a, 'e) result, 'e) result -> ('a, 'e) result
-val map : ('a -> 'b) -> ('a, 'e) result -> ('b, 'e) result
-val map_error : ('e -> 'f) -> ('a, 'e) result -> ('a, 'f) result
-val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'c
-val iter : ('a -> unit) -> ('a, 'e) result -> unit
-val iter_error : ('e -> unit) -> ('a, 'e) result -> unit
-val is_ok : ('a, 'e) result -> bool
-val is_error : ('a, 'e) result -> bool
-val equal :
-  ok:('a -> 'a -> bool) ->
-    error:('e -> 'e -> bool) -> ('a, 'e) result -> ('a, 'e) result -> bool
-val compare :
-  ok:('a -> 'a -> int) ->
-    error:('e -> 'e -> int) -> ('a, 'e) result -> ('a, 'e) result -> int
-val to_option : ('a, 'e) result -> 'a option
-val to_list : ('a, 'e) result -> 'a list
-val to_seq : ('a, 'e) result -> 'a Seq.t
diff --git a/interfaces/4.09/scanf.mli b/interfaces/4.09/scanf.mli
deleted file mode 100644
index b3bc615..0000000
--- a/interfaces/4.09/scanf.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Stdlib.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
diff --git a/interfaces/4.09/seq.mli b/interfaces/4.09/seq.mli
deleted file mode 100644
index 4f5280b..0000000
--- a/interfaces/4.09/seq.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = unit -> 'a node
-and 'a node =
-  | Nil 
-  | Cons of 'a * 'a t 
-val empty : 'a t
-val return : 'a -> 'a t
-val map : ('a -> 'b) -> 'a t -> 'b t
-val filter : ('a -> bool) -> 'a t -> 'a t
-val filter_map : ('a -> 'b option) -> 'a t -> 'b t
-val flat_map : ('a -> 'b t) -> 'a t -> 'b t
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.09/set.mli b/interfaces/4.09/set.mli
deleted file mode 100644
index 134c22d..0000000
--- a/interfaces/4.09/set.mli
+++ /dev/null
@@ -1,92 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
diff --git a/interfaces/4.09/spacetime.mli b/interfaces/4.09/spacetime.mli
deleted file mode 100644
index 0dabf48..0000000
--- a/interfaces/4.09/spacetime.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-val enabled : bool
-module Series :
-sig
-  type t
-  val create : path:string -> t
-  val save_event : ?time:float -> t -> event_name:string -> unit
-  val save_and_close : ?time:float -> t -> unit
-end
-module Snapshot : sig val take : ?time:float -> Series.t -> unit end
-val save_event_for_automatic_snapshots : event_name:string -> unit
diff --git a/interfaces/4.09/stack.mli b/interfaces/4.09/stack.mli
deleted file mode 100644
index 6ef0c38..0000000
--- a/interfaces/4.09/stack.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val pop_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val top_opt : 'a t -> 'a option
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.09/stdLabels.mli b/interfaces/4.09/stdLabels.mli
deleted file mode 100644
index d86b996..0000000
--- a/interfaces/4.09/stdLabels.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-module Array = ArrayLabels
-module Bytes = BytesLabels
-module List = ListLabels
-module String = StringLabels
diff --git a/interfaces/4.09/stdlib.mli b/interfaces/4.09/stdlib.mli
deleted file mode 100644
index 01e58c9..0000000
--- a/interfaces/4.09/stdlib.mli
+++ /dev/null
@@ -1,314 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-exception Match_failure of (string * int * int) 
-exception Assert_failure of (string * int * int) 
-exception Invalid_argument of string 
-exception Failure of string 
-exception Not_found 
-exception Out_of_memory 
-exception Stack_overflow 
-exception Sys_error of string 
-exception End_of_file 
-exception Division_by_zero 
-exception Sys_blocked_io 
-exception Undefined_recursive_module of (string * int * int) 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string_opt : string -> bool option
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-val int_of_string_opt : string -> int option
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-val float_of_string_opt : string -> float option
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int_opt : unit -> int option
-val read_int : unit -> int
-val read_float_opt : unit -> float option
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
-module Arg = Arg
-module Array = Array
-module ArrayLabels = ArrayLabels
-module Bigarray = Bigarray
-module Bool = Bool
-module Buffer = Buffer
-module Bytes = Bytes
-module BytesLabels = BytesLabels
-module Callback = Callback
-module Char = Char
-module Complex = Complex
-module Digest = Digest
-module Ephemeron = Ephemeron
-module Filename = Filename
-module Float = Float
-module Format = Format
-module Fun = Fun
-module Gc = Gc
-module Genlex = Genlex
-module Hashtbl = Hashtbl
-module Int = Int
-module Int32 = Int32
-module Int64 = Int64
-module Lazy = Lazy
-module Lexing = Lexing
-module List = List
-module ListLabels = ListLabels
-module Map = Map
-module Marshal = Marshal
-module MoreLabels = MoreLabels
-module Nativeint = Nativeint
-module Obj = Obj
-module Oo = Oo
-module Option = Option
-module Parsing = Parsing
-module Pervasives = Pervasives
-module Printexc = Printexc
-module Printf = Printf
-module Queue = Queue
-module Random = Random
-module Result = Result
-module Scanf = Scanf
-module Seq = Seq
-module Set = Set
-module Spacetime = Spacetime
-module Stack = Stack
-module StdLabels = StdLabels
-module Stream = Stream
-module String = String
-module StringLabels = StringLabels
-module Sys = Sys
-module Uchar = Uchar
-module Unit = Unit
-module Weak = Weak
diff --git a/interfaces/4.09/stream.mli b/interfaces/4.09/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.09/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.09/string.mli b/interfaces/4.09/string.mli
deleted file mode 100644
index 0449717..0000000
--- a/interfaces/4.09/string.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@noalloc ]
diff --git a/interfaces/4.09/stringLabels.mli b/interfaces/4.09/stringLabels.mli
deleted file mode 100644
index 5c12f4d..0000000
--- a/interfaces/4.09/stringLabels.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : sep:char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
diff --git a/interfaces/4.09/sys.mli b/interfaces/4.09/sys.mli
deleted file mode 100644
index 5002c18..0000000
--- a/interfaces/4.09/sys.mli
+++ /dev/null
@@ -1,74 +0,0 @@
-external argv : string array = "%sys_argv"
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-val max_floatarray_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
diff --git a/interfaces/4.09/uchar.mli b/interfaces/4.09/uchar.mli
deleted file mode 100644
index 8a0c6b4..0000000
--- a/interfaces/4.09/uchar.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-type t
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.09/unit.mli b/interfaces/4.09/unit.mli
deleted file mode 100644
index 1efbc15..0000000
--- a/interfaces/4.09/unit.mli
+++ /dev/null
@@ -1,5 +0,0 @@
-type t = unit =
-  | () 
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val to_string : t -> string
diff --git a/interfaces/4.09/weak.mli b/interfaces/4.09/weak.mli
deleted file mode 100644
index 3be35a0..0000000
--- a/interfaces/4.09/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.10/arg.mli b/interfaces/4.10/arg.mli
deleted file mode 100644
index d27634a..0000000
--- a/interfaces/4.10/arg.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.10/array.mli b/interfaces/4.10/array.mli
deleted file mode 100644
index 09829a6..0000000
--- a/interfaces/4.10/array.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.10/arrayLabels.mli b/interfaces/4.10/arrayLabels.mli
deleted file mode 100644
index 2d4c766..0000000
--- a/interfaces/4.10/arrayLabels.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.10/bool.mli b/interfaces/4.10/bool.mli
deleted file mode 100644
index a9131fb..0000000
--- a/interfaces/4.10/bool.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type t = bool =
-  | false 
-  | true 
-val not : bool -> bool
-external (&&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-val equal : bool -> bool -> bool
-val compare : bool -> bool -> int
-val to_int : bool -> int
-val to_float : bool -> float
-val to_string : bool -> string
diff --git a/interfaces/4.10/buffer.mli b/interfaces/4.10/buffer.mli
deleted file mode 100644
index 52aac6c..0000000
--- a/interfaces/4.10/buffer.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val add_seq : t -> char Seq.t -> unit
-val of_seq : char Seq.t -> t
-val add_uint8 : t -> int -> unit
-val add_int8 : t -> int -> unit
-val add_uint16_ne : t -> int -> unit
-val add_uint16_be : t -> int -> unit
-val add_uint16_le : t -> int -> unit
-val add_int16_ne : t -> int -> unit
-val add_int16_be : t -> int -> unit
-val add_int16_le : t -> int -> unit
-val add_int32_ne : t -> int32 -> unit
-val add_int32_be : t -> int32 -> unit
-val add_int32_le : t -> int32 -> unit
-val add_int64_ne : t -> int64 -> unit
-val add_int64_be : t -> int64 -> unit
-val add_int64_le : t -> int64 -> unit
diff --git a/interfaces/4.10/bytes.mli b/interfaces/4.10/bytes.mli
deleted file mode 100644
index 7f0ce2a..0000000
--- a/interfaces/4.10/bytes.mli
+++ /dev/null
@@ -1,88 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.10/bytesLabels.mli b/interfaces/4.10/bytesLabels.mli
deleted file mode 100644
index ded4d1c..0000000
--- a/interfaces/4.10/bytesLabels.mli
+++ /dev/null
@@ -1,91 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.10/callback.mli b/interfaces/4.10/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.10/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.10/char.mli b/interfaces/4.10/char.mli
deleted file mode 100644
index 57b360f..0000000
--- a/interfaces/4.10/char.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.10/complex.mli b/interfaces/4.10/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.10/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.10/digest.mli b/interfaces/4.10/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.10/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.10/ephemeron.mli b/interfaces/4.10/ephemeron.mli
deleted file mode 100644
index 584e708..0000000
--- a/interfaces/4.10/ephemeron.mli
+++ /dev/null
@@ -1,346 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.10/filename.mli b/interfaces/4.10/filename.mli
deleted file mode 100644
index 4e1b185..0000000
--- a/interfaces/4.10/filename.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_suffix_opt : suffix:string -> string -> string option
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val null : string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
-val quote_command :
-  string ->
-    ?stdin:string ->
-      ?stdout:string -> ?stderr:string -> string list -> string
diff --git a/interfaces/4.10/float.mli b/interfaces/4.10/float.mli
deleted file mode 100644
index 0d13a90..0000000
--- a/interfaces/4.10/float.mli
+++ /dev/null
@@ -1,189 +0,0 @@
-val zero : float
-val one : float
-val minus_one : float
-external neg : float -> float = "%negfloat"
-external add : float -> float -> float = "%addfloat"
-external sub : float -> float -> float = "%subfloat"
-external mul : float -> float -> float = "%mulfloat"
-external div : float -> float -> float = "%divfloat"
-external fma : float -> float -> float -> float = "caml_fma_float" "caml_fma"
-[@@unboxed ][@@noalloc ]
-external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
-[@@noalloc ]
-val succ : float -> float
-val pred : float -> float
-external abs : float -> float = "%absfloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val pi : float
-val max_float : float
-val min_float : float
-val epsilon : float
-val is_finite : float -> bool
-val is_infinite : float -> bool
-val is_nan : float -> bool
-val is_integer : float -> bool
-external of_int : int -> float = "%floatofint"
-external to_int : float -> int = "%intoffloat"
-external of_string : string -> float = "caml_float_of_string"
-val of_string_opt : string -> float option
-val to_string : float -> string
-type fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external trunc : float -> float = "caml_trunc_float" "caml_trunc"[@@unboxed ]
-[@@noalloc ]
-external round : float -> float = "caml_round_float" "caml_round"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external next_after :
-  float -> float -> float = "caml_nextafter_float" "caml_nextafter"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external copy_sign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external sign_bit :
-  ((float)[@unboxed ]) -> bool = "caml_signbit_float" "caml_signbit"[@@noalloc
-                                                                    ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-type t = float
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : float -> float -> float
-val min_max : float -> float -> (float * float)
-val min_num : t -> t -> t
-val max_num : t -> t -> t
-val min_max_num : float -> float -> (float * float)
-val hash : t -> int
-module Array :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> (int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> int -> int -> t
-  val copy : t -> t
-  val fill : t -> int -> int -> float -> unit
-  val blit : t -> int -> t -> int -> int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : (float -> unit) -> t -> unit
-  val iteri : (int -> float -> unit) -> t -> unit
-  val map : (float -> float) -> t -> t
-  val mapi : (int -> float -> float) -> t -> t
-  val fold_left : ('a -> float -> 'a) -> 'a -> t -> 'a
-  val fold_right : (float -> 'a -> 'a) -> t -> 'a -> 'a
-  val iter2 : (float -> float -> unit) -> t -> t -> unit
-  val map2 : (float -> float -> float) -> t -> t -> t
-  val for_all : (float -> bool) -> t -> bool
-  val exists : (float -> bool) -> t -> bool
-  val mem : float -> t -> bool
-  val mem_ieee : float -> t -> bool
-  val sort : (float -> float -> int) -> t -> unit
-  val stable_sort : (float -> float -> int) -> t -> unit
-  val fast_sort : (float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : (float -> 'a) -> t -> 'a array
-  val map_from_array : ('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
-module ArrayLabels :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> f:(int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> pos:int -> len:int -> t
-  val copy : t -> t
-  val fill : t -> pos:int -> len:int -> float -> unit
-  val blit : src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : f:(float -> unit) -> t -> unit
-  val iteri : f:(int -> float -> unit) -> t -> unit
-  val map : f:(float -> float) -> t -> t
-  val mapi : f:(int -> float -> float) -> t -> t
-  val fold_left : f:('a -> float -> 'a) -> init:'a -> t -> 'a
-  val fold_right : f:(float -> 'a -> 'a) -> t -> init:'a -> 'a
-  val iter2 : f:(float -> float -> unit) -> t -> t -> unit
-  val map2 : f:(float -> float -> float) -> t -> t -> t
-  val for_all : f:(float -> bool) -> t -> bool
-  val exists : f:(float -> bool) -> t -> bool
-  val mem : float -> set:t -> bool
-  val mem_ieee : float -> set:t -> bool
-  val sort : cmp:(float -> float -> int) -> t -> unit
-  val stable_sort : cmp:(float -> float -> int) -> t -> unit
-  val fast_sort : cmp:(float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : f:(float -> 'a) -> t -> 'a array
-  val map_from_array : f:('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.10/format.mli b/interfaces/4.10/format.mli
deleted file mode 100644
index 9eee4be..0000000
--- a/interfaces/4.10/format.mli
+++ /dev/null
@@ -1,220 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_print_custom_break :
-  formatter ->
-    fits:(string * int * string) -> breaks:(string * int * string) -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-type geometry = {
-  max_indent: int ;
-  margin: int }
-val check_geometry : geometry -> bool
-val pp_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val set_geometry : max_indent:int -> margin:int -> unit
-val pp_safe_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val safe_set_geometry : max_indent:int -> margin:int -> unit
-val pp_get_geometry : formatter -> unit -> geometry
-val get_geometry : unit -> geometry
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type stag = ..
-type tag = string
-type stag +=  
-  | String_tag of tag 
-val pp_open_stag : formatter -> stag -> unit
-val open_stag : stag -> unit
-val pp_close_stag : formatter -> unit -> unit
-val close_stag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_stag_functions =
-  {
-  mark_open_stag: stag -> string ;
-  mark_close_stag: stag -> string ;
-  print_open_stag: stag -> unit ;
-  print_close_stag: stag -> unit }
-val pp_set_formatter_stag_functions :
-  formatter -> formatter_stag_functions -> unit
-val set_formatter_stag_functions : formatter_stag_functions -> unit
-val pp_get_formatter_stag_functions :
-  formatter -> unit -> formatter_stag_functions
-val get_formatter_stag_functions : unit -> formatter_stag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val pp_print_option :
-  ?none:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a option -> unit
-val pp_print_result :
-  ok:(formatter -> 'a -> unit) ->
-    error:(formatter -> 'e -> unit) -> formatter -> ('a, 'e) result -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val dprintf : ('a, formatter, unit, formatter -> unit) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val kdprintf :
-  ((formatter -> unit) -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_open_tag : formatter -> tag -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
diff --git a/interfaces/4.10/fun.mli b/interfaces/4.10/fun.mli
deleted file mode 100644
index f274db4..0000000
--- a/interfaces/4.10/fun.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-external id : 'a -> 'a = "%identity"
-val const : 'a -> 'b -> 'a
-val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
-val negate : ('a -> bool) -> 'a -> bool
-val protect : finally:(unit -> unit) -> (unit -> 'a) -> 'a
-exception Finally_raised of exn 
diff --git a/interfaces/4.10/gc.mli b/interfaces/4.10/gc.mli
deleted file mode 100644
index 53b825c..0000000
--- a/interfaces/4.10/gc.mli
+++ /dev/null
@@ -1,56 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int ;
-  custom_major_ratio: int ;
-  custom_minor_ratio: int ;
-  custom_minor_max_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
diff --git a/interfaces/4.10/genlex.mli b/interfaces/4.10/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.10/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.10/hashtbl.mli b/interfaces/4.10/hashtbl.mli
deleted file mode 100644
index 7b80782..0000000
--- a/interfaces/4.10/hashtbl.mli
+++ /dev/null
@@ -1,149 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-val to_seq_values : ('a, 'b) t -> 'b Seq.t
-val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.10/int32.mli b/interfaces/4.10/int32.mli
deleted file mode 100644
index 96aa3b3..0000000
--- a/interfaces/4.10/int32.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-val unsigned_div : int32 -> int32 -> int32
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val unsigned_rem : int32 -> int32 -> int32
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-val unsigned_to_int : int32 -> int option
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.10/int64.mli b/interfaces/4.10/int64.mli
deleted file mode 100644
index be055f0..0000000
--- a/interfaces/4.10/int64.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-val unsigned_div : int64 -> int64 -> int64
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val unsigned_rem : int64 -> int64 -> int64
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-val unsigned_to_int : int64 -> int option
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.10/lazy.mli b/interfaces/4.10/lazy.mli
deleted file mode 100644
index 064802a..0000000
--- a/interfaces/4.10/lazy.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type 'a t = 'a CamlinternalLazy.t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.10/lexing.mli b/interfaces/4.10/lexing.mli
deleted file mode 100644
index 03f3b3d..0000000
--- a/interfaces/4.10/lexing.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : ?with_positions:bool -> in_channel -> lexbuf
-val from_string : ?with_positions:bool -> string -> lexbuf
-val from_function : ?with_positions:bool -> (bytes -> int -> int) -> lexbuf
-val with_positions : lexbuf -> bool
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.10/list.mli b/interfaces/4.10/list.mli
deleted file mode 100644
index 99d108d..0000000
--- a/interfaces/4.10/list.mli
+++ /dev/null
@@ -1,60 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val filter_map : ('a -> 'b option) -> 'a list -> 'b list
-val concat_map : ('a -> 'b list) -> 'a list -> 'b list
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val find_map : ('a -> 'b option) -> 'a list -> 'b option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.10/listLabels.mli b/interfaces/4.10/listLabels.mli
deleted file mode 100644
index cb702d2..0000000
--- a/interfaces/4.10/listLabels.mli
+++ /dev/null
@@ -1,62 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val filter_map : f:('a -> 'b option) -> 'a list -> 'b list
-val concat_map : f:('a -> 'b list) -> 'a list -> 'b list
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val find_map : f:('a -> 'b option) -> 'a list -> 'b option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.10/map.mli b/interfaces/4.10/map.mli
deleted file mode 100644
index 1cc8ee4..0000000
--- a/interfaces/4.10/map.mli
+++ /dev/null
@@ -1,90 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
diff --git a/interfaces/4.10/marshal.mli b/interfaces/4.10/marshal.mli
deleted file mode 100644
index 2902fd4..0000000
--- a/interfaces/4.10/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_bytes"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.10/moreLabels.mli b/interfaces/4.10/moreLabels.mli
deleted file mode 100644
index fa75524..0000000
--- a/interfaces/4.10/moreLabels.mli
+++ /dev/null
@@ -1,340 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-  val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-  val to_seq_values : ('a, 'b) t -> 'b Seq.t
-  val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.Make(H).t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.MakeSeeded(H).t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t = 'a Map.Make(Ord).t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t = Set.Make(Ord).t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-end
diff --git a/interfaces/4.10/nativeint.mli b/interfaces/4.10/nativeint.mli
deleted file mode 100644
index 6107382..0000000
--- a/interfaces/4.10/nativeint.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-val unsigned_div : nativeint -> nativeint -> nativeint
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val unsigned_rem : nativeint -> nativeint -> nativeint
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-val unsigned_to_int : nativeint -> int option
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.10/obj.mli b/interfaces/4.10/obj.mli
deleted file mode 100644
index a23c2fb..0000000
--- a/interfaces/4.10/obj.mli
+++ /dev/null
@@ -1,68 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-external with_tag : int -> t -> t = "caml_obj_with_tag"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-module Extension_constructor :
-sig
-  type t = extension_constructor
-  val of_val : 'a -> t
-  val name : t -> string
-  val id : t -> int
-end
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes
-val unmarshal : bytes -> int -> (t * int)
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-  val max_ephe_length : int
-end
diff --git a/interfaces/4.10/oo.mli b/interfaces/4.10/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.10/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.10/option.mli b/interfaces/4.10/option.mli
deleted file mode 100644
index 9d309eb..0000000
--- a/interfaces/4.10/option.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type 'a t = 'a option =
-  | None 
-  | Some of 'a 
-val none : 'a option
-val some : 'a -> 'a option
-val value : 'a option -> default:'a -> 'a
-val get : 'a option -> 'a
-val bind : 'a option -> ('a -> 'b option) -> 'b option
-val join : 'a option option -> 'a option
-val map : ('a -> 'b) -> 'a option -> 'b option
-val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
-val iter : ('a -> unit) -> 'a option -> unit
-val is_none : 'a option -> bool
-val is_some : 'a option -> bool
-val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
-val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
-val to_result : none:'e -> 'a option -> ('a, 'e) result
-val to_list : 'a option -> 'a list
-val to_seq : 'a option -> 'a Seq.t
diff --git a/interfaces/4.10/parsing.mli b/interfaces/4.10/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.10/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.10/pervasives.mli b/interfaces/4.10/pervasives.mli
deleted file mode 100644
index fd024d1..0000000
--- a/interfaces/4.10/pervasives.mli
+++ /dev/null
@@ -1,241 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type nonrec fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type nonrec in_channel = in_channel
-type nonrec out_channel = out_channel
-val stdin : Stdlib.in_channel
-val stdout : Stdlib.out_channel
-val stderr : Stdlib.out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type nonrec open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> Stdlib.out_channel
-val open_out_bin : string -> Stdlib.out_channel
-val open_out_gen :
-  Stdlib.open_flag list -> int -> string -> Stdlib.out_channel
-val flush : Stdlib.out_channel -> unit
-val flush_all : unit -> unit
-val output_char : Stdlib.out_channel -> char -> unit
-val output_string : Stdlib.out_channel -> string -> unit
-val output_bytes : Stdlib.out_channel -> bytes -> unit
-val output : Stdlib.out_channel -> bytes -> int -> int -> unit
-val output_substring : Stdlib.out_channel -> string -> int -> int -> unit
-val output_byte : Stdlib.out_channel -> int -> unit
-val output_binary_int : Stdlib.out_channel -> int -> unit
-val output_value : Stdlib.out_channel -> 'a -> unit
-val seek_out : Stdlib.out_channel -> int -> unit
-val pos_out : Stdlib.out_channel -> int
-val out_channel_length : Stdlib.out_channel -> int
-val close_out : Stdlib.out_channel -> unit
-val close_out_noerr : Stdlib.out_channel -> unit
-val set_binary_mode_out : Stdlib.out_channel -> bool -> unit
-val open_in : string -> Stdlib.in_channel
-val open_in_bin : string -> Stdlib.in_channel
-val open_in_gen : Stdlib.open_flag list -> int -> string -> Stdlib.in_channel
-val input_char : Stdlib.in_channel -> char
-val input_line : Stdlib.in_channel -> string
-val input : Stdlib.in_channel -> bytes -> int -> int -> int
-val really_input : Stdlib.in_channel -> bytes -> int -> int -> unit
-val really_input_string : Stdlib.in_channel -> int -> string
-val input_byte : Stdlib.in_channel -> int
-val input_binary_int : Stdlib.in_channel -> int
-val input_value : Stdlib.in_channel -> 'a
-val seek_in : Stdlib.in_channel -> int -> unit
-val pos_in : Stdlib.in_channel -> int
-val in_channel_length : Stdlib.in_channel -> int
-val close_in : Stdlib.in_channel -> unit
-val close_in_noerr : Stdlib.in_channel -> unit
-val set_binary_mode_in : Stdlib.in_channel -> bool -> unit
-module LargeFile = LargeFile
-type nonrec 'a ref = 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type nonrec ('a, 'b) result = ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) Stdlib.format6 ->
-      ('a, 'b, 'c, 'd, 'g, 'h) Stdlib.format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.10/printexc.mli b/interfaces/4.10/printexc.mli
deleted file mode 100644
index c98b005..0000000
--- a/interfaces/4.10/printexc.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type t = exn = ..
-val to_string : exn -> string
-val to_string_default : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-val use_printers : exn -> string option
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-external get_callstack : int -> raw_backtrace = "caml_get_current_callstack"
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.10/printf.mli b/interfaces/4.10/printf.mli
deleted file mode 100644
index 5580624..0000000
--- a/interfaces/4.10/printf.mli
+++ /dev/null
@@ -1,14 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.10/queue.mli b/interfaces/4.10/queue.mli
deleted file mode 100644
index e52fe1a..0000000
--- a/interfaces/4.10/queue.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val take_opt : 'a t -> 'a option
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val peek_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.10/random.mli b/interfaces/4.10/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.10/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.10/result.mli b/interfaces/4.10/result.mli
deleted file mode 100644
index 06f96e6..0000000
--- a/interfaces/4.10/result.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type ('a, 'e) t = ('a, 'e) result =
-  | Ok of 'a 
-  | Error of 'e 
-val ok : 'a -> ('a, 'e) result
-val error : 'e -> ('a, 'e) result
-val value : ('a, 'e) result -> default:'a -> 'a
-val get_ok : ('a, 'e) result -> 'a
-val get_error : ('a, 'e) result -> 'e
-val bind : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
-val join : (('a, 'e) result, 'e) result -> ('a, 'e) result
-val map : ('a -> 'b) -> ('a, 'e) result -> ('b, 'e) result
-val map_error : ('e -> 'f) -> ('a, 'e) result -> ('a, 'f) result
-val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'c
-val iter : ('a -> unit) -> ('a, 'e) result -> unit
-val iter_error : ('e -> unit) -> ('a, 'e) result -> unit
-val is_ok : ('a, 'e) result -> bool
-val is_error : ('a, 'e) result -> bool
-val equal :
-  ok:('a -> 'a -> bool) ->
-    error:('e -> 'e -> bool) -> ('a, 'e) result -> ('a, 'e) result -> bool
-val compare :
-  ok:('a -> 'a -> int) ->
-    error:('e -> 'e -> int) -> ('a, 'e) result -> ('a, 'e) result -> int
-val to_option : ('a, 'e) result -> 'a option
-val to_list : ('a, 'e) result -> 'a list
-val to_seq : ('a, 'e) result -> 'a Seq.t
diff --git a/interfaces/4.10/scanf.mli b/interfaces/4.10/scanf.mli
deleted file mode 100644
index b3bc615..0000000
--- a/interfaces/4.10/scanf.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Stdlib.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
diff --git a/interfaces/4.10/seq.mli b/interfaces/4.10/seq.mli
deleted file mode 100644
index 4f5280b..0000000
--- a/interfaces/4.10/seq.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = unit -> 'a node
-and 'a node =
-  | Nil 
-  | Cons of 'a * 'a t 
-val empty : 'a t
-val return : 'a -> 'a t
-val map : ('a -> 'b) -> 'a t -> 'b t
-val filter : ('a -> bool) -> 'a t -> 'a t
-val filter_map : ('a -> 'b option) -> 'a t -> 'b t
-val flat_map : ('a -> 'b t) -> 'a t -> 'b t
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val iter : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.10/set.mli b/interfaces/4.10/set.mli
deleted file mode 100644
index 134c22d..0000000
--- a/interfaces/4.10/set.mli
+++ /dev/null
@@ -1,92 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
diff --git a/interfaces/4.10/spacetime.mli b/interfaces/4.10/spacetime.mli
deleted file mode 100644
index 0dabf48..0000000
--- a/interfaces/4.10/spacetime.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-val enabled : bool
-module Series :
-sig
-  type t
-  val create : path:string -> t
-  val save_event : ?time:float -> t -> event_name:string -> unit
-  val save_and_close : ?time:float -> t -> unit
-end
-module Snapshot : sig val take : ?time:float -> Series.t -> unit end
-val save_event_for_automatic_snapshots : event_name:string -> unit
diff --git a/interfaces/4.10/stack.mli b/interfaces/4.10/stack.mli
deleted file mode 100644
index 6ef0c38..0000000
--- a/interfaces/4.10/stack.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val pop_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val top_opt : 'a t -> 'a option
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.10/stdLabels.mli b/interfaces/4.10/stdLabels.mli
deleted file mode 100644
index d86b996..0000000
--- a/interfaces/4.10/stdLabels.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-module Array = ArrayLabels
-module Bytes = BytesLabels
-module List = ListLabels
-module String = StringLabels
diff --git a/interfaces/4.10/stdlib.mli b/interfaces/4.10/stdlib.mli
deleted file mode 100644
index 01e58c9..0000000
--- a/interfaces/4.10/stdlib.mli
+++ /dev/null
@@ -1,314 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-exception Match_failure of (string * int * int) 
-exception Assert_failure of (string * int * int) 
-exception Invalid_argument of string 
-exception Failure of string 
-exception Not_found 
-exception Out_of_memory 
-exception Stack_overflow 
-exception Sys_error of string 
-exception End_of_file 
-exception Division_by_zero 
-exception Sys_blocked_io 
-exception Undefined_recursive_module of (string * int * int) 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string_opt : string -> bool option
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-val int_of_string_opt : string -> int option
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-val float_of_string_opt : string -> float option
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int_opt : unit -> int option
-val read_int : unit -> int
-val read_float_opt : unit -> float option
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
-module Arg = Arg
-module Array = Array
-module ArrayLabels = ArrayLabels
-module Bigarray = Bigarray
-module Bool = Bool
-module Buffer = Buffer
-module Bytes = Bytes
-module BytesLabels = BytesLabels
-module Callback = Callback
-module Char = Char
-module Complex = Complex
-module Digest = Digest
-module Ephemeron = Ephemeron
-module Filename = Filename
-module Float = Float
-module Format = Format
-module Fun = Fun
-module Gc = Gc
-module Genlex = Genlex
-module Hashtbl = Hashtbl
-module Int = Int
-module Int32 = Int32
-module Int64 = Int64
-module Lazy = Lazy
-module Lexing = Lexing
-module List = List
-module ListLabels = ListLabels
-module Map = Map
-module Marshal = Marshal
-module MoreLabels = MoreLabels
-module Nativeint = Nativeint
-module Obj = Obj
-module Oo = Oo
-module Option = Option
-module Parsing = Parsing
-module Pervasives = Pervasives
-module Printexc = Printexc
-module Printf = Printf
-module Queue = Queue
-module Random = Random
-module Result = Result
-module Scanf = Scanf
-module Seq = Seq
-module Set = Set
-module Spacetime = Spacetime
-module Stack = Stack
-module StdLabels = StdLabels
-module Stream = Stream
-module String = String
-module StringLabels = StringLabels
-module Sys = Sys
-module Uchar = Uchar
-module Unit = Unit
-module Weak = Weak
diff --git a/interfaces/4.10/stream.mli b/interfaces/4.10/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.10/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.10/string.mli b/interfaces/4.10/string.mli
deleted file mode 100644
index 0449717..0000000
--- a/interfaces/4.10/string.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@noalloc ]
diff --git a/interfaces/4.10/stringLabels.mli b/interfaces/4.10/stringLabels.mli
deleted file mode 100644
index 5c12f4d..0000000
--- a/interfaces/4.10/stringLabels.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : sep:char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
diff --git a/interfaces/4.10/sys.mli b/interfaces/4.10/sys.mli
deleted file mode 100644
index 33478af..0000000
--- a/interfaces/4.10/sys.mli
+++ /dev/null
@@ -1,89 +0,0 @@
-external argv : string array = "%sys_argv"
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-val max_floatarray_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
-module Immediate64 :
-sig
-  module type Non_immediate  = sig type t end
-  module type Immediate  = sig type t[@@immediate ] end
-  module Make :
-  functor (Immediate : Immediate) ->
-    functor (Non_immediate : Non_immediate) ->
-      sig
-        type t[@@immediate64 ]
-        type 'a repr =
-          | Immediate: Immediate.t repr 
-          | Non_immediate: Non_immediate.t repr 
-        val repr : t repr
-      end
-end
diff --git a/interfaces/4.10/uchar.mli b/interfaces/4.10/uchar.mli
deleted file mode 100644
index 8a0c6b4..0000000
--- a/interfaces/4.10/uchar.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-type t
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.10/unit.mli b/interfaces/4.10/unit.mli
deleted file mode 100644
index 1efbc15..0000000
--- a/interfaces/4.10/unit.mli
+++ /dev/null
@@ -1,5 +0,0 @@
-type t = unit =
-  | () 
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val to_string : t -> string
diff --git a/interfaces/4.10/weak.mli b/interfaces/4.10/weak.mli
deleted file mode 100644
index 3be35a0..0000000
--- a/interfaces/4.10/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.11/arg.mli b/interfaces/4.11/arg.mli
deleted file mode 100644
index d27634a..0000000
--- a/interfaces/4.11/arg.mli
+++ /dev/null
@@ -1,43 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.11/array.mli b/interfaces/4.11/array.mli
deleted file mode 100644
index 48e5074..0000000
--- a/interfaces/4.11/array.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.11/arrayLabels.mli b/interfaces/4.11/arrayLabels.mli
deleted file mode 100644
index e5f3c3f..0000000
--- a/interfaces/4.11/arrayLabels.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all : f:('a -> bool) -> 'a array -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.11/bool.mli b/interfaces/4.11/bool.mli
deleted file mode 100644
index a9131fb..0000000
--- a/interfaces/4.11/bool.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type t = bool =
-  | false 
-  | true 
-val not : bool -> bool
-external (&&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-val equal : bool -> bool -> bool
-val compare : bool -> bool -> int
-val to_int : bool -> int
-val to_float : bool -> float
-val to_string : bool -> string
diff --git a/interfaces/4.11/buffer.mli b/interfaces/4.11/buffer.mli
deleted file mode 100644
index 52aac6c..0000000
--- a/interfaces/4.11/buffer.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val add_seq : t -> char Seq.t -> unit
-val of_seq : char Seq.t -> t
-val add_uint8 : t -> int -> unit
-val add_int8 : t -> int -> unit
-val add_uint16_ne : t -> int -> unit
-val add_uint16_be : t -> int -> unit
-val add_uint16_le : t -> int -> unit
-val add_int16_ne : t -> int -> unit
-val add_int16_be : t -> int -> unit
-val add_int16_le : t -> int -> unit
-val add_int32_ne : t -> int32 -> unit
-val add_int32_be : t -> int32 -> unit
-val add_int32_le : t -> int32 -> unit
-val add_int64_ne : t -> int64 -> unit
-val add_int64_be : t -> int64 -> unit
-val add_int64_le : t -> int64 -> unit
diff --git a/interfaces/4.11/bytes.mli b/interfaces/4.11/bytes.mli
deleted file mode 100644
index 7f0ce2a..0000000
--- a/interfaces/4.11/bytes.mli
+++ /dev/null
@@ -1,88 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.11/bytesLabels.mli b/interfaces/4.11/bytesLabels.mli
deleted file mode 100644
index ded4d1c..0000000
--- a/interfaces/4.11/bytesLabels.mli
+++ /dev/null
@@ -1,91 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
diff --git a/interfaces/4.11/callback.mli b/interfaces/4.11/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.11/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.11/char.mli b/interfaces/4.11/char.mli
deleted file mode 100644
index 57b360f..0000000
--- a/interfaces/4.11/char.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.11/complex.mli b/interfaces/4.11/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.11/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.11/digest.mli b/interfaces/4.11/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.11/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.11/ephemeron.mli b/interfaces/4.11/ephemeron.mli
deleted file mode 100644
index 584e708..0000000
--- a/interfaces/4.11/ephemeron.mli
+++ /dev/null
@@ -1,346 +0,0 @@
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type 'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.11/filename.mli b/interfaces/4.11/filename.mli
deleted file mode 100644
index 4e1b185..0000000
--- a/interfaces/4.11/filename.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_suffix_opt : suffix:string -> string -> string option
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val null : string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
-val quote_command :
-  string ->
-    ?stdin:string ->
-      ?stdout:string -> ?stderr:string -> string list -> string
diff --git a/interfaces/4.11/float.mli b/interfaces/4.11/float.mli
deleted file mode 100644
index 0d13a90..0000000
--- a/interfaces/4.11/float.mli
+++ /dev/null
@@ -1,189 +0,0 @@
-val zero : float
-val one : float
-val minus_one : float
-external neg : float -> float = "%negfloat"
-external add : float -> float -> float = "%addfloat"
-external sub : float -> float -> float = "%subfloat"
-external mul : float -> float -> float = "%mulfloat"
-external div : float -> float -> float = "%divfloat"
-external fma : float -> float -> float -> float = "caml_fma_float" "caml_fma"
-[@@unboxed ][@@noalloc ]
-external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
-[@@noalloc ]
-val succ : float -> float
-val pred : float -> float
-external abs : float -> float = "%absfloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val pi : float
-val max_float : float
-val min_float : float
-val epsilon : float
-val is_finite : float -> bool
-val is_infinite : float -> bool
-val is_nan : float -> bool
-val is_integer : float -> bool
-external of_int : int -> float = "%floatofint"
-external to_int : float -> int = "%intoffloat"
-external of_string : string -> float = "caml_float_of_string"
-val of_string_opt : string -> float option
-val to_string : float -> string
-type fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external trunc : float -> float = "caml_trunc_float" "caml_trunc"[@@unboxed ]
-[@@noalloc ]
-external round : float -> float = "caml_round_float" "caml_round"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external next_after :
-  float -> float -> float = "caml_nextafter_float" "caml_nextafter"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external copy_sign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external sign_bit :
-  ((float)[@unboxed ]) -> bool = "caml_signbit_float" "caml_signbit"[@@noalloc
-                                                                    ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-type t = float
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : float -> float -> float
-val min_max : float -> float -> (float * float)
-val min_num : t -> t -> t
-val max_num : t -> t -> t
-val min_max_num : float -> float -> (float * float)
-val hash : t -> int
-module Array :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> (int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> int -> int -> t
-  val copy : t -> t
-  val fill : t -> int -> int -> float -> unit
-  val blit : t -> int -> t -> int -> int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : (float -> unit) -> t -> unit
-  val iteri : (int -> float -> unit) -> t -> unit
-  val map : (float -> float) -> t -> t
-  val mapi : (int -> float -> float) -> t -> t
-  val fold_left : ('a -> float -> 'a) -> 'a -> t -> 'a
-  val fold_right : (float -> 'a -> 'a) -> t -> 'a -> 'a
-  val iter2 : (float -> float -> unit) -> t -> t -> unit
-  val map2 : (float -> float -> float) -> t -> t -> t
-  val for_all : (float -> bool) -> t -> bool
-  val exists : (float -> bool) -> t -> bool
-  val mem : float -> t -> bool
-  val mem_ieee : float -> t -> bool
-  val sort : (float -> float -> int) -> t -> unit
-  val stable_sort : (float -> float -> int) -> t -> unit
-  val fast_sort : (float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : (float -> 'a) -> t -> 'a array
-  val map_from_array : ('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
-module ArrayLabels :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> f:(int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> pos:int -> len:int -> t
-  val copy : t -> t
-  val fill : t -> pos:int -> len:int -> float -> unit
-  val blit : src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : f:(float -> unit) -> t -> unit
-  val iteri : f:(int -> float -> unit) -> t -> unit
-  val map : f:(float -> float) -> t -> t
-  val mapi : f:(int -> float -> float) -> t -> t
-  val fold_left : f:('a -> float -> 'a) -> init:'a -> t -> 'a
-  val fold_right : f:(float -> 'a -> 'a) -> t -> init:'a -> 'a
-  val iter2 : f:(float -> float -> unit) -> t -> t -> unit
-  val map2 : f:(float -> float -> float) -> t -> t -> t
-  val for_all : f:(float -> bool) -> t -> bool
-  val exists : f:(float -> bool) -> t -> bool
-  val mem : float -> set:t -> bool
-  val mem_ieee : float -> set:t -> bool
-  val sort : cmp:(float -> float -> int) -> t -> unit
-  val stable_sort : cmp:(float -> float -> int) -> t -> unit
-  val fast_sort : cmp:(float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : f:(float -> 'a) -> t -> 'a array
-  val map_from_array : f:('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.11/format.mli b/interfaces/4.11/format.mli
deleted file mode 100644
index 27c34da..0000000
--- a/interfaces/4.11/format.mli
+++ /dev/null
@@ -1,222 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_print_custom_break :
-  formatter ->
-    fits:(string * int * string) -> breaks:(string * int * string) -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-type geometry = {
-  max_indent: int ;
-  margin: int }
-val check_geometry : geometry -> bool
-val pp_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val set_geometry : max_indent:int -> margin:int -> unit
-val pp_safe_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val safe_set_geometry : max_indent:int -> margin:int -> unit
-val pp_update_geometry : formatter -> (geometry -> geometry) -> unit
-val update_geometry : (geometry -> geometry) -> unit
-val pp_get_geometry : formatter -> unit -> geometry
-val get_geometry : unit -> geometry
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type stag = ..
-type tag = string
-type stag +=  
-  | String_tag of tag 
-val pp_open_stag : formatter -> stag -> unit
-val open_stag : stag -> unit
-val pp_close_stag : formatter -> unit -> unit
-val close_stag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_stag_functions =
-  {
-  mark_open_stag: stag -> string ;
-  mark_close_stag: stag -> string ;
-  print_open_stag: stag -> unit ;
-  print_close_stag: stag -> unit }
-val pp_set_formatter_stag_functions :
-  formatter -> formatter_stag_functions -> unit
-val set_formatter_stag_functions : formatter_stag_functions -> unit
-val pp_get_formatter_stag_functions :
-  formatter -> unit -> formatter_stag_functions
-val get_formatter_stag_functions : unit -> formatter_stag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_text : formatter -> string -> unit
-val pp_print_option :
-  ?none:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a option -> unit
-val pp_print_result :
-  ok:(formatter -> 'a -> unit) ->
-    error:(formatter -> 'e -> unit) -> formatter -> ('a, 'e) result -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val dprintf : ('a, formatter, unit, formatter -> unit) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val kdprintf :
-  ((formatter -> unit) -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_open_tag : formatter -> tag -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
diff --git a/interfaces/4.11/fun.mli b/interfaces/4.11/fun.mli
deleted file mode 100644
index f274db4..0000000
--- a/interfaces/4.11/fun.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-external id : 'a -> 'a = "%identity"
-val const : 'a -> 'b -> 'a
-val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
-val negate : ('a -> bool) -> 'a -> bool
-val protect : finally:(unit -> unit) -> (unit -> 'a) -> 'a
-exception Finally_raised of exn 
diff --git a/interfaces/4.11/gc.mli b/interfaces/4.11/gc.mli
deleted file mode 100644
index dfec8dd..0000000
--- a/interfaces/4.11/gc.mli
+++ /dev/null
@@ -1,79 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int ;
-  custom_major_ratio: int ;
-  custom_minor_ratio: int ;
-  custom_minor_max_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
-external eventlog_pause : unit -> unit = "caml_eventlog_pause"
-external eventlog_resume : unit -> unit = "caml_eventlog_resume"
-module Memprof :
-sig
-  type allocation = private
-    {
-    n_samples: int ;
-    size: int ;
-    unmarshalled: bool ;
-    callstack: Printexc.raw_backtrace }
-  type ('minor, 'major) tracker =
-    {
-    alloc_minor: allocation -> 'minor option ;
-    alloc_major: allocation -> 'major option ;
-    promote: 'minor -> 'major option ;
-    dealloc_minor: 'minor -> unit ;
-    dealloc_major: 'major -> unit }
-  val null_tracker : ('minor, 'major) tracker
-  val start :
-    sampling_rate:float ->
-      ?callstack_size:int -> ('minor, 'major) tracker -> unit
-  val stop : unit -> unit
-end
diff --git a/interfaces/4.11/genlex.mli b/interfaces/4.11/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.11/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.11/hashtbl.mli b/interfaces/4.11/hashtbl.mli
deleted file mode 100644
index 7b80782..0000000
--- a/interfaces/4.11/hashtbl.mli
+++ /dev/null
@@ -1,149 +0,0 @@
-type ('a, 'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-val to_seq_values : ('a, 'b) t -> 'b Seq.t
-val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type 'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.11/int32.mli b/interfaces/4.11/int32.mli
deleted file mode 100644
index 96aa3b3..0000000
--- a/interfaces/4.11/int32.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-val unsigned_div : int32 -> int32 -> int32
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val unsigned_rem : int32 -> int32 -> int32
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-val unsigned_to_int : int32 -> int option
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.11/int64.mli b/interfaces/4.11/int64.mli
deleted file mode 100644
index be055f0..0000000
--- a/interfaces/4.11/int64.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-val unsigned_div : int64 -> int64 -> int64
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val unsigned_rem : int64 -> int64 -> int64
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-val unsigned_to_int : int64 -> int option
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.11/lazy.mli b/interfaces/4.11/lazy.mli
deleted file mode 100644
index 064802a..0000000
--- a/interfaces/4.11/lazy.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type 'a t = 'a CamlinternalLazy.t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.11/lexing.mli b/interfaces/4.11/lexing.mli
deleted file mode 100644
index 0e5297c..0000000
--- a/interfaces/4.11/lexing.mli
+++ /dev/null
@@ -1,54 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : ?with_positions:bool -> in_channel -> lexbuf
-val from_string : ?with_positions:bool -> string -> lexbuf
-val from_function : ?with_positions:bool -> (bytes -> int -> int) -> lexbuf
-val set_position : lexbuf -> position -> unit
-val set_filename : lexbuf -> string -> unit
-val with_positions : lexbuf -> bool
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.11/list.mli b/interfaces/4.11/list.mli
deleted file mode 100644
index 16c7377..0000000
--- a/interfaces/4.11/list.mli
+++ /dev/null
@@ -1,63 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val filter_map : ('a -> 'b option) -> 'a list -> 'b list
-val concat_map : ('a -> 'b list) -> 'a list -> 'b list
-val fold_left_map :
-  ('a -> 'b -> ('a * 'c)) -> 'a -> 'b list -> ('a * 'c list)
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val find_map : ('a -> 'b option) -> 'a list -> 'b option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val filteri : (int -> 'a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.11/listLabels.mli b/interfaces/4.11/listLabels.mli
deleted file mode 100644
index 5b9d68f..0000000
--- a/interfaces/4.11/listLabels.mli
+++ /dev/null
@@ -1,65 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val hd : 'a list -> 'a
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val filter_map : f:('a -> 'b option) -> 'a list -> 'b list
-val concat_map : f:('a -> 'b list) -> 'a list -> 'b list
-val fold_left_map :
-  f:('a -> 'b -> ('a * 'c)) -> init:'a -> 'b list -> ('a * 'c list)
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val find_map : f:('a -> 'b option) -> 'a list -> 'b option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val filteri : f:(int -> 'a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.11/map.mli b/interfaces/4.11/map.mli
deleted file mode 100644
index 5d0dcea..0000000
--- a/interfaces/4.11/map.mli
+++ /dev/null
@@ -1,92 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
diff --git a/interfaces/4.11/marshal.mli b/interfaces/4.11/marshal.mli
deleted file mode 100644
index 2902fd4..0000000
--- a/interfaces/4.11/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_bytes"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.11/moreLabels.mli b/interfaces/4.11/moreLabels.mli
deleted file mode 100644
index a99d275..0000000
--- a/interfaces/4.11/moreLabels.mli
+++ /dev/null
@@ -1,344 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  type statistics = Hashtbl.statistics
-  val stats : ('a, 'b) t -> statistics
-  val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-  val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-  val to_seq_values : ('a, 'b) t -> 'b Seq.t
-  val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-  module type HashedType  = Hashtbl.HashedType
-  module type SeededHashedType  = Hashtbl.SeededHashedType
-  module type S  =
-    sig
-      type key
-      and 'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module type SeededS  =
-    sig
-      type key
-      and 'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.Make(H).t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      and 'a t = 'a Hashtbl.MakeSeeded(H).t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = Map.OrderedType
-  module type S  =
-    sig
-      type key
-      and +'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val filter_map : f:(key -> 'a -> 'b option) -> 'a t -> 'b t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      and 'a t = 'a Map.Make(Ord).t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val filter_map : f:(key -> 'a -> 'b option) -> 'a t -> 'b t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = Set.OrderedType
-  module type S  =
-    sig
-      type elt
-      and t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val filter_map : f:(elt -> elt option) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      and t = Set.Make(Ord).t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val filter_map : f:(elt -> elt option) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-end
diff --git a/interfaces/4.11/nativeint.mli b/interfaces/4.11/nativeint.mli
deleted file mode 100644
index 6107382..0000000
--- a/interfaces/4.11/nativeint.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-val unsigned_div : nativeint -> nativeint -> nativeint
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val unsigned_rem : nativeint -> nativeint -> nativeint
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-val unsigned_to_int : nativeint -> int option
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.11/obj.mli b/interfaces/4.11/obj.mli
deleted file mode 100644
index a23c2fb..0000000
--- a/interfaces/4.11/obj.mli
+++ /dev/null
@@ -1,68 +0,0 @@
-type t
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-external with_tag : int -> t -> t = "caml_obj_with_tag"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-module Extension_constructor :
-sig
-  type t = extension_constructor
-  val of_val : 'a -> t
-  val name : t -> string
-  val id : t -> int
-end
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes
-val unmarshal : bytes -> int -> (t * int)
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-  val max_ephe_length : int
-end
diff --git a/interfaces/4.11/oo.mli b/interfaces/4.11/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.11/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.11/option.mli b/interfaces/4.11/option.mli
deleted file mode 100644
index 9d309eb..0000000
--- a/interfaces/4.11/option.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type 'a t = 'a option =
-  | None 
-  | Some of 'a 
-val none : 'a option
-val some : 'a -> 'a option
-val value : 'a option -> default:'a -> 'a
-val get : 'a option -> 'a
-val bind : 'a option -> ('a -> 'b option) -> 'b option
-val join : 'a option option -> 'a option
-val map : ('a -> 'b) -> 'a option -> 'b option
-val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
-val iter : ('a -> unit) -> 'a option -> unit
-val is_none : 'a option -> bool
-val is_some : 'a option -> bool
-val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
-val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
-val to_result : none:'e -> 'a option -> ('a, 'e) result
-val to_list : 'a option -> 'a list
-val to_seq : 'a option -> 'a Seq.t
diff --git a/interfaces/4.11/parsing.mli b/interfaces/4.11/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.11/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.11/pervasives.mli b/interfaces/4.11/pervasives.mli
deleted file mode 100644
index fd024d1..0000000
--- a/interfaces/4.11/pervasives.mli
+++ /dev/null
@@ -1,241 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type nonrec fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type nonrec in_channel = in_channel
-type nonrec out_channel = out_channel
-val stdin : Stdlib.in_channel
-val stdout : Stdlib.out_channel
-val stderr : Stdlib.out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type nonrec open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> Stdlib.out_channel
-val open_out_bin : string -> Stdlib.out_channel
-val open_out_gen :
-  Stdlib.open_flag list -> int -> string -> Stdlib.out_channel
-val flush : Stdlib.out_channel -> unit
-val flush_all : unit -> unit
-val output_char : Stdlib.out_channel -> char -> unit
-val output_string : Stdlib.out_channel -> string -> unit
-val output_bytes : Stdlib.out_channel -> bytes -> unit
-val output : Stdlib.out_channel -> bytes -> int -> int -> unit
-val output_substring : Stdlib.out_channel -> string -> int -> int -> unit
-val output_byte : Stdlib.out_channel -> int -> unit
-val output_binary_int : Stdlib.out_channel -> int -> unit
-val output_value : Stdlib.out_channel -> 'a -> unit
-val seek_out : Stdlib.out_channel -> int -> unit
-val pos_out : Stdlib.out_channel -> int
-val out_channel_length : Stdlib.out_channel -> int
-val close_out : Stdlib.out_channel -> unit
-val close_out_noerr : Stdlib.out_channel -> unit
-val set_binary_mode_out : Stdlib.out_channel -> bool -> unit
-val open_in : string -> Stdlib.in_channel
-val open_in_bin : string -> Stdlib.in_channel
-val open_in_gen : Stdlib.open_flag list -> int -> string -> Stdlib.in_channel
-val input_char : Stdlib.in_channel -> char
-val input_line : Stdlib.in_channel -> string
-val input : Stdlib.in_channel -> bytes -> int -> int -> int
-val really_input : Stdlib.in_channel -> bytes -> int -> int -> unit
-val really_input_string : Stdlib.in_channel -> int -> string
-val input_byte : Stdlib.in_channel -> int
-val input_binary_int : Stdlib.in_channel -> int
-val input_value : Stdlib.in_channel -> 'a
-val seek_in : Stdlib.in_channel -> int -> unit
-val pos_in : Stdlib.in_channel -> int
-val in_channel_length : Stdlib.in_channel -> int
-val close_in : Stdlib.in_channel -> unit
-val close_in_noerr : Stdlib.in_channel -> unit
-val set_binary_mode_in : Stdlib.in_channel -> bool -> unit
-module LargeFile = LargeFile
-type nonrec 'a ref = 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type nonrec ('a, 'b) result = ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) Stdlib.format6 ->
-      ('a, 'b, 'c, 'd, 'g, 'h) Stdlib.format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.11/printexc.mli b/interfaces/4.11/printexc.mli
deleted file mode 100644
index 6224850..0000000
--- a/interfaces/4.11/printexc.mli
+++ /dev/null
@@ -1,45 +0,0 @@
-type t = exn = ..
-val to_string : exn -> string
-val to_string_default : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-val use_printers : exn -> string option
-type raw_backtrace
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-external get_callstack : int -> raw_backtrace = "caml_get_current_callstack"
-val default_uncaught_exception_handler : exn -> raw_backtrace -> unit
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val name : t -> string option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.11/printf.mli b/interfaces/4.11/printf.mli
deleted file mode 100644
index d66ad22..0000000
--- a/interfaces/4.11/printf.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val ibprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val ikbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.11/queue.mli b/interfaces/4.11/queue.mli
deleted file mode 100644
index e52fe1a..0000000
--- a/interfaces/4.11/queue.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val take_opt : 'a t -> 'a option
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val peek_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.11/random.mli b/interfaces/4.11/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.11/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.11/result.mli b/interfaces/4.11/result.mli
deleted file mode 100644
index 06f96e6..0000000
--- a/interfaces/4.11/result.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type ('a, 'e) t = ('a, 'e) result =
-  | Ok of 'a 
-  | Error of 'e 
-val ok : 'a -> ('a, 'e) result
-val error : 'e -> ('a, 'e) result
-val value : ('a, 'e) result -> default:'a -> 'a
-val get_ok : ('a, 'e) result -> 'a
-val get_error : ('a, 'e) result -> 'e
-val bind : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
-val join : (('a, 'e) result, 'e) result -> ('a, 'e) result
-val map : ('a -> 'b) -> ('a, 'e) result -> ('b, 'e) result
-val map_error : ('e -> 'f) -> ('a, 'e) result -> ('a, 'f) result
-val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'c
-val iter : ('a -> unit) -> ('a, 'e) result -> unit
-val iter_error : ('e -> unit) -> ('a, 'e) result -> unit
-val is_ok : ('a, 'e) result -> bool
-val is_error : ('a, 'e) result -> bool
-val equal :
-  ok:('a -> 'a -> bool) ->
-    error:('e -> 'e -> bool) -> ('a, 'e) result -> ('a, 'e) result -> bool
-val compare :
-  ok:('a -> 'a -> int) ->
-    error:('e -> 'e -> int) -> ('a, 'e) result -> ('a, 'e) result -> int
-val to_option : ('a, 'e) result -> 'a option
-val to_list : ('a, 'e) result -> 'a list
-val to_seq : ('a, 'e) result -> 'a Seq.t
diff --git a/interfaces/4.11/scanf.mli b/interfaces/4.11/scanf.mli
deleted file mode 100644
index b3bc615..0000000
--- a/interfaces/4.11/scanf.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Stdlib.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
diff --git a/interfaces/4.11/seq.mli b/interfaces/4.11/seq.mli
deleted file mode 100644
index a81e552..0000000
--- a/interfaces/4.11/seq.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-type 'a t = unit -> 'a node
-and 'a node =
-  | Nil 
-  | Cons of 'a * 'a t 
-val empty : 'a t
-val return : 'a -> 'a t
-val cons : 'a -> 'a t -> 'a t
-val append : 'a t -> 'a t -> 'a t
-val map : ('a -> 'b) -> 'a t -> 'b t
-val filter : ('a -> bool) -> 'a t -> 'a t
-val filter_map : ('a -> 'b option) -> 'a t -> 'b t
-val flat_map : ('a -> 'b t) -> 'a t -> 'b t
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val iter : ('a -> unit) -> 'a t -> unit
-val unfold : ('b -> ('a * 'b) option) -> 'b -> 'a t
diff --git a/interfaces/4.11/set.mli b/interfaces/4.11/set.mli
deleted file mode 100644
index 11bdb26..0000000
--- a/interfaces/4.11/set.mli
+++ /dev/null
@@ -1,94 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val filter_map : (elt -> elt option) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val filter_map : (elt -> elt option) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
diff --git a/interfaces/4.11/spacetime.mli b/interfaces/4.11/spacetime.mli
deleted file mode 100644
index 0dabf48..0000000
--- a/interfaces/4.11/spacetime.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-val enabled : bool
-module Series :
-sig
-  type t
-  val create : path:string -> t
-  val save_event : ?time:float -> t -> event_name:string -> unit
-  val save_and_close : ?time:float -> t -> unit
-end
-module Snapshot : sig val take : ?time:float -> Series.t -> unit end
-val save_event_for_automatic_snapshots : event_name:string -> unit
diff --git a/interfaces/4.11/stack.mli b/interfaces/4.11/stack.mli
deleted file mode 100644
index 6ef0c38..0000000
--- a/interfaces/4.11/stack.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type 'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val pop_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val top_opt : 'a t -> 'a option
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.11/stdLabels.mli b/interfaces/4.11/stdLabels.mli
deleted file mode 100644
index d86b996..0000000
--- a/interfaces/4.11/stdLabels.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-module Array = ArrayLabels
-module Bytes = BytesLabels
-module List = ListLabels
-module String = StringLabels
diff --git a/interfaces/4.11/stdlib.mli b/interfaces/4.11/stdlib.mli
deleted file mode 100644
index 01e58c9..0000000
--- a/interfaces/4.11/stdlib.mli
+++ /dev/null
@@ -1,314 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-exception Match_failure of (string * int * int) 
-exception Assert_failure of (string * int * int) 
-exception Invalid_argument of string 
-exception Failure of string 
-exception Not_found 
-exception Out_of_memory 
-exception Stack_overflow 
-exception Sys_error of string 
-exception End_of_file 
-exception Division_by_zero 
-exception Sys_blocked_io 
-exception Undefined_recursive_module of (string * int * int) 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string_opt : string -> bool option
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-val int_of_string_opt : string -> int option
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-val float_of_string_opt : string -> float option
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int_opt : unit -> int option
-val read_int : unit -> int
-val read_float_opt : unit -> float option
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
-module Arg = Arg
-module Array = Array
-module ArrayLabels = ArrayLabels
-module Bigarray = Bigarray
-module Bool = Bool
-module Buffer = Buffer
-module Bytes = Bytes
-module BytesLabels = BytesLabels
-module Callback = Callback
-module Char = Char
-module Complex = Complex
-module Digest = Digest
-module Ephemeron = Ephemeron
-module Filename = Filename
-module Float = Float
-module Format = Format
-module Fun = Fun
-module Gc = Gc
-module Genlex = Genlex
-module Hashtbl = Hashtbl
-module Int = Int
-module Int32 = Int32
-module Int64 = Int64
-module Lazy = Lazy
-module Lexing = Lexing
-module List = List
-module ListLabels = ListLabels
-module Map = Map
-module Marshal = Marshal
-module MoreLabels = MoreLabels
-module Nativeint = Nativeint
-module Obj = Obj
-module Oo = Oo
-module Option = Option
-module Parsing = Parsing
-module Pervasives = Pervasives
-module Printexc = Printexc
-module Printf = Printf
-module Queue = Queue
-module Random = Random
-module Result = Result
-module Scanf = Scanf
-module Seq = Seq
-module Set = Set
-module Spacetime = Spacetime
-module Stack = Stack
-module StdLabels = StdLabels
-module Stream = Stream
-module String = String
-module StringLabels = StringLabels
-module Sys = Sys
-module Uchar = Uchar
-module Unit = Unit
-module Weak = Weak
diff --git a/interfaces/4.11/stream.mli b/interfaces/4.11/stream.mli
deleted file mode 100644
index e41bb8e..0000000
--- a/interfaces/4.11/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type 'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.11/string.mli b/interfaces/4.11/string.mli
deleted file mode 100644
index 0449717..0000000
--- a/interfaces/4.11/string.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val copy : string -> string
-val sub : string -> int -> int -> string
-val fill : bytes -> int -> int -> char -> unit
-val blit : string -> int -> bytes -> int -> int -> unit
-val concat : string -> string list -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@noalloc ]
diff --git a/interfaces/4.11/stringLabels.mli b/interfaces/4.11/stringLabels.mli
deleted file mode 100644
index 5c12f4d..0000000
--- a/interfaces/4.11/stringLabels.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-external create : int -> bytes = "caml_create_string"
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val copy : string -> string
-val sub : string -> pos:int -> len:int -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:string -> string list -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val contains : string -> char -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val split_on_char : sep:char -> string -> string list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
diff --git a/interfaces/4.11/sys.mli b/interfaces/4.11/sys.mli
deleted file mode 100644
index 33478af..0000000
--- a/interfaces/4.11/sys.mli
+++ /dev/null
@@ -1,89 +0,0 @@
-external argv : string array = "%sys_argv"
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-val max_floatarray_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
-module Immediate64 :
-sig
-  module type Non_immediate  = sig type t end
-  module type Immediate  = sig type t[@@immediate ] end
-  module Make :
-  functor (Immediate : Immediate) ->
-    functor (Non_immediate : Non_immediate) ->
-      sig
-        type t[@@immediate64 ]
-        type 'a repr =
-          | Immediate: Immediate.t repr 
-          | Non_immediate: Non_immediate.t repr 
-        val repr : t repr
-      end
-end
diff --git a/interfaces/4.11/uchar.mli b/interfaces/4.11/uchar.mli
deleted file mode 100644
index 8a0c6b4..0000000
--- a/interfaces/4.11/uchar.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-type t
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.11/unit.mli b/interfaces/4.11/unit.mli
deleted file mode 100644
index 1efbc15..0000000
--- a/interfaces/4.11/unit.mli
+++ /dev/null
@@ -1,5 +0,0 @@
-type t = unit =
-  | () 
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val to_string : t -> string
diff --git a/interfaces/4.11/weak.mli b/interfaces/4.11/weak.mli
deleted file mode 100644
index 3be35a0..0000000
--- a/interfaces/4.11/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type 'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.12/arg.mli b/interfaces/4.12/arg.mli
deleted file mode 100644
index 60f0886..0000000
--- a/interfaces/4.12/arg.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Rest_all of (string list -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.12/array.mli b/interfaces/4.12/array.mli
deleted file mode 100644
index 48e5074..0000000
--- a/interfaces/4.12/array.mli
+++ /dev/null
@@ -1,51 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.12/arrayLabels.mli b/interfaces/4.12/arrayLabels.mli
deleted file mode 100644
index fa6bccf..0000000
--- a/interfaces/4.12/arrayLabels.mli
+++ /dev/null
@@ -1,53 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : f:('a -> bool) -> 'a array -> bool
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.12/atomic.mli b/interfaces/4.12/atomic.mli
deleted file mode 100644
index e32696f..0000000
--- a/interfaces/4.12/atomic.mli
+++ /dev/null
@@ -1,9 +0,0 @@
-type !'a t
-val make : 'a -> 'a t
-val get : 'a t -> 'a
-val set : 'a t -> 'a -> unit
-val exchange : 'a t -> 'a -> 'a
-val compare_and_set : 'a t -> 'a -> 'a -> bool
-val fetch_and_add : int t -> int -> int
-val incr : int t -> unit
-val decr : int t -> unit
diff --git a/interfaces/4.12/bool.mli b/interfaces/4.12/bool.mli
deleted file mode 100644
index a9131fb..0000000
--- a/interfaces/4.12/bool.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type t = bool =
-  | false 
-  | true 
-val not : bool -> bool
-external (&&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-val equal : bool -> bool -> bool
-val compare : bool -> bool -> int
-val to_int : bool -> int
-val to_float : bool -> float
-val to_string : bool -> string
diff --git a/interfaces/4.12/buffer.mli b/interfaces/4.12/buffer.mli
deleted file mode 100644
index 52aac6c..0000000
--- a/interfaces/4.12/buffer.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val add_seq : t -> char Seq.t -> unit
-val of_seq : char Seq.t -> t
-val add_uint8 : t -> int -> unit
-val add_int8 : t -> int -> unit
-val add_uint16_ne : t -> int -> unit
-val add_uint16_be : t -> int -> unit
-val add_uint16_le : t -> int -> unit
-val add_int16_ne : t -> int -> unit
-val add_int16_be : t -> int -> unit
-val add_int16_le : t -> int -> unit
-val add_int32_ne : t -> int32 -> unit
-val add_int32_be : t -> int32 -> unit
-val add_int32_le : t -> int32 -> unit
-val add_int64_ne : t -> int64 -> unit
-val add_int64_be : t -> int64 -> unit
-val add_int64_le : t -> int64 -> unit
diff --git a/interfaces/4.12/bytes.mli b/interfaces/4.12/bytes.mli
deleted file mode 100644
index 7f0ce2a..0000000
--- a/interfaces/4.12/bytes.mli
+++ /dev/null
@@ -1,88 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.12/bytesLabels.mli b/interfaces/4.12/bytesLabels.mli
deleted file mode 100644
index dac88ed..0000000
--- a/interfaces/4.12/bytesLabels.mli
+++ /dev/null
@@ -1,91 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.12/callback.mli b/interfaces/4.12/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.12/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.12/char.mli b/interfaces/4.12/char.mli
deleted file mode 100644
index 57b360f..0000000
--- a/interfaces/4.12/char.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.12/complex.mli b/interfaces/4.12/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.12/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.12/digest.mli b/interfaces/4.12/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.12/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.12/either.mli b/interfaces/4.12/either.mli
deleted file mode 100644
index 14f1099..0000000
--- a/interfaces/4.12/either.mli
+++ /dev/null
@@ -1,22 +0,0 @@
-type ('a, 'b) t =
-  | Left of 'a 
-  | Right of 'b 
-val left : 'a -> ('a, 'b) t
-val right : 'b -> ('a, 'b) t
-val is_left : ('a, 'b) t -> bool
-val is_right : ('a, 'b) t -> bool
-val find_left : ('a, 'b) t -> 'a option
-val find_right : ('a, 'b) t -> 'b option
-val map_left : ('a1 -> 'a2) -> ('a1, 'b) t -> ('a2, 'b) t
-val map_right : ('b1 -> 'b2) -> ('a, 'b1) t -> ('a, 'b2) t
-val map :
-  left:('a1 -> 'a2) -> right:('b1 -> 'b2) -> ('a1, 'b1) t -> ('a2, 'b2) t
-val fold : left:('a -> 'c) -> right:('b -> 'c) -> ('a, 'b) t -> 'c
-val iter : left:('a -> unit) -> right:('b -> unit) -> ('a, 'b) t -> unit
-val for_all : left:('a -> bool) -> right:('b -> bool) -> ('a, 'b) t -> bool
-val equal :
-  left:('a -> 'a -> bool) ->
-    right:('b -> 'b -> bool) -> ('a, 'b) t -> ('a, 'b) t -> bool
-val compare :
-  left:('a -> 'a -> int) ->
-    right:('b -> 'b -> int) -> ('a, 'b) t -> ('a, 'b) t -> int
diff --git a/interfaces/4.12/ephemeron.mli b/interfaces/4.12/ephemeron.mli
deleted file mode 100644
index 8d76cef..0000000
--- a/interfaces/4.12/ephemeron.mli
+++ /dev/null
@@ -1,346 +0,0 @@
-module type S  =
-  sig
-    type key
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type !'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type !'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.12/filename.mli b/interfaces/4.12/filename.mli
deleted file mode 100644
index 4e1b185..0000000
--- a/interfaces/4.12/filename.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_suffix_opt : suffix:string -> string -> string option
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val null : string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
-val quote_command :
-  string ->
-    ?stdin:string ->
-      ?stdout:string -> ?stderr:string -> string list -> string
diff --git a/interfaces/4.12/float.mli b/interfaces/4.12/float.mli
deleted file mode 100644
index 0d13a90..0000000
--- a/interfaces/4.12/float.mli
+++ /dev/null
@@ -1,189 +0,0 @@
-val zero : float
-val one : float
-val minus_one : float
-external neg : float -> float = "%negfloat"
-external add : float -> float -> float = "%addfloat"
-external sub : float -> float -> float = "%subfloat"
-external mul : float -> float -> float = "%mulfloat"
-external div : float -> float -> float = "%divfloat"
-external fma : float -> float -> float -> float = "caml_fma_float" "caml_fma"
-[@@unboxed ][@@noalloc ]
-external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
-[@@noalloc ]
-val succ : float -> float
-val pred : float -> float
-external abs : float -> float = "%absfloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val pi : float
-val max_float : float
-val min_float : float
-val epsilon : float
-val is_finite : float -> bool
-val is_infinite : float -> bool
-val is_nan : float -> bool
-val is_integer : float -> bool
-external of_int : int -> float = "%floatofint"
-external to_int : float -> int = "%intoffloat"
-external of_string : string -> float = "caml_float_of_string"
-val of_string_opt : string -> float option
-val to_string : float -> string
-type fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external trunc : float -> float = "caml_trunc_float" "caml_trunc"[@@unboxed ]
-[@@noalloc ]
-external round : float -> float = "caml_round_float" "caml_round"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external next_after :
-  float -> float -> float = "caml_nextafter_float" "caml_nextafter"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external copy_sign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external sign_bit :
-  ((float)[@unboxed ]) -> bool = "caml_signbit_float" "caml_signbit"[@@noalloc
-                                                                    ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-type t = float
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : float -> float -> float
-val min_max : float -> float -> (float * float)
-val min_num : t -> t -> t
-val max_num : t -> t -> t
-val min_max_num : float -> float -> (float * float)
-val hash : t -> int
-module Array :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> (int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> int -> int -> t
-  val copy : t -> t
-  val fill : t -> int -> int -> float -> unit
-  val blit : t -> int -> t -> int -> int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : (float -> unit) -> t -> unit
-  val iteri : (int -> float -> unit) -> t -> unit
-  val map : (float -> float) -> t -> t
-  val mapi : (int -> float -> float) -> t -> t
-  val fold_left : ('a -> float -> 'a) -> 'a -> t -> 'a
-  val fold_right : (float -> 'a -> 'a) -> t -> 'a -> 'a
-  val iter2 : (float -> float -> unit) -> t -> t -> unit
-  val map2 : (float -> float -> float) -> t -> t -> t
-  val for_all : (float -> bool) -> t -> bool
-  val exists : (float -> bool) -> t -> bool
-  val mem : float -> t -> bool
-  val mem_ieee : float -> t -> bool
-  val sort : (float -> float -> int) -> t -> unit
-  val stable_sort : (float -> float -> int) -> t -> unit
-  val fast_sort : (float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : (float -> 'a) -> t -> 'a array
-  val map_from_array : ('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
-module ArrayLabels :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> f:(int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> pos:int -> len:int -> t
-  val copy : t -> t
-  val fill : t -> pos:int -> len:int -> float -> unit
-  val blit : src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : f:(float -> unit) -> t -> unit
-  val iteri : f:(int -> float -> unit) -> t -> unit
-  val map : f:(float -> float) -> t -> t
-  val mapi : f:(int -> float -> float) -> t -> t
-  val fold_left : f:('a -> float -> 'a) -> init:'a -> t -> 'a
-  val fold_right : f:(float -> 'a -> 'a) -> t -> init:'a -> 'a
-  val iter2 : f:(float -> float -> unit) -> t -> t -> unit
-  val map2 : f:(float -> float -> float) -> t -> t -> t
-  val for_all : f:(float -> bool) -> t -> bool
-  val exists : f:(float -> bool) -> t -> bool
-  val mem : float -> set:t -> bool
-  val mem_ieee : float -> set:t -> bool
-  val sort : cmp:(float -> float -> int) -> t -> unit
-  val stable_sort : cmp:(float -> float -> int) -> t -> unit
-  val fast_sort : cmp:(float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : f:(float -> 'a) -> t -> 'a array
-  val map_from_array : f:('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.12/format.mli b/interfaces/4.12/format.mli
deleted file mode 100644
index 7480bf5..0000000
--- a/interfaces/4.12/format.mli
+++ /dev/null
@@ -1,225 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_print_custom_break :
-  formatter ->
-    fits:(string * int * string) -> breaks:(string * int * string) -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-type geometry = {
-  max_indent: int ;
-  margin: int }
-val check_geometry : geometry -> bool
-val pp_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val set_geometry : max_indent:int -> margin:int -> unit
-val pp_safe_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val safe_set_geometry : max_indent:int -> margin:int -> unit
-val pp_update_geometry : formatter -> (geometry -> geometry) -> unit
-val update_geometry : (geometry -> geometry) -> unit
-val pp_get_geometry : formatter -> unit -> geometry
-val get_geometry : unit -> geometry
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type stag = ..
-type tag = string
-type stag +=  
-  | String_tag of tag 
-val pp_open_stag : formatter -> stag -> unit
-val open_stag : stag -> unit
-val pp_close_stag : formatter -> unit -> unit
-val close_stag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_stag_functions =
-  {
-  mark_open_stag: stag -> string ;
-  mark_close_stag: stag -> string ;
-  print_open_stag: stag -> unit ;
-  print_close_stag: stag -> unit }
-val pp_set_formatter_stag_functions :
-  formatter -> formatter_stag_functions -> unit
-val set_formatter_stag_functions : formatter_stag_functions -> unit
-val pp_get_formatter_stag_functions :
-  formatter -> unit -> formatter_stag_functions
-val get_formatter_stag_functions : unit -> formatter_stag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_seq :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a Seq.t -> unit
-val pp_print_text : formatter -> string -> unit
-val pp_print_option :
-  ?none:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a option -> unit
-val pp_print_result :
-  ok:(formatter -> 'a -> unit) ->
-    error:(formatter -> 'e -> unit) -> formatter -> ('a, 'e) result -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val dprintf : ('a, formatter, unit, formatter -> unit) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val kdprintf :
-  ((formatter -> unit) -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_open_tag : formatter -> tag -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
diff --git a/interfaces/4.12/fun.mli b/interfaces/4.12/fun.mli
deleted file mode 100644
index f274db4..0000000
--- a/interfaces/4.12/fun.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-external id : 'a -> 'a = "%identity"
-val const : 'a -> 'b -> 'a
-val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
-val negate : ('a -> bool) -> 'a -> bool
-val protect : finally:(unit -> unit) -> (unit -> 'a) -> 'a
-exception Finally_raised of exn 
diff --git a/interfaces/4.12/gc.mli b/interfaces/4.12/gc.mli
deleted file mode 100644
index 308c562..0000000
--- a/interfaces/4.12/gc.mli
+++ /dev/null
@@ -1,84 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int ;
-  forced_major_collections: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int ;
-  custom_major_ratio: int ;
-  custom_minor_ratio: int ;
-  custom_minor_max_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
-external eventlog_pause : unit -> unit = "caml_eventlog_pause"
-external eventlog_resume : unit -> unit = "caml_eventlog_resume"
-module Memprof :
-sig
-  type allocation_source =
-    | Normal 
-    | Marshal 
-    | Custom 
-  type allocation = private
-    {
-    n_samples: int ;
-    size: int ;
-    source: allocation_source ;
-    callstack: Printexc.raw_backtrace }
-  type ('minor, 'major) tracker =
-    {
-    alloc_minor: allocation -> 'minor option ;
-    alloc_major: allocation -> 'major option ;
-    promote: 'minor -> 'major option ;
-    dealloc_minor: 'minor -> unit ;
-    dealloc_major: 'major -> unit }
-  val null_tracker : ('minor, 'major) tracker
-  val start :
-    sampling_rate:float ->
-      ?callstack_size:int -> ('minor, 'major) tracker -> unit
-  val stop : unit -> unit
-end
diff --git a/interfaces/4.12/genlex.mli b/interfaces/4.12/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.12/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.12/hashtbl.mli b/interfaces/4.12/hashtbl.mli
deleted file mode 100644
index 4bc42d3..0000000
--- a/interfaces/4.12/hashtbl.mli
+++ /dev/null
@@ -1,150 +0,0 @@
-type (!'a, !'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-val rebuild : ?random:bool -> ('a, 'b) t -> ('a, 'b) t
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-val to_seq_values : ('a, 'b) t -> 'b Seq.t
-val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.12/int32.mli b/interfaces/4.12/int32.mli
deleted file mode 100644
index 96aa3b3..0000000
--- a/interfaces/4.12/int32.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-val unsigned_div : int32 -> int32 -> int32
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val unsigned_rem : int32 -> int32 -> int32
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-val unsigned_to_int : int32 -> int option
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.12/int64.mli b/interfaces/4.12/int64.mli
deleted file mode 100644
index be055f0..0000000
--- a/interfaces/4.12/int64.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-val unsigned_div : int64 -> int64 -> int64
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val unsigned_rem : int64 -> int64 -> int64
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-val unsigned_to_int : int64 -> int option
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.12/lazy.mli b/interfaces/4.12/lazy.mli
deleted file mode 100644
index 064802a..0000000
--- a/interfaces/4.12/lazy.mli
+++ /dev/null
@@ -1,10 +0,0 @@
-type 'a t = 'a CamlinternalLazy.t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val force_val : 'a t -> 'a
-val from_fun : (unit -> 'a) -> 'a t
-val from_val : 'a -> 'a t
-val is_val : 'a t -> bool
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.12/lexing.mli b/interfaces/4.12/lexing.mli
deleted file mode 100644
index 0e5297c..0000000
--- a/interfaces/4.12/lexing.mli
+++ /dev/null
@@ -1,54 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : ?with_positions:bool -> in_channel -> lexbuf
-val from_string : ?with_positions:bool -> string -> lexbuf
-val from_function : ?with_positions:bool -> (bytes -> int -> int) -> lexbuf
-val set_position : lexbuf -> position -> unit
-val set_filename : lexbuf -> string -> unit
-val with_positions : lexbuf -> bool
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.12/list.mli b/interfaces/4.12/list.mli
deleted file mode 100644
index 66e6463..0000000
--- a/interfaces/4.12/list.mli
+++ /dev/null
@@ -1,67 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val equal : ('a -> 'a -> bool) -> 'a list -> 'a list -> bool
-val compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val filter_map : ('a -> 'b option) -> 'a list -> 'b list
-val concat_map : ('a -> 'b list) -> 'a list -> 'b list
-val fold_left_map :
-  ('a -> 'b -> ('a * 'c)) -> 'a -> 'b list -> ('a * 'c list)
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val find_map : ('a -> 'b option) -> 'a list -> 'b option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val filteri : (int -> 'a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val partition_map :
-  ('a -> ('b, 'c) Either.t) -> 'a list -> ('b list * 'c list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.12/listLabels.mli b/interfaces/4.12/listLabels.mli
deleted file mode 100644
index fd27a76..0000000
--- a/interfaces/4.12/listLabels.mli
+++ /dev/null
@@ -1,69 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val equal : eq:('a -> 'a -> bool) -> 'a list -> 'a list -> bool
-val compare : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> int
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val filter_map : f:('a -> 'b option) -> 'a list -> 'b list
-val concat_map : f:('a -> 'b list) -> 'a list -> 'b list
-val fold_left_map :
-  f:('a -> 'b -> ('a * 'c)) -> init:'a -> 'b list -> ('a * 'c list)
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val find_map : f:('a -> 'b option) -> 'a list -> 'b option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val filteri : f:(int -> 'a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val partition_map :
-  f:('a -> ('b, 'c) Either.t) -> 'a list -> ('b list * 'c list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.12/map.mli b/interfaces/4.12/map.mli
deleted file mode 100644
index 260b500..0000000
--- a/interfaces/4.12/map.mli
+++ /dev/null
@@ -1,94 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +!'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_rev_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +!'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_rev_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
diff --git a/interfaces/4.12/marshal.mli b/interfaces/4.12/marshal.mli
deleted file mode 100644
index 2902fd4..0000000
--- a/interfaces/4.12/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_bytes"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.12/moreLabels.mli b/interfaces/4.12/moreLabels.mli
deleted file mode 100644
index 4ab78fd..0000000
--- a/interfaces/4.12/moreLabels.mli
+++ /dev/null
@@ -1,356 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  val rebuild : ?random:bool -> ('a, 'b) t -> ('a, 'b) t
-  type statistics = Hashtbl.statistics =
-    {
-    num_bindings: int ;
-    num_buckets: int ;
-    max_bucket_length: int ;
-    bucket_histogram: int array }
-  val stats : ('a, 'b) t -> statistics
-  val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-  val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-  val to_seq_values : ('a, 'b) t -> 'b Seq.t
-  val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-  module type HashedType  =
-    sig type t val equal : t -> t -> bool val hash : t -> int end
-  module type S  =
-    sig
-      type key
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      type 'a t = 'a Hashtbl.Make(H).t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module type SeededHashedType  =
-    sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-  module type SeededS  =
-    sig
-      type key
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t = 'a Hashtbl.MakeSeeded(H).t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = sig type t val compare : t -> t -> int end
-  module type S  =
-    sig
-      type key
-      type +!'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val filter_map : f:(key -> 'a -> 'b option) -> 'a t -> 'b t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_rev_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      type 'a t = 'a Map.Make(Ord).t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val filter_map : f:(key -> 'a -> 'b option) -> 'a t -> 'b t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_rev_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = sig type t val compare : t -> t -> int end
-  module type S  =
-    sig
-      type elt
-      type t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val filter_map : f:(elt -> elt option) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val to_rev_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      type t = Set.Make(Ord).t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val filter_map : f:(elt -> elt option) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val to_rev_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-end
diff --git a/interfaces/4.12/nativeint.mli b/interfaces/4.12/nativeint.mli
deleted file mode 100644
index 6107382..0000000
--- a/interfaces/4.12/nativeint.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-val unsigned_div : nativeint -> nativeint -> nativeint
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val unsigned_rem : nativeint -> nativeint -> nativeint
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-val unsigned_to_int : nativeint -> int option
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.12/obj.mli b/interfaces/4.12/obj.mli
deleted file mode 100644
index f01cc1a..0000000
--- a/interfaces/4.12/obj.mli
+++ /dev/null
@@ -1,76 +0,0 @@
-type t
-type raw_data = nativeint
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"[@@noalloc ]
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external raw_field : t -> int -> raw_data = "caml_obj_raw_field"
-external set_raw_field :
-  t -> int -> raw_data -> unit = "caml_obj_set_raw_field"
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-external with_tag : int -> t -> t = "caml_obj_with_tag"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-module Closure :
-sig type info = {
-      arity: int ;
-      start_env: int } val info : t -> info end
-module Extension_constructor :
-sig
-  type t = extension_constructor
-  val of_val : 'a -> t
-  val name : t -> string
-  val id : t -> int
-end
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes
-val unmarshal : bytes -> int -> (t * int)
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-  val max_ephe_length : int
-end
diff --git a/interfaces/4.12/oo.mli b/interfaces/4.12/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.12/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.12/option.mli b/interfaces/4.12/option.mli
deleted file mode 100644
index 9d309eb..0000000
--- a/interfaces/4.12/option.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type 'a t = 'a option =
-  | None 
-  | Some of 'a 
-val none : 'a option
-val some : 'a -> 'a option
-val value : 'a option -> default:'a -> 'a
-val get : 'a option -> 'a
-val bind : 'a option -> ('a -> 'b option) -> 'b option
-val join : 'a option option -> 'a option
-val map : ('a -> 'b) -> 'a option -> 'b option
-val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
-val iter : ('a -> unit) -> 'a option -> unit
-val is_none : 'a option -> bool
-val is_some : 'a option -> bool
-val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
-val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
-val to_result : none:'e -> 'a option -> ('a, 'e) result
-val to_list : 'a option -> 'a list
-val to_seq : 'a option -> 'a Seq.t
diff --git a/interfaces/4.12/parsing.mli b/interfaces/4.12/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.12/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.12/pervasives.mli b/interfaces/4.12/pervasives.mli
deleted file mode 100644
index fd024d1..0000000
--- a/interfaces/4.12/pervasives.mli
+++ /dev/null
@@ -1,241 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type nonrec fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type nonrec in_channel = in_channel
-type nonrec out_channel = out_channel
-val stdin : Stdlib.in_channel
-val stdout : Stdlib.out_channel
-val stderr : Stdlib.out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type nonrec open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> Stdlib.out_channel
-val open_out_bin : string -> Stdlib.out_channel
-val open_out_gen :
-  Stdlib.open_flag list -> int -> string -> Stdlib.out_channel
-val flush : Stdlib.out_channel -> unit
-val flush_all : unit -> unit
-val output_char : Stdlib.out_channel -> char -> unit
-val output_string : Stdlib.out_channel -> string -> unit
-val output_bytes : Stdlib.out_channel -> bytes -> unit
-val output : Stdlib.out_channel -> bytes -> int -> int -> unit
-val output_substring : Stdlib.out_channel -> string -> int -> int -> unit
-val output_byte : Stdlib.out_channel -> int -> unit
-val output_binary_int : Stdlib.out_channel -> int -> unit
-val output_value : Stdlib.out_channel -> 'a -> unit
-val seek_out : Stdlib.out_channel -> int -> unit
-val pos_out : Stdlib.out_channel -> int
-val out_channel_length : Stdlib.out_channel -> int
-val close_out : Stdlib.out_channel -> unit
-val close_out_noerr : Stdlib.out_channel -> unit
-val set_binary_mode_out : Stdlib.out_channel -> bool -> unit
-val open_in : string -> Stdlib.in_channel
-val open_in_bin : string -> Stdlib.in_channel
-val open_in_gen : Stdlib.open_flag list -> int -> string -> Stdlib.in_channel
-val input_char : Stdlib.in_channel -> char
-val input_line : Stdlib.in_channel -> string
-val input : Stdlib.in_channel -> bytes -> int -> int -> int
-val really_input : Stdlib.in_channel -> bytes -> int -> int -> unit
-val really_input_string : Stdlib.in_channel -> int -> string
-val input_byte : Stdlib.in_channel -> int
-val input_binary_int : Stdlib.in_channel -> int
-val input_value : Stdlib.in_channel -> 'a
-val seek_in : Stdlib.in_channel -> int -> unit
-val pos_in : Stdlib.in_channel -> int
-val in_channel_length : Stdlib.in_channel -> int
-val close_in : Stdlib.in_channel -> unit
-val close_in_noerr : Stdlib.in_channel -> unit
-val set_binary_mode_in : Stdlib.in_channel -> bool -> unit
-module LargeFile = LargeFile
-type nonrec 'a ref = 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type nonrec ('a, 'b) result = ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) Stdlib.format6 ->
-      ('a, 'b, 'c, 'd, 'g, 'h) Stdlib.format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.12/printexc.mli b/interfaces/4.12/printexc.mli
deleted file mode 100644
index 3f325b1..0000000
--- a/interfaces/4.12/printexc.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-type t = exn = ..
-val to_string : exn -> string
-val to_string_default : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-val use_printers : exn -> string option
-type raw_backtrace
-type raw_backtrace_entry = private int
-val raw_backtrace_entries : raw_backtrace -> raw_backtrace_entry array
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-external get_callstack : int -> raw_backtrace = "caml_get_current_callstack"
-val default_uncaught_exception_handler : exn -> raw_backtrace -> unit
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-val backtrace_slots_of_raw_entry :
-  raw_backtrace_entry -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val name : t -> string option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.12/printf.mli b/interfaces/4.12/printf.mli
deleted file mode 100644
index d66ad22..0000000
--- a/interfaces/4.12/printf.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val ibprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val ikbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.12/queue.mli b/interfaces/4.12/queue.mli
deleted file mode 100644
index cca0d7f..0000000
--- a/interfaces/4.12/queue.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type !'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val take_opt : 'a t -> 'a option
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val peek_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.12/random.mli b/interfaces/4.12/random.mli
deleted file mode 100644
index 38b1dd7..0000000
--- a/interfaces/4.12/random.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.12/result.mli b/interfaces/4.12/result.mli
deleted file mode 100644
index 06f96e6..0000000
--- a/interfaces/4.12/result.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type ('a, 'e) t = ('a, 'e) result =
-  | Ok of 'a 
-  | Error of 'e 
-val ok : 'a -> ('a, 'e) result
-val error : 'e -> ('a, 'e) result
-val value : ('a, 'e) result -> default:'a -> 'a
-val get_ok : ('a, 'e) result -> 'a
-val get_error : ('a, 'e) result -> 'e
-val bind : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
-val join : (('a, 'e) result, 'e) result -> ('a, 'e) result
-val map : ('a -> 'b) -> ('a, 'e) result -> ('b, 'e) result
-val map_error : ('e -> 'f) -> ('a, 'e) result -> ('a, 'f) result
-val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'c
-val iter : ('a -> unit) -> ('a, 'e) result -> unit
-val iter_error : ('e -> unit) -> ('a, 'e) result -> unit
-val is_ok : ('a, 'e) result -> bool
-val is_error : ('a, 'e) result -> bool
-val equal :
-  ok:('a -> 'a -> bool) ->
-    error:('e -> 'e -> bool) -> ('a, 'e) result -> ('a, 'e) result -> bool
-val compare :
-  ok:('a -> 'a -> int) ->
-    error:('e -> 'e -> int) -> ('a, 'e) result -> ('a, 'e) result -> int
-val to_option : ('a, 'e) result -> 'a option
-val to_list : ('a, 'e) result -> 'a list
-val to_seq : ('a, 'e) result -> 'a Seq.t
diff --git a/interfaces/4.12/scanf.mli b/interfaces/4.12/scanf.mli
deleted file mode 100644
index b3bc615..0000000
--- a/interfaces/4.12/scanf.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Stdlib.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
diff --git a/interfaces/4.12/seq.mli b/interfaces/4.12/seq.mli
deleted file mode 100644
index a81e552..0000000
--- a/interfaces/4.12/seq.mli
+++ /dev/null
@@ -1,15 +0,0 @@
-type 'a t = unit -> 'a node
-and 'a node =
-  | Nil 
-  | Cons of 'a * 'a t 
-val empty : 'a t
-val return : 'a -> 'a t
-val cons : 'a -> 'a t -> 'a t
-val append : 'a t -> 'a t -> 'a t
-val map : ('a -> 'b) -> 'a t -> 'b t
-val filter : ('a -> bool) -> 'a t -> 'a t
-val filter_map : ('a -> 'b option) -> 'a t -> 'b t
-val flat_map : ('a -> 'b t) -> 'a t -> 'b t
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val iter : ('a -> unit) -> 'a t -> unit
-val unfold : ('b -> ('a * 'b) option) -> 'b -> 'a t
diff --git a/interfaces/4.12/set.mli b/interfaces/4.12/set.mli
deleted file mode 100644
index eab5176..0000000
--- a/interfaces/4.12/set.mli
+++ /dev/null
@@ -1,96 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val filter_map : (elt -> elt option) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val to_rev_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val filter_map : (elt -> elt option) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val to_rev_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
diff --git a/interfaces/4.12/stack.mli b/interfaces/4.12/stack.mli
deleted file mode 100644
index d1e5a4f..0000000
--- a/interfaces/4.12/stack.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type !'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val pop_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val top_opt : 'a t -> 'a option
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.12/stdLabels.mli b/interfaces/4.12/stdLabels.mli
deleted file mode 100644
index d86b996..0000000
--- a/interfaces/4.12/stdLabels.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-module Array = ArrayLabels
-module Bytes = BytesLabels
-module List = ListLabels
-module String = StringLabels
diff --git a/interfaces/4.12/stdlib.mli b/interfaces/4.12/stdlib.mli
deleted file mode 100644
index 2dda201..0000000
--- a/interfaces/4.12/stdlib.mli
+++ /dev/null
@@ -1,316 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-exception Match_failure of (string * int * int) 
-exception Assert_failure of (string * int * int) 
-exception Invalid_argument of string 
-exception Failure of string 
-exception Not_found 
-exception Out_of_memory 
-exception Stack_overflow 
-exception Sys_error of string 
-exception End_of_file 
-exception Division_by_zero 
-exception Sys_blocked_io 
-exception Undefined_recursive_module of (string * int * int) 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __FUNCTION__ : string = "%loc_FUNCTION"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string_opt : string -> bool option
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-val int_of_string_opt : string -> int option
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-val float_of_string_opt : string -> float option
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int_opt : unit -> int option
-val read_int : unit -> int
-val read_float_opt : unit -> float option
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
-module Arg = Arg
-module Array = Array
-module ArrayLabels = ArrayLabels
-module Atomic = Atomic
-module Bigarray = Bigarray
-module Bool = Bool
-module Buffer = Buffer
-module Bytes = Bytes
-module BytesLabels = BytesLabels
-module Callback = Callback
-module Char = Char
-module Complex = Complex
-module Digest = Digest
-module Either = Either
-module Ephemeron = Ephemeron
-module Filename = Filename
-module Float = Float
-module Format = Format
-module Fun = Fun
-module Gc = Gc
-module Genlex = Genlex
-module Hashtbl = Hashtbl
-module Int = Int
-module Int32 = Int32
-module Int64 = Int64
-module Lazy = Lazy
-module Lexing = Lexing
-module List = List
-module ListLabels = ListLabels
-module Map = Map
-module Marshal = Marshal
-module MoreLabels = MoreLabels
-module Nativeint = Nativeint
-module Obj = Obj
-module Oo = Oo
-module Option = Option
-module Parsing = Parsing
-module Pervasives = Pervasives
-module Printexc = Printexc
-module Printf = Printf
-module Queue = Queue
-module Random = Random
-module Result = Result
-module Scanf = Scanf
-module Seq = Seq
-module Set = Set
-module Stack = Stack
-module StdLabels = StdLabels
-module Stream = Stream
-module String = String
-module StringLabels = StringLabels
-module Sys = Sys
-module Uchar = Uchar
-module Unit = Unit
-module Weak = Weak
diff --git a/interfaces/4.12/stream.mli b/interfaces/4.12/stream.mli
deleted file mode 100644
index 2b489ec..0000000
--- a/interfaces/4.12/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type !'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.12/string.mli b/interfaces/4.12/string.mli
deleted file mode 100644
index 14882a2..0000000
--- a/interfaces/4.12/string.mli
+++ /dev/null
@@ -1,50 +0,0 @@
-type t = string
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-val concat : string -> string list -> string
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val contains : string -> char -> bool
-val sub : string -> int -> int -> string
-val split_on_char : char -> string -> string list
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external create : int -> bytes = "caml_create_string"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-val blit : string -> int -> bytes -> int -> int -> unit
-val copy : string -> string
-val fill : bytes -> int -> int -> char -> unit
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@noalloc ]
diff --git a/interfaces/4.12/stringLabels.mli b/interfaces/4.12/stringLabels.mli
deleted file mode 100644
index bccfdb2..0000000
--- a/interfaces/4.12/stringLabels.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-type t = string
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-val concat : sep:string -> string list -> string
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val contains : string -> char -> bool
-val sub : string -> pos:int -> len:int -> string
-val split_on_char : sep:char -> string -> string list
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val trim : string -> string
-val escaped : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external create : int -> bytes = "caml_create_string"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val copy : string -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
diff --git a/interfaces/4.12/sys.mli b/interfaces/4.12/sys.mli
deleted file mode 100644
index 7f0d9d0..0000000
--- a/interfaces/4.12/sys.mli
+++ /dev/null
@@ -1,91 +0,0 @@
-external argv : string array = "%sys_argv"
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external mkdir : string -> int -> unit = "caml_sys_mkdir"
-external rmdir : string -> unit = "caml_sys_rmdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-val max_floatarray_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
-module Immediate64 :
-sig
-  module type Non_immediate  = sig type t end
-  module type Immediate  = sig type t[@@immediate ] end
-  module Make :
-  functor (Immediate : Immediate) ->
-    functor (Non_immediate : Non_immediate) ->
-      sig
-        type t[@@immediate64 ]
-        type 'a repr =
-          | Immediate: Immediate.t repr 
-          | Non_immediate: Non_immediate.t repr 
-        val repr : t repr
-      end
-end
diff --git a/interfaces/4.12/uchar.mli b/interfaces/4.12/uchar.mli
deleted file mode 100644
index 8a0c6b4..0000000
--- a/interfaces/4.12/uchar.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-type t
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.12/unit.mli b/interfaces/4.12/unit.mli
deleted file mode 100644
index 1efbc15..0000000
--- a/interfaces/4.12/unit.mli
+++ /dev/null
@@ -1,5 +0,0 @@
-type t = unit =
-  | () 
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val to_string : t -> string
diff --git a/interfaces/4.12/weak.mli b/interfaces/4.12/weak.mli
deleted file mode 100644
index 871874d..0000000
--- a/interfaces/4.12/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type !'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.13/arg.mli b/interfaces/4.13/arg.mli
deleted file mode 100644
index 60f0886..0000000
--- a/interfaces/4.13/arg.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Rest_all of (string list -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.13/array.mli b/interfaces/4.13/array.mli
deleted file mode 100644
index cb78707..0000000
--- a/interfaces/4.13/array.mli
+++ /dev/null
@@ -1,57 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_left_map :
-  ('a -> 'b -> ('a * 'c)) -> 'a -> 'b array -> ('a * 'c array)
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val find_opt : ('a -> bool) -> 'a array -> 'a option
-val find_map : ('a -> 'b option) -> 'a array -> 'b option
-val split : ('a * 'b) array -> ('a array * 'b array)
-val combine : 'a array -> 'b array -> ('a * 'b) array
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.13/arrayLabels.mli b/interfaces/4.13/arrayLabels.mli
deleted file mode 100644
index 6276796..0000000
--- a/interfaces/4.13/arrayLabels.mli
+++ /dev/null
@@ -1,59 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_left_map :
-  f:('a -> 'b -> ('a * 'c)) -> init:'a -> 'b array -> ('a * 'c array)
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : f:('a -> bool) -> 'a array -> bool
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-val find_opt : f:('a -> bool) -> 'a array -> 'a option
-val find_map : f:('a -> 'b option) -> 'a array -> 'b option
-val split : ('a * 'b) array -> ('a array * 'b array)
-val combine : 'a array -> 'b array -> ('a * 'b) array
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.13/atomic.mli b/interfaces/4.13/atomic.mli
deleted file mode 100644
index e32696f..0000000
--- a/interfaces/4.13/atomic.mli
+++ /dev/null
@@ -1,9 +0,0 @@
-type !'a t
-val make : 'a -> 'a t
-val get : 'a t -> 'a
-val set : 'a t -> 'a -> unit
-val exchange : 'a t -> 'a -> 'a
-val compare_and_set : 'a t -> 'a -> 'a -> bool
-val fetch_and_add : int t -> int -> int
-val incr : int t -> unit
-val decr : int t -> unit
diff --git a/interfaces/4.13/bool.mli b/interfaces/4.13/bool.mli
deleted file mode 100644
index a9131fb..0000000
--- a/interfaces/4.13/bool.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type t = bool =
-  | false 
-  | true 
-val not : bool -> bool
-external (&&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-val equal : bool -> bool -> bool
-val compare : bool -> bool -> int
-val to_int : bool -> int
-val to_float : bool -> float
-val to_string : bool -> string
diff --git a/interfaces/4.13/buffer.mli b/interfaces/4.13/buffer.mli
deleted file mode 100644
index 939ff6b..0000000
--- a/interfaces/4.13/buffer.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val add_seq : t -> char Seq.t -> unit
-val of_seq : char Seq.t -> t
-val add_uint8 : t -> int -> unit
-val add_int8 : t -> int -> unit
-val add_uint16_ne : t -> int -> unit
-val add_uint16_be : t -> int -> unit
-val add_uint16_le : t -> int -> unit
-val add_int16_ne : t -> int -> unit
-val add_int16_be : t -> int -> unit
-val add_int16_le : t -> int -> unit
-val add_int32_ne : t -> int32 -> unit
-val add_int32_be : t -> int32 -> unit
-val add_int32_le : t -> int32 -> unit
-val add_int64_ne : t -> int64 -> unit
-val add_int64_be : t -> int64 -> unit
-val add_int64_le : t -> int64 -> unit
diff --git a/interfaces/4.13/bytes.mli b/interfaces/4.13/bytes.mli
deleted file mode 100644
index 9b2fb9c..0000000
--- a/interfaces/4.13/bytes.mli
+++ /dev/null
@@ -1,95 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val fold_left : ('a -> char -> 'a) -> 'a -> bytes -> 'a
-val fold_right : (char -> 'a -> 'a) -> bytes -> 'a -> 'a
-val for_all : (char -> bool) -> bytes -> bool
-val exists : (char -> bool) -> bytes -> bool
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val starts_with : prefix:bytes -> bytes -> bool
-val ends_with : suffix:bytes -> bytes -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val split_on_char : char -> bytes -> bytes list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.13/bytesLabels.mli b/interfaces/4.13/bytesLabels.mli
deleted file mode 100644
index 02e03e6..0000000
--- a/interfaces/4.13/bytesLabels.mli
+++ /dev/null
@@ -1,98 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val fold_left : f:('a -> char -> 'a) -> init:'a -> bytes -> 'a
-val fold_right : f:(char -> 'a -> 'a) -> bytes -> init:'a -> 'a
-val for_all : f:(char -> bool) -> bytes -> bool
-val exists : f:(char -> bool) -> bytes -> bool
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val starts_with : prefix:bytes -> bytes -> bool
-val ends_with : suffix:bytes -> bytes -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val split_on_char : sep:char -> bytes -> bytes list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.13/callback.mli b/interfaces/4.13/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.13/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.13/char.mli b/interfaces/4.13/char.mli
deleted file mode 100644
index 57b360f..0000000
--- a/interfaces/4.13/char.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.13/complex.mli b/interfaces/4.13/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.13/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.13/digest.mli b/interfaces/4.13/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.13/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.13/either.mli b/interfaces/4.13/either.mli
deleted file mode 100644
index 14f1099..0000000
--- a/interfaces/4.13/either.mli
+++ /dev/null
@@ -1,22 +0,0 @@
-type ('a, 'b) t =
-  | Left of 'a 
-  | Right of 'b 
-val left : 'a -> ('a, 'b) t
-val right : 'b -> ('a, 'b) t
-val is_left : ('a, 'b) t -> bool
-val is_right : ('a, 'b) t -> bool
-val find_left : ('a, 'b) t -> 'a option
-val find_right : ('a, 'b) t -> 'b option
-val map_left : ('a1 -> 'a2) -> ('a1, 'b) t -> ('a2, 'b) t
-val map_right : ('b1 -> 'b2) -> ('a, 'b1) t -> ('a, 'b2) t
-val map :
-  left:('a1 -> 'a2) -> right:('b1 -> 'b2) -> ('a1, 'b1) t -> ('a2, 'b2) t
-val fold : left:('a -> 'c) -> right:('b -> 'c) -> ('a, 'b) t -> 'c
-val iter : left:('a -> unit) -> right:('b -> unit) -> ('a, 'b) t -> unit
-val for_all : left:('a -> bool) -> right:('b -> bool) -> ('a, 'b) t -> bool
-val equal :
-  left:('a -> 'a -> bool) ->
-    right:('b -> 'b -> bool) -> ('a, 'b) t -> ('a, 'b) t -> bool
-val compare :
-  left:('a -> 'a -> int) ->
-    right:('b -> 'b -> int) -> ('a, 'b) t -> ('a, 'b) t -> int
diff --git a/interfaces/4.13/ephemeron.mli b/interfaces/4.13/ephemeron.mli
deleted file mode 100644
index 8d76cef..0000000
--- a/interfaces/4.13/ephemeron.mli
+++ /dev/null
@@ -1,346 +0,0 @@
-module type S  =
-  sig
-    type key
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type !'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type !'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.13/filename.mli b/interfaces/4.13/filename.mli
deleted file mode 100644
index 4e1b185..0000000
--- a/interfaces/4.13/filename.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_suffix_opt : suffix:string -> string -> string option
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val null : string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
-val quote_command :
-  string ->
-    ?stdin:string ->
-      ?stdout:string -> ?stderr:string -> string list -> string
diff --git a/interfaces/4.13/float.mli b/interfaces/4.13/float.mli
deleted file mode 100644
index 3dd165c..0000000
--- a/interfaces/4.13/float.mli
+++ /dev/null
@@ -1,205 +0,0 @@
-val zero : float
-val one : float
-val minus_one : float
-external neg : float -> float = "%negfloat"
-external add : float -> float -> float = "%addfloat"
-external sub : float -> float -> float = "%subfloat"
-external mul : float -> float -> float = "%mulfloat"
-external div : float -> float -> float = "%divfloat"
-external fma : float -> float -> float -> float = "caml_fma_float" "caml_fma"
-[@@unboxed ][@@noalloc ]
-external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
-[@@noalloc ]
-val succ : float -> float
-val pred : float -> float
-external abs : float -> float = "%absfloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val pi : float
-val max_float : float
-val min_float : float
-val epsilon : float
-val is_finite : float -> bool
-val is_infinite : float -> bool
-val is_nan : float -> bool
-val is_integer : float -> bool
-external of_int : int -> float = "%floatofint"
-external to_int : float -> int = "%intoffloat"
-external of_string : string -> float = "caml_float_of_string"
-val of_string_opt : string -> float option
-val to_string : float -> string
-type fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external cbrt : float -> float = "caml_cbrt_float" "caml_cbrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external exp2 : float -> float = "caml_exp2_float" "caml_exp2"[@@unboxed ]
-[@@noalloc ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external log2 : float -> float = "caml_log2_float" "caml_log2"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external acosh : float -> float = "caml_acosh_float" "caml_acosh"[@@unboxed ]
-[@@noalloc ]
-external asinh : float -> float = "caml_asinh_float" "caml_asinh"[@@unboxed ]
-[@@noalloc ]
-external atanh : float -> float = "caml_atanh_float" "caml_atanh"[@@unboxed ]
-[@@noalloc ]
-external erf : float -> float = "caml_erf_float" "caml_erf"[@@unboxed ]
-[@@noalloc ]
-external erfc : float -> float = "caml_erfc_float" "caml_erfc"[@@unboxed ]
-[@@noalloc ]
-external trunc : float -> float = "caml_trunc_float" "caml_trunc"[@@unboxed ]
-[@@noalloc ]
-external round : float -> float = "caml_round_float" "caml_round"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external next_after :
-  float -> float -> float = "caml_nextafter_float" "caml_nextafter"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external copy_sign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external sign_bit :
-  ((float)[@unboxed ]) -> bool = "caml_signbit_float" "caml_signbit"[@@noalloc
-                                                                    ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-type t = float
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : float -> float -> float
-val min_max : float -> float -> (float * float)
-val min_num : t -> t -> t
-val max_num : t -> t -> t
-val min_max_num : float -> float -> (float * float)
-val hash : t -> int
-module Array :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> (int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> int -> int -> t
-  val copy : t -> t
-  val fill : t -> int -> int -> float -> unit
-  val blit : t -> int -> t -> int -> int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : (float -> unit) -> t -> unit
-  val iteri : (int -> float -> unit) -> t -> unit
-  val map : (float -> float) -> t -> t
-  val mapi : (int -> float -> float) -> t -> t
-  val fold_left : ('a -> float -> 'a) -> 'a -> t -> 'a
-  val fold_right : (float -> 'a -> 'a) -> t -> 'a -> 'a
-  val iter2 : (float -> float -> unit) -> t -> t -> unit
-  val map2 : (float -> float -> float) -> t -> t -> t
-  val for_all : (float -> bool) -> t -> bool
-  val exists : (float -> bool) -> t -> bool
-  val mem : float -> t -> bool
-  val mem_ieee : float -> t -> bool
-  val sort : (float -> float -> int) -> t -> unit
-  val stable_sort : (float -> float -> int) -> t -> unit
-  val fast_sort : (float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : (float -> 'a) -> t -> 'a array
-  val map_from_array : ('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
-module ArrayLabels :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> f:(int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> pos:int -> len:int -> t
-  val copy : t -> t
-  val fill : t -> pos:int -> len:int -> float -> unit
-  val blit : src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : f:(float -> unit) -> t -> unit
-  val iteri : f:(int -> float -> unit) -> t -> unit
-  val map : f:(float -> float) -> t -> t
-  val mapi : f:(int -> float -> float) -> t -> t
-  val fold_left : f:('a -> float -> 'a) -> init:'a -> t -> 'a
-  val fold_right : f:(float -> 'a -> 'a) -> t -> init:'a -> 'a
-  val iter2 : f:(float -> float -> unit) -> t -> t -> unit
-  val map2 : f:(float -> float -> float) -> t -> t -> t
-  val for_all : f:(float -> bool) -> t -> bool
-  val exists : f:(float -> bool) -> t -> bool
-  val mem : float -> set:t -> bool
-  val mem_ieee : float -> set:t -> bool
-  val sort : cmp:(float -> float -> int) -> t -> unit
-  val stable_sort : cmp:(float -> float -> int) -> t -> unit
-  val fast_sort : cmp:(float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : f:(float -> 'a) -> t -> 'a array
-  val map_from_array : f:('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.13/format.mli b/interfaces/4.13/format.mli
deleted file mode 100644
index d225feb..0000000
--- a/interfaces/4.13/format.mli
+++ /dev/null
@@ -1,230 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_bytes : formatter -> bytes -> unit
-val print_bytes : bytes -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_print_custom_break :
-  formatter ->
-    fits:(string * int * string) -> breaks:(string * int * string) -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-type geometry = {
-  max_indent: int ;
-  margin: int }
-val check_geometry : geometry -> bool
-val pp_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val set_geometry : max_indent:int -> margin:int -> unit
-val pp_safe_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val safe_set_geometry : max_indent:int -> margin:int -> unit
-val pp_update_geometry : formatter -> (geometry -> geometry) -> unit
-val update_geometry : (geometry -> geometry) -> unit
-val pp_get_geometry : formatter -> unit -> geometry
-val get_geometry : unit -> geometry
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type stag = ..
-type tag = string
-type stag +=  
-  | String_tag of tag 
-val pp_open_stag : formatter -> stag -> unit
-val open_stag : stag -> unit
-val pp_close_stag : formatter -> unit -> unit
-val close_stag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_stag_functions =
-  {
-  mark_open_stag: stag -> string ;
-  mark_close_stag: stag -> string ;
-  print_open_stag: stag -> unit ;
-  print_close_stag: stag -> unit }
-val pp_set_formatter_stag_functions :
-  formatter -> formatter_stag_functions -> unit
-val set_formatter_stag_functions : formatter_stag_functions -> unit
-val pp_get_formatter_stag_functions :
-  formatter -> unit -> formatter_stag_functions
-val get_formatter_stag_functions : unit -> formatter_stag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_seq :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a Seq.t -> unit
-val pp_print_text : formatter -> string -> unit
-val pp_print_option :
-  ?none:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a option -> unit
-val pp_print_result :
-  ok:(formatter -> 'a -> unit) ->
-    error:(formatter -> 'e -> unit) -> formatter -> ('a, 'e) result -> unit
-val pp_print_either :
-  left:(formatter -> 'a -> unit) ->
-    right:(formatter -> 'b -> unit) -> formatter -> ('a, 'b) Either.t -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val dprintf : ('a, formatter, unit, formatter -> unit) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val kdprintf :
-  ((formatter -> unit) -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_open_tag : formatter -> tag -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
diff --git a/interfaces/4.13/fun.mli b/interfaces/4.13/fun.mli
deleted file mode 100644
index f274db4..0000000
--- a/interfaces/4.13/fun.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-external id : 'a -> 'a = "%identity"
-val const : 'a -> 'b -> 'a
-val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
-val negate : ('a -> bool) -> 'a -> bool
-val protect : finally:(unit -> unit) -> (unit -> 'a) -> 'a
-exception Finally_raised of exn 
diff --git a/interfaces/4.13/gc.mli b/interfaces/4.13/gc.mli
deleted file mode 100644
index 308c562..0000000
--- a/interfaces/4.13/gc.mli
+++ /dev/null
@@ -1,84 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int ;
-  forced_major_collections: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int ;
-  custom_major_ratio: int ;
-  custom_minor_ratio: int ;
-  custom_minor_max_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
-external eventlog_pause : unit -> unit = "caml_eventlog_pause"
-external eventlog_resume : unit -> unit = "caml_eventlog_resume"
-module Memprof :
-sig
-  type allocation_source =
-    | Normal 
-    | Marshal 
-    | Custom 
-  type allocation = private
-    {
-    n_samples: int ;
-    size: int ;
-    source: allocation_source ;
-    callstack: Printexc.raw_backtrace }
-  type ('minor, 'major) tracker =
-    {
-    alloc_minor: allocation -> 'minor option ;
-    alloc_major: allocation -> 'major option ;
-    promote: 'minor -> 'major option ;
-    dealloc_minor: 'minor -> unit ;
-    dealloc_major: 'major -> unit }
-  val null_tracker : ('minor, 'major) tracker
-  val start :
-    sampling_rate:float ->
-      ?callstack_size:int -> ('minor, 'major) tracker -> unit
-  val stop : unit -> unit
-end
diff --git a/interfaces/4.13/genlex.mli b/interfaces/4.13/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.13/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.13/hashtbl.mli b/interfaces/4.13/hashtbl.mli
deleted file mode 100644
index 4bc42d3..0000000
--- a/interfaces/4.13/hashtbl.mli
+++ /dev/null
@@ -1,150 +0,0 @@
-type (!'a, !'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-val rebuild : ?random:bool -> ('a, 'b) t -> ('a, 'b) t
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-val to_seq_values : ('a, 'b) t -> 'b Seq.t
-val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.13/int32.mli b/interfaces/4.13/int32.mli
deleted file mode 100644
index 99049e9..0000000
--- a/interfaces/4.13/int32.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-val unsigned_div : int32 -> int32 -> int32
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val unsigned_rem : int32 -> int32 -> int32
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-val unsigned_to_int : int32 -> int option
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : t -> t -> t
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.13/int64.mli b/interfaces/4.13/int64.mli
deleted file mode 100644
index 1c42c00..0000000
--- a/interfaces/4.13/int64.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-val unsigned_div : int64 -> int64 -> int64
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val unsigned_rem : int64 -> int64 -> int64
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-val unsigned_to_int : int64 -> int option
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : t -> t -> t
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.13/lazy.mli b/interfaces/4.13/lazy.mli
deleted file mode 100644
index 2b11a5b..0000000
--- a/interfaces/4.13/lazy.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = 'a CamlinternalLazy.t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val map : ('a -> 'b) -> 'a t -> 'b t
-val is_val : 'a t -> bool
-val from_val : 'a -> 'a t
-val map_val : ('a -> 'b) -> 'a t -> 'b t
-val from_fun : (unit -> 'a) -> 'a t
-val force_val : 'a t -> 'a
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.13/lexing.mli b/interfaces/4.13/lexing.mli
deleted file mode 100644
index 0e5297c..0000000
--- a/interfaces/4.13/lexing.mli
+++ /dev/null
@@ -1,54 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : ?with_positions:bool -> in_channel -> lexbuf
-val from_string : ?with_positions:bool -> string -> lexbuf
-val from_function : ?with_positions:bool -> (bytes -> int -> int) -> lexbuf
-val set_position : lexbuf -> position -> unit
-val set_filename : lexbuf -> string -> unit
-val with_positions : lexbuf -> bool
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.13/list.mli b/interfaces/4.13/list.mli
deleted file mode 100644
index 66e6463..0000000
--- a/interfaces/4.13/list.mli
+++ /dev/null
@@ -1,67 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val equal : ('a -> 'a -> bool) -> 'a list -> 'a list -> bool
-val compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val filter_map : ('a -> 'b option) -> 'a list -> 'b list
-val concat_map : ('a -> 'b list) -> 'a list -> 'b list
-val fold_left_map :
-  ('a -> 'b -> ('a * 'c)) -> 'a -> 'b list -> ('a * 'c list)
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val find_map : ('a -> 'b option) -> 'a list -> 'b option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val filteri : (int -> 'a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val partition_map :
-  ('a -> ('b, 'c) Either.t) -> 'a list -> ('b list * 'c list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.13/listLabels.mli b/interfaces/4.13/listLabels.mli
deleted file mode 100644
index fd27a76..0000000
--- a/interfaces/4.13/listLabels.mli
+++ /dev/null
@@ -1,69 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val equal : eq:('a -> 'a -> bool) -> 'a list -> 'a list -> bool
-val compare : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> int
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val filter_map : f:('a -> 'b option) -> 'a list -> 'b list
-val concat_map : f:('a -> 'b list) -> 'a list -> 'b list
-val fold_left_map :
-  f:('a -> 'b -> ('a * 'c)) -> init:'a -> 'b list -> ('a * 'c list)
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val find_map : f:('a -> 'b option) -> 'a list -> 'b option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val filteri : f:(int -> 'a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val partition_map :
-  f:('a -> ('b, 'c) Either.t) -> 'a list -> ('b list * 'c list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.13/map.mli b/interfaces/4.13/map.mli
deleted file mode 100644
index 260b500..0000000
--- a/interfaces/4.13/map.mli
+++ /dev/null
@@ -1,94 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +!'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_rev_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +!'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_rev_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
diff --git a/interfaces/4.13/marshal.mli b/interfaces/4.13/marshal.mli
deleted file mode 100644
index 2902fd4..0000000
--- a/interfaces/4.13/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_bytes"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.13/moreLabels.mli b/interfaces/4.13/moreLabels.mli
deleted file mode 100644
index 4ab78fd..0000000
--- a/interfaces/4.13/moreLabels.mli
+++ /dev/null
@@ -1,356 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  val rebuild : ?random:bool -> ('a, 'b) t -> ('a, 'b) t
-  type statistics = Hashtbl.statistics =
-    {
-    num_bindings: int ;
-    num_buckets: int ;
-    max_bucket_length: int ;
-    bucket_histogram: int array }
-  val stats : ('a, 'b) t -> statistics
-  val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-  val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-  val to_seq_values : ('a, 'b) t -> 'b Seq.t
-  val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-  module type HashedType  =
-    sig type t val equal : t -> t -> bool val hash : t -> int end
-  module type S  =
-    sig
-      type key
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      type 'a t = 'a Hashtbl.Make(H).t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module type SeededHashedType  =
-    sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-  module type SeededS  =
-    sig
-      type key
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t = 'a Hashtbl.MakeSeeded(H).t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = sig type t val compare : t -> t -> int end
-  module type S  =
-    sig
-      type key
-      type +!'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val filter_map : f:(key -> 'a -> 'b option) -> 'a t -> 'b t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_rev_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      type 'a t = 'a Map.Make(Ord).t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val filter_map : f:(key -> 'a -> 'b option) -> 'a t -> 'b t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_rev_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = sig type t val compare : t -> t -> int end
-  module type S  =
-    sig
-      type elt
-      type t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val filter_map : f:(elt -> elt option) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val to_rev_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      type t = Set.Make(Ord).t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val filter_map : f:(elt -> elt option) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val to_rev_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-end
diff --git a/interfaces/4.13/nativeint.mli b/interfaces/4.13/nativeint.mli
deleted file mode 100644
index 2fb5e3f..0000000
--- a/interfaces/4.13/nativeint.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-val unsigned_div : nativeint -> nativeint -> nativeint
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val unsigned_rem : nativeint -> nativeint -> nativeint
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-val unsigned_to_int : nativeint -> int option
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : t -> t -> t
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.13/obj.mli b/interfaces/4.13/obj.mli
deleted file mode 100644
index f01cc1a..0000000
--- a/interfaces/4.13/obj.mli
+++ /dev/null
@@ -1,76 +0,0 @@
-type t
-type raw_data = nativeint
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"[@@noalloc ]
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external raw_field : t -> int -> raw_data = "caml_obj_raw_field"
-external set_raw_field :
-  t -> int -> raw_data -> unit = "caml_obj_set_raw_field"
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-external with_tag : int -> t -> t = "caml_obj_with_tag"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-module Closure :
-sig type info = {
-      arity: int ;
-      start_env: int } val info : t -> info end
-module Extension_constructor :
-sig
-  type t = extension_constructor
-  val of_val : 'a -> t
-  val name : t -> string
-  val id : t -> int
-end
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-val marshal : t -> bytes
-val unmarshal : bytes -> int -> (t * int)
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-  val max_ephe_length : int
-end
diff --git a/interfaces/4.13/oo.mli b/interfaces/4.13/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.13/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.13/option.mli b/interfaces/4.13/option.mli
deleted file mode 100644
index 9d309eb..0000000
--- a/interfaces/4.13/option.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type 'a t = 'a option =
-  | None 
-  | Some of 'a 
-val none : 'a option
-val some : 'a -> 'a option
-val value : 'a option -> default:'a -> 'a
-val get : 'a option -> 'a
-val bind : 'a option -> ('a -> 'b option) -> 'b option
-val join : 'a option option -> 'a option
-val map : ('a -> 'b) -> 'a option -> 'b option
-val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
-val iter : ('a -> unit) -> 'a option -> unit
-val is_none : 'a option -> bool
-val is_some : 'a option -> bool
-val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
-val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
-val to_result : none:'e -> 'a option -> ('a, 'e) result
-val to_list : 'a option -> 'a list
-val to_seq : 'a option -> 'a Seq.t
diff --git a/interfaces/4.13/parsing.mli b/interfaces/4.13/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.13/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.13/pervasives.mli b/interfaces/4.13/pervasives.mli
deleted file mode 100644
index fd024d1..0000000
--- a/interfaces/4.13/pervasives.mli
+++ /dev/null
@@ -1,241 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type nonrec fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type nonrec in_channel = in_channel
-type nonrec out_channel = out_channel
-val stdin : Stdlib.in_channel
-val stdout : Stdlib.out_channel
-val stderr : Stdlib.out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type nonrec open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> Stdlib.out_channel
-val open_out_bin : string -> Stdlib.out_channel
-val open_out_gen :
-  Stdlib.open_flag list -> int -> string -> Stdlib.out_channel
-val flush : Stdlib.out_channel -> unit
-val flush_all : unit -> unit
-val output_char : Stdlib.out_channel -> char -> unit
-val output_string : Stdlib.out_channel -> string -> unit
-val output_bytes : Stdlib.out_channel -> bytes -> unit
-val output : Stdlib.out_channel -> bytes -> int -> int -> unit
-val output_substring : Stdlib.out_channel -> string -> int -> int -> unit
-val output_byte : Stdlib.out_channel -> int -> unit
-val output_binary_int : Stdlib.out_channel -> int -> unit
-val output_value : Stdlib.out_channel -> 'a -> unit
-val seek_out : Stdlib.out_channel -> int -> unit
-val pos_out : Stdlib.out_channel -> int
-val out_channel_length : Stdlib.out_channel -> int
-val close_out : Stdlib.out_channel -> unit
-val close_out_noerr : Stdlib.out_channel -> unit
-val set_binary_mode_out : Stdlib.out_channel -> bool -> unit
-val open_in : string -> Stdlib.in_channel
-val open_in_bin : string -> Stdlib.in_channel
-val open_in_gen : Stdlib.open_flag list -> int -> string -> Stdlib.in_channel
-val input_char : Stdlib.in_channel -> char
-val input_line : Stdlib.in_channel -> string
-val input : Stdlib.in_channel -> bytes -> int -> int -> int
-val really_input : Stdlib.in_channel -> bytes -> int -> int -> unit
-val really_input_string : Stdlib.in_channel -> int -> string
-val input_byte : Stdlib.in_channel -> int
-val input_binary_int : Stdlib.in_channel -> int
-val input_value : Stdlib.in_channel -> 'a
-val seek_in : Stdlib.in_channel -> int -> unit
-val pos_in : Stdlib.in_channel -> int
-val in_channel_length : Stdlib.in_channel -> int
-val close_in : Stdlib.in_channel -> unit
-val close_in_noerr : Stdlib.in_channel -> unit
-val set_binary_mode_in : Stdlib.in_channel -> bool -> unit
-module LargeFile = LargeFile
-type nonrec 'a ref = 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type nonrec ('a, 'b) result = ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) Stdlib.format6 ->
-      ('a, 'b, 'c, 'd, 'g, 'h) Stdlib.format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.13/printexc.mli b/interfaces/4.13/printexc.mli
deleted file mode 100644
index 3f325b1..0000000
--- a/interfaces/4.13/printexc.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-type t = exn = ..
-val to_string : exn -> string
-val to_string_default : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-val use_printers : exn -> string option
-type raw_backtrace
-type raw_backtrace_entry = private int
-val raw_backtrace_entries : raw_backtrace -> raw_backtrace_entry array
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-external get_callstack : int -> raw_backtrace = "caml_get_current_callstack"
-val default_uncaught_exception_handler : exn -> raw_backtrace -> unit
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-val backtrace_slots_of_raw_entry :
-  raw_backtrace_entry -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val name : t -> string option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.13/printf.mli b/interfaces/4.13/printf.mli
deleted file mode 100644
index d66ad22..0000000
--- a/interfaces/4.13/printf.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val ibprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val ikbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.13/queue.mli b/interfaces/4.13/queue.mli
deleted file mode 100644
index cca0d7f..0000000
--- a/interfaces/4.13/queue.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type !'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val take_opt : 'a t -> 'a option
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val peek_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.13/random.mli b/interfaces/4.13/random.mli
deleted file mode 100644
index e8e3b7b..0000000
--- a/interfaces/4.13/random.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val full_int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val full_int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.13/result.mli b/interfaces/4.13/result.mli
deleted file mode 100644
index 06f96e6..0000000
--- a/interfaces/4.13/result.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type ('a, 'e) t = ('a, 'e) result =
-  | Ok of 'a 
-  | Error of 'e 
-val ok : 'a -> ('a, 'e) result
-val error : 'e -> ('a, 'e) result
-val value : ('a, 'e) result -> default:'a -> 'a
-val get_ok : ('a, 'e) result -> 'a
-val get_error : ('a, 'e) result -> 'e
-val bind : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
-val join : (('a, 'e) result, 'e) result -> ('a, 'e) result
-val map : ('a -> 'b) -> ('a, 'e) result -> ('b, 'e) result
-val map_error : ('e -> 'f) -> ('a, 'e) result -> ('a, 'f) result
-val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'c
-val iter : ('a -> unit) -> ('a, 'e) result -> unit
-val iter_error : ('e -> unit) -> ('a, 'e) result -> unit
-val is_ok : ('a, 'e) result -> bool
-val is_error : ('a, 'e) result -> bool
-val equal :
-  ok:('a -> 'a -> bool) ->
-    error:('e -> 'e -> bool) -> ('a, 'e) result -> ('a, 'e) result -> bool
-val compare :
-  ok:('a -> 'a -> int) ->
-    error:('e -> 'e -> int) -> ('a, 'e) result -> ('a, 'e) result -> int
-val to_option : ('a, 'e) result -> 'a option
-val to_list : ('a, 'e) result -> 'a list
-val to_seq : ('a, 'e) result -> 'a Seq.t
diff --git a/interfaces/4.13/scanf.mli b/interfaces/4.13/scanf.mli
deleted file mode 100644
index b3bc615..0000000
--- a/interfaces/4.13/scanf.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Stdlib.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
diff --git a/interfaces/4.13/seq.mli b/interfaces/4.13/seq.mli
deleted file mode 100644
index 9a770c1..0000000
--- a/interfaces/4.13/seq.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type 'a t = unit -> 'a node
-and 'a node =
-  | Nil 
-  | Cons of 'a * 'a t 
-val empty : 'a t
-val return : 'a -> 'a t
-val cons : 'a -> 'a t -> 'a t
-val append : 'a t -> 'a t -> 'a t
-val map : ('a -> 'b) -> 'a t -> 'b t
-val filter : ('a -> bool) -> 'a t -> 'a t
-val filter_map : ('a -> 'b option) -> 'a t -> 'b t
-val concat : 'a t t -> 'a t
-val flat_map : ('a -> 'b t) -> 'a t -> 'b t
-val concat_map : ('a -> 'b t) -> 'a t -> 'b t
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val iter : ('a -> unit) -> 'a t -> unit
-val unfold : ('b -> ('a * 'b) option) -> 'b -> 'a t
diff --git a/interfaces/4.13/set.mli b/interfaces/4.13/set.mli
deleted file mode 100644
index eab5176..0000000
--- a/interfaces/4.13/set.mli
+++ /dev/null
@@ -1,96 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val filter_map : (elt -> elt option) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val to_rev_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val filter_map : (elt -> elt option) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val to_rev_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
diff --git a/interfaces/4.13/stack.mli b/interfaces/4.13/stack.mli
deleted file mode 100644
index d1e5a4f..0000000
--- a/interfaces/4.13/stack.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type !'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val pop_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val top_opt : 'a t -> 'a option
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.13/stdLabels.mli b/interfaces/4.13/stdLabels.mli
deleted file mode 100644
index d86b996..0000000
--- a/interfaces/4.13/stdLabels.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-module Array = ArrayLabels
-module Bytes = BytesLabels
-module List = ListLabels
-module String = StringLabels
diff --git a/interfaces/4.13/stdlib.mli b/interfaces/4.13/stdlib.mli
deleted file mode 100644
index 3c7efb9..0000000
--- a/interfaces/4.13/stdlib.mli
+++ /dev/null
@@ -1,322 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-exception Match_failure of (string * int * int) 
-exception Assert_failure of (string * int * int) 
-exception Invalid_argument of string 
-exception Failure of string 
-exception Not_found 
-exception Out_of_memory 
-exception Stack_overflow 
-exception Sys_error of string 
-exception End_of_file 
-exception Division_by_zero 
-exception Sys_blocked_io 
-exception Undefined_recursive_module of (string * int * int) 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __FUNCTION__ : string = "%loc_FUNCTION"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external acosh : float -> float = "caml_acosh_float" "caml_acosh"[@@unboxed ]
-[@@noalloc ]
-external asinh : float -> float = "caml_asinh_float" "caml_asinh"[@@unboxed ]
-[@@noalloc ]
-external atanh : float -> float = "caml_atanh_float" "caml_atanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string_opt : string -> bool option
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-val int_of_string_opt : string -> int option
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-val float_of_string_opt : string -> float option
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int_opt : unit -> int option
-val read_int : unit -> int
-val read_float_opt : unit -> float option
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
-module Arg = Arg
-module Array = Array
-module ArrayLabels = ArrayLabels
-module Atomic = Atomic
-module Bigarray = Bigarray
-module Bool = Bool
-module Buffer = Buffer
-module Bytes = Bytes
-module BytesLabels = BytesLabels
-module Callback = Callback
-module Char = Char
-module Complex = Complex
-module Digest = Digest
-module Either = Either
-module Ephemeron = Ephemeron
-module Filename = Filename
-module Float = Float
-module Format = Format
-module Fun = Fun
-module Gc = Gc
-module Genlex = Genlex
-module Hashtbl = Hashtbl
-module Int = Int
-module Int32 = Int32
-module Int64 = Int64
-module Lazy = Lazy
-module Lexing = Lexing
-module List = List
-module ListLabels = ListLabels
-module Map = Map
-module Marshal = Marshal
-module MoreLabels = MoreLabels
-module Nativeint = Nativeint
-module Obj = Obj
-module Oo = Oo
-module Option = Option
-module Parsing = Parsing
-module Pervasives = Pervasives
-module Printexc = Printexc
-module Printf = Printf
-module Queue = Queue
-module Random = Random
-module Result = Result
-module Scanf = Scanf
-module Seq = Seq
-module Set = Set
-module Stack = Stack
-module StdLabels = StdLabels
-module Stream = Stream
-module String = String
-module StringLabels = StringLabels
-module Sys = Sys
-module Uchar = Uchar
-module Unit = Unit
-module Weak = Weak
diff --git a/interfaces/4.13/stream.mli b/interfaces/4.13/stream.mli
deleted file mode 100644
index 2b489ec..0000000
--- a/interfaces/4.13/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type !'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.13/string.mli b/interfaces/4.13/string.mli
deleted file mode 100644
index e2652e9..0000000
--- a/interfaces/4.13/string.mli
+++ /dev/null
@@ -1,74 +0,0 @@
-type t = string
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val empty : string
-val of_bytes : bytes -> string
-val to_bytes : string -> bytes
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-val concat : string -> string list -> string
-val cat : string -> string -> string
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val starts_with : prefix:string -> string -> bool
-val ends_with : suffix:string -> string -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val contains : string -> char -> bool
-val sub : string -> int -> int -> string
-val split_on_char : char -> string -> string list
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val fold_left : ('a -> char -> 'a) -> 'a -> string -> 'a
-val fold_right : (char -> 'a -> 'a) -> string -> 'a -> 'a
-val for_all : (char -> bool) -> string -> bool
-val exists : (char -> bool) -> string -> bool
-val trim : string -> string
-val escaped : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external create : int -> bytes = "caml_create_string"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-val blit : string -> int -> bytes -> int -> int -> unit
-val copy : string -> string
-val fill : bytes -> int -> int -> char -> unit
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val get_uint8 : string -> int -> int
-val get_int8 : string -> int -> int
-val get_uint16_ne : string -> int -> int
-val get_uint16_be : string -> int -> int
-val get_uint16_le : string -> int -> int
-val get_int16_ne : string -> int -> int
-val get_int16_be : string -> int -> int
-val get_int16_le : string -> int -> int
-val get_int32_ne : string -> int -> int32
-val get_int32_be : string -> int -> int32
-val get_int32_le : string -> int -> int32
-val get_int64_ne : string -> int -> int64
-val get_int64_be : string -> int -> int64
-val get_int64_le : string -> int -> int64
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@noalloc ]
diff --git a/interfaces/4.13/stringLabels.mli b/interfaces/4.13/stringLabels.mli
deleted file mode 100644
index adb3832..0000000
--- a/interfaces/4.13/stringLabels.mli
+++ /dev/null
@@ -1,76 +0,0 @@
-type t = string
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val empty : string
-val of_bytes : bytes -> string
-val to_bytes : string -> bytes
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-val concat : sep:string -> string list -> string
-val cat : string -> string -> string
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val starts_with : prefix:string -> string -> bool
-val ends_with : suffix:string -> string -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val contains : string -> char -> bool
-val sub : string -> pos:int -> len:int -> string
-val split_on_char : sep:char -> string -> string list
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val fold_left : f:('a -> char -> 'a) -> init:'a -> string -> 'a
-val fold_right : f:(char -> 'a -> 'a) -> string -> init:'a -> 'a
-val for_all : f:(char -> bool) -> string -> bool
-val exists : f:(char -> bool) -> string -> bool
-val trim : string -> string
-val escaped : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-external create : int -> bytes = "caml_create_string"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val copy : string -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val get_uint8 : string -> int -> int
-val get_int8 : string -> int -> int
-val get_uint16_ne : string -> int -> int
-val get_uint16_be : string -> int -> int
-val get_uint16_le : string -> int -> int
-val get_int16_ne : string -> int -> int
-val get_int16_be : string -> int -> int
-val get_int16_le : string -> int -> int
-val get_int32_ne : string -> int -> int32
-val get_int32_be : string -> int -> int32
-val get_int32_le : string -> int -> int32
-val get_int64_ne : string -> int -> int64
-val get_int64_be : string -> int -> int64
-val get_int64_le : string -> int -> int64
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
diff --git a/interfaces/4.13/sys.mli b/interfaces/4.13/sys.mli
deleted file mode 100644
index 7f0d9d0..0000000
--- a/interfaces/4.13/sys.mli
+++ /dev/null
@@ -1,91 +0,0 @@
-external argv : string array = "%sys_argv"
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external mkdir : string -> int -> unit = "caml_sys_mkdir"
-external rmdir : string -> unit = "caml_sys_rmdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-val max_floatarray_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
-module Immediate64 :
-sig
-  module type Non_immediate  = sig type t end
-  module type Immediate  = sig type t[@@immediate ] end
-  module Make :
-  functor (Immediate : Immediate) ->
-    functor (Non_immediate : Non_immediate) ->
-      sig
-        type t[@@immediate64 ]
-        type 'a repr =
-          | Immediate: Immediate.t repr 
-          | Non_immediate: Non_immediate.t repr 
-        val repr : t repr
-      end
-end
diff --git a/interfaces/4.13/uchar.mli b/interfaces/4.13/uchar.mli
deleted file mode 100644
index 8a0c6b4..0000000
--- a/interfaces/4.13/uchar.mli
+++ /dev/null
@@ -1,18 +0,0 @@
-type t
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
diff --git a/interfaces/4.13/unit.mli b/interfaces/4.13/unit.mli
deleted file mode 100644
index 1efbc15..0000000
--- a/interfaces/4.13/unit.mli
+++ /dev/null
@@ -1,5 +0,0 @@
-type t = unit =
-  | () 
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val to_string : t -> string
diff --git a/interfaces/4.13/weak.mli b/interfaces/4.13/weak.mli
deleted file mode 100644
index 871874d..0000000
--- a/interfaces/4.13/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type !'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/interfaces/4.14/arg.mli b/interfaces/4.14/arg.mli
deleted file mode 100644
index 60f0886..0000000
--- a/interfaces/4.14/arg.mli
+++ /dev/null
@@ -1,44 +0,0 @@
-type spec =
-  | Unit of (unit -> unit) 
-  | Bool of (bool -> unit) 
-  | Set of bool ref 
-  | Clear of bool ref 
-  | String of (string -> unit) 
-  | Set_string of string ref 
-  | Int of (int -> unit) 
-  | Set_int of int ref 
-  | Float of (float -> unit) 
-  | Set_float of float ref 
-  | Tuple of spec list 
-  | Symbol of string list * (string -> unit) 
-  | Rest of (string -> unit) 
-  | Rest_all of (string list -> unit) 
-  | Expand of (string -> string array) 
-type key = string
-type doc = string
-type usage_msg = string
-type anon_fun = string -> unit
-val parse : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_dynamic :
-  (key * spec * doc) list ref -> anon_fun -> usage_msg -> unit
-val parse_argv :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-val parse_argv_dynamic :
-  ?current:int ref ->
-    string array -> (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_and_expand_argv_dynamic :
-  int ref ->
-    string array ref ->
-      (key * spec * doc) list ref -> anon_fun -> string -> unit
-val parse_expand : (key * spec * doc) list -> anon_fun -> usage_msg -> unit
-exception Help of string 
-exception Bad of string 
-val usage : (key * spec * doc) list -> usage_msg -> unit
-val usage_string : (key * spec * doc) list -> usage_msg -> string
-val align : ?limit:int -> (key * spec * doc) list -> (key * spec * doc) list
-val current : int ref
-val read_arg : string -> string array
-val read_arg0 : string -> string array
-val write_arg : string -> string array -> unit
-val write_arg0 : string -> string array -> unit
diff --git a/interfaces/4.14/array.mli b/interfaces/4.14/array.mli
deleted file mode 100644
index cb78707..0000000
--- a/interfaces/4.14/array.mli
+++ /dev/null
@@ -1,57 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> (int -> 'a) -> 'a array
-val make_matrix : int -> int -> 'a -> 'a array array
-val create_matrix : int -> int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> int -> int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> int -> int -> 'a -> unit
-val blit : 'a array -> int -> 'a array -> int -> int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : ('a -> unit) -> 'a array -> unit
-val iteri : (int -> 'a -> unit) -> 'a array -> unit
-val map : ('a -> 'b) -> 'a array -> 'b array
-val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
-val fold_left_map :
-  ('a -> 'b -> ('a * 'c)) -> 'a -> 'b array -> ('a * 'c array)
-val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a
-val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : ('a -> bool) -> 'a array -> bool
-val exists : ('a -> bool) -> 'a array -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val mem : 'a -> 'a array -> bool
-val memq : 'a -> 'a array -> bool
-val find_opt : ('a -> bool) -> 'a array -> 'a option
-val find_map : ('a -> 'b option) -> 'a array -> 'b option
-val split : ('a * 'b) array -> ('a array * 'b array)
-val combine : 'a array -> 'b array -> ('a * 'b) array
-val sort : ('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.14/arrayLabels.mli b/interfaces/4.14/arrayLabels.mli
deleted file mode 100644
index 6276796..0000000
--- a/interfaces/4.14/arrayLabels.mli
+++ /dev/null
@@ -1,59 +0,0 @@
-type 'a t = 'a array
-external length : 'a array -> int = "%array_length"
-external get : 'a array -> int -> 'a = "%array_safe_get"
-external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
-external make : int -> 'a -> 'a array = "caml_make_vect"
-external create : int -> 'a -> 'a array = "caml_make_vect"
-external create_float : int -> float array = "caml_make_float_vect"
-val make_float : int -> float array
-val init : int -> f:(int -> 'a) -> 'a array
-val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
-val append : 'a array -> 'a array -> 'a array
-val concat : 'a array list -> 'a array
-val sub : 'a array -> pos:int -> len:int -> 'a array
-val copy : 'a array -> 'a array
-val fill : 'a array -> pos:int -> len:int -> 'a -> unit
-val blit :
-  src:'a array ->
-    src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit
-val to_list : 'a array -> 'a list
-val of_list : 'a list -> 'a array
-val iter : f:('a -> unit) -> 'a array -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
-val map : f:('a -> 'b) -> 'a array -> 'b array
-val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
-val fold_left_map :
-  f:('a -> 'b -> ('a * 'c)) -> init:'a -> 'b array -> ('a * 'c array)
-val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'a -> 'a
-val iter2 : f:('a -> 'b -> unit) -> 'a array -> 'b array -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
-val for_all : f:('a -> bool) -> 'a array -> bool
-val exists : f:('a -> bool) -> 'a array -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool
-val mem : 'a -> set:'a array -> bool
-val memq : 'a -> set:'a array -> bool
-val find_opt : f:('a -> bool) -> 'a array -> 'a option
-val find_map : f:('a -> 'b option) -> 'a array -> 'b option
-val split : ('a * 'b) array -> ('a array * 'b array)
-val combine : 'a array -> 'b array -> ('a * 'b) array
-val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
-val to_seq : 'a array -> 'a Seq.t
-val to_seqi : 'a array -> (int * 'a) Seq.t
-val of_seq : 'a Seq.t -> 'a array
-external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
-external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
-module Floatarray :
-sig
-  external create : int -> floatarray = "caml_floatarray_create"
-  external length : floatarray -> int = "%floatarray_length"
-  external get : floatarray -> int -> float = "%floatarray_safe_get"
-  external set : floatarray -> int -> float -> unit = "%floatarray_safe_set"
-  external unsafe_get : floatarray -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set :
-    floatarray -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.14/atomic.mli b/interfaces/4.14/atomic.mli
deleted file mode 100644
index e32696f..0000000
--- a/interfaces/4.14/atomic.mli
+++ /dev/null
@@ -1,9 +0,0 @@
-type !'a t
-val make : 'a -> 'a t
-val get : 'a t -> 'a
-val set : 'a t -> 'a -> unit
-val exchange : 'a t -> 'a -> 'a
-val compare_and_set : 'a t -> 'a -> 'a -> bool
-val fetch_and_add : int t -> int -> int
-val incr : int t -> unit
-val decr : int t -> unit
diff --git a/interfaces/4.14/bool.mli b/interfaces/4.14/bool.mli
deleted file mode 100644
index a9131fb..0000000
--- a/interfaces/4.14/bool.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-type t = bool =
-  | false 
-  | true 
-val not : bool -> bool
-external (&&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-val equal : bool -> bool -> bool
-val compare : bool -> bool -> int
-val to_int : bool -> int
-val to_float : bool -> float
-val to_string : bool -> string
diff --git a/interfaces/4.14/buffer.mli b/interfaces/4.14/buffer.mli
deleted file mode 100644
index 939ff6b..0000000
--- a/interfaces/4.14/buffer.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-type t
-val create : int -> t
-val contents : t -> string
-val to_bytes : t -> bytes
-val sub : t -> int -> int -> string
-val blit : t -> int -> bytes -> int -> int -> unit
-val nth : t -> int -> char
-val length : t -> int
-val clear : t -> unit
-val reset : t -> unit
-val output_buffer : out_channel -> t -> unit
-val truncate : t -> int -> unit
-val add_char : t -> char -> unit
-val add_utf_8_uchar : t -> Uchar.t -> unit
-val add_utf_16le_uchar : t -> Uchar.t -> unit
-val add_utf_16be_uchar : t -> Uchar.t -> unit
-val add_string : t -> string -> unit
-val add_bytes : t -> bytes -> unit
-val add_substring : t -> string -> int -> int -> unit
-val add_subbytes : t -> bytes -> int -> int -> unit
-val add_substitute : t -> (string -> string) -> string -> unit
-val add_buffer : t -> t -> unit
-val add_channel : t -> in_channel -> int -> unit
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val add_seq : t -> char Seq.t -> unit
-val of_seq : char Seq.t -> t
-val add_uint8 : t -> int -> unit
-val add_int8 : t -> int -> unit
-val add_uint16_ne : t -> int -> unit
-val add_uint16_be : t -> int -> unit
-val add_uint16_le : t -> int -> unit
-val add_int16_ne : t -> int -> unit
-val add_int16_be : t -> int -> unit
-val add_int16_le : t -> int -> unit
-val add_int32_ne : t -> int32 -> unit
-val add_int32_be : t -> int32 -> unit
-val add_int32_le : t -> int32 -> unit
-val add_int64_ne : t -> int64 -> unit
-val add_int64_be : t -> int64 -> unit
-val add_int64_le : t -> int64 -> unit
diff --git a/interfaces/4.14/bytes.mli b/interfaces/4.14/bytes.mli
deleted file mode 100644
index 1365bf3..0000000
--- a/interfaces/4.14/bytes.mli
+++ /dev/null
@@ -1,104 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> (int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> int -> int -> bytes
-val sub_string : bytes -> int -> int -> string
-val extend : bytes -> int -> int -> bytes
-val fill : bytes -> int -> int -> char -> unit
-val blit : bytes -> int -> bytes -> int -> int -> unit
-val blit_string : string -> int -> bytes -> int -> int -> unit
-val concat : bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : (char -> unit) -> bytes -> unit
-val iteri : (int -> char -> unit) -> bytes -> unit
-val map : (char -> char) -> bytes -> bytes
-val mapi : (int -> char -> char) -> bytes -> bytes
-val fold_left : ('a -> char -> 'a) -> 'a -> bytes -> 'a
-val fold_right : (char -> 'a -> 'a) -> bytes -> 'a -> 'a
-val for_all : (char -> bool) -> bytes -> bool
-val exists : (char -> bool) -> bytes -> bool
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val starts_with : prefix:bytes -> bytes -> bool
-val ends_with : suffix:bytes -> bytes -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val split_on_char : char -> bytes -> bytes list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_utf_8_uchar : t -> int -> Uchar.utf_decode
-val set_utf_8_uchar : t -> int -> Uchar.t -> int
-val is_valid_utf_8 : t -> bool
-val get_utf_16be_uchar : t -> int -> Uchar.utf_decode
-val set_utf_16be_uchar : t -> int -> Uchar.t -> int
-val is_valid_utf_16be : t -> bool
-val get_utf_16le_uchar : t -> int -> Uchar.utf_decode
-val set_utf_16le_uchar : t -> int -> Uchar.t -> int
-val is_valid_utf_16le : t -> bool
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  bytes -> int -> bytes -> int -> int -> unit = "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.14/bytesLabels.mli b/interfaces/4.14/bytesLabels.mli
deleted file mode 100644
index e288d01..0000000
--- a/interfaces/4.14/bytesLabels.mli
+++ /dev/null
@@ -1,107 +0,0 @@
-external length : bytes -> int = "%bytes_length"
-external get : bytes -> int -> char = "%bytes_safe_get"
-external set : bytes -> int -> char -> unit = "%bytes_safe_set"
-external create : int -> bytes = "caml_create_bytes"
-val make : int -> char -> bytes
-val init : int -> f:(int -> char) -> bytes
-val empty : bytes
-val copy : bytes -> bytes
-val of_string : string -> bytes
-val to_string : bytes -> string
-val sub : bytes -> pos:int -> len:int -> bytes
-val sub_string : bytes -> pos:int -> len:int -> string
-val extend : bytes -> left:int -> right:int -> bytes
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val concat : sep:bytes -> bytes list -> bytes
-val cat : bytes -> bytes -> bytes
-val iter : f:(char -> unit) -> bytes -> unit
-val iteri : f:(int -> char -> unit) -> bytes -> unit
-val map : f:(char -> char) -> bytes -> bytes
-val mapi : f:(int -> char -> char) -> bytes -> bytes
-val fold_left : f:('a -> char -> 'a) -> init:'a -> bytes -> 'a
-val fold_right : f:(char -> 'a -> 'a) -> bytes -> init:'a -> 'a
-val for_all : f:(char -> bool) -> bytes -> bool
-val exists : f:(char -> bool) -> bytes -> bool
-val trim : bytes -> bytes
-val escaped : bytes -> bytes
-val index : bytes -> char -> int
-val index_opt : bytes -> char -> int option
-val rindex : bytes -> char -> int
-val rindex_opt : bytes -> char -> int option
-val index_from : bytes -> int -> char -> int
-val index_from_opt : bytes -> int -> char -> int option
-val rindex_from : bytes -> int -> char -> int
-val rindex_from_opt : bytes -> int -> char -> int option
-val contains : bytes -> char -> bool
-val contains_from : bytes -> int -> char -> bool
-val rcontains_from : bytes -> int -> char -> bool
-val uppercase : bytes -> bytes
-val lowercase : bytes -> bytes
-val capitalize : bytes -> bytes
-val uncapitalize : bytes -> bytes
-val uppercase_ascii : bytes -> bytes
-val lowercase_ascii : bytes -> bytes
-val capitalize_ascii : bytes -> bytes
-val uncapitalize_ascii : bytes -> bytes
-type t = bytes
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val starts_with : prefix:bytes -> bytes -> bool
-val ends_with : suffix:bytes -> bytes -> bool
-val unsafe_to_string : bytes -> string
-val unsafe_of_string : string -> bytes
-val split_on_char : sep:char -> bytes -> bytes list
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_utf_8_uchar : t -> int -> Uchar.utf_decode
-val set_utf_8_uchar : t -> int -> Uchar.t -> int
-val is_valid_utf_8 : t -> bool
-val get_utf_16be_uchar : t -> int -> Uchar.utf_decode
-val set_utf_16be_uchar : t -> int -> Uchar.t -> int
-val is_valid_utf_16be : t -> bool
-val get_utf_16le_uchar : t -> int -> Uchar.utf_decode
-val set_utf_16le_uchar : t -> int -> Uchar.t -> int
-val is_valid_utf_16le : t -> bool
-val get_uint8 : bytes -> int -> int
-val get_int8 : bytes -> int -> int
-val get_uint16_ne : bytes -> int -> int
-val get_uint16_be : bytes -> int -> int
-val get_uint16_le : bytes -> int -> int
-val get_int16_ne : bytes -> int -> int
-val get_int16_be : bytes -> int -> int
-val get_int16_le : bytes -> int -> int
-val get_int32_ne : bytes -> int -> int32
-val get_int32_be : bytes -> int -> int32
-val get_int32_le : bytes -> int -> int32
-val get_int64_ne : bytes -> int -> int64
-val get_int64_be : bytes -> int -> int64
-val get_int64_le : bytes -> int -> int64
-val set_uint8 : bytes -> int -> int -> unit
-val set_int8 : bytes -> int -> int -> unit
-val set_uint16_ne : bytes -> int -> int -> unit
-val set_uint16_be : bytes -> int -> int -> unit
-val set_uint16_le : bytes -> int -> int -> unit
-val set_int16_ne : bytes -> int -> int -> unit
-val set_int16_be : bytes -> int -> int -> unit
-val set_int16_le : bytes -> int -> int -> unit
-val set_int32_ne : bytes -> int -> int32 -> unit
-val set_int32_be : bytes -> int -> int32 -> unit
-val set_int32_le : bytes -> int -> int32 -> unit
-val set_int64_ne : bytes -> int -> int64 -> unit
-val set_int64_be : bytes -> int -> int64 -> unit
-val set_int64_le : bytes -> int -> int64 -> unit
-external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
-external unsafe_blit :
-  src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_bytes"[@@noalloc ]
-external unsafe_blit_string :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_bytes"[@@noalloc ]
diff --git a/interfaces/4.14/callback.mli b/interfaces/4.14/callback.mli
deleted file mode 100644
index d825854..0000000
--- a/interfaces/4.14/callback.mli
+++ /dev/null
@@ -1,2 +0,0 @@
-val register : string -> 'a -> unit
-val register_exception : string -> exn -> unit
diff --git a/interfaces/4.14/char.mli b/interfaces/4.14/char.mli
deleted file mode 100644
index 57b360f..0000000
--- a/interfaces/4.14/char.mli
+++ /dev/null
@@ -1,11 +0,0 @@
-external code : char -> int = "%identity"
-val chr : int -> char
-val escaped : char -> string
-val lowercase : char -> char
-val uppercase : char -> char
-val lowercase_ascii : char -> char
-val uppercase_ascii : char -> char
-type t = char
-val compare : t -> t -> int
-val equal : t -> t -> bool
-external unsafe_chr : int -> char = "%identity"
diff --git a/interfaces/4.14/complex.mli b/interfaces/4.14/complex.mli
deleted file mode 100644
index f3275a5..0000000
--- a/interfaces/4.14/complex.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type t = {
-  re: float ;
-  im: float }
-val zero : t
-val one : t
-val i : t
-val neg : t -> t
-val conj : t -> t
-val add : t -> t -> t
-val sub : t -> t -> t
-val mul : t -> t -> t
-val inv : t -> t
-val div : t -> t -> t
-val sqrt : t -> t
-val norm2 : t -> float
-val norm : t -> float
-val arg : t -> float
-val polar : float -> float -> t
-val exp : t -> t
-val log : t -> t
-val pow : t -> t -> t
diff --git a/interfaces/4.14/digest.mli b/interfaces/4.14/digest.mli
deleted file mode 100644
index 4d7b6a2..0000000
--- a/interfaces/4.14/digest.mli
+++ /dev/null
@@ -1,13 +0,0 @@
-type t = string
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val string : string -> t
-val bytes : bytes -> t
-val substring : string -> int -> int -> t
-val subbytes : bytes -> int -> int -> t
-external channel : in_channel -> int -> t = "caml_md5_chan"
-val file : string -> t
-val output : out_channel -> t -> unit
-val input : in_channel -> t
-val to_hex : t -> string
-val from_hex : string -> t
diff --git a/interfaces/4.14/either.mli b/interfaces/4.14/either.mli
deleted file mode 100644
index 14f1099..0000000
--- a/interfaces/4.14/either.mli
+++ /dev/null
@@ -1,22 +0,0 @@
-type ('a, 'b) t =
-  | Left of 'a 
-  | Right of 'b 
-val left : 'a -> ('a, 'b) t
-val right : 'b -> ('a, 'b) t
-val is_left : ('a, 'b) t -> bool
-val is_right : ('a, 'b) t -> bool
-val find_left : ('a, 'b) t -> 'a option
-val find_right : ('a, 'b) t -> 'b option
-val map_left : ('a1 -> 'a2) -> ('a1, 'b) t -> ('a2, 'b) t
-val map_right : ('b1 -> 'b2) -> ('a, 'b1) t -> ('a, 'b2) t
-val map :
-  left:('a1 -> 'a2) -> right:('b1 -> 'b2) -> ('a1, 'b1) t -> ('a2, 'b2) t
-val fold : left:('a -> 'c) -> right:('b -> 'c) -> ('a, 'b) t -> 'c
-val iter : left:('a -> unit) -> right:('b -> unit) -> ('a, 'b) t -> unit
-val for_all : left:('a -> bool) -> right:('b -> bool) -> ('a, 'b) t -> bool
-val equal :
-  left:('a -> 'a -> bool) ->
-    right:('b -> 'b -> bool) -> ('a, 'b) t -> ('a, 'b) t -> bool
-val compare :
-  left:('a -> 'a -> int) ->
-    right:('b -> 'b -> int) -> ('a, 'b) t -> ('a, 'b) t -> int
diff --git a/interfaces/4.14/ephemeron.mli b/interfaces/4.14/ephemeron.mli
deleted file mode 100644
index cb9b9ba..0000000
--- a/interfaces/4.14/ephemeron.mli
+++ /dev/null
@@ -1,382 +0,0 @@
-module type S  =
-  sig
-    type key
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module type SeededS  =
-  sig
-    type key
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> Hashtbl.statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-    val clean : 'a t -> unit
-    val stats_alive : 'a t -> Hashtbl.statistics
-  end
-module K1 :
-sig
-  type ('k, 'd) t
-  val create : unit -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> 'k option
-  val get_key_copy : ('k, 'd) t -> 'k option
-  val set_key : ('k, 'd) t -> 'k -> unit
-  val unset_key : ('k, 'd) t -> unit
-  val check_key : ('k, 'd) t -> bool
-  val blit_key : ('k, 'a) t -> ('k, 'b) t -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('a, 'd) t -> ('b, 'd) t -> unit
-  val make : 'k -> 'd -> ('k, 'd) t
-  val query : ('k, 'd) t -> 'k -> 'd option
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module Bucket :
-  sig
-    type ('k, 'd) t
-    val make : unit -> ('k, 'd) t
-    val add : ('k, 'd) t -> 'k -> 'd -> unit
-    val remove : ('k, 'd) t -> 'k -> unit
-    val find : ('k, 'd) t -> 'k -> 'd option
-    val length : ('k, 'd) t -> int
-    val clear : ('k, 'd) t -> unit
-  end
-end
-module K2 :
-sig
-  type ('k1, 'k2, 'd) t
-  val create : unit -> ('k1, 'k2, 'd) t
-  val get_key1 : ('k1, 'k2, 'd) t -> 'k1 option
-  val get_key1_copy : ('k1, 'k2, 'd) t -> 'k1 option
-  val set_key1 : ('k1, 'k2, 'd) t -> 'k1 -> unit
-  val unset_key1 : ('k1, 'k2, 'd) t -> unit
-  val check_key1 : ('k1, 'k2, 'd) t -> bool
-  val get_key2 : ('k1, 'k2, 'd) t -> 'k2 option
-  val get_key2_copy : ('k1, 'k2, 'd) t -> 'k2 option
-  val set_key2 : ('k1, 'k2, 'd) t -> 'k2 -> unit
-  val unset_key2 : ('k1, 'k2, 'd) t -> unit
-  val check_key2 : ('k1, 'k2, 'd) t -> bool
-  val blit_key1 : ('k1, 'a, 'b) t -> ('k1, 'c, 'd) t -> unit
-  val blit_key2 : ('a, 'k2, 'b) t -> ('c, 'k2, 'd) t -> unit
-  val blit_key12 : ('k1, 'k2, 'a) t -> ('k1, 'k2, 'b) t -> unit
-  val get_data : ('k1, 'k2, 'd) t -> 'd option
-  val get_data_copy : ('k1, 'k2, 'd) t -> 'd option
-  val set_data : ('k1, 'k2, 'd) t -> 'd -> unit
-  val unset_data : ('k1, 'k2, 'd) t -> unit
-  val check_data : ('k1, 'k2, 'd) t -> bool
-  val blit_data : ('k1, 'k2, 'd) t -> ('k1, 'k2, 'd) t -> unit
-  val make : 'k1 -> 'k2 -> 'd -> ('k1, 'k2, 'd) t
-  val query : ('k1, 'k2, 'd) t -> 'k1 -> 'k2 -> 'd option
-  module Make :
-  functor (H1 : Hashtbl.HashedType) ->
-    functor (H2 : Hashtbl.HashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type !'a t
-        val create : int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module MakeSeeded :
-  functor (H1 : Hashtbl.SeededHashedType) ->
-    functor (H2 : Hashtbl.SeededHashedType) ->
-      sig
-        type key = (H1.t * H2.t)
-        type !'a t
-        val create : ?random:bool -> int -> 'a t
-        val clear : 'a t -> unit
-        val reset : 'a t -> unit
-        val copy : 'a t -> 'a t
-        val add : 'a t -> key -> 'a -> unit
-        val remove : 'a t -> key -> unit
-        val find : 'a t -> key -> 'a
-        val find_opt : 'a t -> key -> 'a option
-        val find_all : 'a t -> key -> 'a list
-        val replace : 'a t -> key -> 'a -> unit
-        val mem : 'a t -> key -> bool
-        val iter : (key -> 'a -> unit) -> 'a t -> unit
-        val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-        val length : 'a t -> int
-        val stats : 'a t -> Hashtbl.statistics
-        val to_seq : 'a t -> (key * 'a) Seq.t
-        val to_seq_keys : 'a t -> key Seq.t
-        val to_seq_values : 'a t -> 'a Seq.t
-        val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-        val of_seq : (key * 'a) Seq.t -> 'a t
-        val clean : 'a t -> unit
-        val stats_alive : 'a t -> Hashtbl.statistics
-      end
-  module Bucket :
-  sig
-    type ('k1, 'k2, 'd) t
-    val make : unit -> ('k1, 'k2, 'd) t
-    val add : ('k1, 'k2, 'd) t -> 'k1 -> 'k2 -> 'd -> unit
-    val remove : ('k1, 'k2, 'd) t -> 'k1 -> 'k2 -> unit
-    val find : ('k1, 'k2, 'd) t -> 'k1 -> 'k2 -> 'd option
-    val length : ('k1, 'k2, 'd) t -> int
-    val clear : ('k1, 'k2, 'd) t -> unit
-  end
-end
-module Kn :
-sig
-  type ('k, 'd) t
-  val create : int -> ('k, 'd) t
-  val get_key : ('k, 'd) t -> int -> 'k option
-  val get_key_copy : ('k, 'd) t -> int -> 'k option
-  val set_key : ('k, 'd) t -> int -> 'k -> unit
-  val unset_key : ('k, 'd) t -> int -> unit
-  val check_key : ('k, 'd) t -> int -> bool
-  val blit_key : ('k, 'a) t -> int -> ('k, 'b) t -> int -> int -> unit
-  val get_data : ('k, 'd) t -> 'd option
-  val get_data_copy : ('k, 'd) t -> 'd option
-  val set_data : ('k, 'd) t -> 'd -> unit
-  val unset_data : ('k, 'd) t -> unit
-  val check_data : ('k, 'd) t -> bool
-  val blit_data : ('k, 'd) t -> ('k, 'd) t -> unit
-  val make : 'k array -> 'd -> ('k, 'd) t
-  val query : ('k, 'd) t -> 'k array -> 'd option
-  module Make :
-  functor (H : Hashtbl.HashedType) ->
-    sig
-      type key = H.t array
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module MakeSeeded :
-  functor (H : Hashtbl.SeededHashedType) ->
-    sig
-      type key = H.t array
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-  module Bucket :
-  sig
-    type ('k, 'd) t
-    val make : unit -> ('k, 'd) t
-    val add : ('k, 'd) t -> 'k array -> 'd -> unit
-    val remove : ('k, 'd) t -> 'k array -> unit
-    val find : ('k, 'd) t -> 'k array -> 'd option
-    val length : ('k, 'd) t -> int
-    val clear : ('k, 'd) t -> unit
-  end
-end
-module GenHashTable :
-sig
-  type equal =
-    | ETrue 
-    | EFalse 
-    | EDead 
-  module MakeSeeded :
-  functor (H :
-    sig
-      type t
-      type 'a container
-      val hash : int -> t -> int
-      val equal : 'a container -> t -> equal
-      val create : t -> 'a -> 'a container
-      val get_key : 'a container -> t option
-      val get_data : 'a container -> 'a option
-      val set_key_data : 'a container -> t -> 'a -> unit
-      val check_key : 'a container -> bool
-    end) ->
-    sig
-      type key = H.t
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key -> 'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key -> 'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : (key -> 'a -> unit) -> 'a t -> unit
-      val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-      val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> Hashtbl.statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-      val clean : 'a t -> unit
-      val stats_alive : 'a t -> Hashtbl.statistics
-    end
-end
diff --git a/interfaces/4.14/filename.mli b/interfaces/4.14/filename.mli
deleted file mode 100644
index 4e1b185..0000000
--- a/interfaces/4.14/filename.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-val current_dir_name : string
-val parent_dir_name : string
-val dir_sep : string
-val concat : string -> string -> string
-val is_relative : string -> bool
-val is_implicit : string -> bool
-val check_suffix : string -> string -> bool
-val chop_suffix : string -> string -> string
-val chop_suffix_opt : suffix:string -> string -> string option
-val extension : string -> string
-val remove_extension : string -> string
-val chop_extension : string -> string
-val basename : string -> string
-val dirname : string -> string
-val null : string
-val temp_file : ?temp_dir:string -> string -> string -> string
-val open_temp_file :
-  ?mode:open_flag list ->
-    ?perms:int ->
-      ?temp_dir:string -> string -> string -> (string * out_channel)
-val get_temp_dir_name : unit -> string
-val set_temp_dir_name : string -> unit
-val temp_dir_name : string
-val quote : string -> string
-val quote_command :
-  string ->
-    ?stdin:string ->
-      ?stdout:string -> ?stderr:string -> string list -> string
diff --git a/interfaces/4.14/float.mli b/interfaces/4.14/float.mli
deleted file mode 100644
index 3dd165c..0000000
--- a/interfaces/4.14/float.mli
+++ /dev/null
@@ -1,205 +0,0 @@
-val zero : float
-val one : float
-val minus_one : float
-external neg : float -> float = "%negfloat"
-external add : float -> float -> float = "%addfloat"
-external sub : float -> float -> float = "%subfloat"
-external mul : float -> float -> float = "%mulfloat"
-external div : float -> float -> float = "%divfloat"
-external fma : float -> float -> float -> float = "caml_fma_float" "caml_fma"
-[@@unboxed ][@@noalloc ]
-external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
-[@@noalloc ]
-val succ : float -> float
-val pred : float -> float
-external abs : float -> float = "%absfloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val pi : float
-val max_float : float
-val min_float : float
-val epsilon : float
-val is_finite : float -> bool
-val is_infinite : float -> bool
-val is_nan : float -> bool
-val is_integer : float -> bool
-external of_int : int -> float = "%floatofint"
-external to_int : float -> int = "%intoffloat"
-external of_string : string -> float = "caml_float_of_string"
-val of_string_opt : string -> float option
-val to_string : float -> string
-type fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external cbrt : float -> float = "caml_cbrt_float" "caml_cbrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external exp2 : float -> float = "caml_exp2_float" "caml_exp2"[@@unboxed ]
-[@@noalloc ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external log2 : float -> float = "caml_log2_float" "caml_log2"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external acosh : float -> float = "caml_acosh_float" "caml_acosh"[@@unboxed ]
-[@@noalloc ]
-external asinh : float -> float = "caml_asinh_float" "caml_asinh"[@@unboxed ]
-[@@noalloc ]
-external atanh : float -> float = "caml_atanh_float" "caml_atanh"[@@unboxed ]
-[@@noalloc ]
-external erf : float -> float = "caml_erf_float" "caml_erf"[@@unboxed ]
-[@@noalloc ]
-external erfc : float -> float = "caml_erfc_float" "caml_erfc"[@@unboxed ]
-[@@noalloc ]
-external trunc : float -> float = "caml_trunc_float" "caml_trunc"[@@unboxed ]
-[@@noalloc ]
-external round : float -> float = "caml_round_float" "caml_round"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external next_after :
-  float -> float -> float = "caml_nextafter_float" "caml_nextafter"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external copy_sign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external sign_bit :
-  ((float)[@unboxed ]) -> bool = "caml_signbit_float" "caml_signbit"[@@noalloc
-                                                                    ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-type t = float
-val compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : float -> float -> float
-val min_max : float -> float -> (float * float)
-val min_num : t -> t -> t
-val max_num : t -> t -> t
-val min_max_num : float -> float -> (float * float)
-val hash : t -> int
-module Array :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> (int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> int -> int -> t
-  val copy : t -> t
-  val fill : t -> int -> int -> float -> unit
-  val blit : t -> int -> t -> int -> int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : (float -> unit) -> t -> unit
-  val iteri : (int -> float -> unit) -> t -> unit
-  val map : (float -> float) -> t -> t
-  val mapi : (int -> float -> float) -> t -> t
-  val fold_left : ('a -> float -> 'a) -> 'a -> t -> 'a
-  val fold_right : (float -> 'a -> 'a) -> t -> 'a -> 'a
-  val iter2 : (float -> float -> unit) -> t -> t -> unit
-  val map2 : (float -> float -> float) -> t -> t -> t
-  val for_all : (float -> bool) -> t -> bool
-  val exists : (float -> bool) -> t -> bool
-  val mem : float -> t -> bool
-  val mem_ieee : float -> t -> bool
-  val sort : (float -> float -> int) -> t -> unit
-  val stable_sort : (float -> float -> int) -> t -> unit
-  val fast_sort : (float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : (float -> 'a) -> t -> 'a array
-  val map_from_array : ('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
-module ArrayLabels :
-sig
-  type t = floatarray
-  val length : t -> int
-  val get : t -> int -> float
-  val set : t -> int -> float -> unit
-  val make : int -> float -> t
-  val create : int -> t
-  val init : int -> f:(int -> float) -> t
-  val append : t -> t -> t
-  val concat : t list -> t
-  val sub : t -> pos:int -> len:int -> t
-  val copy : t -> t
-  val fill : t -> pos:int -> len:int -> float -> unit
-  val blit : src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
-  val to_list : t -> float list
-  val of_list : float list -> t
-  val iter : f:(float -> unit) -> t -> unit
-  val iteri : f:(int -> float -> unit) -> t -> unit
-  val map : f:(float -> float) -> t -> t
-  val mapi : f:(int -> float -> float) -> t -> t
-  val fold_left : f:('a -> float -> 'a) -> init:'a -> t -> 'a
-  val fold_right : f:(float -> 'a -> 'a) -> t -> init:'a -> 'a
-  val iter2 : f:(float -> float -> unit) -> t -> t -> unit
-  val map2 : f:(float -> float -> float) -> t -> t -> t
-  val for_all : f:(float -> bool) -> t -> bool
-  val exists : f:(float -> bool) -> t -> bool
-  val mem : float -> set:t -> bool
-  val mem_ieee : float -> set:t -> bool
-  val sort : cmp:(float -> float -> int) -> t -> unit
-  val stable_sort : cmp:(float -> float -> int) -> t -> unit
-  val fast_sort : cmp:(float -> float -> int) -> t -> unit
-  val to_seq : t -> float Seq.t
-  val to_seqi : t -> (int * float) Seq.t
-  val of_seq : float Seq.t -> t
-  val map_to_array : f:(float -> 'a) -> t -> 'a array
-  val map_from_array : f:('a -> float) -> 'a array -> t
-  external unsafe_get : t -> int -> float = "%floatarray_unsafe_get"
-  external unsafe_set : t -> int -> float -> unit = "%floatarray_unsafe_set"
-end
diff --git a/interfaces/4.14/format.mli b/interfaces/4.14/format.mli
deleted file mode 100644
index d225feb..0000000
--- a/interfaces/4.14/format.mli
+++ /dev/null
@@ -1,230 +0,0 @@
-type formatter
-val pp_open_box : formatter -> int -> unit
-val open_box : int -> unit
-val pp_close_box : formatter -> unit -> unit
-val close_box : unit -> unit
-val pp_open_hbox : formatter -> unit -> unit
-val open_hbox : unit -> unit
-val pp_open_vbox : formatter -> int -> unit
-val open_vbox : int -> unit
-val pp_open_hvbox : formatter -> int -> unit
-val open_hvbox : int -> unit
-val pp_open_hovbox : formatter -> int -> unit
-val open_hovbox : int -> unit
-val pp_print_string : formatter -> string -> unit
-val print_string : string -> unit
-val pp_print_bytes : formatter -> bytes -> unit
-val print_bytes : bytes -> unit
-val pp_print_as : formatter -> int -> string -> unit
-val print_as : int -> string -> unit
-val pp_print_int : formatter -> int -> unit
-val print_int : int -> unit
-val pp_print_float : formatter -> float -> unit
-val print_float : float -> unit
-val pp_print_char : formatter -> char -> unit
-val print_char : char -> unit
-val pp_print_bool : formatter -> bool -> unit
-val print_bool : bool -> unit
-val pp_print_space : formatter -> unit -> unit
-val print_space : unit -> unit
-val pp_print_cut : formatter -> unit -> unit
-val print_cut : unit -> unit
-val pp_print_break : formatter -> int -> int -> unit
-val print_break : int -> int -> unit
-val pp_print_custom_break :
-  formatter ->
-    fits:(string * int * string) -> breaks:(string * int * string) -> unit
-val pp_force_newline : formatter -> unit -> unit
-val force_newline : unit -> unit
-val pp_print_if_newline : formatter -> unit -> unit
-val print_if_newline : unit -> unit
-val pp_print_flush : formatter -> unit -> unit
-val print_flush : unit -> unit
-val pp_print_newline : formatter -> unit -> unit
-val print_newline : unit -> unit
-val pp_set_margin : formatter -> int -> unit
-val set_margin : int -> unit
-val pp_get_margin : formatter -> unit -> int
-val get_margin : unit -> int
-val pp_set_max_indent : formatter -> int -> unit
-val set_max_indent : int -> unit
-val pp_get_max_indent : formatter -> unit -> int
-val get_max_indent : unit -> int
-type geometry = {
-  max_indent: int ;
-  margin: int }
-val check_geometry : geometry -> bool
-val pp_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val set_geometry : max_indent:int -> margin:int -> unit
-val pp_safe_set_geometry : formatter -> max_indent:int -> margin:int -> unit
-val safe_set_geometry : max_indent:int -> margin:int -> unit
-val pp_update_geometry : formatter -> (geometry -> geometry) -> unit
-val update_geometry : (geometry -> geometry) -> unit
-val pp_get_geometry : formatter -> unit -> geometry
-val get_geometry : unit -> geometry
-val pp_set_max_boxes : formatter -> int -> unit
-val set_max_boxes : int -> unit
-val pp_get_max_boxes : formatter -> unit -> int
-val get_max_boxes : unit -> int
-val pp_over_max_boxes : formatter -> unit -> bool
-val over_max_boxes : unit -> bool
-val pp_open_tbox : formatter -> unit -> unit
-val open_tbox : unit -> unit
-val pp_close_tbox : formatter -> unit -> unit
-val close_tbox : unit -> unit
-val pp_set_tab : formatter -> unit -> unit
-val set_tab : unit -> unit
-val pp_print_tab : formatter -> unit -> unit
-val print_tab : unit -> unit
-val pp_print_tbreak : formatter -> int -> int -> unit
-val print_tbreak : int -> int -> unit
-val pp_set_ellipsis_text : formatter -> string -> unit
-val set_ellipsis_text : string -> unit
-val pp_get_ellipsis_text : formatter -> unit -> string
-val get_ellipsis_text : unit -> string
-type stag = ..
-type tag = string
-type stag +=  
-  | String_tag of tag 
-val pp_open_stag : formatter -> stag -> unit
-val open_stag : stag -> unit
-val pp_close_stag : formatter -> unit -> unit
-val close_stag : unit -> unit
-val pp_set_tags : formatter -> bool -> unit
-val set_tags : bool -> unit
-val pp_set_print_tags : formatter -> bool -> unit
-val set_print_tags : bool -> unit
-val pp_set_mark_tags : formatter -> bool -> unit
-val set_mark_tags : bool -> unit
-val pp_get_print_tags : formatter -> unit -> bool
-val get_print_tags : unit -> bool
-val pp_get_mark_tags : formatter -> unit -> bool
-val get_mark_tags : unit -> bool
-val pp_set_formatter_out_channel : formatter -> out_channel -> unit
-val set_formatter_out_channel : out_channel -> unit
-val pp_set_formatter_output_functions :
-  formatter -> (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val set_formatter_output_functions :
-  (string -> int -> int -> unit) -> (unit -> unit) -> unit
-val pp_get_formatter_output_functions :
-  formatter -> unit -> ((string -> int -> int -> unit) * (unit -> unit))
-val get_formatter_output_functions :
-  unit -> ((string -> int -> int -> unit) * (unit -> unit))
-type formatter_out_functions =
-  {
-  out_string: string -> int -> int -> unit ;
-  out_flush: unit -> unit ;
-  out_newline: unit -> unit ;
-  out_spaces: int -> unit ;
-  out_indent: int -> unit }
-val pp_set_formatter_out_functions :
-  formatter -> formatter_out_functions -> unit
-val set_formatter_out_functions : formatter_out_functions -> unit
-val pp_get_formatter_out_functions :
-  formatter -> unit -> formatter_out_functions
-val get_formatter_out_functions : unit -> formatter_out_functions
-type formatter_stag_functions =
-  {
-  mark_open_stag: stag -> string ;
-  mark_close_stag: stag -> string ;
-  print_open_stag: stag -> unit ;
-  print_close_stag: stag -> unit }
-val pp_set_formatter_stag_functions :
-  formatter -> formatter_stag_functions -> unit
-val set_formatter_stag_functions : formatter_stag_functions -> unit
-val pp_get_formatter_stag_functions :
-  formatter -> unit -> formatter_stag_functions
-val get_formatter_stag_functions : unit -> formatter_stag_functions
-val formatter_of_out_channel : out_channel -> formatter
-val std_formatter : formatter
-val err_formatter : formatter
-val formatter_of_buffer : Buffer.t -> formatter
-val stdbuf : Buffer.t
-val str_formatter : formatter
-val flush_str_formatter : unit -> string
-val make_formatter :
-  (string -> int -> int -> unit) -> (unit -> unit) -> formatter
-val formatter_of_out_functions : formatter_out_functions -> formatter
-type symbolic_output_item =
-  | Output_flush 
-  | Output_newline 
-  | Output_string of string 
-  | Output_spaces of int 
-  | Output_indent of int 
-type symbolic_output_buffer
-val make_symbolic_output_buffer : unit -> symbolic_output_buffer
-val clear_symbolic_output_buffer : symbolic_output_buffer -> unit
-val get_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val flush_symbolic_output_buffer :
-  symbolic_output_buffer -> symbolic_output_item list
-val add_symbolic_output_item :
-  symbolic_output_buffer -> symbolic_output_item -> unit
-val formatter_of_symbolic_output_buffer : symbolic_output_buffer -> formatter
-val pp_print_list :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a list -> unit
-val pp_print_seq :
-  ?pp_sep:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a Seq.t -> unit
-val pp_print_text : formatter -> string -> unit
-val pp_print_option :
-  ?none:(formatter -> unit -> unit) ->
-    (formatter -> 'a -> unit) -> formatter -> 'a option -> unit
-val pp_print_result :
-  ok:(formatter -> 'a -> unit) ->
-    error:(formatter -> 'e -> unit) -> formatter -> ('a, 'e) result -> unit
-val pp_print_either :
-  left:(formatter -> 'a -> unit) ->
-    right:(formatter -> 'b -> unit) -> formatter -> ('a, 'b) Either.t -> unit
-val fprintf : formatter -> ('a, formatter, unit) format -> 'a
-val printf : ('a, formatter, unit) format -> 'a
-val eprintf : ('a, formatter, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val asprintf : ('a, formatter, unit, string) format4 -> 'a
-val dprintf : ('a, formatter, unit, formatter -> unit) format4 -> 'a
-val ifprintf : formatter -> ('a, formatter, unit) format -> 'a
-val kfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val kdprintf :
-  ((formatter -> unit) -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val ikfprintf :
-  (formatter -> 'a) -> formatter -> ('b, formatter, unit, 'a) format4 -> 'b
-val ksprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val kasprintf : (string -> 'a) -> ('b, formatter, unit, 'a) format4 -> 'b
-val bprintf : Buffer.t -> ('a, formatter, unit) format -> 'a
-val kprintf : (string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b
-val set_all_formatter_output_functions :
-  out:(string -> int -> int -> unit) ->
-    flush:(unit -> unit) ->
-      newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val get_all_formatter_output_functions :
-  unit ->
-    ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-      (int -> unit))
-val pp_set_all_formatter_output_functions :
-  formatter ->
-    out:(string -> int -> int -> unit) ->
-      flush:(unit -> unit) ->
-        newline:(unit -> unit) -> spaces:(int -> unit) -> unit
-val pp_get_all_formatter_output_functions :
-  formatter ->
-    unit ->
-      ((string -> int -> int -> unit) * (unit -> unit) * (unit -> unit) *
-        (int -> unit))
-val pp_open_tag : formatter -> tag -> unit
-val open_tag : tag -> unit
-val pp_close_tag : formatter -> unit -> unit
-val close_tag : unit -> unit
-type formatter_tag_functions =
-  {
-  mark_open_tag: tag -> string ;
-  mark_close_tag: tag -> string ;
-  print_open_tag: tag -> unit ;
-  print_close_tag: tag -> unit }
-val pp_set_formatter_tag_functions :
-  formatter -> formatter_tag_functions -> unit
-val set_formatter_tag_functions : formatter_tag_functions -> unit
-val pp_get_formatter_tag_functions :
-  formatter -> unit -> formatter_tag_functions
-val get_formatter_tag_functions : unit -> formatter_tag_functions
diff --git a/interfaces/4.14/fun.mli b/interfaces/4.14/fun.mli
deleted file mode 100644
index f274db4..0000000
--- a/interfaces/4.14/fun.mli
+++ /dev/null
@@ -1,6 +0,0 @@
-external id : 'a -> 'a = "%identity"
-val const : 'a -> 'b -> 'a
-val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
-val negate : ('a -> bool) -> 'a -> bool
-val protect : finally:(unit -> unit) -> (unit -> 'a) -> 'a
-exception Finally_raised of exn 
diff --git a/interfaces/4.14/gc.mli b/interfaces/4.14/gc.mli
deleted file mode 100644
index 308c562..0000000
--- a/interfaces/4.14/gc.mli
+++ /dev/null
@@ -1,84 +0,0 @@
-type stat =
-  {
-  minor_words: float ;
-  promoted_words: float ;
-  major_words: float ;
-  minor_collections: int ;
-  major_collections: int ;
-  heap_words: int ;
-  heap_chunks: int ;
-  live_words: int ;
-  live_blocks: int ;
-  free_words: int ;
-  free_blocks: int ;
-  largest_free: int ;
-  fragments: int ;
-  compactions: int ;
-  top_heap_words: int ;
-  stack_size: int ;
-  forced_major_collections: int }
-type control =
-  {
-  mutable minor_heap_size: int ;
-  mutable major_heap_increment: int ;
-  mutable space_overhead: int ;
-  mutable verbose: int ;
-  mutable max_overhead: int ;
-  mutable stack_limit: int ;
-  mutable allocation_policy: int ;
-  window_size: int ;
-  custom_major_ratio: int ;
-  custom_minor_ratio: int ;
-  custom_minor_max_size: int }
-external stat : unit -> stat = "caml_gc_stat"
-external quick_stat : unit -> stat = "caml_gc_quick_stat"
-external counters : unit -> (float * float * float) = "caml_gc_counters"
-external minor_words :
-  unit -> ((float)[@unboxed ]) = "caml_gc_minor_words"
-    "caml_gc_minor_words_unboxed"
-external get : unit -> control = "caml_gc_get"
-external set : control -> unit = "caml_gc_set"
-external minor : unit -> unit = "caml_gc_minor"
-external major_slice : int -> int = "caml_gc_major_slice"
-external major : unit -> unit = "caml_gc_major"
-external full_major : unit -> unit = "caml_gc_full_major"
-external compact : unit -> unit = "caml_gc_compaction"
-val print_stat : out_channel -> unit
-val allocated_bytes : unit -> float
-external get_minor_free : unit -> int = "caml_get_minor_free"
-external get_bucket : int -> int = "caml_get_major_bucket"[@@noalloc ]
-external get_credit : unit -> int = "caml_get_major_credit"[@@noalloc ]
-external huge_fallback_count : unit -> int = "caml_gc_huge_fallback_count"
-val finalise : ('a -> unit) -> 'a -> unit
-val finalise_last : (unit -> unit) -> 'a -> unit
-val finalise_release : unit -> unit
-type alarm
-val create_alarm : (unit -> unit) -> alarm
-val delete_alarm : alarm -> unit
-external eventlog_pause : unit -> unit = "caml_eventlog_pause"
-external eventlog_resume : unit -> unit = "caml_eventlog_resume"
-module Memprof :
-sig
-  type allocation_source =
-    | Normal 
-    | Marshal 
-    | Custom 
-  type allocation = private
-    {
-    n_samples: int ;
-    size: int ;
-    source: allocation_source ;
-    callstack: Printexc.raw_backtrace }
-  type ('minor, 'major) tracker =
-    {
-    alloc_minor: allocation -> 'minor option ;
-    alloc_major: allocation -> 'major option ;
-    promote: 'minor -> 'major option ;
-    dealloc_minor: 'minor -> unit ;
-    dealloc_major: 'major -> unit }
-  val null_tracker : ('minor, 'major) tracker
-  val start :
-    sampling_rate:float ->
-      ?callstack_size:int -> ('minor, 'major) tracker -> unit
-  val stop : unit -> unit
-end
diff --git a/interfaces/4.14/genlex.mli b/interfaces/4.14/genlex.mli
deleted file mode 100644
index 1c89c29..0000000
--- a/interfaces/4.14/genlex.mli
+++ /dev/null
@@ -1,8 +0,0 @@
-type token =
-  | Kwd of string 
-  | Ident of string 
-  | Int of int 
-  | Float of float 
-  | String of string 
-  | Char of char 
-val make_lexer : string list -> char Stream.t -> token Stream.t
diff --git a/interfaces/4.14/hashtbl.mli b/interfaces/4.14/hashtbl.mli
deleted file mode 100644
index 4bc42d3..0000000
--- a/interfaces/4.14/hashtbl.mli
+++ /dev/null
@@ -1,150 +0,0 @@
-type (!'a, !'b) t
-val create : ?random:bool -> int -> ('a, 'b) t
-val clear : ('a, 'b) t -> unit
-val reset : ('a, 'b) t -> unit
-val copy : ('a, 'b) t -> ('a, 'b) t
-val add : ('a, 'b) t -> 'a -> 'b -> unit
-val find : ('a, 'b) t -> 'a -> 'b
-val find_opt : ('a, 'b) t -> 'a -> 'b option
-val find_all : ('a, 'b) t -> 'a -> 'b list
-val mem : ('a, 'b) t -> 'a -> bool
-val remove : ('a, 'b) t -> 'a -> unit
-val replace : ('a, 'b) t -> 'a -> 'b -> unit
-val iter : ('a -> 'b -> unit) -> ('a, 'b) t -> unit
-val filter_map_inplace : ('a -> 'b -> 'b option) -> ('a, 'b) t -> unit
-val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) t -> 'c -> 'c
-val length : ('a, 'b) t -> int
-val randomize : unit -> unit
-val is_randomized : unit -> bool
-val rebuild : ?random:bool -> ('a, 'b) t -> ('a, 'b) t
-type statistics =
-  {
-  num_bindings: int ;
-  num_buckets: int ;
-  max_bucket_length: int ;
-  bucket_histogram: int array }
-val stats : ('a, 'b) t -> statistics
-val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-val to_seq_values : ('a, 'b) t -> 'b Seq.t
-val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-module type HashedType  =
-  sig type t val equal : t -> t -> bool val hash : t -> int end
-module type S  =
-  sig
-    type key
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (H : HashedType) ->
-  sig
-    type key = H.t
-    type !'a t
-    val create : int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module type SeededHashedType  =
-  sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-module type SeededS  =
-  sig
-    type key
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module MakeSeeded :
-functor (H : SeededHashedType) ->
-  sig
-    type key = H.t
-    type !'a t
-    val create : ?random:bool -> int -> 'a t
-    val clear : 'a t -> unit
-    val reset : 'a t -> unit
-    val copy : 'a t -> 'a t
-    val add : 'a t -> key -> 'a -> unit
-    val remove : 'a t -> key -> unit
-    val find : 'a t -> key -> 'a
-    val find_opt : 'a t -> key -> 'a option
-    val find_all : 'a t -> key -> 'a list
-    val replace : 'a t -> key -> 'a -> unit
-    val mem : 'a t -> key -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val filter_map_inplace : (key -> 'a -> 'a option) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val length : 'a t -> int
-    val stats : 'a t -> statistics
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_keys : 'a t -> key Seq.t
-    val to_seq_values : 'a t -> 'a Seq.t
-    val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-val hash : 'a -> int
-val seeded_hash : int -> 'a -> int
-val hash_param : int -> int -> 'a -> int
-val seeded_hash_param : int -> int -> int -> 'a -> int
diff --git a/interfaces/4.14/in_channel.mli b/interfaces/4.14/in_channel.mli
deleted file mode 100644
index 83bd1e6..0000000
--- a/interfaces/4.14/in_channel.mli
+++ /dev/null
@@ -1,31 +0,0 @@
-type t = in_channel
-type open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val stdin : t
-val open_bin : string -> t
-val open_text : string -> t
-val open_gen : open_flag list -> int -> string -> t
-val with_open_bin : string -> (t -> 'a) -> 'a
-val with_open_text : string -> (t -> 'a) -> 'a
-val with_open_gen : open_flag list -> int -> string -> (t -> 'a) -> 'a
-val seek : t -> int64 -> unit
-val pos : t -> int64
-val length : t -> int64
-val close : t -> unit
-val close_noerr : t -> unit
-val input_char : t -> char option
-val input_byte : t -> int option
-val input_line : t -> string option
-val input : t -> bytes -> int -> int -> int
-val really_input : t -> bytes -> int -> int -> unit option
-val really_input_string : t -> int -> string option
-val input_all : t -> string
-val set_binary_mode : t -> bool -> unit
diff --git a/interfaces/4.14/int32.mli b/interfaces/4.14/int32.mli
deleted file mode 100644
index 99049e9..0000000
--- a/interfaces/4.14/int32.mli
+++ /dev/null
@@ -1,48 +0,0 @@
-val zero : int32
-val one : int32
-val minus_one : int32
-external neg : int32 -> int32 = "%int32_neg"
-external add : int32 -> int32 -> int32 = "%int32_add"
-external sub : int32 -> int32 -> int32 = "%int32_sub"
-external mul : int32 -> int32 -> int32 = "%int32_mul"
-external div : int32 -> int32 -> int32 = "%int32_div"
-val unsigned_div : int32 -> int32 -> int32
-external rem : int32 -> int32 -> int32 = "%int32_mod"
-val unsigned_rem : int32 -> int32 -> int32
-val succ : int32 -> int32
-val pred : int32 -> int32
-val abs : int32 -> int32
-val max_int : int32
-val min_int : int32
-external logand : int32 -> int32 -> int32 = "%int32_and"
-external logor : int32 -> int32 -> int32 = "%int32_or"
-external logxor : int32 -> int32 -> int32 = "%int32_xor"
-val lognot : int32 -> int32
-external shift_left : int32 -> int -> int32 = "%int32_lsl"
-external shift_right : int32 -> int -> int32 = "%int32_asr"
-external shift_right_logical : int32 -> int -> int32 = "%int32_lsr"
-external of_int : int -> int32 = "%int32_of_int"
-external to_int : int32 -> int = "%int32_to_int"
-val unsigned_to_int : int32 -> int option
-external of_float :
-  float -> int32 = "caml_int32_of_float" "caml_int32_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int32 -> float = "caml_int32_to_float" "caml_int32_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_string : string -> int32 = "caml_int32_of_string"
-val of_string_opt : string -> int32 option
-val to_string : int32 -> string
-external bits_of_float :
-  float -> int32 = "caml_int32_bits_of_float"
-    "caml_int32_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int32 -> float = "caml_int32_float_of_bits"
-    "caml_int32_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int32
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : t -> t -> t
-external format : string -> int32 -> string = "caml_int32_format"
diff --git a/interfaces/4.14/int64.mli b/interfaces/4.14/int64.mli
deleted file mode 100644
index 1c42c00..0000000
--- a/interfaces/4.14/int64.mli
+++ /dev/null
@@ -1,52 +0,0 @@
-val zero : int64
-val one : int64
-val minus_one : int64
-external neg : int64 -> int64 = "%int64_neg"
-external add : int64 -> int64 -> int64 = "%int64_add"
-external sub : int64 -> int64 -> int64 = "%int64_sub"
-external mul : int64 -> int64 -> int64 = "%int64_mul"
-external div : int64 -> int64 -> int64 = "%int64_div"
-val unsigned_div : int64 -> int64 -> int64
-external rem : int64 -> int64 -> int64 = "%int64_mod"
-val unsigned_rem : int64 -> int64 -> int64
-val succ : int64 -> int64
-val pred : int64 -> int64
-val abs : int64 -> int64
-val max_int : int64
-val min_int : int64
-external logand : int64 -> int64 -> int64 = "%int64_and"
-external logor : int64 -> int64 -> int64 = "%int64_or"
-external logxor : int64 -> int64 -> int64 = "%int64_xor"
-val lognot : int64 -> int64
-external shift_left : int64 -> int -> int64 = "%int64_lsl"
-external shift_right : int64 -> int -> int64 = "%int64_asr"
-external shift_right_logical : int64 -> int -> int64 = "%int64_lsr"
-external of_int : int -> int64 = "%int64_of_int"
-external to_int : int64 -> int = "%int64_to_int"
-val unsigned_to_int : int64 -> int option
-external of_float :
-  float -> int64 = "caml_int64_of_float" "caml_int64_of_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external to_float :
-  int64 -> float = "caml_int64_to_float" "caml_int64_to_float_unboxed"
-[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> int64 = "%int64_of_int32"
-external to_int32 : int64 -> int32 = "%int64_to_int32"
-external of_nativeint : nativeint -> int64 = "%int64_of_nativeint"
-external to_nativeint : int64 -> nativeint = "%int64_to_nativeint"
-external of_string : string -> int64 = "caml_int64_of_string"
-val of_string_opt : string -> int64 option
-val to_string : int64 -> string
-external bits_of_float :
-  float -> int64 = "caml_int64_bits_of_float"
-    "caml_int64_bits_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external float_of_bits :
-  int64 -> float = "caml_int64_float_of_bits"
-    "caml_int64_float_of_bits_unboxed"[@@unboxed ][@@noalloc ]
-type t = int64
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : t -> t -> t
-external format : string -> int64 -> string = "caml_int64_format"
diff --git a/interfaces/4.14/lazy.mli b/interfaces/4.14/lazy.mli
deleted file mode 100644
index 2b11a5b..0000000
--- a/interfaces/4.14/lazy.mli
+++ /dev/null
@@ -1,12 +0,0 @@
-type 'a t = 'a CamlinternalLazy.t
-exception Undefined 
-external force : 'a t -> 'a = "%lazy_force"
-val map : ('a -> 'b) -> 'a t -> 'b t
-val is_val : 'a t -> bool
-val from_val : 'a -> 'a t
-val map_val : ('a -> 'b) -> 'a t -> 'b t
-val from_fun : (unit -> 'a) -> 'a t
-val force_val : 'a t -> 'a
-val lazy_from_fun : (unit -> 'a) -> 'a t
-val lazy_from_val : 'a -> 'a t
-val lazy_is_val : 'a t -> bool
diff --git a/interfaces/4.14/lexing.mli b/interfaces/4.14/lexing.mli
deleted file mode 100644
index 0e5297c..0000000
--- a/interfaces/4.14/lexing.mli
+++ /dev/null
@@ -1,54 +0,0 @@
-type position =
-  {
-  pos_fname: string ;
-  pos_lnum: int ;
-  pos_bol: int ;
-  pos_cnum: int }
-val dummy_pos : position
-type lexbuf =
-  {
-  refill_buff: lexbuf -> unit ;
-  mutable lex_buffer: bytes ;
-  mutable lex_buffer_len: int ;
-  mutable lex_abs_pos: int ;
-  mutable lex_start_pos: int ;
-  mutable lex_curr_pos: int ;
-  mutable lex_last_pos: int ;
-  mutable lex_last_action: int ;
-  mutable lex_eof_reached: bool ;
-  mutable lex_mem: int array ;
-  mutable lex_start_p: position ;
-  mutable lex_curr_p: position }
-val from_channel : ?with_positions:bool -> in_channel -> lexbuf
-val from_string : ?with_positions:bool -> string -> lexbuf
-val from_function : ?with_positions:bool -> (bytes -> int -> int) -> lexbuf
-val set_position : lexbuf -> position -> unit
-val set_filename : lexbuf -> string -> unit
-val with_positions : lexbuf -> bool
-val lexeme : lexbuf -> string
-val lexeme_char : lexbuf -> int -> char
-val lexeme_start : lexbuf -> int
-val lexeme_end : lexbuf -> int
-val lexeme_start_p : lexbuf -> position
-val lexeme_end_p : lexbuf -> position
-val new_line : lexbuf -> unit
-val flush_input : lexbuf -> unit
-val sub_lexeme : lexbuf -> int -> int -> string
-val sub_lexeme_opt : lexbuf -> int -> int -> string option
-val sub_lexeme_char : lexbuf -> int -> char
-val sub_lexeme_char_opt : lexbuf -> int -> char option
-type lex_tables =
-  {
-  lex_base: string ;
-  lex_backtrk: string ;
-  lex_default: string ;
-  lex_trans: string ;
-  lex_check: string ;
-  lex_base_code: string ;
-  lex_backtrk_code: string ;
-  lex_default_code: string ;
-  lex_trans_code: string ;
-  lex_check_code: string ;
-  lex_code: string }
-val engine : lex_tables -> int -> lexbuf -> int
-val new_engine : lex_tables -> int -> lexbuf -> int
diff --git a/interfaces/4.14/list.mli b/interfaces/4.14/list.mli
deleted file mode 100644
index 66e6463..0000000
--- a/interfaces/4.14/list.mli
+++ /dev/null
@@ -1,67 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : int -> (int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val equal : ('a -> 'a -> bool) -> 'a list -> 'a list -> bool
-val compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int
-val iter : ('a -> unit) -> 'a list -> unit
-val iteri : (int -> 'a -> unit) -> 'a list -> unit
-val map : ('a -> 'b) -> 'a list -> 'b list
-val mapi : (int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : ('a -> 'b) -> 'a list -> 'b list
-val filter_map : ('a -> 'b option) -> 'a list -> 'b list
-val concat_map : ('a -> 'b list) -> 'a list -> 'b list
-val fold_left_map :
-  ('a -> 'b -> ('a * 'c)) -> 'a -> 'b list -> ('a * 'c list)
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
-val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
-val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b list -> 'c list -> 'a
-val fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
-val for_all : ('a -> bool) -> 'a list -> bool
-val exists : ('a -> bool) -> 'a list -> bool
-val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> 'a list -> bool
-val memq : 'a -> 'a list -> bool
-val find : ('a -> bool) -> 'a list -> 'a
-val find_opt : ('a -> bool) -> 'a list -> 'a option
-val find_map : ('a -> 'b option) -> 'a list -> 'b option
-val filter : ('a -> bool) -> 'a list -> 'a list
-val find_all : ('a -> bool) -> 'a list -> 'a list
-val filteri : (int -> 'a -> bool) -> 'a list -> 'a list
-val partition : ('a -> bool) -> 'a list -> ('a list * 'a list)
-val partition_map :
-  ('a -> ('b, 'c) Either.t) -> 'a list -> ('b list * 'c list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> ('a * 'b) list -> bool
-val mem_assq : 'a -> ('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : ('a -> 'a -> int) -> 'a list -> 'a list
-val merge : ('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.14/listLabels.mli b/interfaces/4.14/listLabels.mli
deleted file mode 100644
index fd27a76..0000000
--- a/interfaces/4.14/listLabels.mli
+++ /dev/null
@@ -1,69 +0,0 @@
-type 'a t = 'a list =
-  | [] 
-  | (::) of 'a * 'a list 
-val length : 'a list -> int
-val compare_lengths : 'a list -> 'b list -> int
-val compare_length_with : 'a list -> len:int -> int
-val cons : 'a -> 'a list -> 'a list
-val hd : 'a list -> 'a
-val tl : 'a list -> 'a list
-val nth : 'a list -> int -> 'a
-val nth_opt : 'a list -> int -> 'a option
-val rev : 'a list -> 'a list
-val init : len:int -> f:(int -> 'a) -> 'a list
-val append : 'a list -> 'a list -> 'a list
-val rev_append : 'a list -> 'a list -> 'a list
-val concat : 'a list list -> 'a list
-val flatten : 'a list list -> 'a list
-val equal : eq:('a -> 'a -> bool) -> 'a list -> 'a list -> bool
-val compare : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> int
-val iter : f:('a -> unit) -> 'a list -> unit
-val iteri : f:(int -> 'a -> unit) -> 'a list -> unit
-val map : f:('a -> 'b) -> 'a list -> 'b list
-val mapi : f:(int -> 'a -> 'b) -> 'a list -> 'b list
-val rev_map : f:('a -> 'b) -> 'a list -> 'b list
-val filter_map : f:('a -> 'b option) -> 'a list -> 'b list
-val concat_map : f:('a -> 'b list) -> 'a list -> 'b list
-val fold_left_map :
-  f:('a -> 'b -> ('a * 'c)) -> init:'a -> 'b list -> ('a * 'c list)
-val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
-val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
-val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
-val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
-val fold_left2 :
-  f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
-val fold_right2 :
-  f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
-val for_all : f:('a -> bool) -> 'a list -> bool
-val exists : f:('a -> bool) -> 'a list -> bool
-val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
-val mem : 'a -> set:'a list -> bool
-val memq : 'a -> set:'a list -> bool
-val find : f:('a -> bool) -> 'a list -> 'a
-val find_opt : f:('a -> bool) -> 'a list -> 'a option
-val find_map : f:('a -> 'b option) -> 'a list -> 'b option
-val filter : f:('a -> bool) -> 'a list -> 'a list
-val find_all : f:('a -> bool) -> 'a list -> 'a list
-val filteri : f:(int -> 'a -> bool) -> 'a list -> 'a list
-val partition : f:('a -> bool) -> 'a list -> ('a list * 'a list)
-val partition_map :
-  f:('a -> ('b, 'c) Either.t) -> 'a list -> ('b list * 'c list)
-val assoc : 'a -> ('a * 'b) list -> 'b
-val assoc_opt : 'a -> ('a * 'b) list -> 'b option
-val assq : 'a -> ('a * 'b) list -> 'b
-val assq_opt : 'a -> ('a * 'b) list -> 'b option
-val mem_assoc : 'a -> map:('a * 'b) list -> bool
-val mem_assq : 'a -> map:('a * 'b) list -> bool
-val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
-val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
-val split : ('a * 'b) list -> ('a list * 'b list)
-val combine : 'a list -> 'b list -> ('a * 'b) list
-val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val sort_uniq : cmp:('a -> 'a -> int) -> 'a list -> 'a list
-val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
-val to_seq : 'a list -> 'a Seq.t
-val of_seq : 'a Seq.t -> 'a list
diff --git a/interfaces/4.14/map.mli b/interfaces/4.14/map.mli
deleted file mode 100644
index 260b500..0000000
--- a/interfaces/4.14/map.mli
+++ /dev/null
@@ -1,94 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type key
-    type +!'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_rev_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type key = Ord.t
-    type +!'a t
-    val empty : 'a t
-    val is_empty : 'a t -> bool
-    val mem : key -> 'a t -> bool
-    val add : key -> 'a -> 'a t -> 'a t
-    val update : key -> ('a option -> 'a option) -> 'a t -> 'a t
-    val singleton : key -> 'a -> 'a t
-    val remove : key -> 'a t -> 'a t
-    val merge :
-      (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
-    val union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-    val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
-    val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-    val iter : (key -> 'a -> unit) -> 'a t -> unit
-    val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
-    val for_all : (key -> 'a -> bool) -> 'a t -> bool
-    val exists : (key -> 'a -> bool) -> 'a t -> bool
-    val filter : (key -> 'a -> bool) -> 'a t -> 'a t
-    val filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t
-    val partition : (key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-    val cardinal : 'a t -> int
-    val bindings : 'a t -> (key * 'a) list
-    val min_binding : 'a t -> (key * 'a)
-    val min_binding_opt : 'a t -> (key * 'a) option
-    val max_binding : 'a t -> (key * 'a)
-    val max_binding_opt : 'a t -> (key * 'a) option
-    val choose : 'a t -> (key * 'a)
-    val choose_opt : 'a t -> (key * 'a) option
-    val split : key -> 'a t -> ('a t * 'a option * 'a t)
-    val find : key -> 'a t -> 'a
-    val find_opt : key -> 'a t -> 'a option
-    val find_first : (key -> bool) -> 'a t -> (key * 'a)
-    val find_first_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val find_last : (key -> bool) -> 'a t -> (key * 'a)
-    val find_last_opt : (key -> bool) -> 'a t -> (key * 'a) option
-    val map : ('a -> 'b) -> 'a t -> 'b t
-    val mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
-    val to_seq : 'a t -> (key * 'a) Seq.t
-    val to_rev_seq : 'a t -> (key * 'a) Seq.t
-    val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-    val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-    val of_seq : (key * 'a) Seq.t -> 'a t
-  end
diff --git a/interfaces/4.14/marshal.mli b/interfaces/4.14/marshal.mli
deleted file mode 100644
index 2902fd4..0000000
--- a/interfaces/4.14/marshal.mli
+++ /dev/null
@@ -1,16 +0,0 @@
-type extern_flags =
-  | No_sharing 
-  | Closures 
-  | Compat_32 
-val to_channel : out_channel -> 'a -> extern_flags list -> unit
-external to_bytes :
-  'a -> extern_flags list -> bytes = "caml_output_value_to_bytes"
-external to_string :
-  'a -> extern_flags list -> string = "caml_output_value_to_string"
-val to_buffer : bytes -> int -> int -> 'a -> extern_flags list -> int
-val from_channel : in_channel -> 'a
-val from_bytes : bytes -> int -> 'a
-val from_string : string -> int -> 'a
-val header_size : int
-val data_size : bytes -> int -> int
-val total_size : bytes -> int -> int
diff --git a/interfaces/4.14/moreLabels.mli b/interfaces/4.14/moreLabels.mli
deleted file mode 100644
index 4ab78fd..0000000
--- a/interfaces/4.14/moreLabels.mli
+++ /dev/null
@@ -1,356 +0,0 @@
-module Hashtbl :
-sig
-  type ('a, 'b) t = ('a, 'b) Hashtbl.t
-  val create : ?random:bool -> int -> ('a, 'b) t
-  val clear : ('a, 'b) t -> unit
-  val reset : ('a, 'b) t -> unit
-  val copy : ('a, 'b) t -> ('a, 'b) t
-  val add : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val find : ('a, 'b) t -> 'a -> 'b
-  val find_opt : ('a, 'b) t -> 'a -> 'b option
-  val find_all : ('a, 'b) t -> 'a -> 'b list
-  val mem : ('a, 'b) t -> 'a -> bool
-  val remove : ('a, 'b) t -> 'a -> unit
-  val replace : ('a, 'b) t -> key:'a -> data:'b -> unit
-  val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) t -> unit
-  val filter_map_inplace :
-    f:(key:'a -> data:'b -> 'b option) -> ('a, 'b) t -> unit
-  val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) t -> init:'c -> 'c
-  val length : ('a, 'b) t -> int
-  val randomize : unit -> unit
-  val is_randomized : unit -> bool
-  val rebuild : ?random:bool -> ('a, 'b) t -> ('a, 'b) t
-  type statistics = Hashtbl.statistics =
-    {
-    num_bindings: int ;
-    num_buckets: int ;
-    max_bucket_length: int ;
-    bucket_histogram: int array }
-  val stats : ('a, 'b) t -> statistics
-  val to_seq : ('a, 'b) t -> ('a * 'b) Seq.t
-  val to_seq_keys : ('a, 'b) t -> 'a Seq.t
-  val to_seq_values : ('a, 'b) t -> 'b Seq.t
-  val add_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val replace_seq : ('a, 'b) t -> ('a * 'b) Seq.t -> unit
-  val of_seq : ('a * 'b) Seq.t -> ('a, 'b) t
-  module type HashedType  =
-    sig type t val equal : t -> t -> bool val hash : t -> int end
-  module type S  =
-    sig
-      type key
-      type !'a t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (H : HashedType) ->
-    sig
-      type key = H.t
-      type 'a t = 'a Hashtbl.Make(H).t
-      val create : int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module type SeededHashedType  =
-    sig type t val equal : t -> t -> bool val hash : int -> t -> int end
-  module type SeededS  =
-    sig
-      type key
-      type !'a t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module MakeSeeded :
-  functor (H : SeededHashedType) ->
-    sig
-      type key = H.t
-      type 'a t = 'a Hashtbl.MakeSeeded(H).t
-      val create : ?random:bool -> int -> 'a t
-      val clear : 'a t -> unit
-      val reset : 'a t -> unit
-      val copy : 'a t -> 'a t
-      val add : 'a t -> key:key -> data:'a -> unit
-      val remove : 'a t -> key -> unit
-      val find : 'a t -> key -> 'a
-      val find_opt : 'a t -> key -> 'a option
-      val find_all : 'a t -> key -> 'a list
-      val replace : 'a t -> key:key -> data:'a -> unit
-      val mem : 'a t -> key -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val filter_map_inplace :
-        f:(key:key -> data:'a -> 'a option) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val length : 'a t -> int
-      val stats : 'a t -> statistics
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_keys : 'a t -> key Seq.t
-      val to_seq_values : 'a t -> 'a Seq.t
-      val add_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val replace_seq : 'a t -> (key * 'a) Seq.t -> unit
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  val hash : 'a -> int
-  val seeded_hash : int -> 'a -> int
-  val hash_param : int -> int -> 'a -> int
-  val seeded_hash_param : int -> int -> int -> 'a -> int
-end
-module Map :
-sig
-  module type OrderedType  = sig type t val compare : t -> t -> int end
-  module type S  =
-    sig
-      type key
-      type +!'a t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val filter_map : f:(key -> 'a -> 'b option) -> 'a t -> 'b t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_rev_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type key = Ord.t
-      type 'a t = 'a Map.Make(Ord).t
-      val empty : 'a t
-      val is_empty : 'a t -> bool
-      val mem : key -> 'a t -> bool
-      val add : key:key -> data:'a -> 'a t -> 'a t
-      val update : key:key -> f:('a option -> 'a option) -> 'a t -> 'a t
-      val singleton : key -> 'a -> 'a t
-      val remove : key -> 'a t -> 'a t
-      val merge :
-        f:(key -> 'a option -> 'b option -> 'c option) ->
-          'a t -> 'b t -> 'c t
-      val union : f:(key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
-      val compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int
-      val equal : cmp:('a -> 'a -> bool) -> 'a t -> 'a t -> bool
-      val iter : f:(key:key -> data:'a -> unit) -> 'a t -> unit
-      val fold : f:(key:key -> data:'a -> 'b -> 'b) -> 'a t -> init:'b -> 'b
-      val for_all : f:(key -> 'a -> bool) -> 'a t -> bool
-      val exists : f:(key -> 'a -> bool) -> 'a t -> bool
-      val filter : f:(key -> 'a -> bool) -> 'a t -> 'a t
-      val filter_map : f:(key -> 'a -> 'b option) -> 'a t -> 'b t
-      val partition : f:(key -> 'a -> bool) -> 'a t -> ('a t * 'a t)
-      val cardinal : 'a t -> int
-      val bindings : 'a t -> (key * 'a) list
-      val min_binding : 'a t -> (key * 'a)
-      val min_binding_opt : 'a t -> (key * 'a) option
-      val max_binding : 'a t -> (key * 'a)
-      val max_binding_opt : 'a t -> (key * 'a) option
-      val choose : 'a t -> (key * 'a)
-      val choose_opt : 'a t -> (key * 'a) option
-      val split : key -> 'a t -> ('a t * 'a option * 'a t)
-      val find : key -> 'a t -> 'a
-      val find_opt : key -> 'a t -> 'a option
-      val find_first : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_first_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val find_last : f:(key -> bool) -> 'a t -> (key * 'a)
-      val find_last_opt : f:(key -> bool) -> 'a t -> (key * 'a) option
-      val map : f:('a -> 'b) -> 'a t -> 'b t
-      val mapi : f:(key -> 'a -> 'b) -> 'a t -> 'b t
-      val to_seq : 'a t -> (key * 'a) Seq.t
-      val to_rev_seq : 'a t -> (key * 'a) Seq.t
-      val to_seq_from : key -> 'a t -> (key * 'a) Seq.t
-      val add_seq : (key * 'a) Seq.t -> 'a t -> 'a t
-      val of_seq : (key * 'a) Seq.t -> 'a t
-    end
-end
-module Set :
-sig
-  module type OrderedType  = sig type t val compare : t -> t -> int end
-  module type S  =
-    sig
-      type elt
-      type t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val filter_map : f:(elt -> elt option) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val to_rev_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-  module Make :
-  functor (Ord : OrderedType) ->
-    sig
-      type elt = Ord.t
-      type t = Set.Make(Ord).t
-      val empty : t
-      val is_empty : t -> bool
-      val mem : elt -> t -> bool
-      val add : elt -> t -> t
-      val singleton : elt -> t
-      val remove : elt -> t -> t
-      val union : t -> t -> t
-      val inter : t -> t -> t
-      val disjoint : t -> t -> bool
-      val diff : t -> t -> t
-      val compare : t -> t -> int
-      val equal : t -> t -> bool
-      val subset : t -> t -> bool
-      val iter : f:(elt -> unit) -> t -> unit
-      val map : f:(elt -> elt) -> t -> t
-      val fold : f:(elt -> 'a -> 'a) -> t -> init:'a -> 'a
-      val for_all : f:(elt -> bool) -> t -> bool
-      val exists : f:(elt -> bool) -> t -> bool
-      val filter : f:(elt -> bool) -> t -> t
-      val filter_map : f:(elt -> elt option) -> t -> t
-      val partition : f:(elt -> bool) -> t -> (t * t)
-      val cardinal : t -> int
-      val elements : t -> elt list
-      val min_elt : t -> elt
-      val min_elt_opt : t -> elt option
-      val max_elt : t -> elt
-      val max_elt_opt : t -> elt option
-      val choose : t -> elt
-      val choose_opt : t -> elt option
-      val split : elt -> t -> (t * bool * t)
-      val find : elt -> t -> elt
-      val find_opt : elt -> t -> elt option
-      val find_first : f:(elt -> bool) -> t -> elt
-      val find_first_opt : f:(elt -> bool) -> t -> elt option
-      val find_last : f:(elt -> bool) -> t -> elt
-      val find_last_opt : f:(elt -> bool) -> t -> elt option
-      val of_list : elt list -> t
-      val to_seq_from : elt -> t -> elt Seq.t
-      val to_seq : t -> elt Seq.t
-      val to_rev_seq : t -> elt Seq.t
-      val add_seq : elt Seq.t -> t -> t
-      val of_seq : elt Seq.t -> t
-    end
-end
diff --git a/interfaces/4.14/nativeint.mli b/interfaces/4.14/nativeint.mli
deleted file mode 100644
index 2fb5e3f..0000000
--- a/interfaces/4.14/nativeint.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-val zero : nativeint
-val one : nativeint
-val minus_one : nativeint
-external neg : nativeint -> nativeint = "%nativeint_neg"
-external add : nativeint -> nativeint -> nativeint = "%nativeint_add"
-external sub : nativeint -> nativeint -> nativeint = "%nativeint_sub"
-external mul : nativeint -> nativeint -> nativeint = "%nativeint_mul"
-external div : nativeint -> nativeint -> nativeint = "%nativeint_div"
-val unsigned_div : nativeint -> nativeint -> nativeint
-external rem : nativeint -> nativeint -> nativeint = "%nativeint_mod"
-val unsigned_rem : nativeint -> nativeint -> nativeint
-val succ : nativeint -> nativeint
-val pred : nativeint -> nativeint
-val abs : nativeint -> nativeint
-val size : int
-val max_int : nativeint
-val min_int : nativeint
-external logand : nativeint -> nativeint -> nativeint = "%nativeint_and"
-external logor : nativeint -> nativeint -> nativeint = "%nativeint_or"
-external logxor : nativeint -> nativeint -> nativeint = "%nativeint_xor"
-val lognot : nativeint -> nativeint
-external shift_left : nativeint -> int -> nativeint = "%nativeint_lsl"
-external shift_right : nativeint -> int -> nativeint = "%nativeint_asr"
-external shift_right_logical :
-  nativeint -> int -> nativeint = "%nativeint_lsr"
-external of_int : int -> nativeint = "%nativeint_of_int"
-external to_int : nativeint -> int = "%nativeint_to_int"
-val unsigned_to_int : nativeint -> int option
-external of_float :
-  float -> nativeint = "caml_nativeint_of_float"
-    "caml_nativeint_of_float_unboxed"[@@unboxed ][@@noalloc ]
-external to_float :
-  nativeint -> float = "caml_nativeint_to_float"
-    "caml_nativeint_to_float_unboxed"[@@unboxed ][@@noalloc ]
-external of_int32 : int32 -> nativeint = "%nativeint_of_int32"
-external to_int32 : nativeint -> int32 = "%nativeint_to_int32"
-external of_string : string -> nativeint = "caml_nativeint_of_string"
-val of_string_opt : string -> nativeint option
-val to_string : nativeint -> string
-type t = nativeint
-val compare : t -> t -> int
-val unsigned_compare : t -> t -> int
-val equal : t -> t -> bool
-val min : t -> t -> t
-val max : t -> t -> t
-external format : string -> nativeint -> string = "caml_nativeint_format"
diff --git a/interfaces/4.14/obj.mli b/interfaces/4.14/obj.mli
deleted file mode 100644
index 659d8ba..0000000
--- a/interfaces/4.14/obj.mli
+++ /dev/null
@@ -1,74 +0,0 @@
-type t
-type raw_data = nativeint
-external repr : 'a -> t = "%identity"
-external obj : t -> 'a = "%identity"
-external magic : 'a -> 'b = "%identity"
-val is_block : t -> bool
-external is_int : t -> bool = "%obj_is_int"
-external tag : t -> int = "caml_obj_tag"[@@noalloc ]
-external size : t -> int = "%obj_size"
-external reachable_words : t -> int = "caml_obj_reachable_words"
-external field : t -> int -> t = "%obj_field"
-external set_field : t -> int -> t -> unit = "%obj_set_field"
-external set_tag : t -> int -> unit = "caml_obj_set_tag"
-val double_field : t -> int -> float
-val set_double_field : t -> int -> float -> unit
-external raw_field : t -> int -> raw_data = "caml_obj_raw_field"
-external set_raw_field :
-  t -> int -> raw_data -> unit = "caml_obj_set_raw_field"
-external new_block : int -> int -> t = "caml_obj_block"
-external dup : t -> t = "caml_obj_dup"
-external truncate : t -> int -> unit = "caml_obj_truncate"
-external add_offset : t -> Int32.t -> t = "caml_obj_add_offset"
-external with_tag : int -> t -> t = "caml_obj_with_tag"
-val first_non_constant_constructor_tag : int
-val last_non_constant_constructor_tag : int
-val lazy_tag : int
-val closure_tag : int
-val object_tag : int
-val infix_tag : int
-val forward_tag : int
-val no_scan_tag : int
-val abstract_tag : int
-val string_tag : int
-val double_tag : int
-val double_array_tag : int
-val custom_tag : int
-val final_tag : int
-val int_tag : int
-val out_of_heap_tag : int
-val unaligned_tag : int
-module Closure :
-sig type info = {
-      arity: int ;
-      start_env: int } val info : t -> info end
-module Extension_constructor :
-sig
-  type t = extension_constructor
-  val of_val : 'a -> t
-  val name : t -> string
-  val id : t -> int
-end
-val extension_constructor : 'a -> extension_constructor
-val extension_name : extension_constructor -> string
-val extension_id : extension_constructor -> int
-module Ephemeron :
-sig
-  type obj_t = t
-  type t
-  val create : int -> t
-  val length : t -> int
-  val get_key : t -> int -> obj_t option
-  val get_key_copy : t -> int -> obj_t option
-  val set_key : t -> int -> obj_t -> unit
-  val unset_key : t -> int -> unit
-  val check_key : t -> int -> bool
-  val blit_key : t -> int -> t -> int -> int -> unit
-  val get_data : t -> obj_t option
-  val get_data_copy : t -> obj_t option
-  val set_data : t -> obj_t -> unit
-  val unset_data : t -> unit
-  val check_data : t -> bool
-  val blit_data : t -> t -> unit
-  val max_ephe_length : int
-end
diff --git a/interfaces/4.14/oo.mli b/interfaces/4.14/oo.mli
deleted file mode 100644
index 7a03b33..0000000
--- a/interfaces/4.14/oo.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-val copy : (< .. >  as 'a) -> 'a
-external id : < .. >  -> int = "%field1"
-val new_method : string -> CamlinternalOO.tag
-val public_method_label : string -> CamlinternalOO.tag
diff --git a/interfaces/4.14/option.mli b/interfaces/4.14/option.mli
deleted file mode 100644
index 9d309eb..0000000
--- a/interfaces/4.14/option.mli
+++ /dev/null
@@ -1,19 +0,0 @@
-type 'a t = 'a option =
-  | None 
-  | Some of 'a 
-val none : 'a option
-val some : 'a -> 'a option
-val value : 'a option -> default:'a -> 'a
-val get : 'a option -> 'a
-val bind : 'a option -> ('a -> 'b option) -> 'b option
-val join : 'a option option -> 'a option
-val map : ('a -> 'b) -> 'a option -> 'b option
-val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
-val iter : ('a -> unit) -> 'a option -> unit
-val is_none : 'a option -> bool
-val is_some : 'a option -> bool
-val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
-val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
-val to_result : none:'e -> 'a option -> ('a, 'e) result
-val to_list : 'a option -> 'a list
-val to_seq : 'a option -> 'a Seq.t
diff --git a/interfaces/4.14/out_channel.mli b/interfaces/4.14/out_channel.mli
deleted file mode 100644
index 01255ff..0000000
--- a/interfaces/4.14/out_channel.mli
+++ /dev/null
@@ -1,35 +0,0 @@
-type t = out_channel
-type open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val stdout : t
-val stderr : t
-val open_bin : string -> t
-val open_text : string -> t
-val open_gen : open_flag list -> int -> string -> t
-val with_open_bin : string -> (t -> 'a) -> 'a
-val with_open_text : string -> (t -> 'a) -> 'a
-val with_open_gen : open_flag list -> int -> string -> (t -> 'a) -> 'a
-val seek : t -> int64 -> unit
-val pos : t -> int64
-val length : t -> int64
-val close : t -> unit
-val close_noerr : t -> unit
-val flush : t -> unit
-val flush_all : unit -> unit
-val output_char : t -> char -> unit
-val output_byte : t -> int -> unit
-val output_string : t -> string -> unit
-val output_bytes : t -> bytes -> unit
-val output : t -> bytes -> int -> int -> unit
-val output_substring : t -> string -> int -> int -> unit
-val set_binary_mode : t -> bool -> unit
-val set_buffered : t -> bool -> unit
-val is_buffered : t -> bool
diff --git a/interfaces/4.14/parsing.mli b/interfaces/4.14/parsing.mli
deleted file mode 100644
index 68f1243..0000000
--- a/interfaces/4.14/parsing.mli
+++ /dev/null
@@ -1,36 +0,0 @@
-val symbol_start : unit -> int
-val symbol_end : unit -> int
-val rhs_start : int -> int
-val rhs_end : int -> int
-val symbol_start_pos : unit -> Lexing.position
-val symbol_end_pos : unit -> Lexing.position
-val rhs_start_pos : int -> Lexing.position
-val rhs_end_pos : int -> Lexing.position
-val clear_parser : unit -> unit
-exception Parse_error 
-val set_trace : bool -> bool
-type parser_env
-type parse_tables =
-  {
-  actions: (parser_env -> Obj.t) array ;
-  transl_const: int array ;
-  transl_block: int array ;
-  lhs: string ;
-  len: string ;
-  defred: string ;
-  dgoto: string ;
-  sindex: string ;
-  rindex: string ;
-  gindex: string ;
-  tablesize: int ;
-  table: string ;
-  check: string ;
-  error_function: string -> unit ;
-  names_const: string ;
-  names_block: string }
-exception YYexit of Obj.t 
-val yyparse :
-  parse_tables -> int -> (Lexing.lexbuf -> 'a) -> Lexing.lexbuf -> 'b
-val peek_val : parser_env -> int -> 'a
-val is_current_lookahead : 'a -> bool
-val parse_error : string -> unit
diff --git a/interfaces/4.14/pervasives.mli b/interfaces/4.14/pervasives.mli
deleted file mode 100644
index fd024d1..0000000
--- a/interfaces/4.14/pervasives.mli
+++ /dev/null
@@ -1,241 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type nonrec fpclass = fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string : string -> bool
-val bool_of_string_opt : string -> bool option
-val string_of_int : int -> string
-external int_of_string : string -> int = "caml_int_of_string"
-val int_of_string_opt : string -> int option
-val string_of_float : float -> string
-external float_of_string : string -> float = "caml_float_of_string"
-val float_of_string_opt : string -> float option
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type nonrec in_channel = in_channel
-type nonrec out_channel = out_channel
-val stdin : Stdlib.in_channel
-val stdout : Stdlib.out_channel
-val stderr : Stdlib.out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int : unit -> int
-val read_int_opt : unit -> int option
-val read_float : unit -> float
-val read_float_opt : unit -> float option
-type nonrec open_flag = open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> Stdlib.out_channel
-val open_out_bin : string -> Stdlib.out_channel
-val open_out_gen :
-  Stdlib.open_flag list -> int -> string -> Stdlib.out_channel
-val flush : Stdlib.out_channel -> unit
-val flush_all : unit -> unit
-val output_char : Stdlib.out_channel -> char -> unit
-val output_string : Stdlib.out_channel -> string -> unit
-val output_bytes : Stdlib.out_channel -> bytes -> unit
-val output : Stdlib.out_channel -> bytes -> int -> int -> unit
-val output_substring : Stdlib.out_channel -> string -> int -> int -> unit
-val output_byte : Stdlib.out_channel -> int -> unit
-val output_binary_int : Stdlib.out_channel -> int -> unit
-val output_value : Stdlib.out_channel -> 'a -> unit
-val seek_out : Stdlib.out_channel -> int -> unit
-val pos_out : Stdlib.out_channel -> int
-val out_channel_length : Stdlib.out_channel -> int
-val close_out : Stdlib.out_channel -> unit
-val close_out_noerr : Stdlib.out_channel -> unit
-val set_binary_mode_out : Stdlib.out_channel -> bool -> unit
-val open_in : string -> Stdlib.in_channel
-val open_in_bin : string -> Stdlib.in_channel
-val open_in_gen : Stdlib.open_flag list -> int -> string -> Stdlib.in_channel
-val input_char : Stdlib.in_channel -> char
-val input_line : Stdlib.in_channel -> string
-val input : Stdlib.in_channel -> bytes -> int -> int -> int
-val really_input : Stdlib.in_channel -> bytes -> int -> int -> unit
-val really_input_string : Stdlib.in_channel -> int -> string
-val input_byte : Stdlib.in_channel -> int
-val input_binary_int : Stdlib.in_channel -> int
-val input_value : Stdlib.in_channel -> 'a
-val seek_in : Stdlib.in_channel -> int -> unit
-val pos_in : Stdlib.in_channel -> int
-val in_channel_length : Stdlib.in_channel -> int
-val close_in : Stdlib.in_channel -> unit
-val close_in_noerr : Stdlib.in_channel -> unit
-val set_binary_mode_in : Stdlib.in_channel -> bool -> unit
-module LargeFile = LargeFile
-type nonrec 'a ref = 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type nonrec ('a, 'b) result = ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) Stdlib.format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) Stdlib.format6 ->
-      ('a, 'b, 'c, 'd, 'g, 'h) Stdlib.format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val do_at_exit : unit -> unit
diff --git a/interfaces/4.14/printexc.mli b/interfaces/4.14/printexc.mli
deleted file mode 100644
index 3f325b1..0000000
--- a/interfaces/4.14/printexc.mli
+++ /dev/null
@@ -1,49 +0,0 @@
-type t = exn = ..
-val to_string : exn -> string
-val to_string_default : exn -> string
-val print : ('a -> 'b) -> 'a -> 'b
-val catch : ('a -> 'b) -> 'a -> 'b
-val print_backtrace : out_channel -> unit
-val get_backtrace : unit -> string
-val record_backtrace : bool -> unit
-val backtrace_status : unit -> bool
-val register_printer : (exn -> string option) -> unit
-val use_printers : exn -> string option
-type raw_backtrace
-type raw_backtrace_entry = private int
-val raw_backtrace_entries : raw_backtrace -> raw_backtrace_entry array
-val get_raw_backtrace : unit -> raw_backtrace
-val print_raw_backtrace : out_channel -> raw_backtrace -> unit
-val raw_backtrace_to_string : raw_backtrace -> string
-external raise_with_backtrace :
-  exn -> raw_backtrace -> 'a = "%raise_with_backtrace"
-external get_callstack : int -> raw_backtrace = "caml_get_current_callstack"
-val default_uncaught_exception_handler : exn -> raw_backtrace -> unit
-val set_uncaught_exception_handler : (exn -> raw_backtrace -> unit) -> unit
-type backtrace_slot
-val backtrace_slots : raw_backtrace -> backtrace_slot array option
-val backtrace_slots_of_raw_entry :
-  raw_backtrace_entry -> backtrace_slot array option
-type location =
-  {
-  filename: string ;
-  line_number: int ;
-  start_char: int ;
-  end_char: int }
-module Slot :
-sig
-  type t = backtrace_slot
-  val is_raise : t -> bool
-  val is_inline : t -> bool
-  val location : t -> location option
-  val name : t -> string option
-  val format : int -> t -> string option
-end
-type raw_backtrace_slot
-val raw_backtrace_length : raw_backtrace -> int
-val get_raw_backtrace_slot : raw_backtrace -> int -> raw_backtrace_slot
-val convert_raw_backtrace_slot : raw_backtrace_slot -> backtrace_slot
-val get_raw_backtrace_next_slot :
-  raw_backtrace_slot -> raw_backtrace_slot option
-val exn_slot_id : exn -> int
-val exn_slot_name : exn -> string
diff --git a/interfaces/4.14/printf.mli b/interfaces/4.14/printf.mli
deleted file mode 100644
index d66ad22..0000000
--- a/interfaces/4.14/printf.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
-val printf : ('a, out_channel, unit) format -> 'a
-val eprintf : ('a, out_channel, unit) format -> 'a
-val sprintf : ('a, unit, string) format -> 'a
-val bprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-val ibprintf : Buffer.t -> ('a, Buffer.t, unit) format -> 'a
-val kfprintf :
-  (out_channel -> 'd) ->
-    out_channel -> ('a, out_channel, unit, 'd) format4 -> 'a
-val ikfprintf : ('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) format4 -> 'a
-val ksprintf : (string -> 'd) -> ('a, unit, string, 'd) format4 -> 'a
-val kbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val ikbprintf :
-  (Buffer.t -> 'd) -> Buffer.t -> ('a, Buffer.t, unit, 'd) format4 -> 'a
-val kprintf : (string -> 'b) -> ('a, unit, string, 'b) format4 -> 'a
diff --git a/interfaces/4.14/queue.mli b/interfaces/4.14/queue.mli
deleted file mode 100644
index cca0d7f..0000000
--- a/interfaces/4.14/queue.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-type !'a t
-exception Empty 
-val create : unit -> 'a t
-val add : 'a -> 'a t -> unit
-val push : 'a -> 'a t -> unit
-val take : 'a t -> 'a
-val take_opt : 'a t -> 'a option
-val pop : 'a t -> 'a
-val peek : 'a t -> 'a
-val peek_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val transfer : 'a t -> 'a t -> unit
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.14/random.mli b/interfaces/4.14/random.mli
deleted file mode 100644
index ef000ab..0000000
--- a/interfaces/4.14/random.mli
+++ /dev/null
@@ -1,34 +0,0 @@
-val init : int -> unit
-val full_init : int array -> unit
-val self_init : unit -> unit
-val bits : unit -> int
-val int : int -> int
-val full_int : int -> int
-val int32 : Int32.t -> Int32.t
-val nativeint : Nativeint.t -> Nativeint.t
-val int64 : Int64.t -> Int64.t
-val float : float -> float
-val bool : unit -> bool
-val bits32 : unit -> Int32.t
-val bits64 : unit -> Int64.t
-val nativebits : unit -> Nativeint.t
-module State :
-sig
-  type t
-  val make : int array -> t
-  val make_self_init : unit -> t
-  val copy : t -> t
-  val bits : t -> int
-  val int : t -> int -> int
-  val full_int : t -> int -> int
-  val int32 : t -> Int32.t -> Int32.t
-  val nativeint : t -> Nativeint.t -> Nativeint.t
-  val int64 : t -> Int64.t -> Int64.t
-  val float : t -> float -> float
-  val bool : t -> bool
-  val bits32 : t -> Int32.t
-  val bits64 : t -> Int64.t
-  val nativebits : t -> Nativeint.t
-end
-val get_state : unit -> State.t
-val set_state : State.t -> unit
diff --git a/interfaces/4.14/result.mli b/interfaces/4.14/result.mli
deleted file mode 100644
index 06f96e6..0000000
--- a/interfaces/4.14/result.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type ('a, 'e) t = ('a, 'e) result =
-  | Ok of 'a 
-  | Error of 'e 
-val ok : 'a -> ('a, 'e) result
-val error : 'e -> ('a, 'e) result
-val value : ('a, 'e) result -> default:'a -> 'a
-val get_ok : ('a, 'e) result -> 'a
-val get_error : ('a, 'e) result -> 'e
-val bind : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
-val join : (('a, 'e) result, 'e) result -> ('a, 'e) result
-val map : ('a -> 'b) -> ('a, 'e) result -> ('b, 'e) result
-val map_error : ('e -> 'f) -> ('a, 'e) result -> ('a, 'f) result
-val fold : ok:('a -> 'c) -> error:('e -> 'c) -> ('a, 'e) result -> 'c
-val iter : ('a -> unit) -> ('a, 'e) result -> unit
-val iter_error : ('e -> unit) -> ('a, 'e) result -> unit
-val is_ok : ('a, 'e) result -> bool
-val is_error : ('a, 'e) result -> bool
-val equal :
-  ok:('a -> 'a -> bool) ->
-    error:('e -> 'e -> bool) -> ('a, 'e) result -> ('a, 'e) result -> bool
-val compare :
-  ok:('a -> 'a -> int) ->
-    error:('e -> 'e -> int) -> ('a, 'e) result -> ('a, 'e) result -> int
-val to_option : ('a, 'e) result -> 'a option
-val to_list : ('a, 'e) result -> 'a list
-val to_seq : ('a, 'e) result -> 'a Seq.t
diff --git a/interfaces/4.14/scanf.mli b/interfaces/4.14/scanf.mli
deleted file mode 100644
index b3bc615..0000000
--- a/interfaces/4.14/scanf.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-module Scanning :
-sig
-  type in_channel
-  type scanbuf = in_channel
-  val stdin : in_channel
-  type file_name = string
-  val open_in : file_name -> in_channel
-  val open_in_bin : file_name -> in_channel
-  val close_in : in_channel -> unit
-  val from_file : file_name -> in_channel
-  val from_file_bin : string -> in_channel
-  val from_string : string -> in_channel
-  val from_function : (unit -> char) -> in_channel
-  val from_channel : Stdlib.in_channel -> in_channel
-  val end_of_input : in_channel -> bool
-  val beginning_of_input : in_channel -> bool
-  val name_of_input : in_channel -> string
-  val stdib : in_channel
-end
-type ('a, 'b, 'c, 'd) scanner =
-  ('a, Scanning.in_channel, 'b, 'c, 'a -> 'd, 'd) format6 -> 'c
-exception Scan_failure of string 
-val bscanf : Scanning.in_channel -> ('a, 'b, 'c, 'd) scanner
-val sscanf : string -> ('a, 'b, 'c, 'd) scanner
-val scanf : ('a, 'b, 'c, 'd) scanner
-val kscanf :
-  Scanning.in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val ksscanf :
-  string -> (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
-val bscanf_format :
-  Scanning.in_channel ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val sscanf_format :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-      (('a, 'b, 'c, 'd, 'e, 'f) format6 -> 'g) -> 'g
-val format_from_string :
-  string ->
-    ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6
-val unescaped : string -> string
-val fscanf : in_channel -> ('a, 'b, 'c, 'd) scanner
-val kfscanf :
-  in_channel ->
-    (Scanning.in_channel -> exn -> 'd) -> ('a, 'b, 'c, 'd) scanner
diff --git a/interfaces/4.14/seq.mli b/interfaces/4.14/seq.mli
deleted file mode 100644
index a19284a..0000000
--- a/interfaces/4.14/seq.mli
+++ /dev/null
@@ -1,61 +0,0 @@
-type 'a t = unit -> 'a node
-and 'a node =
-  | Nil 
-  | Cons of 'a * 'a t 
-val is_empty : 'a t -> bool
-val uncons : 'a t -> ('a * 'a t) option
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
-val iteri : (int -> 'a -> unit) -> 'a t -> unit
-val fold_lefti : (int -> 'b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val for_all : ('a -> bool) -> 'a t -> bool
-val exists : ('a -> bool) -> 'a t -> bool
-val find : ('a -> bool) -> 'a t -> 'a option
-val find_map : ('a -> 'b option) -> 'a t -> 'b option
-val iter2 : ('a -> 'b -> unit) -> 'a t -> 'b t -> unit
-val fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b t -> 'c t -> 'a
-val for_all2 : ('a -> 'b -> bool) -> 'a t -> 'b t -> bool
-val exists2 : ('a -> 'b -> bool) -> 'a t -> 'b t -> bool
-val equal : ('a -> 'b -> bool) -> 'a t -> 'b t -> bool
-val compare : ('a -> 'b -> int) -> 'a t -> 'b t -> int
-val empty : 'a t
-val return : 'a -> 'a t
-val cons : 'a -> 'a t -> 'a t
-val init : int -> (int -> 'a) -> 'a t
-val unfold : ('b -> ('a * 'b) option) -> 'b -> 'a t
-val repeat : 'a -> 'a t
-val forever : (unit -> 'a) -> 'a t
-val cycle : 'a t -> 'a t
-val iterate : ('a -> 'a) -> 'a -> 'a t
-val map : ('a -> 'b) -> 'a t -> 'b t
-val mapi : (int -> 'a -> 'b) -> 'a t -> 'b t
-val filter : ('a -> bool) -> 'a t -> 'a t
-val filter_map : ('a -> 'b option) -> 'a t -> 'b t
-val scan : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b t
-val take : int -> 'a t -> 'a t
-val drop : int -> 'a t -> 'a t
-val take_while : ('a -> bool) -> 'a t -> 'a t
-val drop_while : ('a -> bool) -> 'a t -> 'a t
-val group : ('a -> 'a -> bool) -> 'a t -> 'a t t
-val memoize : 'a t -> 'a t
-exception Forced_twice 
-val once : 'a t -> 'a t
-val transpose : 'a t t -> 'a t t
-val append : 'a t -> 'a t -> 'a t
-val concat : 'a t t -> 'a t
-val flat_map : ('a -> 'b t) -> 'a t -> 'b t
-val concat_map : ('a -> 'b t) -> 'a t -> 'b t
-val zip : 'a t -> 'b t -> ('a * 'b) t
-val map2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
-val interleave : 'a t -> 'a t -> 'a t
-val sorted_merge : ('a -> 'a -> int) -> 'a t -> 'a t -> 'a t
-val product : 'a t -> 'b t -> ('a * 'b) t
-val map_product : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
-val unzip : ('a * 'b) t -> ('a t * 'b t)
-val split : ('a * 'b) t -> ('a t * 'b t)
-val partition_map : ('a -> ('b, 'c) Either.t) -> 'a t -> ('b t * 'c t)
-val partition : ('a -> bool) -> 'a t -> ('a t * 'a t)
-val of_dispenser : (unit -> 'a option) -> 'a t
-val to_dispenser : 'a t -> unit -> 'a option
-val ints : int -> int t
diff --git a/interfaces/4.14/set.mli b/interfaces/4.14/set.mli
deleted file mode 100644
index eab5176..0000000
--- a/interfaces/4.14/set.mli
+++ /dev/null
@@ -1,96 +0,0 @@
-module type OrderedType  = sig type t val compare : t -> t -> int end
-module type S  =
-  sig
-    type elt
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val filter_map : (elt -> elt option) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val to_rev_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
-module Make :
-functor (Ord : OrderedType) ->
-  sig
-    type elt = Ord.t
-    type t
-    val empty : t
-    val is_empty : t -> bool
-    val mem : elt -> t -> bool
-    val add : elt -> t -> t
-    val singleton : elt -> t
-    val remove : elt -> t -> t
-    val union : t -> t -> t
-    val inter : t -> t -> t
-    val disjoint : t -> t -> bool
-    val diff : t -> t -> t
-    val compare : t -> t -> int
-    val equal : t -> t -> bool
-    val subset : t -> t -> bool
-    val iter : (elt -> unit) -> t -> unit
-    val map : (elt -> elt) -> t -> t
-    val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
-    val for_all : (elt -> bool) -> t -> bool
-    val exists : (elt -> bool) -> t -> bool
-    val filter : (elt -> bool) -> t -> t
-    val filter_map : (elt -> elt option) -> t -> t
-    val partition : (elt -> bool) -> t -> (t * t)
-    val cardinal : t -> int
-    val elements : t -> elt list
-    val min_elt : t -> elt
-    val min_elt_opt : t -> elt option
-    val max_elt : t -> elt
-    val max_elt_opt : t -> elt option
-    val choose : t -> elt
-    val choose_opt : t -> elt option
-    val split : elt -> t -> (t * bool * t)
-    val find : elt -> t -> elt
-    val find_opt : elt -> t -> elt option
-    val find_first : (elt -> bool) -> t -> elt
-    val find_first_opt : (elt -> bool) -> t -> elt option
-    val find_last : (elt -> bool) -> t -> elt
-    val find_last_opt : (elt -> bool) -> t -> elt option
-    val of_list : elt list -> t
-    val to_seq_from : elt -> t -> elt Seq.t
-    val to_seq : t -> elt Seq.t
-    val to_rev_seq : t -> elt Seq.t
-    val add_seq : elt Seq.t -> t -> t
-    val of_seq : elt Seq.t -> t
-  end
diff --git a/interfaces/4.14/stack.mli b/interfaces/4.14/stack.mli
deleted file mode 100644
index d1e5a4f..0000000
--- a/interfaces/4.14/stack.mli
+++ /dev/null
@@ -1,17 +0,0 @@
-type !'a t
-exception Empty 
-val create : unit -> 'a t
-val push : 'a -> 'a t -> unit
-val pop : 'a t -> 'a
-val pop_opt : 'a t -> 'a option
-val top : 'a t -> 'a
-val top_opt : 'a t -> 'a option
-val clear : 'a t -> unit
-val copy : 'a t -> 'a t
-val is_empty : 'a t -> bool
-val length : 'a t -> int
-val iter : ('a -> unit) -> 'a t -> unit
-val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
-val to_seq : 'a t -> 'a Seq.t
-val add_seq : 'a t -> 'a Seq.t -> unit
-val of_seq : 'a Seq.t -> 'a t
diff --git a/interfaces/4.14/stdLabels.mli b/interfaces/4.14/stdLabels.mli
deleted file mode 100644
index d86b996..0000000
--- a/interfaces/4.14/stdLabels.mli
+++ /dev/null
@@ -1,4 +0,0 @@
-module Array = ArrayLabels
-module Bytes = BytesLabels
-module List = ListLabels
-module String = StringLabels
diff --git a/interfaces/4.14/stdlib.mli b/interfaces/4.14/stdlib.mli
deleted file mode 100644
index a396c08..0000000
--- a/interfaces/4.14/stdlib.mli
+++ /dev/null
@@ -1,324 +0,0 @@
-external raise : exn -> 'a = "%raise"
-external raise_notrace : exn -> 'a = "%raise_notrace"
-val invalid_arg : string -> 'a
-val failwith : string -> 'a
-exception Exit 
-exception Match_failure of (string * int * int) 
-exception Assert_failure of (string * int * int) 
-exception Invalid_argument of string 
-exception Failure of string 
-exception Not_found 
-exception Out_of_memory 
-exception Stack_overflow 
-exception Sys_error of string 
-exception End_of_file 
-exception Division_by_zero 
-exception Sys_blocked_io 
-exception Undefined_recursive_module of (string * int * int) 
-external (=) : 'a -> 'a -> bool = "%equal"
-external (<>) : 'a -> 'a -> bool = "%notequal"
-external (<) : 'a -> 'a -> bool = "%lessthan"
-external (>) : 'a -> 'a -> bool = "%greaterthan"
-external (<=) : 'a -> 'a -> bool = "%lessequal"
-external (>=) : 'a -> 'a -> bool = "%greaterequal"
-external compare : 'a -> 'a -> int = "%compare"
-val min : 'a -> 'a -> 'a
-val max : 'a -> 'a -> 'a
-external (==) : 'a -> 'a -> bool = "%eq"
-external (!=) : 'a -> 'a -> bool = "%noteq"
-external not : bool -> bool = "%boolnot"
-external (&&) : bool -> bool -> bool = "%sequand"
-external (&) : bool -> bool -> bool = "%sequand"
-external (||) : bool -> bool -> bool = "%sequor"
-external (or) : bool -> bool -> bool = "%sequor"
-external __LOC__ : string = "%loc_LOC"
-external __FILE__ : string = "%loc_FILE"
-external __LINE__ : int = "%loc_LINE"
-external __MODULE__ : string = "%loc_MODULE"
-external __POS__ : (string * int * int * int) = "%loc_POS"
-external __FUNCTION__ : string = "%loc_FUNCTION"
-external __LOC_OF__ : 'a -> (string * 'a) = "%loc_LOC"
-external __LINE_OF__ : 'a -> (int * 'a) = "%loc_LINE"
-external __POS_OF__ : 'a -> ((string * int * int * int) * 'a) = "%loc_POS"
-external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
-external (@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
-external (~-) : int -> int = "%negint"
-external (~+) : int -> int = "%identity"
-external succ : int -> int = "%succint"
-external pred : int -> int = "%predint"
-external (+) : int -> int -> int = "%addint"
-external (-) : int -> int -> int = "%subint"
-external ( * ) : int -> int -> int = "%mulint"
-external (/) : int -> int -> int = "%divint"
-external (mod) : int -> int -> int = "%modint"
-val abs : int -> int
-val max_int : int
-val min_int : int
-external (land) : int -> int -> int = "%andint"
-external (lor) : int -> int -> int = "%orint"
-external (lxor) : int -> int -> int = "%xorint"
-val lnot : int -> int
-external (lsl) : int -> int -> int = "%lslint"
-external (lsr) : int -> int -> int = "%lsrint"
-external (asr) : int -> int -> int = "%asrint"
-external (~-.) : float -> float = "%negfloat"
-external (~+.) : float -> float = "%identity"
-external (+.) : float -> float -> float = "%addfloat"
-external (-.) : float -> float -> float = "%subfloat"
-external ( *. ) : float -> float -> float = "%mulfloat"
-external (/.) : float -> float -> float = "%divfloat"
-external ( ** ) : float -> float -> float = "caml_power_float" "pow"[@@unboxed
-                                                                    ]
-[@@noalloc ]
-external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-[@@noalloc ]
-external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
-                                                                    ]
-external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
-                                                                    ]
-external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-[@@noalloc ]
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
-[@@noalloc ]
-external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
-[@@noalloc ]
-external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
-                                                                    ]
-external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
-                                                                    ]
-external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
-                                                                    ]
-external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-[@@noalloc ]
-external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-[@@noalloc ]
-external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-[@@noalloc ]
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-[@@unboxed ][@@noalloc ]
-external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
-[@@unboxed ][@@noalloc ]
-external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-[@@noalloc ]
-external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-[@@noalloc ]
-external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-[@@noalloc ]
-external acosh : float -> float = "caml_acosh_float" "caml_acosh"[@@unboxed ]
-[@@noalloc ]
-external asinh : float -> float = "caml_asinh_float" "caml_asinh"[@@unboxed ]
-[@@noalloc ]
-external atanh : float -> float = "caml_atanh_float" "caml_atanh"[@@unboxed ]
-[@@noalloc ]
-external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-[@@noalloc ]
-external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-[@@noalloc ]
-external abs_float : float -> float = "%absfloat"
-external copysign :
-  float -> float -> float = "caml_copysign_float" "caml_copysign"[@@unboxed ]
-[@@noalloc ]
-external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
-[@@unboxed ][@@noalloc ]
-external frexp : float -> (float * int) = "caml_frexp_float"
-external ldexp :
-  ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-    "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-external modf : float -> (float * float) = "caml_modf_float"
-external float : int -> float = "%floatofint"
-external float_of_int : int -> float = "%floatofint"
-external truncate : float -> int = "%intoffloat"
-external int_of_float : float -> int = "%intoffloat"
-val infinity : float
-val neg_infinity : float
-val nan : float
-val max_float : float
-val min_float : float
-val epsilon_float : float
-type fpclass =
-  | FP_normal 
-  | FP_subnormal 
-  | FP_zero 
-  | FP_infinite 
-  | FP_nan 
-external classify_float :
-  ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-    "caml_classify_float_unboxed"[@@noalloc ]
-val (^) : string -> string -> string
-external int_of_char : char -> int = "%identity"
-val char_of_int : int -> char
-external ignore : 'a -> unit = "%ignore"
-val string_of_bool : bool -> string
-val bool_of_string_opt : string -> bool option
-val bool_of_string : string -> bool
-val string_of_int : int -> string
-val int_of_string_opt : string -> int option
-external int_of_string : string -> int = "caml_int_of_string"
-val string_of_float : float -> string
-val float_of_string_opt : string -> float option
-external float_of_string : string -> float = "caml_float_of_string"
-external fst : ('a * 'b) -> 'a = "%field0"
-external snd : ('a * 'b) -> 'b = "%field1"
-val (@) : 'a list -> 'a list -> 'a list
-type in_channel
-type out_channel
-val stdin : in_channel
-val stdout : out_channel
-val stderr : out_channel
-val print_char : char -> unit
-val print_string : string -> unit
-val print_bytes : bytes -> unit
-val print_int : int -> unit
-val print_float : float -> unit
-val print_endline : string -> unit
-val print_newline : unit -> unit
-val prerr_char : char -> unit
-val prerr_string : string -> unit
-val prerr_bytes : bytes -> unit
-val prerr_int : int -> unit
-val prerr_float : float -> unit
-val prerr_endline : string -> unit
-val prerr_newline : unit -> unit
-val read_line : unit -> string
-val read_int_opt : unit -> int option
-val read_int : unit -> int
-val read_float_opt : unit -> float option
-val read_float : unit -> float
-type open_flag =
-  | Open_rdonly 
-  | Open_wronly 
-  | Open_append 
-  | Open_creat 
-  | Open_trunc 
-  | Open_excl 
-  | Open_binary 
-  | Open_text 
-  | Open_nonblock 
-val open_out : string -> out_channel
-val open_out_bin : string -> out_channel
-val open_out_gen : open_flag list -> int -> string -> out_channel
-val flush : out_channel -> unit
-val flush_all : unit -> unit
-val output_char : out_channel -> char -> unit
-val output_string : out_channel -> string -> unit
-val output_bytes : out_channel -> bytes -> unit
-val output : out_channel -> bytes -> int -> int -> unit
-val output_substring : out_channel -> string -> int -> int -> unit
-val output_byte : out_channel -> int -> unit
-val output_binary_int : out_channel -> int -> unit
-val output_value : out_channel -> 'a -> unit
-val seek_out : out_channel -> int -> unit
-val pos_out : out_channel -> int
-val out_channel_length : out_channel -> int
-val close_out : out_channel -> unit
-val close_out_noerr : out_channel -> unit
-val set_binary_mode_out : out_channel -> bool -> unit
-val open_in : string -> in_channel
-val open_in_bin : string -> in_channel
-val open_in_gen : open_flag list -> int -> string -> in_channel
-val input_char : in_channel -> char
-val input_line : in_channel -> string
-val input : in_channel -> bytes -> int -> int -> int
-val really_input : in_channel -> bytes -> int -> int -> unit
-val really_input_string : in_channel -> int -> string
-val input_byte : in_channel -> int
-val input_binary_int : in_channel -> int
-val input_value : in_channel -> 'a
-val seek_in : in_channel -> int -> unit
-val pos_in : in_channel -> int
-val in_channel_length : in_channel -> int
-val close_in : in_channel -> unit
-val close_in_noerr : in_channel -> unit
-val set_binary_mode_in : in_channel -> bool -> unit
-module LargeFile :
-sig
-  val seek_out : out_channel -> int64 -> unit
-  val pos_out : out_channel -> int64
-  val out_channel_length : out_channel -> int64
-  val seek_in : in_channel -> int64 -> unit
-  val pos_in : in_channel -> int64
-  val in_channel_length : in_channel -> int64
-end
-type 'a ref = {
-  mutable contents: 'a }
-external ref : 'a -> 'a ref = "%makemutable"
-external (!) : 'a ref -> 'a = "%field0"
-external (:=) : 'a ref -> 'a -> unit = "%setfield0"
-external incr : int ref -> unit = "%incr"
-external decr : int ref -> unit = "%decr"
-type ('a, 'b) result =
-  | Ok of 'a 
-  | Error of 'b 
-type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-  ('a, 'b, 'c, 'd, 'e, 'f) CamlinternalFormatBasics.format6
-type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
-type ('a, 'b, 'c) format = ('a, 'b, 'c, 'c) format4
-val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 -> string
-external format_of_string :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 -> ('a, 'b, 'c, 'd, 'e, 'f) format6 =
-    "%identity"
-val (^^) :
-  ('a, 'b, 'c, 'd, 'e, 'f) format6 ->
-    ('f, 'b, 'c, 'e, 'g, 'h) format6 -> ('a, 'b, 'c, 'd, 'g, 'h) format6
-val exit : int -> 'a
-val at_exit : (unit -> unit) -> unit
-val valid_float_lexem : string -> string
-val unsafe_really_input : in_channel -> bytes -> int -> int -> unit
-val do_at_exit : unit -> unit
-module Arg = Arg
-module Array = Array
-module ArrayLabels = ArrayLabels
-module Atomic = Atomic
-module Bigarray = Bigarray
-module Bool = Bool
-module Buffer = Buffer
-module Bytes = Bytes
-module BytesLabels = BytesLabels
-module Callback = Callback
-module Char = Char
-module Complex = Complex
-module Digest = Digest
-module Either = Either
-module Ephemeron = Ephemeron
-module Filename = Filename
-module Float = Float
-module Format = Format
-module Fun = Fun
-module Gc = Gc
-module Genlex = Genlex
-module Hashtbl = Hashtbl
-module In_channel = In_channel
-module Int = Int
-module Int32 = Int32
-module Int64 = Int64
-module Lazy = Lazy
-module Lexing = Lexing
-module List = List
-module ListLabels = ListLabels
-module Map = Map
-module Marshal = Marshal
-module MoreLabels = MoreLabels
-module Nativeint = Nativeint
-module Obj = Obj
-module Oo = Oo
-module Option = Option
-module Out_channel = Out_channel
-module Parsing = Parsing
-module Pervasives = Pervasives
-module Printexc = Printexc
-module Printf = Printf
-module Queue = Queue
-module Random = Random
-module Result = Result
-module Scanf = Scanf
-module Seq = Seq
-module Set = Set
-module Stack = Stack
-module StdLabels = StdLabels
-module Stream = Stream
-module String = String
-module StringLabels = StringLabels
-module Sys = Sys
-module Uchar = Uchar
-module Unit = Unit
-module Weak = Weak
diff --git a/interfaces/4.14/stream.mli b/interfaces/4.14/stream.mli
deleted file mode 100644
index 2b489ec..0000000
--- a/interfaces/4.14/stream.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-type !'a t
-exception Failure 
-exception Error of string 
-val from : (int -> 'a option) -> 'a t
-val of_list : 'a list -> 'a t
-val of_string : string -> char t
-val of_bytes : bytes -> char t
-val of_channel : in_channel -> char t
-val iter : ('a -> unit) -> 'a t -> unit
-val next : 'a t -> 'a
-val empty : 'a t -> unit
-val peek : 'a t -> 'a option
-val junk : 'a t -> unit
-val count : 'a t -> int
-val npeek : int -> 'a t -> 'a list
-val iapp : 'a t -> 'a t -> 'a t
-val icons : 'a -> 'a t -> 'a t
-val ising : 'a -> 'a t
-val lapp : (unit -> 'a t) -> 'a t -> 'a t
-val lcons : (unit -> 'a) -> 'a t -> 'a t
-val lsing : (unit -> 'a) -> 'a t
-val sempty : 'a t
-val slazy : (unit -> 'a t) -> 'a t
-val dump : ('a -> unit) -> 'a t -> unit
diff --git a/interfaces/4.14/string.mli b/interfaces/4.14/string.mli
deleted file mode 100644
index 44cc2a8..0000000
--- a/interfaces/4.14/string.mli
+++ /dev/null
@@ -1,80 +0,0 @@
-type t = string
-val make : int -> char -> string
-val init : int -> (int -> char) -> string
-val empty : string
-val of_bytes : bytes -> string
-val to_bytes : string -> bytes
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-val concat : string -> string list -> string
-val cat : string -> string -> string
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val starts_with : prefix:string -> string -> bool
-val ends_with : suffix:string -> string -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val contains : string -> char -> bool
-val sub : string -> int -> int -> string
-val split_on_char : char -> string -> string list
-val map : (char -> char) -> string -> string
-val mapi : (int -> char -> char) -> string -> string
-val fold_left : ('a -> char -> 'a) -> 'a -> string -> 'a
-val fold_right : (char -> 'a -> 'a) -> string -> 'a -> 'a
-val for_all : (char -> bool) -> string -> bool
-val exists : (char -> bool) -> string -> bool
-val trim : string -> string
-val escaped : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-val iter : (char -> unit) -> string -> unit
-val iteri : (int -> char -> unit) -> string -> unit
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_utf_8_uchar : t -> int -> Uchar.utf_decode
-val is_valid_utf_8 : t -> bool
-val get_utf_16be_uchar : t -> int -> Uchar.utf_decode
-val is_valid_utf_16be : t -> bool
-val get_utf_16le_uchar : t -> int -> Uchar.utf_decode
-val is_valid_utf_16le : t -> bool
-external create : int -> bytes = "caml_create_string"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-val blit : string -> int -> bytes -> int -> int -> unit
-val copy : string -> string
-val fill : bytes -> int -> int -> char -> unit
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val get_uint8 : string -> int -> int
-val get_int8 : string -> int -> int
-val get_uint16_ne : string -> int -> int
-val get_uint16_be : string -> int -> int
-val get_uint16_le : string -> int -> int
-val get_int16_ne : string -> int -> int
-val get_int16_be : string -> int -> int
-val get_int16_le : string -> int -> int
-val get_int32_ne : string -> int -> int32
-val get_int32_be : string -> int -> int32
-val get_int32_le : string -> int -> int32
-val get_int64_ne : string -> int -> int64
-val get_int64_be : string -> int -> int64
-val get_int64_le : string -> int -> int64
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  string -> int -> bytes -> int -> int -> unit = "caml_blit_string"[@@noalloc
-                                                                    ]
-external unsafe_fill :
-  bytes -> int -> int -> char -> unit = "caml_fill_string"[@@noalloc ]
diff --git a/interfaces/4.14/stringLabels.mli b/interfaces/4.14/stringLabels.mli
deleted file mode 100644
index e925318..0000000
--- a/interfaces/4.14/stringLabels.mli
+++ /dev/null
@@ -1,82 +0,0 @@
-type t = string
-val make : int -> char -> string
-val init : int -> f:(int -> char) -> string
-val empty : string
-val of_bytes : bytes -> string
-val to_bytes : string -> bytes
-external length : string -> int = "%string_length"
-external get : string -> int -> char = "%string_safe_get"
-val concat : sep:string -> string list -> string
-val cat : string -> string -> string
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val starts_with : prefix:string -> string -> bool
-val ends_with : suffix:string -> string -> bool
-val contains_from : string -> int -> char -> bool
-val rcontains_from : string -> int -> char -> bool
-val contains : string -> char -> bool
-val sub : string -> pos:int -> len:int -> string
-val split_on_char : sep:char -> string -> string list
-val map : f:(char -> char) -> string -> string
-val mapi : f:(int -> char -> char) -> string -> string
-val fold_left : f:('a -> char -> 'a) -> init:'a -> string -> 'a
-val fold_right : f:(char -> 'a -> 'a) -> string -> init:'a -> 'a
-val for_all : f:(char -> bool) -> string -> bool
-val exists : f:(char -> bool) -> string -> bool
-val trim : string -> string
-val escaped : string -> string
-val uppercase_ascii : string -> string
-val lowercase_ascii : string -> string
-val capitalize_ascii : string -> string
-val uncapitalize_ascii : string -> string
-val iter : f:(char -> unit) -> string -> unit
-val iteri : f:(int -> char -> unit) -> string -> unit
-val index_from : string -> int -> char -> int
-val index_from_opt : string -> int -> char -> int option
-val rindex_from : string -> int -> char -> int
-val rindex_from_opt : string -> int -> char -> int option
-val index : string -> char -> int
-val index_opt : string -> char -> int option
-val rindex : string -> char -> int
-val rindex_opt : string -> char -> int option
-val to_seq : t -> char Seq.t
-val to_seqi : t -> (int * char) Seq.t
-val of_seq : char Seq.t -> t
-val get_utf_8_uchar : t -> int -> Uchar.utf_decode
-val is_valid_utf_8 : t -> bool
-val get_utf_16be_uchar : t -> int -> Uchar.utf_decode
-val is_valid_utf_16be : t -> bool
-val get_utf_16le_uchar : t -> int -> Uchar.utf_decode
-val is_valid_utf_16le : t -> bool
-external create : int -> bytes = "caml_create_string"
-external set : bytes -> int -> char -> unit = "%string_safe_set"
-val blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
-val copy : string -> string
-val fill : bytes -> pos:int -> len:int -> char -> unit
-val uppercase : string -> string
-val lowercase : string -> string
-val capitalize : string -> string
-val uncapitalize : string -> string
-val get_uint8 : string -> int -> int
-val get_int8 : string -> int -> int
-val get_uint16_ne : string -> int -> int
-val get_uint16_be : string -> int -> int
-val get_uint16_le : string -> int -> int
-val get_int16_ne : string -> int -> int
-val get_int16_be : string -> int -> int
-val get_int16_le : string -> int -> int
-val get_int32_ne : string -> int -> int32
-val get_int32_be : string -> int -> int32
-val get_int32_le : string -> int -> int32
-val get_int64_ne : string -> int -> int64
-val get_int64_be : string -> int -> int64
-val get_int64_le : string -> int -> int64
-external unsafe_get : string -> int -> char = "%string_unsafe_get"
-external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
-external unsafe_blit :
-  src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit =
-    "caml_blit_string"[@@noalloc ]
-external unsafe_fill :
-  bytes -> pos:int -> len:int -> char -> unit = "caml_fill_string"[@@noalloc
-                                                                    ]
diff --git a/interfaces/4.14/sys.mli b/interfaces/4.14/sys.mli
deleted file mode 100644
index 76aa390..0000000
--- a/interfaces/4.14/sys.mli
+++ /dev/null
@@ -1,103 +0,0 @@
-external argv : string array = "%sys_argv"
-val executable_name : string
-external file_exists : string -> bool = "caml_sys_file_exists"
-external is_directory : string -> bool = "caml_sys_is_directory"
-external remove : string -> unit = "caml_sys_remove"
-external rename : string -> string -> unit = "caml_sys_rename"
-external getenv : string -> string = "caml_sys_getenv"
-val getenv_opt : string -> string option
-external command : string -> int = "caml_sys_system_command"
-external time :
-  unit -> ((float)[@unboxed ]) = "caml_sys_time" "caml_sys_time_unboxed"
-[@@noalloc ]
-external chdir : string -> unit = "caml_sys_chdir"
-external mkdir : string -> int -> unit = "caml_sys_mkdir"
-external rmdir : string -> unit = "caml_sys_rmdir"
-external getcwd : unit -> string = "caml_sys_getcwd"
-external readdir : string -> string array = "caml_sys_read_directory"
-val interactive : bool ref
-val os_type : string
-type backend_type =
-  | Native 
-  | Bytecode 
-  | Other of string 
-val backend_type : backend_type
-val unix : bool
-val win32 : bool
-val cygwin : bool
-val word_size : int
-val int_size : int
-val big_endian : bool
-val max_string_length : int
-val max_array_length : int
-val max_floatarray_length : int
-external runtime_variant : unit -> string = "caml_runtime_variant"
-external runtime_parameters : unit -> string = "caml_runtime_parameters"
-type signal_behavior =
-  | Signal_default 
-  | Signal_ignore 
-  | Signal_handle of (int -> unit) 
-external signal :
-  int -> signal_behavior -> signal_behavior = "caml_install_signal_handler"
-val set_signal : int -> signal_behavior -> unit
-val sigabrt : int
-val sigalrm : int
-val sigfpe : int
-val sighup : int
-val sigill : int
-val sigint : int
-val sigkill : int
-val sigpipe : int
-val sigquit : int
-val sigsegv : int
-val sigterm : int
-val sigusr1 : int
-val sigusr2 : int
-val sigchld : int
-val sigcont : int
-val sigstop : int
-val sigtstp : int
-val sigttin : int
-val sigttou : int
-val sigvtalrm : int
-val sigprof : int
-val sigbus : int
-val sigpoll : int
-val sigsys : int
-val sigtrap : int
-val sigurg : int
-val sigxcpu : int
-val sigxfsz : int
-exception Break 
-val catch_break : bool -> unit
-val ocaml_version : string
-val development_version : bool
-type extra_prefix =
-  | Plus 
-  | Tilde 
-type extra_info = (extra_prefix * string)
-type ocaml_release_info =
-  {
-  major: int ;
-  minor: int ;
-  patchlevel: int ;
-  extra: extra_info option }
-val ocaml_release : ocaml_release_info
-val enable_runtime_warnings : bool -> unit
-val runtime_warnings_enabled : unit -> bool
-external opaque_identity : 'a -> 'a = "%opaque"
-module Immediate64 :
-sig
-  module type Non_immediate  = sig type t end
-  module type Immediate  = sig type t[@@immediate ] end
-  module Make :
-  functor (Immediate : Immediate) ->
-    functor (Non_immediate : Non_immediate) ->
-      sig
-        type t[@@immediate64 ]
-        type 'a repr =
-          | Immediate: Immediate.t repr 
-          | Non_immediate: Non_immediate.t repr 
-        val repr : t repr
-      end
-end
diff --git a/interfaces/4.14/uchar.mli b/interfaces/4.14/uchar.mli
deleted file mode 100644
index 3a269c7..0000000
--- a/interfaces/4.14/uchar.mli
+++ /dev/null
@@ -1,26 +0,0 @@
-type t[@@immediate ]
-val min : t
-val max : t
-val bom : t
-val rep : t
-val succ : t -> t
-val pred : t -> t
-val is_valid : int -> bool
-val of_int : int -> t
-val unsafe_of_int : int -> t
-val to_int : t -> int
-val is_char : t -> bool
-val of_char : char -> t
-val to_char : t -> char
-val unsafe_to_char : t -> char
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val hash : t -> int
-type utf_decode[@@immediate ]
-val utf_decode_is_valid : utf_decode -> bool
-val utf_decode_uchar : utf_decode -> t
-val utf_decode_length : utf_decode -> int
-val utf_decode : int -> t -> utf_decode
-val utf_decode_invalid : int -> utf_decode
-val utf_8_byte_length : t -> int
-val utf_16_byte_length : t -> int
diff --git a/interfaces/4.14/unit.mli b/interfaces/4.14/unit.mli
deleted file mode 100644
index 1efbc15..0000000
--- a/interfaces/4.14/unit.mli
+++ /dev/null
@@ -1,5 +0,0 @@
-type t = unit =
-  | () 
-val equal : t -> t -> bool
-val compare : t -> t -> int
-val to_string : t -> string
diff --git a/interfaces/4.14/weak.mli b/interfaces/4.14/weak.mli
deleted file mode 100644
index 871874d..0000000
--- a/interfaces/4.14/weak.mli
+++ /dev/null
@@ -1,46 +0,0 @@
-type !'a t
-val create : int -> 'a t
-val length : 'a t -> int
-val set : 'a t -> int -> 'a option -> unit
-val get : 'a t -> int -> 'a option
-val get_copy : 'a t -> int -> 'a option
-val check : 'a t -> int -> bool
-val fill : 'a t -> int -> int -> 'a option -> unit
-val blit : 'a t -> int -> 'a t -> int -> int -> unit
-module type S  =
-  sig
-    type data
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
-module Make :
-functor (H : Hashtbl.HashedType) ->
-  sig
-    type data = H.t
-    type t
-    val create : int -> t
-    val clear : t -> unit
-    val merge : t -> data -> data
-    val add : t -> data -> unit
-    val remove : t -> data -> unit
-    val find : t -> data -> data
-    val find_opt : t -> data -> data option
-    val find_all : t -> data -> data list
-    val mem : t -> data -> bool
-    val iter : (data -> unit) -> t -> unit
-    val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
-    val count : t -> int
-    val stats : t -> (int * int * int * int * int * int)
-  end
diff --git a/stdcompat.ml b/stdcompat.ml
new file mode 100644
index 0000000..7d41eaa
--- /dev/null
+++ b/stdcompat.ml
@@ -0,0 +1,5 @@
+include Stdcompat__root
+
+module Stdlib = Stdcompat__stdlib
+
+include Stdcompat__stdlib
diff --git a/stdcompat__arg.ml.in b/stdcompat__arg.ml.in
index 39821a7..979671a 100644
--- a/stdcompat__arg.ml.in
+++ b/stdcompat__arg.ml.in
@@ -95,11 +95,11 @@ let usage_string l msg =
 @END_BEFORE_3_12_0@
 
 @BEGIN_FROM_3_08_0@
-let align ?limit l =
+let align ?limit:_limit l =
   expand_list (Arg.align (no_expand_list l))
 @END_FROM_3_08_0@
 @BEGIN_BEFORE_3_08_0@
-let align ?limit l =
+let align ?limit:_limit _l =
   not_implemented ()
 @END_BEFORE_3_08_0@
 
@@ -168,7 +168,7 @@ let write_arg =
 let write_arg0 =
   write_aux '\x00'
 
-let parse_argv_dynamic ?current _ =
+let parse_argv_dynamic ?current:_current _ =
   not_implemented ()
 
 let parse_dynamic _ =
diff --git a/stdcompat__arg.mli b/stdcompat__arg.mli
new file mode 100644
index 0000000..a500d9e
--- /dev/null
+++ b/stdcompat__arg.mli
@@ -0,0 +1 @@
+include Stdcompat__arg_s.S
diff --git a/stdcompat__array.mli b/stdcompat__array.mli
new file mode 100644
index 0000000..2377b04
--- /dev/null
+++ b/stdcompat__array.mli
@@ -0,0 +1 @@
+include Stdcompat__array_s.S
diff --git a/stdcompat__arrayLabels.mli b/stdcompat__arrayLabels.mli
new file mode 100644
index 0000000..7f4a0a6
--- /dev/null
+++ b/stdcompat__arrayLabels.mli
@@ -0,0 +1 @@
+include Stdcompat__arrayLabels_s.S
diff --git a/stdcompat__atomic.mli b/stdcompat__atomic.mli
new file mode 100644
index 0000000..35c636f
--- /dev/null
+++ b/stdcompat__atomic.mli
@@ -0,0 +1 @@
+include Stdcompat__atomic_s.S
diff --git a/stdcompat__bool.mli b/stdcompat__bool.mli
new file mode 100644
index 0000000..a6ef717
--- /dev/null
+++ b/stdcompat__bool.mli
@@ -0,0 +1 @@
+include Stdcompat__bool_s.S
diff --git a/stdcompat__buffer.mli b/stdcompat__buffer.mli
new file mode 100644
index 0000000..7d44d84
--- /dev/null
+++ b/stdcompat__buffer.mli
@@ -0,0 +1 @@
+include Stdcompat__buffer_s.S
diff --git a/stdcompat__bytes.mli b/stdcompat__bytes.mli
new file mode 100644
index 0000000..e1ed7e4
--- /dev/null
+++ b/stdcompat__bytes.mli
@@ -0,0 +1 @@
+include Stdcompat__bytes_s.S
diff --git a/stdcompat__bytesLabels.mli b/stdcompat__bytesLabels.mli
new file mode 100644
index 0000000..2aa6915
--- /dev/null
+++ b/stdcompat__bytesLabels.mli
@@ -0,0 +1 @@
+include Stdcompat__bytesLabels_s.S
diff --git a/stdcompat__char.mli b/stdcompat__char.mli
new file mode 100644
index 0000000..ff8644c
--- /dev/null
+++ b/stdcompat__char.mli
@@ -0,0 +1 @@
+include Stdcompat__char_s.S
diff --git a/stdcompat__digest.mli b/stdcompat__digest.mli
new file mode 100644
index 0000000..8333a83
--- /dev/null
+++ b/stdcompat__digest.mli
@@ -0,0 +1 @@
+include Stdcompat__digest_s.S
diff --git a/stdcompat__either.mli b/stdcompat__either.mli
new file mode 100644
index 0000000..298ac85
--- /dev/null
+++ b/stdcompat__either.mli
@@ -0,0 +1 @@
+include Stdcompat__either_s.S
diff --git a/stdcompat__ephemeron.mli b/stdcompat__ephemeron.mli
new file mode 100644
index 0000000..0f99339
--- /dev/null
+++ b/stdcompat__ephemeron.mli
@@ -0,0 +1 @@
+include Stdcompat__ephemeron_s.S
diff --git a/stdcompat__filename.mli b/stdcompat__filename.mli
new file mode 100644
index 0000000..667b60b
--- /dev/null
+++ b/stdcompat__filename.mli
@@ -0,0 +1 @@
+include Stdcompat__filename_s.S
diff --git a/stdcompat__float.ml.in b/stdcompat__float.ml.in
index 30f199d..48de3cd 100644
--- a/stdcompat__float.ml.in
+++ b/stdcompat__float.ml.in
@@ -170,7 +170,7 @@ module Array = struct
   let mem_ieee x a =
     exists (( = ) x) a
 
-  let sort p a =
+  let sort _p _a =
     failwith "unimplemented"
 
   let stable_sort = sort
@@ -237,49 +237,36 @@ type fpclass = Pervasives.fpclass =
       | FP_nan 
  *)
 type t = float
-(** @since 4.07.0: type t = float
- *)
+
 let infinity = Pervasives.infinity
-(** @since 4.07.0: val infinity : float
- *)
+
 let neg_infinity = Pervasives.neg_infinity
-(** @since 4.07.0: val neg_infinity : float
- *)
+
 let nan = Pervasives.nan
-(** @since 4.07.0: val nan : float
- *)
+
 @BEGIN_FROM_4_03_0@
 let pi = 0x1.921fb54442d18p+1
 @END_FROM_4_03_0@
 @BEGIN_BEFORE_4_03_0@
 let pi = 4. *. atan 1.
 @END_BEFORE_4_03_0@
-(** @since 4.07.0: val pi : float
- *)
+
 let max_float = Pervasives.max_float
-(** @since 4.07.0: val max_float : float
- *)
+
 let min_float = Pervasives.min_float
-(** @since 4.07.0: val min_float : float
- *)
+
 let epsilon = Pervasives.epsilon_float
-(** @since 4.07.0: val epsilon : float
- *)
+
 let of_string_opt = Stdcompat__pervasives.float_of_string_opt
-(** @since 4.07.0: val of_string_opt : string -> float option
- *)
+
 let to_string = Pervasives.string_of_float
-(** @since 4.07.0: val to_string : float -> string
- *)
+
 external compare : float -> float -> int = "%compare"
-(** @since 4.07.0: val compare : t -> t -> int
- *)
+
 let equal x y = compare x y = 0
-(** @since 4.07.0: val equal : t -> t -> bool
- *)
+
 let hash = Hashtbl.hash
-(** @since 4.07.0: val hash : t -> int
- *)
+
 @BEGIN_FROM_4_03_0@
 external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
 [@@unboxed ][@@noalloc ]
@@ -294,14 +281,7 @@ let hypot = Stdcompat__pervasives.hypot
 @END_BEFORE_4_00_0@
 
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external hypot :
-      float -> float -> float = "caml_hypot_float" "caml_hypot"[@@unboxed ]
-    [@@noalloc ]
-@since 4.00.0:
-external hypot :
-  float -> float -> float = "caml_hypot_float" "caml_hypot" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external expm1 : float -> float = "caml_expm1_float" "caml_expm1"[@@unboxed ]
 [@@noalloc ]
@@ -315,12 +295,7 @@ let expm1 = Stdcompat__pervasives.expm1
 @END_BEFORE_3_12_0@
 
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external expm1 : float -> float = "caml_expm1_float" "caml_expm1"
-    [@@unboxed ][@@noalloc ]
-@since 3.12.0:
-external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external log1p : float -> float = "caml_log1p_float" "caml_log1p"[@@unboxed ]
 [@@noalloc ]
@@ -334,22 +309,17 @@ let log1p = Stdcompat__pervasives.log1p
 @END_BEFORE_3_12_0@
 
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external log1p : float -> float = "caml_log1p_float" "caml_log1p"
-    [@@unboxed ][@@noalloc ]
-@since 3.12.0:
-external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float"
- *)
+
 external neg : float -> float = "%negfloat"
-(** Alias for {!Float.neg} *)
+
 external add : float -> float -> float = "%addfloat"
-(** Alias for {!Float.add} *)
+
 external sub : float -> float -> float = "%subfloat"
-(** Alias for {!Float.sub} *)
+
 external mul : float -> float -> float = "%mulfloat"
-(** Alias for {!Float.mul} *)
+
 external div : float -> float -> float = "%divfloat"
-(** Alias for {!Float.div} *)
+
 @BEGIN_FROM_4_03_0@
 external rem : float -> float -> float = "caml_fmod_float" "fmod"[@@unboxed ]
 [@@noalloc ]
@@ -362,25 +332,20 @@ external rem : float -> float -> float = "caml_fmod_float" "fmod" "float"
 external rem : float -> float -> float = "fmod_float" "fmod" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external rem : float -> float -> float = "caml_fmod_float" "fmod"
-    [@@unboxed ][@@noalloc ]
-@since 3.11.0:
-external rem : float -> float -> float = "caml_fmod_float" "fmod" "float"
- *)
+
 external abs : float -> float = "%absfloat"
-(** Alias for {!Float.abs} *)
+
 external of_int : int -> float = "%floatofint"
-(** Alias for {!Float.of_int} *)
+
 external to_int : float -> int = "%intoffloat"
-(** Alias for {!Float.to_int} *)
+
 @BEGIN_FROM_3_08_0@
 external of_string : string -> float = "caml_float_of_string"
 @END_FROM_3_08_0@
 @BEGIN_BEFORE_3_08_0@
 external of_string : string -> float = "float_of_string"
 @END_BEFORE_3_08_0@
-(** Alias for {!Float.of_string} *)
+
 @BEGIN_FROM_4_03_0@
 external classify_float :
   ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
@@ -394,13 +359,7 @@ external classify_float : float -> fpclass = "caml_classify_float"
 external classify_float : float -> fpclass = "classify_float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external classify_float :
-      ((float)[@unboxed ]) -> fpclass = "caml_classify_float"
-        "caml_classify_float_unboxed"[@@noalloc ]
-@since 3.11.0:
-external classify_float : float -> fpclass = "caml_classify_float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external pow : float -> float -> float = "caml_power_float" "pow"[@@unboxed ]
 [@@noalloc ]
@@ -413,12 +372,7 @@ external pow : float -> float -> float = "caml_power_float" "pow" "float"
 external pow : float -> float -> float = "power_float" "pow" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external pow : float -> float -> float = "caml_power_float" "pow"
-    [@@unboxed ][@@noalloc ]
-@since 3.11.0:
-external pow : float -> float -> float = "caml_power_float" "pow" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
 [@@noalloc ]
@@ -431,12 +385,7 @@ external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
 external sqrt : float -> float = "sqrt_float" "sqrt" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external sqrt : float -> float = "caml_sqrt_float" "sqrt"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ][@@noalloc
                                                                     ]
@@ -449,11 +398,7 @@ external exp : float -> float = "caml_exp_float" "exp" "float"
 external exp : float -> float = "exp_float" "exp" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external exp : float -> float = "caml_exp_float" "exp"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0: external exp : float -> float = "caml_exp_float" "exp" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external log : float -> float = "caml_log_float" "log"[@@unboxed ][@@noalloc
                                                                     ]
@@ -466,11 +411,7 @@ external log : float -> float = "caml_log_float" "log" "float"
 external log : float -> float = "log_float" "log" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external log : float -> float = "caml_log_float" "log"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0: external log : float -> float = "caml_log_float" "log" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
 [@@noalloc ]
@@ -483,12 +424,7 @@ external log10 : float -> float = "caml_log10_float" "log10" "float"
 external log10 : float -> float = "log10_float" "log10" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external log10 : float -> float = "caml_log10_float" "log10"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external log10 : float -> float = "caml_log10_float" "log10" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ][@@noalloc
                                                                     ]
@@ -501,11 +437,7 @@ external cos : float -> float = "caml_cos_float" "cos" "float"
 external cos : float -> float = "cos_float" "cos" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external cos : float -> float = "caml_cos_float" "cos"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0: external cos : float -> float = "caml_cos_float" "cos" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ][@@noalloc
                                                                     ]
@@ -518,11 +450,7 @@ external sin : float -> float = "caml_sin_float" "sin" "float"
 external sin : float -> float = "sin_float" "sin" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external sin : float -> float = "caml_sin_float" "sin"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0: external sin : float -> float = "caml_sin_float" "sin" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ][@@noalloc
                                                                     ]
@@ -535,11 +463,7 @@ external tan : float -> float = "caml_tan_float" "tan" "float"
 external tan : float -> float = "tan_float" "tan" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external tan : float -> float = "caml_tan_float" "tan"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0: external tan : float -> float = "caml_tan_float" "tan" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
 [@@noalloc ]
@@ -552,12 +476,7 @@ external acos : float -> float = "caml_acos_float" "acos" "float"
 external acos : float -> float = "acos_float" "acos" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external acos : float -> float = "caml_acos_float" "acos"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external acos : float -> float = "caml_acos_float" "acos" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
 [@@noalloc ]
@@ -570,12 +489,7 @@ external asin : float -> float = "caml_asin_float" "asin" "float"
 external asin : float -> float = "asin_float" "asin" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external asin : float -> float = "caml_asin_float" "asin"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external asin : float -> float = "caml_asin_float" "asin" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
 [@@noalloc ]
@@ -588,12 +502,7 @@ external atan : float -> float = "caml_atan_float" "atan" "float"
 external atan : float -> float = "atan_float" "atan" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external atan : float -> float = "caml_atan_float" "atan"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external atan : float -> float = "caml_atan_float" "atan" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
 [@@unboxed ][@@noalloc ]
@@ -606,12 +515,7 @@ external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
 external atan2 : float -> float -> float = "atan2_float" "atan2" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
-    [@@unboxed ][@@noalloc ]
-@since 3.11.0:
-external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
 [@@noalloc ]
@@ -624,12 +528,7 @@ external cosh : float -> float = "caml_cosh_float" "cosh" "float"
 external cosh : float -> float = "cosh_float" "cosh" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external cosh : float -> float = "caml_cosh_float" "cosh"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external cosh : float -> float = "caml_cosh_float" "cosh" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
 [@@noalloc ]
@@ -642,12 +541,7 @@ external sinh : float -> float = "caml_sinh_float" "sinh" "float"
 external sinh : float -> float = "sinh_float" "sinh" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external sinh : float -> float = "caml_sinh_float" "sinh"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external sinh : float -> float = "caml_sinh_float" "sinh" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
 [@@noalloc ]
@@ -660,12 +554,7 @@ external tanh : float -> float = "caml_tanh_float" "tanh" "float"
 external tanh : float -> float = "tanh_float" "tanh" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external tanh : float -> float = "caml_tanh_float" "tanh"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external tanh : float -> float = "caml_tanh_float" "tanh" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
 [@@noalloc ]
@@ -678,12 +567,7 @@ external ceil : float -> float = "caml_ceil_float" "ceil" "float"
 external ceil : float -> float = "ceil_float" "ceil" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external ceil : float -> float = "caml_ceil_float" "ceil"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external ceil : float -> float = "caml_ceil_float" "ceil" "float"
- *)
+
 @BEGIN_FROM_4_03_0@
 external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
 [@@noalloc ]
@@ -696,19 +580,14 @@ external floor : float -> float = "caml_floor_float" "floor" "float"
 external floor : float -> float = "floor_float" "floor" "float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external floor : float -> float = "caml_floor_float" "floor"[@@unboxed ]
-    [@@noalloc ]
-@since 3.11.0:
-external floor : float -> float = "caml_floor_float" "floor" "float"
- *)
+
 @BEGIN_FROM_3_08_0@
 external frexp : float -> (float * int) = "caml_frexp_float"
 @END_FROM_3_08_0@
 @BEGIN_BEFORE_3_08_0@
 external frexp : float -> (float * int) = "frexp_float"
 @END_BEFORE_3_08_0@
-(** Alias for {!Float.frexp} *)
+
 @BEGIN_FROM_4_03_0@
 external ldexp :
   ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
@@ -722,19 +601,14 @@ external ldexp : float -> int -> float = "caml_ldexp_float"
 external ldexp : float -> int -> float = "ldexp_float"
 @END_BEFORE_3_08_0@
 @END_BEFORE_4_03_0@
-(** @since 4.03.0:
-    external ldexp :
-      ((float)[@unboxed ]) -> ((int)[@untagged ]) -> ((float)[@unboxed ]) =
-        "caml_ldexp_float" "caml_ldexp_float_unboxed"[@@noalloc ]
-@since 3.11.0: external ldexp : float -> int -> float = "caml_ldexp_float"
- *)
+
 @BEGIN_FROM_3_08_0@
 external modf : float -> (float * float) = "caml_modf_float"
 @END_FROM_3_08_0@
 @BEGIN_BEFORE_3_08_0@
 external modf : float -> (float * float) = "modf_float"
 @END_BEFORE_3_08_0@
-(** Alias for {!Float.modf} *)
+
 @END_BEFORE_4_07_0@
 
 @BEGIN_BEFORE_4_08_0@
diff --git a/stdcompat__float.mli b/stdcompat__float.mli
new file mode 100644
index 0000000..b0d8f38
--- /dev/null
+++ b/stdcompat__float.mli
@@ -0,0 +1 @@
+include Stdcompat__float_s.S
diff --git a/stdcompat__format.ml.in b/stdcompat__format.ml.in
index 9448bf5..c72ccf3 100644
--- a/stdcompat__format.ml.in
+++ b/stdcompat__format.ml.in
@@ -18,9 +18,6 @@ type formatter_out_functions =
   out_spaces: int -> unit ;
   out_indent: int -> unit }
 
-let formatter_of_out_functions functions =
-  failwith "Not implemented."
-
 @BEGIN_FROM_4_01_0@
 let downgrade_formatter_out_functions functions =
   let { out_string; out_flush; out_newline; out_spaces; out_indent = _ } =
@@ -148,9 +145,6 @@ let pp_safe_set_geometry _ ~max_indent:_ ~margin:_ =
 let check_geometry _ =
   failwith "Not implemented."
 
-let pp_safe_set_geometry _ =
-  failwith "Not implemented."
-
 let pp_print_custom_break _ =
   failwith "Not implemented."
 
diff --git a/stdcompat__format.mli b/stdcompat__format.mli
new file mode 100644
index 0000000..d211827
--- /dev/null
+++ b/stdcompat__format.mli
@@ -0,0 +1 @@
+include Stdcompat__format_s.S
diff --git a/stdcompat__fun.mli b/stdcompat__fun.mli
new file mode 100644
index 0000000..d3999bf
--- /dev/null
+++ b/stdcompat__fun.mli
@@ -0,0 +1 @@
+include Stdcompat__fun_s.S
diff --git a/stdcompat__hashtbl.mli b/stdcompat__hashtbl.mli
new file mode 100644
index 0000000..5ee8908
--- /dev/null
+++ b/stdcompat__hashtbl.mli
@@ -0,0 +1 @@
+include Stdcompat__hashtbl_s.S
diff --git a/stdcompat__in_channel.ml.in b/stdcompat__in_channel.ml.in
index 4c39f76..f86bfd6 100644
--- a/stdcompat__in_channel.ml.in
+++ b/stdcompat__in_channel.ml.in
@@ -93,8 +93,12 @@ let rec add_channel_to_the_end ~chunk_size buffer channel =
     add_channel_to_the_end ~chunk_size buffer channel
 
 let input_all channel =
-  let buffer_size = in_channel_length channel - pos_in channel in
   let chunk_size = 65536 in
+  let buffer_size =
+    try
+      in_channel_length channel - pos_in channel
+    with Sys_error _ ->
+      -1 in
   let buffer = Buffer.create buffer_size in
   add_channel_to_the_end ~chunk_size buffer channel;
   Buffer.contents buffer
diff --git a/stdcompat__in_channel.mli b/stdcompat__in_channel.mli
new file mode 100644
index 0000000..040d793
--- /dev/null
+++ b/stdcompat__in_channel.mli
@@ -0,0 +1 @@
+include Stdcompat__in_channel_s.S
diff --git a/stdcompat__int.mli b/stdcompat__int.mli
new file mode 100644
index 0000000..55ac16c
--- /dev/null
+++ b/stdcompat__int.mli
@@ -0,0 +1 @@
+include Stdcompat__int_s.S
diff --git a/stdcompat__int32.mli b/stdcompat__int32.mli
new file mode 100644
index 0000000..c45def7
--- /dev/null
+++ b/stdcompat__int32.mli
@@ -0,0 +1 @@
+include Stdcompat__int32_s.S
diff --git a/stdcompat__int64.mli b/stdcompat__int64.mli
new file mode 100644
index 0000000..1bc257f
--- /dev/null
+++ b/stdcompat__int64.mli
@@ -0,0 +1 @@
+include Stdcompat__int64_s.S
diff --git a/stdcompat__lazy.mli b/stdcompat__lazy.mli
new file mode 100644
index 0000000..74208cf
--- /dev/null
+++ b/stdcompat__lazy.mli
@@ -0,0 +1 @@
+include Stdcompat__lazy_s.S
diff --git a/stdcompat__lexing.ml.in b/stdcompat__lexing.ml.in
index fdd55d0..6fc86a6 100644
--- a/stdcompat__lexing.ml.in
+++ b/stdcompat__lexing.ml.in
@@ -11,13 +11,13 @@ let set_filename lexbuf filename =
 @END_BEFORE_4_11_0@
 
 @BEGIN_BEFORE_4_08_0@
-let from_channel ?with_positions chan =
+let from_channel ?with_positions:_pos chan =
   from_channel chan
 
-let from_string ?with_positions s =
+let from_string ?with_positions:_pos s =
   from_string s
 
-let from_function ?with_positions f =
+let from_function ?with_positions:_pos f =
   from_function f
 
 let with_positions _lexbuf =
diff --git a/stdcompat__lexing.mli b/stdcompat__lexing.mli
new file mode 100644
index 0000000..f958021
--- /dev/null
+++ b/stdcompat__lexing.mli
@@ -0,0 +1 @@
+include Stdcompat__lexing_s.S
diff --git a/stdcompat__list.ml.in b/stdcompat__list.ml.in
index e019726..e5971ee 100644
--- a/stdcompat__list.ml.in
+++ b/stdcompat__list.ml.in
@@ -126,7 +126,7 @@ let rec init_aux i len f accu =
   else
     init_aux (succ i) len f (f i :: accu)
 
-let rec init len f =
+let init len f =
   if len < 0 then
     invalid_arg "List.init"
   else if len = 0 then
diff --git a/stdcompat__list.mli b/stdcompat__list.mli
new file mode 100644
index 0000000..f9fa6a7
--- /dev/null
+++ b/stdcompat__list.mli
@@ -0,0 +1 @@
+include Stdcompat__list_s.S
diff --git a/stdcompat__listLabels.mli b/stdcompat__listLabels.mli
new file mode 100644
index 0000000..b1165f9
--- /dev/null
+++ b/stdcompat__listLabels.mli
@@ -0,0 +1 @@
+include Stdcompat__listLabels_s.S
diff --git a/stdcompat__map.ml.in b/stdcompat__map.ml.in
index 355efc7..5a38670 100644
--- a/stdcompat__map.ml.in
+++ b/stdcompat__map.ml.in
@@ -69,16 +69,16 @@ module Make (Ord : OrderedType) = struct
     type 'a internal =
       | Empty
       | Node of 'a internal * key * 'a * 'a internal * int
+      @BEGIN_FROM_4_02_0@
+      [@@ocaml.warning "-37"]
+      @END_FROM_4_02_0@
 
+    @BEGIN_BEFORE_4_11_0@
     external t_of_internal : 'a internal -> 'a t = "%identity"
+    @END_BEFORE_4_11_0@
 
     external internal_of_t : 'a t -> 'a internal = "%identity"
 
-    let height map =
-      match map with
-      | Empty -> 0
-      | Node (_l, _v, _d, _r, h) -> h
-
     @BEGIN_BEFORE_4_05_0@
       let rec min_binding_aux l v d =
         match l with
@@ -121,6 +121,35 @@ module Make (Ord : OrderedType) = struct
         max_binding (internal_of_t map)
     @END_BEFORE_3_12_0@
 
+    @BEGIN_BEFORE_3_08_0@
+      let rec iter f = function
+        | Empty -> ()
+        | Node (l, v, d, r, _) as t ->
+            iter f l;
+            f v d;
+            iter f r
+
+      let iter (f : key -> 'a -> unit) (s : 'a t) : unit =
+        iter f (internal_of_t s)
+
+      let rec fold f s a =
+        match s with
+        | Empty -> a
+        | Node (l, v, d, r, _) as t ->
+            let a = fold f l a in
+            let a = f v d a in
+            fold f r a
+
+      let fold (f : key -> 'a -> 'b -> 'b) (s : 'a t) (a : 'b) : 'b =
+        fold f (internal_of_t s) a
+    @END_BEFORE_3_08_0@
+
+    @BEGIN_BEFORE_4_11_0@
+    let height map =
+      match map with
+      | Empty -> 0
+      | Node (_l, _v, _d, _r, h) -> h
+
     let create l x d r =
       Node (l, x, d, r, (max (height l) (height r)) + 1)
 
@@ -152,6 +181,13 @@ module Make (Ord : OrderedType) = struct
       else
         Node (l, x, d, r, (max hl hr) + 1)
 
+    let rec remove_min_binding map =
+      match map with
+      | Empty -> assert false
+      | Node (Empty, _v, _d, r, _h) -> r
+      | Node (l, v, d, r, _h) ->
+          bal (remove_min_binding l) v d r
+
     let rec add_min_binding k x map =
       match map with
       | Empty -> internal_of_t (singleton k x)
@@ -163,13 +199,6 @@ module Make (Ord : OrderedType) = struct
       | Node (l, v, d, r, _h) ->
           bal l v d (add_max_binding k x r)
 
-    let rec remove_min_binding map =
-      match map with
-      | Empty -> assert false
-      | Node (Empty, _v, _d, r, _h) -> r
-      | Node (l, v, d, r, _h) ->
-          bal (remove_min_binding l) v d r
-
     let rec join l v d r =
       match l, r with
       | Empty, _ -> add_min_binding v d r
@@ -190,30 +219,6 @@ module Make (Ord : OrderedType) = struct
           let x, d = min_binding (t_of_internal t2) in
           join t1 x d (remove_min_binding t2)
 
-    @BEGIN_BEFORE_3_08_0@
-      let rec iter f = function
-        | Empty -> ()
-        | Node (l, v, d, r, _) as t ->
-            iter f l;
-            f v d;
-            iter f r
-
-      let iter (f : key -> 'a -> unit) (s : 'a t) : unit =
-        iter f (internal_of_t s)
-
-      let rec fold f s a =
-        match s with
-        | Empty -> a
-        | Node (l, v, d, r, _) as t ->
-            let a = fold f l a in
-            let a = f v d a in
-            fold f r a
-
-      let fold (f : key -> 'a -> 'b -> 'b) (s : 'a t) (a : 'b) : 'b =
-        fold f (internal_of_t s) a
-    @END_BEFORE_3_08_0@
-
-    @BEGIN_BEFORE_4_11_0@
     let rec filter_map f = function
       | Empty -> Empty
       | Node (l, v, d, r, _) ->
diff --git a/stdcompat__map.mli b/stdcompat__map.mli
new file mode 100644
index 0000000..e267405
--- /dev/null
+++ b/stdcompat__map.mli
@@ -0,0 +1 @@
+include Stdcompat__map_s.S
diff --git a/stdcompat__moreLabels.mli b/stdcompat__moreLabels.mli
new file mode 100644
index 0000000..f8f6e0b
--- /dev/null
+++ b/stdcompat__moreLabels.mli
@@ -0,0 +1 @@
+include Stdcompat__moreLabels_s.S
diff --git a/stdcompat__native.ml_byte b/stdcompat__native.ml_byte
new file mode 100644
index 0000000..91a4d72
--- /dev/null
+++ b/stdcompat__native.ml_byte
@@ -0,0 +1 @@
+let native = false
diff --git a/stdcompat__native.ml_native b/stdcompat__native.ml_native
new file mode 100644
index 0000000..148a3c1
--- /dev/null
+++ b/stdcompat__native.ml_native
@@ -0,0 +1 @@
+let native = true
diff --git a/stdcompat__nativeint.mli b/stdcompat__nativeint.mli
new file mode 100644
index 0000000..fcc5e9c
--- /dev/null
+++ b/stdcompat__nativeint.mli
@@ -0,0 +1 @@
+include Stdcompat__nativeint_s.S
diff --git a/stdcompat__option.mli b/stdcompat__option.mli
new file mode 100644
index 0000000..159281e
--- /dev/null
+++ b/stdcompat__option.mli
@@ -0,0 +1 @@
+include Stdcompat__option_s.S
diff --git a/stdcompat__out_channel.mli b/stdcompat__out_channel.mli
new file mode 100644
index 0000000..3c2eb34
--- /dev/null
+++ b/stdcompat__out_channel.mli
@@ -0,0 +1 @@
+include Stdcompat__out_channel_s.S
diff --git a/stdcompat__pervasives.ml.in b/stdcompat__pervasives.ml.in
index 26e3e06..ccf1c78 100644
--- a/stdcompat__pervasives.ml.in
+++ b/stdcompat__pervasives.ml.in
@@ -50,8 +50,7 @@ type ('a, 'b, 'c, 'd, 'e, 'f) format6 =
   ('a, 'b, 'c, 'd, 'e, 'f) Stdcompat__init.format6
 
 @BEGIN_BEFORE_3_10_0@
-type ('a, 'b, 'c, 'd) format4 =
-  ('a, 'b, 'c, 'c, 'c, 'd) format6
+type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'c, 'c, 'd) format6
 @END_BEFORE_3_10_0@
 
 let __LOC__ = ""
diff --git a/stdcompat__pervasives.mli b/stdcompat__pervasives.mli
new file mode 100644
index 0000000..571e4e8
--- /dev/null
+++ b/stdcompat__pervasives.mli
@@ -0,0 +1 @@
+include Stdcompat__pervasives_s.S
diff --git a/stdcompat__printexc.mli b/stdcompat__printexc.mli
new file mode 100644
index 0000000..aed6e3d
--- /dev/null
+++ b/stdcompat__printexc.mli
@@ -0,0 +1 @@
+include Stdcompat__printexc_s.S
diff --git a/stdcompat__printf.ml.in b/stdcompat__printf.ml.in
index 44e0dc0..66340e8 100644
--- a/stdcompat__printf.ml.in
+++ b/stdcompat__printf.ml.in
@@ -7,7 +7,7 @@ let ikbprintf = not_implemented
 let ibprintf = not_implemented
 @END_BEFORE_4_11_0@
 
-@BEGIN_BEFORE_4_03_0@
+@BEGIN_BEFORE_4_02_0@
 let ifprintf = not_implemented
 
 let kbprintf = not_implemented
@@ -15,7 +15,7 @@ let kbprintf = not_implemented
 let kfprintf = not_implemented
 
 let ksprintf = not_implemented
-@END_BEFORE_4_03_0@
+@END_BEFORE_4_02_0@
 
 @BEGIN_BEFORE_4_01_0@
 let ikfprintf = not_implemented
diff --git a/stdcompat__printf.mli b/stdcompat__printf.mli
new file mode 100644
index 0000000..438ffe9
--- /dev/null
+++ b/stdcompat__printf.mli
@@ -0,0 +1 @@
+include Stdcompat__printf_s.S
diff --git a/stdcompat__printf_s.mli.in b/stdcompat__printf_s.mli.in
index a0a9900..663518f 100644
--- a/stdcompat__printf_s.mli.in
+++ b/stdcompat__printf_s.mli.in
@@ -14,12 +14,7 @@ val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
 (** @since 4.03.0: val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a *)
 @END_FROM_4_03_0@
 @BEGIN_BEFORE_4_03_0@
-@BEGIN_FROM_3_10_0@
 val ifprintf : 'b -> ('a, 'b, unit) format -> 'a
-@END_FROM_3_10_0@
-@BEGIN_BEFORE_3_10_0@
-val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a
-@END_BEFORE_3_10_0@
 @END_BEFORE_4_03_0@
 (** @since 4.03.0: val ifprintf : 'b -> ('a, 'b, 'c, unit) format4 -> 'a *)
 
diff --git a/stdcompat__queue.ml.in b/stdcompat__queue.ml.in
index 40cb904..f9b6365 100644
--- a/stdcompat__queue.ml.in
+++ b/stdcompat__queue.ml.in
@@ -13,6 +13,10 @@ let peek_opt q =
 @BEGIN_BEFORE_4_07_0@
 @BEGIN_WITH_MAGIC@
 @BEGIN_FROM_4_03_0@
+@BEGIN_FROM_4_00_0@
+[@@@ocaml.warning "-37"]
+@END_FROM_4_00_0@
+
 type 'a cell =
   | Nil
   | Cons of { content: 'a; mutable next: 'a cell }
diff --git a/stdcompat__queue.mli b/stdcompat__queue.mli
new file mode 100644
index 0000000..8584ccb
--- /dev/null
+++ b/stdcompat__queue.mli
@@ -0,0 +1 @@
+include Stdcompat__queue_s.S
diff --git a/stdcompat__random.mli b/stdcompat__random.mli
new file mode 100644
index 0000000..cae95a4
--- /dev/null
+++ b/stdcompat__random.mli
@@ -0,0 +1 @@
+include Stdcompat__random_s.S
diff --git a/stdcompat__result.mli b/stdcompat__result.mli
new file mode 100644
index 0000000..b9f8436
--- /dev/null
+++ b/stdcompat__result.mli
@@ -0,0 +1 @@
+include Stdcompat__result_s.S
diff --git a/stdcompat__seq.mli b/stdcompat__seq.mli
new file mode 100644
index 0000000..4678b15
--- /dev/null
+++ b/stdcompat__seq.mli
@@ -0,0 +1 @@
+include Stdcompat__seq_s.S
diff --git a/stdcompat__set.ml.in b/stdcompat__set.ml.in
index ef21834..9c47a40 100644
--- a/stdcompat__set.ml.in
+++ b/stdcompat__set.ml.in
@@ -57,88 +57,15 @@ module Make (Ord : OrderedType) = struct
 
   @BEGIN_WITH_MAGIC@
     type internal = Empty | Node of internal * elt * internal * int
+      @BEGIN_FROM_4_02_0@
+      [@@ocaml.warning "-37"]
+      @END_FROM_4_02_0@
 
+    @BEGIN_BEFORE_4_11_0@
     external t_of_internal : internal -> t = "%identity"
+    @END_BEFORE_4_11_0@
 
     external internal_of_t : t -> internal = "%identity"
-
-    let height = function
-      | Empty -> 0
-      | Node (_, _, _, h) -> h
-
-    let create l v r =
-      let hl = height l in
-      let hr = height r in
-      Node (l, v, r, (if hl >= hr then hl + 1 else hr + 1))
-
-    let bal l v r =
-      let hl = match l with Empty -> 0 | Node (_, _, _, h) -> h in
-      let hr = match r with Empty -> 0 | Node (_, _, _, h) -> h in
-      if hl > hr + 2 then begin
-        match l with
-          Empty -> invalid_arg "Set.bal"
-        | Node (ll, lv, lr, _) ->
-            if height ll >= height lr then
-              create ll lv (create lr v r)
-            else begin
-              match lr with
-                Empty -> invalid_arg "Set.bal"
-              | Node (lrl, lrv, lrr, _) ->
-                  create (create ll lv lrl) lrv (create lrr v r)
-            end
-      end else if hr > hl + 2 then begin
-        match r with
-          Empty -> invalid_arg "Set.bal"
-        | Node (rl, rv, rr, _) ->
-            if height rr >= height rl then
-              create (create l v rl) rv rr
-            else begin
-              match rl with
-                Empty -> invalid_arg "Set.bal"
-              | Node (rll, rlv, rlr, _) ->
-                  create (create l v rll) rlv (create rlr rv rr)
-            end
-      end else
-        Node (l, v, r, (if hl >= hr then hl + 1 else hr + 1))
-
-
-    let rec add_min_element x = function
-      | Empty -> internal_of_t (singleton x)
-      | Node (l, v, r, _) ->
-        bal (add_min_element x l) v r
-
-    let rec add_max_element x = function
-      | Empty -> internal_of_t (singleton x)
-      | Node (l, v, r, _) ->
-        bal l v (add_max_element x r)
-
-    let rec join l v r =
-      match (l, r) with
-        (Empty, _) -> add_min_element v r
-      | (_, Empty) -> add_max_element v l
-      | (Node (ll, lv, lr, lh), Node (rl, rv, rr, rh)) ->
-          if lh > rh + 2 then bal ll lv (join lr v r) else
-          if rh > lh + 2 then bal (join l v rl) rv rr else
-          create l v r
-
-    let try_join l v r =
-      if (l = Empty || Ord.compare (max_elt (t_of_internal l)) v < 0)
-          && (r = Empty || Ord.compare v (min_elt (t_of_internal r)) < 0)
-      then join l v r
-      else internal_of_t (union (t_of_internal l) (add v (t_of_internal r)))
-
-    let rec remove_min_elt = function
-      | Empty -> invalid_arg "Set.remove_min_elt"
-      | Node (Empty, _, r, _) -> r
-      | Node (l, v, r, _) -> bal (remove_min_elt l) v r
-
-    let try_concat t1 t2 =
-      match (t1, t2) with
-      | (Empty, t) -> t
-      | (t, Empty) -> t
-      | (_, _) ->
-          try_join t1 (min_elt (t_of_internal t2))
-            (remove_min_elt t2)
   @END_WITH_MAGIC@
 
   @BEGIN_BEFORE_4_12_0@
@@ -156,7 +83,7 @@ module Make (Ord : OrderedType) = struct
             Stdcompat__seq.Cons (x, rev_seq_of_enum_ (snoc_enum t rest))
 
       let to_rev_seq (s : t) =
-        let s : internal = Obj.magic s in
+        let s = internal_of_t s in
         rev_seq_of_enum_ (snoc_enum s End)
     @END_WITH_MAGIC@
     @BEGIN_WITHOUT_MAGIC@
@@ -203,6 +130,83 @@ module Make (Ord : OrderedType) = struct
 
   @BEGIN_BEFORE_4_11_0@
     @BEGIN_WITH_MAGIC@
+    let height = function
+      | Empty -> 0
+      | Node (_, _, _, h) -> h
+
+    let create l v r =
+      let hl = height l in
+      let hr = height r in
+      Node (l, v, r, (if hl >= hr then hl + 1 else hr + 1))
+
+    let bal l v r =
+      let hl = match l with Empty -> 0 | Node (_, _, _, h) -> h in
+      let hr = match r with Empty -> 0 | Node (_, _, _, h) -> h in
+      if hl > hr + 2 then begin
+        match l with
+          Empty -> invalid_arg "Set.bal"
+        | Node (ll, lv, lr, _) ->
+            if height ll >= height lr then
+              create ll lv (create lr v r)
+            else begin
+              match lr with
+                Empty -> invalid_arg "Set.bal"
+              | Node (lrl, lrv, lrr, _) ->
+                  create (create ll lv lrl) lrv (create lrr v r)
+            end
+      end else if hr > hl + 2 then begin
+        match r with
+          Empty -> invalid_arg "Set.bal"
+        | Node (rl, rv, rr, _) ->
+            if height rr >= height rl then
+              create (create l v rl) rv rr
+            else begin
+              match rl with
+                Empty -> invalid_arg "Set.bal"
+              | Node (rll, rlv, rlr, _) ->
+                  create (create l v rll) rlv (create rlr rv rr)
+            end
+      end else
+        Node (l, v, r, (if hl >= hr then hl + 1 else hr + 1))
+
+    let rec add_min_element x = function
+      | Empty -> internal_of_t (singleton x)
+      | Node (l, v, r, _) ->
+        bal (add_min_element x l) v r
+
+    let rec add_max_element x = function
+      | Empty -> internal_of_t (singleton x)
+      | Node (l, v, r, _) ->
+        bal l v (add_max_element x r)
+
+    let rec join l v r =
+      match (l, r) with
+        (Empty, _) -> add_min_element v r
+      | (_, Empty) -> add_max_element v l
+      | (Node (ll, lv, lr, lh), Node (rl, rv, rr, rh)) ->
+          if lh > rh + 2 then bal ll lv (join lr v r) else
+          if rh > lh + 2 then bal (join l v rl) rv rr else
+          create l v r
+
+      let try_join l v r =
+        if (l = Empty || Ord.compare (max_elt (t_of_internal l)) v < 0)
+            && (r = Empty || Ord.compare v (min_elt (t_of_internal r)) < 0)
+        then join l v r
+        else internal_of_t (union (t_of_internal l) (add v (t_of_internal r)))
+
+      let rec remove_min_elt = function
+        | Empty -> invalid_arg "Set.remove_min_elt"
+        | Node (Empty, _, r, _) -> r
+        | Node (l, v, r, _) -> bal (remove_min_elt l) v r
+
+      let try_concat t1 t2 =
+        match (t1, t2) with
+        | (Empty, t) -> t
+        | (t, Empty) -> t
+        | (_, _) ->
+            try_join t1 (min_elt (t_of_internal t2))
+              (remove_min_elt t2)
+
       let rec filter_map f = function
         | Empty -> Empty
         | Node (l, v, r, _) as t ->
@@ -300,11 +304,11 @@ module Make (Ord : OrderedType) = struct
         Stdcompat__seq.Cons (x, seq_of_enum_ (cons_enum t rest))
 
   let to_seq (s : t) =
-    let s : internal = Obj.magic s in
+    let s : internal = internal_of_t s in
     seq_of_enum_ (cons_enum s End)
 
   let to_seq_from low s =
-    let s : internal = Obj.magic s in
+    let s : internal = internal_of_t s in
     let rec aux low s c = match s with
       | Empty -> c
       | Node (l, v, r, _h) ->
@@ -348,7 +352,7 @@ module Make (Ord : OrderedType) = struct
         else find_internal x (if c < 0 then l else r)
 
   let find x (s : t) =
-    let s : internal = Obj.magic s in
+    let s : internal = internal_of_t s in
     find_internal x s
 @END_WITH_MAGIC@
 @BEGIN_WITHOUT_MAGIC@
@@ -392,7 +396,7 @@ module Make (Ord : OrderedType) = struct
           find_first_internal f r
 
   let find_first f (s : t) =
-    let s : internal = Obj.magic s in
+    let s : internal = internal_of_t s in
     find_first_internal f s
 
   let rec find_first_opt_aux v0 f = function
@@ -414,7 +418,7 @@ module Make (Ord : OrderedType) = struct
           find_first_opt_internal f r
 
   let find_first_opt f (s : t) =
-    let s : internal = Obj.magic s in
+    let s : internal = internal_of_t s in
     find_first_opt_internal f s
 
   let rec find_last_aux v0 f = function
@@ -436,7 +440,7 @@ module Make (Ord : OrderedType) = struct
           find_last_internal f l
 
   let find_last f (s : t) =
-    let s : internal = Obj.magic s in
+    let s : internal = internal_of_t s in
     find_last_internal f s
 
   let rec find_last_opt_aux v0 f = function
@@ -458,7 +462,7 @@ module Make (Ord : OrderedType) = struct
           find_last_opt_internal f l
 
   let find_last_opt f (s : t) =
-    let s : internal = Obj.magic s in
+    let s : internal = internal_of_t s in
     find_last_opt_internal f s
 
   let rec find_opt_internal x = function
@@ -469,7 +473,7 @@ module Make (Ord : OrderedType) = struct
         else find_opt_internal x (if c < 0 then l else r)
 
   let find_opt f (s : t) =
-    let s : internal = Obj.magic s in
+    let s : internal = internal_of_t s in
     find_opt_internal f s
 @END_WITH_MAGIC@
 @BEGIN_WITHOUT_MAGIC@
@@ -531,7 +535,7 @@ module Make (Ord : OrderedType) = struct
        else try_join l' v' r'
 
   let map f s =
-    (Obj.magic (map f (Obj.magic s : internal)) : t)
+    (t_of_internal (map f (internal_of_t s : internal)) : t)
 @END_WITH_MAGIC@
 @BEGIN_WITHOUT_MAGIC@
   let map f s =
diff --git a/stdcompat__set.mli b/stdcompat__set.mli
new file mode 100644
index 0000000..a2c8b87
--- /dev/null
+++ b/stdcompat__set.mli
@@ -0,0 +1 @@
+include Stdcompat__set_s.S
diff --git a/stdcompat__stack.mli b/stdcompat__stack.mli
new file mode 100644
index 0000000..48c9243
--- /dev/null
+++ b/stdcompat__stack.mli
@@ -0,0 +1 @@
+include Stdcompat__stack_s.S
diff --git a/stdcompat__stdlib.mli b/stdcompat__stdlib.mli
new file mode 100644
index 0000000..dfec4ca
--- /dev/null
+++ b/stdcompat__stdlib.mli
@@ -0,0 +1 @@
+include Stdcompat__stdlib_s.S
diff --git a/stdcompat__string.mli b/stdcompat__string.mli
new file mode 100644
index 0000000..c2b7e42
--- /dev/null
+++ b/stdcompat__string.mli
@@ -0,0 +1 @@
+include Stdcompat__string_s.S
diff --git a/stdcompat__stringLabels.mli b/stdcompat__stringLabels.mli
new file mode 100644
index 0000000..9da2904
--- /dev/null
+++ b/stdcompat__stringLabels.mli
@@ -0,0 +1 @@
+include Stdcompat__stringLabels_s.S
diff --git a/stdcompat__sys.mli b/stdcompat__sys.mli
new file mode 100644
index 0000000..a3d394a
--- /dev/null
+++ b/stdcompat__sys.mli
@@ -0,0 +1 @@
+include Stdcompat__sys_s.S
diff --git a/stdcompat__uchar.mli b/stdcompat__uchar.mli
new file mode 100644
index 0000000..00c6b9d
--- /dev/null
+++ b/stdcompat__uchar.mli
@@ -0,0 +1 @@
+include Stdcompat__uchar_s.S
diff --git a/stdcompat__unit.mli b/stdcompat__unit.mli
new file mode 100644
index 0000000..4d95e9c
--- /dev/null
+++ b/stdcompat__unit.mli
@@ -0,0 +1 @@
+include Stdcompat__unit_s.S
diff --git a/stdcompat__weak.mli b/stdcompat__weak.mli
new file mode 100644
index 0000000..879ad80
--- /dev/null
+++ b/stdcompat__weak.mli
@@ -0,0 +1 @@
+include Stdcompat__weak_s.S
diff --git a/stdcompat_tests.ml b/stdcompat_tests.ml
new file mode 100644
index 0000000..c3760e7
--- /dev/null
+++ b/stdcompat_tests.ml
@@ -0,0 +1,1509 @@
+let failed = ref false
+
+let testing s f =
+  Printf.printf "Testing %s..." s;
+  flush stdout;
+  try
+    f ();
+    print_endline " OK"
+  with exc ->
+    print_endline (Printexc.to_string exc);
+    failed := true
+
+let test_array_for_all2 () =
+  let visited = ref [] in
+  let p i s =
+    visited := i :: !visited;
+    String.make 1 (char_of_int ((int_of_char 'a') + i)) = s in
+  assert (
+    Stdcompat.Array.for_all2 p [| 0; 1; 2; 3 |] [| "a"; "b"; "c"; "d" |]);
+  assert (List.rev !visited = [0; 1; 2; 3]);
+  visited := [];
+  let p i s =
+    visited := i :: !visited;
+    String.make 1 (char_of_int ((int_of_char 'a') + i)) = s && i <> 2 in
+  assert (not (
+    Stdcompat.Array.for_all2 p [| 0; 1; 2; 3 |] [| "a"; "b"; "c"; "d" |]));
+  assert (List.rev !visited = [0; 1; 2]);
+  visited := [];
+  assert (
+    try
+      ignore (
+        Stdcompat.Array.for_all2 p [| 0; 1; 2; 3 |] [| "a"; "b"; "c" |]);
+      false
+    with Invalid_argument _ -> true);
+  assert (List.rev !visited = [])
+
+let test_array_exists2 () =
+  let visited = ref [] in
+  let p i s =
+    visited := i :: !visited;
+    String.make 1 (char_of_int ((int_of_char 'a') + i)) <> s in
+  assert (not (
+    Stdcompat.Array.exists2 p [| 0; 1; 2; 3 |] [| "a"; "b"; "c"; "d" |]));
+  assert (List.rev !visited = [0; 1; 2; 3]);
+  visited := [];
+  let p i s =
+    visited := i :: !visited;
+    String.make 1 (char_of_int ((int_of_char 'a') + i)) <> s || i = 2 in
+  assert (
+    Stdcompat.Array.exists2 p [| 0; 1; 2; 3 |] [| "a"; "b"; "c"; "d" |]);
+  assert (List.rev !visited = [0; 1; 2]);
+  visited := [];
+  assert (
+    try
+      ignore (
+        Stdcompat.Array.exists2 p [| 0; 1; 2; 3 |] [| "a"; "b"; "c" |]);
+      false
+    with Invalid_argument _ -> true);
+  assert (List.rev !visited = [])
+
+let test_list_filteri () =
+  let visited = ref [] in
+  let p i s =
+    visited := i :: !visited;
+    assert (string_of_int i = s);
+    i mod 2 = 0 in
+  assert (
+    Stdcompat.List.filteri p (Stdcompat.List.init 6 string_of_int) =
+      ["0"; "2"; "4"]);
+  assert (List.rev !visited = [0; 1; 2; 3; 4; 5])
+
+let test_list_fold_left_map () =
+  let visited = ref [] in
+  let f accu s =
+    visited := s :: !visited;
+    accu ^ s, "a" ^ s in
+  assert (
+    Stdcompat.List.fold_left_map f "" (Stdcompat.List.init 6 string_of_int) =
+      ("012345", ["a0"; "a1"; "a2"; "a3"; "a4"; "a5"]));
+  assert (List.rev !visited = ["0"; "1"; "2"; "3"; "4"; "5"])
+
+let test_seq_cons () =
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.cons 0 (Stdcompat.Seq.cons 1
+      (Stdcompat.List.to_seq [2; 3]))) = [0; 1; 2; 3])
+
+let test_seq_append () =
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.append
+      (Stdcompat.List.to_seq [0; 1; 2])
+      (Stdcompat.List.to_seq [3; 4; 5])) = [0; 1; 2; 3; 4; 5])
+
+let test_seq_unfold () =
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.unfold (fun i ->
+      if i < 5 then
+        Some (string_of_int i, i + 1)
+      else
+        None) 0) = ["0"; "1"; "2"; "3"; "4"])
+
+let test_set_filter_map () =
+  let module Set = Stdcompat.Set.Make (Stdcompat.Int) in
+  let visited = ref [] in
+  assert (
+    let original_set =
+      Set.of_seq (Stdcompat.List.to_seq
+        (Stdcompat.List.init 6 Stdcompat.Fun.id)) in
+    let new_set = Set.filter_map (fun i ->
+      visited := i :: !visited;
+      if i mod 2 = 0 then
+        Some (6 - i / 2)
+      else
+        None) original_set in
+    let elements = Set.elements new_set in
+    List.sort compare elements = [4; 5; 6]);
+  assert (List.rev !visited = [0; 1; 2; 3; 4; 5])
+
+let test_map_filter_map () =
+  let module Map = Stdcompat.Map.Make (Stdcompat.Int) in
+  let visited = ref [] in
+  assert (
+    List.sort compare (Map.bindings (Map.filter_map (fun k s ->
+      visited := k :: !visited;
+      assert (string_of_int k = s);
+      if k mod 2 = 0 then
+        Some ("a" ^ s)
+      else
+        None)
+      (Map.of_seq (Stdcompat.List.to_seq
+        (Stdcompat.List.init 6 (fun i -> i, string_of_int i)))))) =
+          [0, "a0"; 2, "a2"; 4, "a4"]);
+  assert (List.rev !visited = [0; 1; 2; 3; 4; 5])
+
+let test_mkdir_rmdir () =
+  Stdcompat.Sys.mkdir "new_directory" 0o600;
+  assert (Stdcompat.Sys.is_directory "new_directory");
+  begin try
+    Stdcompat.Sys.mkdir "new_directory" 0o600;
+    assert false;
+  with Sys_error _ ->
+    assert true;
+  end;
+  Stdcompat.Sys.rmdir "new_directory";
+  begin try
+    Stdcompat.Sys.rmdir "new_directory";
+    assert false;
+  with Sys_error _ ->
+    assert true;
+  end
+
+let test_set_to_seq_to_rev_seq () =
+  let module M = Stdcompat.Set.Make (Stdcompat.Int) in
+  let s = M.add 2 (M.add 1 (M.add 3 M.empty)) in
+  assert (Stdcompat.List.of_seq (M.to_seq s) = [1; 2; 3]);
+  assert (Stdcompat.List.of_seq (M.to_rev_seq s) = [3; 2; 1])
+
+let test_map_to_seq_to_rev_seq () =
+  let module M = Stdcompat.Map.Make (Stdcompat.Int) in
+  let s = M.add 2 () (M.add 1 () (M.add 3 () M.empty)) in
+  assert (Stdcompat.List.of_seq (M.to_seq s) = [1, (); 2, (); 3, ()]);
+  assert (Stdcompat.List.of_seq (M.to_rev_seq s) = [3, (); 2, (); 1, ()])
+
+let test_list_partition_map () =
+  assert (Stdcompat.List.partition_map (fun i ->
+    if i > 0 then
+      Stdcompat.Either.Left i
+    else
+      Stdcompat.Either.Right (-i)) [1; -2; 3; -4; 5; -6]
+    = ([1; 3; 5], [2; 4; 6]))
+
+let test_list_compare () =
+  let l1 = [1; 2; 3; 4] in
+  let l2 = [1; 2; 4; 3] in
+  let l3 = [1; 2; 5; 6] in
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l1 l1 = 0);
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l1 l2 < 0);
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l1 l3 < 0);
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l2 l1 > 0);
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l2 l2 = 0);
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l2 l3 < 0);
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l3 l1 > 0);
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l3 l2 > 0);
+  assert (Stdcompat.List.compare Stdcompat.Int.compare l3 l3 = 0)
+
+let test_list_equal () =
+  let l1 = [1; 2; 3; 4] in
+  let l2 = [1; 2; 4; 3] in
+  let l3 = [1; 2; 5; 6] in
+  assert (Stdcompat.List.equal Stdcompat.Int.equal l1 l1);
+  assert (not (Stdcompat.List.equal Stdcompat.Int.equal l1 l2));
+  assert (not (Stdcompat.List.equal Stdcompat.Int.equal l1 l3));
+  assert (not (Stdcompat.List.equal Stdcompat.Int.equal l2 l1));
+  assert (Stdcompat.List.equal Stdcompat.Int.equal l2 l2);
+  assert (not (Stdcompat.List.equal Stdcompat.Int.equal l2 l3));
+  assert (not (Stdcompat.List.equal Stdcompat.Int.equal l3 l1));
+  assert (not (Stdcompat.List.equal Stdcompat.Int.equal l3 l2));
+  assert (Stdcompat.List.equal Stdcompat.Int.equal l3 l3)
+
+let test_hashtbl_rebuild () =
+  let h = Hashtbl.create 17 in
+  Hashtbl.add h 1 ();
+  Hashtbl.add h 2 ();
+  Hashtbl.add h 3 ();
+  let h' = Stdcompat.Hashtbl.rebuild h in
+  let module M = Stdcompat.Set.Make (Stdcompat.Int) in
+  assert (
+    M.equal
+      (M.of_seq (Stdcompat.Seq.map fst (Stdcompat.Hashtbl.to_seq h')))
+      (M.add 1 (M.add 2
+         (M.add 3 M.empty))))
+
+let test_format_pp_print_seq () =
+  let buffer = Buffer.create 17 in
+  Format.fprintf (Format.formatter_of_buffer buffer) "%a@."
+    (Stdcompat.Format.pp_print_seq
+      ~pp_sep:(fun fmt () -> Format.pp_print_string fmt ",")
+      Format.pp_print_int) (Stdcompat.List.to_seq [1; 2; 3]);
+  assert (Buffer.contents buffer = "1,2,3\n")
+
+let test_either () =
+  assert (Stdcompat.Either.compare
+    ~left:Stdcompat.Int.compare ~right:Stdcompat.Int.compare
+    (Stdcompat.Either.Left 1) (Stdcompat.Either.Left 1) = 0);
+  assert (Stdcompat.Either.compare
+    ~left:Stdcompat.Int.compare ~right:Stdcompat.Int.compare
+    (Stdcompat.Either.Left 1) (Stdcompat.Either.Left 2) < 0);
+  assert (Stdcompat.Either.compare
+    ~left:Stdcompat.Int.compare ~right:Stdcompat.Int.compare
+    (Stdcompat.Either.Left 1) (Stdcompat.Either.Right 2) < 0);
+  assert (Stdcompat.Either.compare
+    ~left:Stdcompat.Int.compare ~right:Stdcompat.Int.compare
+    (Stdcompat.Either.Right 1) (Stdcompat.Either.Left 2) > 0);
+  assert (Stdcompat.Either.compare
+    ~left:Stdcompat.Int.compare ~right:Stdcompat.Int.compare
+    (Stdcompat.Either.Right 1) (Stdcompat.Either.Right 2) < 0)
+
+let test_seq_concat () =
+  assert (Stdcompat.List.of_seq
+    (Stdcompat.Seq.concat (Stdcompat.Seq.map Stdcompat.List.to_seq
+      (Stdcompat.List.to_seq [[1; 2]; []; [3]; [4; 5]]))) =
+    [1; 2; 3; 4; 5]);
+  assert (Stdcompat.List.of_seq
+    (Stdcompat.Seq.concat_map Stdcompat.List.to_seq
+      (Stdcompat.List.to_seq [[1; 2]; []; [3]; [4; 5]])) =
+    [1; 2; 3; 4; 5])
+
+let test_seq_is_empty () =
+  assert (Stdcompat.Seq.is_empty Stdcompat.Seq.empty);
+  assert (not (
+    Stdcompat.Seq.is_empty (
+      Stdcompat.Seq.once (Stdcompat.Seq.cons () Stdcompat.Seq.empty))))
+
+let test_seq_uncons () =
+  assert (Stdcompat.Seq.uncons Stdcompat.Seq.empty = None);
+  begin
+    match Stdcompat.Seq.uncons
+      (Stdcompat.Seq.once (Stdcompat.Seq.cons () Stdcompat.Seq.empty)) with
+    | None -> assert false
+    | Some ((), tl) -> assert (Stdcompat.Seq.uncons tl = None)
+  end
+
+let test_seq_length () =
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (Stdcompat.Seq.length s = 6)
+
+let test_seq_iteri () =
+  let accu = ref [] in
+  let add i j = accu := (i, j) :: !accu in
+  Stdcompat.Seq.iteri add (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)))
+
+let test_seq_fold_lefti () =
+  let add accu i j = (i, j) :: accu in
+  let accu = Stdcompat.Seq.fold_lefti add []
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id)) in
+  assert (List.rev accu = Stdcompat.List.init 6 (fun i -> (i, i)))
+
+let test_seq_forall () =
+  assert (Stdcompat.Seq.for_all (fun _ -> raise Exit) Stdcompat.Seq.empty);
+  let accu = ref [] in
+  let add i = accu := i :: !accu in
+  assert (Stdcompat.Seq.for_all (fun i -> add i; true)
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id)));
+  assert (List.rev !accu = Stdcompat.List.init 6 Stdcompat.Fun.id);
+  accu := [];
+  assert (not (Stdcompat.Seq.for_all (fun i -> add i; i <> 4)
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id))));
+  assert (List.rev !accu = Stdcompat.List.init 5 Stdcompat.Fun.id)
+
+let test_seq_exists () =
+  assert (not (Stdcompat.Seq.exists (fun _ -> raise Exit) Stdcompat.Seq.empty));
+  let accu = ref [] in
+  let add i = accu := i :: !accu in
+  assert (not (Stdcompat.Seq.exists (fun i -> add i; false)
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id))));
+  assert (List.rev !accu = Stdcompat.List.init 6 Stdcompat.Fun.id);
+  accu := [];
+  assert (Stdcompat.Seq.exists (fun i -> add i; i = 4)
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id)));
+  assert (List.rev !accu = Stdcompat.List.init 5 Stdcompat.Fun.id)
+
+let test_seq_find () =
+  assert (Stdcompat.Seq.find (fun _ -> raise Exit) Stdcompat.Seq.empty = None);
+  let accu = ref [] in
+  let add i = accu := i :: !accu in
+  assert (Stdcompat.Seq.find (fun i -> add i; false)
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id)) = None);
+  assert (List.rev !accu = Stdcompat.List.init 6 Stdcompat.Fun.id);
+  accu := [];
+  assert (Stdcompat.Seq.find (fun i -> add i; i = 4)
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id)) = Some 4);
+  assert (List.rev !accu = Stdcompat.List.init 5 Stdcompat.Fun.id)
+
+let test_seq_find_map () =
+  assert (
+    Stdcompat.Seq.find_map (fun _ -> raise Exit) Stdcompat.Seq.empty = None);
+  let accu = ref [] in
+  let add i = accu := i :: !accu in
+  assert (Stdcompat.Seq.find_map (fun i -> add i; None)
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id)) = None);
+  assert (List.rev !accu = Stdcompat.List.init 6 Stdcompat.Fun.id);
+  accu := [];
+  assert (Stdcompat.Seq.find_map (fun i ->
+    add i; if i = 4 then Some i else None)
+    (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id)) = Some 4);
+  assert (List.rev !accu = Stdcompat.List.init 5 Stdcompat.Fun.id)
+
+let test_seq_iter2 () =
+  let test_with_lengths i j =
+    let accu = ref [] in
+    let add i j = accu := (i, j) :: !accu in
+    Stdcompat.Seq.iter2 add
+      (Stdcompat.Seq.once (Stdcompat.Seq.init i Stdcompat.Fun.id))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init j Stdcompat.Fun.id));
+    assert (List.rev !accu = Stdcompat.List.init (min i j) (fun i -> (i, i))) in
+  test_with_lengths 6 6;
+  test_with_lengths 6 7;
+  test_with_lengths 7 6
+
+let test_seq_fold_left2 () =
+  let test_with_lengths i j =
+    let add accu i j = (i, j) :: accu in
+    let accu = Stdcompat.Seq.fold_left2 add []
+      (Stdcompat.Seq.once (Stdcompat.Seq.init i Stdcompat.Fun.id))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init j Stdcompat.Fun.id)) in
+    assert (List.rev accu = Stdcompat.List.init (min i j) (fun i -> (i, i))) in
+  test_with_lengths 6 6;
+  test_with_lengths 6 7;
+  test_with_lengths 7 6
+
+let test_seq_for_all2 () =
+  let test_with_lengths i j p =
+    Stdcompat.Seq.for_all2 p
+      (Stdcompat.Seq.once (Stdcompat.Seq.init i Stdcompat.Fun.id))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init j Stdcompat.Fun.id)) in
+  assert (test_with_lengths 0 0 (fun _ _ -> raise Exit));
+  assert (test_with_lengths 0 6 (fun _ _ -> raise Exit));
+  assert (test_with_lengths 6 0 (fun _ _ -> raise Exit));
+  let accu = ref [] in
+  let add i j = accu := (i, j) :: !accu in
+  assert (test_with_lengths 6 6 (fun i j -> add i j; true));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (test_with_lengths 6 7 (fun i j -> add i j; true));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (test_with_lengths 7 6 (fun i j -> add i j; true));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (not (test_with_lengths 6 6 (fun i j -> add i j; i < 4)));
+  assert (List.rev !accu = Stdcompat.List.init 5 (fun i -> (i, i)))
+
+let test_seq_exists2 () =
+  let test_with_lengths i j p =
+    Stdcompat.Seq.exists2 p
+      (Stdcompat.Seq.once (Stdcompat.Seq.init i Stdcompat.Fun.id))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init j Stdcompat.Fun.id)) in
+  assert (not (test_with_lengths 0 0 (fun _ _ -> raise Exit)));
+  assert (not (test_with_lengths 0 6 (fun _ _ -> raise Exit)));
+  assert (not (test_with_lengths 6 0 (fun _ _ -> raise Exit)));
+  let accu = ref [] in
+  let add i j = accu := (i, j) :: !accu in
+  assert (not (test_with_lengths 6 6 (fun i j -> add i j; false)));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (not (test_with_lengths 6 7 (fun i j -> add i j; false)));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (not (test_with_lengths 7 6 (fun i j -> add i j; false)));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (test_with_lengths 6 6 (fun i j -> add i j; i = 4));
+  assert (List.rev !accu = Stdcompat.List.init 5 (fun i -> (i, i)))
+
+let test_seq_equal () =
+  let test_with_lengths i j p =
+    Stdcompat.Seq.equal p
+      (Stdcompat.Seq.once (Stdcompat.Seq.init i Stdcompat.Fun.id))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init j Stdcompat.Fun.id)) in
+  assert (test_with_lengths 0 0 (fun _ _ -> raise Exit));
+  assert (not (test_with_lengths 0 6 (fun _ _ -> raise Exit)));
+  assert (not (test_with_lengths 6 0 (fun _ _ -> raise Exit)));
+  let accu = ref [] in
+  let add i j = accu := (i, j) :: !accu in
+  assert (test_with_lengths 6 6 (fun i j -> add i j; true));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (not (test_with_lengths 6 7 (fun i j -> add i j; true)));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (not (test_with_lengths 7 6 (fun i j -> add i j; true)));
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (not (test_with_lengths 6 6 (fun i j -> add i j; i < 4)));
+  assert (List.rev !accu = Stdcompat.List.init 5 (fun i -> (i, i)))
+
+let test_seq_compare () =
+  let test_with_lengths i j p =
+    Stdcompat.Seq.compare p
+      (Stdcompat.Seq.once (Stdcompat.Seq.init i Stdcompat.Fun.id))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init j Stdcompat.Fun.id)) in
+  assert (test_with_lengths 0 0 (fun _ _ -> raise Exit) = 0);
+  assert (test_with_lengths 0 6 (fun _ _ -> raise Exit) = -1);
+  assert (test_with_lengths 6 0 (fun _ _ -> raise Exit) = 1);
+  let accu = ref [] in
+  let add i j = accu := (i, j) :: !accu in
+  assert (test_with_lengths 6 6 (fun i j -> add i j; 0) = 0);
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (test_with_lengths 6 7 (fun i j -> add i j; 0) = -1);
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (test_with_lengths 7 6 (fun i j -> add i j; 0) = 1);
+  assert (List.rev !accu = Stdcompat.List.init 6 (fun i -> (i, i)));
+  accu := [];
+  assert (test_with_lengths 6 6
+    (fun i j -> add i j; if i = 4 then 1 else 0) = 1);
+  assert (List.rev !accu = Stdcompat.List.init 5 (fun i -> (i, i)));
+  accu := [];
+  assert (test_with_lengths 6 6
+    (fun i j -> add i j; if i = 4 then -1 else 0) = -1);
+  assert (List.rev !accu = Stdcompat.List.init 5 (fun i -> (i, i)))
+
+let test_seq_init () =
+  begin try
+    let _ = Stdcompat.Seq.init (-1) (fun _ -> raise Exit) () in
+    assert false
+  with Invalid_argument _ ->
+    ()
+  end;
+  let accu = ref [] in
+  let s = Stdcompat.Seq.init 6 (fun i -> accu := i :: !accu; i) in
+  assert (!accu = []);
+  assert (Stdcompat.List.of_seq s = Stdcompat.List.init 6 Stdcompat.Fun.id);
+  assert (List.rev !accu = Stdcompat.List.init 6 Stdcompat.Fun.id)
+
+let test_seq_repeat () =
+  let s = Stdcompat.Seq.repeat () in
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) =
+      Stdcompat.List.init 6 (fun _ -> ()))
+
+let test_seq_forever () =
+  let value_ref = ref None in
+  let s = Stdcompat.Seq.forever
+    (fun () ->
+      let value = Stdcompat.Option.get !value_ref in
+      value_ref := None; value) in
+  value_ref := Some 1;
+  let hd, s' = Stdcompat.Option.get (Stdcompat.Seq.uncons s) in
+  assert (hd = 1);
+  value_ref := Some 2;
+  let hd, _s'' = Stdcompat.Option.get (Stdcompat.Seq.uncons s') in
+  assert (hd = 2);
+  value_ref := Some 3;
+  let hd, _s''' = Stdcompat.Option.get (Stdcompat.Seq.uncons s) in
+  assert (hd = 3)
+
+let test_seq_cycle () =
+  let s = Stdcompat.Seq.cycle (Stdcompat.Seq.init 3 Stdcompat.Fun.id) in
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 4 s) = [0; 1; 2; 0]);
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 5 s) = [0; 1; 2; 0; 1]);
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) = [0; 1; 2; 0; 1; 2])
+
+let test_seq_iterate () =
+  let called = ref 0 in
+  let s = Stdcompat.Seq.iterate (fun x -> incr called; x + 1) 0 in
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 4 s) = [0; 1; 2; 3]);
+  called := 3;
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 5 s) = [0; 1; 2; 3; 4]);
+  called := 7;
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) = [0; 1; 2; 3; 4; 5]);
+  called := 13
+
+let test_seq_mapi () =
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.mapi (fun i j -> (i, j))
+      (Stdcompat.Seq.init 6 Stdcompat.Fun.id)) =
+      Stdcompat.List.init 6 (fun i -> (i, i)))
+
+let test_seq_scan () =
+  assert (
+    Stdcompat.List.of_seq (
+      Stdcompat.Seq.scan ( + ) 0
+        (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id))) =
+    [0; 0; 1; 3; 6; 10; 15])
+
+let test_seq_take () =
+  begin try
+    let _ = Stdcompat.Seq.take (-1) (fun _ -> raise Exit) () in
+    assert false
+  with Invalid_argument _ ->
+    ()
+  end;
+  assert (Stdcompat.Seq.is_empty (Stdcompat.Seq.take 0
+    (fun _ -> raise Exit)));
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 4 s) = [0; 1; 2; 3]);
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) = [0; 1; 2; 3; 4; 5])
+
+let test_seq_drop () =
+  begin try
+    let _ = Stdcompat.Seq.drop (-1) (fun _ -> raise Exit) () in
+    assert false
+  with Invalid_argument _ ->
+    ()
+  end;
+  let _f = Stdcompat.Seq.drop 0 (fun _ -> raise Exit) in
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.drop 4 s) = [4; 5]);
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (Stdcompat.Seq.is_empty (Stdcompat.Seq.drop 6 s))
+
+let test_seq_take_while () =
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (Stdcompat.List.of_seq
+    (Stdcompat.Seq.take_while (fun _i -> false) s) = []);
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (Stdcompat.List.of_seq
+    (Stdcompat.Seq.take_while (fun i -> i < 3) s) = [0; 1; 2]);
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (Stdcompat.List.of_seq
+    (Stdcompat.Seq.take_while (fun _i -> true) s) = [0; 1; 2; 3; 4; 5])
+
+let test_seq_drop_while () =
+  let s = Stdcompat.Seq.init 6 Stdcompat.Fun.id in
+  assert (Stdcompat.List.of_seq
+    (Stdcompat.Seq.drop_while (fun i -> i < 3) s) = [3; 4; 5]);
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id) in
+  assert (Stdcompat.Seq.is_empty
+    (Stdcompat.Seq.drop_while (fun _i -> true) s))
+
+let test_seq_group () =
+  let s =
+    Stdcompat.Seq.group (fun i j -> i / 3 = j / 3)
+    (Stdcompat.Seq.ints 0) in
+  let l012, tl = Stdcompat.Option.get (Stdcompat.Seq.uncons s) in
+  let l345, _tl = Stdcompat.Option.get (Stdcompat.Seq.uncons tl) in
+  assert (Stdcompat.List.of_seq l345 = [3; 4; 5]);
+  assert (Stdcompat.List.of_seq l012 = [0; 1; 2]);
+  let s =
+    Stdcompat.Seq.group (fun _i _j -> true)
+    (Stdcompat.Seq.ints 0) in
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 3 (fst (Stdcompat.Option.get
+    (Stdcompat.Seq.uncons s)))) = [0; 1; 2])
+
+let test_seq_memoize () =
+  let s = Stdcompat.Seq.memoize (Stdcompat.Seq.once (Stdcompat.Seq.ints 0)) in
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 3 s) = [0; 1; 2]);
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 4 s) = [0; 1; 2; 3])
+
+let test_seq_once () =
+  let s = Stdcompat.Seq.once (Stdcompat.Seq.ints 0) in
+  let hd, tl = Stdcompat.Option.get (Stdcompat.Seq.uncons s) in
+  assert (hd = 0);
+  begin try
+    ignore (Stdcompat.Seq.uncons s);
+    assert false
+  with Stdcompat.Seq.Forced_twice ->
+    ()
+  end;
+  let hd', tl' = Stdcompat.Option.get (Stdcompat.Seq.uncons tl) in
+  assert (hd' = 1);
+  begin try
+    ignore (Stdcompat.Seq.uncons tl);
+    assert false
+  with Stdcompat.Seq.Forced_twice ->
+    ()
+  end;
+  let hd'', _tl'' = Stdcompat.Option.get (Stdcompat.Seq.uncons tl') in
+  assert (hd'' = 2)
+
+let test_seq_transpose () =
+  let test_format m n =
+    let s =
+      Stdcompat.Seq.init m (fun i ->
+        Stdcompat.Seq.init n (fun j ->
+          i * n + j)) in
+    let t =
+      Stdcompat.Seq.init n (fun j ->
+        Stdcompat.Seq.init m (fun i ->
+          i * n + j)) in
+    assert (Stdcompat.Seq.equal (Stdcompat.Seq.equal Stdcompat.Int.equal)
+      (Stdcompat.Seq.transpose s) t) in
+  test_format 3 3;
+  test_format 3 4;
+  test_format 4 3;
+  let s =
+    Stdcompat.Seq.iterate (fun i ->
+      Stdcompat.Seq.map (( * ) 2) i) (Stdcompat.Seq.ints 0) in
+  let t = Stdcompat.Seq.transpose s in
+  assert (Stdcompat.Seq.equal (Stdcompat.Seq.equal Stdcompat.Int.equal)
+    (Stdcompat.Seq.map (Stdcompat.Seq.take 3) (Stdcompat.Seq.take 3 t))
+    (Stdcompat.Seq.init 3 (fun i ->
+        Stdcompat.Seq.init 3 (fun j ->
+          i * (1 lsl j)))));
+  let s =
+    Stdcompat.Seq.map Stdcompat.List.to_seq (Stdcompat.List.to_seq
+      [[0; 1]; [2; 3; 4; 5]; [6; 7; 8]]) in
+  let t = Stdcompat.Seq.transpose s in
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.map Stdcompat.List.of_seq t) =
+    [[0; 2; 6]; [1; 3; 7]; [4; 8]; [5]])
+
+let test_seq_zip () =
+  assert (Stdcompat.Seq.is_empty
+    (Stdcompat.Seq.zip Stdcompat.Seq.empty (fun _ -> raise Exit)));
+  assert (Stdcompat.Seq.is_empty
+    (Stdcompat.Seq.zip (Stdcompat.Seq.cons () (fun _ -> raise Exit))
+      Stdcompat.Seq.empty));
+  assert (
+    Stdcompat.List.of_seq
+      (Stdcompat.Seq.zip (Stdcompat.Seq.init 3 Stdcompat.Fun.id)
+         (Stdcompat.Seq.init 4 (fun i -> assert (i < 4); i))) =
+    Stdcompat.List.init 3 (fun i -> (i, i)));
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 3
+      (Stdcompat.Seq.zip (Stdcompat.Seq.ints 0) (Stdcompat.Seq.ints 0))) =
+    Stdcompat.List.init 3 (fun i -> (i, i)))
+
+let test_seq_map2 () =
+  let pair i j = (i, j) in
+  assert (Stdcompat.Seq.is_empty
+    (Stdcompat.Seq.map2 pair Stdcompat.Seq.empty (fun _ -> raise Exit)));
+  assert (Stdcompat.Seq.is_empty
+    (Stdcompat.Seq.map2 pair (Stdcompat.Seq.cons () (fun _ -> raise Exit))
+      Stdcompat.Seq.empty));
+  assert (
+    Stdcompat.List.of_seq
+      (Stdcompat.Seq.map2 pair (Stdcompat.Seq.init 3 Stdcompat.Fun.id)
+         (Stdcompat.Seq.init 4 (fun i -> assert (i < 4); i))) =
+    Stdcompat.List.init 3 (fun i -> (i, i)));
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 3
+      (Stdcompat.Seq.map2 pair (Stdcompat.Seq.ints 0) (Stdcompat.Seq.ints 0))) =
+    Stdcompat.List.init 3 (fun i -> (i, i)))
+
+let test_seq_interleave () =
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.interleave Stdcompat.Seq.empty
+      (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id))) =
+    [0; 1; 2; 3; 4; 5]);
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.interleave
+      (Stdcompat.Seq.once (Stdcompat.Seq.init 6 Stdcompat.Fun.id))
+      Stdcompat.Seq.empty) =
+    [0; 1; 2; 3; 4; 5]);
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.interleave
+      (Stdcompat.Seq.once (Stdcompat.Seq.init 3 (fun i -> i * 2)))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init 3 (fun i -> i * 2 + 1)))) =
+    [0; 1; 2; 3; 4; 5]);
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.interleave
+      (Stdcompat.Seq.once (Stdcompat.Seq.init 5 (fun i -> i * 2)))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init 3 (fun i -> i * 2 + 1)))) =
+    [0; 1; 2; 3; 4; 5; 6; 8]);
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.interleave
+      (Stdcompat.Seq.once (Stdcompat.Seq.init 3 (fun i -> i * 2)))
+      (Stdcompat.Seq.once (Stdcompat.Seq.init 5 (fun i -> i * 2 + 1)))) =
+    [0; 1; 2; 3; 4; 5; 7; 9])
+
+let test_seq_sorted_merge () =
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.sorted_merge
+      (fun (i, _) (j, _) -> Stdcompat.Int.compare i j)
+      (Stdcompat.Seq.once
+        (Stdcompat.List.to_seq [1, false; 4, false; 6, false; 7, false]))
+      (Stdcompat.Seq.once
+        (Stdcompat.List.to_seq [1, true; 2, true; 4, true; 5, true]))) =
+    [1, false; 1, true; 2, true; 4, false; 4, true; 5, true; 6, false;
+      7, false]);
+  assert (
+    Stdcompat.List.of_seq (Stdcompat.Seq.take 8 (
+     Stdcompat.Seq.sorted_merge Stdcompat.Int.compare
+       (Stdcompat.Seq.once
+         (Stdcompat.Seq.map (fun i -> assert (i < 4); i * 3)
+           (Stdcompat.Seq.ints 0)))
+       (Stdcompat.Seq.once
+         (Stdcompat.Seq.map (fun i -> assert (i < 5); 1 lsl i)
+           (Stdcompat.Seq.ints 0))))) =
+    [0; 1; 2; 3; 4; 6; 8; 9])
+
+let test_seq_product () =
+  assert (List.sort compare (Stdcompat.List.of_seq
+      (Stdcompat.Seq.product
+        (Stdcompat.Seq.init 3 Stdcompat.Fun.id) (Stdcompat.Seq.init 3 Stdcompat.Fun.id))) =
+    (Stdcompat.List.init 9 (fun i -> (i / 3, i mod 3))));
+  assert (
+    List.length (Stdcompat.List.sort_uniq compare
+    (Stdcompat.List.of_seq (Stdcompat.Seq.take 8
+      (Stdcompat.Seq.product
+        (Stdcompat.Seq.ints 0) (Stdcompat.Seq.ints 0))))) = 8)
+
+let test_seq_map_product () =
+  let pair i j = (i, j) in
+  assert (List.sort compare (
+    Stdcompat.List.of_seq
+      (Stdcompat.Seq.map_product pair
+        (Stdcompat.Seq.init 3 Stdcompat.Fun.id) (Stdcompat.Seq.init 3 Stdcompat.Fun.id))) =
+    (Stdcompat.List.init 9 (fun i -> (i / 3, i mod 3))));
+  assert (
+    List.length (Stdcompat.List.sort_uniq compare
+    (Stdcompat.List.of_seq (Stdcompat.Seq.take 8
+      (Stdcompat.Seq.map_product pair
+        (Stdcompat.Seq.ints 0) (Stdcompat.Seq.ints 0))))) = 8)
+
+let test_seq_unzip () =
+  let s, s' =
+    Stdcompat.Seq.unzip (Stdcompat.Seq.map (fun i -> (i, i))
+      (Stdcompat.Seq.take 6 (Stdcompat.Seq.ints 0))) in
+  assert (Stdcompat.List.of_seq s = Stdcompat.List.init 6 Stdcompat.Fun.id);
+  assert (Stdcompat.List.of_seq s' = Stdcompat.List.init 6 Stdcompat.Fun.id);
+  let s, s' =
+    Stdcompat.Seq.unzip (Stdcompat.Seq.map (fun i -> assert (i < 6); (i, i))
+      (Stdcompat.Seq.ints 0)) in
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) =
+    Stdcompat.List.init 6 Stdcompat.Fun.id);
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s') =
+    Stdcompat.List.init 6 Stdcompat.Fun.id)
+
+let test_seq_partition_map () =
+  let s, s' =
+    Stdcompat.Seq.partition_map
+      (fun i ->
+        if i mod 3 = 0 then
+          Stdcompat.Either.Left i
+        else
+          Stdcompat.Either.Right i)
+      (Stdcompat.Seq.take 6 (Stdcompat.Seq.ints 0)) in
+  assert (Stdcompat.List.of_seq s = [0; 3]);
+  assert (Stdcompat.List.of_seq s' = [1; 2; 4; 5]);
+  let s, s' =
+    Stdcompat.Seq.partition_map
+      (fun i ->
+        assert (i <= 15);
+        if i mod 3 = 0 then
+          Stdcompat.Either.Left i
+        else
+          Stdcompat.Either.Right i)
+      (Stdcompat.Seq.ints 0) in
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) =
+    [0; 3; 6; 9; 12; 15]);
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s') =
+    [1; 2; 4; 5; 7; 8])
+
+let test_seq_partition () =
+  let s, s' =
+    Stdcompat.Seq.partition (fun i -> i mod 3 = 0)
+      (Stdcompat.Seq.take 6 (Stdcompat.Seq.ints 0)) in
+  assert (Stdcompat.List.of_seq s = [0; 3]);
+  assert (Stdcompat.List.of_seq s' = [1; 2; 4; 5]);
+  let s, s' =
+    Stdcompat.Seq.partition
+      (fun i -> assert (i <= 15); i mod 3 = 0)
+      (Stdcompat.Seq.ints 0) in
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) =
+    [0; 3; 6; 9; 12; 15]);
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s') =
+    [1; 2; 4; 5; 7; 8])
+
+let test_seq_of_dispenser () =
+  let counter = ref 0 in
+  let s = Stdcompat.Seq.of_dispenser (fun () ->
+    let index = !counter in
+    if index >= 6 then
+      None
+    else
+      begin
+        counter := succ index;
+        Some index
+      end) in
+  assert (Stdcompat.List.of_seq s = [0; 1; 2; 3; 4; 5]);
+  counter := 0;
+  let s = Stdcompat.Seq.of_dispenser (fun () ->
+    let index = !counter in
+    counter := succ index;
+    Some index) in
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) = [0; 1; 2; 3; 4; 5])
+
+let test_seq_to_dispenser () =
+  let d = Stdcompat.Seq.to_dispenser
+      (Stdcompat.Seq.take 6 (Stdcompat.Seq.ints 0)) in
+  assert (d () = Some 0);
+  assert (d () = Some 1);
+  assert (d () = Some 2);
+  assert (d () = Some 3);
+  assert (d () = Some 4);
+  assert (d () = Some 5);
+  assert (d () = None);
+  assert (d () = None);
+  let d = Stdcompat.Seq.to_dispenser (Stdcompat.Seq.ints 0) in
+  assert (d () = Some 0);
+  assert (d () = Some 1);
+  assert (d () = Some 2);
+  assert (d () = Some 3);
+  assert (d () = Some 4);
+  assert (d () = Some 5)
+
+let test_seq_ints () =
+  let s = Stdcompat.Seq.ints 4 in
+  assert (Stdcompat.List.of_seq (Stdcompat.Seq.take 6 s) = [4; 5; 6; 7; 8; 9])
+
+let test_seq_4_14 () =
+  test_seq_is_empty ();
+  test_seq_uncons ();
+  test_seq_length ();
+  test_seq_iteri ();
+  test_seq_forall ();
+  test_seq_exists ();
+  test_seq_find ();
+  test_seq_find_map ();
+  test_seq_iter2 ();
+  test_seq_fold_left2 ();
+  test_seq_for_all2 ();
+  test_seq_exists2 ();
+  test_seq_equal ();
+  test_seq_compare ();
+  test_seq_init ();
+  test_seq_repeat ();
+  test_seq_forever ();
+  test_seq_cycle ();
+  test_seq_iterate ();
+  test_seq_mapi ();
+  test_seq_scan ();
+  test_seq_take ();
+  test_seq_drop ();
+  test_seq_take_while ();
+  test_seq_drop_while ();
+  test_seq_group ();
+  test_seq_memoize ();
+  test_seq_once ();
+  test_seq_transpose ();
+  test_seq_zip ();
+  test_seq_map2 ();
+  test_seq_interleave ();
+  test_seq_sorted_merge ();
+  test_seq_product ();
+  test_seq_map_product ();
+  test_seq_unzip ();
+  test_seq_partition_map ();
+  test_seq_partition ();
+  test_seq_of_dispenser ();
+  test_seq_to_dispenser ();
+  test_seq_ints ()
+
+let test_int32_min_max () =
+  assert (Stdcompat.Int32.min 1l 2l = 1l);
+  assert (Stdcompat.Int32.max 1l 2l = 2l)
+
+let test_int32_unsigned_compare () =
+  assert (Stdcompat.Int32.unsigned_compare 1l 2l < 0);
+  assert (Stdcompat.Int32.unsigned_compare (-1l) 2l > 0)
+
+let test_array_fold_left_map () =
+  let f counter item =
+    succ counter, item + counter in
+  assert (Stdcompat.Array.fold_left_map f 0 [| 1; 2; 3; 4; 5 |] =
+    (5, [| 1; 3; 5; 7; 9 |]))
+
+let test_array_find_opt () =
+  assert (Stdcompat.Array.find_opt
+    (fun i -> i mod 2 = 0) [| 1; 3; 4; 5 |] = Some 4);
+  assert (Stdcompat.Array.find_opt
+    (fun i -> i mod 2 = 0) [| 1; 3; 5 |] = None)
+
+let test_array_find_map () =
+  let f i =
+    if i mod 2 = 0 then Some (i / 2) else None in
+  assert (Stdcompat.Array.find_map f [| 1; 3; 4; 5 |] = Some 2);
+  assert (Stdcompat.Array.find_map f [| 1; 3; 5 |] = None)
+
+let test_array_split () =
+  assert (Stdcompat.Array.split [| |] = ([| |], [| |]));
+  assert (Stdcompat.Array.split [| (1, 2); (3, 4) |]
+    = ([| 1; 3 |], [| 2; 4 |]))
+
+let test_array_combine () =
+  assert (Stdcompat.Array.combine [| |] [| |] = [| |]);
+  assert (Stdcompat.Array.combine [| 1; 3 |] [| 2; 4 |]
+    = [| (1, 2); (3, 4) |])
+
+let test_string_fold_left () =
+  let f i c =
+    assert (int_of_char c - int_of_char '0' = i);
+    succ i in
+  assert (Stdcompat.String.fold_left f 0 "0123" = 4);
+  assert (Stdcompat.String.fold_left f 0 "" = 0)
+
+let test_string_fold_right () =
+  let f c i =
+    assert (int_of_char c - int_of_char '0' = pred i);
+    pred i in
+  assert (Stdcompat.String.fold_right f "0123" 4 = 0);
+  assert (Stdcompat.String.fold_right f "" 0 = 0)
+
+let test_string_for_all () =
+  let f c =
+    match c with
+    | '0' .. '9' -> true
+    | _ -> false in
+  assert (Stdcompat.String.for_all f "0123" = true);
+  assert (Stdcompat.String.for_all f "012a3" = false);
+  assert (Stdcompat.String.for_all f "" = true)
+
+let test_string_exists () =
+  let f c =
+    match c with
+    | 'a' .. 'z' -> true
+    | _ -> false in
+  assert (Stdcompat.String.exists f "0123" = false);
+  assert (Stdcompat.String.exists f "012a3" = true);
+  assert (Stdcompat.String.exists f "" = false)
+
+let test_string_starts_with () =
+  assert (Stdcompat.String.starts_with ~prefix:"a" "abc" = true);
+  assert (Stdcompat.String.starts_with ~prefix:"a" "bc" = false);
+  assert (Stdcompat.String.starts_with ~prefix:"a" "a" = true);
+  assert (Stdcompat.String.starts_with ~prefix:"a" "" = false);
+  assert (Stdcompat.String.starts_with ~prefix:"ab" "abc" = true);
+  assert (Stdcompat.String.starts_with ~prefix:"ab" "ab" = true);
+  assert (Stdcompat.String.starts_with ~prefix:"ab" "bc" = false);
+  assert (Stdcompat.String.starts_with ~prefix:"ab" "ac" = false);
+  assert (Stdcompat.String.starts_with ~prefix:"ab" "a" = false);
+  assert (Stdcompat.String.starts_with ~prefix:"ab" "" = false)
+
+let test_string_ends_with () =
+  assert (Stdcompat.String.ends_with ~suffix:"a" "cba" = true);
+  assert (Stdcompat.String.ends_with ~suffix:"a" "cb" = false);
+  assert (Stdcompat.String.ends_with ~suffix:"a" "a" = true);
+  assert (Stdcompat.String.ends_with ~suffix:"a" "" = false);
+  assert (Stdcompat.String.ends_with ~suffix:"ab" "cab" = true);
+  assert (Stdcompat.String.ends_with ~suffix:"ab" "ab" = true);
+  assert (Stdcompat.String.ends_with ~suffix:"ab" "bc" = false);
+  assert (Stdcompat.String.ends_with ~suffix:"ab" "cb" = false);
+  assert (Stdcompat.String.ends_with ~suffix:"ab" "b" = false);
+  assert (Stdcompat.String.ends_with ~suffix:"ab" "" = false)
+
+let test_channels () =
+  Stdcompat.Out_channel.with_open_text "testfile" (fun oc ->
+    Stdcompat.Out_channel.output_substring oc "hello, world" 7 5);
+  assert (Stdcompat.In_channel.with_open_text "testfile"
+    Stdcompat.In_channel.input_all = "world");
+  Sys.remove "testfile"
+
+let tests () =
+  testing "hypot" (fun () ->
+    assert (Stdcompat.hypot 3. 4. = 5.);
+    assert (Stdcompat.copysign 1. 2. = 1.);
+    assert (Stdcompat.copysign 1. (-. 2.) = -. 1.);
+    assert (Stdcompat.copysign (-. 1.) 2. = 1.);
+    assert (Stdcompat.copysign (-. 1.) (-. 2.) = -. 1.);
+  );
+  assert (
+    try
+      ignore (Stdcompat.raise_notrace Exit);
+      false
+    with Exit -> true);
+  testing "bool_of_string_opt" (fun () ->
+      assert (Stdcompat.bool_of_string_opt "true" = Some true);
+      assert (Stdcompat.bool_of_string_opt "false" = Some false);
+      assert (Stdcompat.bool_of_string_opt "foo" = None));
+  testing "int_of_string_opt" (fun () ->
+      assert (Stdcompat.int_of_string_opt "42" = Some 42);
+      assert (Stdcompat.int_of_string_opt "foo" = None));
+  assert (Stdcompat.float_of_string_opt "42." = Some 42.);
+  assert (Stdcompat.float_of_string_opt "foo" = None);
+  assert (Lazy.force (Stdcompat.Lazy.from_fun (fun () -> 42)) = 42);
+  assert (Lazy.force (Stdcompat.Lazy.from_val 42) = 42);
+  assert (Stdcompat.Char.lowercase_ascii 'A' = 'a');
+  assert (Stdcompat.Char.uppercase_ascii 'a' = 'A');
+  assert (Stdcompat.Char.equal 'a' 'a');
+  assert (not (Stdcompat.Char.equal 'A' 'a'));
+  assert (Stdcompat.String.init 2 (fun i -> char_of_int i) = "\000\001");
+  assert
+    (Stdcompat.String.mapi
+       (fun i c -> char_of_int (i + int_of_char c)) "abc" = "ace");
+  assert (
+    let s = Stdcompat.Bytes.create 3 in
+    Stdcompat.String.iteri (fun i c -> Stdcompat.Bytes.set s i c) "abc";
+    s = Stdcompat.Bytes.of_string "abc");
+  assert (Stdcompat.String.map Stdcompat.Char.uppercase_ascii "abc" = "ABC");
+  assert (Stdcompat.String.trim " \t abc\n" = "abc");
+  assert (Stdcompat.String.lowercase_ascii "AbcD" = "abcd");
+  assert (Stdcompat.String.uppercase_ascii "AbcD" = "ABCD");
+  assert (Stdcompat.String.capitalize_ascii "abcD" = "AbcD");
+  assert (Stdcompat.String.uncapitalize_ascii "AbcD" = "abcD");
+  assert (Stdcompat.String.equal "abc" "abc");
+  assert (not (Stdcompat.String.equal "Abc" "abc"));
+  assert (Stdcompat.String.split_on_char ' ' " abc  d ef  "
+    = ["";"abc";"";"d";"ef";"";""]);
+  assert (Stdcompat.String.index_opt "abaababa" 'a' = Some 0);
+  assert (Stdcompat.String.index_opt "abaababa" 'c' = None);
+  assert (Stdcompat.String.rindex_opt "abaababa" 'a' = Some 7);
+  assert (Stdcompat.String.rindex_opt "abaababa" 'c' = None);
+  assert (Stdcompat.String.index_from_opt "abaababa" 1 'a' = Some 2);
+  assert (Stdcompat.String.index_from_opt "abaababa" 1 'c' = None);
+  assert (Stdcompat.String.rindex_from_opt "abaababa" 4 'a' = Some 3);
+  assert (Stdcompat.String.rindex_from_opt "abaababa" 4 'c' = None);
+  assert (
+    let s = Stack.create () in
+    Stack.push 1 s;
+    Stack.push 2 s;
+    Stack.push 3 s;
+    Stdcompat.Stack.fold ( + ) 0 s = 6 &&
+    Stack.length s = 3);
+  assert (
+    let t = Hashtbl.create 17 in
+    Hashtbl.add t 1 2;
+    Hashtbl.add t 3 4;
+    (Stdcompat.Hashtbl.stats t).Stdcompat.Hashtbl.num_bindings = 2);
+  assert (
+    let t = Hashtbl.create 17 in
+    Hashtbl.add t 1 1;
+    Hashtbl.add t 2 2;
+    Hashtbl.add t 2 3;
+    Hashtbl.add t 3 4;
+    Stdcompat.Hashtbl.filter_map_inplace
+        (fun k v -> if k = 3 then None else Some (pred v)) t;
+    Hashtbl.find_all t 1 = [0] &&
+    Hashtbl.find_all t 2 = [2; 1] &&
+    Hashtbl.find_all t 3 = []);
+  assert (
+    let t = Hashtbl.create 17 in
+    Hashtbl.add t 1 1;
+    Hashtbl.add t 2 2;
+    Stdcompat.Hashtbl.find_opt t 1 = Some 1 &&
+    Stdcompat.Hashtbl.find_opt t 3 = None);
+  assert (
+    let module H = struct
+      type t = int
+
+      let equal : int -> int -> bool = ( = )
+
+      let hash : int -> int = fun x -> x
+    end in
+    let module M = Hashtbl.Make (H) in
+    let module M' = Stdcompat.Hashtbl.Make (H) in
+    let t = M.create 17 in
+    M.add t 1 1;
+    M.add t 2 2;
+    M'.find_opt t 1 = Some 1 &&
+    M'.find_opt t 3 = None);
+  assert (
+    let module S = Set.Make (String) in
+    let module S' = Stdcompat.Set.Make (String) in
+    let s = S'.of_list ["a"; "b"; "c"] in
+    S.compare
+      (S'.map (fun s -> s ^ ".") s)
+      (S'.of_list ["a."; "b."; "c."]) = 0 &&
+    S'.find_opt "a" s = Some "a" &&
+    S'.find_opt "d" s = None &&
+    S'.find_first (fun s -> s >= "b") s = "b" &&
+    S'.find_last (fun s -> s <= "b") s = "b");
+  assert (
+    let module M = Map.Make (String) in
+    let module M' = Stdcompat.Map.Make (String) in
+    let m = M.add "1" 2 M.empty in
+    M'.compare compare (
+      M'.update "1" (function None -> Some 0 | Some i -> Some (i + 1))
+      (M'.update "2" (function None -> Some 0 | Some _ -> None)
+         (M'.update "3" (function None -> None | Some i -> Some i) m)))
+      (M.add "1" 3 (M.add "2" 0 M.empty)) = 0);
+  assert (
+    let b = Stdcompat.Bytes.of_string "hello" in
+    let b = Stdcompat.Bytes.extend b (-1) 2 in
+    Stdcompat.Bytes.sub_string b 0 4 = "ello" &&
+    Stdcompat.Bytes.length b = 6);
+  assert (
+    let l = ref [] in
+    let f a b =
+      l := (a, b) :: !l in
+    Stdcompat.List.iteri f [1; 2; 3];
+    !l = [2, 3; 1, 2; 0, 1]);
+  assert (
+    let f a b =
+      (a, b) in
+    Stdcompat.List.mapi f  [1; 2; 3] = [0, 1; 1, 2; 2, 3]);
+  assert (
+    Stdcompat.List.sort_uniq compare  [2; 1; 3; 2; 1; 3]
+    = [1; 2; 3]);
+  assert (Stdcompat.List.cons 1 [2; 3] = [1; 2; 3]);
+  assert (Stdcompat.List.compare_lengths [1] [2; 3] < 0);
+  assert (Stdcompat.List.compare_lengths [1; 2] [2; 3] = 0);
+  assert (Stdcompat.List.compare_lengths [1; 2; 3] [2; 3] > 0);
+  assert (Stdcompat.List.compare_length_with [1] 2 < 0);
+  assert (Stdcompat.List.compare_length_with [1; 2] 2 = 0);
+  assert (Stdcompat.List.compare_length_with [1; 2; 3] 2 > 0);
+  assert (Stdcompat.List.nth_opt [1; 2; 3] 2 = Some 3);
+  assert (Stdcompat.List.nth_opt [1; 2; 3] 3 = None);
+  assert (
+    try
+      ignore (Stdcompat.List.nth_opt [1; 2; 3] (-1));
+      false
+    with Invalid_argument _ -> true);
+  assert (Stdcompat.List.find_opt (fun i -> i mod 2 = 0) [1; 2; 3] = Some 2);
+  assert (Stdcompat.List.find_opt (fun i -> i mod 4 = 0) [1; 2; 3] = None);
+  assert (Stdcompat.List.assoc_opt 2 [1, 0; 2, 1; 3, 2] = Some 1);
+  assert (Stdcompat.List.assoc_opt 4 [1, 0; 2, 1; 3, 2] = None);
+  assert (Stdcompat.List.assq_opt 2 [1, 0; 2, 1; 3, 2] = Some 1);
+  assert ("a" == "a" || (* "a" == "a" since OCaml 4.10.0 *)
+    Stdcompat.List.assq_opt "a" ["a", 1; "b", 2; "c", 3] = None);
+  assert (
+    let r1 = ref 1 in
+    let r1' = ref 1 in
+    let r2 = ref 2 in
+    let r3 = ref 3 in
+    Stdcompat.List.assoc_opt r1' [r1, 1; r2, 2; r3, 3] = Some 1 &&
+    Stdcompat.List.assq_opt r1' [r1, 1; r2, 2; r3, 3] = None);
+  assert (Stdcompat.Filename.extension "a.b/c.de" = ".de");
+  assert (Stdcompat.Filename.extension "a.b/cd" = "");
+  assert (Stdcompat.Filename.remove_extension "a.b/c.de" = "a.b/c");
+  assert (Stdcompat.Filename.remove_extension "a.b/cd" = "a.b/cd");
+  
+  assert (Stdcompat.Filename.remove_extension "a.b\\cd" = "a");
+  
+  (*
+  assert (Stdcompat.Filename.remove_extension "a.b\\cd" = "a.b\\cd");
+  *)
+  assert (
+    let array = Stdcompat.Array.Floatarray.create 2 in
+    Stdcompat.Array.Floatarray.set array 0 1.;
+    Stdcompat.Array.Floatarray.set array 1 2.;
+    Stdcompat.Array.Floatarray.get array 0 = 1. &&
+    Stdcompat.Array.Floatarray.get array 1 = 2.);
+  assert (
+    let l = ref [] in
+    let f a b =
+      l := (a, b) :: !l in
+    Stdcompat.Array.iter2 f [| 0; 1 |] [| 2; 3 |];
+    !l = [1, 3; 0, 2]);
+  assert (
+    let f a b =
+      (a, b) in
+    Stdcompat.Array.map2 f  [| 0; 1 |] [| 2; 3 |] = [| 0, 2; 1, 3 |]);
+  assert (Stdcompat.Array.for_all (fun x -> x > 0) [| 1; 2; 3 |]);
+  assert (not (Stdcompat.Array.for_all (fun x -> x > 0) [| 1; 2; 0; 3 |]));
+  assert (Stdcompat.Array.exists (fun x -> x > 2) [| 1; 2; 3 |]);
+  assert (not (Stdcompat.Array.exists (fun x -> x > 3) [| 1; 2; 3 |]));
+  assert (Stdcompat.Array.mem "a" [| "a"; "b"; "c" |]);
+  assert (not (Stdcompat.Array.mem "d" [| "a"; "b"; "c" |]));
+  assert (Stdcompat.Array.memq 2 [| 1; 2; 3 |]);
+  assert ("a" == "a" || (* "a" == "a" since OCaml 4.10.0 *)
+    not (Stdcompat.Array.memq "a" [| "a"; "b"; "c" |]));
+  assert (
+    let r1 = ref 1 in
+    let r1' = ref 1 in
+    let r2 = ref 2 in
+    let r3 = ref 3 in
+    Stdcompat.List.mem r1' [r1; r2; r3] &&
+    not (Stdcompat.List.memq r1' [r1; r2; r3]));
+  assert (
+    let q = Stdcompat.Queue.create () in
+    Stdcompat.Array.of_seq (Stdcompat.Queue.to_seq q) = [| |]);
+  assert (
+    let q = Stdcompat.Queue.create () in
+    Stdcompat.Queue.add_seq q (Stdcompat.List.to_seq ["a"; "b"; "c"]);
+    Stdcompat.Array.of_seq (Stdcompat.Queue.to_seq q) = [| "a"; "b"; "c" |]);
+  assert (
+    let l = Stdcompat.List.to_seq ["a", 1; "b", 2; "c", 3] in
+    let module M = Stdcompat.Map.Make (String) in
+    let q = Stdcompat.Hashtbl.of_seq (M.to_seq (M.of_seq l)) in
+    let m = M.of_seq (Stdcompat.Hashtbl.to_seq q) in
+    M.cardinal m = 3 && M.find "a" m = 1 && M.find "b" m = 2
+      && M.find "c" m = 3);
+  assert (
+    Stdcompat.Filename.chop_suffix_opt ~suffix:".txt" "readme.txt"
+      = Some "readme");
+  assert (
+    Stdcompat.Filename.chop_suffix_opt ~suffix:".txt" "x"
+      = None);
+  assert (
+    Stdcompat.Filename.chop_suffix_opt ~suffix:".txt" "readme.md"
+      = None);
+  (*
+  assert (
+    Stdcompat.Filename.chop_suffix_opt ~suffix:".txt" "readme.TXT"
+      = Some "readme");
+  *)
+  
+  assert (
+    Stdcompat.Filename.chop_suffix_opt ~suffix:".txt" "readme.TXT"
+      = None);
+  
+  assert (Stdcompat.Filename.chop_suffix "readme.txt" ".txt" = "readme");
+  begin try
+    ignore (Stdcompat.Filename.chop_suffix "x" ".txt");
+    assert false
+  with Invalid_argument _ -> ()
+  end;
+  begin try
+    ignore (Stdcompat.Filename.chop_suffix "readme.md" ".txt");
+    assert false
+  with Invalid_argument _ -> ()
+  end;
+  (*
+  assert (Stdcompat.Filename.chop_suffix "readme.TXT" ".txt" = "readme");
+  *)
+  
+  begin try
+    ignore (Stdcompat.Filename.chop_suffix "readme.TXT" ".txt");
+    assert false
+  with Invalid_argument _ -> ()
+  end;
+  
+  (*
+  assert (Stdcompat.Filename.dir_sep = "\\");
+  *)
+  
+  assert (Stdcompat.Filename.dir_sep = "/");
+  
+  assert (not (Stdcompat.Float.sign_bit 1.));
+  assert (not (Stdcompat.Float.sign_bit 0.));
+  assert (not (Stdcompat.Float.is_nan 42.));
+  assert (Stdcompat.Float.is_nan (0. /. 0.));
+  assert (not (Stdcompat.Float.is_infinite 0.));
+  assert (Stdcompat.Float.is_infinite (1. /. 0.));
+  assert (not (Stdcompat.Float.is_infinite (0. /. 0.)));
+  assert (Stdcompat.Float.is_finite 0.);
+  assert (not (Stdcompat.Float.is_finite (1. /. 0.)));
+  assert (not (Stdcompat.Float.is_finite (0. /. 0.)));
+  assert (Stdcompat.Float.trunc 1.5 = 1.);
+  assert (Stdcompat.Float.trunc (-2.6) = -2.);
+  assert (Stdcompat.Float.is_infinite (Stdcompat.Float.trunc (1. /. 0.)));
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.trunc (0. /. 0.)));
+  assert (Stdcompat.Float.is_integer 1.);
+  assert (not (Stdcompat.Float.is_integer 1.5));
+  assert (Stdcompat.Float.is_infinite (Stdcompat.Float.trunc (1. /. 0.)));
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.trunc (0. /. 0.)));
+  assert (Stdcompat.Float.round 1.5 = 2.);
+  assert (Stdcompat.Float.round 1.4 = 1.);
+  assert (Stdcompat.Float.round (-2.6) = -3.);
+  assert (Stdcompat.Float.round (-3.5) = -4.);
+  assert (Stdcompat.Float.round (-4.4) = -4.);
+  assert (Stdcompat.Float.is_infinite (Stdcompat.Float.round (1. /. 0.)));
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.round (0. /. 0.)));
+  assert (Stdcompat.Float.sign_bit (-1.));
+  assert (Stdcompat.Float.min_num 1. (0. /. 0.) = 1.);
+  assert (Stdcompat.Float.min_num (0. /. 0.) 1. = 1.);
+  assert (Stdcompat.Float.min_num 1. (-1.) = (-1.));
+  assert (Stdcompat.Float.min_num (-1.) 1. = (-1.));
+  assert (Stdcompat.Float.sign_bit (Stdcompat.Float.min_num 0. (-0.)));
+  assert (Stdcompat.Float.sign_bit (Stdcompat.Float.min_num (-0.) 0.));
+  assert (Stdcompat.Float.is_nan (
+    Stdcompat.Float.min_num (0. /. 0.) (0. /. 0.)));
+  assert (Stdcompat.Float.max_num 1. (0. /. 0.) = 1.);
+  assert (Stdcompat.Float.max_num (0. /. 0.) 1. = 1.);
+  assert (Stdcompat.Float.max_num 1. (-1.) = 1.);
+  assert (Stdcompat.Float.max_num (-1.) 1. = 1.);
+  assert (not (Stdcompat.Float.sign_bit (Stdcompat.Float.max_num 0. (-0.))));
+  assert (not (Stdcompat.Float.sign_bit (Stdcompat.Float.max_num (-0.) 0.)));
+  assert (Stdcompat.Float.is_nan (
+    Stdcompat.Float.max_num (0. /. 0.) (0. /. 0.)));
+  assert (Stdcompat.Float.min_max_num 1. (0. /. 0.) = (1., 1.));
+  assert (Stdcompat.Float.min_max_num (0. /. 0.) 1. = (1., 1.));
+  assert (Stdcompat.Float.min_max_num 1. (-1.) = (-1., 1.));
+  assert (Stdcompat.Float.min_max_num (-1.) 1. = (-1., 1.));
+  assert (
+    let min, max = Stdcompat.Float.min_max_num 0. (-0.) in
+    Stdcompat.Float.sign_bit min &&
+    not (Stdcompat.Float.sign_bit max));
+  assert (
+    let min, max = Stdcompat.Float.min_max_num (-0.) 0. in
+    Stdcompat.Float.sign_bit min &&
+    not (Stdcompat.Float.sign_bit max));
+  assert (
+    let min, max = Stdcompat.Float.min_max_num (0. /. 0.) (0. /. 0.) in
+    Stdcompat.Float.is_nan min &&
+    Stdcompat.Float.is_nan max);
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.min 1. (0. /. 0.)));
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.min (0. /. 0.) 1.));
+  assert (Stdcompat.Float.min 1. (-1.) = (-1.));
+  assert (Stdcompat.Float.min (-1.) 1. = (-1.));
+  assert (Stdcompat.Float.sign_bit (Stdcompat.Float.min 0. (-0.)));
+  assert (Stdcompat.Float.sign_bit (Stdcompat.Float.min (-0.) 0.));
+  assert (Stdcompat.Float.is_nan (
+    Stdcompat.Float.min (0. /. 0.) (0. /. 0.)));
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.max 1. (0. /. 0.)));
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.max (0. /. 0.) 1.));
+  assert (Stdcompat.Float.max 1. (-1.) = 1.);
+  assert (Stdcompat.Float.max (-1.) 1. = 1.);
+  assert (not (Stdcompat.Float.sign_bit (Stdcompat.Float.max 0. (-0.))));
+  assert (not (Stdcompat.Float.sign_bit (Stdcompat.Float.max (-0.) 0.)));
+  assert (Stdcompat.Float.is_nan (
+    Stdcompat.Float.max (0. /. 0.) (0. /. 0.)));
+  assert (
+    let min, max = Stdcompat.Float.min_max 1. (0. /. 0.) in
+    Stdcompat.Float.is_nan min &&
+    Stdcompat.Float.is_nan max);
+  assert (
+    let min, max = Stdcompat.Float.min_max (0. /. 0.) 1. in
+    Stdcompat.Float.is_nan min &&
+    Stdcompat.Float.is_nan max);
+  assert (Stdcompat.Float.min_max 1. (-1.) = (-1., 1.));
+  assert (Stdcompat.Float.min_max (-1.) 1. = (-1., 1.));
+  assert (
+    let min, max = Stdcompat.Float.min_max 0. (-0.) in
+    Stdcompat.Float.sign_bit min &&
+    not (Stdcompat.Float.sign_bit max));
+  assert (
+    let min, max = Stdcompat.Float.min_max (-0.) 0. in
+    Stdcompat.Float.sign_bit min &&
+    not (Stdcompat.Float.sign_bit max));
+  assert (
+    let min, max = Stdcompat.Float.min_max (0. /. 0.) (0. /. 0.) in
+    Stdcompat.Float.is_nan min &&
+    Stdcompat.Float.is_nan max);
+  assert (Stdcompat.Float.next_after max_float infinity = infinity);
+  assert (Stdcompat.Float.next_after 0. infinity = Int64.float_of_bits Stdcompat.Int64.one);
+  assert (Stdcompat.Float.next_after (Int64.float_of_bits Stdcompat.Int64.one) 0. = 0.);
+  assert (Stdcompat.Float.next_after 1. 1. = 1.);
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.next_after (0. /. 0.) 1.));
+  assert (Stdcompat.Float.is_nan (Stdcompat.Float.next_after 1. (0. /. 0.)));
+  let b = Stdcompat.Bytes.of_string "\x20\x30\x40\x50\x60\x70\x80\x90" in
+  assert (Stdcompat.Bytes.get_uint8 b 1 = 0x30);
+  assert (Stdcompat.Bytes.get_int8 b 1 = 0x30);
+  assert (Stdcompat.Bytes.get_uint8 b 6 = 0x80);
+  assert (Stdcompat.Bytes.get_int8 b 6 = -0x80);
+  assert (Stdcompat.Bytes.get_uint16_le b 4 = 0x7060);
+  assert (Stdcompat.Bytes.get_uint16_be b 4 = 0x6070);
+  assert (Stdcompat.Bytes.get_int16_le b 4 = 0x7060);
+  assert (Stdcompat.Bytes.get_int16_be b 4 = 0x6070);
+  assert (Stdcompat.Bytes.get_uint16_le b 6 = 0x9080);
+  assert (Stdcompat.Bytes.get_uint16_be b 6 = 0x8090);
+  assert (Stdcompat.Bytes.get_int16_le b 6 = -0x6F80);
+  assert (Stdcompat.Bytes.get_int16_be b 6 = -0x7F70);
+  assert (Stdcompat.Bytes.get_int32_le b 0 = 0x50403020l);
+  assert (Stdcompat.Bytes.get_int32_be b 0 = 0x20304050l);
+  assert (Stdcompat.Bytes.get_int64_le b 0 = 0x9080706050403020L);
+  assert (Stdcompat.Bytes.get_int64_be b 0 = 0x2030405060708090L);
+  let check_invalid_arg f =
+    try
+      let _ = f () in
+      false
+    with Invalid_argument _ ->
+      true in
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.get_uint8 b (-1)));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.get_uint8 b 8));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.get_uint16_le b (-1)));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.get_uint16_le b 7));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.get_int32_le b (-1)));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.get_int32_le b 5));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.get_int64_le b (-1)));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.get_int64_le b 1));
+  assert (
+    Stdcompat.Bytes.set_uint8 b 1 0x90;
+    Stdcompat.Bytes.get_uint8 b 1 = 0x90);
+  assert (
+    Stdcompat.Bytes.set_int8 b 1 (-0x20);
+    Stdcompat.Bytes.get_int8 b 1 = (-0x20));
+  assert (
+    Stdcompat.Bytes.set_uint16_le b 1 0x1234;
+    Stdcompat.Bytes.get_uint16_le b 1 = 0x1234);
+  assert (
+    Stdcompat.Bytes.set_uint16_be b 1 0x1234;
+    Stdcompat.Bytes.get_uint16_be b 1 = 0x1234);
+  assert (
+    Stdcompat.Bytes.set_int16_le b 1 (-0x1234);
+    Stdcompat.Bytes.get_int16_le b 1 = (-0x1234));
+  assert (
+    Stdcompat.Bytes.set_int16_be b 1 (-0x1234);
+    Stdcompat.Bytes.get_int16_be b 1 = (-0x1234));
+  assert (
+    Stdcompat.Bytes.set_int32_le b 1 0x12345678l;
+    Stdcompat.Bytes.get_int32_le b 1 = 0x12345678l);
+  assert (
+    Stdcompat.Bytes.set_int32_be b 1 0x12345678l;
+    Stdcompat.Bytes.get_int32_be b 1 = 0x12345678l);
+  assert (
+    Stdcompat.Bytes.set_int64_le b 0 0x123456789ABCDEF0L;
+    Stdcompat.Bytes.get_int64_le b 0 = 0x123456789ABCDEF0L);
+  assert (
+    Stdcompat.Bytes.set_int64_be b 0 0x123456789ABCDEF0L;
+    Stdcompat.Bytes.get_int64_be b 0 = 0x123456789ABCDEF0L);
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.set_uint8 b (-1) 0));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.set_uint8 b 8 0));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.set_uint16_le b (-1) 0));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.set_uint16_le b 7 0));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.set_int32_le b (-1) 0l));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.set_int32_le b 5 0l));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.set_int64_le b (-1) 0L));
+  assert (check_invalid_arg (fun () -> Stdcompat.Bytes.set_int64_le b 1 0L));
+  assert (Stdcompat.Bytes.get_int64_be b 0 = 0x123456789ABCDEF0L);
+  assert (
+    let finalized = ref false in
+    Stdcompat.Fun.protect ~finally:(fun () -> finalized := true) (fun () -> true) &&
+    !finalized);
+  assert (
+    try
+      Stdcompat.Fun.protect ~finally:(fun () -> raise Exit) (fun () -> failwith "protect")
+    with Stdcompat.Fun.Finally_raised Exit -> true | _ -> false);
+  let (_ : 'a Stdcompat.Seq.t) = Stdcompat.Stdlib.Seq.empty in
+  let (_ : 'a Stdcompat.Stdlib.Seq.t) = Stdcompat.Seq.empty in
+  let (_ : (unit, 'a) Stdcompat.result) = Stdcompat.Ok () in
+  let (_ : (unit, 'a) Stdcompat.Result.t) = Stdcompat.Ok () in
+  let (_ : (unit, 'a) Stdcompat.Stdlib.Result.t) = Stdcompat.Ok () in
+  let (_ : (unit, 'a) Stdcompat.result) = Stdcompat.Result.Ok () in
+  let (_ : (unit, 'a) Stdcompat.Result.t) = Stdcompat.Result.Ok () in
+  let (_ : (unit, 'a) Stdcompat.Stdlib.Result.t) = Stdcompat.Result.Ok () in
+  let (_ : (unit, 'a) Stdcompat.result) = Stdcompat.Stdlib.Result.Ok () in
+  let (_ : (unit, 'a) Stdcompat.Result.t) = Stdcompat.Stdlib.Result.Ok () in
+  let (_ : (unit, 'a) Stdcompat.Stdlib.Result.t) = Stdcompat.Stdlib.Result.Ok () in
+  assert (Stdcompat.Fun.id true);
+  assert (Stdcompat.Fun.const true false);
+  assert (Stdcompat.Fun.flip ( - ) 1 2 = 1);
+  assert (Stdcompat.Fun.negate not true);
+  assert (
+    let bytes = Stdcompat.Bytes.of_string "abcde" in
+    Stdcompat.Bytes.unsafe_blit_string "ABCDEF" 2 bytes 1 3;
+    Stdcompat.Bytes.compare bytes (Stdcompat.Bytes.of_string "aCDEe") == 0);
+  assert (
+    Stdcompat.List.concat_map
+      (fun x -> [x * 2; x - 1]) [1; 2; 3] = [2; 0; 4; 1; 6; 2]);
+  assert (
+    Stdcompat.List.find_map (Stdcompat.List.assoc_opt 1)
+      [[2, 3; 4, 1]; [5, 2;1, 7]] = Some 7);
+  assert (
+    Stdcompat.List.find_map (Stdcompat.List.assoc_opt 1)
+      [[2, 3; 4, 1]; [5, 2;2, 7]] = None);
+  testing "Filename.quote_command" (fun () ->
+    let check_quote_string s =
+      let (file, channel) =
+        Filename.open_temp_file "test_quote_command" ".ml" in
+      Stdcompat.Fun.protect (fun () ->
+        Stdcompat.Fun.protect (fun () ->
+          Printf.fprintf channel "
+            assert (Sys.argv.(1) = \"%s\")
+          " (String.escaped s))
+        ~finally:(fun () -> close_out channel);
+        let file_exe = Filename.chop_suffix file ".ml" ^ ".exe" in
+        assert (
+          Sys.command (Stdcompat.Filename.quote_command "ocamlopt.opt"
+            [file; "-o"; file_exe]) == 0);
+        assert (
+          Sys.command (Stdcompat.Filename.quote_command file_exe [s]) == 0))
+      ~finally:(fun () -> Sys.remove file) in
+    check_quote_string "a\\\\";
+    check_quote_string "a\\\\b\"\\\"\\\\\"\"\\";
+  );
+  test_array_for_all2 ();
+  test_array_exists2 ();
+  test_list_filteri ();
+  test_list_fold_left_map ();
+  test_seq_cons ();
+  test_seq_append ();
+  test_seq_unfold ();
+  testing "Seq (new functions introduced in OCaml 4.14)" test_seq_4_14;
+  testing "Set.filter_map" test_set_filter_map;
+  testing "Map.filter_map" test_map_filter_map;
+  testing "Sys.mkdir/Sys.rmdir" test_mkdir_rmdir;
+  testing "Set.to_seq/to_rev_seq" test_set_to_seq_to_rev_seq;
+  testing "Map.to_seq/to_rev_seq" test_map_to_seq_to_rev_seq;
+  test_list_partition_map ();
+  test_list_compare ();
+  test_list_equal ();
+  test_hashtbl_rebuild ();
+  test_format_pp_print_seq ();
+  test_either ();
+  test_seq_concat ();
+  test_int32_min_max ();
+  test_int32_unsigned_compare ();
+  test_array_fold_left_map ();
+  test_array_find_opt ();
+  test_array_find_map ();
+  test_array_split ();
+  test_array_combine ();
+  test_string_fold_left ();
+  test_string_fold_right ();
+  test_string_for_all ();
+  test_string_exists ();
+  test_string_starts_with ();
+  test_string_ends_with ();
+  test_channels ();
+  ()
+
+let () =
+  tests ();
+  if !failed then
+    exit 1
diff --git a/test_all_switches.sh b/test_all_switches.sh
deleted file mode 100755
index 8710ba6..0000000
--- a/test_all_switches.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-set -e
-for ocamlversion in `opam switch -i -s`; do
-    opam switch $ocamlversion
-    eval `opam config env`
-    ./configure
-    make clean
-    make
-    make tests
-    ./configure --disable-magic
-    make clean
-    make
-    make tests
-done

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/debug/.build-id/47/0bcc5b3b14b11c09013f24880b2b74e405d248.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/c6/3c42ff393bbf02c7fe0acfca1dc1a3e787b023.debug

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/debug/.build-id/04/c77ecee7b6381922fda4ea1132f4a321fa6a47.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/76/d7576e9fab8184536fb8c132e6226ff2da2995.debug
-rw-r--r--  root/root   /usr/share/doc/libstdcompat-ocaml-dev/changelog.gz
-rw-r--r--  root/root   /usr/share/doc/libstdcompat-ocaml/changelog.gz

Control files of package libstdcompat-ocaml: lines which differ (wdiff format)

  • Provides: libstdcompat-ocaml-cpzz8 libstdcompat-ocaml-cpcw8

Control files of package libstdcompat-ocaml-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 04c77ecee7b6381922fda4ea1132f4a321fa6a47 76d7576e9fab8184536fb8c132e6226ff2da2995 470bcc5b3b14b11c09013f24880b2b74e405d248 c63c42ff393bbf02c7fe0acfca1dc1a3e787b023

Control files of package libstdcompat-ocaml-dev: lines which differ (wdiff format)

  • Depends: libstdcompat-ocaml-cpzz8, libstdcompat-ocaml-cpcw8, ocaml-4.13.1
  • Provides: libstdcompat-ocaml-dev-cpzz8 libstdcompat-ocaml-dev-cpcw8

More details

Full run details