pub fn flat_map_binding<InputMonad: 'static+BindingMonad, OutputMonad: 'static+BindingMonad, NextFn: 'static+Fn(InputMonad::Binding) -> OutputMonad+Send+Sync>(action: NextFn, monad: InputMonad) -> impl BindingMonad<Binding=OutputMonad::Binding> {
    FlatMapValue {
        input:  monad,
        next:   Arc::new(action),
        output: PhantomData
    }
}
///
/// The flat_map function for a binding monad
///
The flat_map function for a binding monad
The flat_map function for a binding monad
pub fn flat_map_binding<InputMonad: 'static+BindingMonad, OutputMonad: 'static+BindingMonad, NextFn: 'static+Fn(InputMonad::Binding) -> OutputMonad+Send+Sync>(action: NextFn, monad: InputMonad) -> impl BindingMonad<Binding=OutputMonad::Binding> {
    FlatMapValue {
        input:  monad,
        next:   Arc::new(action),
        output: PhantomData
    }
}
pub fn flat_map_binding < InputMonad : ' static + BindingMonad , OutputMonad : ' static + BindingMonad , NextFn : ' static + Fn ( InputMonad :: Binding ) -> OutputMonad + Send + Sync > ( action : NextFn , monad : InputMonad ) -> impl BindingMonad < Binding = OutputMonad :: Binding > { FlatMapValue { input : monad , next : Arc :: new ( action ) , output : PhantomData } }
The flat_map function for a binding monad
The flat_map function for a binding monad
action
NextFn
monad
InputMonad
action
NextFn
monad
InputMonad