Sample code from lecture: (Note it's missing some pieces that I forgot to copy from lec2.ml
Variant 1: no modules
u1/unique.ml
Variant 2: modules, but no abstraction u2/unique.ml u2/set.ml
Variant 3: modules, with abstract interfact u3/unique.ml u3/set.ml u3/set.mli
Variant 4: modules, one file, no abstraction u4/unique.ml
Variant 5: modules, one file, with abstract interface and module signatures u5/unique.ml