ツリー形式からBasicBlockのインストラクション形式に変える
Stateのこととupvalueを両方処理しなくてはならない
StateSize計算とUpvalue計算の両方をtraitとして切り出す方がいいのかな
値
結局W計算のStaged Interpreterと変わらんかもな
そうすると型付けの時点でクロージャ相当の項とグローバル関数適用の項は分かれることになる?エフェクトとして考えるのが妥当なのかな
型
コンパイル
let compiler = fun e -> match e with
Id(x) ->
| App(e1,e2)->
| Feed(x,e) ->