うーん、evalもinferも、Valueを返すべきなんでは? と思う。
Log[]
はAstに保存する。
Literal
はLogを吐きようがないEFn
は evalの中でinferを呼び出してるよねScope
もLogを持ちようが無いSym
**なんかはinferの時点でLogが出てくる可能性があるよね
「式の型」はキャッシュすべきか
getLogするにはevalが必要
Call, EFn, ETyFn に関しては、式の型の推論
Scopeの型
依存関係の挿入の仕方が分からんのよ。Proxyにして、evalを呼び出したのを検知して、依存関係を挿入する?