[Haskell-cafe] Type classes to 'reflect' constructor structure