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> {}
|
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