| BTW if let and where were strict-by-default, just as lambda and case | are, then there would be no need for ! patterns, would there? | | John Yes, absolutely there would, but really only on variables. f (!x, !y) = e (Dually, you could argue that with let lazy-by-default there is no need for ~ patterns.) Simon