[Haskell-cafe] Removing polymorphism from type classes (viz. Functor) (Again)

Alexey Karakulov ankarakulov at gmail.com
Sun Aug 15 05:39:52 EDT 2010

On Sun, Aug 15, 2010 at 10:50 AM, Ivan Lazar Miljenovic <
ivan.miljenovic at gmail.com> wrote:

Yeah, I'm working on something like this at the moment, but I'm
> currently stuck on naming: if I want to have Functor for kind * -> *,
> what's a good name for a type class for kind *?

I was thinking about EtaFunctor, which stands for η-expanded Functor. But
I'm not sure about η-expansion is correct term for removing polymorphism
from the type class.

Also, is there any type for which having a map a -> a _doesn't_ make
> sense?  Bloomfilters maybe?

Not the answer, but there are cases where having a map (a -> b) -> f -> g
could make some new sense:

    data BitList = ...
    fromBoolList :: [Bool] -> BitList
    type instance NewPt [a] b = [b]
    type instance NewPt [a] Bool = BitList

But this kind of overlapping type instance is not allowed in ghc (yet?)

All the best,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100815/9b7cb7c6/attachment.html

More information about the Haskell-Cafe mailing list