the sequel to cat.
Base contains the definitions of naked structures. Usually, they are just a type wrapped in a module.
Class defines interfaces for various categorical constructs, such as functors, monads, etc.
Factory defines operators to construct new structures from more general ones, such as the product or the coproduct.
Instance is where structures from Base implement the interfaces defined in Class.
Isomorphism contains various proofs of isomorphisms between base structures and constructed ones, such as Maybe(A) being isomorphic to A + 1.
Constructed contains applications of operators from Factory.
Type contains utilities for OCaml modules.