Text this: Comparing Approaches to Generic Programming in Haskell