Avatar
Swift における型(単純化のため、 Equatable を満たす型のみ)を対象とし、関数を射とします(引数の型が始域、戻り値の型が終域)。二つの関数 f: (X) -> Y, g: (X) -> Y があり、任意の x: X について関数 f(x) == g(x) が成り立つとき、 f と g は等しいものとします。このとき、任意の射 f1: (X) -> Y, f2: (Y) -> Z に対して f12: (X) -> Z = f2(f1(X)) が存在し、結合律、単位律が成り立つ(つまり、このような対象と射の集まりは圏な)のではないでしょうか?