Hi Kim-Ee,

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.)

   - Conal

On Mon, Oct 12, 2009 at 9:52 AM, Kim-Ee Yeoh <a.biurvOir4@asuhan.com> wrote:

That's it: liftA2 (<*>), so obvious in hindsight.

Mustn't ... code ... when ... drained ....

Thanks to Jeremy and Josef.


Jeremy Shaw-3 wrote:
>
> This looks like what is described in Section 4 to me:
>
> http://www.haskell.org/haskellwiki/Applicative_functor#Applicative_transfomers
>
> - jeremy
>
> On Oct 12, 2009, at 11:22 AM, Kim-Ee Yeoh wrote:
>
>> <**> :: (Applicative m, Applicative n) =>
>> m (n (a->b)) -> m (n a) -> m (n b)
>

--
View this message in context: http://www.nabble.com/%3C**%3E-for-nested-applicative-functors--tp25858792p25859274.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

_______________________________________________