pub trait A {}

macro_rules! __implicit_hasher_test_macro {
    (impl< $($impl_arg:tt),* > for $kind:ty where $($bounds:tt)*) => {
        __implicit_hasher_test_macro!( ($($impl_arg),*) ($kind) ($($bounds)*) );
    };

    (($($impl_arg:tt)*) ($($kind_arg:tt)*) ($($bounds:tt)*)) => {
        impl< $($impl_arg)* > test_macro::A for $($kind_arg)* where $($bounds)* { }
    };
}