When Java 8 was released, I was excited to see the new Optional type. The null reference is a common source of errors in most languages (see: billion dollar mistake) and option types are a solution to this problem. After spending some time with Java's option type, I've come to the conclusion that it doesn't actually solve anything. First, a little background...Suppose we have a method that calls o