2010/9/7 Gábor Lehel <illiss...@gmail.com>:
> *That said*, I actually have nothing at all against splitting the 'a
> -> f a' method out into a separate class if you think it's useful,
> whether you call it Pointed or something else. (And `class (Pointed f,
> Functor f) => PointedFunctor f` is sort of cute.)

It might be cute, but until we get class aliases [1] this results in
yet another class to make your data type an instance of, and what's
more it's one that doesnt' even give you anything.

I think it makes much more sense to have Functor, Pointed and
"(Functor f, Pointed f) => Applicative f" rather than a useless
intermediary class.  If, however, we could get class aliases _for
free_ (i.e. something like "class alias PointedFunctor f = (Functor f,
Pointed f)" for which all instances of Functor and Pointed are
automatically instanced of PointedFunctor), then I can see that as
being something nice to have.

[1]: http://www.haskell.org/haskellwiki/Context_alias

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to