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
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.