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
| Symbol | Meaning | Introduced in |
|---|---|---|
| A category | Categories | |
| 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 isomorphic | Categories | |
| A functor | Functors and natural transformations | |
| A natural transformation | Functors and natural transformations | |
| The component of a natural transformation at | Functors and natural transformations | |
| , | Product of and with its projections | Universal properties |
| , | Coproduct of and with its injections | Universal properties |
| Pairing into a product | Universal properties | |
| Co-pairing out of a coproduct | Universal properties | |
| , | Terminal and initial objects | Universal properties |
| A diagram in with shape | Colimits and pushouts | |
| The constant functor at | Colimits and pushouts |
GAT and model notation
| Symbol | Meaning | Introduced in |
|---|---|---|
| , | A generalised algebraic theory / a panproto protocol | Algebraic 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 schema | Protocols as theories, schemas as instances | |
| A theory morphism | Theory morphisms and instance migration | |
| , , | The pullback and pushforward functors along | Theory morphisms and instance migration |
| A migration between panproto schemas | Theory morphisms and instance migration | |
| The instance functor for protocol | Protocols as theories, schemas as instances |
Lens notation
| Symbol | Meaning | Introduced in |
|---|---|---|
| , | The two functions of an asymmetric lens | Bidirectional lenses |
| GetPut, PutGet, PutPut | The lens round-trip laws | Bidirectional lenses |
| A protolens | Protolenses | |
| Source and target of a schema-indexed lens | Protolenses |
Type-theoretic notation
| Symbol | Meaning | Introduced in |
|---|---|---|
a -> b, | A function type | Categories |
., | Function composition (Haskell period, mathematical circle) | Categories |
id :: a -> a | Haskell’s polymorphic identity function | Categories |
{l1 = e1, ...} | Record literal (panproto-expr) | Syntax and semantics |
[e1 | x <- e2] | List comprehension (panproto-expr) | Syntax and semantics |
e ⟶ e' | Small-step reduction | Syntax 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.