fn f(x: [T]) -> T { ret x[0]; } fn g(act: fn([int]) -> int) -> int { ret act([1, 2, 3]); } fn main() { assert (g(f) == 1); let f1: fn([str]) -> str = f; assert (f1(["x", "y", "z"]) == "x"); }