指標の圏の上の構文モナドのクライスリ圏を考えるのが基本。だが、圏とその反対圏を同時に考えて、ストリング図を使うと混乱しがち。
ストリング図の併置は直和か直積を表すが、それは向き(反対圏かどうか)によって解釈が変わる。
Mが構文モナドのとき、
- M-手続きは、クライスリ圏の反対圏の射
- M-コードは、モナドの基礎圏のM-結果的射〈M-resultic morphism〉
- M-手続きの圏は
次が重要:
- の射 は対応するコード を持つ。コードはプログラミング言語によるソースコードだと思ってよい。
- コードは 内のM-結果的射である。
- は余デカルト圏である。
- はデカルト圏である。
- は終対象 を持つ。
- は直積 を持つ。 を単位対象とする対称モノイド積である。
- は対角 を持つ。自然変換になる。
- は終射 を持つ。自然変換になる。
問題は、 に対するトレースの定義だ。