回到至少在20世紀90年代後期,有人希望以友好的方式將restricted monads整合到Haskell中。限制單子的現狀是什麼?
例如,沒有受限制的monads,您無法從Set
,Map
或probability distributions中生成有效的monad。這是幾年前的一個SO question,在那裏有人遇到了這個問題。
有各種不同的解決方法,人們已經提出了包括:
創造一切可能的限制的new type class。使用Template Haskell。
然而,這些方法似乎都不是「規範」。我在2007年發現了Don Stewart對this blog post的評論,他在這裏暗示說我們與Indexed types限制monads「非常接近」。
當前狀態是什麼?現在是否有一種「規範」的方式來限制單子?或者我們仍然與解決方法一起生活?
我會認爲約束類型是一樣的規範,他們只是有點太新,它是目前最常見的解決方案。 – leftaroundabout 2012-07-22 11:22:49