-- Given a definition of view which is essentially a synonym for show: class View a where view :: a -> String instance View Int where view = show -- why does "show 2" compile, while "view 2" gives an -- 'Ambiguous type variable' error fine = view (2::Int) noProblem = show 2 ambiguousTypeVariable = view 2