pub fn take_list(&mut self) -> Result<Vec<Sexp>, SexpError> {
        let mut e = Sexp::Empty;
        mem::swap(&mut e, self);
        match e {
            Sexp::List(v) => Ok(v),
            _ => Err(format!("Not a list: {}", e).into()),
        }
    }
/// if the expression is a list, extract the `Vec<Sexp>`
/// from it and swap it with Empty
if the expression is a list, extract the `Vec`
from it and swap it with Empty
if the expression is a list extract the ` Vec ` from it and swap it with Empty
pub fn take_list(&mut self) -> Result<Vec<Sexp>, SexpError> {
        let mut e = Sexp::Empty;
        mem::swap(&mut e, self);
        match e {
            Sexp::List(v) => Ok(v),
            _ => Err(format!("Not a list: {}", e).into()),
        }
    }
pub fn take_list ( & mut self ) -> Result < Vec < Sexp > , SexpError > { let mut e = Sexp :: Empty ; mem :: swap ( & mut e , self ) ; match e { Sexp :: List ( v ) => Ok ( v ) , _ => Err ( format ! ( " " e ) . into ( ) ) , } }
if the expression is a list, extract the `Vec<Sexp>`
from it and swap it with Empty
if the expression is a list extract the ` Vec<Sexp > ` from it and swap it with Empty
&mut self