Your task is to implement a simulation (you may reuse your idea from the CLOS assignment if you like) in ML. Instead of classes use ML structures with user defined types and datatypes and functions that work on these types for purposes of modularity and encapsulation.
Find out about the ML record datastructure and how to use it instead of tuples for some of the datastructures you will need.
To hide 'private' data or functions experiment with limited signatures for the structures you defined. A structure should have different signatures and try to model the concept of "inheritance" in terms of this functionality in ML.
Submit, along with your code, a few tests, and a pictorial description of how your structures, and data are related.