Hi Kim-Ee,<br><br>This pattern shows up in "Applicative programming with effects" in showing that the composition of applicatives is applicative: (<*>) = liftA2 (<*>), and pure = pure.pure . (Really, you have to manage newtype wrappers as well. See the TypeCompose library.)<br>
<br> - Conal<br><br><div class="gmail_quote">On Mon, Oct 12, 2009 at 9:52 AM, Kim-Ee Yeoh <span dir="ltr"><<a href="mailto:a.biurvOir4@asuhan.com">a.biurvOir4@asuhan.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
That's it: liftA2 (<*>), so obvious in hindsight.<br>
<br>
Mustn't ... code ... when ... drained ....<br>
<br>
Thanks to Jeremy and Josef.<br>
<div class="im"><br>
<br>
Jeremy Shaw-3 wrote:<br>
><br>
> This looks like what is described in Section 4 to me:<br>
><br>
> <a href="http://www.haskell.org/haskellwiki/Applicative_functor#Applicative_transfomers" target="_blank">http://www.haskell.org/haskellwiki/Applicative_functor#Applicative_transfomers</a><br>
><br>
> - jeremy<br>
><br>
> On Oct 12, 2009, at 11:22 AM, Kim-Ee Yeoh wrote:<br>
><br>
>> <**> :: (Applicative m, Applicative n) =><br>
>> m (n (a->b)) -> m (n a) -> m (n b)<br>
><br>
<br>
</div><font color="#888888">--<br>
View this message in context: <a href="http://www.nabble.com/%3C**%3E-for-nested-applicative-functors--tp25858792p25859274.html" target="_blank">http://www.nabble.com/%3C**%3E-for-nested-applicative-functors--tp25858792p25859274.html</a><br>
</font><div class="im">Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.<br>
<br>
_______________________________________________<br>
</div><div><div></div><div class="h5">Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>