+ , envRepository = repos
+ , envStorage = storage
+ , envSysConf = sysConf
+ , envInterpTable = interpTable
+ }
+
+
+mkInterpTable :: IO (TVar InterpTable)
+mkInterpTable = newTVarIO (listToTable baseInterpreters)
+ where
+ listToTable :: [Interpreter] -> InterpTable
+ listToTable xs
+ = M.fromList [ (commandName x, x) | x <- xs ]
+
+
+getInterpTable :: Environment -> IO InterpTable
+getInterpTable = atomically . readTVar . envInterpTable
+
+
+getInterpTableA :: ArrowIO a => Environment -> a b InterpTable
+getInterpTableA = arrIO0 . getInterpTable