Previous week Up Next week


Here is the latest OCaml Weekly News, for the week of May 08 to 15, 2018.

  1. Student intern positions, SAP Innovation Center Network, Potsdam, Germany
  2. ocamlnet-4.1.6
  3. OCaml DocJam on May 18-20: call for participation
  4. An experimental, unofficial OCaml wiki
  5. Passmaker 1.0
  6. Pyre - Type checking in OCaml for Python
  7. Orsetto: assorted structured data interchange languages
  8. Regenerate: Test generation for regular expression engines
  9. Functional Programming @ DFINITY
  10. London Tezos meetup - OCaml programming speaker needed
  11. Other OCaml News

Student intern positions, SAP Innovation Center Network, Potsdam, Germany


Keiko announced:
SAP Innovation Center Network is looking for intern students to research,
evaluate and extend MirageOS in the context of cloud applications. Our team is
located in Potsdam, Germany.

See job descriptions at


Potsdam is a beautiful green city with many parks (and many of them are included
in the UNESCO World Heritage). Berlin is reachable in less than 30 minute by
local trains.

For more details and questions, please contact



Gerd Stolpmann announced:
there is now ocamlnet-4.1.6 available:

- compatibility with upcoming OCaml-4.07

See the project page for download, documentation, a detailed changelog,
and the mailing list:

The repository has been moved to

opam follows soon.

OCaml DocJam on May 18-20: call for participation


Gabriel Scherer announced:
From Friday 18 to Sunday 20 of this month, we are organizing a DocJam, a
remote event where people are invited to contribute to the documentation of
OCaml projects. This is open to all skill levels and should not require
more than one or two hours at a time. Anyone is warmly welcome to

For more information, see the announce webpage

which links, in particular, to a Discuss thread (
) where you can ask any question (also feel free to send me an email), and
group communication channels to chat with co-participants during the event.

Happy documenting

An experimental, unofficial OCaml wiki


Yotam Barnoy announced:
There's a lot of stuff that isn't currently being documented in the
OCaml world. Much of it has to do with the ecosystem, what libraries
are good, which ones exist, which ones have issues, where to focus
developer attention etc. [Awesome
OCaml]( does some of this, but
is hard to maintain via github. Other things that  need to be properly
documented are compiler internals, easy-find-links to good articles
etc. Then there are many things I haven't even thought of that need to
be documented.

I'm a firm believer in feedback loops and incrementalism: I think once
some things are documented, more and more will be as well, and that
this will encourage more community growth. In that spirit, I've
created a wiki at []( to attempt to
meet these demands. Again, it's entirely possible that this will fail
- hence the point of calling this an experiment - but I hope it won't.

Please note that I consider this a temporary home for the content.
Good content can be copied gradually to ``, or perhaps the
whole thing can be hosted on an official OCaml wiki at some point
(perhaps at `` ?). As such, there are some guidelines to
pay attention to, posted [here]( Discussion
channels for making large changes are in this forum (with the `wiki`
tag) and the discord server in the #wiki channel.

To contribute to the wiki, you need to register with wikidot, and then just via
the widget at the bottom of the Contribution Guidelines.

Now go forth and document stuff!
Yotam Barnoy then added:
@kakadu made an excellent point on IRC, which is that wikis aren't really
necessary nowadays since github provides very similar functionality with its
combination of and links to other markdown documents. I think this may
be true, and the advantages of using github's infrastructure over wikidot's are
plenty. For one thing, wikidot has a different syntax from markdown, and
markdown has become the industry standard. For another, not everyone wants a
wikidot account, but everyone has a github account. Finally, using github means
we're using git for version control, whereas wikidot has its own weird page-lock
and history system.

I briefly considered using github wikis, but I strongly dislike their look, and
additionally, github's robots.txt file prohibits google from indexing any of the

For these reasons, I've made a clone of the wiki on github. Right now I'm still
evaluating, but I'm heavily leaning towards this version rather than the wiki
version. The repo can be found [here]( or
with the shorter path, and is fully usable as is.
Additionally, the pretty github pages version is
[here]( or at

I really think github changed the rules of the game here. Let me know if you
like this version. The benefit of having such a simple system cannot be
Ashish Agarwal replied:
@bluddy Thanks for setting this up. I think we can relax the view that
has to adhere to some higher standard of quality or stability. There is some
structure in that is difficult to change (which is not necessarily a
bad thing, you can't have a good design and stable links if people keep
re-organizing pages entirely). We have 4 primary landing pages: Learn,
Documentation, Community, and Packages. These pages are heavily styled and are
not so easy to change (in hindsight, this was perhaps a mistake). If you do
change them significantly, it is expected that you have a pretty good grasp of
all the content on because they are the gateway to *all* the content.
You can't just delete items because then there is no link to that content from
anywhere. So we would have to review such a PR carefully.

However, you can have a lot of freedom on other pages, which are mostly content,
exactly what you want to focus on. For example, OCamlverse's
[Learning]( page is
similar to's [Tutorials]( page, so I
think all this content in essentially the exact same format could have been
added directly to A PR for something like this would be accepted

As pointed out, your Learning page is similar to awesome-ocaml, and I long ago
proposed that an awesome-ocaml style list of links replace the content of the
current Tutorials page. See [issue

Just to give one more example, the FAQ page could be improved too. It's just a
list, grouped into some categories. Anyone could add a FAQ or re-group the
items. Such a PR would be accepted pretty easily. These pages are very "dynamic"
in the sense you're saying. Only problem is no one has submitted such PRs.
Bobby Priambodo said and Yotam Barnoy replied:
> I however notice some duplicate content from awesome-ocaml (especially in the
> Ecosystem pages).

I took most of that from awesome-ocaml so we have a good starting point. I
changed some of the categories though and tried to make it more orderly,
splitting up into multiple pages where I felt the content justified it.

> How do you see the two collaborates? Will ocamlverse eventually supersede
> awesome-ocaml?

I see ocamlverse as a community-maintained site, organized for the needs of the
community. Awesome ocaml by definition fits into the 'awesome' line of sites,
and suffers somewhat for adhering to that format. Describing the state of the
ecosystem is just one sub-function I foresee for ocamlverse. I'm happy to make
just about anyone a maintainer of ocamlverse so that we can have a near-wiki
experience, simply one maintained with git and using markdown. Any radical
changes should probably be done through the PR process, but small to medium
sized ones can be done directly.

> Also, will using github pages solve the indexing issue?

The github pages is a bonus -- a slightly nicer way of browsing the content that
was just too easy to set up. github's robots.txt allows crawling only of the
master branch of a repo (for this reason, ocaml's 'trunk' branch isn't indexed
directly, for example), so we should be covered by that.

> (I also saw your note on documentation best practices section; I’m okay with you
> putting it inline, perhaps deprecating my repo and pointing it there if needed.)

Great! I'd be happy to add you to the maintainers and you're welcome to do that
if you want, or I can do it when I get a chance.

In general, anyone who wants to help maintain ocamlverse (even if it's just to
modify something small) can post their github username here and I'll be glad to
add them. Just pay attention to the contribution guidelines (which need to be
rewritten a little since it's no longer a real wiki).

Passmaker 1.0


Dario Teixeira announced:
I'm happy to announce the release of Passmaker 1.0, a library and associated
command line utility for the generation of memorable passphrases.

The rationale for this project is fairly simple: Suppose you had to quickly
memorise 64 bits of entropy. Which of the following would you rather memorise?

 - `8505741ffe0224c0`
- `Orbital ape witnesses melodic berry from London`

Please check out the README at [the project's
homepage]( for a full overview of its

Passmaker is now available in OPAM, and is split into two packages: The library
itself is available under the `passmaker` package, whereas the command line
utility is available under `passmakercmd`.

As always, comments / suggestions / bug reports are welcome!

Pyre - Type checking in OCaml for Python


Shalok Shalom announced:
In case you missed it: Facebook does a Python type checker in OCaml

Orsetto: assorted structured data interchange languages


james woodyatt announced:
I have made available one of my personal side projects,
[Orsetto](, for community review. My plan is
for this library is for it to be an assortment of structured data interchange
languages organized around a common foundation of various general purpose
utilities. At the moment, only JSON is implemented, and I'm planning to
implement CBOR next.

Much of the foundation layer in Orsetto originated in my now outdated _Oni_
project. That project also included some experimental work in concurrent network
I/O, which I'm hoping to revisit in the context of the algebraic effects feature
in development on the OCaml multicore project. In the meantime, Orsetto is
generally useful in OCaml 4.06.1 and later.

I haven't posted a package on OPAM yet. I'm waiting for the OPAM 2.0 migration.
If you're interested in playing with it now, then you'll need to be using OPAM
2.0, then clone the repository and install it with a pinned local source tree.

Regenerate: Test generation for regular expression engines


Gabriel Radanne announced:
I’m happy to announce the release of Regenerate, a tool to generate test cases
for regular expression engines. You can read the details in the link below, or
play around with the [online demo](

Functional Programming @ DFINITY


Mark Rafferty announced:
Fancy applying your functional skills in the world-changing
decentralization industry?

Please consider joining the team at DFINITY building the “Internet

Check out some sample functional maestros on the team:-

*Andreas Rossberg*

Previously a Google Staff Engineer, Andreas is co-creator of WebAssembly, and maintains the reference specification in
OCaml. WebAssembly is a fast evolving open virtual machine standard that is
already supported by all the major Web browsers and will be run by backend
processes on the Internet Computer. In earlier lives, Andreas lead the V8
language team and was a researcher in programming language semantics, type
systems, module systems and functional programming. Coding WebAssembly
systems is the next big thing!

Location: Germany

*Paul Liu*

Previously an Intel Staff Engineer, Paul is a functional programming
specialist who was previously responsible for Intel Labs’ Haskell compiler,
which unlocked new levels of performance for software running on advanced
multi-core chipsets such as the Xeon Phi. Paul has deep software
development experience and currently works on the DFINITY client. He has a
PhD from Yale where his advisor was Paul Hudak (one of the inventors of

Location: California

*Ben Lynn*

Previously a senior engineer at Google, Ben has numerous claims to fame.
These include being the “L” from the groundbreaking BLS cryptography scheme
applied by a DFINITY protocol to rapidly bring massive networks to
consensus. Ben currently works on the DFINITY client, his own
implementation of a WebAssembly virtual machine written in Haskell, and
various new languages and compilers for WebAssembly also written in
Haskell. Generally speaking, he likes making cool stuff

Location: California

*Maciej Wos* Maciej is a programming language enthusiast with a background
in compilers, cloud computing, and financial software. He studied Computer
Science at Oxford University and Cambridge University and joined DFINITY
after three years at Fugue where he helped build Ludwig, a modular,
compiled language for infrastructure as code.

Location: Japan

*This is just a small sample of people in our fast-growing functional
engineering team, which we are seeking to double in size. You will be
working for the DFINITY Foundation, which has accumulated enormous funding
to pursue one of the most ambitious technology projects of modern times.*

Our functional code provides reference implementations for sophisticated
distributed protocols, virtual machines, compilers, cryptography and other
interesting things.

The main requirement is that you are an awesome senior engineer and care
about this field. We encourage applications from people with unusual
backgrounds (autodidacts, hackers, and all comers). We provide brilliant
salaries, benefits and incentive packages.

Please contact

London Tezos meetup - OCaml programming speaker needed


stephenyang announced:
We are hosting a small meetup for Tezos in London. The topic is: [Is this the
Next Big Cryptocurrency? TEZOS: The Digital

We really hope there is an OCaml developer can be at the meeting and talk to the
audience about some key advantages (or disadvantages) of OCaml language.

Will you be free and interested in joining us to be one of the speakers? The
time and location is:
Fri 1st June 2018
19:30 – 22:00 BST
Imperial College London Kensington, London, SW7 2AZ

Please be in contact.

Other OCaml News

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

Ann: Regenerate | Drup's thingies

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