MRP-refactor `GHCi` Applicative/Monad instance
authorHerbert Valerio Riedel <hvr@gnu.org>
Sun, 18 Oct 2015 07:37:43 +0000 (09:37 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sun, 18 Oct 2015 07:39:26 +0000 (09:39 +0200)
As GHCi is compiled by stage1+ GHC only, we can
drop the explicit `return` definition rightaway.

ghc/GhciMonad.hs

index 8c755be..7dd005b 100644 (file)
@@ -179,12 +179,11 @@ instance Functor GHCi where
     fmap = liftM
 
 instance Applicative GHCi where
-    pure = return
+    pure a = GHCi $ \_ -> pure a
     (<*>) = ap
 
 instance Monad GHCi where
   (GHCi m) >>= k  =  GHCi $ \s -> m s >>= \a -> unGHCi (k a) s
-  return a  = GHCi $ \_ -> return a
 
 getGHCiState :: GHCi GHCiState
 getGHCiState   = GHCi $ \r -> liftIO $ readIORef r