Why TcLclEnv and DsGblEnv need to store the same IORef for errors?