ApplicativeSelectExt lift lifetime

This commit is contained in:
AF 2023-05-26 07:53:20 +00:00
parent d78879f012
commit 3ab54e29e0

View File

@ -19,17 +19,14 @@ pub trait ApplicativeSelect: Functor {
}
}
pub trait ApplicativeSelectExt: ApplicativeSelect {
fn select_map<'a, A: 'a, B: 'a, C: 'a>(
pub trait ApplicativeSelectExt<'a>: 'a + ApplicativeSelect {
fn select_map<A: 'a, B: 'a, C: 'a>(
f: impl 'a + FnOnce(Selected<'a, A, B, Self>) -> C,
fa: Self::F<'a, A>,
fb: Self::F<'a, B>,
) -> Self::F<'a, C>
where
Self: 'a,
{
) -> Self::F<'a, C> {
Self::fmap(f, Self::select(fa, fb))
}
}
impl<T: ApplicativeSelect> ApplicativeSelectExt for T {}
impl<'a, T: 'a + ApplicativeSelect> ApplicativeSelectExt<'a> for T {}