集合論よりかは圏論のほうが良くないか。厳密には違うが、ほぼ集合論の一般化でプログラム言語として利用する上では不具合無いだろ。


Haskell/圏論 - Wikibooks
http://ja.wikibooks.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Simple-cat.png
http://ja.wikibooks.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Functor.png
http://ja.wikibooks.org/wiki/Haskell/%E5%9C%8F%E8%AB%96

Scala で圏論入門
https://github.com/scalajp/introduction-to-category-theory-in-scala-jp/wiki


Coq を始めよう
このチュートリアルでは定理証明支援系言語である Coq について解説をします。
読者の前提知識としては OCaml や Haskell などの関数型言語でプログラミングできることを想定します。
また、本文書において Coq のプログラムとの比較には Haskell と OCaml を用いますが、Haskell や OCaml を書いたことがなくても他の関数型言語に触れていれば理解できるような内容を心がけます。
http://www.iij-ii.co.jp/lab/techdoc/coqt/coqt1.html



圏論は数学をするための「高級言語」 
http://www.is.s.u-tokyo.ac.jp/isnavi/images/logic/picture04.gif
http://www.is.s.u-tokyo.ac.jp/isnavi/logic06.html