ここ2,3日考えていたことがあります。その動機とか背景とかを説明すると「けっこう面白い」かと思うのですが、長くなるので結論(になるはずのこと)だけをザッと述べます。一言だけいっておくと、大量のモナド類似物(monad-like entities)を一挙に扱う方法が欲しくてなにやらゴニョゴニョしています。
monad-like entities という言葉は、Thorsten Altenkirch, James Chapman, Tarmo Uustalu の論文 "Monads Need Not Be Endofunctors" からの拝借です。最近少し探してみたら、monad-like entities を取り扱う方法は色々とあるようです。それらの方法の背後には、Hughesが2000年に導入したHaskellのアロー(Arrow; http://www.cs.chalmers.se/~rjmh/Papers/arrows.ps)に厳密な定式化を与えようという動機が多かれ少なかれ働いているようです。
僕が最初に知った方法は、Atkeyによる「フレイド圏をインデックス化(パラメータ化)したり豊饒化したりする」ものです。時期的には、デカルト作用圏が面白いと言っていた2010年末から2011年初めくらいでしょう。
題名とリンク | 著者 | 時期 | ページ数 |
---|---|---|---|
What is a Categorical Model of Arrows? | Robert Atkey | MSFP 2008 | 18ページ |
Parameterised Notions of Computation | Robert Atkey | ?2006 - 2008? | 15ページ |
2番目の論文は2006年から2008年のあいだに書かれたようですが、扱っていることはモナドのパラメータ化(インデキシング)です。Atkeyはインデキシングや豊饒化が好きなようですね。僕にとっても、インデックス付き圏や豊饒圏を使う方法が一番馴染みやすく感じます。
別な方法として、相対モナドという概念を導入するやり方があります。圏の上にモナドを考えるのではなくて、関手の上にモナドを考えます。
Monads Need Not Be Endofunctors | Thorsten Altenkirch, James Chapman, Tarmo Uustalu | 21 May 2010 | 21枚スライド |
Monads Need Not Be Endofunctors | Thorsten Altenkirch, James Chapman, Tarmo Uustalu | ? | 15ページ |
主著者のThorsten Altenkirch(アルテンキルヒ)は、可逆計算の話でも紹介した人ですね。
相対モナドの方法は、最近(2010, 2011)も発展中のようです。
Strong relative monads | Tarmo Uustalu | CMCS 2010 | 16枚 |
Relative monads formalised | Thorsten Altenkirch, James Chapman, Tarmo Uustalu | Received July 31, 2010 | 36ページ |
Modules over relative monads for syntax and semantics | Benedikt Ahrens | (Submitted on 26 Jul 2011) | 21ページ |
Initiality for Typed Syntax and Semantics | Benedikt Ahrens | Sept 11, 2011 | 30枚 |
関手圏ではなくて、プロ関手(profunctor)の圏を考えて、そこでモノイドを考える方法もあります。プロ関手圏は関手圏の一般化になっているので、プロ関手圏のモノイドは普通のモナドの拡張になっています。
Arrows are Strong Monads | Kazuyuki Asada | ? 新しそう | 2段組で9ページ |
Arrows, like Monads, are Monoids | Chris Heunen, Bart Jacobs | MFPS 2006 | 17ページ |
アローをプロ関手圏のモノイドと見なしたのは、Heunen, Jacobs(2006年)が最初らしいですが、浅田和之さんが最近(でしょう、たぶん)の論文で整理し発展させています。
以下の蓮尾一郎さんらのスライド/論文も同じテーマのようですが僕は目を通していません。
Freyd is Kleisli, for Arrows | Bart Jacobs, Ichiro Hasuo | July 2, 2006 | 31枚 |
Freyd is Kleisli, for Arrows | Bart Jacobs, Ichiro Hasuo | MSFP '06 | 13ページ |
Categorifying Computations into Components via Arrows as Profunctors | Kazuyuki Asada, Ichiro Hasuo | CMCS 2010 | 23ページ |
モナドの一般化・発展形に関しては、"Monads and More" に色々紹介されています。Part 3だけ引用しておきます。
Monads and More: Part 3 | Tarmo Uustalu | 18 May 2007 | 14枚 |
[追記]この記事のコメントから派生したオマケ:
[/追記]