Haskell Function Overloading In Oop