# Stdlib vs Base in 2025 (beginner)

**URL:** <https://discuss.ocaml.org/t/stdlib-vs-base-in-2025-beginner/16626>\
**Category:** Learning\
**Tags:** stdlib, base\
**Created:** [May 8, 2025, 7:32pm UTC](https://discuss.ocaml.org/t/stdlib-vs-base-in-2025-beginner/16626 "2025-05-08T19:32:08Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![emiel](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/emiel/32/3941_2.png) [@emiel](https://discuss.ocaml.org/u/emiel)\
**Post date:** [May 8, 2025, 7:32pm UTC](https://discuss.ocaml.org/t/stdlib-vs-base-in-2025-beginner/16626/1 "2025-05-08T19:32:08Z")

</div>

Hello. I’ve restarted my OCaml learning journey and am working on some exercises. One source I’m using is Exercism, which defaults to using [Base](https://ocaml.org/p/base/latest) for exercises. I’m reading [OCaml From the Very Beginning](https://johnwhitington.net/ocamlfromtheverybeginning/index.html) and [OCaml Programming: Correct + Efficient + Beautiful](https://cs3110.github.io/textbook/cover.html), which don’t mention Base, and as far as I can tell, rely on Stdlib.

Have `Stdlib` and `Base` come closer together in recent years? If so, does it make sense to start off using `Base` in 2025? My initial experience using `Base` is not stellar because 1.) I just want to get started and not have to deal with two options, and 2.) it is unexpected to have to go to a different source (not [ocaml.org](http://ocaml.org)) for the documentation.

Back to my exercises now. 😉

---

<div class="post-metadata">

**Author:** ![smolkaj](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/smolkaj/32/266_2.png) [@smolkaj](https://discuss.ocaml.org/u/smolkaj)\
**Post date:** [May 8, 2025, 7:58pm UTC](https://discuss.ocaml.org/t/stdlib-vs-base-in-2025-beginner/16626/2 "2025-05-08T19:58:42Z")

</div>

> 2.) it is unexpected to have to go to a different source (not [ocaml.org](http://ocaml.org/)) for the documentation.

The documentation for `Base` is generally available on [ocaml.org](http://ocaml.org): [base v0.17.1 · OCaml Package](https://ocaml.org/p/base/v0.17.1/doc/index.html)

It does seem like there is a regression for v0.17.2 and the docs are missing. You may want to report that issue on the base repo.

> Have `Stdlib` and `Base` come closer together in recent years?

Come closer in terms of design philosophy / API design / naming conventions?  
AFAIK, no one is trying to make them come closer together, and they haven’t.

> If so, does it make sense to start off using `Base` in 2025?

Personally I think it does, but [others disagree](https://discuss.ocaml.org/t/what-are-the-biggest-reasons-newcomers-give-up-on-ocaml/10958/484).

---

<div class="post-metadata">

**Author:** ![emiel](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/emiel/32/3941_2.png) [@emiel](https://discuss.ocaml.org/u/emiel)\
**Post date:** [May 8, 2025, 8:30pm UTC](https://discuss.ocaml.org/t/stdlib-vs-base-in-2025-beginner/16626/3 "2025-05-08T20:30:16Z")

</div>

Thanks @smolkaj. Interesting thread you shared.

I had already created [Latest (v0.17.2) has no docs on https://ocaml.org/p/base/latest · Issue #181 · janestreet/base · GitHub](https://github.com/janestreet/base/issues/181)

---

<div class="post-metadata">

**Author:** ![shonfeder](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/shonfeder/32/424_2.png) [@shonfeder](https://discuss.ocaml.org/u/shonfeder)\
**Post date:** [May 8, 2025, 8:31pm UTC](https://discuss.ocaml.org/t/stdlib-vs-base-in-2025-beginner/16626/4 "2025-05-08T20:31:07Z")

</div>

My personal preference (partially informed by which projects I tend to work on, partially just an aesthetic preference, and partially not based on anything ) is to use the Stdlib (which has steadily and quietly grown over the last few years) and pull in bits of Containers as needed if I get tired of implementing too many common helpers.

That said, for the purposes of learning I don’t think there is anything lost in either path, as i find it’s no trouble to work in projects oriented around Base when needed, and I think going the other way would be just as easy.

---

<div class="post-metadata">

**Author:** ![lukstafi](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/lukstafi/32/3442_2.png) [@lukstafi](https://discuss.ocaml.org/u/lukstafi)\
**Post date:** [May 9, 2025, 8:45am UTC](https://discuss.ocaml.org/t/stdlib-vs-base-in-2025-beginner/16626/5 "2025-05-09T08:45:46Z")

</div>

To bring the experience slightly closer, `open StdLabels` when using Stdlib since `Base` is extensively labelled. But personally I don’t do that…

I use both Stdlib and Base, the former for libraries I would like to be more broadly depended on.
