-extendAddressEnvList (AE env) = AE . nub . (++ env) \r
-extendAddressEnvList' (AE env) = AE . (++ env)\r
-elemAddressEnv ptr (AE env) = ptr `elem` fst (unzip env) \r
-delFromAddressEnv (AE env) ptr = AE [(ptr', n) | (ptr', n) <- env, ptr' /= ptr]\r
-nullAddressEnv = null . outAE\r
-lookupAddressEnv (AE env) = flip lookup env\r
-\r
-instance Outputable (AddressEnv a) where\r
- ppr (AE ae) = vcat [text (show ptr) <> comma <> ppr a | (ptr,a) <- ae] \r
+extendAddressEnvList (AE env) = AE . addListToFM env \r
+elemAddressEnv ptr (AE env) = ptr `elemFM` env\r
+delFromAddressEnv (AE env) = AE . delFromFM env\r
+nullAddressEnv = isEmptyFM . aenv\r
+lookupAddressEnv (AE env) = lookupFM env\r