diff --git a/src/func/classes/composition.rs b/src/func/classes/composition.rs index fbcb62c..c614de7 100644 --- a/src/func/classes/composition.rs +++ b/src/func/classes/composition.rs @@ -166,3 +166,14 @@ impl SharedFunctor for Composition U::fmap(V::unshare, U::unshare(sa)) } } + +impl CovariantFunctor + for CompositionClass +{ + fn variate<'a: 'b, 'b, A: 'a>(fa: Self::F<'a, A>) -> Self::F<'b, A> + where + Self: 'a, + { + U::fmap(V::variate, U::variate(fa)) + } +}