System.Environment

module System.Environment(module System,module System.Environment) where
import System(getArgs,getProgName,getEnv)
import MonadicIO0(primGetEnvironment)

getEnvironment :: IO [(String,String)]
getEnvironment = map split `fmap` primGetEnvironment
  where
    split s = case break (=='=') s of
                (name,'=':val) -> (name,val)
                (name,_) -> (name,"")

lookupEnv :: String -> IO (Maybe String)
lookupEnv var = fmap Just (getEnv var) `catch` const (return Nothing)