CPL (圏論プログラミング言語)
元々定義されているデータ型が存在せず、何らかの関手の始双代数あるいは終双代数としてデータ型を定義する。プログラムあるいは関数は射として、ポイントフリーの形式で記述する。関数の表し方としては射として表すものと冪対象として表すものの二通りがある。元々定義されている関数は恒等関数のみであり、元々定義されている制御構造は関数合成のみである。条件分岐や帰納法などはデータ型の定義に付随して定義される。