I started looking at what it would take to build Idris with the latest release of Haskeline.
import Control.Monad.Trans.State.Strict
instance MonadException m => MonadException (StateT s m) where
controlIO f = StateT $ \s -> controlIO $ \(RunIO run) -> let
run' = RunIO (fmap (StateT . const) . run . flip runStateT s)
in fmap (flip runStateT s) $ f run'
module Control.Monad.State (
module Control.Monad.State.Lazy
) where
Which, as you can see, is a re-export of the lazy StateT transformer. I changed just the imports in Idris to use strict StateT and I was able to build against the latest Haskeline. I'm on windows so I ran into other build problems (I need gmp installed), but the basic idris interpreter can be built and the standard libs can be built as well. I can send a pull request on github if you're interested. I haven't tested my changes against older haskelines.
Jason