procedure p(a: System.Func; b:System.Func; c: X); begin writeln(a(c)); end; begin p(x -> x, x -> 1.0, 4.0); end.