# Functions
New is our constructor.
# Variables
Echo means that input will echo characters.
ErrInterrupted is returned if the user presses Ctrl-C when in our ReadLine function.
NoEcho means that input will not echo characters.
Unknown means we don't know the status of echo/noecho.
# Type aliases
Status is used to record our current state.