Hello Here is the latest OCaml Weekly News, for the week of December 16 to 23, 2025. Table of Contents ───────────────── Camp, the Caml Amp Ahrefs Grant Program for OCaml Call for Contributions: Caml in the Capital (Feb 26) Dream – looking for maintainers to take ownership QCheck 0.90: The Great Renaming Other OCaml News Old CWN Camp, the Caml Amp ══════════════════ Archive: Andreas Rossberg announced ────────────────────────── Happy to share “Camp”, the Caml Amp — an old-school music player heavily inspired by good old Winamp, with a focus on decent music library and playlist handling. I was fed up with Winamp being dead and lacking features I wanted, so I went into full-on nerd mode and implemented my own opinionated replacement, all in OCaml using the Raylib library: If you have not yet been sucked in by the streaming cartels, you might find it useful. • Runs on Windows, Mac, and Linux • Support for WAV, FLAC, MP3, OGG, QOA, MOD, and XM • Advanced music library management with many browse and search features • Elaborate playlist manipulation and query-based “smart” playlists • Animated user interface styled after hifi when it still looked good (no corners were rounded in the making of this app) Enjoy, /Andreas Ahrefs Grant Program for OCaml ══════════════════════════════ Archive: Louis Roché announced ───────────────────── Ahrefs is excited to announce a new *Ahrefs Grant Program for OCaml* to support projects in the OCaml ecosystem. This effort comes in addition to the other sponsorships we do (such as the [OCSF], the [ICFP] and [Fun OCaml] conferences, [github sponsoring], and [various other projects]) We are allocating money to fund one or multiple initiatives that help advance OCaml and its tooling. You can learn more about our engineering culture and opensource support work at [https://ahrefs.com/tech] [OCSF] [ICFP] [Fun OCaml] [github sponsoring] [various other projects] [https://ahrefs.com/tech] Call for Applications ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ We invite individuals, teams, and organizations working with OCaml to submit proposals for funding. Our goal is to support meaningful, practical improvements to the ecosystem, whether through new tools, libraries, infrastructure, education, or long‑term maintenance of existing projects. Applications should be submitted through [this google form]. The deadline for submissions is January 20th 2026. [this google form] What We Are Looking For ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ We welcome proposals that: • Strengthen the OCaml compiler or core libraries • Improve developer experience (tooling, documentation, debugging, profiling, packaging, …) • Expand the OCaml ecosystem through new libraries or modernization of key dependencies • Enhance reliability, performance, or safety of OCaml‑based systems • Support education, community infrastructure, or long‑term maintenance Both small and large initiatives are welcome. We will prioritize projects that will have lasting impact and will be maintained. The selection of proposal will necessarily be subjective and depend on our priorities and interests. Funding ╌╌╌╌╌╌╌ Applicants may request up to *USD 50,000* in support per project. We may award a single project or distribute among several proposals. How to Apply ╌╌╌╌╌╌╌╌╌╌╌╌ Your application should follow the format below and be sent through [this google form]. Please be short and to the point in your answers; focus primarily on the what and how, not so much on the why. If English isn't your first language, don't worry — our reviewers don't care about spelling errors, only about great ideas. You can be as technical as you need to be. Do stay specific. [this google form] ◊ *1. Contact Information* • *Name* • *Organization* (if applicable) • *Email address* • *Country* ◊ *2. General Project Information* • *Title* • *Abstract* (up to 1200 characters) Explain the *whole project* and its expected outcome(s). • *Yourself or the team* (2500 characters) Who is participating? Have you been involved with similar or related projects? Please provide background information and describe your past contributions. • *Website* (if any) • *License* Under which license will the project be distributed? It *must* be an open source license. ◊ *3. Requested Support* • *Requested Amount* (up to USD 50,000) • *Budget and Breakdown* (up to 2500 characters) Explain what the budget will be used for. Are there other funding sources? Include a breakdown of tasks, estimated effort, and explicit rates. • *Describe your project and its technical challenges* (up to 5000 characters) What are significant technical challenges you expect to solve during the project, if any? Compare your own project with existing or historical efforts. E.g. what is new, more thorough or otherwise different. • *Ecosystem and Outreach* (up to 1200 characters) Describe the project ecosystem and how you will engage with relevant actors or promote the adoption. Questions ╌╌╌╌╌╌╌╌╌ If you have questions prior to submitting an application, feel free to reach out at `grants@ahrefs.com'. We look forward to support the work that will move the OCaml ecosystem forward. Call for Contributions: Caml in the Capital (Feb 26) ════════════════════════════════════════════════════ Archive: "Alistair O'Brien announced ─────────────────────────── Hey all 👋, A quick follow-up on Caml in the Capital: the first meetup is now confirmed 🎉. *When*: Thursday 26th February 2026, 6:30-8:30pm *Where*: Imperial College London, Flowers Building Thanks to everyone who helped settle on a date! Call for contributions ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ We’re still looking for presenters! Talks are workshop-style: anything from an accessible introduction of your work or research, a deep dive into your library, a live demo, or a tutorial. If you’d like to give a talk, please message me or @giltho directly with: • A title • Short abstract • Expected time slot *Deadline*: 1st February 2026 We’ve set a deadline so we have enough time to finalize the programme and handle the practical organisation (room setup, schedule, announcements, etc.). Call for participation ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ You’re very welcome to attend even if you’re not presenting. If you plan to attend, please register [here]. Many thanks to Imperial College for hosting us and OCaml Software Foundation for funding us!! :raised_hands: Alistair & Sacha [here] Sacha Ayoun later added ─────────────────────── If there are any additional questions on registration, organisation, logistics, feel free to ask questions in this thread, or in the [dedicated Zulip channel]( ) 🙂 Dream – looking for maintainers to take ownership ═════════════════════════════════════════════════ Archive: Anton Bachin announced ────────────────────── *[Dream]*, the Web framework, is looking for a maintenance team! I originally wrote Dream in 2021, and actively maintained it for several years. It has gotten many great contributions from other authors since its first release, for which I am very grateful! At the present time, I am no longer in a position to sustainably maintain Dream. I’d like to yield it to one or several maintainers, who would have the ability to pursue their vision, bring their ideas, credibly seek funding for work that substantially affects it, and cite it on their resume or elsewhere. In other words, to take ownership of it. I would stay on in an advisory role, to transfer knowledge, help negotiate, and assist in various ways, as a volunteer. We’ve already been having Dream community development meetings over on Discord since August, which have been very helpful. Last month, I transferred Dream to an org on GitHub. It’s ready for the next step :slight_smile: Dream has a very large amount of interesting work to do. The original motivation was not only to create a modern, highly ergonomic Web framework in a minimal sense, but to do a whole tour through the OCaml Web development ecosystem and address every other place where a major library is missing, or where quality of life can be improved. See the [roadmap] for some of the many ideas. In fact, we had started working on this back in 2022 with a small team of people, and created an OAuth library. That enterprise was unfortunately terminated by events outside our control, and the logical step now is for me to yield control of Dream itself to a differently structured team, for its natural development :slight_smile: If you’re interested, please DM me here on Discuss! If you have such, please link your projects related to Web development, or where you have been a maintainer. Let me know if you’re a user of Dream, and what you’d like to see in Web development in OCaml. Thank you! [Dream] [roadmap] QCheck 0.90: The Great Renaming ═══════════════════════════════ Archive: Jan Midtgaard announced ─────────────────────── It is my pleasure to announce release 0.90 of the QCheck packages. QCheck is an OCaml library for randomized property-based testing in the style of Haskell's QuickCheck. It has been over 12 years and 40 releases since @c-cube released version 0.1 back in October 2013. Over this period QCheck has grown organically • with new combinators on a "by-need" basis and • with a separate `QCheck2' module offering generators with integrated shrinking. This has unfortunately resulted in a bit of a naming mess with inconsistent generator names. For example, the (now deprecated) `small_int' combinator will generate only small non-negative numbers, and a combinator for generating positive integers uniformly is named either `pint' or `pos_int' across different QCheck modules. The 0.90 release thus takes on a cleanup under the heading "The Great Renaming". To guide the renaming process, we have assembled a list of hard-learned naming principles: • Generator names should align with type names (`bool', `char', … `list', `option') to be as predictable as possible • We should have short, unparameterized generators (`int', `string', …) to lower the barrier to entry • Specialized generators also start with the type name, but use a consistent suffix (`_pos', `_neg', `_size', `_of', …) to help find them, e.g., with tab-completion • We may include a few shorthand names for convenience (e.g., `nat') • Overall we aim to be as consistent as possible, e.g., offering similar signatures across generator interfaces (`QCheck.Gen', `QCheck.arbitrary', and `QCheck2.Gen') The 0.90 release thus both • introduces a range of new (and hopefully more consistent) combinator names and • deprecates a sizable number of old, inconsistent combinator names The deprecated combinators have been annotated with `@@deprecated' attributes. Rather than let a couple more years pass with an even bigger and more confusing name pool, we are using this opportunity to prepare a long overdue 1.0.0 release, where we will remove the old, deprecated combinator names. We understand that updating existing tests to the new names takes some effort, but appeal to users that this should be a one-time investment to • offer more consistent and easier to recall combinator names and simultaneously • let us clean up QCheck tech debt and address a long-time pain point. The changes are summarized in a record-long CHANGELOG section for the release: and [c-cube/qcheck#366] provides a run down of the renaming process. For more details, see the following list of PRs: • [qcheck/pull#367] • [qcheck/pull#369] • [qcheck/pull#370] • [qcheck/pull#371] • [qcheck/pull#372] • [qcheck/pull#373] • [qcheck/pull#374] • [qcheck/pull#376] • [qcheck/pull#379] • [qcheck/pull#380] • [qcheck/pull#381] • [qcheck/pull#386] • [qcheck/pull#387] • [qcheck/pull#388] • [qcheck/pull#389] • [qcheck/pull#390] • [qcheck/pull#391] • [qcheck/pull#392] • [qcheck/pull#393] • [qcheck/pull#394] • [qcheck/pull#396] Finally, on behalf of the maintainers I would like to thank • the various folks contributing to QCheck over the past 12 years and • the OCaml Software Foundation for financially supporting the work on these past three releases. Merry Christmas and happy testing! :evergreen_tree: :wrapped_gift: [c-cube/qcheck#366] [qcheck/pull#367] [qcheck/pull#369] [qcheck/pull#370] [qcheck/pull#371] [qcheck/pull#372] [qcheck/pull#373] [qcheck/pull#374] [qcheck/pull#376] [qcheck/pull#379] [qcheck/pull#380] [qcheck/pull#381] [qcheck/pull#386] [qcheck/pull#387] [qcheck/pull#388] [qcheck/pull#389] [qcheck/pull#390] [qcheck/pull#391] [qcheck/pull#392] [qcheck/pull#393] [qcheck/pull#394] [qcheck/pull#396] Other OCaml News ════════════════ From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [AoAH Day 21: Complete dynamic HTML5 validation in OCaml and the browser] • [AoAH Day 20: Human language detection in native code, JS and wasm] • [AoAH Day 19: Zulip bot framework to bring Vicuna the friendly camel back] • [AoAH Day 18: TOML 1.1 codecs directly from the spec and paper] • [Claude and Dune] • [Partridge Puzzle] • [AoAH Day 17: OCaml JMAP to plaster my painful email papercuts] • [AoAH Day 16: Vibesplaining JSON Pointers using OCaml/Javascript] • [AoAH Day 15: Porting a complete HTML5 parser and browser test suite] [the ocaml.org blog] [AoAH Day 21: Complete dynamic HTML5 validation in OCaml and the browser] [AoAH Day 20: Human language detection in native code, JS and wasm] [AoAH Day 19: Zulip bot framework to bring Vicuna the friendly camel back] [AoAH Day 18: TOML 1.1 codecs directly from the spec and paper] [Claude and Dune] [Partridge Puzzle] [AoAH Day 17: OCaml JMAP to plaster my painful email papercuts] [AoAH Day 16: Vibesplaining JSON Pointers using OCaml/Javascript] [AoAH Day 15: Porting a complete HTML5 parser and browser test suite] 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 to the [caml-list]. [Alan Schmitt] [send me a message] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt]