Does one field name for one datatype always refer to a field with the same type? Or is there some wacky extension that would allow things like
data Foo
= Bar { zoom :: Int }
| Baz { zoom :: Char }
I'm hoping I don't have to worry about the latter possibility....