
Cale Gibbard wrote:
Hello,
There's a prelude function called asTypeOf which might help here: asTypeOf :: a -> a -> a asTypeOf = const
You can use maxBound `asTypeOf` (fst3 . head $ elements)
Another option is GHC's scoped type variables, which you use by adding a type signature to your pattern. See: http://www.haskell.org/ghc/docs/latest/html/users_guide/type-extensions.html...
Hi Cale - Thanks for the solutions. The GHC scoped typed variables seem to be the best solution since they would seem to be the only way to implement something where the type only occurs in the result eg (if the actual fonts were to be added later): createMonoMultiFont :: forall i m . (MonadException m, Enum i, Bounded i) => m (MonoMultiFont i) Thanks, Brian.