>>921
引数を10個+αにしたり、10個の値の入ったリストなりタプルなりを渡す末尾再帰にすれば良いだけですが・・・。

もしくは>911の様な理解でも良い。
同様な物としてGUI部品そのもの(が確保してるメモリ領域)に保持させる。
Haskellから見れば外部から値を受け取って、外部に値を返すだけの「関数の様に振る舞う物(圏論で言う射)」になる。