[Haskell] Polymorphic variants (extensible, recursive sums) with HList