Code Reuse with Modules
Now that we understand the basics of the OCaml module system, we'll look at how it enables code reuse through two features: includes, and functors. It's hard to give accurate analogies to these from other languages, such as Java, so let's just dive in.