Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Notation reference

Disclaimer. The content of this page is largely LM-generated. It was written as a stopgap to make the panproto system legible while we work through the book verifying and editing the content by hand. When a chapter has been verified or edited by a human, the parts that were verified or edited will be noted at the head of the chapter.

A lookup for the non-standard symbols and typographic conventions used in the book. The table lists each symbol, its meaning, and the chapter in which it is introduced.

Categorical notation

SymbolMeaningIntroduced in
A categoryCategories
The class of objects of Categories
, The hom-set of morphisms in Categories
A morphism from to Categories
Composition of and Categories
The identity morphism on Categories
and are isomorphicCategories
A functorFunctors and natural transformations
A natural transformationFunctors and natural transformations
The component of a natural transformation at Functors and natural transformations
, Product of and with its projectionsUniversal properties
, Coproduct of and with its injectionsUniversal properties
Pairing into a productUniversal properties
Co-pairing out of a coproductUniversal properties
, Terminal and initial objectsUniversal properties
A diagram in with shape Colimits and pushouts
The constant functor at Colimits and pushouts

GAT and model notation

SymbolMeaningIntroduced in
, A generalised algebraic theory / a panproto protocolAlgebraic and generalised algebraic theories
The syntactic contextual category of Algebraic and generalised algebraic theories
The category of models of Algebraic and generalised algebraic theories
A model / a panproto schemaProtocols as theories, schemas as instances
A theory morphismTheory morphisms and instance migration
, , The pullback and pushforward functors along Theory morphisms and instance migration
A migration between panproto schemasTheory morphisms and instance migration
The instance functor for protocol Protocols as theories, schemas as instances

Lens notation

SymbolMeaningIntroduced in
, The two functions of an asymmetric lensBidirectional lenses
GetPut, PutGet, PutPutThe lens round-trip lawsBidirectional lenses
A protolensProtolenses
Source and target of a schema-indexed lensProtolenses

Type-theoretic notation

SymbolMeaningIntroduced in
a -> b, A function typeCategories
., Function composition (Haskell period, mathematical circle)Categories
id :: a -> aHaskell’s polymorphic identity functionCategories
{l1 = e1, ...}Record literal (panproto-expr)Syntax and semantics
[e1 | x <- e2]List comprehension (panproto-expr)Syntax and semantics
e ⟶ e'Small-step reductionSyntax and semantics

Typographic conventions

Inline code and type names appear in monospace: SchemaBuilder, panproto-mig, compile. Italicised terms (category, protolens, complement) mark a definition being introduced on first appearance, and bold terms (Associativity, Identity) are concept labels the reader may want to scan for.

Every first mention of an external tool or library is a hyperlink to its canonical home page: Haskell, Rust, tree-sitter. Every first mention of a panproto module, type, or function is a hyperlink to the corresponding docs.rs page. Later mentions in the same chapter appear as plain prose.

Citations follow Pandoc syntax rendered by mdbook-bib in Chicago author-date style. Inline: @key for textual (“Smith 2010”), [@key] for parenthetical (“(Smith 2010)”), [-@key] for year only. Every cited work has a BibTeX entry in book/src/references.bib.