let () = print_endline "Hello!";;
(* «classes» *)
class cat = object
method speak = print_endline "meow"
end
class dog = object
method speak = print_endline "woof"
end
(* «end» *)
(* «uses» *)
let hear_what_it_has_to_say obj =
let () = obj#speak in ()
(* «end» *)
;;
(* «calling» *)
let () = hear_what_it_has_to_say (new cat)
(* prints "meow" *)
let () = hear_what_it_has_to_say (new dog)
(* prints "woof" *)
(* «end» *)
;;
(* «bigger-object» *)
class cow = object
method speak = print_endline "moo"
method num_stomachs = 4
end
(* «end» *)
;;
(* «call-cow» *)
let () = hear_what_it_has_to_say (new cow)
(* prints "moo" *)
(* «end» *)
;;
(* «speaker» *)
let ecce_orator obj =
let () = obj#speak in obj
(* «end» *)
;;