GADTless Programming in Haskell 98 - Sulzmann, M; Wang, M (2006)