GHC lazy eval optimization bug