Regular expressions as Haskell Type Generators?