pub fn lam(b: Expr) -> Self{
        let mut nodes = b.nodes.clone();
        let b_id = Id::from(b.nodes.len()-1);
        nodes.push(Lambda::Lam([b_id]));
        Self::new(nodes)
    }
/// construct an Expr with a toplevel Lam node
construct an Expr with a toplevel Lam node
construct an Expr with a toplevel Lam node
pub fn lam(b: Expr) -> Self{
        let mut nodes = b.nodes.clone();
        let b_id = Id::from(b.nodes.len()-1);
        nodes.push(Lambda::Lam([b_id]));
        Self::new(nodes)
    }
pub fn lam ( b : Expr ) -> Self { let mut nodes = b . nodes . clone ( ) ; let b_id = Id :: from ( b . nodes . len ( ) - 1 ) ; nodes . push ( Lambda :: Lam ( [ b_id ] ) ) ; Self :: new ( nodes ) }
construct an Expr with a toplevel Lam node
construct an Expr with a toplevel Lam node
b
Expr
b
Expr