On Thu, Aug 12, 2004 at 02:16:05PM +0900, jeff polakow wrote:
>   Why is the following not an arrow?
> 
> newtype ListMap i o = LM ([i] -> [o]
> instance Arrow ListMap where
>   pure f = LM (map f)
>   LM f >>> LM g = LM (g . f)
>   first (LM f) = LM ((uncurry zip) . (cross f id) . unzip)

Consider the functor and unit laws for first when f produces an output
list of a different length to its input.
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to