2010/9/7 Ivan Lazar Miljenovic <span dir="ltr"><<a href="mailto:ivan.miljenovic@gmail.com">ivan.miljenovic@gmail.com</a>></span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
2010/9/7 Gábor Lehel <<a href="mailto:illissius@gmail.com">illissius@gmail.com</a>>:<br>
<div class="im">> *That said*, I actually have nothing at all against splitting the 'a<br>
> -> f a' method out into a separate class if you think it's useful,<br>
> whether you call it Pointed or something else. (And `class (Pointed f,<br>
> Functor f) => PointedFunctor f` is sort of cute.)<br>
<br>
</div>It might be cute, but until we get class aliases [1] this results in<br>
yet another class to make your data type an instance of, and what's<br>
more it's one that doesnt' even give you anything.<br>
<br>
I think it makes much more sense to have Functor, Pointed and<br>
"(Functor f, Pointed f) => Applicative f" rather than a useless<br>
intermediary class. If, however, we could get class aliases _for<br>
free_ (i.e. something like "class alias PointedFunctor f = (Functor f,<br>
Pointed f)" for which all instances of Functor and Pointed are<br>
automatically instanced of PointedFunctor), then I can see that as<br>
being something nice to have.<br></blockquote><div><br></div><div>I agree completely.</div><div><br></div><div>John</div></div>