[Haskell-cafe] Instantiating a typeclass based on a runtime value?