runShell :: Shell s a -> ShellDesc s -> s -> IO (a, (ShellDesc s, s))
runShell sh sd s = runInputT defaultSettings $ ST.runStateT sh (sd, s)
runShell :: Shell s a -> ShellDesc s -> s -> IO (a, (ShellDesc s, s))
runShell sh sd s = runInputT defaultSettings $ ST.runStateT sh (sd, s)
runShell sh sd s = runInputT defaultSettings $ ST.runStateT sh (sd, s)