A comprehensive diagram of the typeclass hierarchy for cats 2.13.0, cats-effect 3.7.1, and cats-mtl 1.7.0.
The original tpolecat/cats-infographic (v1.x) was created by Rob Norris (tpolecat) using OmniGraffle. However, that version is no longer actively maintained and covers only older library versions. Additionally, OmniGraffle requires a paid license, making it difficult for the community to contribute updates.
This fork (v2.x) addresses both issues by:
- Keeping the diagram up-to-date with current cats ecosystem releases
- Using open-source tools (mathcha and LaTeX) so anyone can contribute without licensing barriers
The result is a maintainable, community-accessible diagram that will continue to evolve with future cats releases.
To edit the diagram structure:
- Load cats-infographic.mathcha into mathcha
- Make your changes in the visual editor
- Export as LaTeX and set the font to Inconsolata for optimal rendering
To polish details:
- Edit cats-infographic.tex directly
- Recompile with
pdflatexand regenerate the SVG
pdflatex -interaction=nonstopmode -halt-on-error cats-infographic.tex
pdftocairo -svg -noshrink -nocenter cats-infographic.pdf cats-infographic.svgThe standalone class sizes the page to the diagram. Change border=10mm in
cats-infographic.tex to adjust all four margins. The title and footer use zero
node padding so the vertical margins follow the visible text. The SVG inherits
the PDF page size; pdftocairo is provided by Poppler.
\pagecolor{white} paints an opaque white background in both exports, including
the margins. The SVG conversion uses -noshrink -nocenter to preserve the page
coordinates and avoid thin transparent edges from automatic scaling.
Original files from the upstream repository are preserved in the old/ folder.
Both the new and original diagrams are available under CC-BY-SA 4.0.
The PDF export is suitable for printing or framing.
Click the SVG below to view at full resolution: