2013-09-24 9 views
5

szukam dla jednostki funktora/monadyCo pakiet Haskell ma funktor/monada?

data Unit a = Unit 

mogłem łatwo odtworzyć go, ale raczej nie chciałbym powielać coś tak podstawowego. Kiedyś mieszkał w Control.Functor w pakiecie dodatków kategorii (http://hackage.haskell.org/packages/archive/category-extras/0.1/doc/html/Control-Functor.html). Nie mogę go znaleźć w serwisie Hoogle lub na mapie miejsca, w którym pojawiły się dodatki do kategorii (http://hackage.haskell.org/package/category-extras-1.0.2)

Wygląda na to, że powinien żyć w pakiecie transformatorów, ponieważ tam właśnie przeszedł Control.Monad.Identity (teraz jest Data.Functor.Identity).

Najbliżej istniejący kod biblioteki mogę wymyślić jest

type Unit a = Constant() a 

użyciu Data.Functor.Constant z pakietu transformatorów.

Odpowiedz

8

Typ Proxy może być tym, na co masz ochotę.

+1

Doskonale, dokładnie tego szukam; Dziękuję Ci bardzo. Nie przyszło mi do głowy, że 'data Unit a = Unit' to to samo, co piszę dla serwerów proxy,' data Proxy a = a'. Byłoby świetnie, gdyby Hoogle mógł wyszukiwać deklaracje "danych" w ten sam sposób, w jaki wyszukuje podpisy funkcji. – Cirdec

+1

Oczywiście miałem zamiar wpisać 'dane Proxy a = Proxy'. – Cirdec