I would suggest the following:
-
Move keep, option, input to a separate module, say Transient.ConsoleIO. We can possibly call the new module Transient.Input if there are more input methods to be covered. We can rename keep to something more appropriate like withConsole or withAsyncInput or interactive.
-
keep' and exit can stay in Base. But we can rename keep' to something more appropriate likewait or stayput.
I would suggest the following:
Move
keep, option, inputto a separate module, sayTransient.ConsoleIO. We can possibly call the new moduleTransient.Inputif there are more input methods to be covered. We can renamekeepto something more appropriate likewithConsoleorwithAsyncInputorinteractive.keep'andexitcan stay in Base. But we can renamekeep'to something more appropriate likewaitorstayput.