macro_rules! allocate_and_init {
    ($ot:ident, $ty:ty) => { ... };
    ($ot:ident, $ty:ty, $id:expr) => { ... };
}