On Sun, Feb 10, 2013 at 09:28:12PM +0100, Petr Pudlák wrote: > 2013/2/9 Conal Elliott <[email protected]> wrote: > > What I have in mind is a small collection of methods including fst & snd > > (and similarly for sums) that could be defined via arr but could instead > > form the basis of translating restricted arrow notation for (pseudo-)arrows > > that don't support arr. > > I also support this idea, I'd appreciate such a generalization. > > As an example, where it would be useful: One of my students was working on a > (very nice) project where he used Haskell as a DSL for generating a FRP-like > javascript code. The arrow notation without "arr" would be ideal for this > situation. He couldn't implement "arr" as it would require to translate an > arbitrary Haskell function to JS. So having a more general variant of "Arrow" > without "arr" and with a collection of methods sufficient for the arrow > notation would be quite helpful. (I wonder what methods would have to be > included in the collection.)
Let's try to break this down. Suppose we split arr :: forall b c. (b -> c) -> a b c into two primitives (^>>) :: forall b c d. (b -> c) -> a c d -> a b d id :: forall b. a b b The contravariant functor (^>>) is essential to arrow notation, but I suspect the issue is the universally quantified b in the type of id (or equivalently returnA). One might instead use a variant of id constrained to an ADT with just the operations you want. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
