Christian Maeder <[EMAIL PROTECTED]> writes: > > voidcast v@(VariantWithOne{}) = v { field1 = Void , field2 = Void } > > Setting field2 only assures type correctness, but the value of field2 > would be ignored at runtime.
Exactly what I was proposing. > > I could write a single expression that updated all possible variants > > of a type, simply by unioning all their possible labels. > > I want to detect errors as early as possible. But you can already write this: > > voidcast v@(VariantWithOne{}) = v { field1 = Void , field2 = Void } and you do not get a compile time error - it is a runtime error. I am proposing that it should not be thought of as an error at all. Regards, Malcolm _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe