2013-09-24 37 views
5

我要找的单位函子/单子什么Haskell包有一个单元仿函数/ monad?

data Unit a = Unit 

我可以很容易地重新创建它,但我宁愿不重复的东西这个基本。它曾用于Control.Functor的category-extras包(http://hackage.haskell.org/packages/archive/category-extras/0.1/doc/html/Control-Functor.html)。我不能Hoogle找到它,或者在其中地图类,额外的碎片去住(http://hackage.haskell.org/package/category-extras-1.0.2

现在看来似乎应该住在变压器包,因为这正是Control.Monad.Identity去(这是现在Data.Functor.Identity)。

最接近的现有库的代码,我可以想出是

type Unit a = Constant() a 

使用Data.Functor.Constant从变压器包。

回答

8

Proxy类型可能是你所追求的。

+1

非常好,那正是我所追求的;非常感谢你。我没有想到'数据单元a =单元'与我为代理编写的'数据代理a = a'是同一个东西。如果Hoogle可以像搜索函数签名那样搜索​​'data'声明,那就太棒了。 – Cirdec

+1

当然,我打算输入'数据代理a =代理'。 – Cirdec