The following typing rule for function application
f :: A -> B
e :: A
-----------
f e :: B
doesn't take into account an f with class constraints. How can I manually calculate the type of, for example:
(+) :: Num a => a -> a -> a
3 :: Int
---------------------------
(+) 3 :: ?