On Thu, Feb 02, 2006 at 07:06:07PM +0000, Ben Rudiak-Gould wrote: > Johannes Waldmann wrote: > >(With that respect, braces in records and let and where are OK, > >since order is irrelevant, but in do { .. } they are not, > >but that's how we show our sympathy to C and Java, right.) > > You forget "let { f [] _ = 1 ; f _ [] = 2 } in f [] []".
Also, order is relevant in many situations with records, e.g. data Foo = Foo { x :: Char, y :: Bool } defines Foo :: Char -> Bool -> Foo as well as the corresponding pattern constructor, and with foo (Foo { x = 'a', y = False }) = 'c' foo _ = 'd' bar (Foo { y = False, x = 'a' }) = 'c' bar _ = 'd' we have foo (Foo { x = 'z', y = undefined }) == 'd' bar (Foo { x = 'z', y = undefined }) == undefined (Err, where "we" == hugs. If "we" == ghci then they're both 'd', but I think this is wrong given my reading of both 3.17.2 and 3.17.3 in the H98 report) Thanks Ian _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://haskell.org/mailman/listinfo/haskell-prime