* DONE gen_microcode() creates a new mba_t; user must delete it * DONE mop_t::cstr must be dup'd when set * DONE mop_t ownership might not be transferred when setting to a parent (and thus neither is mcallarg_t) * TODO how about all visitors? scif_visitor_t, mop_visitor_t, ... * TODO