Proposal: Add Compositor class as superclass of Arrow

Ashley Yakeley ashley at semantic.org
Sun Oct 21 05:05:20 EDT 2007


> http://hackage.haskell.org/trac/ghc/ticket/1773

So far it looks like:

1. The class should be named "Category" rather than "Compositor".

2. The members should either be

   identity :: cat a a
   (<<<) :: cat b c -> cat a b -> cat a c

or

   id :: cat a a
   (.) :: cat b c -> cat a b -> cat a c

Since a preference has been expressed, I'll go with id and (.) unless 
there are objections. These will not replace the specialised id and (.) 
in the Prelude.

3. There might be another useful class that's a subclass of Category and 
a superclass of Arrow, that essentially includes first but not arr. If 
someone wants to name it and define it, we can put it in the class 
hierarchy.

4. Redefining Functor, Applicative, and Monad to have two type arguments 
is out of scope of this proposal.

-- 
Ashley Yakeley



More information about the Libraries mailing list