Num instance for functions
to add functions nicely, say for
f, g :: Num a => b -> a
you would define
(f+g) x = f x + g x
fromInteger = const
numeric literals would also denote constant functions. This allows
f+2 == \x -> f x + 2
Even nicer, the mathematically established notation of omitting the multiplication dot
2(x+y) :: Integer
will now be parsed by a Haskell compiler to the most obvious meaning
2 :: Integer
This article is in category Proposals in order to show people that this idea was already proposed, but that one should think twice implementing it. There should be a category Counterproposals.
2 See also
- The applicative-numbers package, which generates numeric class instances for arbitrary applicative functors (including functions).