aboutsummaryrefslogtreecommitdiff
path: root/hsm-command/Hsm/Command
diff options
context:
space:
mode:
authorPaul Oliver <contact@pauloliver.dev>2025-01-16 19:22:18 -0800
committerPaul Oliver <contact@pauloliver.dev>2025-01-17 19:16:43 -0800
commite3ea039428545e185b38c5633fe3576ab32f1f8e (patch)
tree56ab8d1248b4387ceab6094305e7a75699c4e393 /hsm-command/Hsm/Command
parente1fa79eb713c249055fb23fcc6684a94f77d8368 (diff)
Cleans excessive type annotations
Diffstat (limited to 'hsm-command/Hsm/Command')
-rw-r--r--hsm-command/Hsm/Command/Command.hs5
-rw-r--r--hsm-command/Hsm/Command/Readline.hs23
2 files changed, 8 insertions, 20 deletions
diff --git a/hsm-command/Hsm/Command/Command.hs b/hsm-command/Hsm/Command/Command.hs
index 3b53287..53964c4 100644
--- a/hsm-command/Hsm/Command/Command.hs
+++ b/hsm-command/Hsm/Command/Command.hs
@@ -39,13 +39,10 @@ data Command
| Rotate Angle Speed Int
deriving (Binary, Generic, Read, Show)
-commandStream ::
- forall es. (Log :> es, Readline :> es)
- => S.Stream (Eff es) Command
+commandStream :: (Log :> es, Readline :> es) => S.Stream (Eff es) Command
commandStream =
S.mapMaybeM (parse . fromJust) $ S.takeWhile isJust $ S.repeatM readline
where
- parse :: String -> Eff es (Maybe Command)
parse string =
case readEither string of
Left err -> logAttention_ (pack err) >> return Nothing
diff --git a/hsm-command/Hsm/Command/Readline.hs b/hsm-command/Hsm/Command/Readline.hs
index 428ed50..1caa562 100644
--- a/hsm-command/Hsm/Command/Readline.hs
+++ b/hsm-command/Hsm/Command/Readline.hs
@@ -22,28 +22,19 @@ type instance DispatchOf Readline = Static S.WithSideEffects
newtype instance S.StaticRep Readline =
Readline H.InputState
-readline ::
- forall es. (Log :> es, Readline :> es)
- => Eff es (Maybe String)
+readline :: (Log :> es, Readline :> es) => Eff es (Maybe String)
readline = do
flushLogger
Readline hdl <- S.getStaticRep
- S.unsafeEff_ $ nextLine hdl
- where
- nextLine :: H.InputState -> IO (Maybe String)
- nextLine hdl =
- H.queryInput hdl
- $ H.handleInterrupt (return Nothing)
- $ H.withInterrupt
- $ H.getInputLine "% "
+ S.unsafeEff_
+ $ H.queryInput hdl
+ $ H.handleInterrupt (return Nothing)
+ $ H.withInterrupt
+ $ H.getInputLine "% "
runReadline :: (IOE :> es, Resource :> es) => Eff (Readline : es) a -> Eff es a
runReadline action = do
- handle <- snd <$> allocate istate H.cancelInput
+ handle <- snd <$> allocate (H.initializeInput settings) H.cancelInput
S.evalStaticRep (Readline handle) action
where
- settings :: H.Settings IO
settings = H.defaultSettings {H.historyFile = Just ".hsm_command_history"}
- --
- istate :: IO H.InputState
- istate = H.initializeInput settings