Re: [Haskell-cafe] ** for nested applicative functors?

2009-10-13 Thread Conal Elliott
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.biurvo...@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.

 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ** for nested applicative functors?

2009-10-12 Thread Kim-Ee Yeoh

Does anyone know if it's possible to write the following:

** :: (Applicative m, Applicative n) =
m (n (a-b)) - m (n a) - m (n b)

Clearly, if m and n were monads, it would be trivial.

Rereading the original paper, I didn't see much discussion
about such nested app. functors. 

Any help appreciated.

-- 
View this message in context: 
http://www.nabble.com/%3C**%3E-for-nested-applicative-functors--tp25858792p25858792.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


Re: [Haskell-cafe] ** for nested applicative functors?

2009-10-12 Thread Josef Svenningsson
On Mon, Oct 12, 2009 at 6:22 PM, Kim-Ee Yeoh a.biurvo...@asuhan.com wrote:

 Does anyone know if it's possible to write the following:

 ** :: (Applicative m, Applicative n) =
 m (n (a-b)) - m (n a) - m (n b)

 Clearly, if m and n were monads, it would be trivial.

 Rereading the original paper, I didn't see much discussion
 about such nested app. functors.

 Any help appreciated.

How about

m ** n = pure (*) * m * n

Hth,

Josef
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ** for nested applicative functors?

2009-10-12 Thread Jeremy Shaw

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)


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ** for nested applicative functors?

2009-10-12 Thread Kim-Ee Yeoh

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


Re: [Haskell-cafe] ** for nested applicative functors?

2009-10-12 Thread Ryan Ingram
fmap (*) :: m (n (a - b)) - m (n a - n b)

so

f ** x = (fmap (*) f) * x


On Mon, Oct 12, 2009 at 9:22 AM, Kim-Ee Yeoh a.biurvo...@asuhan.com wrote:


 Does anyone know if it's possible to write the following:

 ** :: (Applicative m, Applicative n) =
 m (n (a-b)) - m (n a) - m (n b)

 Clearly, if m and n were monads, it would be trivial.

 Rereading the original paper, I didn't see much discussion
 about such nested app. functors.

 Any help appreciated.

 --
 View this message in context:
 http://www.nabble.com/%3C**%3E-for-nested-applicative-functors--tp25858792p25858792.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

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe