fn read_bit_pos() -> CellRef {
    let read_bit_pos = FnMonad::from(|(_, ): (CellRef, )| {
        let bit_pos     = BitCodeMonad::read_bit_pos();
        let bit_pos     = SafasCell::Any(Box::new(bit_pos)).into();

        let monad_type  = MonadType::new(BITCODE_FLAT_MAP.clone());

        CellRef::new(SafasCell::Monad(bit_pos, monad_type))
    });
    let read_bit_pos    = ReturnsMonad(read_bit_pos);
    let read_bit_pos    = SafasCell::FrameMonad(Box::new(read_bit_pos));

    read_bit_pos.into()
}
///
/// Creates a 'read bit position' flat_map function
///
Creates a 'read bit position' flat_map function
Creates a ' read bit position ' flat_map function
fn read_bit_pos() -> CellRef {
    let read_bit_pos = FnMonad::from(|(_, ): (CellRef, )| {
        let bit_pos     = BitCodeMonad::read_bit_pos();
        let bit_pos     = SafasCell::Any(Box::new(bit_pos)).into();
        let monad_type  = MonadType::new(BITCODE_FLAT_MAP.clone());
        CellRef::new(SafasCell::Monad(bit_pos, monad_type))
    });
    let read_bit_pos    = ReturnsMonad(read_bit_pos);
    let read_bit_pos    = SafasCell::FrameMonad(Box::new(read_bit_pos));
    read_bit_pos.into()
}
fn read_bit_pos ( ) -> CellRef { let read_bit_pos = FnMonad :: from ( | ( _ , ) : ( CellRef , ) | { let bit_pos = BitCodeMonad :: read_bit_pos ( ) ; let bit_pos = SafasCell :: Any ( Box :: new ( bit_pos ) ) . into ( ) ; let monad_type = MonadType :: new ( BITCODE_FLAT_MAP . clone ( ) ) ; CellRef :: new ( SafasCell :: Monad ( bit_pos , monad_type ) ) } ) ; let read_bit_pos = ReturnsMonad ( read_bit_pos ) ; let read_bit_pos = SafasCell :: FrameMonad ( Box :: new ( read_bit_pos ) ) ; read_bit_pos . into ( ) }
Creates a 'read bit position' flat_map function
Creates a ' read bit position ' flat_map function