gitextract_i87k79kx/ ├── .editorconfig ├── .envrc ├── .github/ │ ├── settings.yml │ └── workflows/ │ ├── nix-flake-check.yaml │ ├── nix-fmt-checks.yaml │ ├── prettier-checks.yaml │ └── release.yaml ├── .gitignore ├── .latexindent.yaml ├── .prettierignore ├── .prettierrc ├── LICENSE ├── Makefile ├── README.md ├── errata-1.0.0.md ├── errata-1.3.0.md ├── errata-scala.md ├── flake.nix └── src/ ├── acknowledgments.tex ├── category.tex ├── colophon.tex ├── content/ │ ├── 0.0/ │ │ └── preface.tex │ ├── 1.1/ │ │ ├── category-the-essence-of-composition.tex │ │ └── code/ │ │ ├── haskell/ │ │ │ ├── snippet01.hs │ │ │ ├── snippet02.hs │ │ │ ├── snippet03.hs │ │ │ ├── snippet04.hs │ │ │ ├── snippet05.hs │ │ │ └── snippet06.hs │ │ ├── ocaml/ │ │ │ ├── snippet01.ml │ │ │ ├── snippet02.ml │ │ │ ├── snippet03.ml │ │ │ ├── snippet04.ml │ │ │ ├── snippet05.ml │ │ │ └── snippet06.ml │ │ ├── reason/ │ │ │ ├── snippet01.re │ │ │ ├── snippet02.re │ │ │ ├── snippet03.re │ │ │ ├── snippet04.re │ │ │ ├── snippet05.re │ │ │ └── snippet06.re │ │ └── scala/ │ │ ├── snippet01.scala │ │ ├── snippet02.scala │ │ ├── snippet03.scala │ │ ├── snippet04.scala │ │ ├── snippet05.scala │ │ └── snippet06.scala │ ├── 1.10/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ ├── snippet25.hs │ │ │ │ ├── snippet26.hs │ │ │ │ └── snippet27.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ ├── snippet25.ml │ │ │ │ ├── snippet26.ml │ │ │ │ └── snippet27.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ ├── snippet25.re │ │ │ │ ├── snippet26.re │ │ │ │ └── snippet27.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ ├── snippet25.scala │ │ │ ├── snippet26.scala │ │ │ └── snippet27.scala │ │ └── natural-transformations.tex │ ├── 1.2/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ └── snippet11.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet010.ml │ │ │ │ ├── snippet011.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ └── snippet11.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet010.re │ │ │ │ ├── snippet011.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ └── snippet11.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ └── snippet11.scala │ │ └── types-and-functions.tex │ ├── 1.3/ │ │ ├── categories-great-and-small.tex │ │ └── code/ │ │ ├── haskell/ │ │ │ ├── snippet01.hs │ │ │ └── snippet02.hs │ │ ├── ocaml/ │ │ │ ├── snippet01.ml │ │ │ └── snippet02.ml │ │ ├── reason/ │ │ │ ├── snippet01.re │ │ │ └── snippet02.re │ │ └── scala/ │ │ ├── snippet01.scala │ │ └── snippet02.scala │ ├── 1.4/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ └── snippet07.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ └── snippet07.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ └── snippet07.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ └── snippet07.scala │ │ └── kleisli-categories.tex │ ├── 1.5/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ ├── snippet25.hs │ │ │ │ ├── snippet26.hs │ │ │ │ ├── snippet27.hs │ │ │ │ └── snippet28.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ ├── snippet25.ml │ │ │ │ ├── snippet26.ml │ │ │ │ ├── snippet27.ml │ │ │ │ └── snippet28.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ ├── snippet25.re │ │ │ │ ├── snippet26.re │ │ │ │ ├── snippet27.re │ │ │ │ └── snippet28.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ ├── snippet25.scala │ │ │ ├── snippet26.scala │ │ │ ├── snippet27.scala │ │ │ └── snippet28.scala │ │ └── products-and-coproducts.tex │ ├── 1.6/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ ├── snippet25.hs │ │ │ │ ├── snippet26.hs │ │ │ │ ├── snippet27.hs │ │ │ │ ├── snippet28.hs │ │ │ │ ├── snippet29.hs │ │ │ │ ├── snippet30.hs │ │ │ │ ├── snippet31.hs │ │ │ │ ├── snippet32.hs │ │ │ │ ├── snippet33.hs │ │ │ │ ├── snippet34.hs │ │ │ │ ├── snippet35.hs │ │ │ │ ├── snippet36.hs │ │ │ │ └── snippet37.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ ├── snippet25.ml │ │ │ │ ├── snippet26.ml │ │ │ │ ├── snippet27.ml │ │ │ │ ├── snippet28.ml │ │ │ │ ├── snippet29.ml │ │ │ │ ├── snippet30.ml │ │ │ │ ├── snippet31.ml │ │ │ │ ├── snippet32.ml │ │ │ │ ├── snippet33.ml │ │ │ │ ├── snippet34.ml │ │ │ │ ├── snippet35.ml │ │ │ │ ├── snippet36.ml │ │ │ │ └── snippet37.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ ├── snippet25.re │ │ │ │ ├── snippet26.re │ │ │ │ ├── snippet27.re │ │ │ │ ├── snippet28.re │ │ │ │ ├── snippet29.re │ │ │ │ ├── snippet30.re │ │ │ │ ├── snippet31.re │ │ │ │ ├── snippet32.re │ │ │ │ ├── snippet33.re │ │ │ │ ├── snippet34.re │ │ │ │ ├── snippet35.re │ │ │ │ ├── snippet36.re │ │ │ │ └── snippet37.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ ├── snippet25.scala │ │ │ ├── snippet26.scala │ │ │ ├── snippet27.scala │ │ │ ├── snippet28.scala │ │ │ ├── snippet29.scala │ │ │ ├── snippet30.scala │ │ │ ├── snippet31.scala │ │ │ ├── snippet32.scala │ │ │ ├── snippet33.scala │ │ │ ├── snippet34.scala │ │ │ ├── snippet35.scala │ │ │ ├── snippet36.scala │ │ │ └── snippet37.scala │ │ └── simple-algebraic-data-types.tex │ ├── 1.7/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ ├── snippet25.hs │ │ │ │ ├── snippet26.hs │ │ │ │ ├── snippet27.hs │ │ │ │ ├── snippet28.hs │ │ │ │ ├── snippet29.hs │ │ │ │ ├── snippet30.hs │ │ │ │ ├── snippet31.hs │ │ │ │ ├── snippet32.hs │ │ │ │ ├── snippet33.hs │ │ │ │ ├── snippet34.hs │ │ │ │ └── snippet35.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ ├── snippet25.ml │ │ │ │ ├── snippet26.ml │ │ │ │ ├── snippet27.ml │ │ │ │ ├── snippet28.ml │ │ │ │ ├── snippet29.ml │ │ │ │ ├── snippet30.ml │ │ │ │ ├── snippet31.ml │ │ │ │ ├── snippet32.ml │ │ │ │ ├── snippet33.ml │ │ │ │ ├── snippet34.ml │ │ │ │ └── snippet35.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ ├── snippet25.re │ │ │ │ ├── snippet26.re │ │ │ │ ├── snippet27.re │ │ │ │ ├── snippet28.re │ │ │ │ ├── snippet29.re │ │ │ │ ├── snippet30.re │ │ │ │ ├── snippet31.re │ │ │ │ ├── snippet32.re │ │ │ │ ├── snippet33.re │ │ │ │ ├── snippet34.re │ │ │ │ └── snippet35.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ ├── snippet25.scala │ │ │ ├── snippet26.scala │ │ │ ├── snippet27.scala │ │ │ ├── snippet28.scala │ │ │ ├── snippet29.scala │ │ │ ├── snippet30.scala │ │ │ ├── snippet31.scala │ │ │ ├── snippet32.scala │ │ │ ├── snippet33.scala │ │ │ ├── snippet34.scala │ │ │ └── snippet35.scala │ │ └── functors.tex │ ├── 1.8/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ ├── snippet25.hs │ │ │ │ ├── snippet26.hs │ │ │ │ ├── snippet27.hs │ │ │ │ ├── snippet28.hs │ │ │ │ ├── snippet29.hs │ │ │ │ └── snippet30.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ ├── snippet25.ml │ │ │ │ ├── snippet26.ml │ │ │ │ ├── snippet27.ml │ │ │ │ ├── snippet28.ml │ │ │ │ ├── snippet29.ml │ │ │ │ └── snippet30.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ ├── snippet25.re │ │ │ │ ├── snippet26.re │ │ │ │ ├── snippet27.re │ │ │ │ ├── snippet28.re │ │ │ │ ├── snippet29.re │ │ │ │ └── snippet30.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ ├── snippet25.scala │ │ │ ├── snippet26.scala │ │ │ ├── snippet27.scala │ │ │ ├── snippet28.scala │ │ │ ├── snippet29.scala │ │ │ └── snippet30.scala │ │ └── functoriality.tex │ ├── 1.9/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ └── snippet15.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ └── snippet15.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ └── snippet15.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ └── snippet15.scala │ │ └── function-types.tex │ ├── 2.1/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ └── snippet02.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ └── snippet02.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ └── snippet02.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ └── snippet02.scala │ │ └── declarative-programming.tex │ ├── 2.2/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ └── snippet19.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ └── snippet19.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ └── snippet19.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ └── snippet19.scala │ │ └── limits-and-colimits.tex │ ├── 2.3/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ └── snippet10.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ └── snippet10.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ └── snippet10.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ └── snippet10.scala │ │ └── free-monoids.tex │ ├── 2.4/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ └── snippet15.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ └── snippet15.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ └── snippet15.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ └── snippet15.scala │ │ └── representable-functors.tex │ ├── 2.5/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ └── snippet07.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ └── snippet07.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ └── snippet07.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ └── snippet07.scala │ │ └── the-yoneda-lemma.tex │ ├── 2.6/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ └── snippet02.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ └── snippet02.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ └── snippet02.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ └── snippet02.scala │ │ └── yoneda-embedding.tex │ ├── 3.1/ │ │ └── its-all-about-morphisms.tex │ ├── 3.10/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ └── snippet18.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ └── snippet18.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ └── snippet18.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ └── snippet18.scala │ │ └── ends-and-coends.tex │ ├── 3.11/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ └── snippet12.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ └── snippet12.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ └── snippet12.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ └── snippet12.scala │ │ └── kan-extensions.tex │ ├── 3.12/ │ │ └── enriched-categories.tex │ ├── 3.13/ │ │ └── topoi.tex │ ├── 3.14/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ └── snippet04.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ └── snippet04.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ └── snippet04.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ └── snippet04.scala │ │ └── lawvere-theories.tex │ ├── 3.15/ │ │ └── monads-monoids-and-categories.tex │ ├── 3.2/ │ │ ├── adjunctions.tex │ │ └── code/ │ │ ├── haskell/ │ │ │ ├── snippet01.hs │ │ │ ├── snippet02.hs │ │ │ ├── snippet03.hs │ │ │ ├── snippet04.hs │ │ │ ├── snippet05.hs │ │ │ ├── snippet06.hs │ │ │ ├── snippet07.hs │ │ │ ├── snippet08.hs │ │ │ └── snippet09.hs │ │ ├── ocaml/ │ │ │ ├── snippet01.ml │ │ │ ├── snippet02.ml │ │ │ ├── snippet03.ml │ │ │ ├── snippet04.ml │ │ │ ├── snippet05.ml │ │ │ ├── snippet06.ml │ │ │ ├── snippet07.ml │ │ │ ├── snippet08.ml │ │ │ └── snippet09.ml │ │ ├── reason/ │ │ │ ├── snippet01.re │ │ │ ├── snippet02.re │ │ │ ├── snippet03.re │ │ │ ├── snippet04.re │ │ │ ├── snippet05.re │ │ │ ├── snippet06.re │ │ │ ├── snippet07.re │ │ │ ├── snippet08.re │ │ │ └── snippet09.re │ │ └── scala/ │ │ ├── snippet01.scala │ │ ├── snippet02.scala │ │ ├── snippet03.scala │ │ ├── snippet04.scala │ │ ├── snippet05.scala │ │ ├── snippet06.scala │ │ ├── snippet07.scala │ │ ├── snippet08.scala │ │ └── snippet09.scala │ ├── 3.3/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ └── snippet02.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ └── snippet02.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ └── snippet02.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ └── snippet02.scala │ │ └── free-forgetful-adjunctions.tex │ ├── 3.4/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ └── snippet25.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ └── snippet25.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ └── snippet25.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ └── snippet25.scala │ │ └── monads-programmers-definition.tex │ ├── 3.5/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ ├── snippet25.hs │ │ │ │ ├── snippet26.hs │ │ │ │ ├── snippet27.hs │ │ │ │ ├── snippet28.hs │ │ │ │ ├── snippet29.hs │ │ │ │ ├── snippet30.hs │ │ │ │ ├── snippet31.hs │ │ │ │ ├── snippet32.hs │ │ │ │ ├── snippet33.hs │ │ │ │ ├── snippet34.hs │ │ │ │ ├── snippet35.hs │ │ │ │ ├── snippet36.hs │ │ │ │ └── snippet37.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ ├── snippet25.ml │ │ │ │ ├── snippet26.ml │ │ │ │ ├── snippet27.ml │ │ │ │ ├── snippet28.ml │ │ │ │ ├── snippet29.ml │ │ │ │ ├── snippet30.ml │ │ │ │ ├── snippet31.ml │ │ │ │ ├── snippet32.ml │ │ │ │ ├── snippet33.ml │ │ │ │ ├── snippet34.ml │ │ │ │ ├── snippet35.ml │ │ │ │ ├── snippet36.ml │ │ │ │ └── snippet37.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ ├── snippet25.re │ │ │ │ ├── snippet26.re │ │ │ │ ├── snippet27.re │ │ │ │ ├── snippet28.re │ │ │ │ ├── snippet29.re │ │ │ │ ├── snippet30.re │ │ │ │ ├── snippet31.re │ │ │ │ ├── snippet32.re │ │ │ │ ├── snippet33.re │ │ │ │ ├── snippet34.re │ │ │ │ ├── snippet35.re │ │ │ │ ├── snippet36.re │ │ │ │ └── snippet37.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ ├── snippet25.scala │ │ │ ├── snippet26.scala │ │ │ ├── snippet27.scala │ │ │ ├── snippet28.scala │ │ │ ├── snippet29.scala │ │ │ ├── snippet30.scala │ │ │ ├── snippet31.scala │ │ │ ├── snippet32.scala │ │ │ ├── snippet33.scala │ │ │ ├── snippet34.scala │ │ │ ├── snippet35.scala │ │ │ ├── snippet36.scala │ │ │ └── snippet37.scala │ │ └── monads-and-effects.tex │ ├── 3.6/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ └── snippet25.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ └── snippet25.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ └── snippet25.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ └── snippet25.scala │ │ └── monads-categorically.tex │ ├── 3.7/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ ├── snippet25.hs │ │ │ │ ├── snippet26.hs │ │ │ │ ├── snippet27.hs │ │ │ │ ├── snippet28.hs │ │ │ │ ├── snippet29.hs │ │ │ │ ├── snippet30.hs │ │ │ │ ├── snippet31.hs │ │ │ │ ├── snippet32.hs │ │ │ │ ├── snippet33.hs │ │ │ │ ├── snippet34.hs │ │ │ │ ├── snippet35.hs │ │ │ │ ├── snippet36.hs │ │ │ │ ├── snippet37.hs │ │ │ │ ├── snippet38.hs │ │ │ │ └── snippet39.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ ├── snippet25.ml │ │ │ │ ├── snippet26.ml │ │ │ │ ├── snippet27.ml │ │ │ │ ├── snippet28.ml │ │ │ │ ├── snippet29.ml │ │ │ │ ├── snippet30.ml │ │ │ │ ├── snippet31.ml │ │ │ │ ├── snippet32.ml │ │ │ │ ├── snippet33.ml │ │ │ │ ├── snippet34.ml │ │ │ │ ├── snippet35.ml │ │ │ │ ├── snippet36.ml │ │ │ │ ├── snippet37.ml │ │ │ │ ├── snippet38.ml │ │ │ │ └── snippet39.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ ├── snippet25.re │ │ │ │ ├── snippet26.re │ │ │ │ ├── snippet27.re │ │ │ │ ├── snippet28.re │ │ │ │ ├── snippet29.re │ │ │ │ ├── snippet30.re │ │ │ │ ├── snippet31.re │ │ │ │ ├── snippet32.re │ │ │ │ ├── snippet33.re │ │ │ │ ├── snippet34.re │ │ │ │ ├── snippet35.re │ │ │ │ ├── snippet36.re │ │ │ │ ├── snippet37.re │ │ │ │ ├── snippet38.re │ │ │ │ └── snippet39.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ ├── snippet25.scala │ │ │ ├── snippet26.scala │ │ │ ├── snippet27.scala │ │ │ ├── snippet28.scala │ │ │ ├── snippet29.scala │ │ │ ├── snippet30.scala │ │ │ ├── snippet31.scala │ │ │ ├── snippet32.scala │ │ │ ├── snippet33.scala │ │ │ ├── snippet34.scala │ │ │ ├── snippet35.scala │ │ │ ├── snippet36.scala │ │ │ ├── snippet37.scala │ │ │ ├── snippet38.scala │ │ │ └── snippet39.scala │ │ └── comonads.tex │ ├── 3.8/ │ │ ├── code/ │ │ │ ├── haskell/ │ │ │ │ ├── snippet01.hs │ │ │ │ ├── snippet02.hs │ │ │ │ ├── snippet03.hs │ │ │ │ ├── snippet04.hs │ │ │ │ ├── snippet05.hs │ │ │ │ ├── snippet06.hs │ │ │ │ ├── snippet07.hs │ │ │ │ ├── snippet08.hs │ │ │ │ ├── snippet09.hs │ │ │ │ ├── snippet10.hs │ │ │ │ ├── snippet11.hs │ │ │ │ ├── snippet12.hs │ │ │ │ ├── snippet13.hs │ │ │ │ ├── snippet14.hs │ │ │ │ ├── snippet15.hs │ │ │ │ ├── snippet16.hs │ │ │ │ ├── snippet17.hs │ │ │ │ ├── snippet18.hs │ │ │ │ ├── snippet19.hs │ │ │ │ ├── snippet20.hs │ │ │ │ ├── snippet21.hs │ │ │ │ ├── snippet22.hs │ │ │ │ ├── snippet23.hs │ │ │ │ ├── snippet24.hs │ │ │ │ ├── snippet25.hs │ │ │ │ ├── snippet26.hs │ │ │ │ ├── snippet27.hs │ │ │ │ ├── snippet28.hs │ │ │ │ ├── snippet29.hs │ │ │ │ ├── snippet30.hs │ │ │ │ ├── snippet31.hs │ │ │ │ ├── snippet32.hs │ │ │ │ ├── snippet33.hs │ │ │ │ ├── snippet34.hs │ │ │ │ └── snippet35.hs │ │ │ ├── ocaml/ │ │ │ │ ├── snippet01.ml │ │ │ │ ├── snippet02.ml │ │ │ │ ├── snippet03.ml │ │ │ │ ├── snippet04.ml │ │ │ │ ├── snippet05.ml │ │ │ │ ├── snippet06.ml │ │ │ │ ├── snippet07.ml │ │ │ │ ├── snippet08.ml │ │ │ │ ├── snippet09.ml │ │ │ │ ├── snippet10.ml │ │ │ │ ├── snippet11.ml │ │ │ │ ├── snippet12.ml │ │ │ │ ├── snippet13.ml │ │ │ │ ├── snippet14.ml │ │ │ │ ├── snippet15.ml │ │ │ │ ├── snippet16.ml │ │ │ │ ├── snippet17.ml │ │ │ │ ├── snippet18.ml │ │ │ │ ├── snippet19.ml │ │ │ │ ├── snippet20.ml │ │ │ │ ├── snippet21.ml │ │ │ │ ├── snippet22.ml │ │ │ │ ├── snippet23.ml │ │ │ │ ├── snippet24.ml │ │ │ │ ├── snippet25.ml │ │ │ │ ├── snippet26.ml │ │ │ │ ├── snippet27.ml │ │ │ │ ├── snippet28.ml │ │ │ │ ├── snippet29.ml │ │ │ │ ├── snippet30.ml │ │ │ │ ├── snippet31.ml │ │ │ │ ├── snippet32.ml │ │ │ │ ├── snippet33.ml │ │ │ │ ├── snippet34.ml │ │ │ │ └── snippet35.ml │ │ │ ├── reason/ │ │ │ │ ├── snippet01.re │ │ │ │ ├── snippet02.re │ │ │ │ ├── snippet03.re │ │ │ │ ├── snippet04.re │ │ │ │ ├── snippet05.re │ │ │ │ ├── snippet06.re │ │ │ │ ├── snippet07.re │ │ │ │ ├── snippet08.re │ │ │ │ ├── snippet09.re │ │ │ │ ├── snippet10.re │ │ │ │ ├── snippet11.re │ │ │ │ ├── snippet12.re │ │ │ │ ├── snippet13.re │ │ │ │ ├── snippet14.re │ │ │ │ ├── snippet15.re │ │ │ │ ├── snippet16.re │ │ │ │ ├── snippet17.re │ │ │ │ ├── snippet18.re │ │ │ │ ├── snippet19.re │ │ │ │ ├── snippet20.re │ │ │ │ ├── snippet21.re │ │ │ │ ├── snippet22.re │ │ │ │ ├── snippet23.re │ │ │ │ ├── snippet24.re │ │ │ │ ├── snippet25.re │ │ │ │ ├── snippet26.re │ │ │ │ ├── snippet27.re │ │ │ │ ├── snippet28.re │ │ │ │ ├── snippet29.re │ │ │ │ ├── snippet30.re │ │ │ │ ├── snippet31.re │ │ │ │ ├── snippet32.re │ │ │ │ ├── snippet33.re │ │ │ │ ├── snippet34.re │ │ │ │ └── snippet35.re │ │ │ └── scala/ │ │ │ ├── snippet01.scala │ │ │ ├── snippet02.scala │ │ │ ├── snippet03.scala │ │ │ ├── snippet04.scala │ │ │ ├── snippet05.scala │ │ │ ├── snippet06.scala │ │ │ ├── snippet07.scala │ │ │ ├── snippet08.scala │ │ │ ├── snippet09.scala │ │ │ ├── snippet10.scala │ │ │ ├── snippet11.scala │ │ │ ├── snippet12.scala │ │ │ ├── snippet13.scala │ │ │ ├── snippet14.scala │ │ │ ├── snippet15.scala │ │ │ ├── snippet16.scala │ │ │ ├── snippet17.scala │ │ │ ├── snippet18.scala │ │ │ ├── snippet19.scala │ │ │ ├── snippet20.scala │ │ │ ├── snippet21.scala │ │ │ ├── snippet22.scala │ │ │ ├── snippet23.scala │ │ │ ├── snippet24.scala │ │ │ ├── snippet25.scala │ │ │ ├── snippet26.scala │ │ │ ├── snippet27.scala │ │ │ ├── snippet28.scala │ │ │ ├── snippet29.scala │ │ │ ├── snippet30.scala │ │ │ ├── snippet31.scala │ │ │ ├── snippet32.scala │ │ │ ├── snippet33.scala │ │ │ ├── snippet34.scala │ │ │ └── snippet35.scala │ │ └── f-algebras.tex │ ├── 3.9/ │ │ ├── algebras-for-monads.tex │ │ └── code/ │ │ ├── haskell/ │ │ │ ├── snippet01.hs │ │ │ ├── snippet02.hs │ │ │ ├── snippet03.hs │ │ │ ├── snippet04.hs │ │ │ ├── snippet05.hs │ │ │ ├── snippet06.hs │ │ │ ├── snippet07.hs │ │ │ ├── snippet08.hs │ │ │ ├── snippet09.hs │ │ │ ├── snippet10.hs │ │ │ ├── snippet11.hs │ │ │ ├── snippet12.hs │ │ │ ├── snippet13.hs │ │ │ ├── snippet14.hs │ │ │ ├── snippet15.hs │ │ │ └── snippet16.hs │ │ ├── ocaml/ │ │ │ ├── snippet01.ml │ │ │ ├── snippet02.ml │ │ │ ├── snippet03.ml │ │ │ ├── snippet04.ml │ │ │ ├── snippet05.ml │ │ │ ├── snippet06.ml │ │ │ ├── snippet07.ml │ │ │ ├── snippet08.ml │ │ │ ├── snippet09.ml │ │ │ ├── snippet10.ml │ │ │ ├── snippet11.ml │ │ │ ├── snippet12.ml │ │ │ ├── snippet13.ml │ │ │ ├── snippet14.ml │ │ │ ├── snippet15.ml │ │ │ └── snippet16.ml │ │ ├── reason/ │ │ │ ├── snippet01.re │ │ │ ├── snippet02.re │ │ │ ├── snippet03.re │ │ │ ├── snippet04.re │ │ │ ├── snippet05.re │ │ │ ├── snippet06.re │ │ │ ├── snippet07.re │ │ │ ├── snippet08.re │ │ │ ├── snippet09.re │ │ │ ├── snippet10.re │ │ │ ├── snippet11.re │ │ │ ├── snippet12.re │ │ │ ├── snippet13.re │ │ │ ├── snippet14.re │ │ │ ├── snippet15.re │ │ │ └── snippet16.re │ │ └── scala/ │ │ ├── snippet01.scala │ │ ├── snippet02.scala │ │ ├── snippet03.scala │ │ ├── snippet04.scala │ │ ├── snippet05.scala │ │ ├── snippet06.scala │ │ ├── snippet07.scala │ │ ├── snippet08.scala │ │ ├── snippet09.scala │ │ ├── snippet10.scala │ │ ├── snippet11.scala │ │ ├── snippet12.scala │ │ ├── snippet13.scala │ │ ├── snippet14.scala │ │ ├── snippet15.scala │ │ └── snippet16.scala │ ├── editor-note.tex │ ├── ocaml/ │ │ ├── colophon.tex │ │ └── editor-note.tex │ ├── reason/ │ │ ├── colophon.tex │ │ └── editor-note.tex │ └── scala/ │ ├── colophon.tex │ └── editor-note.tex ├── cover/ │ ├── blurb.tex │ ├── cover-hardcover-ocaml.tex │ ├── cover-hardcover-reason.tex │ ├── cover-hardcover-scala.tex │ ├── cover-hardcover.tex │ ├── cover-paperback-ocaml.tex │ ├── cover-paperback-reason.tex │ ├── cover-paperback-scala.tex │ ├── cover-paperback.tex │ ├── ribbon-ocaml.tex │ ├── ribbon-reason.tex │ └── ribbon-scala.tex ├── ctfp-print-ocaml.tex ├── ctfp-print-reason.tex ├── ctfp-print-scala.tex ├── ctfp-print.tex ├── ctfp-reader-ocaml.tex ├── ctfp-reader-reason.tex ├── ctfp-reader-scala.tex ├── ctfp-reader.tex ├── ctfp.tex ├── free-software.tex ├── half-title.tex ├── index.tex ├── opt-ocaml.tex ├── opt-print-ustrade.tex ├── opt-reader-10in.tex ├── opt-reason.tex ├── opt-scala.tex ├── postamble.tex ├── preamble.tex ├── scraper.py └── version.tex