
Hi, I'm wondering if it is more efficient to pattern match against the components of a record instead of using the field functions, though I'd prefer to just use the field functions. For example, if I write: data R = R {_xRef :: !(IORef Int)} foo :: Int -> R -> IO () foo i R{_xRef = xRef} = writeIORef xRef i is the above more efficient than: foo i r = writeIORef (_xRef r) i I know this is probably a bit silly to worry about the overhead of an extra function call etc but I've at the moment got a lot of code using the first version and I think it would look much neater just using field labels but I don't want to modify it if it will be less efficient since speed is quite critical here. Thanks, Brian. -- Logic empowers us and Love gives us purpose. Yet still phantoms restless for eras long past, congealed in the present in unthought forms, strive mightily unseen to destroy us. http://www.metamilk.com