Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/libraries/Cabal/Distribution/Compat/RawSystem.hs
{-# OPTIONS -cpp #-} -- #hide module Distribution.Compat.RawSystem (rawSystem) where #if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 602 import Data.List (intersperse) import System.Cmd (system) import System.Exit (ExitCode) #else import System.Cmd (rawSystem) #endif #if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 602 rawSystem :: String -> [String] -> IO ExitCode rawSystem p args = system $ concat $ intersperse " " (p : map esc args) where esc arg = "'" ++ arg ++ "'" -- this is hideously broken, actually #endif