Shiika/hirからmirへの詰替え
HIRを加工していく過程で、一部のパートでしか使わないものがある
例:ChiikaEnv RustFuture Int64 などの型や、hir::Expr::Unboxなどの命令はコード生成直前でしか出てこない
今は、意図しないフェーズでこれらの値が出てきたらpanicするようにしているが、これを型レベルで防ぐことはできないか
と思ってやってみたけどけっこう厳しい
仮にenum hir::Exprとenum mir::Exprとするけど、両者はほとんど同じ構造だけど、それぞれが再帰的に定義されるので、中身の型も全部そろえないといけない