Theo schools me on OO over functional programming

I just got back from dinner with another friend (The-oy) who schooled me on the OO mistakes I made in the lazy loader.  The problem stemmed from the fact that I was trying to conver the following functional type into an OO one.

# type 'a optional = Some of 'a | None;;
type 'a optional = Some of 'a | None

I've told him he has 48 hours to write up a response blog to why my implementation was bad and what would be better, or else I would do it.  In the meantime can anyone here see the problems with it?  (Remember you may have to read some of hte posts as there were updates to the code inside of them.