At 2002-06-03 09:22, Wolfgang Jeltsch wrote:
I think, it would be better to * create a class, which has only an identity and a composition member, and call this class Arrow or Morphism; * create a subclass of this class which introduces pure (arr); * create a subclass of the class introducing pure in order to introduce first.
I agree. I have something similar in my experimental alternative Prelude project 'HBase', but only two classes: <http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/hbase/Source/Cat egory/Composition.hs?rev=HEAD&content-type=text/plain> <http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/hbase/Source/Cat egory/Arrow.hs?rev=HEAD&content-type=text/plain> I call them 'Compositor' and 'Arrow'. I see two issues: 1. Should I add your intermediate class? Do you have examples of something that has 'pure' but not 'first'? 2. What are the best names? I used 'Arrow' because it's for "arrows" as defined by John Hughes <http://haskell.cs.yale.edu/arrows/>. I might change 'Compositor' to 'Morphism' if it makes more sense to people. As you point out, Hughes' "arrows" are a strict subset of category theory "arrows". -- Ashley Yakeley, Seattle WA