use Boost.MultiIndex to access with index by offset
use type_ir_emitter object directly instead of emit_type_ir()