macro_rules! yamlette_reckon {
    ( book ; $book:expr ; [ $( $rules:tt ),* ] ) => { ... };
    ( volume ; $volume:expr ; [ $( $rules:tt ),* ] ) => { ... };
    ( ptr ; $pointer:expr ; [ $( $v:tt ),* ] ) => { ... };
    ( ptr ; $pointer:expr ; { $( $k:tt > $v:tt ),* } ) => { ... };
    ( ptr ; $pointer:expr ; { $( $k:expr => $v:tt ),* } ) => { ... };
    ( ptr ; $pointer:expr ; { $( ( $v:ident:$t:ty ) ),* } ) => { ... };
    ( ptr ; $pointer:expr ; ( $($v:ident:$t:ty),* ) ) => { ... };
    ( ptr ; $pointer:expr ; (list $($v:ident:$t:ty),* ) ) => { ... };
    ( ptr ; $pointer:expr ; (dict $($v:ident:$t:ty),* ) ) => { ... };
    ( ptr ; $pointer:expr ; (call $($f:expr),*) ) => { ... };
    ( ptr ; $pointer:expr ; (foreach $($f:expr),*) ) => { ... };
}