enum ast { num(uint), add(&ast, &ast) } fn mk_add_bad1(x: &a/ast, y: &b/ast) -> ast/&a { add(x, y) //~ ERROR mismatched types: expected `&a/ast/&a` but found `&b/ast/&b` } fn main() { }