pub fn new_with_ty(name: &str, ty: &Type) -> Self {
        BoundVar {
            name: name.to_string(),
            ty: Some(ty.clone()),
        }
    }
// TODO: special case this for function bound vars?
/// Construct a new bound variable, cloning from references
special case this for function bound vars.
Construct a new bound variable, cloning from references
special case this for function bound vars . Construct a new bound variable cloning from references
pub fn new_with_ty(name: &str, ty: &Type) -> Self {
        BoundVar {
            name: name.to_string(),
            ty: Some(ty.clone()),
        }
    }
pub fn new_with_ty ( name : & str , ty : & Type ) -> Self { BoundVar { name : name . to_string ( ) , ty : Some ( ty . clone ( ) ) , } }
TODO: special case this for function bound vars?
TODO : special case this for function bound vars?
name
&str
ty
&Type
name
&str
ty
&Type