pure fn p(j: int) -> bool { true }
fn f(i: int, j: int) : p(j) -> int { j }
fn g(i: int, j: int) : p(j) -> int { f(i, j) }
fn main() { let x = 1; check (p(x)); log g(x, x); }