demo of generics in haskell