Я ищу единичный функтор/монадыКакой пакет Haskell имеет единичный функтор/монада?
data Unit a = Unit
Я мог бы легко воссоздать его, но я предпочел бы не дублировать то, это основное. Раньше он жил в Control.Functor
в категории «Дополнительные услуги» (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
из пакета трансформаторов.
Отлично, это именно то, что я хочу; Большое спасибо. Мне не приходило в голову, что 'data Unit a = Unit' - это то же самое, что я пишу для прокси,' data Proxy a = a'. Было бы замечательно, если бы Hoogle мог искать объявления 'data' так же, как и поисковые функции. – Cirdec
Конечно, я хотел набрать 'data Proxy a = Proxy'. – Cirdec