nLab Freyd category




A Freyd category is one way to axiomatize models of call-by-value? programming languages. It abstracts the structure of the Kleisli category of a monad, consisting of a category ๐•\mathbb{V} that models values and another category with the same objects โ„‚\mathbb{C} that models computations.

Freyd categories thus provide a categorical semantics for typed programming languages with side effects such as memory access or printing. This is in the spirit of the discussion at relation between type theory and category theory, except that page is for non-side-effecting languages. The types of the programming language are interpreted as objects of the categories. A typed term (i.e., program expression) ฮ“โŠขt:X\Gamma\vdash t \colon X is interpreted as a morphism ฮ“โ†’X\Gamma \to X in โ„‚\mathbb{C}. Among the terms, it is often very important to identify those that are โ€œvaluesโ€, which in particular have no side effects, and these are interpreted as morphisms in ๐•\mathbb{V}. Freyd categories are based around premonoidal categories, which captures the fact that reordering the execution of side effects is often subtle.

Freyd categories resolve the following complaint about using monads and Kleisli categories to model impure effects in programming languages. The Kleisli category for a monad presumes the existence of some slightly higher-order types, since if XX is an object then so is T(X)T(X), and yet it is surely possible to understand the nature of effectful computation without also assuming the existence of certain types. Freyd categories make sense even for purely first order programming languages, and the object T(X)T(X), if it exists, has a universal property, thus decoupling this relationship.


A Freyd category (following Levy 04) may be defined as

An alternative but equivalent definition is as follows (following Power, Thielecke):

A Freyd category is given by

  • a category ๐•\mathbb{V} with finite products;
  • a symmetric premonoidal category โ„‚\mathbb{C}, that has the same objects as ๐•\mathbb{V};
  • an identity-on-objects functor J:๐•โ†’โ„‚J: \mathbb{V} \to \mathbb{C} strictly preserving symmetric premonoidal structure, whose image lies in the centre of โ„‚\mathbb{C}.

These definitions arguably violate the principle of equivalence, because they use an identity-on-objects functor in the definitions. That is, if ๐•\mathbb{V} is equivalent to some ๐•โ€ฒ\mathbb{V}', and โ„‚\mathbb{C} is equivalent to some โ„‚โ€ฒ\mathbb{C}', while J:๐•โ†’โ„‚J: \mathbb{V} \to \mathbb{C} is a Freyd category, there may be no way to make a Freyd category ๐•โ€ฒโ†’โ„‚โ€ฒ\mathbb{V}' \to \mathbb{C}'. A resolution of this is to regard a Freyd category as a single structure, with one set of objects, two sets of morphisms, and so on; see identity-on-objects functor and M-category for further discussion.


Relation to strong monads.

If TT is a strong monad on a category ๐•\mathbb{V} with finite products, then the Kleisli category of TT forms a Freyd category and JJ has a right adjoint.

Conversely, if (๐•,โ„‚,J)(\mathbb{V},\mathbb{C},J) is a Freyd category and JJ has a right adjoint RR, then the Freyd category arises as the Kleisli category of the monad RJRJ.

In more detail, the passage from a strong monad to a Freyd category is as follows. If TT is a strong monad on a category ๐•\mathbb{V} with finite products, then the Kleisli category โ„‚\mathbb{C} has a premonoidal structure given by XโŠ—Y=Xร—YX\otimes Y=X\times Y on objects and where for a morphism f:Yโ†’Zf:Y\to Z in โ„‚\mathbb{C} (i.e. f:Yโ†’T(Z)f:Y\to T(Z) in ๐•\mathbb{V}) then the right tensor (Xโ‹Šf):XโŠ—Yโ†’XโŠ—Z(X\rtimes f):X\otimes Y\to X\otimes Z is given by the composite Xร—Yโ†’fXร—T(Z)โ†’strT(Xร—Z)X\times Y\xrightarrow f X\times T(Z) \xrightarrow {\mathrm{str}} T(X\times Z) in ๐•\mathbb{V}. The left tensor (fโ‹‰X):YโŠ—Xโ†’ZโŠ—X(f\ltimes X):Y\otimes X\to Z\otimes X is given by the composite Yร—Xโ†’fT(Z)ร—Xโ†’strT(Zร—X)Y\times X\xrightarrow f T(Z)\times X \xrightarrow {\mathrm{str}} T(Z\times X) in ๐•\mathbb{V}. This is a premonoidal structure, and it is monoidal if and only if the monad TT is a commutative monad.

Relation to Lawvere theories and PROPs

To give a small Freyd category is to give an enriched Lawvere theory relative to the empty sound doctrine where the enriching category is cartesian closed.

For example, if (FinSet opโ†’๐•‹\mathrm{FinSet}^{\mathrm{op}}\to \mathbb{T}) is an ordinary Lawvere theory, then its dual (FinSetโ†’๐•‹ op\mathrm{FinSet}\to \mathbb{T}^{\mathrm{op}}) is a Freyd category.

The Lawvere theory is commutative if and only if the premonoidal category ๐•‹ op\mathbb{T}^{\mathrm{op}} is in fact monoidal.

A minor generalization of Freyd category allows ๐•\mathbb{V} to be symmetric monoidal rather than cartesian monoidal. Then a commutative Freyd category FinSet bijโ†’โ„‚\mathrm{FinSet}_{\mathrm{bij}}\to \mathbb{C} is the same thing as a PROP.

Relation to monads on presheaf categories

This relates to the situation with monads as follows. If TT is a strong monad on the presheaf category ๐•^\hat{\mathbb{V}} then the Kleisli category ๐•^โ†’(๐•^) T\hat{\mathbb{V}}\to (\hat{\mathbb{V}})^T is a Freyd category. But also the identity-on-objects/full-and-faithful factorization of the composite ๐•โ†’๐•^โ†’(๐•^) T\mathbb{V}\to \hat{\mathbb{V}}\to (\hat{\mathbb{V}})^T yields a Freyd category over ๐•\mathbb{V}.

Every Freyd category arises in this way, giving a correspondence between colimit-preserving strong monads on ๐•^\hat{\mathbb{V}} and Freyd categories over a category ๐•\mathbb{V} with products.

On the other hand, a colimit-preserving monad on ๐•^\hat{\mathbb{V}} is the same thing as a monad in the category of profunctors whose carrier is ๐•\mathbb{V}. But this is the same thing as an identity on objects functor ๐•โ†’โ„‚\mathbb{V}\to\mathbb{C}. And this is a Freyd category if and only if the monad is strong.


The terminology โ€œFreyd categoryโ€ is not explained in the papers in which it is introduced. In private communication with John Power, he wrote, explaining the motivation for the name:

In Spring 1989, Peter spent a sabbatical at Carnegie Mellon Uni in Pittsburgh. I was at Case Western Reserve Uni in Cleveland and hired a car each week to travel to Carnegie Mellon to attend Peterโ€™s seminars, chat with him, and attend the regular weekly seminar.

He began to introduce Axiomatic Domain Theory, the leading example being the relationship between the category of omega-cpos and strict maps between them and the category with the same objects but with partial maps. For instance, he noted that the former is cartesian closed, there is an inclusion into the latter, which has a right adjoint, and I vaguely recall he noted the symmetric monoidal structure on the latter, extending finite products.

A little earlier, Eugenio Moggi extended his thesis work on partiality by proposing monads.

So the combination of the two ideas inspired the notion of Freyd-category


Freyd categories were first used in

  • John Power and Hayo Thielecke โ€œEnvironments, Continuation Semantics andย Indexed Categoriesโ€, Theoretical Aspects of Computer Software, Third International Symposium, TACS โ€˜97

and named Freyd categories in

  • John Power and Hayo Thielecke, โ€œClosed Freyd- and ฮบ\kappa-Categoriesโ€, Automata, Languages and Programming, 26th International Colloquium, ICALPโ€™99

and the longer journal version of that paper has more discussion:

  • Paul Blain Levy, John Power and Hayo Thielecke, โ€œModelling environments in call-by-value programming languagesโ€, Inf. Comput. 185(2): 182-210, 2003 DOI: 10.1016/S0890-5401(03)00088-9

The definition with monoidal actions appears in

  • Paul Blain Levy, โ€œCall-by-Push-Value. A Functional/Imperative Synthesis,โ€ Semantic Structures in Computation 2, Springer, 2004; appendix B*

The idea of extending Freyd categories to monads on presheaf categories appears in

  • John Power, โ€œGeneric models for computational effectsโ€, Theor. Comput. Sci. 364(2): 254-269 (2006)

This also contains the observation that enriched Lawvere theories are examples of Freyd categories, but the precise correspondence between the concepts is given in

  • Sam Staton, 2014. Freyd categories are Enriched Lawvere Theories. Electronic Notes in Theoretical Computer Science, Proceedings of the Workshop on Algebra, Coalgebra and Topology (WACT 2013) 303, 197โ€“206. doi:10.1016/j.entcs.2014.02.010 (free).

The connection with monads in the bicategory of profunctors (a.k.a. arrows) is discussed in


  • Kazuyuki Asada. โ€œArrows are strong monadsโ€. Proceedings of MSFP โ€˜10. preprint pdf

  1. Having the same objects is required or implied by having an identity-on-objects functor from ๐•\mathbb{V} to โ„‚\mathbb{C}. โ†ฉ

Last revised on February 27, 2024 at 21:37:46. See the history of this page for a list of all contributions to it.