gtk2hs や wx などの GUI ライブラリのラッパーを作りたい。
下記のことがラッパーでは実現不可能なら一から作ることになる。

例えば、ボタンを押すとラベルの文字が変わる処理を記述したい場合、
素の gtk2hs や wx なら、ボタンのイベントハンドラに登録した関数内で、
ラベルのプロパティに対して set 関数を使って値を書き換える感じだと思う。

これはあまりに手続き的でムカムカしてくる。

こうではなく、ボタンのイベントに反応するプロパティ型を作り、
それをラベルのプロパティに最初に設定した後は変更(再設定)しない。
イベントが起きなくても、起きても、自動的に文字が設定される。

プログラマはイベント時に何が起きるかを時系列にそって設定するのではなく、
プロパティが何に対してどう反応し、どう変化するかを定義する。

これができれば、いくぶん宣言的で心地よい。

私みたいな者が考える事なんて既にいろんな人が考えていると思うんだが、
このような仕組みを作る上で、参考になりそうな資料はないだろうか。