On Tue, Oct 31, 2006 at 02:42:58PM -0500, Seth Kurtzberg wrote: > As to why it might be confusing, I realize this is extremely > subjective. Suppose you have a record type, and add a constructor to > it. As things stand, I can use the compiler to be certain that I've > found all areas of the code that require changes because of the > addition of the constructor (with the flag that tells gcc to find > non-exhaustive pattern matches). Using the compiler in this manner is > (IMO) one of the things that makes refactering in Haskell so much > easier than some other languages. > > OK, now, if the pun feature is on, it's no longer illegal to provide > processing for only one constructor. (That's not the only thing it > does, but that is one thing that it does.)
I am not sure what you mean here data Foo = Foo { foo :: Int } f Foo { .. } = foo now if we change data Foo = Foo { foo :: Int } | Bar { bar :: Int } then f gets an incomplete pattern match warning. John -- John Meacham - ⑆repetae.net⑆john⑈ _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users