Objective Caml version 3.11.1 # - : int -> int = # let double = function x -> x * x ;; val double : int -> int = # double 2 ;; - : int = 4 # [double;double];; - : (int -> int) list = [; ] # val f : int * int -> int = # f (3,4);; - : int = 7 # val f2 : int * int -> int = # f2 (3,4);; - : int = 7 # val f3 : int * int -> int = # f3 (3,4) ;; - : int = 7 # val c : int -> int -> int = # c 3 4;; - : int = 7 # c 3;; - : int -> int = # let d = c 3;; val d : int -> int = # d 4 ;; - : int = 7 # val compose : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b = # compose double double ;; - : int -> int = # let doubledouble x = compose double double x ;; val doubledouble : int -> int = # double 2 ;; - : int = 4 # doubledouble 2 ;; - : int = 16 #