clean up a bit
use Data.Version
introduce Console monad to clean up dependencies on haskeline and readline