macro_rules! impl_fold_via_try_fold {
    (fold -> try_fold) => { ... };
    (rfold -> try_rfold) => { ... };
    (@internal $fold:ident -> $try_fold:ident) => { ... };
}