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
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.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe