fn region_identity(x: &r.uint) -> &r.uint { x } fn apply(t: T, f: fn(T) -> T) -> T { f(t) } fn parameterized(x: &uint) -> uint { let z = apply(x) {|y| region_identity(y) }; *z } fn main() { let x = 3u; assert parameterized(&x) == 3u; }