macro_rules! typedesc_type {
(DoubleFrom($_:expr)) => { ... };
(DoubleRange($_:expr, $__:expr)) => { ... };
(Int($_:expr, $__:expr)) => { ... };
(Blob($_:expr)) => { ... };
(Str($_:expr)) => { ... };
(Enum($_:expr)) => { ... };
(ArrayOf($_:expr, $__:expr, $($tp:tt)*)) => { ... };
(Tuple2($tp1a:tt $( ( $($tp1b:tt)* ) )*, $($tp2:tt)*)) => { ... };
($stalone_type:ty) => { ... };
}