Arbitrary function sections
For operators we have the following shorthand:
op :: a -> b -> c
(`op` y) === \x -> x `op` y
(x `op`) === \y -> x `op` y
It would be nice to have a similar facility for
functions, e.g.:
f :: a -> b -> c -> d -> e
f _ y _ t === \x z -> f x y z t
f x _ z _ === \y t -> f x y z t
f x _ z === \y -> f x y z === \y t -> f x y z t
Because "_" is currently not allowed as an identifier
in contexts where this facility could possibly be in
effect, it seems safe to use it to indicate omitted
parameters in function application.
Edited by Ian Lynagh -