Skip to content

About

typeclass diagram for cats

Resources

Stars

2 stars

Watchers

1 watching

Forks

 
 

Repository files navigation

Cats Infographic

This infographic illustrates the typeclass hierarchies and relationships in cats 2.13.0, cats-effect 3.7.1, and cats-mtl 1.7.0.

This is an updated version of the original infographic, created with Mathcha and LaTeX and shareable under the CC-BY-SA 4.0 license.

The .pdf export is probably what you want for printing, framing, or tattoo inspiration.

The .svg export below can be enlarged with a gentle click.

Cats typeclass hierarchy infographic

How to Read the Diagram

  • Colors distinguish typeclasses from different modules.
  • Arrows indicate relationships between typeclasses, generally pointing toward parent typeclasses.
  • Dashed relationships in the cats-mtl section represent implications rather than direct inheritance.

About This Version

The original tpolecat/cats-infographic (v1.x) was created by Rob Norris using OmniGraffle.

This fork (v2.x) updates the diagram to the library versions listed above and provides editable Mathcha and LaTeX sources to make future contributions easier.

Contributing

Contributions to improve the diagram or update it for newer library versions are welcome.

Editing the Diagram

To edit the diagram structure:

  1. Load cats-infographic.mathcha into Mathcha.
  2. Make your changes in the visual editor.
  3. Export the diagram as LaTeX, preserving the font configuration in the existing source.

To polish details:

Be aware that exporting from Mathcha again may overwrite manual changes to the LaTeX source.

Generating the Exports

With a LaTeX distribution and Poppler installed, run the following commands from the repository root:

pdflatex -interaction=nonstopmode -halt-on-error cats-infographic.tex

pdftocairo -svg -noshrink -nocenter cats-infographic.pdf cats-infographic.svg

Rendering Details

The 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.

\pagecolor{white} paints an opaque white background in both exports, including the margins.

The SVG inherits the PDF page size. The pdftocairo command, provided by Poppler, uses -noshrink -nocenter to preserve the page coordinates and avoid thin transparent edges from automatic scaling.

About

typeclass diagram for cats

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages