[Haskell-cafe] type refinement to a typeclass constrained type