The breakdown of points in this assignment is as follows:
OCaml has a nifty thing about equality that you will see in your homework. What's that, you ask?
= and == are NOT the same
= denotes STRUCTURAL equality while == denotes REFERENTIAL
equality.
Structural v. Referential?
Structural means that two things have the same contents and
the same shape.
Referential means that two variables (i.e. a and b) both
point to the same memory location. To understand this, you may
want to draw an ASM.
You should NOT check for referential equality between
options
OCaml's compiler will be kind and will say that "None"s are
equivalent, but this is NOT the case with Some.
Without going into the details, Some n == Some n will return
true or false haphazardly, even if "n"s in question are the SAME
EXACT THING.
If you want to find out why, feel free to ask one of us.