1 2 3 4 5 6 7 8 9 10 11 12 13 14
use crate::prelude::Monad; impl<'a, A> Monad<'a, A> for Vec<A> where A: Clone + 'a, { fn bind<F, B>(self, f: F) -> Self::Type<B> where F: Fn(A) -> Self::Type<B> + 'a, B: 'a, { self.into_iter().flat_map(f).collect::<Self::Type<B>>() } }