Anders Persson、Emil Axelsson和Josef Svenningson最近发表了一篇论文,展示了一种编码受限单子的方法。我忘记了具体细节,但我记得这是一篇很好的论文。
Persson, A. ; Axelsson, E. ; Svenningsson, J. (2011). 嵌入式语言的通用单子构造。IFL 2011,第23届函数式语言实现和应用研讨会。
实际上,可以以两种不同的方式获得高效的Set单子,而不需要任何限制。下面的文章解释了这两种方法:
http://okmij.org/ftp/Haskell/set-monad.html
该文章还指出受限单子非常受限,阻止了许多单子范例。我推测实现方法是通用的,并且任何受限单子都可以转换为常规单子而不会失去效率。因此,看起来我们根本不需要受限单子。