In object-oriented programming a method is a function associated with a particular class or object. In most forms of object oriented implementations methods can be static, associated with the class itself; or instance, associated with an instance of a class.

Show how to call a static or class method, and an instance method of a class.

data Obj = Obj { field :: Int, method :: Int -> Int }
 
-- smart constructor
mkAdder :: Int -> Obj
mkAdder x = Obj x (+x) 
 
-- adding method from a type class
instanse Show Obj where
  show o = "Obj " ++ show (field o) 