Previous week Up Next week


Here is the latest OCaml Weekly News, for the week of March 28 to April 04, 2017.

  1. first release of minivpt: a minimalist vantage-point tree implementation in OCaml
  2. CFP: ML Family Workshop 2017
  3. OCaml workshop 2017: call for presentations
  4. Ocaml Github Pull Requests
  5. Other OCaml News

first release of minivpt: a minimalist vantage-point tree implementation in OCaml


Continuing the thread from last week, François Bobot asked and Francois Berenger replied:
> Does incremental version of the algorithm exists?

Maybe but I don't know about them.

Other related data structures (axis-aligned bounding boxes, kd-trees, etc.) are
described in this book (but unfortunately nothing about vp-trees):

@book{ CompGeomThirdEdSpringer,
   title     = "Computational Geometry: Algorithms and Applications",
   author    = "M. {de Berg} and O. Cheong and M. {van Kreveld} and
   M. Overmars",
   edition   = "Third Edition",
   pages     = {223--224},
   doi       = "10.1007/978-3-540-77974-2",
   year      = "2008",
   publisher = "Springer"

> Without constructing the optimal vp-tree?

There is another OCaml version I found on the web a while ago,
which is meant to work on large point sets.

I archived it here:

It would be nice to know the author and the license of this code
by the way.

I wasn't fan of the code style and length, so I crafted an implementation for my
own needs and put it into opam.

CFP: ML Family Workshop 2017


Sam Lindley announced:
                          CALL FOR PAPERS

                      ML Family Workshop 2017
                    7 September 2017, Oxford, UK

                       (co-located with ICFP)

ML is a family of programming languages that includes Standard ML,
OCaml, F#, SML#, Manticore, MetaOCaml, JoCaml, Alice ML, Dependent ML,
Flow Caml, and many others. All ML languages share several fundamental
traits, besides a good deal of syntax. They are higher-order, strict,
mostly pure, and typed, with algebraic and other data types. Their
type systems are derived from Hindley-Milner. The development of these
languages has inspired a significant body of computer science research
and influenced the design of many other programming languages,
including Haskell, Rust, and Scala.

ML workshops have been held in affiliation with ICFP continuously
since 2005. This workshop specifically aims to recognise the entire
extended ML family and to provide a forum for presenting and
discussing common issues, both practical (compilation techniques,
implementations of concurrency and parallelism, programming for the
Web) and theoretical (fancy types, module systems,
metaprogramming). The scope of the workshop includes all aspects of
the design, semantics, theory, application, implementation, and
teaching of the members of the ML family. We also encourage
presentations from related languages (such as ATS, Eff, F*, Koka,
Links, Rust, Scala, Swift, etc.), to exchange experience of further
developing ML ideas. Last year's ML Family workshop included talks
covering eight different ML dialects and related languages: Eff, F#,
F*, Links, Manticore, OCaml, SML, and SML#.

The ML family workshop will be held in close coordination with the
OCaml Users and Developers Workshop.

Invited speaker

Edwin Brady (University of St Andrews, UK)


We acknowledge the whole breadth of the ML family and aim to include
languages that are closely related, such as Rust and Scala. Those
languages have implemented and investigated run-time and type system
choices that may be worth considering for OCaml, F# and other ML
languages. We also hope that the exposure to state of the art ML might
favourably influence those related languages. Specifically, we seek
research presentations on topics including (but not limited to):

  * Language design: abstraction, higher forms of polymorphism,
    concurrency, distribution and mobility, staging, extensions for
    semi-structured data, generic programming, object systems, etc.

  * Implementation: compilers, interpreters, type checkers, partial
    evaluators, runtime systems, garbage collectors, foreign function
    interfaces, etc.

  * Type systems: inference, effects, modules, contracts,
    specifications and assertions, dynamic typing, error reporting,

  * Applications: case studies, experience reports, pearls, etc.

  * Environments: libraries, tools, editors, debuggers, cross-language
    interoperability, functional data structures, etc.

  * Semantics: operational and denotational semantics, program
    equivalence, parametricity, mechanization, etc.

Four kinds of submissions will be accepted: Research Presentations,
Experience Reports, Demos and Informed Positions.

  * Research Presentations: Research presentations should describe new
    ideas, experimental results, or significant advances in ML-related
    projects. We especially encourage presentations that describe work
    in progress, that outline a future research agenda, or that
    encourage lively discussion. These presentations should be
    structured in a way which can be, at least in part, of interest to
    (advanced) users.

  * Experience Reports: Users are invited to submit Experience Reports
    about their use of ML and related languages. These presentations
    do not need to contain original research but they should tell an
    interesting story to researchers or other advanced users, such as
    an innovative or unexpected use of advanced features or a
    description of the challenges they are facing or attempting to

  * Demos: Live demonstrations or short tutorials should show new
    developments, interesting prototypes, or work in progress, in the
    form of tools, libraries, or applications built on or related to
    ML and related languages. (You will need to provide all the
    hardware and software required for your demo; the workshop
    organisers are only able to provide a projector.)

  * Informed Positions: A justified argument for or against a language
    feature. The argument must be substantiated, either theoretically
    (e.g. by a demonstration of (un)soundness, an inference algorithm,
    a complexity analysis), empirically or by substantial
    experience. Personal experience is accepted as justification so
    long as it is extensive and illustrated with concrete examples.


The ML 2017 workshop will continue the informal approach followed
since 2010. Presentations are selected from submitted abstracts. There
are no published proceedings, so contributions may be submitted for
publication elsewhere. We hope that this format will encourage the
presentation of exciting (if unpolished) research and deliver a lively
workshop atmosphere.

Each presentation should take 20-25 minutes, except demos, which
should take 10-15 minutes. The exact time will be decided based on the
number of accepted submissions. The presentations will likely be


ML 2017 is an informal workshop without proceedings. We are planning
to publish a post-proceedings and to invite interested authors of
selected presentations to expand their abstracts for inclusion.

Coordination with the OCaml Users and Developers Workshop

The OCaml workshop is seen as more practical and is dedicated in
significant part to OCaml community building and the development of
the OCaml system. In contrast, the ML family workshop is not focused
on any language in particular, is more research-oriented, and deals
with general issues of ML-style programming and type systems. Yet
there is an overlap, which we are keen to explore in various ways. The
authors who feel their submission fits both workshops are encouraged
to mention it at submission time or contact the programme chairs.

Submission details

Submissions should be at most two pages, in PDF format, and printable
on US Letter or A4 sized paper. A submission should have a synopsis
(2--3 lines) and a body between 1 and 2 pages, in one- or two-column
layout. The synopsis should be suitable for inclusion in the workshop
programme. The bibliography will not be counted against the page

Submissions must be uploaded to the workshop submission website

before the submission deadline (Wednesday 31st May). If you have a
question concerning the scope of the workshop or the submission
process, please contact the programme chair.

Important dates

Wednesday 31st May (any time zone)  Abstract submission deadline
Wednesday 28th June                 Author notification
Thursday 7th September 2017         ML Family Workshop

Programme committee

Nick Benton (Facebook, UK)
Małgorzata Biernacka (University of Wroclaw, Poland)
Stephen Dolan (University of Cambridge, UK)
Shin-ya Katsumata (Kyoto University, Japan)
Julia Lawall (LIP6 Paris, France)
Sam Lindley (The University of Edinburgh, UK) (PC chair)
Andreas Rossberg (Google, Germany)
Sukyoung Ryu (KAIST, South Korea)
Gabriel Scherer (Northeastern University, US)
Alley Stoughton (Boston University, US)
Niki Vazou (University of Maryland, US)

OCaml workshop 2017: call for presentations


Gabriel Scherer announced:
Call for presentations

OCaml 2017
The OCaml Users and Developers Workshop

September 8th, 2017,
Oxford, UK,
Co-located with ICFP 2017

Talk proposal submission deadline: May 31st, 2017

(Please redistribute widely.)

The OCaml Users and Developers Workshop brings together the
OCaml community, including users of OCaml in industry, academia,
hobbyists and the free software community. Previous editions
have been colocated with ICFP 2012 in Copenhagen, ICFP 2013 in
Boston, ICFP 2014 in Gothenburg, ICFP 2015 in Vancouver and ICFP
2016 in Nara, following the OCaml Meetings in Paris in 2010 and

OCaml 2017 will be held on September 8th, 2017 in Oxford, UK,
colocated with ICFP 2017 and FSCD 2017.


Presentations and discussions will focus on the OCaml
programming language and its community. We aim to solicit talks
on all aspects related to improving the use or development of
the language and its programming environment, including, for
example (but not limited to):

- compiler developments, new backends, runtime and architectures

- practical type system improvements, such as (but not
limited to) GADTs, first-class modules, generic programming,
or dependent types

- new library or application releases, and their design

- tools and infrastructure services, and their enhancements

- prominent industrial or experimental uses of OCaml, or
deployments in unusual situations.


It will be an informal meeting with no formal proceedings. The
presentation material will be available online from the workshop
homepage. The presentations may be recorded, and made available
at a later time.

The main presentation format is a workshop talk, traditionally
around 20 minutes in length, plus question time, but we also
have a poster session during the workshop -- this allows to
present more diverse work, and gives time for discussion. The
program committee will decide which presentations should be
delivered as posters or talks.


To submit a presentation, please register a description of the
talk (about 2 pages long) at

providing a clear statement of what will be provided by the
presentation: the problems that are addressed, the solutions or
methods that are proposed.

LaTeX-produced PDFs are a common and welcome submission
format. For accessibility purposes, we ask PDF submitters to
also provide the sources of their submission in a textual
format, such as .tex sources. Reviewers may read either the
submitted PDF or the text version.

Important dates

Wednesday 31st May (any time zone) Abstract submission deadline
Wednesday 28th June Author notification
Friday 8th September 2017 OCaml Workshop

ML family workshop and post-proceedings

The ML family workshop, held on the previous day, deals with
general issues of the ML-style programming and type systems,
focuses on more research-oriented work that is less specific to
a language in particular (OCaml). There is an overlap between
the two workshops, and we have occasionally transferred
presentations from one to the other in the past. The authors who
feel their submission fits both workshops are encouraged to
mention it at submission time and/or contact the Program Chairs.

We are planning to publish combined post-proceedings and to
invite interested authors of selected presentations to expand
their abstracts for inclusion.

Program Committee

Ashish Agarwal, Solvuu, USA
François Bobot, CEA, France
Frédéric Bour, OCaml Labs, France
Cristiano Calcagno, Facebook, UK
Louis Gesbert, OcamlPro, France
Sébastien Hinderer, INRIA, France
Atsushi Igarashi, Kyoto University, Japan
Oleg Kiselyov, Tohoku University, Japan
Julia Lawall, INRIA/LIP6, France
Sam Lindley, The University of Edinburgh, UK
Louis Mandel, IBM Research, USA
Zoe Paraskevopoulou, Princeton University, USA
Gabriel Scherer, Northeastern University, USA

Questions and contact

Please send any questions to the chair:
Gabriel Scherer <>

Ocaml Github Pull Requests

Gabriel Scherer and the editor compiled this list:
Here is a sneak peek at some potential future features of the Ocaml
compiler, discussed by their implementers in these Github Pull Requests.

- Add an “unsafe” warning and annotation
- EINTR-based signals
- Support for xlc and bytecode shared libs on AIX

Other OCaml News

From the ocamlcore planet blog:
Here are links from many OCaml blogs aggregated at OCaml Planet,

Ann: Pumping | Drup's thingies

Dealing with source code locations (in lexical and syntax analysis)

Old cwn

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.

If you also wish to receive it every week by mail, you may subscribe online.

Alan Schmitt