let name_of a =
  assert(is_var a);
  match a with Var(x) -> Var.name_of x | _ -> assert false