Converting -fglasgow-exts into LANGUAGE pragmas

Hello café, I want to replace the -fglasgow-exts in the snippet below by LANGUAGE pragmas. Rank2Types alone doesn't suffice. Which do I need to get the snippet to compile?
{-# OPTIONS -fglasgow-exts #-}
module RunMud where
import Control.Monad.State
type Mud = StateT MudState IO data MudState = MudState { mRunMud :: RunMud } type RunMud = forall a. Mud a -> IO a
getRunMud :: Mud RunMud getRunMud = do s <- get return (mRunMud s)
Thanks in advance, Martijn.

Hi,
Martijn van Steenbergen
Hello café,
I want to replace the -fglasgow-exts in the snippet below by LANGUAGE pragmas. Rank2Types alone doesn't suffice. Which do I need to get the snippet to compile?
Works for me with {-# LANGUAGE Rank2Types, ImpredicativeTypes, LiberalTypeSynonyms #-}
participants (2)
-
Martijn van Steenbergen
-
Mikhail Glushenkov