Learning about OCaml's OO features today.
It rather reminds me of Go: you don't need to do up-front design of what common methods your objects have. Its type is just its methods (structural typing AIUI).
You don't even need to define classes at all! Just return an object.