pub fn nreverse (self) -> Data {
        let mut curr = self;
        let mut prv = Nil;

        while curr != Nil {
            match curr {
                Cons(ref c) =>{
                    let next = &mut c.borrow_mut().1;
                    swap(next, &mut prv);
                }
                _ => panic!("Not a proper list!"),
            };
            swap(&mut curr, &mut prv);
        }
        prv
    }
/// Reverses a list in place. Non-consing.
Reverses a list in place. Non-consing.
Reverses a list in place . Non - consing .
pub fn nreverse (self) -> Data {
        let mut curr = self;
        let mut prv = Nil;
        while curr != Nil {
            match curr {
                Cons(ref c) =>{
                    let next = &mut c.borrow_mut().1;
                    swap(next, &mut prv);
                }
                _ => panic!("Not a proper list!"),
            };
            swap(&mut curr, &mut prv);
        }
        prv
    }
pub fn nreverse ( self ) -> Data { let mut curr = self ; let mut prv = Nil ; while curr != Nil { match curr { Cons ( ref c ) => { let next = & mut c . borrow_mut ( ) . 1 ; swap ( next , & mut prv ) ; } _ => panic ! ( " " ) , } ; swap ( & mut curr , & mut prv ) ; } prv }
Reverses a list in place.
Reverses a list in place .
self