pub fn flat_map_frame<InputMonad: FrameMonad, OutputMonad: FrameMonad, NextFn: Send+Sync+Fn(InputMonad::Binding) -> OutputMonad>(action: NextFn, monad: InputMonad) -> impl FrameMonad<Binding=OutputMonad::Binding> {
    FlatMapValue {
        input:  monad,
        next:   action,
        output: PhantomData
    }
}
///
/// That flat_map function for a frame monad (appends 'action' to the series of actions represented by 'monad')
///
That flat_map function for a frame monad (appends 'action' to the series of actions represented by 'monad')
That flat_map function for a frame monad ( appends ' action ' to the series of actions represented by ' monad ' )
pub fn flat_map_frame<InputMonad: FrameMonad, OutputMonad: FrameMonad, NextFn: Send+Sync+Fn(InputMonad::Binding) -> OutputMonad>(action: NextFn, monad: InputMonad) -> impl FrameMonad<Binding=OutputMonad::Binding> {
    FlatMapValue {
        input:  monad,
        next:   action,
        output: PhantomData
    }
}
pub fn flat_map_frame < InputMonad : FrameMonad , OutputMonad : FrameMonad , NextFn : Send + Sync + Fn ( InputMonad :: Binding ) -> OutputMonad > ( action : NextFn , monad : InputMonad ) -> impl FrameMonad < Binding = OutputMonad :: Binding > { FlatMapValue { input : monad , next : action , output : PhantomData } }
That flat_map function for a frame monad (appends 'action' to the series of actions represented by 'monad')
That flat_map function for a frame monad ( appends ' action ' to the series of actions represented by ' monad ' )
action
NextFn
monad
InputMonad
action
NextFn
monad
InputMonad