Re: [Haskell] Composing applicative functors?

[redirecting to libraries] On Wed, Feb 21, 2007 at 04:23:50PM -0800, Conal Elliott wrote:
Is the composition instance of Control.Applicative defined somewhere? I see it in the McBride & Paterson paper [1], but not in the library docs [2]. I'd rather pull it in from a library than (re)define it myself.
[1] http://www.soi.city.ac.uk/~ross/papers/Applicative.pdf [2] http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Applicati...
It's not defined in the libraries. The type (and the identity functor) should probably go in the module that defines Functor (currently Control.Monad) with a Functor instance, and an Applicative instance in Control.Applicative.

I made a first pass at a module of type compositions with some instances at
http://haskell.org/haskellwiki/TypeComposition and would love to get
comments & suggestions.
Is there an existing process for library proposals & discussions?
Cheers, - Conal
On 2/21/07, Ross Paterson
[redirecting to libraries] On Wed, Feb 21, 2007 at 04:23:50PM -0800, Conal Elliott wrote:
Is the composition instance of Control.Applicative defined somewhere? I see it in the McBride & Paterson paper [1], but not in the library docs [2].
I'd rather pull it in from a library than (re)define it myself.
[1] http://www.soi.city.ac.uk/~ross/papers/Applicative.pdfhttp://www.soi.city.ac.uk/%7Eross/papers/Applicative.pdf [2]
http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Applicati...
It's not defined in the libraries. The type (and the identity functor) should probably go in the module that defines Functor (currently Control.Monad) with a Functor instance, and an Applicative instance in Control.Applicative.
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries

--- Conal Elliott
Is there an existing process for library proposals & discussions?
Conal, the process is explained here: http://haskell.org/haskellwiki/Library_submissions Andriy ____________________________________________________________________________________ Need Mail bonding? Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users. http://answers.yahoo.com/dir/?link=list&sid=396546091

I'm still interested in comments composition operators at
http://haskell.org/haskellwiki/TypeComposition. Now I see that my ":.::"
is what [1] calls "StaticArrow".
Mainly, I'd like to hear thoughts on how to make an arrow out of a functor &
arrow, with the functor on the inside. My attempt is called "::.:" on the
wiki page.
newtype ((~>) ::.: f) a b = TT_T {runTT_T :: f a ~> f b}
As mentioned in the comments, my Arrow definition isn't really
satisfactory. Is there an arrow that corresponds to this sort of
composition?
Thanks, - Conal
On 3/8/07, Conal Elliott
I made a first pass at a module of type compositions with some instances at http://haskell.org/haskellwiki/TypeComposition and would love to get comments & suggestions.
Is there an existing process for library proposals & discussions?
Cheers, - Conal
On 2/21/07, Ross Paterson < ross@soi.city.ac.uk> wrote:
[redirecting to libraries] On Wed, Feb 21, 2007 at 04:23:50PM -0800, Conal Elliott wrote:
Is the composition instance of Control.Applicative defined somewhere? I see it in the McBride & Paterson paper [1], but not in the library docs [2]. I'd rather pull it in from a library than (re)define it myself.
[1] http://www.soi.city.ac.uk/~ross/papers/Applicative.pdfhttp://www.soi.city.ac.uk/%7Eross/papers/Applicative.pdf [2] http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Applicati...
It's not defined in the libraries. The type (and the identity functor) should probably go in the module that defines Functor (currently Control.Monad) with a Functor instance, and an Applicative instance in Control.Applicative.
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries

I just added a Cofunctor instance for type composition, but there are two
competing choices:
-- | Often useful for \"acceptors\" (consumers, sinks) of values.
class Cofunctor acc where
cofmap :: (a -> b) -> (acc b -> acc a)
-- | Composition of type constructors: unary & unary. Called "g . f"
-- in [1], section 5.
newtype (g :. http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:.:
f) a = T_T { runT_T :: g (f a) }
instance (Functor
http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:Functo...
g, Cofunctor f) => Cofunctor (g :.
http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:.:
f) where
cofmap h (T_T gf) = T_T (fmap
http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:fmap
(cofmap h) gf)
-- Or this alternative. Having both yields "Duplicate instance
-- declarations". How to decide between these instances?
-- instance (Cofunctor g, Functor f) => Cofunctor (g :.: f) where
-- cofmap h (T_T gf) = T_T (cofmap (fmap h) gf)
Any comments/suggestions about how or whether to make the choice between
these two instances?
- Conal
On 3/12/07, Conal Elliott
I'm still interested in comments composition operators at http://haskell.org/haskellwiki/TypeComposition . Now I see that my ":.::" is what [1] calls "StaticArrow".
Mainly, I'd like to hear thoughts on how to make an arrow out of a functor & arrow, with the functor on the inside. My attempt is called " ::.:" on the wiki page.
newtype ((~>) ::.: f) a b = TT_T { runTT_T :: f a ~> f b }
As mentioned in the comments, my Arrow definition isn't really satisfactory. Is there an arrow that corresponds to this sort of composition?
Thanks, - Conal
On 3/8/07, Conal Elliott
wrote: I made a first pass at a module of type compositions with some instances at http://haskell.org/haskellwiki/TypeComposition and would love to get comments & suggestions.
Is there an existing process for library proposals & discussions?
Cheers, - Conal
On 2/21/07, Ross Paterson < ross@soi.city.ac.uk> wrote:
[redirecting to libraries] On Wed, Feb 21, 2007 at 04:23:50PM -0800, Conal Elliott wrote:
Is the composition instance of Control.Applicative defined somewhere? I see it in the McBride & Paterson paper [1], but not in the library docs [2]. I'd rather pull it in from a library than (re)define it myself.
[1] http://www.soi.city.ac.uk/~ross/papers/Applicative.pdfhttp://www.soi.city.ac.uk/%7Eross/papers/Applicative.pdf [2] http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Applicati...
It's not defined in the libraries. The type (and the identity functor) should probably go in the module that defines Functor (currently Control.Monad) with a Functor instance, and an Applicative instance in Control.Applicative.
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries
participants (3)
-
Andriy Palamarchuk
-
Conal Elliott
-
Ross Paterson