> Can someone tell me why this is not working
that "someone" is actually ghci:
Prelude> instance (Num a, Add a b) => Add (a -> b) where add x y = add (x + y)
<interactive>:8:30:
Expecting one more argument to `Add (a -> b)'
In the instance declaration for `Add (a -> b)'