- @komar: *грабли# let a x y = x y;;
val a : ('a -> 'b) -> 'a -> 'b = <fun>
# let b = a print_endline;;
val b : string -> unit = <fun>
# let c = a print_int;;
val c : int -> unit = <fun>
Однако:
# let rec a x y = x y
and b = a print_endline
and c = a print_int;;
Error: This expression has type int -> unit
but an expression was expected of type string -> unit19 months ago