pub fn define_function<Monad>(atom: &str, monad: Monad) -> impl BindingMonad<Binding=SmallVec<[Action; 8]>>
where Monad: 'static+FrameMonad<Binding=RuntimeResult> {
    let monad = Box::new(monad);
    let monad = SafasCell::FrameMonad(monad);

    define_symbol_value(AtomId::from(atom), monad)
}
///
/// Defines a function to be a frame monad
///
Defines a function to be a frame monad
Defines a function to be a frame monad
pub fn define_function<Monad>(atom: &str, monad: Monad) -> impl BindingMonad<Binding=SmallVec<[Action; 8]>>
where Monad: 'static+FrameMonad<Binding=RuntimeResult> {
    let monad = Box::new(monad);
    let monad = SafasCell::FrameMonad(monad);
    define_symbol_value(AtomId::from(atom), monad)
}
pub fn define_function < Monad > ( atom : & str , monad : Monad ) -> impl BindingMonad < Binding = SmallVec < [ Action ; 8 ] > > where Monad : ' static + FrameMonad < Binding = RuntimeResult > { let monad = Box :: new ( monad ) ; let monad = SafasCell :: FrameMonad ( monad ) ; define_symbol_value ( AtomId :: from ( atom ) , monad ) }
Defines a function to be a frame monad
Defines a function to be a frame monad
atom
&str
monad
Monad
atom
&str
monad
Monad