+getClassMap :: IO ClassMap
+getClassMap = do
+ ctx <- readIORef mateCtx
+ return $ ctxClassMap ctx
+
+
+setVirtualMap :: VirtualMap -> IO ()
+setVirtualMap m = do
+ ctx <- readIORef mateCtx
+ writeIORef mateCtx $ ctx { ctxVirtualMap = m }
+
+getVirtualMap :: IO VirtualMap
+getVirtualMap = do
+ ctx <- readIORef mateCtx
+ return $ ctxVirtualMap ctx
+
+
+setStringMap :: StringMap -> IO ()
+setStringMap m = do
+ ctx <- readIORef mateCtx
+ writeIORef mateCtx $ ctx { ctxStringMap = m }
+
+getStringMap :: IO StringMap
+getStringMap = do
+ ctx <- readIORef mateCtx
+ return $ ctxStringMap ctx
+
+
+setInterfaceMap :: InterfaceMap -> IO ()
+setInterfaceMap m = do
+ ctx <- readIORef mateCtx
+ writeIORef mateCtx $ ctx { ctxInterfaceMap = m }
+
+getInterfaceMap :: IO InterfaceMap
+getInterfaceMap = do
+ ctx <- readIORef mateCtx
+ return $ ctxInterfaceMap ctx
+
+
+setInterfaceMethodMap :: InterfaceMethodMap -> IO ()
+setInterfaceMethodMap m = do
+ ctx <- readIORef mateCtx
+ writeIORef mateCtx $ ctx { ctxInterfaceMethodMap = m }
+
+getInterfaceMethodMap :: IO InterfaceMethodMap
+getInterfaceMethodMap = do
+ ctx <- readIORef mateCtx
+ return $ ctxInterfaceMethodMap ctx