In short, this will cause type problems.
(+)is part of the class Num:
class Num a where
(+), (-), (*) :: a -> a -> a
negate :: a -> a
abs :: a -> a
signum :: a -> a
fromInteger :: Integer -> a
x - y = x + negate y
negate x = 0 - x
And (++) :: [a] -> [a] -> [a].
: , (+) , (*), negate, abs, signum fromInteger . .
(+) typeclass , Plussable (+), , , 1 + 2*(2-1) Num a => a, (Plussable a, Timesable a, Minusable a) => a .. . .