Есть пара вопросов по Haskell и Gtk2hs:
Во-первых, как правильно перехватывать нажатия клавиш в Gtk2Hs? Дока предлагает на keyPressEvent повесить функцию, которая с помощью tryEvent будет формировать событие, отвечающее нажатию обрабатываемой клавиши. Как это вообще работает и что делать, если нужно обработать нажатия нескольких клавиш?
Во-вторых, сейчас моя программа представлена как цепочка состояний, характеризуемых несколькими значениями. Собственно программа - функция, рекурсивно запускающая переход к следующему состоянию. Каким образом из функции перехвата нажатия клавиши можно в этой цепочке подменить состояние?
Ну и вот код того, что я там понаписал: http://pastebin.com/nq9DwWG4