On Tue, 25 Sep 2007, Brian Hulley wrote:
Of course the problem disappears if you just discard multiple clause syntax
and use:
(list :: a List) (f :: a -> b) map :: b List =
case list of
Empty -> Empty
h t PushF -> (h f) (t f map) PushF
This would also have the advantage, that there is a name assigned to each
parameter, which is nice for documentation purposes. However we would also
have to assign a name to the parameter of 'f', and the (->) type
constructor becomes somehow special, at least more special than it is now.
Curried functions like
f :: a -> b -> c
suggest a swapped order of arguments for (->), since 'f' must be called
this way
b a f
Maybe it should be
f :: c <- b <- a
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe