macro_rules! define_allocator_memory_pool {
(@ as_expr $expr : expr) => { ... };
($freelist_size : tt, $T : ty, [0 ; $heap_size : expr], calloc) => { ... };
($freelist_size : tt, $T : ty, [0 ; $heap_size : expr], calloc_no_free) => { ... };
($freelist_size : tt, $T : ty, [0 ; $heap_size : expr], malloc) => { ... };
($freelist_size : tt, $T : ty, [0 ; $heap_size : expr], malloc_no_free) => { ... };
($freelist_size : tt, $T : ty, [$default_value : expr ; $heap_size : expr],
heap) => { ... };
($freelist_size : tt, $T : ty, [$default_value : expr ; $heap_size : expr],
stack) => { ... };
($freelist_size : tt, $T : ty, [$default_value : expr ; $heap_size : expr],
global, $name : ident) => { ... };
}