module Lang.Hask.Compat where import FP import CoreSyn hiding (Bind) import CoreMonad import HscTypes import qualified Prelude import Data.IORef import DynFlags import System.IO.Unsafe makeLenses ''Plugin makeLenses ''ModGuts makePrisms ''AltCon instance Functor CoreM where map = mmap instance Unit CoreM where unit = Prelude.return instance Product CoreM where (<*>) = mpair instance Bind CoreM where (>>=) = (Prelude.>>=) instance Applicative CoreM where (<@>) = mapply instance Monad CoreM instance MonadIO CoreM where io = CoreMonad.liftIO {-# NOINLINE globalDynFlags #-} globalDynFlags :: IORef DynFlags globalDynFlags = unsafePerformIO $ newIORef $ error "uninitialized dyn flags" initGlobalDynFlags :: DynFlags -> IO () initGlobalDynFlags = writeIORef globalDynFlags dynFlags :: () -> DynFlags dynFlags () = unsafePerformIO $ readIORef globalDynFlags