わかりました。できるところまでやっちゃってください。
なおかつ(lensに依存している)insert-ordered-containersへの依存をやめるはいかがでしょうか?
このような λ と変数の出現の対応関係を「束縛」と言う。
λ 抽象の仮引数となっている変数のことを束縛変数といい、
この位置の x が束縛されているとは、x が (λx. · · · ) によって囲まれている時、つまり
· · · (λx. · · · x · · · )· · ·
となっている時である。
λx.M では、M の中の全ての x の出現は「束縛されている」という。
λ 計算において,λx.t の x が変数宣言であり,その有効範囲は t である.t に現われる変数項 xは束縛変数である.
自由・束縛という概念は,より正確には,変数 (の名前) ではなく,変数の出現 (箇所) に対して使われると考えた方がよい.