2010/9/7 Ivan Lazar Miljenovic <span dir="ltr">&lt;<a href="mailto:ivan.miljenovic@gmail.com">ivan.miljenovic@gmail.com</a>&gt;</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 &lt;<a href="mailto:illissius@gmail.com">illissius@gmail.com</a>&gt;:<br>
<div class="im">&gt; *That said*, I actually have nothing at all against splitting the &#39;a<br>
&gt; -&gt; f a&#39; method out into a separate class if you think it&#39;s useful,<br>
&gt; whether you call it Pointed or something else. (And `class (Pointed f,<br>
&gt; Functor f) =&gt; 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&#39;s<br>
more it&#39;s one that doesnt&#39; even give you anything.<br>
<br>
I think it makes much more sense to have Functor, Pointed and<br>
&quot;(Functor f, Pointed f) =&gt; Applicative f&quot; rather than a useless<br>
intermediary class.  If, however, we could get class aliases _for<br>
free_ (i.e. something like &quot;class alias PointedFunctor f = (Functor f,<br>
Pointed f)&quot; 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>