Need help with milewski-ctfp-pdf?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

8.8K Stars 473 Forks GNU General Public License v3.0 306 Commits 55 Opened issues


Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source

Services available


Need anything else?

Contributors list

Category Theory for Programmers

image Direct link: category-theory-for-programmers.pdf
(Latest release: v1.3.0, August 2019. See releases for additional formats and languages.)

Build Status
(latest CI build)

Buy Category Theory for Programmers
Available in full-color hardcover print
Publish date: 12 August, 2019. Based off release tag v1.3.0. See errata-1.3.0 for changes and fixes since print.

Scala Edition is now available in paperback
Publish date: 12 August, 2019. Based off release tag v1.3.0. See errata-scala for changes and fixes since print.

This is an unofficial PDF version of "Category Theory for Programmers" by Bartosz Milewski, converted from his blogpost series (with permission!)


The best way to build the book is using the Nix package manager. After installing Nix, type

in the root directory of the project. This will download all the needed dependencies and tools to build the book (TeXLive, required fonts and packages, Pygments theme for syntax highligting, etc.)

When the download is complete, and you're prompted with a shell, use the instructions below to build the book.


directory contains the LaTeX sources. To recompile the book, go there and enter:
$ make

To build the Scala edition, type:

$ make scala

Upon successful compilation, the files will be placed in the

directory next to

The file

contains all the configuration and style declarations.


PDF LaTeX source and the tools to create it are based on the work by Andres Raba et al., available here:
The book content is taken, with permission, from Bartosz Milewski's blogpost series, and adapted to the LaTeX format.

Thanks to the following people for contributing corrections/conversions and misc:

  • Oleg Rakitskiy
  • Jared Weakly
  • Paolo G. Giarrusso
  • Adi Shavit
  • Mico Loretan
  • Marcello Seri
  • Erwin Maruli Tua Pakpahan
  • Markus Hauck
  • Yevheniy Zelenskyy
  • Ross Kirsling
  • ...and many others!

The original blog post acknowledgments by Bartosz are consolidated in the Acknowledgments page at the end of the book.

Note from Bartosz: I really appreciate all your contributions. You made this book much better than I could have imagined. Thank you!


The PDF book,

files, and associated images and figures in directories
are licensed under Creative Commons Attribution-ShareAlike 4.0 International License (cc by-sa).

The script files
and others are licensed under GNU General Public License version 3 (for details, see LICENSE).

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.