Skip to content

Commit

Permalink
Update for haskeline 0.8 & ghc 8.10.
Browse files Browse the repository at this point in the history
  • Loading branch information
robrix committed Jun 30, 2020
1 parent 282b179 commit 1c0e503
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
3 changes: 2 additions & 1 deletion fused-effects-readline.cabal
Expand Up @@ -46,9 +46,10 @@ library
build-depends:
base >= 4.12 && < 5
, directory ^>= 1.3.3.2
, exceptions ^>= 0.10
, filepath ^>= 1.4.2.1
, fused-effects ^>= 1
, haskeline ^>= 0.7
, haskeline ^>= 0.8
, prettyprinter ^>= 1.5
, prettyprinter-ansi-terminal ^>= 1.1
, terminal-size ^>= 0.3
Expand Down
7 changes: 4 additions & 3 deletions src/Control/Carrier/Readline/Haskeline.hs
Expand Up @@ -12,6 +12,7 @@ import Control.Algebra
import Control.Carrier.Lift
import Control.Carrier.Reader
import Control.Effect.Readline
import Control.Monad.Catch (MonadMask(..))
import Control.Monad.Fix (MonadFix)
import Control.Monad.IO.Class (MonadIO(..))
import Control.Monad.Trans.Class (MonadTrans(..))
Expand All @@ -25,10 +26,10 @@ import System.Environment
import System.FilePath
import System.IO (stdout)

runReadline :: MonadException m => Prefs -> Settings m -> ReadlineC m a -> m a
runReadline :: (MonadIO m, MonadMask m) => Prefs -> Settings m -> ReadlineC m a -> m a
runReadline prefs settings (ReadlineC m) = runInputTWithPrefs prefs (coerce settings) (runM (runReader (Line 0) m))

runReadlineWithHistory :: MonadException m => ReadlineC m a -> m a
runReadlineWithHistory :: (MonadIO m, MonadMask m) => ReadlineC m a -> m a
runReadlineWithHistory block = do
homeDir <- liftIO getHomeDirectory
prefs <- liftIO $ readPrefs (homeDir </> ".haskeline")
Expand All @@ -49,7 +50,7 @@ newtype ReadlineC m a = ReadlineC (ReaderC Line (LiftC (InputT m)) a)
instance MonadTrans ReadlineC where
lift = ReadlineC . lift . lift . lift

instance MonadException m => Algebra Readline (ReadlineC m) where
instance (MonadIO m, MonadMask m) => Algebra Readline (ReadlineC m) where
alg _ sig ctx = case sig of
Prompt prompt -> ReadlineC $ do
str <- sendM (getInputLine @m (cyan <> prompt <> plain))
Expand Down

0 comments on commit 1c0e503

Please sign in to comment.