... mostly an excuse to learn how handles/interactive text editing worked in Haskell.