additional overloads
This commit is contained in:
parent
979d1a587a
commit
3ab74bfbbd
@ -195,7 +195,7 @@ impl<T: Monad, O: DeriveMonad> Monad for OverloadClass<T, O> {
|
||||
}
|
||||
}
|
||||
|
||||
struct DeriveFail<Ex>(Ex);
|
||||
pub struct DeriveFail<Ex>(Ex);
|
||||
|
||||
impl<Ex> DeriveMonad for DeriveFail<Ex> {}
|
||||
|
||||
@ -279,3 +279,32 @@ impl<Ex, Fallible: MonadFailAny> MonadFailAny for DeriveFailAny<Ex, Fallible> {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: SharedFunctor, O: DeriveWeakFunctor> SharedFunctor for OverloadClass<T, O> {
|
||||
type Shared<'a, A: 'a + Clone> = T::Shared<'a, A>
|
||||
where
|
||||
Self: 'a;
|
||||
|
||||
fn share<'a, A: 'a + Clone>(fa: Self::F<'a, A>) -> Self::Shared<'a, A>
|
||||
where
|
||||
Self: 'a,
|
||||
{
|
||||
T::share(fa)
|
||||
}
|
||||
|
||||
fn unshare<'a, A: 'a + Clone>(sa: Self::Shared<'a, A>) -> Self::F<'a, A>
|
||||
where
|
||||
Self: 'a,
|
||||
{
|
||||
T::unshare(sa)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: CovariantFunctor, O: DeriveWeakFunctor> CovariantFunctor for OverloadClass<T, O> {
|
||||
fn variate<'a: 'b, 'b, A: 'a>(fa: Self::F<'a, A>) -> Self::F<'b, A>
|
||||
where
|
||||
Self: 'a,
|
||||
{
|
||||
T::variate(fa)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user