{-# LINE 1 "System/Posix/Env/Internal.hsc" #-} module System.Posix.Env.Internal where import Foreign import Foreign.C getEnvironmentPrim :: IO [Ptr CChar] getEnvironmentPrim :: IO [CString] getEnvironmentPrim = do Ptr CString c_environ <- IO (Ptr CString) getCEnviron if Ptr CString c_environ forall a. Eq a => a -> a -> Bool == forall a. Ptr a nullPtr then forall (m :: * -> *) a. Monad m => a -> m a return [] else do forall a. (Storable a, Eq a) => a -> Ptr a -> IO [a] peekArray0 forall a. Ptr a nullPtr Ptr CString c_environ getCEnviron :: IO (Ptr CString) {-# LINE 25 "System/Posix/Env/Internal.hsc" #-} getCEnviron :: IO (Ptr CString) getCEnviron = forall a. Storable a => Ptr a -> IO a peek Ptr (Ptr CString) c_environ_p foreign import ccall unsafe "&environ" c_environ_p :: Ptr (Ptr CString) {-# LINE 30 "System/Posix/Env/Internal.hsc" #-}